Skip to content

Commit 5aefd3e

Browse files
committed
Merge remote-tracking branch 'origin/4.15'
2 parents d184e28 + 937def5 commit 5aefd3e

10 files changed

Lines changed: 39 additions & 23 deletions

File tree

‎plugins/hypervisors/vmware/src/main/java/com/cloud/hypervisor/vmware/resource/VmwareResource.java‎

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5008,12 +5008,12 @@ protected Answer execute(ModifyStoragePoolCommand cmd) {
50085008
answer.setLocalDatastoreName(morDatastore.getValue());
50095009

50105010
childDsMo.setCustomFieldValue(CustomFieldConstants.CLOUD_UUID, uuid);
5011-
HypervisorHostHelper.createBaseFolderInDatastore(childDsMo, hyperHost);
5011+
HypervisorHostHelper.createBaseFolderInDatastore(childDsMo, hyperHost.getHyperHostDatacenter());
50125012

50135013
childDatastoresModifyStoragePoolAnswers.add(answer);
50145014
}
50155015
} else {
5016-
HypervisorHostHelper.createBaseFolderInDatastore(dsMo, hyperHost);
5016+
HypervisorHostHelper.createBaseFolderInDatastore(dsMo, hyperHost.getHyperHostDatacenter());
50175017

50185018
DatastoreSummary summary = dsMo.getDatastoreSummary();
50195019
capacity = summary.getCapacity();
@@ -5948,6 +5948,8 @@ private List<StartupStorageCommand> initializeLocalStorage() {
59485948
dsMo.setCustomFieldValue(CustomFieldConstants.CLOUD_UUID, poolUuid);
59495949
}
59505950

5951+
HypervisorHostHelper.createBaseFolder(dsMo, hyperHost, StoragePoolType.VMFS);
5952+
59515953
DatastoreSummary dsSummary = dsMo.getDatastoreSummary();
59525954
String address = hostMo.getHostName();
59535955
StoragePoolInfo pInfo = new StoragePoolInfo(poolUuid, address, dsMo.getMor().getValue(), "", StoragePoolType.VMFS, dsSummary.getCapacity(),

‎plugins/hypervisors/vmware/src/main/java/com/cloud/storage/resource/VmwareStorageLayoutHelper.java‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -263,6 +263,7 @@ public static void moveVolumeToRootFolder(DatacenterMO dcMo, List<String> detach
263263
s_logger.info("Check if we need to move " + fileFullDsPath + " to its root location");
264264
DatastoreMO dsMo = new DatastoreMO(dcMo.getContext(), dcMo.findDatastore(file.getDatastoreName()));
265265
if (dsMo.getMor() != null && !dsMo.getDatastoreType().equalsIgnoreCase("VVOL")) {
266+
HypervisorHostHelper.createBaseFolderInDatastore(dsMo, dsMo.getDataCenterMor());
266267
DatastoreFile targetFile = new DatastoreFile(file.getDatastoreName(), HypervisorHostHelper.VSPHERE_DATASTORE_BASE_FOLDER, file.getFileName());
267268
if (!targetFile.getPath().equalsIgnoreCase(file.getPath())) {
268269
s_logger.info("Move " + file.getPath() + " -> " + targetFile.getPath());
@@ -370,6 +371,7 @@ public static void deleteVolumeVmdkFiles(DatastoreMO dsMo, String volumeName, Da
370371

371372
//This method call is for the volumes which actually exists
372373
public static String getLegacyDatastorePathFromVmdkFileName(DatastoreMO dsMo, String vmdkFileName) throws Exception {
374+
HypervisorHostHelper.createBaseFolderInDatastore(dsMo, dsMo.getDataCenterMor());
373375
String vmdkDatastorePath = String.format("[%s] %s/%s", dsMo.getName(), HypervisorHostHelper.VSPHERE_DATASTORE_BASE_FOLDER, vmdkFileName);
374376
if (!dsMo.fileExists(vmdkDatastorePath)) {
375377
vmdkDatastorePath = getDeprecatedLegacyDatastorePathFromVmdkFileName(dsMo, vmdkFileName);
@@ -379,6 +381,7 @@ public static String getLegacyDatastorePathFromVmdkFileName(DatastoreMO dsMo, St
379381

380382
//This method call is for the volumes to be created or can also be for volumes already exists
381383
public static String getDatastorePathBaseFolderFromVmdkFileName(DatastoreMO dsMo, String vmdkFileName) throws Exception {
384+
HypervisorHostHelper.createBaseFolderInDatastore(dsMo, dsMo.getDataCenterMor());
382385
return String.format("[%s] %s/%s", dsMo.getName(), HypervisorHostHelper.VSPHERE_DATASTORE_BASE_FOLDER, vmdkFileName);
383386
}
384387

‎plugins/hypervisors/vmware/src/main/java/com/cloud/storage/resource/VmwareStorageProcessor.java‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3772,6 +3772,7 @@ private Long restoreVolumeFromSecStorage(VmwareHypervisorHost hyperHost, Datasto
37723772
}
37733773

37743774
if(!primaryDsMo.getDatastoreType().equalsIgnoreCase("VVOL")) {
3775+
HypervisorHostHelper.createBaseFolderInDatastore(primaryDsMo, primaryDsMo.getDataCenterMor());
37753776
clonedVm.moveAllVmDiskFiles(primaryDsMo, HypervisorHostHelper.VSPHERE_DATASTORE_BASE_FOLDER, false);
37763777
}
37773778
clonedVm.detachAllDisks();

‎plugins/hypervisors/xenserver/src/main/java/com/cloud/hypervisor/xenserver/resource/CitrixResourceBase.java‎

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1507,13 +1507,13 @@ public void destroyPatchVbd(final Connection conn, final Set<VM> vms) throws Xml
15071507
final VDI patchVDI = findPatchIsoVDI(conn, sr);
15081508
for (final VM vm : vms) {
15091509
final String vmName = vm.getNameLabel(conn);
1510-
try {
1511-
if (!vmName.startsWith("r-") && !vmName.startsWith("s-") && !vmName.startsWith("v-")) {
1512-
return;
1513-
}
1514-
final Set<VBD> vbds = vm.getVBDs(conn);
1515-
for (final VBD vbd : vbds) {
1516-
if (Types.VbdType.CD.equals(vbd.getType(conn))) {
1510+
if (!vmName.startsWith("r-") && !vmName.startsWith("s-") && !vmName.startsWith("v-")) {
1511+
continue;
1512+
}
1513+
final Set<VBD> vbds = vm.getVBDs(conn);
1514+
for (final VBD vbd : vbds) {
1515+
if (Types.VbdType.CD.equals(vbd.getType(conn))) {
1516+
try {
15171517
if (!vbd.getEmpty(conn)) {
15181518
vbd.eject(conn);
15191519
}
@@ -1522,12 +1522,16 @@ public void destroyPatchVbd(final Connection conn, final Set<VM> vms) throws Xml
15221522
vbd.insert(conn, patchVDI);
15231523
vbd.eject(conn);
15241524
}
1525+
} catch (Exception e) {
1526+
s_logger.debug("Cannot eject CD-ROM device for VM " + vmName + " due to " + e.toString(), e);
1527+
}
1528+
try {
15251529
vbd.destroy(conn);
1526-
break;
1530+
} catch (Exception e) {
1531+
s_logger.debug("Cannot destroy CD-ROM device for VM " + vmName + " due to " + e.toString(), e);
15271532
}
1533+
break;
15281534
}
1529-
} catch (final Exception e) {
1530-
s_logger.debug("Cannot destroy CD-ROM device for VM " + vmName + " due to " + e.toString(), e);
15311535
}
15321536
}
15331537
}

‎server/src/main/java/com/cloud/storage/VolumeApiServiceImpl.java‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1215,7 +1215,7 @@ public VolumeVO resizeVolume(ResizeVolumeCmd cmd) throws ResourceAllocationExcep
12151215

12161216
private void checkIfVolumeIsRootAndVmIsRunning(Long newSize, VolumeVO volume, VMInstanceVO vmInstanceVO) {
12171217
if (!volume.getSize().equals(newSize) && volume.getVolumeType().equals(Volume.Type.ROOT) && !State.Stopped.equals(vmInstanceVO.getState())) {
1218-
throw new InvalidParameterValueException(String.format("Cannot resize ROOT volume [%s] when VM is not on Stopped State. VM %s is in state %.", volume.getName(), vmInstanceVO
1218+
throw new InvalidParameterValueException(String.format("Cannot resize ROOT volume [%s] when VM is not on Stopped State. VM %s is in state %s", volume.getName(), vmInstanceVO
12191219
.getInstanceName(), vmInstanceVO.getState()));
12201220
}
12211221
}

‎systemvm/debian/opt/cloud/bin/cs_dhcp.py‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ def merge(dbag, data):
2828
else:
2929
remove_keys = set()
3030
for key, entry in dbag.iteritems():
31-
if key != 'id' and entry['mac_address'] == data['mac_address'] and data['remove']:
31+
if key != 'id' and entry['mac_address'] == data['mac_address']:
3232
remove_keys.add(key)
3333
break
3434

‎ui/src/views/iam/AddUser.vue‎

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,9 @@
137137
</a-tooltip>
138138
</span>
139139
<a-select
140-
v-decorator="['account']"
140+
v-decorator="['account', {
141+
rules: [{ required: true, message: $t('message.error.required.input') }]
142+
}]"
141143
:loading="loadingAccount"
142144
:placeholder="apiParams.account.description">
143145
<a-select-option v-for="(item, idx) in accountList" :key="idx">
@@ -225,7 +227,7 @@ export default {
225227
this.apiConfig.params.forEach(param => {
226228
this.apiParams[param.name] = param
227229
})
228-
this.apiConfig = this.$store.getters.apis.authorizeSamlSso || {}
230+
this.apiConfig = this.$store.getters.apis.authorizeSamlSso || { params: [] }
229231
this.apiConfig.params.forEach(param => {
230232
this.apiParams[param.name] = param
231233
})
@@ -319,7 +321,7 @@ export default {
319321
320322
if (this.account) {
321323
params.account = this.account
322-
} else if (values.account) {
324+
} else if (this.accountList[values.account]) {
323325
params.account = this.accountList[values.account].name
324326
}
325327

‎vmware-base/src/main/java/com/cloud/hypervisor/vmware/mo/DatastoreMO.java‎

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -68,6 +68,10 @@ public DatastoreSummary getDatastoreSummary() throws Exception {
6868
return (DatastoreSummary)_context.getVimClient().getDynamicProperty(_mor, "summary");
6969
}
7070

71+
public ManagedObjectReference getDataCenterMor() throws Exception {
72+
return getOwnerDatacenter().first().getMor();
73+
}
74+
7175
public HostDatastoreBrowserMO getHostDatastoreBrowserMO() throws Exception {
7276
return new HostDatastoreBrowserMO(_context, (ManagedObjectReference)_context.getVimClient().getDynamicProperty(_mor, "browser"));
7377
}

‎vmware-base/src/main/java/com/cloud/hypervisor/vmware/mo/HostMO.java‎

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -890,7 +890,7 @@ public ManagedObjectReference mountDatastore(boolean vmfsDatastore, String poolH
890890
}
891891

892892
if (dsMo != null && !"StoragePod".equals(morDatastore.getType()) && createBaseFolder) {
893-
HypervisorHostHelper.createBaseFolderInDatastore(dsMo, this);
893+
HypervisorHostHelper.createBaseFolderInDatastore(dsMo, this.getHyperHostDatacenter());
894894
}
895895

896896
if (s_logger.isTraceEnabled())

‎vmware-base/src/main/java/com/cloud/hypervisor/vmware/mo/HypervisorHostHelper.java‎

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2234,23 +2234,23 @@ public static void createBaseFolder(DatastoreMO dsMo, VmwareHypervisorHost hyper
22342234
List<ManagedObjectReference> datastoresInCluster = storagepodMO.getDatastoresInDatastoreCluster();
22352235
for (ManagedObjectReference datastore : datastoresInCluster) {
22362236
DatastoreMO childDsMo = new DatastoreMO(hyperHost.getContext(), datastore);
2237-
createBaseFolderInDatastore(childDsMo, hyperHost);
2237+
createBaseFolderInDatastore(childDsMo, hyperHost.getHyperHostDatacenter());
22382238
}
22392239
} else {
2240-
createBaseFolderInDatastore(dsMo, hyperHost);
2240+
createBaseFolderInDatastore(dsMo, hyperHost.getHyperHostDatacenter());
22412241
}
22422242
}
22432243

2244-
public static void createBaseFolderInDatastore(DatastoreMO dsMo, VmwareHypervisorHost hyperHost) throws Exception {
2244+
public static void createBaseFolderInDatastore(DatastoreMO dsMo, ManagedObjectReference mor) throws Exception {
22452245
String dsPath = String.format("[%s]", dsMo.getName());
22462246
String folderPath = String.format("[%s] %s", dsMo.getName(), VSPHERE_DATASTORE_BASE_FOLDER);
22472247
String hiddenFolderPath = String.format("%s/%s", folderPath, VSPHERE_DATASTORE_HIDDEN_FOLDER);
22482248

22492249
if (!dsMo.folderExists(dsPath, VSPHERE_DATASTORE_BASE_FOLDER)) {
22502250
s_logger.info(String.format("vSphere datastore base folder: %s does not exist, now creating on datastore: %s", VSPHERE_DATASTORE_BASE_FOLDER, dsMo.getName()));
2251-
dsMo.makeDirectory(folderPath, hyperHost.getHyperHostDatacenter());
2251+
dsMo.makeDirectory(folderPath, mor);
22522252
// Adding another directory so vCentre doesn't remove the fcd directory when it's empty
2253-
dsMo.makeDirectory(hiddenFolderPath, hyperHost.getHyperHostDatacenter());
2253+
dsMo.makeDirectory(hiddenFolderPath, mor);
22542254
}
22552255
}
22562256

0 commit comments

Comments
 (0)