/* * Copyright (c) 2012-2015 iWave Software LLC * All Rights Reserved */ package com.emc.sa.service.vmware.block; import java.net.URI; import java.util.List; import java.util.Set; import com.emc.sa.engine.bind.Bindable; import com.emc.sa.engine.service.Service; import com.emc.sa.machinetags.vmware.VMwareDatastoreTagger; import com.emc.sa.service.vipr.block.BlockStorageUtils; import com.emc.sa.service.vipr.block.ExportBlockVolumeHelper; import com.emc.sa.service.vipr.block.ExportVMwareBlockVolumeHelper; import com.emc.sa.service.vmware.VMwareHostService; import com.emc.storageos.model.block.BlockObjectRestRep; @Service("VMware-ExportVolume") public class ExportVMwareVolumeService extends VMwareHostService { @Bindable protected ExportBlockVolumeHelper helper = new ExportVMwareBlockVolumeHelper(); @Override public boolean checkClusterConnectivity() { return false; } @Override public void precheck() throws Exception { vmware.disconnect(); helper.precheck(); } @Override public void execute() throws Exception { helper.exportVolumes(); setVmfsDatastoreTag(helper.getVolumeIds(), helper.getHostId()); this.connectAndInitializeHost(); vmware.refreshStorage(host, cluster); } private void setVmfsDatastoreTag(List<String> volumeIds, URI hostId) { for (String volumeId : volumeIds) { BlockObjectRestRep volume = BlockStorageUtils.getVolume(uri(volumeId)); Set<String> datastoreNames = VMwareDatastoreTagger.getDatastoreNames(volume); for (String datastoreName : datastoreNames) { vmware.addVmfsDatastoreTag(volume, hostId, datastoreName); } } } }