Martin Betak has uploaded a new change for review. Change subject: backend: Add support for Vm Boot Menu ......................................................................
backend: Add support for Vm Boot Menu Added boolean property VmBase#bootMenuEnabled which enables support for SeaBIOS boot device menu. Bug-Url: https://bugzilla.redhat.com/show_bug.cgi?id=1047624 Change-Id: I415f9ce2c20f1f80fea314c587b68a8db2a956b0 Signed-off-by: Martin Betak <[email protected]> --- M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmTemplateCommand.java M backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/FeatureSupported.java M backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VM.java M backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VmBase.java M backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VmTemplate.java M backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/config/ConfigValues.java M backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/ConfigurationValues.java M backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/dbbroker/AbstractVmRowMapper.java M backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VmDAODbFacadeImpl.java M backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VmStaticDAODbFacadeImpl.java M backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VmTemplateDAODbFacadeImpl.java M backend/manager/modules/dal/src/test/resources/fixtures.xml M backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/ovf/OvfProperties.java M backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/ovf/OvfReader.java M backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/ovf/OvfWriter.java M backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsProperties.java M backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VmInfoBuilderBase.java M frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/Cloner.java A packaging/dbscripts/upgrade/03_05_0160_add_vm_boot_menu.sql M packaging/dbscripts/upgrade/pre_upgrade/0000_config.sql M packaging/dbscripts/vm_templates_sp.sql M packaging/dbscripts/vms_sp.sql 22 files changed, 114 insertions(+), 19 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/26/26126/1 diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmTemplateCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmTemplateCommand.java index 9798a0f..77f8df6 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmTemplateCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmTemplateCommand.java @@ -515,7 +515,8 @@ getParameters().getBaseTemplateId(), getParameters().getTemplateVersionName(), getParameters().getMasterVm().getSerialNumberPolicy(), - getParameters().getMasterVm().getCustomSerialNumber())); + getParameters().getMasterVm().getCustomSerialNumber(), + getParameters().getMasterVm().isBootMenuEnabled())); DbFacade.getInstance().getVmTemplateDao().save(getVmTemplate()); getCompensationContext().snapshotNewEntity(getVmTemplate()); setActionReturnValue(getVmTemplate().getId()); diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/FeatureSupported.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/FeatureSupported.java index ee4ee3e..7f59446 100644 --- a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/FeatureSupported.java +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/FeatureSupported.java @@ -296,4 +296,13 @@ public static boolean ovfStoreOnAnyDomain(Version version) { return supportedInConfig(ConfigValues.OvfStoreOnAnyDomain, version); } + + /** + * @param version + * Compatibility version to check for. + * @return <code>true</code> if get boot menu is supported for the given version. + */ + public static boolean bootMenu(Version version) { + return supportedInConfig(ConfigValues.BootMenuSupported, version); + } } diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VM.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VM.java index dea0b0d..6208eda 100644 --- a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VM.java +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VM.java @@ -1702,4 +1702,12 @@ public void setCustomSerialNumber(String customSerialNumber) { vmStatic.setCustomSerialNumber(customSerialNumber); } + + public boolean isBootMenuEnabled() { + return vmStatic.isBootMenuEnabled(); + } + + public void setBootMenuEnabled(boolean enabled) { + vmStatic.setBootMenuEnabled(enabled); + } } diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VmBase.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VmBase.java index d5f5825..4844233 100644 --- a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VmBase.java +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VmBase.java @@ -302,6 +302,11 @@ @Size(max = BusinessEntitiesDefinitions.VM_SERIAL_NUMBER_SIZE) private String customSerialNumber; + @CopyOnNewVersion + @EditableOnVmStatusField + @EditableOnTemplate + private boolean bootMenuEnabled; + public VmBase(VmBase vmBase) { this(vmBase.getName(), vmBase.getId(), @@ -346,7 +351,8 @@ vmBase.getMigrationDowntime(), vmBase.getVmInit(), vmBase.getSerialNumberPolicy(), - vmBase.getCustomSerialNumber()); + vmBase.getCustomSerialNumber(), + vmBase.isBootMenuEnabled()); } public VmBase( @@ -393,7 +399,8 @@ Integer migrationDowntime, VmInit vmInit, SerialNumberPolicy serialNumberPolicy, - String customSerialNumber) { + String customSerialNumber, + boolean bootMenuEnabled) { this(); this.name = name; this.id = id; @@ -439,6 +446,7 @@ this.vmInit = vmInit; this.serialNumberPolicy = serialNumberPolicy; this.customSerialNumber = customSerialNumber; + this.bootMenuEnabled = bootMenuEnabled; } public long getDbGeneration() { @@ -776,6 +784,7 @@ result = prime * result + ((migrationDowntime == null) ? 0 : migrationDowntime.hashCode()); result = prime * result + ((serialNumberPolicy == null) ? 0 : serialNumberPolicy.hashCode()); result = prime * result + ((customSerialNumber == null) ? 0 : customSerialNumber.hashCode()); + result = prime * result + (bootMenuEnabled ? 1231 : 1237); return result; } @@ -827,7 +836,8 @@ && cpuShares == other.cpuShares && ObjectUtils.objectsEqual(migrationDowntime, other.migrationDowntime)) && serialNumberPolicy == other.serialNumberPolicy - && ObjectUtils.objectsEqual(customSerialNumber, other.customSerialNumber); + && ObjectUtils.objectsEqual(customSerialNumber, other.customSerialNumber) + && bootMenuEnabled == other.bootMenuEnabled; } public Guid getQuotaId() { @@ -982,4 +992,12 @@ public void setCustomSerialNumber(String customSerialNumber) { this.customSerialNumber = customSerialNumber; } + + public boolean isBootMenuEnabled() { + return bootMenuEnabled; + } + + public void setBootMenuEnabled(boolean bootMenuEnabled) { + this.bootMenuEnabled = bootMenuEnabled; + } } diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VmTemplate.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VmTemplate.java index ac89bfd..64871ef 100644 --- a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VmTemplate.java +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VmTemplate.java @@ -76,7 +76,8 @@ String kernelParams, Guid quotaId, Guid dedicatedVmForVds, MigrationSupport migrationSupport, boolean allowConsoleReconnect, String isoPath, Integer migrationDowntime, Guid baseTemplateId, String templateVersionName, - SerialNumberPolicy serialNumberPolicy, String customSerialNumber) { + SerialNumberPolicy serialNumberPolicy, String customSerialNumber, + boolean bootMenuEnabled) { super(name, vmtGuid, vdsGroupId, @@ -120,7 +121,8 @@ migrationDowntime, null, serialNumberPolicy, - customSerialNumber); + customSerialNumber, + bootMenuEnabled); diskTemplateMap = new HashMap<Guid, DiskImage>(); diskImageMap = new HashMap<Guid, DiskImage>(); @@ -184,6 +186,7 @@ setOrigin(template.getOrigin()); setSerialNumberPolicy(template.getSerialNumberPolicy()); setCustomSerialNumber(template.getCustomSerialNumber()); + setBootMenuEnabled(template.isBootMenuEnabled()); } public ArchitectureType getClusterArch() { diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/config/ConfigValues.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/config/ConfigValues.java index 889b559..2ae0875 100644 --- a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/config/ConfigValues.java +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/config/ConfigValues.java @@ -1678,5 +1678,9 @@ @DefaultValueAttribute("2") StorageDomainOvfStoreCount, + @TypeConverterAttribute(Boolean.class) + @DefaultValueAttribute("true") + BootMenuSupported, + Invalid; } diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/ConfigurationValues.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/ConfigurationValues.java index 45bd4ad..d69e3c0 100644 --- a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/ConfigurationValues.java +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/queries/ConfigurationValues.java @@ -118,7 +118,8 @@ IsMigrationSupported(ConfigAuthType.User), IsMemorySnapshotSupported(ConfigAuthType.User), IsSuspendSupported(ConfigAuthType.User), - SerialNumberPolicySupported; + SerialNumberPolicySupported, + BootMenuSupported; public static enum ConfigAuthType { Admin, diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/dbbroker/AbstractVmRowMapper.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/dbbroker/AbstractVmRowMapper.java index 6ec2ec2..10b0276 100644 --- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/dbbroker/AbstractVmRowMapper.java +++ b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dal/dbbroker/AbstractVmRowMapper.java @@ -52,6 +52,7 @@ entity.setMigrationDowntime((Integer) rs.getObject("migration_downtime")); entity.setSerialNumberPolicy(SerialNumberPolicy.forValue((Integer) rs.getObject("serial_number_policy"))); entity.setCustomSerialNumber(rs.getString("custom_serial_number")); + entity.setBootMenuEnabled(rs.getBoolean("is_boot_menu_enabled")); } } diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VmDAODbFacadeImpl.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VmDAODbFacadeImpl.java index 2fb1b2d..bbd672c 100644 --- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VmDAODbFacadeImpl.java +++ b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VmDAODbFacadeImpl.java @@ -422,6 +422,7 @@ entity.setCurrentCd(rs.getString("current_cd")); entity.setSerialNumberPolicy(SerialNumberPolicy.forValue((Integer) rs.getObject("serial_number_policy"))); entity.setCustomSerialNumber(rs.getString("custom_serial_number")); + entity.setBootMenuEnabled(rs.getBoolean("is_boot_menu_enabled")); return entity; } } diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VmStaticDAODbFacadeImpl.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VmStaticDAODbFacadeImpl.java index b4bb5e3..4bc1190 100644 --- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VmStaticDAODbFacadeImpl.java +++ b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VmStaticDAODbFacadeImpl.java @@ -100,7 +100,8 @@ .addValue("template_version_number", vm.isUseLatestVersion() ? USE_LATEST_VERSION_NUMBER_INDICATOR : DONT_USE_LATEST_VERSION_NUMBER_INDICATOR) .addValue("serial_number_policy", vm.getSerialNumberPolicy() == null ? null : vm.getSerialNumberPolicy().getValue()) - .addValue("custom_serial_number", vm.getCustomSerialNumber()); + .addValue("custom_serial_number", vm.getCustomSerialNumber()) + .addValue("is_boot_menu_enabled", vm.isBootMenuEnabled()); } @Override diff --git a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VmTemplateDAODbFacadeImpl.java b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VmTemplateDAODbFacadeImpl.java index 741e6c3..acab170 100644 --- a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VmTemplateDAODbFacadeImpl.java +++ b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VmTemplateDAODbFacadeImpl.java @@ -204,7 +204,8 @@ .addValue("base_template_id", template.getBaseTemplateId()) .addValue("template_version_name", template.getTemplateVersionName()) .addValue("serial_number_policy", template.getSerialNumberPolicy() == null ? null : template.getSerialNumberPolicy().getValue()) - .addValue("custom_serial_number", template.getCustomSerialNumber()); + .addValue("custom_serial_number", template.getCustomSerialNumber()) + .addValue("is_boot_menu_enabled", template.isBootMenuEnabled()); } @Override diff --git a/backend/manager/modules/dal/src/test/resources/fixtures.xml b/backend/manager/modules/dal/src/test/resources/fixtures.xml index 842994f..a8af887 100644 --- a/backend/manager/modules/dal/src/test/resources/fixtures.xml +++ b/backend/manager/modules/dal/src/test/resources/fixtures.xml @@ -1555,6 +1555,7 @@ <column>template_version_name</column> <column>serial_number_policy</column> <column>custom_serial_number</column> + <column>is_boot_menu_enabled</column> <!-- Templates --> <row> @@ -1611,6 +1612,7 @@ <null /> <value>0</value> <null /> + <value>false</value> </row> <row> <value>1b85420c-b84c-4f29-997e-0eb674b40b79</value> @@ -1666,6 +1668,7 @@ <value>ver 1</value> <null /> <value>Serial number: 123456</value> + <value>true</value> </row> <row> <value>1b85420c-b84c-4f29-997e-0eb674b40b80</value> @@ -1721,6 +1724,7 @@ <null /> <value>2</value> <value>RHVSN: 09123</value> + <value>true</value> </row> <row> <value>1b85420c-b84c-4f29-997e-0eb674b40b81</value> @@ -1776,6 +1780,7 @@ <null /> <value>1</value> <null /> + <value>false</value> </row> <row> <value>1b85420c-b84c-4f29-997e-0eb674b40b82</value> @@ -1831,6 +1836,7 @@ <null /> <value>1</value> <null /> + <value>false</value> </row> <row> <value>99408929-82cf-4dc7-a532-9d998063fa95</value> @@ -1886,6 +1892,7 @@ <null /> <null /> <null /> + <value>true</value> </row> <row> <value>5849b030-626e-47cb-ad90-3ce782d831b3</value> @@ -1941,6 +1948,7 @@ <null /> <null /> <null /> + <value>false</value> </row> <row> <value>1b85420c-b84c-4f29-997e-0eb674b40b83</value> @@ -1996,6 +2004,7 @@ <value>verver</value> <null /> <null /> + <value>true</value> </row> <!-- VMS --> @@ -2053,6 +2062,7 @@ <null /> <value>2</value> <null /> + <value>true</value> </row> <row> <value>77296e00-0cad-4e5a-9299-008a7b6f4355</value> @@ -2108,6 +2118,7 @@ <null /> <null /> <value>VSN 1234</value> + <value>true</value> </row> <row> <value>77296e00-0cad-4e5a-9299-008a7b6f4356</value> @@ -2163,6 +2174,7 @@ <null /> <value>2</value> <value>My very specific serial number</value> + <value>true</value> </row> <row> <value>77296e00-0cad-4e5a-9299-008a7b6f4357</value> @@ -2218,6 +2230,7 @@ <null /> <null /> <value>Custom serial number</value> + <value>false</value> </row> <row> <value>77296e00-0cad-4e5a-9299-008a7b6f4359</value> @@ -2273,6 +2286,7 @@ <null /> <value>1</value> <null /> + <value>false</value> </row> <row> <value>77296e00-0cad-4e5a-9299-008a7b6f4360</value> @@ -2328,6 +2342,7 @@ <null /> <null /> <null /> + <value>false</value> </row> <row> <value>77296e00-0cad-4e5a-9299-008a7b6f5001</value> @@ -2383,6 +2398,7 @@ <null /> <null /> <null /> + <value>true</value> </row> <row> <value>77296e00-0cad-4e5a-9299-008a7b6f5002</value> @@ -2438,6 +2454,7 @@ <null /> <null /> <null /> + <value>true</value> </row> <row> <value>77296e00-0cad-4e5a-9299-008a7b6f5003</value> @@ -2493,6 +2510,7 @@ <null /> <value>0</value> <null /> + <value>false</value> </row> </table> diff --git a/backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/ovf/OvfProperties.java b/backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/ovf/OvfProperties.java index 21d4035..e6f75d3 100644 --- a/backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/ovf/OvfProperties.java +++ b/backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/ovf/OvfProperties.java @@ -65,4 +65,5 @@ final static String TEMPLATE_VERSION_NAME = "TemplateVersionName"; final static String SERIAL_NUMBER_POLICY = "SerialNumberPolicy"; final static String CUSTOM_SERIAL_NUMBER = "CustomSerialNumber"; + final static String IS_BOOT_MENU_ENABLED = "IsBootMenuEnabled"; } diff --git a/backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/ovf/OvfReader.java b/backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/ovf/OvfReader.java index 46fb295..a3b5535 100644 --- a/backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/ovf/OvfReader.java +++ b/backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/ovf/OvfReader.java @@ -535,6 +535,11 @@ vmBase.setPriority(Integer.parseInt(node.innerText)); } + node = content.SelectSingleNode(OvfProperties.IS_BOOT_MENU_ENABLED); + if (node != null) { + vmBase.setBootMenuEnabled(Boolean.parseBoolean(node.innerText)); + } + readGeneralData(content); readVmInit(content); diff --git a/backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/ovf/OvfWriter.java b/backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/ovf/OvfWriter.java index 4193eba..cafc333 100644 --- a/backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/ovf/OvfWriter.java +++ b/backend/manager/modules/utils/src/main/java/org/ovirt/engine/core/utils/ovf/OvfWriter.java @@ -353,6 +353,10 @@ _writer.WriteRaw(vmBase.getCustomSerialNumber()); _writer.WriteEndElement(); } + + _writer.WriteStartElement(OvfProperties.IS_BOOT_MENU_ENABLED); + _writer.WriteRaw(String.valueOf(vmBase.isBootMenuEnabled())); + _writer.WriteEndElement(); } protected abstract void writeAppList(); diff --git a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsProperties.java b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsProperties.java index 72c62b9..0059add 100644 --- a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsProperties.java +++ b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsProperties.java @@ -228,6 +228,7 @@ public static final String kvmEnable = "kvmEnable"; // Optional public static final String acpiEnable = "acpiEnable"; // Optional + public static final String BOOT_MENU_ENABLE = "bootMenuEnable"; public static final String win2kHackEnable = "win2kHackEnable"; // Optional public static final String initFromFloppy = "initFromFloppy"; // Optional public static final String sysprepInf = "sysprepInf"; // for the binary sys diff --git a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VmInfoBuilderBase.java b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VmInfoBuilderBase.java index 0a8aafe..2183d42 100644 --- a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VmInfoBuilderBase.java +++ b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VmInfoBuilderBase.java @@ -95,6 +95,7 @@ .toLowerCase()); createInfo.put(VdsProperties.acpiEnable, vm.getAcpiEnable().toString() .toLowerCase()); + createInfo.put(VdsProperties.BOOT_MENU_ENABLE, Boolean.toString(vm.isBootMenuEnabled())); createInfo.put(VdsProperties.Custom, VmPropertiesUtils.getInstance().getVMProperties(vm.getVdsGroupCompatibilityVersion(), diff --git a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/Cloner.java b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/Cloner.java index 19b2829..6632a58 100644 --- a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/Cloner.java +++ b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/Cloner.java @@ -216,6 +216,7 @@ vm.setUseLatestVersion(instance.isUseLatestVersion()); vm.setSerialNumberPolicy(instance.getSerialNumberPolicy()); vm.setCustomSerialNumber(instance.getCustomSerialNumber()); + vm.setBootMenuEnabled(instance.isBootMenuEnabled()); return vm; } @@ -434,6 +435,7 @@ obj.setTemplateVersionName(instance.getTemplateVersionName()); obj.setSerialNumberPolicy(instance.getSerialNumberPolicy()); obj.setCustomSerialNumber(instance.getCustomSerialNumber()); + obj.setBootMenuEnabled(instance.isBootMenuEnabled()); return obj; } @@ -473,6 +475,7 @@ obj.setUseLatestVersion(instance.isUseLatestVersion()); obj.setSerialNumberPolicy(instance.getSerialNumberPolicy()); obj.setCustomSerialNumber(instance.getCustomSerialNumber()); + obj.setBootMenuEnabled(instance.isBootMenuEnabled()); return obj; } diff --git a/packaging/dbscripts/upgrade/03_05_0160_add_vm_boot_menu.sql b/packaging/dbscripts/upgrade/03_05_0160_add_vm_boot_menu.sql new file mode 100644 index 0000000..5ce2a8a --- /dev/null +++ b/packaging/dbscripts/upgrade/03_05_0160_add_vm_boot_menu.sql @@ -0,0 +1 @@ +select fn_db_add_column('vm_static', 'is_boot_menu_enabled', 'boolean not null default false'); diff --git a/packaging/dbscripts/upgrade/pre_upgrade/0000_config.sql b/packaging/dbscripts/upgrade/pre_upgrade/0000_config.sql index e623f56..9a1ff98 100644 --- a/packaging/dbscripts/upgrade/pre_upgrade/0000_config.sql +++ b/packaging/dbscripts/upgrade/pre_upgrade/0000_config.sql @@ -238,6 +238,11 @@ select fn_db_add_config_value('OvfStoreOnAnyDomain','false','3.2'); select fn_db_add_config_value('OvfStoreOnAnyDomain','false','3.3'); select fn_db_add_config_value('OvfStoreOnAnyDomain','false','3.4'); +select fn_db_add_config_value('BootMenuSupported','false','3.0'); +select fn_db_add_config_value('BootMenuSupported','false','3.1'); +select fn_db_add_config_value('BootMenuSupported','false','3.2'); +select fn_db_add_config_value('BootMenuSupported','false','3.3'); +select fn_db_add_config_value('BootMenuSupported','false','3.4'); -- by default use no proxy select fn_db_add_config_value('SpiceProxyDefault','','general'); diff --git a/packaging/dbscripts/vm_templates_sp.sql b/packaging/dbscripts/vm_templates_sp.sql index a2d7198..a01ea80b 100644 --- a/packaging/dbscripts/vm_templates_sp.sql +++ b/packaging/dbscripts/vm_templates_sp.sql @@ -55,7 +55,8 @@ v_base_template_id UUID, v_template_version_name VARCHAR(40), v_serial_number_policy SMALLINT, - v_custom_serial_number VARCHAR(255)) + v_custom_serial_number VARCHAR(255), + v_is_boot_menu_enabled BOOLEAN) RETURNS VOID AS $procedure$ @@ -124,7 +125,8 @@ vmt_guid, template_version_name, serial_number_policy, - custom_serial_number) + custom_serial_number, + is_boot_menu_enabled) VALUES( v_child_count, v_creation_date, @@ -175,7 +177,8 @@ v_base_template_id, v_template_version_name, v_serial_number_policy, - v_custom_serial_number); + v_custom_serial_number, + v_is_boot_menu_enabled); -- perform deletion from vm_ovf_generations to ensure that no record exists when performing insert to avoid PK violation. DELETE FROM vm_ovf_generations gen WHERE gen.vm_guid = v_vmt_guid; INSERT INTO vm_ovf_generations(vm_guid, storage_pool_id) @@ -236,7 +239,8 @@ v_migration_downtime INTEGER, v_template_version_name VARCHAR(40), v_serial_number_policy SMALLINT, - v_custom_serial_number VARCHAR(255)) + v_custom_serial_number VARCHAR(255), + v_is_boot_menu_enabled BOOLEAN) RETURNS VOID --The [vm_templates] table doesn't have a timestamp column. Optimistic concurrency logic cannot be generated @@ -262,7 +266,8 @@ vnc_keyboard_layout = v_vnc_keyboard_layout, min_allocated_mem = v_min_allocated_mem, is_run_and_pause = v_is_run_and_pause, created_by_user_id = v_created_by_user_id, migration_downtime = v_migration_downtime, template_version_name = v_template_version_name, - serial_number_policy = v_serial_number_policy, custom_serial_number = v_custom_serial_number + serial_number_policy = v_serial_number_policy, custom_serial_number = v_custom_serial_number, + is_boot_menu_enabled = v_is_boot_menu_enabled WHERE vm_guid = v_vmt_guid AND entity_type = v_template_type; END; $procedure$ diff --git a/packaging/dbscripts/vms_sp.sql b/packaging/dbscripts/vms_sp.sql index cab24bb..77514ed 100644 --- a/packaging/dbscripts/vms_sp.sql +++ b/packaging/dbscripts/vms_sp.sql @@ -474,12 +474,13 @@ v_migration_downtime INTEGER, v_template_version_number INTEGER, v_serial_number_policy SMALLINT, - v_custom_serial_number VARCHAR(255)) + v_custom_serial_number VARCHAR(255), + v_is_boot_menu_enabled BOOLEAN) RETURNS VOID AS $procedure$ BEGIN -INSERT INTO vm_static(description, free_text_comment, mem_size_mb, os, vds_group_id, vm_guid, VM_NAME, vmt_guid,creation_date,num_of_monitors, single_qxl_pci, allow_console_reconnect,is_initialized,num_of_sockets,cpu_per_socket,usb_policy, time_zone,auto_startup,is_stateless,dedicated_vm_for_vds, fail_back, default_boot_sequence, vm_type, nice_level, cpu_shares, default_display_type, priority,iso_path,origin,initrd_url,kernel_url,kernel_params,migration_support,predefined_properties,userdefined_properties,min_allocated_mem, entity_type, quota_id, cpu_pinning, is_smartcard_enabled,is_delete_protected, sso_method, host_cpu_flags, tunnel_migration, vnc_keyboard_layout, is_run_and_pause, created_by_user_id, instance_type_id, image_type_id, original_template_id, original_template_name, migration_downtime, template_version_number, serial_number_policy, custom_serial_number) - VALUES(v_description, v_free_text_comment, v_mem_size_mb, v_os, v_vds_group_id, v_vm_guid, v_vm_name, v_vmt_guid, v_creation_date, v_num_of_monitors,v_single_qxl_pci, v_allow_console_reconnect, v_is_initialized, v_num_of_sockets, v_cpu_per_socket, v_usb_policy, v_time_zone, v_auto_startup,v_is_stateless,v_dedicated_vm_for_vds,v_fail_back, v_default_boot_sequence, v_vm_type, v_nice_level, v_cpu_shares, v_default_display_type, v_priority,v_iso_path,v_origin,v_initrd_url,v_kernel_url,v_kernel_params,v_migration_support,v_predefined_properties,v_userdefined_properties,v_min_allocated_mem, 'VM', v_quota_id, v_cpu_pinning, v_is_smartcard_enabled,v_is_delete_protected, v_sso_method, v_host_cpu_flags, v_tunnel_migration, v_vnc_keyboard_layout, v_is_run_and_pause, v_created_by_user_id, v_instance_type_id, v_image_type_id, v_original_template_id, v_original_template_name, v_migration_downtime, v_template_version_number, v_serial_number_policy, v_custom_serial_number); +INSERT INTO vm_static(description, free_text_comment, mem_size_mb, os, vds_group_id, vm_guid, VM_NAME, vmt_guid,creation_date,num_of_monitors, single_qxl_pci, allow_console_reconnect,is_initialized,num_of_sockets,cpu_per_socket,usb_policy, time_zone,auto_startup,is_stateless,dedicated_vm_for_vds, fail_back, default_boot_sequence, vm_type, nice_level, cpu_shares, default_display_type, priority,iso_path,origin,initrd_url,kernel_url,kernel_params,migration_support,predefined_properties,userdefined_properties,min_allocated_mem, entity_type, quota_id, cpu_pinning, is_smartcard_enabled,is_delete_protected, sso_method, host_cpu_flags, tunnel_migration, vnc_keyboard_layout, is_run_and_pause, created_by_user_id, instance_type_id, image_type_id, original_template_id, original_template_name, migration_downtime, template_version_number, serial_number_policy, custom_serial_number, is_boot_menu_enabled) + VALUES(v_description, v_free_text_comment, v_mem_size_mb, v_os, v_vds_group_id, v_vm_guid, v_vm_name, v_vmt_guid, v_creation_date, v_num_of_monitors,v_single_qxl_pci, v_allow_console_reconnect, v_is_initialized, v_num_of_sockets, v_cpu_per_socket, v_usb_policy, v_time_zone, v_auto_startup,v_is_stateless,v_dedicated_vm_for_vds,v_fail_back, v_default_boot_sequence, v_vm_type, v_nice_level, v_cpu_shares, v_default_display_type, v_priority,v_iso_path,v_origin,v_initrd_url,v_kernel_url,v_kernel_params,v_migration_support,v_predefined_properties,v_userdefined_properties,v_min_allocated_mem, 'VM', v_quota_id, v_cpu_pinning, v_is_smartcard_enabled,v_is_delete_protected, v_sso_method, v_host_cpu_flags, v_tunnel_migration, v_vnc_keyboard_layout, v_is_run_and_pause, v_created_by_user_id, v_instance_type_id, v_image_type_id, v_original_template_id, v_original_template_name, v_migration_downtime, v_template_version_number, v_serial_number_policy, v_custom_serial_number, v_is_boot_menu_! enabled); -- perform deletion from vm_ovf_generations to ensure that no record exists when performing insert to avoid PK violation. DELETE FROM vm_ovf_generations gen WHERE gen.vm_guid = v_vm_guid; @@ -602,7 +603,8 @@ v_migration_downtime INTEGER, v_template_version_number INTEGER, v_serial_number_policy SMALLINT, -v_custom_serial_number VARCHAR(255)) +v_custom_serial_number VARCHAR(255), +v_is_boot_menu_enabled BOOLEAN) RETURNS VOID @@ -633,7 +635,8 @@ instance_type_id = v_instance_type_id, image_type_id = v_image_type_id, original_template_id = v_original_template_id, original_template_name = v_original_template_name, migration_downtime = v_migration_downtime, template_version_number = v_template_version_number, - serial_number_policy = v_serial_number_policy, custom_serial_number = v_custom_serial_number + serial_number_policy = v_serial_number_policy, custom_serial_number = v_custom_serial_number, + is_boot_menu_enabled = v_is_boot_menu_enabled WHERE vm_guid = v_vm_guid AND entity_type = 'VM'; END; $procedure$ -- To view, visit http://gerrit.ovirt.org/26126 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I415f9ce2c20f1f80fea314c587b68a8db2a956b0 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Martin Betak <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
