/* * Copyright (c) 2015 EMC Corporation * All Rights Reserved */ package util; import java.net.URI; import java.util.List; import java.util.Set; import org.apache.commons.lang.StringUtils; import static com.emc.vipr.client.core.util.ResourceUtils.uri; import com.emc.storageos.model.NamedRelatedResourceRep; import com.emc.storageos.model.TaskList; import com.emc.storageos.model.application.VolumeGroupCopySetParam; import com.emc.storageos.model.application.VolumeGroupCreateParam; import com.emc.storageos.model.application.VolumeGroupList; import com.emc.storageos.model.application.VolumeGroupRestRep; import com.emc.storageos.model.application.VolumeGroupUpdateParam; /** * Utility for application support. * * @author hr2 */ public class AppSupportUtil { public static List<NamedRelatedResourceRep> getApplications() { return BourneUtil.getViprClient().application().getApplications().getVolumeGroups(); } public static VolumeGroupRestRep createApplication(String name, String description, Set<String> roles){ VolumeGroupCreateParam create = new VolumeGroupCreateParam(); create.setName(name); if (!StringUtils.isBlank(description)) { create.setDescription(description); } create.setRoles(roles); return BourneUtil.getViprClient().application().createApplication(create); } public static void deleteApplication(URI id) { BourneUtil.getViprClient().application().deleteApplication(id); } public static TaskList updateApplication(String name, String description, String id) { VolumeGroupUpdateParam update = new VolumeGroupUpdateParam(); if(!name.isEmpty()) { update.setName(name); } if(!description.isEmpty()) { update.setDescription(description); } return BourneUtil.getViprClient().application().updateApplication(uri(id), update); } public static VolumeGroupRestRep getApplication(String id) { return BourneUtil.getViprClient().application().getApplication(uri(id)); } public static List<NamedRelatedResourceRep> getVolumesByApplication(String id) { return BourneUtil.getViprClient().application().getVolumeByApplication(uri(id)).getVolumes(); } public static List<NamedRelatedResourceRep> getFullCopiesByApplication(String id) { return BourneUtil.getViprClient().application().getClonesByApplication(uri(id)).getVolumes(); } public static Set<String> getVolumeGroupSnapsetSessionSets(String id) { return BourneUtil.getViprClient().application().getVolumeGroupSnapsetSessionSets(uri(id)).getCopySets(); } public static List<NamedRelatedResourceRep> getVolumeGroupSnapshotSessionsByCopySet(String id, String sessionSet) { VolumeGroupCopySetParam snapshotSessionSet = new VolumeGroupCopySetParam(); snapshotSessionSet.setCopySetName(sessionSet); return BourneUtil.getViprClient().application().getVolumeGroupSnapshotSessionsByCopySet(uri(id), snapshotSessionSet) .getSnapSessionRelatedResourceList(); } public static Set<String> getVolumeGroupSnapshotSets(String id) { return BourneUtil.getViprClient().application().getVolumeGroupSnapshotSets(uri(id)).getCopySets(); } public static List<NamedRelatedResourceRep> getVolumeGroupSnapshotsForSet(String id, String snapSet) { VolumeGroupCopySetParam newParam = new VolumeGroupCopySetParam(); newParam.setCopySetName(snapSet); return BourneUtil.getViprClient().application().getVolumeGroupSnapshotsForSet(uri(id), newParam).getSnapList(); } public static Set<String> getFullCopySetsByApplication(String id) { return BourneUtil.getViprClient().application().getFullCopySetsByApplication(uri(id)).getCopySets(); } public static List<NamedRelatedResourceRep> getVolumeGroupFullCopiesForSet(String id, String copySets) { VolumeGroupCopySetParam getSetsForCopies = new VolumeGroupCopySetParam(); getSetsForCopies.setCopySetName(copySets); return BourneUtil.getViprClient().application().getVolumeGroupFullCopiesForSet(uri(id), getSetsForCopies).getVolumes(); } public static List<NamedRelatedResourceRep> getVolumeGroupByTenant(String id) { return BourneUtil.getViprClient().application() .getVolumeGroupsByTenant(uri(id)).getVolumeGroups(); } }