use of com.arm.mbed.cloud.sdk.update.model.Campaign in project mbed-cloud-sdk-java by ARMmbed.
the class UpdateExamples method manageCampaigns.
/**
* Lists the first 5 update campaigns.
*/
@SuppressWarnings("boxing")
@Example
public void manageCampaigns() {
ConnectionOptions config = Configuration.get();
Update api = new Update(config);
DeviceDirectory api2 = new DeviceDirectory(config);
String campaignId = null;
try {
// Getting a manifest file.
FirmwareManifestListOptions options = new FirmwareManifestListOptions();
options.setLimit(1);
FirmwareManifest manifest = null;
Paginator<FirmwareManifest> manifests = api.listAllFirmwareManifests(options);
if (!manifests.hasNext()) {
fail("Could not get any manifest files from Mbed Cloud");
}
manifest = manifests.next();
log("Campaign manifest", manifest);
// Getting a query.
QueryListOptions options2 = new QueryListOptions();
options.setLimit(1);
options.setOrder(Order.DESC);
Query query = null;
Paginator<Query> queries = api2.listAllQueries(options2);
if (!queries.hasNext()) {
fail("Could not fetch any queries from Mbed Cloud");
}
query = queries.first();
log("Campaign query", query);
// Creating an update campaign.
String campaignName = "campaign-" + UUID.randomUUID().toString();
log("Campaign name", campaignName);
Campaign myCampaign = new Campaign(campaignName, manifest, query);
myCampaign.setScheduledAt(new Date());
myCampaign = api.addCampaign(myCampaign);
log("Created campaign", myCampaign);
campaignId = myCampaign.getId();
// Updating campaign.
campaignName = "campaign-" + UUID.randomUUID().toString();
log("Updated campaign name", campaignName);
myCampaign.setName(campaignName);
myCampaign = api.updateCampaign(myCampaign);
log("Updated campaign", myCampaign);
campaignId = myCampaign.getId();
// Starting the campaign.
myCampaign = api.startCampaign(myCampaign);
log("Started campaign", myCampaign);
campaignId = myCampaign.getId();
// Printing device states
CampaignDevicesStatesListOptions deviceStateOptions = new CampaignDevicesStatesListOptions();
deviceStateOptions.setLimit(20);
for (int countdown = 10; countdown >= 0; countdown--) {
log("Device states at countdown", countdown);
Paginator<CampaignDeviceState> states = api.listAllCampaignDeviceStates(campaignId, deviceStateOptions);
while (states.hasNext()) {
CampaignDeviceState state = states.next();
log("Device " + state.getDeviceId() + " state", state.getState());
}
}
// Stopping campaign.
myCampaign = api.stopCampaign(myCampaign);
log("Stopped campaign", myCampaign);
campaignId = myCampaign.getId();
// Deleting campaign.
deleteCreatedCampaign(campaignId, api);
} catch (Exception e) {
logError("last API Metadata", api.getLastApiMetadata());
deleteCreatedCampaign(campaignId, api);
fail(e.getMessage());
}
}
use of com.arm.mbed.cloud.sdk.update.model.Campaign in project mbed-cloud-sdk-java by ARMmbed.
the class Update method modifyCampaign.
/**
* Modifies an update campaign.
*
* @param campaign
* campaign to modify.
* @param actionName
* name of the modification action.
* @return modified campaign.
* @throws MbedCloudException
* if a problem occurred during request processing.
*/
@Internal
private Campaign modifyCampaign(Campaign campaign, String actionName) throws MbedCloudException {
checkNotNull(campaign, TAG_CAMPAIGN);
checkNotNull(campaign.getId(), TAG_CAMPAIGN_ID);
checkModelValidity(campaign, TAG_CAMPAIGN);
final Campaign finalCampaign = campaign;
return CloudCaller.call(this, actionName, CampaignAdapter.getMapper(), new CloudCall<UpdateCampaign>() {
@Override
public Call<UpdateCampaign> call() {
return endpoint.getUpdate().updateCampaignUpdate(finalCampaign.getId(), CampaignAdapter.reverseMapUpdate(finalCampaign));
}
});
}
use of com.arm.mbed.cloud.sdk.update.model.Campaign in project mbed-cloud-sdk-java by ARMmbed.
the class Update method addCampaign.
/**
* Adds an update campaign.
* <p>
* Example:
*
* <pre>
* {@code
* try {
* Campaign campaign = new Campaign();
* campaign.setName("QuickstartCampaign");
* campaign.setDescription("Quick start campaign");
* campaign.setState(CampaignState.DRAFT);
*
* Filters deviceFilter = new Filters();
* deviceFilter.add(new Filter("state", FilterOperator.EQUAL, "registered"));
* campaign.setDeviceFilter(deviceFilter);
*
* String firmwareManifestId = "015f4ac587f500000000000100100249";
* campaign.setManifestId(firmwareManifestId);
*
* Campaign newCampaign = updateApi.addCampaign(campaign);
* System.out.println("Campaign state: " + newCampaign.getState());
* System.out.println("Campaign ID: " + newCampaign.getId());
*
* } catch (MbedCloudException e) {
* e.printStackTrace();
* }
* }
* </pre>
*
* @param campaign
* The campaign to add.
* @return added update campaign.
* @throws MbedCloudException
* if a problem occurred during request processing.
*/
@API
@Nullable
public Campaign addCampaign(@NonNull Campaign campaign) throws MbedCloudException {
checkNotNull(campaign, TAG_CAMPAIGN);
checkModelValidity(campaign, TAG_CAMPAIGN);
final Campaign finalCampaign = campaign;
return CloudCaller.call(this, "addCampaign()", CampaignAdapter.getMapper(), new CloudCall<UpdateCampaign>() {
@Override
public Call<UpdateCampaign> call() {
return endpoint.getUpdate().updateCampaignCreate(CampaignAdapter.reverseMapAdd(finalCampaign));
}
});
}
use of com.arm.mbed.cloud.sdk.update.model.Campaign in project mbed-cloud-sdk-java by ARMmbed.
the class UpdateExamples method listCampaigns.
/**
* Lists the first 5 update campaigns.
*/
@SuppressWarnings("boxing")
@Example
public void listCampaigns() {
ConnectionOptions config = Configuration.get();
Update api = new Update(config);
try {
// Defining query options.
CampaignListOptions options = new CampaignListOptions();
options.setLimit(5);
// Listing campaigns.
Paginator<Campaign> campaigns = api.listAllCampaigns(options);
for (Campaign campaign : campaigns) {
log("Update campaign", campaign);
}
} catch (Exception e) {
logError("last API Metadata", api.getLastApiMetadata());
fail(e.getMessage());
}
}
use of com.arm.mbed.cloud.sdk.update.model.Campaign in project mbed-cloud-sdk-java by ARMmbed.
the class CampaignAdapter method map.
/**
* Maps campaign.
*
* @param campaign
* campaign result
* @return campaign
*/
public static Campaign map(UpdateCampaign campaign) {
if (campaign == null) {
return null;
}
final Campaign updateCampaign = new Campaign(campaign.getId(), TranslationUtils.toUrl(campaign.getRootManifestUrl()), TranslationUtils.toDate(campaign.getCreatedAt()), TranslationUtils.toDate(campaign.getStartedAt()), TranslationUtils.toDate(campaign.getFinished()), TranslationUtils.toDate(campaign.getUpdatedAt()));
updateCampaign.setDescription(campaign.getDescription());
updateCampaign.setManifestId(campaign.getRootManifestId());
updateCampaign.setName(campaign.getName());
updateCampaign.setScheduledAt(TranslationUtils.toDate(campaign.getWhen()));
updateCampaign.setState(toState(campaign.getState()));
updateCampaign.setDeviceFilters(decodeFilters(campaign.getDeviceFilter()));
return updateCampaign;
}
Aggregations