use of com.emc.storageos.vnxe.models.LunGroupModifyParam in project coprhd-controller by CoprHD.
the class VNXeApiClient method unexportLun.
/**
* remove the hosts from the hostAccess list from the lun
*
* @param host
* @param lunId
*/
public void unexportLun(String hostId, String lunId) {
_logger.info("Unexporting lun: {}", lunId);
if (!checkLunExists(lunId)) {
_logger.info("The lun {} does not exist, do nothing", lunId);
return;
}
VNXeLun lun = getLun(lunId);
if (lun == null) {
_logger.info("Could not find lun in the vxne: {}", lunId);
return;
}
List<BlockHostAccess> hostAccesses = lun.getHostAccess();
if (hostAccesses == null || hostAccesses.isEmpty()) {
_logger.info("No block host access found for the lun: {}", lunId);
return;
}
List<BlockHostAccess> changedHostAccessList = new ArrayList<BlockHostAccess>();
for (BlockHostAccess hostAccess : hostAccesses) {
if (hostId.equals(hostAccess.getHost().getId())) {
if (hostAccess.getAccessMask() == HostLUNAccessEnum.BOTH.getValue()) {
hostAccess.setAccessMask(HostLUNAccessEnum.SNAPSHOT.getValue());
} else if (hostAccess.getAccessMask() == HostLUNAccessEnum.PRODUCTION.getValue()) {
hostAccess.setAccessMask(HostLUNAccessEnum.NOACCESS.getValue());
}
}
changedHostAccessList.add(hostAccess);
}
if (changedHostAccessList.isEmpty()) {
// the removing hosts are not exported
_logger.info("The unexport hosts were not exported.");
return;
}
LunParam lunParam = new LunParam();
lunParam.setHostAccess(changedHostAccessList);
LunModifyParam modifyParam = new LunModifyParam();
modifyParam.setLunParameters(lunParam);
int type = lun.getType();
if (type == VNXeLun.LUNTypeEnum.Standalone.getValue()) {
// if standalone lun
BlockLunRequests lunReq = new BlockLunRequests(_khClient);
lunReq.modifyLunSync(modifyParam, lun.getStorageResource().getId());
} else {
// lun in a lun group
modifyParam.setLun(new VNXeBase(lunId));
List<LunModifyParam> list = new ArrayList<LunModifyParam>();
list.add(modifyParam);
LunGroupModifyParam groupParam = new LunGroupModifyParam();
groupParam.setLunModify(list);
if (!_khClient.isUnity()) {
LunGroupRequests lunGroupReq = new LunGroupRequests(_khClient);
lunGroupReq.modifyLunGroupSync(lun.getStorageResource().getId(), groupParam);
} else {
ConsistencyGroupRequests cgReq = new ConsistencyGroupRequests(_khClient);
cgReq.modifyConsistencyGroupSync(lun.getStorageResource().getId(), groupParam);
}
}
_logger.info("Done unexporting lun: {}", lunId);
}
use of com.emc.storageos.vnxe.models.LunGroupModifyParam in project coprhd-controller by CoprHD.
the class VNXeApiClient method createLunsInConsistencyGroup.
/**
* Create multiple volumes in a lun group
*
* @param names
* @param poolId
* @param size
* @param isThin
* @param tieringPolicy
* @param cgId
* @return
*/
public VNXeCommandJob createLunsInConsistencyGroup(List<String> names, String poolId, Long size, boolean isThin, String tieringPolicy, String cgId) {
_logger.info("creating luns in the consistencyGroup group: {}", cgId);
LunGroupModifyParam param = new LunGroupModifyParam();
List<LunCreateParam> lunCreates = new ArrayList<LunCreateParam>();
boolean isPolicyOn = false;
FastVPParam fastVP = new FastVPParam();
if (tieringPolicy != null && !tieringPolicy.isEmpty()) {
TieringPolicyEnum tierValue = TieringPolicyEnum.valueOf(tieringPolicy);
if (tierValue != null) {
fastVP.setTieringPolicy(tierValue.getValue());
isPolicyOn = true;
}
}
StorageResourceRequest cgRequest = new StorageResourceRequest(_khClient);
StorageResource cg = cgRequest.get(cgId);
for (String lunName : names) {
LunParam lunParam = new LunParam();
lunParam.setIsThinEnabled(isThin);
lunParam.setSize(size);
lunParam.setPool(new VNXeBase(poolId));
List<BlockHostAccess> hostAccesses = cg.getBlockHostAccess();
if (hostAccesses != null && !hostAccesses.isEmpty()) {
for (BlockHostAccess hostAccess : hostAccesses) {
hostAccess.setAccessMask(HostLUNAccessEnum.NOACCESS.getValue());
}
lunParam.setHostAccess(hostAccesses);
}
LunCreateParam createParam = new LunCreateParam();
createParam.setName(lunName);
createParam.setLunParameters(lunParam);
if (isPolicyOn) {
lunParam.setFastVPParameters(fastVP);
}
lunCreates.add(createParam);
}
param.setLunCreate(lunCreates);
ConsistencyGroupRequests req = new ConsistencyGroupRequests(_khClient);
return req.modifyConsistencyGroupAsync(cgId, param);
}
use of com.emc.storageos.vnxe.models.LunGroupModifyParam in project coprhd-controller by CoprHD.
the class VNXeApiClient method deleteLunsFromConsistencyGroup.
/**
* Delete luns from consistency group
*
* @param cgId
* @param luns
* @return
*/
public VNXeCommandResult deleteLunsFromConsistencyGroup(String cgId, List<String> luns) {
LunGroupModifyParam param = new LunGroupModifyParam();
List<LunAddParam> lunDelete = new ArrayList<LunAddParam>();
for (String lunId : luns) {
VNXeBase lun = new VNXeBase(lunId);
LunAddParam lunAdd = new LunAddParam();
lunAdd.setLun(lun);
lunDelete.add(lunAdd);
}
param.setLunDelete(lunDelete);
ConsistencyGroupRequests req = new ConsistencyGroupRequests(_khClient);
return req.modifyConsistencyGroupSync(cgId, param);
}
Aggregations