Search in sources :

Example 1 with FirmwareManifest

use of com.arm.mbed.cloud.sdk.update.model.FirmwareManifest 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());
    }
}
Also used : Query(com.arm.mbed.cloud.sdk.devicedirectory.model.Query) FirmwareManifestListOptions(com.arm.mbed.cloud.sdk.update.model.FirmwareManifestListOptions) FirmwareManifest(com.arm.mbed.cloud.sdk.update.model.FirmwareManifest) Update(com.arm.mbed.cloud.sdk.Update) CampaignDevicesStatesListOptions(com.arm.mbed.cloud.sdk.update.model.CampaignDevicesStatesListOptions) Date(java.util.Date) MbedCloudException(com.arm.mbed.cloud.sdk.common.MbedCloudException) DeviceDirectory(com.arm.mbed.cloud.sdk.DeviceDirectory) QueryListOptions(com.arm.mbed.cloud.sdk.devicedirectory.model.QueryListOptions) Campaign(com.arm.mbed.cloud.sdk.update.model.Campaign) ConnectionOptions(com.arm.mbed.cloud.sdk.common.ConnectionOptions) CampaignDeviceState(com.arm.mbed.cloud.sdk.update.model.CampaignDeviceState) AbstractExample(utils.AbstractExample) Example(utils.Example)

Example 2 with FirmwareManifest

use of com.arm.mbed.cloud.sdk.update.model.FirmwareManifest in project mbed-cloud-sdk-java by ARMmbed.

the class Update method addFirmwareManifest.

/**
 * Adds a firmware manifest.
 * <p>
 * Example:
 *
 * <pre>
 * {@code
 * try {
 *     String fileName = "C:\\Users\\mbedUser\\quickstart.manifest";
 *     FirmwareManifest manifest = new FirmwareManifest();
 *     manifest.setDatafile(fileName);
 *     manifest.setDescription("Quick start manifest");
 *     manifest.setName(manifest.getDatafile().getName());
 *
 *     FirmwareManifest newManifest = updateApi.addFirmwareManifest(manifest);
 *     System.out.println("FirmwareManifest URL: " + newManifest.getUrl());
 *
 * } catch (MbedCloudException e) {
 *     e.printStackTrace();
 * }
 * }
 * </pre>
 *
 * @param manifest
 *            The manifest to add.
 * @return added manifest.
 * @throws MbedCloudException
 *             if a problem occurred during request processing.
 */
@API
@Nullable
public FirmwareManifest addFirmwareManifest(@NonNull FirmwareManifest manifest) throws MbedCloudException {
    checkNotNull(manifest, TAG_FIRMWARE_MANIFEST);
    checkModelValidity(manifest, TAG_FIRMWARE_MANIFEST);
    final FirmwareManifest finalManifest = manifest;
    return CloudCaller.call(this, "addFirmwareManifest()", FirmwareManifestAdapter.getMapper(), new CloudCall<com.arm.mbed.cloud.sdk.internal.updateservice.model.FirmwareManifest>() {

        @Override
        public Call<com.arm.mbed.cloud.sdk.internal.updateservice.model.FirmwareManifest> call() {
            return endpoint.getUpdate().firmwareManifestCreate(DataFileAdapter.reverseMap(finalManifest.getDataFile()), finalManifest.getName(), finalManifest.getDescription(), DataFileAdapter.reverseMap(finalManifest.getDecryptionKeysFile()));
        }
    });
}
Also used : CloudCall(com.arm.mbed.cloud.sdk.common.CloudCaller.CloudCall) Call(retrofit2.Call) FirmwareManifest(com.arm.mbed.cloud.sdk.update.model.FirmwareManifest) API(com.arm.mbed.cloud.sdk.annotations.API) Nullable(com.arm.mbed.cloud.sdk.annotations.Nullable)

Example 3 with FirmwareManifest

use of com.arm.mbed.cloud.sdk.update.model.FirmwareManifest in project mbed-cloud-sdk-java by ARMmbed.

the class UpdateExamples method listFirmwareManifests.

/**
 * Lists the first 5 firmware manifests.
 */
@SuppressWarnings("boxing")
@Example
public void listFirmwareManifests() {
    ConnectionOptions config = Configuration.get();
    Update api = new Update(config);
    try {
        // Defining query options.
        FirmwareManifestListOptions options = new FirmwareManifestListOptions();
        options.setLimit(5);
        // Listing firmware manifests.
        Paginator<FirmwareManifest> manifests = api.listAllFirmwareManifests(options);
        for (FirmwareManifest manifest : manifests) {
            log("Firmware manifest", manifest);
        }
    } catch (Exception e) {
        logError("last API Metadata", api.getLastApiMetadata());
        fail(e.getMessage());
    }
}
Also used : FirmwareManifestListOptions(com.arm.mbed.cloud.sdk.update.model.FirmwareManifestListOptions) FirmwareManifest(com.arm.mbed.cloud.sdk.update.model.FirmwareManifest) ConnectionOptions(com.arm.mbed.cloud.sdk.common.ConnectionOptions) Update(com.arm.mbed.cloud.sdk.Update) MbedCloudException(com.arm.mbed.cloud.sdk.common.MbedCloudException) AbstractExample(utils.AbstractExample) Example(utils.Example)

Example 4 with FirmwareManifest

use of com.arm.mbed.cloud.sdk.update.model.FirmwareManifest in project mbed-cloud-sdk-java by ARMmbed.

the class FirmwareManifestAdapter method mapList.

/**
 * Maps list of manifests.
 *
 * @param list
 *            manifest page
 * @return list of manifest
 */
public static ListResponse<FirmwareManifest> mapList(FirmwareManifestPage list) {
    final FirmwareManifestPage imageList = list;
    final RespList<com.arm.mbed.cloud.sdk.internal.updateservice.model.FirmwareManifest> respList = new RespList<com.arm.mbed.cloud.sdk.internal.updateservice.model.FirmwareManifest>() {

        @Override
        public Boolean getHasMore() {
            return (imageList == null) ? null : imageList.isHasMore();
        }

        @Override
        public Integer getTotalCount() {
            return (imageList == null) ? null : imageList.getTotalCount();
        }

        @Override
        public String getAfter() {
            return (imageList == null) ? null : imageList.getAfter();
        }

        @Override
        public Integer getLimit() {
            return (imageList == null) ? null : imageList.getLimit();
        }

        @Override
        public String getOrder() {
            return (imageList == null) ? null : imageList.getOrder().toString();
        }

        @Override
        public List<com.arm.mbed.cloud.sdk.internal.updateservice.model.FirmwareManifest> getData() {
            return (imageList == null) ? null : imageList.getData();
        }
    };
    return GenericAdapter.mapList(respList, getMapper());
}
Also used : FirmwareManifestPage(com.arm.mbed.cloud.sdk.internal.updateservice.model.FirmwareManifestPage) FirmwareManifest(com.arm.mbed.cloud.sdk.update.model.FirmwareManifest) RespList(com.arm.mbed.cloud.sdk.common.GenericAdapter.RespList)

Example 5 with FirmwareManifest

use of com.arm.mbed.cloud.sdk.update.model.FirmwareManifest in project mbed-cloud-sdk-java by ARMmbed.

the class FirmwareManifestAdapter method map.

/**
 * Maps firmware manifest.
 *
 * @param manifest
 *            manifest
 * @return manifest
 */
public static FirmwareManifest map(com.arm.mbed.cloud.sdk.internal.updateservice.model.FirmwareManifest manifest) {
    if (manifest == null) {
        return null;
    }
    final FirmwareManifest firmwareManifest = new FirmwareManifest(manifest.getId(), TranslationUtils.toUrl(manifest.getDatafile()), manifest.getDeviceClass(), TranslationUtils.toLong(manifest.getDatafileSize()), TranslationUtils.toDate(manifest.getCreatedAt()), TranslationUtils.toDate(manifest.getUpdatedAt()), TranslationUtils.toDate(manifest.getTimestamp()), TranslationUtils.toUrl(manifest.getKeyTable()));
    firmwareManifest.setDataFile(null);
    firmwareManifest.setDecryptionKeysFile(null);
    firmwareManifest.setDescription(manifest.getDescription());
    firmwareManifest.setName(manifest.getName());
    return firmwareManifest;
}
Also used : FirmwareManifest(com.arm.mbed.cloud.sdk.update.model.FirmwareManifest)

Aggregations

FirmwareManifest (com.arm.mbed.cloud.sdk.update.model.FirmwareManifest)5 Update (com.arm.mbed.cloud.sdk.Update)2 ConnectionOptions (com.arm.mbed.cloud.sdk.common.ConnectionOptions)2 MbedCloudException (com.arm.mbed.cloud.sdk.common.MbedCloudException)2 FirmwareManifestListOptions (com.arm.mbed.cloud.sdk.update.model.FirmwareManifestListOptions)2 AbstractExample (utils.AbstractExample)2 Example (utils.Example)2 DeviceDirectory (com.arm.mbed.cloud.sdk.DeviceDirectory)1 API (com.arm.mbed.cloud.sdk.annotations.API)1 Nullable (com.arm.mbed.cloud.sdk.annotations.Nullable)1 CloudCall (com.arm.mbed.cloud.sdk.common.CloudCaller.CloudCall)1 RespList (com.arm.mbed.cloud.sdk.common.GenericAdapter.RespList)1 Query (com.arm.mbed.cloud.sdk.devicedirectory.model.Query)1 QueryListOptions (com.arm.mbed.cloud.sdk.devicedirectory.model.QueryListOptions)1 FirmwareManifestPage (com.arm.mbed.cloud.sdk.internal.updateservice.model.FirmwareManifestPage)1 Campaign (com.arm.mbed.cloud.sdk.update.model.Campaign)1 CampaignDeviceState (com.arm.mbed.cloud.sdk.update.model.CampaignDeviceState)1 CampaignDevicesStatesListOptions (com.arm.mbed.cloud.sdk.update.model.CampaignDevicesStatesListOptions)1 Date (java.util.Date)1 Call (retrofit2.Call)1