Import storagepolicies when vmware datacenter is added or updated

This commit is contained in:
Harikrishna Patnala 2020-07-15 22:44:51 +05:30
parent bea31b85ee
commit f858387b3c
2 changed files with 16 additions and 12 deletions

View File

@ -1184,6 +1184,7 @@ public class VmwareManagerImpl extends ManagerBase implements VmwareManager, Vmw
}
context = null;
}
importVsphereStoragePoliciesInternal(zoneId, vmwareDc.getId());
return vmwareDc;
}
@ -1244,6 +1245,7 @@ public class VmwareManagerImpl extends ManagerBase implements VmwareManager, Vmw
hostDetailsDao.persist(host.getId(), hostDetails);
}
}
importVsphereStoragePoliciesInternal(zoneId, vmwareDc.getId());
return vmwareDc;
}
return null;
@ -1400,13 +1402,6 @@ public class VmwareManagerImpl extends ManagerBase implements VmwareManager, Vmw
// Validate Id of zone
doesZoneExist(zoneId);
// Get DC associated with this zone
VmwareDatacenterVO vmwareDatacenter;
String vmwareDcName;
String vCenterHost;
String userName;
String password;
DatacenterMO dcMo = null;
final VmwareDatacenterZoneMapVO vmwareDcZoneMap = vmwareDatacenterZoneMapDao.findByZoneId(zoneId);
// Check if zone is associated with VMware DC
if (vmwareDcZoneMap == null) {
@ -1414,16 +1409,24 @@ public class VmwareManagerImpl extends ManagerBase implements VmwareManager, Vmw
}
final long vmwareDcId = vmwareDcZoneMap.getVmwareDcId();
vmwareDatacenter = vmwareDcDao.findById(vmwareDcId);
vmwareDcName = vmwareDatacenter.getVmwareDatacenterName();
vCenterHost = vmwareDatacenter.getVcenterHost();
userName = vmwareDatacenter.getUser();
password = vmwareDatacenter.getPassword();
return importVsphereStoragePoliciesInternal(zoneId, vmwareDcId);
}
public List<? extends VsphereStoragePolicy> importVsphereStoragePoliciesInternal(Long zoneId, Long vmwareDcId) {
// Get DC associated with this zone
VmwareDatacenterVO vmwareDatacenter = vmwareDcDao.findById(vmwareDcId);
String vmwareDcName = vmwareDatacenter.getVmwareDatacenterName();
String vCenterHost = vmwareDatacenter.getVcenterHost();
String userName = vmwareDatacenter.getUser();
String password = vmwareDatacenter.getPassword();
List<PbmProfile> storageProfiles = null;
try {
s_logger.debug(String.format("Importing vSphere Storage Policies for the vmware DC %d in zone %d", vmwareDcId, zoneId));
VmwareContext context = VmwareContextFactory.getContext(vCenterHost, userName, password);
PbmProfileManagerMO profileManagerMO = new PbmProfileManagerMO(context);
storageProfiles = profileManagerMO.getStorageProfiles();
s_logger.debug(String.format("Import vSphere Storage Policies for the vmware DC %d in zone %d is successful", vmwareDcId, zoneId));
} catch (Exception e) {
String msg = String.format("Unable to list storage profiles from DC %s due to : %s", vmwareDcName, VmwareHelper.getExceptionMessage(e));
s_logger.error(msg);

View File

@ -105,6 +105,7 @@ public class VmwareManagerImplTest {
Mockito.lenient().doReturn(hostDetails).when(hostDetailsDao).findDetails(Mockito.anyLong());
Mockito.doReturn("some-old-guid").when(hostDetails).get("guid");
Mockito.doReturn(hostDetails).when(hostDetailsDao).findDetails(Mockito.anyLong());
Mockito.doReturn(null).when(vmwareManager).importVsphereStoragePoliciesInternal(Mockito.anyLong(), Mockito.anyLong());
final VmwareDatacenter vmwareDatacenter = vmwareManager.updateVmwareDatacenter(updateVmwareDcCmd);