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