Francesco Romani has uploaded a new change for review. Change subject: backend: add support to control spice file transfer ......................................................................
backend: add support to control spice file transfer spice has agent based file transfer support. This patch adds support on the backend to control this feature and allow to disable whenever it is needed. Change-Id: I945e6b23df2b9d0f7c18a4f1e73c64e12e9e1a78 Bug-Url: https://bugzilla.redhat.com/1082479 Signed-off-by: Francesco Romani <[email protected]> --- M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/AddVmTemplateCommand.java M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RunVmCommand.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/action/RunVmParams.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/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 M packaging/dbscripts/create_views.sql A packaging/dbscripts/upgrade/03_05_0160_add_spice_file_xfer_toggle.sql M packaging/dbscripts/upgrade/pre_upgrade/0000_config.sql M packaging/dbscripts/vm_templates_sp.sql M packaging/dbscripts/vms_sp.sql 23 files changed, 118 insertions(+), 23 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/41/26241/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..4bcefeb 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().isSpiceFileXferEnabled())); DbFacade.getInstance().getVmTemplateDao().save(getVmTemplate()); getCompensationContext().snapshotNewEntity(getVmTemplate()); setActionReturnValue(getVmTemplate().getId()); diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RunVmCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RunVmCommand.java index bb613fd..7f7f742 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RunVmCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RunVmCommand.java @@ -619,7 +619,7 @@ getVm().setKvmEnable(getParameters().getKvmEnable()); getVm().setRunAndPause(getParameters().getRunAndPause() == null ? getVm().isRunAndPause() : getParameters().getRunAndPause()); getVm().setAcpiEnable(getParameters().getAcpiEnable()); - + getVm().setSpiceFileXferEnabled(getParameters().isSpiceFileXferEnabled() == null ?getVm().isSpiceFileXferEnabled() :getParameters().isSpiceFileXferEnabled()); // Clear the first user: getVm().setConsoleUserId(null); 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 d0ced6d..46627ad 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 @@ -305,4 +305,13 @@ public static boolean isIscsiMultipathingSupported(Version version) { return supportedInConfig(ConfigValues.IscsiMultipathingSupported, version); } + + /** + * @param version + * Compatibility version to check for. + * @return <code>true</code> if SPICE file transfer disable is supported for the given version. + */ + public static boolean isSpiceFileXferDisableSupported(Version version) { + return supportedInConfig(ConfigValues.SpiceFileXferToggleSuppored, version); + } } diff --git a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/RunVmParams.java b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/RunVmParams.java index ab28f0a..0630779 100644 --- a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/RunVmParams.java +++ b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/RunVmParams.java @@ -28,6 +28,7 @@ private VmPayload payload; private boolean balloonEnabled; private int cpuShares; + private boolean spiceFileXferEnabled; public RunVmParams() { } @@ -188,4 +189,11 @@ public void setCpuShares(int cpuShares) { this.cpuShares = cpuShares; } + + // for REST-API test compat + public Boolean getSpiceFileXferEnabled() { return spiceFileXferEnabled; } + + public Boolean isSpiceFileXferEnabled() { return spiceFileXferEnabled; } + + public void setBootMenuEnabled(Boolean spiceFileXferEnabled) { this.spiceFileXferEnabled = spiceFileXferEnabled; } } 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..7da23be 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 isSpiceFileXferEnabled() { + return vmStatic.isSpiceFileXferEnabled(); + } + + public void setSpiceFileXferEnabled(boolean enabled) { + vmStatic.setSpiceFileXferEnabled(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..0d08a47 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,10 @@ @Size(max = BusinessEntitiesDefinitions.VM_SERIAL_NUMBER_SIZE) private String customSerialNumber; + @CopyOnNewVersion + @EditableOnTemplate + private boolean spiceFileXferEnabled; + public VmBase(VmBase vmBase) { this(vmBase.getName(), vmBase.getId(), @@ -346,7 +350,8 @@ vmBase.getMigrationDowntime(), vmBase.getVmInit(), vmBase.getSerialNumberPolicy(), - vmBase.getCustomSerialNumber()); + vmBase.getCustomSerialNumber(), + vmBase.isSpiceFileXferEnabled()); } public VmBase( @@ -393,7 +398,8 @@ Integer migrationDowntime, VmInit vmInit, SerialNumberPolicy serialNumberPolicy, - String customSerialNumber) { + String customSerialNumber, + boolean spiceFileXferEnabled) { this(); this.name = name; this.id = id; @@ -439,6 +445,7 @@ this.vmInit = vmInit; this.serialNumberPolicy = serialNumberPolicy; this.customSerialNumber = customSerialNumber; + this.spiceFileXferEnabled = spiceFileXferEnabled; } public long getDbGeneration() { @@ -776,6 +783,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 + (spiceFileXferEnabled ? 1231 : 1237); return result; } @@ -827,7 +835,8 @@ && cpuShares == other.cpuShares && ObjectUtils.objectsEqual(migrationDowntime, other.migrationDowntime)) && serialNumberPolicy == other.serialNumberPolicy - && ObjectUtils.objectsEqual(customSerialNumber, other.customSerialNumber); + && ObjectUtils.objectsEqual(customSerialNumber, other.customSerialNumber) + && spiceFileXferEnabled == other.spiceFileXferEnabled; } public Guid getQuotaId() { @@ -982,4 +991,8 @@ public void setCustomSerialNumber(String customSerialNumber) { this.customSerialNumber = customSerialNumber; } + + public boolean isSpiceFileXferEnabled() { return spiceFileXferEnabled; } + + public void setSpiceFileXferEnabled(boolean spiceFileXferEnabled) { this.spiceFileXferEnabled = spiceFileXferEnabled; } } 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..01e6aa0 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 spiceFileXferEnabled) { super(name, vmtGuid, vdsGroupId, @@ -120,7 +121,8 @@ migrationDowntime, null, serialNumberPolicy, - customSerialNumber); + customSerialNumber, + spiceFileXferEnabled); diskTemplateMap = new HashMap<Guid, DiskImage>(); diskImageMap = new HashMap<Guid, DiskImage>(); @@ -184,6 +186,7 @@ setOrigin(template.getOrigin()); setSerialNumberPolicy(template.getSerialNumberPolicy()); setCustomSerialNumber(template.getCustomSerialNumber()); + setSpiceFileXferEnabled(template.isSpiceFileXferEnabled()); } 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 7677b6c..89b6bc8 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 @@ -1682,5 +1682,9 @@ @DefaultValueAttribute("true") IscsiMultipathingSupported, + @TypeConverterAttribute(Boolean.class) + @DefaultValueAttribute("true") + SpiceFileXferToggleSuppored, + 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 fb46f72..36c98b3 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 @@ -119,7 +119,8 @@ IsMemorySnapshotSupported(ConfigAuthType.User), IsSuspendSupported(ConfigAuthType.User), SerialNumberPolicySupported, - IscsiMultipathingSupported; + IscsiMultipathingSupported, + SpiceFileXferToggleSuppored; 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..a176528 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.setSpiceFileXferEnabled(rs.getBoolean("is_spice_file_xfer_enabled")); } } 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..e3a63bc 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_spice_file_xfer_enabled", template.isSpiceFileXferEnabled()); } @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..b24afde 100644 --- a/backend/manager/modules/dal/src/test/resources/fixtures.xml +++ b/backend/manager/modules/dal/src/test/resources/fixtures.xml @@ -613,6 +613,7 @@ <column>spice_proxy</column> <column>serial_number_policy</column> <column>custom_serial_number</column> + <column>is_spice_file_xfer_enabled</column> <row> <value>b399944a-81ab-4ec5-8266-e19ba7c3c9d1</value> <value>rhel6.iscsi</value> @@ -637,6 +638,7 @@ <null/> <null /> <null /> + <value>true</value> </row> <row> <value>b399944a-81ab-4ec5-8266-e19ba7c3c9d2</value> @@ -662,6 +664,7 @@ <null/> <value>0</value> <null /> + <value>false</value> </row> <row> <value>b399944a-81ab-4ec5-8266-e19ba7c3c9d3</value> @@ -687,6 +690,7 @@ <null/> <value>1</value> <null /> + <value>true</value> </row> <row> <value>0e57070e-2469-4b38-84a2-f111aaabd49d</value> @@ -712,6 +716,7 @@ <null/> <value>2</value> <value>my custom serial number</value> + <value>false</value> </row> <row> <value>eba797fb-8e3b-4777-b63c-92e7a5957d7c</value> @@ -737,6 +742,7 @@ <null/> <null /> <null /> + <value>true</value> </row> <row> <value>eba797fb-8e3b-4777-b63c-92e7a5957d7d</value> @@ -762,6 +768,7 @@ <null/> <null /> <null /> + <value>false</value> </row> <row> <value>eba797fb-8e3b-4777-b63c-92e7a5957d7e</value> @@ -787,6 +794,7 @@ <null/> <null /> <null /> + <value>true</value> </row> <row> <value>eba797fb-8e3b-4777-b63c-92e7a5957d7f</value> @@ -812,6 +820,7 @@ <null/> <null /> <null /> + <value>false</value> </row> <row> <value>ae956031-6be2-43d6-bb8f-5191c9253314</value> @@ -837,6 +846,7 @@ <null/> <null /> <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..be61bec 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_SPICE_FILE_XFER_ENABLED = "IsSpiceFileXferEnabled"; } 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..348a34f 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_SPICE_FILE_XFER_ENABLED); + if (node != null) { + vmBase.setSpiceFileXferEnabled(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..3516289 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_SPICE_FILE_XFER_ENABLED); + _writer.WriteRaw(String.valueOf(vmBase.isSpiceFileXferEnabled())); + _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..9e084cb 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 @@ -231,6 +231,7 @@ public static final String win2kHackEnable = "win2kHackEnable"; // Optional public static final String initFromFloppy = "initFromFloppy"; // Optional public static final String sysprepInf = "sysprepInf"; // for the binary sys + public static final String spiceFileXferEnable = "spiceFileXferEnable"; // prep public static final String Boot = "boot"; // Optional public static final String BootOrder = "bootOrder"; 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..7b819f9 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 @@ -139,6 +139,9 @@ } createInfo.put(VdsProperties.transparent_huge_pages, vm.isTransparentHugePages() ? "true" : "false"); + + createInfo.put(VdsProperties.spiceFileXferEnable, + Boolean.toString(vm.isSpiceFileXferEnabled())); } private void addCpuPinning(final String compatibilityVersion) { 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..a8f80a0 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.setSpiceFileXferEnabled(instance.isSpiceFileXferEnabled()); return vm; } @@ -434,6 +435,7 @@ obj.setTemplateVersionName(instance.getTemplateVersionName()); obj.setSerialNumberPolicy(instance.getSerialNumberPolicy()); obj.setCustomSerialNumber(instance.getCustomSerialNumber()); + obj.setSpiceFileXferEnabled(instance.isSpiceFileXferEnabled()); return obj; } @@ -473,6 +475,7 @@ obj.setUseLatestVersion(instance.isUseLatestVersion()); obj.setSerialNumberPolicy(instance.getSerialNumberPolicy()); obj.setCustomSerialNumber(instance.getCustomSerialNumber()); + obj.setSpiceFileXferEnabled(instance.isSpiceFileXferEnabled()); return obj; } diff --git a/packaging/dbscripts/create_views.sql b/packaging/dbscripts/create_views.sql index 2e823d7..832ced9 100644 --- a/packaging/dbscripts/create_views.sql +++ b/packaging/dbscripts/create_views.sql @@ -417,7 +417,8 @@ vm_templates.vmt_guid as base_template_id, vm_templates.template_version_name as template_version_name, vm_templates.serial_number_policy as serial_number_policy, - vm_templates.custom_serial_number as custom_serial_number + vm_templates.custom_serial_number as custom_serial_number, + vm_templates.is_spice_file_xfer_enabled as is_spice_file_xfer_enabled FROM vm_static AS vm_templates INNER JOIN vds_groups ON vm_templates.vds_group_id = vds_groups.vds_group_id left outer JOIN @@ -453,7 +454,8 @@ vm_templates.entity_type, vds_groups.architecture, vm_templates.template_version_number as template_version_number, vm_templates.vmt_guid as base_template_id, vm_templates.template_version_name as template_version_name, - vm_templates.serial_number_policy as serial_number_policy, vm_templates.custom_serial_number as custom_serial_number + vm_templates.serial_number_policy as serial_number_policy, vm_templates.custom_serial_number as custom_serial_number, + vm_templates.is_spice_file_xfer_enabled as is_spice_file_xfer_enabled FROM vm_static AS vm_templates INNER JOIN vds_groups ON vm_templates.vds_group_id = vds_groups.vds_group_id LEFT OUTER JOIN storage_pool ON storage_pool.id = vds_groups.storage_pool_id INNER JOIN @@ -479,7 +481,8 @@ vm_templates_1.template_version_number as template_version_number, vm_templates_1.vmt_guid as base_template_id, vm_templates_1.template_version_name as template_version_name, vm_templates_1.serial_number_policy as serial_number_policy, - vm_templates_1.custom_serial_number as custom_serial_number + vm_templates_1.custom_serial_number as custom_serial_number, + vm_templates_1.is_spice_file_xfer_enabled as is_spice_file_xfer_enabled FROM vm_static AS vm_templates_1 INNER JOIN vds_groups AS vds_groups_1 ON vm_templates_1.vds_group_id = vds_groups_1.vds_group_id LEFT OUTER JOIN storage_pool AS storage_pool_1 ON storage_pool_1.id = vds_groups_1.storage_pool_id INNER JOIN @@ -622,7 +625,8 @@ vm_dynamic.last_watchdog_event as last_watchdog_event, vm_dynamic.last_watchdog_action as last_watchdog_action, vm_dynamic.is_run_once as is_run_once, vm_dynamic.vm_fqdn as vm_fqdn, vm_dynamic.cpu_name as cpu_name, vm_dynamic.current_cd as current_cd, vm_static.instance_type_id as instance_type_id, vm_static.image_type_id as image_type_id, vds_groups.architecture as architecture, vm_static.original_template_id as original_template_id, vm_static.original_template_name as original_template_name, vm_dynamic.last_stop_time as last_stop_time, vm_static.migration_downtime as migration_downtime, vm_static.template_version_number as template_version_number, - vm_static.serial_number_policy as serial_number_policy, vm_static.custom_serial_number as custom_serial_number + vm_static.serial_number_policy as serial_number_policy, vm_static.custom_serial_number as custom_serial_number, + vm_static.is_spice_file_xfer_enabled as is_spice_file_xfer_enabled FROM vm_static INNER JOIN vm_dynamic ON vm_static.vm_guid = vm_dynamic.vm_guid INNER JOIN vm_static AS vm_templates ON vm_static.vmt_guid = vm_templates.vm_guid INNER JOIN @@ -664,7 +668,8 @@ vms.instance_type_id as instance_type_id, vms.image_type_id as image_type_id, vms.architecture as architecture, vms.original_template_id as original_template_id, vms.original_template_name as original_template_name, vms.migration_downtime as migration_downtime, vms.template_version_number as template_version_number, vms.current_cd as current_cd, - vms.serial_number_policy as serial_number_policy, vms.custom_serial_number as custom_serial_number + vms.serial_number_policy as serial_number_policy, vms.custom_serial_number as custom_serial_number, + vms.is_spice_file_xfer_enabled FROM vms LEFT OUTER JOIN tags_vm_map_view ON vms.vm_guid = tags_vm_map_view.vm_id LEFT OUTER JOIN vm_device ON vm_device.vm_id = vms.vm_guid LEFT OUTER JOIN diff --git a/packaging/dbscripts/upgrade/03_05_0160_add_spice_file_xfer_toggle.sql b/packaging/dbscripts/upgrade/03_05_0160_add_spice_file_xfer_toggle.sql new file mode 100644 index 0000000..f2d838c --- /dev/null +++ b/packaging/dbscripts/upgrade/03_05_0160_add_spice_file_xfer_toggle.sql @@ -0,0 +1 @@ +select fn_db_add_column('vm_static', 'is_spice_file_xfer_enabled', 'boolean not null default true'); diff --git a/packaging/dbscripts/upgrade/pre_upgrade/0000_config.sql b/packaging/dbscripts/upgrade/pre_upgrade/0000_config.sql index 04b5948..ff93e4b 100644 --- a/packaging/dbscripts/upgrade/pre_upgrade/0000_config.sql +++ b/packaging/dbscripts/upgrade/pre_upgrade/0000_config.sql @@ -245,6 +245,12 @@ select fn_db_add_config_value('IscsiMultipathingSupported','false','3.2'); select fn_db_add_config_value('IscsiMultipathingSupported','false','3.3'); +select fn_db_add_config_value('SpiceFileXferToggleSuppored','false','3.0'); +select fn_db_add_config_value('SpiceFileXferToggleSuppored','false','3.1'); +select fn_db_add_config_value('SpiceFileXferToggleSuppored','false','3.2'); +select fn_db_add_config_value('SpiceFileXferToggleSuppored','false','3.3'); +select fn_db_add_config_value('SpiceFileXferToggleSuppored','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..a56a0e9 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_spice_file_xfer_enabled BOOLEAN) RETURNS VOID AS $procedure$ @@ -124,7 +125,8 @@ vmt_guid, template_version_name, serial_number_policy, - custom_serial_number) + custom_serial_number, + spice_file_xfer_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_spice_file_xfer_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_spice_file_xfer_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, + spice_file_xfer_enabled = v_spice_file_xfer_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..a9432d7 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_spice_file_xfer_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, spice_file_xfer_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_spice_file_xf! er_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; @@ -633,7 +634,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, + spice_file_xfer_enabeld = v_spice_file_xfer_enabled WHERE vm_guid = v_vm_guid AND entity_type = 'VM'; END; $procedure$ -- To view, visit http://gerrit.ovirt.org/26241 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I945e6b23df2b9d0f7c18a4f1e73c64e12e9e1a78 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Francesco Romani <[email protected]> _______________________________________________ Engine-patches mailing list [email protected] http://lists.ovirt.org/mailman/listinfo/engine-patches
