/* * Copyright (c) 2012-2015 iWave Software LLC * All Rights Reserved */ package com.emc.sa.asset.providers; import java.util.ArrayList; import java.util.List; import org.springframework.stereotype.Component; import com.emc.vipr.model.catalog.AssetOption; import com.emc.sa.asset.AssetOptionsContext; import com.emc.sa.asset.BaseAssetOptionsProvider; import com.emc.sa.asset.annotation.Asset; import com.emc.sa.asset.annotation.AssetNamespace; import com.emc.storageos.db.client.model.ComputeImage; import com.emc.storageos.model.compute.ComputeImageRestRep; @Component @AssetNamespace("vipr") public class ComputeImageProvider extends BaseAssetOptionsProvider { protected List<ComputeImageRestRep> getComputeImages(AssetOptionsContext context) { debug("getting compute images"); return api(context).computeImages().getAll(); } @Asset("computeImage") public List<AssetOption> getComputeImageOptions(AssetOptionsContext ctx) { debug("getting compute images"); List<ComputeImageRestRep> availCis = new ArrayList<ComputeImageRestRep>(); for (ComputeImageRestRep ci : getComputeImages(ctx)) { if (ComputeImage.ComputeImageStatus.AVAILABLE.name().equals(ci.getComputeImageStatus())) { availCis.add(ci); } } return createBaseResourceOptions(availCis); } protected AssetOption createComputeImageOption(AssetOptionsContext ctx, ComputeImageRestRep value) { String label = value.getName(); return new AssetOption(value.getId(), label); } }