/* * Copyright (c) 2015 EMC Corporation * All Rights Reserved */ package util; import static com.emc.vipr.client.core.util.ResourceUtils.uri; import static util.BourneUtil.getViprClient; import java.net.URI; import java.util.Collection; import java.util.List; import org.apache.commons.lang.StringUtils; import com.emc.storageos.model.compute.ComputeImageRestRep; import com.emc.storageos.model.compute.ComputeImageCreate; import com.emc.storageos.model.compute.ComputeImageUpdate; import com.emc.vipr.client.Task; import com.emc.vipr.client.core.util.CachedResources; import com.emc.vipr.client.exceptions.ViPRHttpException; public class ComputeImageUtils { private static final String NAME_NOT_AVAILABLE = "ComputeImages.nameNotAvailable"; public static CachedResources<ComputeImageRestRep> createCache() { return new CachedResources<ComputeImageRestRep>(getViprClient().computeImages()); } public static ComputeImageRestRep getComputeImage(String id) { return getComputeImage(uri(id)); } public static ComputeImageRestRep getComputeImage(URI id) { try { return getViprClient().computeImages().get(id); } catch (ViPRHttpException e) { if (e.getHttpCode() == 404) { return null; } throw e; } } public static List<ComputeImageRestRep> getComputeImages() { return getViprClient().computeImages().getAll(); } public static List<ComputeImageRestRep> getComputeImages(Collection<URI> ids) { return getViprClient().computeImages().getByIds(ids); } public static String getName(ComputeImageRestRep computeImage) { if (StringUtils.isNotBlank(computeImage.getName())) { return computeImage.getName(); } else { return MessagesUtils.get(NAME_NOT_AVAILABLE); } } public static Task<ComputeImageRestRep> create(ComputeImageCreate param) { return getViprClient().computeImages().create(param); } public static Task<ComputeImageRestRep> update(String id, ComputeImageUpdate param) { return getViprClient().computeImages().update(uri(id), param); } public static void deactivate(URI id) { getViprClient().computeImages().deactivate(id); } public static Task<ComputeImageRestRep> cloneImage(ComputeImageCreate param) { return getViprClient().computeImages().cloneImage(param); } }