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/DestroyVmVDSCommand.java
M packaging/dbscripts/create_views.sql
A packaging/dbscripts/upgrade/03_03_0900_add_cpu_name_to_vm_dynamic.sql
M packaging/dbscripts/vms_sp.sql
11 files changed, 47 insertions(+), 11 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/62/19562/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 17f074a..7000b42 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 391c41d..f716b47 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 e96c672..3856a48 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
@@ -931,6 +931,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 b274814..f6de787 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
@@ -48,6 +48,7 @@
     private Long lastWatchdogEvent;
     private String lastWatchdogAction;
     private boolean runOnce;
+    private String cpuName;
 
     @Override
     public int hashCode() {
@@ -89,6 +90,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;
     }
 
@@ -139,7 +141,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() {
@@ -468,4 +471,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 23928db..9990519 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
@@ -364,6 +364,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 e3f2207..2027c57 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
@@ -111,7 +111,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
@@ -171,6 +172,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;
             }
         };
@@ -215,7 +217,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 49356e0..8f2ab1b 100644
--- a/backend/manager/modules/dal/src/test/resources/fixtures.xml
+++ b/backend/manager/modules/dal/src/test/resources/fixtures.xml
@@ -2366,6 +2366,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>
@@ -2398,6 +2399,7 @@
             <value>0</value>
             <value>0</value>
             <null />
+            <null/>
             <null/>
         </row>
         <row>
@@ -2433,6 +2435,7 @@
             <value>0</value>
             <null />
             <value>0</value>
+            <null />
         </row>
         <row>
             <value>77296e00-0cad-4e5a-9299-008a7b6f4354</value>
@@ -2467,6 +2470,7 @@
             <value>0</value>
             <null />
             <value>3452354</value>
+            <null />
         </row>
         <row>
             <value>77296e00-0cad-4e5a-9299-008a7b6f4359</value>
@@ -2500,6 +2504,7 @@
             <value>0</value>
             <value>0</value>
             <null />
+            <null />
         </row>
         <row>
             <value>77296e00-0cad-4e5a-9299-008a7b6f4360</value>
@@ -2533,6 +2538,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/DestroyVmVDSCommand.java
 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/DestroyVmVDSCommand.java
index 0cae20d..213cf9f 100644
--- 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/DestroyVmVDSCommand.java
+++ 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/DestroyVmVDSCommand.java
@@ -47,6 +47,7 @@
                     public Void runInTransaction() {
 
                         curVm.guestLogoutTimeTreatmentAfterDestroy();
+                        curVm.setCpuName(null); // clearing this one as the VM 
is not running
                         // SaveVmDynamicToDBThreaded(curVm);
                         
DbFacade.getInstance().getVmDynamicDao().update(curVm.getDynamicData());
                         
DbFacade.getInstance().getVmStatisticsDao().update(curVm.getStatisticsData());
diff --git a/packaging/dbscripts/create_views.sql 
b/packaging/dbscripts/create_views.sql
index ddc1331..26e4e1d 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.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.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.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.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_0900_add_cpu_name_to_vm_dynamic.sql 
b/packaging/dbscripts/upgrade/03_03_0900_add_cpu_name_to_vm_dynamic.sql
new file mode 100644
index 0000000..bfbc1ed
--- /dev/null
+++ b/packaging/dbscripts/upgrade/03_03_0900_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 c97f60e..e7513f5 100644
--- a/packaging/dbscripts/vms_sp.sql
+++ b/packaging/dbscripts/vms_sp.sql
@@ -241,12 +241,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)
-       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);
+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, 
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_cpu_name);
 END; $procedure$
 LANGUAGE plpgsql;
 
@@ -287,7 +288,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
@@ -310,7 +312,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/19562
To unsubscribe, visit http://gerrit.ovirt.org/settings

Gerrit-MessageType: newchange
Gerrit-Change-Id: I2f13891b3425e4864334851ecb12d1d61a162082
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
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