Oved Ourfali has uploaded a new change for review.

Change subject: core: saving the cpu_name in vm_dynamic
......................................................................

core: saving the cpu_name in vm_dynamic

This patch adds the cpu_name property to the vm_dynamic table, to allow
knowing what cpu was configured in the cluster when running the VM

Change-Id: I2f13891b3425e4864334851ecb12d1d61a162082
Bug-Url: https://bugzilla.redhat.com/1006209
Signed-off-by: Oved Ourfali <oourf...@redhat.com>
---
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/RunVmCommand.java
M 
backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/RunVmCommandTest.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/VmDynamic.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/VmDynamicDAODbFacadeImpl.java
M backend/manager/modules/dal/src/test/resources/fixtures.xml
M 
backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/ResourceManager.java
M 
backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/VdsUpdateRunTimeInfo.java
M packaging/dbscripts/create_views.sql
A packaging/dbscripts/upgrade/03_03_0960_add_cpu_name_to_vm_dynamic.sql
M packaging/dbscripts/vms_sp.sql
12 files changed, 48 insertions(+), 11 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/32/20232/1

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 1c3023d..7281d79 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
@@ -489,7 +489,7 @@
     protected CreateVmVDSCommandParameters initCreateVmParams() {
         VM vmToBeCreated = getVm();
         vmToBeCreated.setRunOnce(false);
-
+        vmToBeCreated.setCpuName(getVdsGroup().getcpu_name());
         if (!vmToBeCreated.getInterfaces().isEmpty()) {
             initParametersForExternalNetworks();
         }
diff --git 
a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/RunVmCommandTest.java
 
b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/RunVmCommandTest.java
index 82cf634..159cd45 100644
--- 
a/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/RunVmCommandTest.java
+++ 
b/backend/manager/modules/bll/src/test/java/org/ovirt/engine/core/bll/RunVmCommandTest.java
@@ -297,6 +297,7 @@
         vm.setStatus(VMStatus.Down);
         doReturn(vmDAO).when(command).getVmDAO();
         when(vmDAO.get(command.getParameters().getVmId())).thenReturn(vm);
+        doReturn(new VDSGroup()).when(command).getVdsGroup();
         return vm;
     }
 
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 9b837f1..e9827bd 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
@@ -939,6 +939,14 @@
         this.vmDynamic.setHibernationVolHandle(value);
     }
 
+    public String getCpuName() {
+        return this.vmDynamic.getCpuName();
+    }
+
+    public void setCpuName(String value) {
+        this.vmDynamic.setCpuName(value);
+    }
+
     public void setExportDate(Date value) {
         this.vmStatic.setExportDate(value);
     }
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VmDynamic.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VmDynamic.java
index 7d4113f..3ec3dbf 100644
--- 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VmDynamic.java
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VmDynamic.java
@@ -49,6 +49,7 @@
     private Long lastWatchdogEvent;
     private String lastWatchdogAction;
     private boolean runOnce;
+    private String cpuName;
 
     @Override
     public int hashCode() {
@@ -91,6 +92,7 @@
         result = prime * result + (lastWatchdogEvent == null ? 0 : 
lastWatchdogEvent.hashCode());
         result = prime * result + (lastWatchdogAction == null ? 0 : 
lastWatchdogAction.hashCode());
         result = prime * result + (runOnce ? 1231 : 1237);
+        result = prime * result + (cpuName == null ? 0 : cpuName.hashCode());
         return result;
     }
 
@@ -142,7 +144,8 @@
                 && ObjectUtils.objectsEqual(vmPid, other.vmPid)
                 && ObjectUtils.objectsEqual(lastWatchdogEvent, 
other.lastWatchdogEvent)
                 && ObjectUtils.objectsEqual(lastWatchdogAction, 
other.lastWatchdogAction)
-                && runOnce == other.runOnce);
+                && runOnce == other.runOnce
+                && ObjectUtils.objectsEqual(cpuName, other.cpuName));
     }
 
     public String getExitMessage() {
@@ -479,4 +482,12 @@
     public void setRunOnce(boolean runOnce) {
         this.runOnce = runOnce;
     }
+    public String getCpuName() {
+        return cpuName;
+    }
+
+    public void setCpuName(String cpuName) {
+        this.cpuName = cpuName;
+    }
+
 }
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 6543442..637b91a 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
@@ -365,6 +365,7 @@
             entity.setTrustedService(rs.getBoolean("trusted_service"));
             entity.setRunOnce(rs.getBoolean("is_run_once"));
             entity.setCreatedByUserId(getGuid(rs,"created_by_user_id"));
+            entity.setCpuName(rs.getString("cpu_name"));
             return entity;
         }
     }
diff --git 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VmDynamicDAODbFacadeImpl.java
 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VmDynamicDAODbFacadeImpl.java
index ef14347..aeafa08 100644
--- 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VmDynamicDAODbFacadeImpl.java
+++ 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VmDynamicDAODbFacadeImpl.java
@@ -112,7 +112,8 @@
                 .addValue("guest_agent_nics_hash", vm.getGuestAgentNicsHash())
                 .addValue("last_watchdog_event", vm.getLastWatchdogEvent())
                 .addValue("last_watchdog_action", vm.getLastWatchdogAction())
-                .addValue("is_run_once", vm.isRunOnce());
+                .addValue("is_run_once", vm.isRunOnce())
+                .addValue("cpu_name", vm.getCpuName());
     }
 
     @Override
@@ -173,6 +174,7 @@
                 entity.setLastWatchdogEvent(getLong(rs, 
"last_watchdog_event"));
                 
entity.setLastWatchdogAction(rs.getString("last_watchdog_action"));
                 entity.setRunOnce(rs.getBoolean("is_run_once"));
+                entity.setCpuName(rs.getString("cpu_name"));
                 return entity;
             }
         };
@@ -217,7 +219,8 @@
                         .addValue("hash", entity.getHash())
                         .addValue("guest_agent_nics_hash", 
entity.getGuestAgentNicsHash())
                         .addValue("last_watchdog_event", 
entity.getLastWatchdogEvent())
-                        .addValue("last_watchdog_action", 
entity.getLastWatchdogAction());
+                        .addValue("last_watchdog_action", 
entity.getLastWatchdogAction())
+                        .addValue("cpu_name", entity.getCpuName());
 
                 return paramValue;
             }
diff --git a/backend/manager/modules/dal/src/test/resources/fixtures.xml 
b/backend/manager/modules/dal/src/test/resources/fixtures.xml
index 76cae4f..a24b2d9 100644
--- a/backend/manager/modules/dal/src/test/resources/fixtures.xml
+++ b/backend/manager/modules/dal/src/test/resources/fixtures.xml
@@ -2440,6 +2440,7 @@
         <column>pause_status</column>
         <column>exit_message</column>
         <column>guest_agent_nics_hash</column>
+        <column>cpu_name</column>
         <row>
             <value>77296e00-0cad-4e5a-9299-008a7b6f4356</value>
             <value>5</value>
@@ -2473,6 +2474,7 @@
             <value>0</value>
             <value>0</value>
             <null />
+            <null/>
             <null/>
         </row>
         <row>
@@ -2509,6 +2511,7 @@
             <value>0</value>
             <null />
             <value>0</value>
+            <null />
         </row>
         <row>
             <value>77296e00-0cad-4e5a-9299-008a7b6f4354</value>
@@ -2544,6 +2547,7 @@
             <value>0</value>
             <null />
             <value>3452354</value>
+            <null />
         </row>
         <row>
             <value>77296e00-0cad-4e5a-9299-008a7b6f4359</value>
@@ -2578,6 +2582,7 @@
             <value>0</value>
             <value>0</value>
             <null />
+            <null />
         </row>
         <row>
             <value>77296e00-0cad-4e5a-9299-008a7b6f4360</value>
@@ -2612,6 +2617,7 @@
             <value>0</value>
             <value>0</value>
             <null />
+            <null />
         </row>
     </table>
 
diff --git 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/ResourceManager.java
 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/ResourceManager.java
index 1d9e0e6..b35ce48 100644
--- 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/ResourceManager.java
+++ 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/ResourceManager.java
@@ -277,6 +277,7 @@
         vm.setGuestOs(null);
         vm.setVmIp(null);
         vm.setVmFQDN(null);
+        vm.setCpuName(null);
         List<VmNetworkInterface> interfaces = vm.getInterfaces();
         for (VmNetworkInterface ifc : interfaces) {
             NetworkStatistics statistics = ifc.getStatistics();
diff --git 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/VdsUpdateRunTimeInfo.java
 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/VdsUpdateRunTimeInfo.java
index 2cb1363..2b64237 100644
--- 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/VdsUpdateRunTimeInfo.java
+++ 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/VdsUpdateRunTimeInfo.java
@@ -1903,6 +1903,7 @@
             props.remove("consoleUserId");
             props.remove("consoleCurrentUserName");
             props.remove("runOnce");
+            props.remove("cpuName");
             if (vmNewDynamicData.getStatus() != VMStatus.Up) {
                 props.remove("appList");
                 vmNewDynamicData.setAppList(vmToUpdate.argvalue.getAppList());
diff --git a/packaging/dbscripts/create_views.sql 
b/packaging/dbscripts/create_views.sql
index e0f2b69..b3893b4 100644
--- a/packaging/dbscripts/create_views.sql
+++ b/packaging/dbscripts/create_views.sql
@@ -565,7 +565,7 @@
                       vm_static.default_display_type as default_display_type, 
vm_static.priority as priority,vm_static.iso_path as iso_path, vm_static.origin 
as origin, vds_groups.compatibility_version as vds_group_compatibility_version,
                       vm_static.initrd_url as initrd_url, vm_static.kernel_url 
as kernel_url, vm_static.kernel_params as kernel_params, 
vm_dynamic.pause_status as pause_status, vm_dynamic.exit_message as 
exit_message, vm_dynamic.exit_status as exit_status,vm_static.migration_support 
as migration_support,vm_static.predefined_properties as 
predefined_properties,vm_static.userdefined_properties as 
userdefined_properties,vm_static.min_allocated_mem as min_allocated_mem,  
vm_dynamic.hash as hash, vm_static.cpu_pinning as cpu_pinning, 
vm_static.db_generation as db_generation, vm_static.host_cpu_flags as 
host_cpu_flags,
                       vm_static.tunnel_migration as tunnel_migration, 
vm_static.vnc_keyboard_layout as vnc_keyboard_layout, 
vm_static.is_run_and_pause as is_run_and_pause, vm_static.created_by_user_id as 
created_by_user_id,
-                      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.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
 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
@@ -602,7 +602,7 @@
             vms.vds_group_compatibility_version, vms.initrd_url, 
vms.kernel_url, vms.kernel_params, vms.pause_status,
             vms.exit_status, vms.exit_message, vms.min_allocated_mem, 
storage_domain_static.id AS storage_id,
             vms.quota_id as quota_id, vms.quota_name as quota_name, 
vms.tunnel_migration as tunnel_migration,
-            vms.vnc_keyboard_layout as vnc_keyboard_layout, 
vms.is_run_and_pause as is_run_and_pause, vms.created_by_user_id as 
created_by_user_id, vms.vm_fqdn
+            vms.vnc_keyboard_layout as vnc_keyboard_layout, 
vms.is_run_and_pause as is_run_and_pause, vms.created_by_user_id as 
created_by_user_id, vms.vm_fqdn, vms.cpu_name as cpu_name
 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_03_0960_add_cpu_name_to_vm_dynamic.sql 
b/packaging/dbscripts/upgrade/03_03_0960_add_cpu_name_to_vm_dynamic.sql
new file mode 100644
index 0000000..bfbc1ed
--- /dev/null
+++ b/packaging/dbscripts/upgrade/03_03_0960_add_cpu_name_to_vm_dynamic.sql
@@ -0,0 +1,3 @@
+
+select fn_db_add_column('vm_dynamic', 'cpu_name', 'varchar(255)');
+
diff --git a/packaging/dbscripts/vms_sp.sql b/packaging/dbscripts/vms_sp.sql
index 7f35515..38f26cd 100644
--- a/packaging/dbscripts/vms_sp.sql
+++ b/packaging/dbscripts/vms_sp.sql
@@ -242,12 +242,13 @@
        v_guest_agent_nics_hash INTEGER,
         v_last_watchdog_event NUMERIC,
         v_last_watchdog_action VARCHAR(8),
-        v_is_run_once BOOLEAN)
+        v_is_run_once BOOLEAN,
+        v_cpu_name VARCHAR(255))
 RETURNS VOID
    AS $procedure$
 BEGIN
-INSERT INTO vm_dynamic(app_list, guest_cur_user_name, console_cur_user_name, 
guest_last_login_time, guest_last_logout_time, console_user_id, guest_os, 
migrating_to_vds, RUN_ON_VDS, status, vm_guid, vm_host, vm_ip, last_start_time, 
vm_pid, display, acpi_enable, session, display_ip, display_type, kvm_enable, 
boot_sequence, display_secure_port, utc_diff, last_vds_run_on, client_ip, 
guest_requested_memory, 
hibernation_vol_handle,exit_status,pause_status,exit_message, 
guest_agent_nics_hash, last_watchdog_event, last_watchdog_action, is_run_once, 
vm_fqdn)
-       VALUES(v_app_list, v_guest_cur_user_name, v_console_cur_user_name, 
v_guest_last_login_time, v_guest_last_logout_time, v_console_user_id, 
v_guest_os, v_migrating_to_vds, v_run_on_vds, v_status, v_vm_guid, v_vm_host, 
v_vm_ip, v_last_start_time, v_vm_pid, v_display, v_acpi_enable, v_session, 
v_display_ip, v_display_type, v_kvm_enable, v_boot_sequence, 
v_display_secure_port, v_utc_diff, v_last_vds_run_on, v_client_ip, 
v_guest_requested_memory, v_hibernation_vol_handle, v_exit_status, 
v_pause_status, v_exit_message, v_guest_agent_nics_hash, v_last_watchdog_event, 
v_last_watchdog_action, v_is_run_once, v_vm_fqdn);
+INSERT INTO vm_dynamic(app_list, guest_cur_user_name, console_cur_user_name, 
guest_last_login_time, guest_last_logout_time, console_user_id, guest_os, 
migrating_to_vds, RUN_ON_VDS, status, vm_guid, vm_host, vm_ip, last_start_time, 
vm_pid, display, acpi_enable, session, display_ip, display_type, kvm_enable, 
boot_sequence, display_secure_port, utc_diff, last_vds_run_on, client_ip, 
guest_requested_memory, 
hibernation_vol_handle,exit_status,pause_status,exit_message, 
guest_agent_nics_hash, last_watchdog_event, last_watchdog_action, is_run_once, 
vm_fqdn, cpu_name)
+       VALUES(v_app_list, v_guest_cur_user_name, v_console_cur_user_name, 
v_guest_last_login_time, v_guest_last_logout_time, v_console_user_id, 
v_guest_os, v_migrating_to_vds, v_run_on_vds, v_status, v_vm_guid, v_vm_host, 
v_vm_ip, v_last_start_time, v_vm_pid, v_display, v_acpi_enable, v_session, 
v_display_ip, v_display_type, v_kvm_enable, v_boot_sequence, 
v_display_secure_port, v_utc_diff, v_last_vds_run_on, v_client_ip, 
v_guest_requested_memory, v_hibernation_vol_handle, v_exit_status, 
v_pause_status, v_exit_message, v_guest_agent_nics_hash, v_last_watchdog_event, 
v_last_watchdog_action, v_is_run_once, v_vm_fqdn, v_cpu_name);
 END; $procedure$
 LANGUAGE plpgsql;
 
@@ -289,7 +290,8 @@
         v_guest_agent_nics_hash INTEGER,
         v_last_watchdog_event NUMERIC,
         v_last_watchdog_action VARCHAR(8),
-        v_is_run_once BOOLEAN)
+        v_is_run_once BOOLEAN,
+        v_cpu_name VARCHAR(255))
 RETURNS VOID
 
        --The [vm_dynamic] table doesn't have a timestamp column. Optimistic 
concurrency logic cannot be generated
@@ -312,7 +314,7 @@
       guest_requested_memory = v_guest_requested_memory,
       hibernation_vol_handle = v_hibernation_vol_handle,exit_status = 
v_exit_status,
       pause_status = v_pause_status,exit_message = v_exit_message, 
hash=v_hash, guest_agent_nics_hash = v_guest_agent_nics_hash,
-      last_watchdog_event = v_last_watchdog_event, last_watchdog_action = 
v_last_watchdog_action, is_run_once = v_is_run_once
+      last_watchdog_event = v_last_watchdog_event, last_watchdog_action = 
v_last_watchdog_action, is_run_once = v_is_run_once, cpu_name = v_cpu_name
       WHERE vm_guid = v_vm_guid;
 END; $procedure$
 LANGUAGE plpgsql;


-- 
To view, visit http://gerrit.ovirt.org/20232
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I2f13891b3425e4864334851ecb12d1d61a162082
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: ovirt-engine-3.3
Gerrit-Owner: Oved Ourfali <oourf...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to