use of com.emc.storageos.api.service.impl.placement.FileMirrorRecommendation.Target in project coprhd-controller by CoprHD.
the class FileMirrorScheduler method prepareTargetFileRecommendation.
private void prepareTargetFileRecommendation(final String fsCopyMode, final VirtualArray targetVarray, FileRecommendation targetFileRecommendation, FileMirrorRecommendation fileMirrorRecommendation) {
// Set target recommendations!!!
Target target = new Target();
target.setTargetPool(targetFileRecommendation.getSourceStoragePool());
target.setTargetStorageDevice(targetFileRecommendation.getSourceStorageSystem());
if (targetFileRecommendation.getStoragePorts() != null) {
target.setTargetStoragePortUris(targetFileRecommendation.getStoragePorts());
}
if (targetFileRecommendation.getvNAS() != null) {
target.setTargetvNASURI(targetFileRecommendation.getvNAS());
}
if (fileMirrorRecommendation.getVirtualArrayTargetMap() == null) {
fileMirrorRecommendation.setVirtualArrayTargetMap(new HashMap<URI, FileMirrorRecommendation.Target>());
}
fileMirrorRecommendation.getVirtualArrayTargetMap().put(targetVarray.getId(), target);
// File replication copy mode
fileMirrorRecommendation.setCopyMode(fsCopyMode);
}
use of com.emc.storageos.api.service.impl.placement.FileMirrorRecommendation.Target in project coprhd-controller by CoprHD.
the class FileMirrorServiceApiImpl method setFileMirrorRecommendation.
/**
* Prepare the source and target filesystem using Recommandations
*
* @param placement
* @param vpoolSource
* @param vpoolTarget
* @param isTargetFS
* @param createInactive
* @param fileShare
*/
public void setFileMirrorRecommendation(FileMirrorRecommendation placement, final VirtualPool virtualPool, final VirtualArray virtualArray, final boolean isTargetFS, final Boolean createInactive, FileShare fileShare) {
StoragePool pool = null;
if (isTargetFS == false) {
if (null != placement.getSourceStoragePool()) {
pool = _dbClient.queryObject(StoragePool.class, placement.getSourceStoragePool());
}
fileShare.setPersonality(FileShare.PersonalityTypes.SOURCE.toString());
fileShare.setAccessState(FileAccessState.READWRITE.name());
// set the storage ports
if (placement.getStoragePorts() != null && !placement.getStoragePorts().isEmpty()) {
fileShare.setStoragePort(placement.getStoragePorts().get(0));
}
// set vnas server
if (placement.getvNAS() != null) {
fileShare.setVirtualNAS(placement.getvNAS());
}
} else {
Map<URI, FileMirrorRecommendation.Target> targetMap = placement.getVirtualArrayTargetMap();
if (targetMap != null) {
Target target = targetMap.get(virtualArray.getId());
if (target != null) {
pool = _dbClient.queryObject(StoragePool.class, target.getTargetStoragePool());
fileShare.setPersonality(FileShare.PersonalityTypes.TARGET.toString());
fileShare.setAccessState(FileAccessState.READABLE.name());
// set the target ports
if (target.getTargetStoragePortUris() != null && !target.getTargetStoragePortUris().isEmpty()) {
fileShare.setStoragePort(target.getTargetStoragePortUris().get(0));
}
// set the target vNAS
if (target.getTargetvNASURI() != null) {
fileShare.setVirtualNAS(target.getTargetvNASURI());
}
}
}
}
// set vpool
if (null != pool) {
fileShare.setStorageDevice(pool.getStorageDevice());
fileShare.setPool(pool.getId());
fileShare.setProtocol(new StringSet());
fileShare.getProtocol().addAll(VirtualPoolUtil.getMatchingProtocols(virtualPool.getProtocols(), virtualPool.getProtocols()));
}
_dbClient.updateObject(fileShare);
// finally set file share id in recommendation
placement.setId(fileShare.getId());
}
use of com.emc.storageos.api.service.impl.placement.FileMirrorRecommendation.Target in project coprhd-controller by CoprHD.
the class FilePolicyService method convertRecommendationsToStorageSystemAssociations.
private List<FileStorageSystemAssociation> convertRecommendationsToStorageSystemAssociations(List<FileRecommendation> recs, String appliedAt, URI vPoolURI, URI projectURI) {
List<FileStorageSystemAssociation> associations = new ArrayList<FileStorageSystemAssociation>();
for (FileRecommendation rec : recs) {
FileMirrorRecommendation mirrorRec = (FileMirrorRecommendation) rec;
FileStorageSystemAssociation association = new FileStorageSystemAssociation();
association.setSourceSystem(mirrorRec.getSourceStorageSystem());
association.setSourceVNAS(mirrorRec.getvNAS());
if (appliedAt.equalsIgnoreCase(FilePolicyApplyLevel.vpool.name())) {
association.setAppliedAtResource(vPoolURI);
} else if (appliedAt.equalsIgnoreCase(FilePolicyApplyLevel.project.name())) {
association.setProjectvPool(vPoolURI);
association.setAppliedAtResource(projectURI);
}
Map<URI, Target> virtualArrayTargetMap = mirrorRec.getVirtualArrayTargetMap();
// Getting the first target because we support one-to-one replication now.
URI targetVArray = virtualArrayTargetMap.entrySet().iterator().next().getKey();
Target target = virtualArrayTargetMap.entrySet().iterator().next().getValue();
URI targetStorageDevice = target.getTargetStorageDevice();
URI targetVNasURI = target.getTargetvNASURI();
TargetAssociation targetAssociation = new TargetAssociation();
targetAssociation.setStorageSystemURI(targetStorageDevice);
targetAssociation.setvArrayURI(targetVArray);
targetAssociation.setvNASURI(targetVNasURI);
association.addTargetAssociation(targetAssociation);
associations.add(association);
}
return associations;
}
Aggregations