Skip to content

Commit b49f9d0

Browse files
committed
Add VM detail for KVM hint dedicated feature
1 parent 51c5249 commit b49f9d0

4 files changed

Lines changed: 16 additions & 0 deletions

File tree

‎api/src/main/java/com/cloud/vm/VmDetailConstants.java‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,9 @@ public interface VmDetailConstants {
5858
// KVM specific, disk controllers
5959
String KVM_SKIP_FORCE_DISK_CONTROLLER = "skip.force.disk.controller";
6060

61+
// KVM specific, configuring special features
62+
String KVM_HINT_DEDICATED = "kvm.hint.dedicated";
63+
6164
// Mac OSX guest specific (internal)
6265
String SMC_PRESENT = "smc.present";
6366
String FIRMWARE = "firmware";

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

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3250,6 +3250,9 @@ protected FeaturesDef createFeaturesDef(Map<String, String> customParams, boolea
32503250
if (isUefiEnabled && isSecureBoot) {
32513251
features.addFeatures(SMM);
32523252
}
3253+
if (MapUtils.isNotEmpty(customParams) && customParams.containsKey(VmDetailConstants.KVM_HINT_DEDICATED)) {
3254+
features.setKvmHintDedicated(Boolean.parseBoolean(customParams.get(VmDetailConstants.KVM_HINT_DEDICATED)));
3255+
}
32533256
return features;
32543257
}
32553258

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

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -391,6 +391,8 @@ public static class FeaturesDef {
391391
private final List<String> _features = new ArrayList<String>();
392392

393393
private HyperVEnlightenmentFeatureDef hyperVEnlightenmentFeatureDef = null;
394+
private boolean kvmHintDedicated = false;
395+
394396
public void addFeatures(String feature) {
395397
_features.add(feature);
396398
}
@@ -399,6 +401,10 @@ public void addHyperVFeature(HyperVEnlightenmentFeatureDef hyperVEnlightenmentFe
399401
this.hyperVEnlightenmentFeatureDef = hyperVEnlightenmentFeatureDef;
400402
}
401403

404+
public void setKvmHintDedicated(boolean kvmHintDedicated) {
405+
this.kvmHintDedicated = kvmHintDedicated;
406+
}
407+
402408
@Override
403409
public String toString() {
404410
StringBuilder feaBuilder = new StringBuilder();
@@ -416,6 +422,9 @@ public String toString() {
416422
feaBuilder.append(hpervF);
417423
}
418424
}
425+
if (kvmHintDedicated) {
426+
feaBuilder.append("<kvm><hint-dedicated state='on'/></kvm>\n");
427+
}
419428
feaBuilder.append("</features>\n");
420429
return feaBuilder.toString();
421430
}

‎server/src/main/java/com/cloud/api/query/QueryManagerImpl.java‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5484,6 +5484,7 @@ private void fillVMOrTemplateDetailOptions(final Map<String, List<String>> optio
54845484
options.put(VmDetailConstants.GUEST_CPU_MODEL, Collections.emptyList());
54855485
options.put(VmDetailConstants.KVM_GUEST_OS_MACHINE_TYPE, Collections.emptyList());
54865486
options.put(VmDetailConstants.KVM_SKIP_FORCE_DISK_CONTROLLER, Arrays.asList("true", "false"));
5487+
options.put(VmDetailConstants.KVM_HINT_DEDICATED, Arrays.asList("true", "false"));
54875488
}
54885489

54895490
if (HypervisorType.VMware.equals(hypervisorType)) {

0 commit comments

Comments
 (0)