Moti Asayag has uploaded a new change for review. Change subject: engine: Add guestAgentNicHash property to VmDynamic ......................................................................
engine: Add guestAgentNicHash property to VmDynamic The patch adds a property to VmDynamic named guestAgentNicHash. It will be used to detect a change in the reported guest agent network devices so updates for these devices will be done only if their hash was changed. Change-Id: I92cd79f66f7032214eaed595dd7ac9a8980a9707 Signed-off-by: Moti Asayag <masa...@redhat.com> --- M backend/manager/dbscripts/create_views.sql A backend/manager/dbscripts/upgrade/03_02_0090_add_nic_hash_column_to_vm_dynamic.sql M backend/manager/dbscripts/vms_sp.sql 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 8 files changed, 39 insertions(+), 8 deletions(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/29/10229/1 diff --git a/backend/manager/dbscripts/create_views.sql b/backend/manager/dbscripts/create_views.sql index e7903c4..8704222 100644 --- a/backend/manager/dbscripts/create_views.sql +++ b/backend/manager/dbscripts/create_views.sql @@ -531,7 +531,7 @@ vm_templates.description as vmt_description, vm_dynamic.status as status, vm_dynamic.vm_ip as vm_ip, vm_dynamic.vm_host as vm_host, vm_dynamic.vm_pid as vm_pid, vm_dynamic.last_start_time as last_start_time, vm_dynamic.guest_cur_user_name as guest_cur_user_name, vm_dynamic.guest_last_login_time as guest_last_login_time, vm_dynamic.guest_cur_user_id as guest_cur_user_id, vm_dynamic.guest_last_logout_time as guest_last_logout_time, vm_dynamic.guest_os as guest_os, - vm_dynamic.console_user_id as console_user_id, + vm_dynamic.console_user_id as console_user_id, vm_dynamic.guest_agent_nic_hash as guest_agent_nic_hash, vm_dynamic.run_on_vds as run_on_vds, vm_dynamic.migrating_to_vds as migrating_to_vds, vm_dynamic.app_list as app_list, vm_dynamic.display as display, vm_dynamic.hibernation_vol_handle as hibernation_vol_handle, vm_pool_map_view.vm_pool_name as vm_pool_name, vm_pool_map_view.vm_pool_id as vm_pool_id, vm_static.vm_guid as vm_guid, vm_static.num_of_monitors as num_of_monitors, vm_static.allow_console_reconnect as allow_console_reconnect, vm_static.is_initialized as is_initialized, vm_static.is_auto_suspend as is_auto_suspend, vm_static.num_of_sockets as num_of_sockets, vm_static.cpu_per_socket as cpu_per_socket, vm_static.usb_policy as usb_policy, vm_dynamic.acpi_enable as acpi_enable, vm_dynamic.session as session, diff --git a/backend/manager/dbscripts/upgrade/03_02_0090_add_nic_hash_column_to_vm_dynamic.sql b/backend/manager/dbscripts/upgrade/03_02_0090_add_nic_hash_column_to_vm_dynamic.sql new file mode 100644 index 0000000..1749afb --- /dev/null +++ b/backend/manager/dbscripts/upgrade/03_02_0090_add_nic_hash_column_to_vm_dynamic.sql @@ -0,0 +1,2 @@ +select fn_db_add_column('vm_dynamic', 'guest_agent_nic_hash', 'integer'); + diff --git a/backend/manager/dbscripts/vms_sp.sql b/backend/manager/dbscripts/vms_sp.sql index fa85a45..44c6901 100644 --- a/backend/manager/dbscripts/vms_sp.sql +++ b/backend/manager/dbscripts/vms_sp.sql @@ -122,12 +122,13 @@ v_hibernation_vol_handle VARCHAR(255) , v_exit_status INTEGER, v_pause_status INTEGER, - v_exit_message VARCHAR(4000)) + v_exit_message VARCHAR(4000), + v_guest_agent_nic_hash INTEGER) RETURNS VOID AS $procedure$ BEGIN -INSERT INTO vm_dynamic(app_list, guest_cur_user_id, guest_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) - VALUES(v_app_list, v_guest_cur_user_id, v_guest_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); +INSERT INTO vm_dynamic(app_list, guest_cur_user_id, guest_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_nic_hash) + VALUES(v_app_list, v_guest_cur_user_id, v_guest_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_nic_hash); END; $procedure$ LANGUAGE plpgsql; @@ -166,7 +167,8 @@ v_exit_status INTEGER, v_pause_status INTEGER, v_exit_message VARCHAR(4000), - v_hash VARCHAR(30)) + v_hash VARCHAR(30), + v_guest_agent_nic_hash INTEGER) RETURNS VOID --The [vm_dynamic] table doesn't have a timestamp column. Optimistic concurrency logic cannot be generated @@ -187,7 +189,7 @@ utc_diff = v_utc_diff,last_vds_run_on = v_last_vds_run_on,client_ip = v_client_ip, 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 + pause_status = v_pause_status,exit_message = v_exit_message, hash=v_hash, guest_agent_nic_hash = v_guest_agent_nic_hash WHERE vm_guid = v_vm_guid; END; $procedure$ LANGUAGE plpgsql; 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 1acaf7e..be0d039 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 @@ -717,6 +717,14 @@ vmDynamic.setHash(hash); } + public int getGuestAgentNicHash() { + return vmDynamic.getGuestAgentNicHash(); + } + + public void setGuestAgentNicHash(int guestAgentNicHash) { + vmDynamic.setGuestAgentNicHash(guestAgentNicHash); + } + public Double getCpuUser() { return this.vmStatistics.getcpu_user(); } 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 7f32ba6..60c27c3 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 @@ -127,6 +127,8 @@ @Column(name = "hash") private String hash; + private int guestAgentNicHash; + @Column(name = "exit_message") private String mExitMessage; @@ -434,6 +436,15 @@ public void setHash(String hash) { this.hash = hash; } + + public int getGuestAgentNicHash() { + return guestAgentNicHash; + } + + public void setGuestAgentNicHash(int guestAgentNicHash) { + this.guestAgentNicHash = guestAgentNicHash; + } + public boolean getWin2kHackEnable() { return mWin2kHackEnable; } 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 cbfa3c4..9995301 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 @@ -222,7 +222,8 @@ .addValue("userdefined_properties", vm.getUserDefinedProperties()) .addValue("min_allocated_mem", vm.getMinAllocatedMem()) - .addValue("cpu_pinning", vm.getCpuPinning())); + .addValue("cpu_pinning", vm.getCpuPinning()) + .addValue("guest_agent_nic_hash", vm.getGuestAgentNicHash())); } @Override @@ -348,6 +349,7 @@ entity.setMinAllocatedMem(rs.getInt("min_allocated_mem")); entity.setHash(rs.getString("hash")); entity.setCpuPinning(rs.getString("cpu_pinning")); + entity.setGuestAgentNicHash(rs.getInt("guest_agent_nic_hash")); 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 074d31f..7cccc5c 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 @@ -105,7 +105,8 @@ .addValue("exit_status", vm.getExitStatus().getValue()) .addValue("pause_status", vm.getPauseStatus().getValue()) .addValue("exit_message", vm.getExitMessage()) - .addValue("hash", vm.getHash()); + .addValue("hash", vm.getHash()) + .addValue("guest_agent_nic_hash", vm.getGuestAgentNicHash()); } @Override @@ -165,6 +166,7 @@ entity.setExitStatus(exitStatus); entity.setPauseStatus(pauseStatus); entity.setHash(rs.getString("hash")); + entity.setGuestAgentNicHash(rs.getInt("guest_agent_nic_hash")); return entity; } }; diff --git a/backend/manager/modules/dal/src/test/resources/fixtures.xml b/backend/manager/modules/dal/src/test/resources/fixtures.xml index 8b57cf0..7507e83 100644 --- a/backend/manager/modules/dal/src/test/resources/fixtures.xml +++ b/backend/manager/modules/dal/src/test/resources/fixtures.xml @@ -1551,6 +1551,7 @@ <column>exit_status</column> <column>pause_status</column> <column>exit_message</column> + <column>guest_agent_nic_hash</column> <row> <value>77296e00-0cad-4e5a-9299-008a7b6f4356</value> <value>5</value> @@ -1583,6 +1584,7 @@ <value>0</value> <value>0</value> <null /> + <null/> </row> <row> <value>77296e00-0cad-4e5a-9299-008a7b6f4355</value> @@ -1616,6 +1618,7 @@ <value>0</value> <value>0</value> <null /> + <value>0</value> </row> <row> <value>77296e00-0cad-4e5a-9299-008a7b6f4354</value> @@ -1649,6 +1652,7 @@ <value>0</value> <value>0</value> <null /> + <value>3452354</value> </row> </table> -- To view, visit http://gerrit.ovirt.org/10229 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I92cd79f66f7032214eaed595dd7ac9a8980a9707 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: master Gerrit-Owner: Moti Asayag <masa...@redhat.com> _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches