/* * Copyright (c) 2016 EMC Corporation * All Rights Reserved */ package com.emc.storageos.vnxe.requests; import java.util.List; import com.emc.storageos.vnxe.VNXeConstants; import com.emc.storageos.vnxe.models.ConsistencyGroupCreateParam; import com.emc.storageos.vnxe.models.LunGroupModifyParam; import com.emc.storageos.vnxe.models.StorageResource; import com.emc.storageos.vnxe.models.VNXeCommandJob; import com.emc.storageos.vnxe.models.VNXeCommandResult; import com.emc.storageos.vnxe.models.VNXeLun; public class ConsistencyGroupRequests extends KHRequests<StorageResource> { private static String URL_CREATE = "/api/types/storageResource/action/createConsistencyGroup"; private static String URL_MODIFY1 = "/api/instances/storageResource/"; private static String URL_MODIFY2 = "/action/modifyConsistencyGroup"; private static String URL_RESOURCES = "/api/types/storageResource/instances"; private static String FIELDS = "name"; public ConsistencyGroupRequests(KHClient client) { super(client); _fields = FIELDS; } /** * Create consistency group * @param createParam * @return */ public VNXeCommandResult createConsistencyGroup(ConsistencyGroupCreateParam createParam) { _url = URL_CREATE; return postRequestSync(createParam); } /** * Modify consistency group in Async mode * @param id consistency group id * @param param * @return */ public VNXeCommandJob modifyConsistencyGroupAsync(String id, LunGroupModifyParam param) { StringBuilder urlBld = new StringBuilder(URL_MODIFY1); urlBld.append(id); urlBld.append(URL_MODIFY2); _url = urlBld.toString(); return postRequestAsync(param); } /** * Modify consistency group in Sync mode * @param id consistency group id * @param param * @return */ public VNXeCommandResult modifyConsistencyGroupSync(String id, LunGroupModifyParam param) { StringBuilder urlBld = new StringBuilder(URL_MODIFY1); urlBld.append(id); urlBld.append(URL_MODIFY2); _url = urlBld.toString(); return postRequestSync(param); } /** * Get Consistency group Id by its name * @param cgName consistency group name * @return cg id */ public String getConsistencyGroupIdByName(String cgName) { String result = null; _url = URL_RESOURCES; setFilter(VNXeConstants.NAME_FILTER + "\"" + cgName + "\""); List<StorageResource> res = getDataForObjects(StorageResource.class); if (res != null && !res.isEmpty()) { result = res.get(0).getId(); } return result; } }