/* * Copyright (c) 2015 EMC Corporation * All Rights Reserved */ package util; import static com.emc.vipr.client.core.util.ResourceUtils.id; import static com.emc.vipr.client.core.util.ResourceUtils.uri; import static util.BourneUtil.getViprClient; import java.net.URI; import java.util.List; import java.util.Map; import java.util.Set; import com.emc.storageos.model.protection.ProtectionSystemConnectivityRestRep; import com.emc.storageos.model.protection.ProtectionSystemConnectivitySiteRestRep; import com.emc.storageos.model.protection.ProtectionSystemRequestParam; import com.emc.storageos.model.protection.ProtectionSystemRestRep; import com.emc.storageos.model.protection.ProtectionSystemUpdateRequestParam; import com.emc.storageos.model.systems.StorageSystemRestRep; import com.emc.vipr.client.Task; import com.emc.vipr.client.core.util.ResourceUtils; import com.emc.vipr.client.exceptions.ViPRHttpException; import com.google.common.collect.Sets; public class ProtectionSystemUtils { public static ProtectionSystemRestRep getProtectionSystem(String id) { try { return getViprClient().protectionSystems().get(uri(id)); } catch (ViPRHttpException e) { if (e.getHttpCode() == 404) { return null; } throw e; } } public static List<ProtectionSystemRestRep> getProtectionSystems() { return getViprClient().protectionSystems().getAll(); } public static List<ProtectionSystemRestRep> getProtectionSystems(List<URI> ids) { return getViprClient().protectionSystems().getByIds(ids); } public static ProtectionSystemConnectivityRestRep getConnectivity(ProtectionSystemRestRep protectionSystem) { return getViprClient().protectionSystems().getConnectivity(id(protectionSystem)); } public static Map<URI, StorageSystemRestRep> getStorageSystemMap( ProtectionSystemConnectivityRestRep protectionSystem) { Set<URI> ids = Sets.newHashSet(); for (ProtectionSystemConnectivitySiteRestRep site : protectionSystem.getProtectionSites()) { ids.addAll(ResourceUtils.refIds(site.getStorageSystems())); } return ResourceUtils.mapById(getViprClient().storageSystems().getByIds(ids)); } public static Task<ProtectionSystemRestRep> create(ProtectionSystemRequestParam protectionSystem) { return getViprClient().protectionSystems().create(protectionSystem); } public static Task<ProtectionSystemRestRep> update(String id, ProtectionSystemUpdateRequestParam protectionSystem) { return getViprClient().protectionSystems().update(uri(id), protectionSystem); } public static Task<ProtectionSystemRestRep> discover(URI id) { return getViprClient().protectionSystems().discover(id); } public static void deactivate(URI id) { getViprClient().protectionSystems().deactivate(id); } }