Skip to content

Commit 4ed2729

Browse files
Fix: clean up CloudStack metadata (zone, pod, cluster, host details) in libvirt XML for KVM VMs after unmanaged VM operation
1 parent 8171d95 commit 4ed2729

File tree

3 files changed

+11
-2
lines changed

3 files changed

+11
-2
lines changed

api/src/main/java/com/cloud/agent/api/to/VirtualMachineTO.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -90,6 +90,7 @@ public class VirtualMachineTO {
9090
private String metadataManufacturer;
9191
private String metadataProductName;
9292
private VirtualMachineMetadataTO metadata;
93+
private boolean isUnmanagedVmTask;
9394

9495
public VirtualMachineTO(long id, String instanceName, VirtualMachine.Type type, int cpus, Integer speed, long minRam, long maxRam, BootloaderType bootloader,
9596
String os, boolean enableHA, boolean limitCpuUse, String vncPassword) {
@@ -503,6 +504,10 @@ public void setMetadata(VirtualMachineMetadataTO metadata) {
503504
this.metadata = metadata;
504505
}
505506

507+
public boolean isUnmanagedVmTask() { return isUnmanagedVmTask; }
508+
509+
public void setUnmanagedVmTask(boolean flag) { isUnmanagedVmTask = flag; }
510+
506511
@Override
507512
public String toString() {
508513
return String.format("VM {id: \"%s\", name: \"%s\", uuid: \"%s\", type: \"%s\"}", id, name, uuid, type);

plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3014,8 +3014,11 @@ private void configureVM(VirtualMachineTO vmTO, LibvirtVMDef vm, Map<String, Str
30143014
vm.addComp(createDevicesDef(vmTO, guest, vcpus, isUefiEnabled));
30153015

30163016
MetadataDef metaDef;
3017-
if ((metaDef = createMetadataDef(vmTO)) != null) {
3018-
vm.addComp(metaDef);
3017+
boolean isUnmanagedVmTask = vmTO.isUnmanagedVmTask();
3018+
if (!isUnmanagedVmTask) {
3019+
if ((metaDef = createMetadataDef(vmTO)) != null) {
3020+
vm.addComp(metaDef);
3021+
}
30193022
}
30203023

30213024
addExtraConfigsToVM(vmTO, vm, extraConfig);

plugins/hypervisors/kvm/src/main/java/com/cloud/hypervisor/kvm/resource/wrapper/LibvirtUnmanageInstanceCommandWrapper.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -67,6 +67,7 @@ public final class LibvirtUnmanageInstanceCommandWrapper extends CommandWrapper<
6767
public Answer execute(final UnmanageInstanceCommand command, final LibvirtComputingResource libvirtComputingResource) {
6868
String instanceName = command.getInstanceName();
6969
VirtualMachineTO vmSpec = command.getVm();
70+
vmSpec.setUnmanagedVmTask(true);
7071
final LibvirtUtilitiesHelper libvirtUtilitiesHelper = libvirtComputingResource.getLibvirtUtilitiesHelper();
7172
logger.debug("Attempting to unmanage KVM instance: {}", instanceName);
7273
Domain dom = null;

0 commit comments

Comments
 (0)