Vinzenz Feenstra has uploaded a new change for review.

Change subject: Report guest free/buffered/cached memory
......................................................................

Report guest free/buffered/cached memory

Change-Id: I045a1592e5f83ffc439b5f3aa34ac21d41e9e27e
Bug-Url: https://bugzilla.redhat.com/1024010
Signed-off-by: Vinzenz Feenstra <vfeen...@redhat.com>
---
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/restapi/interface/definition/src/main/resources/api.xsd
M 
backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/utils/FeaturesHelper.java
M 
backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/VmMapper.java
M 
backend/manager/modules/restapi/types/src/test/java/org/ovirt/engine/api/restapi/types/VmMapperTest.java
M 
backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsBrokerObjectsBuilder.java
M 
backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsProperties.java
M 
frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/CommonApplicationConstants.java
M 
frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/vm/VmGeneralModelForm.java
M 
frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmGeneralModel.java
M packaging/dbscripts/create_tables.sql
M packaging/dbscripts/create_views.sql
A 
packaging/dbscripts/upgrade/03_06_0580_add_vm_dynamic_guest_mem_cached_buffered.sql
M packaging/dbscripts/vms_sp.sql
15 files changed, 175 insertions(+), 13 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/54/35954/1

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 da3995b..f431044 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
@@ -1883,4 +1883,28 @@
     public void setMigrateCompressed(Boolean migrateCompressed) {
         vmStatic.setMigrateCompressed(migrateCompressed);
     }
+
+    public Long getGuestMemoryCached() {
+        return vmDynamic.getGuestMemoryCached();
+    }
+
+    public void setGuestMemoryCached(Long guestMemoryCached) {
+        vmDynamic.setGuestMemoryCached(guestMemoryCached);
+    }
+
+    public Long getGuestMemoryBuffered() {
+        return vmDynamic.getGuestMemoryBuffered();
+    }
+
+    public void setGuestMemoryBuffered(Long guestMemoryBuffered) {
+        vmDynamic.setGuestMemoryBuffered(guestMemoryBuffered);
+    }
+
+    public Long getGuestMemoryFree() {
+        return vmDynamic.getGuestMemoryFree();
+    }
+
+    public void setGuestMemoryFree(Long guestMemoryFree) {
+        vmDynamic.setGuestMemoryFree(guestMemoryFree);
+    }
 }
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 917727b..c7829e0 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
@@ -73,6 +73,9 @@
     private String stopReason;
     private VmExitReason exitReason;
     private int guestCpuCount;
+    private Long guestMemoryCached;
+    private Long guestMemoryBuffered;
+    private Long guestMemoryFree;
 
     public static final String APPLICATIONS_LIST_FIELD_NAME = "appList";
     public static final String STATUS_FIELD_NAME = "status";
@@ -125,6 +128,8 @@
         result = prime * result + (stopReason == null ? 0 : 
stopReason.hashCode());
         result = prime * result + exitReason.hashCode();
         result = prime * result + (emulatedMachine == null ? 0 : 
emulatedMachine.hashCode());
+        result = prime * result + (guestMemoryBuffered == null ? 0 : 
guestMemoryBuffered.hashCode());
+        result = prime * result + (guestMemoryCached == null ? 0 : 
guestMemoryCached.hashCode());
         return result;
     }
 
@@ -183,7 +188,10 @@
                 && ObjectUtils.objectsEqual(currentCd, other.currentCd)
                 && ObjectUtils.objectsEqual(stopReason, other.stopReason)
                 && exitReason == other.exitReason
-                && ObjectUtils.objectsEqual(emulatedMachine, 
other.emulatedMachine));
+                && ObjectUtils.objectsEqual(emulatedMachine, 
other.emulatedMachine)
+                && ObjectUtils.objectsEqual(guestMemoryBuffered, 
other.guestMemoryBuffered)
+                && ObjectUtils.objectsEqual(guestMemoryCached, 
other.guestMemoryCached)
+                && ObjectUtils.objectsEqual(guestMemoryFree, 
other.guestMemoryFree));
     }
 
     public String getExitMessage() {
@@ -583,4 +591,28 @@
     public void setEmulatedMachine(String emulatedMachine) {
         this.emulatedMachine = emulatedMachine;
     }
+
+    public Long getGuestMemoryCached() {
+        return guestMemoryCached;
+    }
+
+    public void setGuestMemoryCached(Long guestMemoryCached) {
+        this.guestMemoryCached = guestMemoryCached;
+    }
+
+    public Long getGuestMemoryBuffered() {
+        return guestMemoryBuffered;
+    }
+
+    public void setGuestMemoryBuffered(Long guestMemoryBuffered) {
+        this.guestMemoryBuffered = guestMemoryBuffered;
+    }
+
+    public Long getGuestMemoryFree() {
+        return guestMemoryFree;
+    }
+
+    public void setGuestMemoryFree(Long guestMemoryFree) {
+        this.guestMemoryFree = guestMemoryFree;
+    }
 }
diff --git 
a/backend/manager/modules/restapi/interface/definition/src/main/resources/api.xsd
 
b/backend/manager/modules/restapi/interface/definition/src/main/resources/api.xsd
index a1ad36b..5fc2a8b 100644
--- 
a/backend/manager/modules/restapi/interface/definition/src/main/resources/api.xsd
+++ 
b/backend/manager/modules/restapi/interface/definition/src/main/resources/api.xsd
@@ -3138,6 +3138,9 @@
     <xs:sequence>
       <xs:element ref="ips" minOccurs="0" maxOccurs="1"/>
       <xs:element name="fqdn" type="xs:string" minOccurs="0" maxOccurs="1"/>
+      <xs:element name="memory_buffered" type="xs:long" minOccurs="0" 
maxOccurs="1"/>
+      <xs:element name="memory_cached" type="xs:long" minOccurs="0" 
maxOccurs="1"/>
+      <xs:element name="memory_free" type="xs:long" minOccurs="0" 
maxOccurs="1"/>
     </xs:sequence>
   </xs:complexType>
 
diff --git 
a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/utils/FeaturesHelper.java
 
b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/utils/FeaturesHelper.java
index cb99831..308548c 100644
--- 
a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/utils/FeaturesHelper.java
+++ 
b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/utils/FeaturesHelper.java
@@ -95,6 +95,7 @@
         if (VersionUtils.greaterOrEqual(version, 
BackendCapabilitiesResource.VERSION_3_6)) {
             addExternalHostProvidersFeature(features);
             addOpenStackImageProvidersFeature(features);
+            addGuestMemoryBufferedCached(features);
         }
         return features;
     }
@@ -536,4 +537,11 @@
         feature.setDescription("Add/modify/remove OpenStack image providers.");
         features.getFeature().add(feature);
     }
+
+    private void addGuestMemoryBufferedCached(Features features) {
+        Feature feature = new Feature();
+        feature.setName("Guest Memory Cached/Buffered");
+        feature.setDescription("Report of used cached and buffered memory in 
the guest OS");
+        features.getFeature().add(feature);
+    }
 }
diff --git 
a/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/VmMapper.java
 
b/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/VmMapper.java
index 8769100..61c7f30 100644
--- 
a/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/VmMapper.java
+++ 
b/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/VmMapper.java
@@ -347,7 +347,10 @@
             }
             final boolean hasIps = entity.getVmIp() != null && 
!entity.getVmIp().isEmpty();
             final boolean hasFqdn = entity.getVmFQDN() != null && 
!entity.getVmFQDN().isEmpty();
-            if (hasIps || hasFqdn) {
+            final boolean hasGuestMemBCF = entity.getGuestMemoryBuffered() != 
null
+                                        && entity.getGuestMemoryCached() != 
null
+                                        && entity.getGuestMemoryFree() != null;
+            if (hasIps || hasFqdn || hasGuestMemBCF) {
                 model.setGuestInfo(new GuestInfo());
 
                 if (hasFqdn) {
@@ -367,7 +370,14 @@
                         model.getGuestInfo().setIps(ips);
                     }
                 }
+
+                if(hasGuestMemBCF) {
+                    
model.getGuestInfo().setMemoryBuffered(entity.getGuestMemoryBuffered());
+                    
model.getGuestInfo().setMemoryCached(entity.getGuestMemoryCached());
+                    
model.getGuestInfo().setMemoryFree(entity.getGuestMemoryFree());
+                }
             }
+
             if (entity.getLastStartTime() != null) {
                 model.setStartTime(DateMapper.map(entity.getLastStartTime(), 
null));
             }
diff --git 
a/backend/manager/modules/restapi/types/src/test/java/org/ovirt/engine/api/restapi/types/VmMapperTest.java
 
b/backend/manager/modules/restapi/types/src/test/java/org/ovirt/engine/api/restapi/types/VmMapperTest.java
index 1e324a0..e3a7627 100644
--- 
a/backend/manager/modules/restapi/types/src/test/java/org/ovirt/engine/api/restapi/types/VmMapperTest.java
+++ 
b/backend/manager/modules/restapi/types/src/test/java/org/ovirt/engine/api/restapi/types/VmMapperTest.java
@@ -230,6 +230,21 @@
     }
 
     @Test
+    public void testGuestMemoryBC() {
+        org.ovirt.engine.core.common.businessentities.VM vm = new 
org.ovirt.engine.core.common.businessentities.VM();
+        VmDynamic vmDynamic = new VmDynamic();
+        vmDynamic.setStatus(VMStatus.Up);
+        vmDynamic.setGuestMemoryBuffered(new Long(4096));
+        vmDynamic.setGuestMemoryCached(new Long(8192));
+        vmDynamic.setGuestMemoryFree(new Long(16384));
+        vm.setDynamicData(vmDynamic);
+        VM map = VmMapper.map(vm, (VM) null);
+        assertNotNull(map.getGuestInfo().getMemoryCached());
+        assertNotNull(map.getGuestInfo().getMemoryBuffered());
+        assertNotNull(map.getGuestInfo().getMemoryFree());
+    }
+
+    @Test
     public void testDisplayPort() {
         org.ovirt.engine.core.common.businessentities.VM entity =
                 new org.ovirt.engine.core.common.businessentities.VM();
diff --git 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsBrokerObjectsBuilder.java
 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsBrokerObjectsBuilder.java
index 61420d2..18da4a0 100644
--- 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsBrokerObjectsBuilder.java
+++ 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsBrokerObjectsBuilder.java
@@ -274,6 +274,19 @@
             }
         }
 
+        if(xmlRpcStruct.containsKey(VdsProperties.vm_guest_mem_stats)) {
+            Map<String, Object> sub = (Map<String, 
Object>)xmlRpcStruct.get(VdsProperties.vm_guest_mem_stats);
+            if(sub.containsKey(VdsProperties.vm_guest_mem_buffered)) {
+                
vm.setGuestMemoryBuffered(Long.parseLong(sub.get(VdsProperties.vm_guest_mem_buffered).toString()));
+            }
+            if(sub.containsKey(VdsProperties.vm_guest_mem_cached)) {
+                
vm.setGuestMemoryCached(Long.parseLong(sub.get(VdsProperties.vm_guest_mem_cached).toString()));
+            }
+            if(sub.containsKey(VdsProperties.vm_guest_mem_free)) {
+                
vm.setGuestMemoryFree(Long.parseLong(sub.get(VdsProperties.vm_guest_mem_free).toString()));
+            }
+        }
+
         if (xmlRpcStruct.containsKey(VdsProperties.exit_code)) {
             String exitCodeStr = 
xmlRpcStruct.get(VdsProperties.exit_code).toString();
             
vm.setExitStatus(VmExitStatus.forValue(Integer.parseInt(exitCodeStr)));
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 3047465..558ad14 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
@@ -230,6 +230,10 @@
     public static final String guest_cur_user_name = "username";
     public static final String VM_IP = "guestIPs";
     public static final String VM_FQDN = "guestFQDN";
+    public static final String vm_guest_mem_buffered = "mem_buffers";
+    public static final String vm_guest_mem_cached = "mem_cached";
+    public static final String vm_guest_mem_free = "mem_free";
+    public static final String vm_guest_mem_stats = "memoryStats";
     public static final String vm_usage_mem_percent = "memUsage";
     public static final String vm_migration_progress_percent = 
"migrationProgress";
     public static final String vm_host = "guestName";
diff --git 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/CommonApplicationConstants.java
 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/CommonApplicationConstants.java
index 0a64594..f0ca588 100644
--- 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/CommonApplicationConstants.java
+++ 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/CommonApplicationConstants.java
@@ -471,6 +471,9 @@
     @DefaultStringValue("Physical Memory Guaranteed")
     String physMemGauranteedVm();
 
+    @DefaultStringValue("Guest OS Memory Free/Cached/Buffered")
+    String guestFreeCachedBufferedMemInfo();
+
     @DefaultStringValue("Number of CPU Cores")
     String numOfCpuCoresVm();
 
diff --git 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/vm/VmGeneralModelForm.java
 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/vm/VmGeneralModelForm.java
index 4e74816..ea0623c 100644
--- 
a/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/vm/VmGeneralModelForm.java
+++ 
b/frontend/webadmin/modules/gwt-common/src/main/java/org/ovirt/engine/ui/common/widget/uicommon/vm/VmGeneralModelForm.java
@@ -37,6 +37,7 @@
     TextBoxLabel compatibilityVersion = new TextBoxLabel();
     TextBoxLabel vmId = new TextBoxLabel();
     TextBoxLabel fqdn = new TextBoxLabel();
+    TextBoxLabel guestFreeCachedBufferedMemInfo = new TextBoxLabel();
 
     BooleanLabel isHighlyAvailable;
 
@@ -60,11 +61,18 @@
 
         formBuilder.addFormItem(new FormItem(constants.definedMemoryVm(), 
definedMemory, 0, 1));
         formBuilder.addFormItem(new FormItem(constants.physMemGauranteedVm(), 
minAllocatedMemory, 1, 1));
-        formBuilder.addFormItem(new FormItem(constants.numOfCpuCoresVm(), 
cpuInfo, 2, 1));
-        formBuilder.addFormItem(new FormItem(constants.GuestCpuCount(), 
guestCpuCount, 3, 1));
-        formBuilder.addFormItem(new FormItem(constants.highlyAvailableVm(), 
isHighlyAvailable, 4, 1));
-        formBuilder.addFormItem(new FormItem(constants.numOfMonitorsVm(), 
monitorCount, 5, 1));
-        formBuilder.addFormItem(new FormItem(constants.usbPolicyVm(), 
usbPolicy, 6, 1));
+        formBuilder.addFormItem(new 
FormItem(constants.guestFreeCachedBufferedMemInfo(), 
guestFreeCachedBufferedMemInfo, 2, 1)
+            .withDefaultValue(constants.notConfigured(), new 
DefaultValueCondition() {
+                @Override
+                public boolean showDefaultValue() {
+                    return getModel().getGuestFreeCachedBufferedMemInfo() == 
null;
+                }
+            }));
+        formBuilder.addFormItem(new FormItem(constants.numOfCpuCoresVm(), 
cpuInfo, 3, 1));
+        formBuilder.addFormItem(new FormItem(constants.GuestCpuCount(), 
guestCpuCount, 4, 1));
+        formBuilder.addFormItem(new FormItem(constants.highlyAvailableVm(), 
isHighlyAvailable, 5, 1));
+        formBuilder.addFormItem(new FormItem(constants.numOfMonitorsVm(), 
monitorCount, 6, 1));
+        formBuilder.addFormItem(new FormItem(constants.usbPolicyVm(), 
usbPolicy, 7, 1));
 
         formBuilder.addFormItem(new FormItem(constants.originVm(), origin, 0, 
2));
         formBuilder.addFormItem(new FormItem(constants.runOnVm(), defaultHost, 
1, 2));
diff --git 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmGeneralModel.java
 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmGeneralModel.java
index 65512a9..6bd374a 100644
--- 
a/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmGeneralModel.java
+++ 
b/frontend/webadmin/modules/uicommonweb/src/main/java/org/ovirt/engine/ui/uicommonweb/models/vms/VmGeneralModel.java
@@ -110,6 +110,22 @@
         }
     }
 
+    private String guestFreeCachedBufferedMemInfo;
+
+    public String getGuestFreeCachedBufferedMemInfo()
+    {
+        return guestFreeCachedBufferedMemInfo;
+    }
+
+    public void setGuestFreeCachedBufferedMemInfo(String value)
+    {
+        if (!ObjectUtils.objectsEqual(guestFreeCachedBufferedMemInfo, value))
+        {
+            guestFreeCachedBufferedMemInfo = value;
+            onPropertyChanged(new 
PropertyChangedEventArgs("GuestFreeCachedBufferedMemInfo")); //$NON-NLS-1$
+        }
+    }
+
     private String minAllocatedMemory;
 
     public String getMinAllocatedMemory()
@@ -560,6 +576,15 @@
         setDefinedMemory(vm.getVmMemSizeMb() + " MB"); //$NON-NLS-1$
         setMinAllocatedMemory(vm.getMinAllocatedMem() + " MB"); //$NON-NLS-1$
 
+        if(vm.getGuestMemoryBuffered() != null && vm.getGuestMemoryCached() != 
null) {
+            setGuestFreeCachedBufferedMemInfo(vm.getGuestMemoryFree() + " / " 
// $NON-NLS-1$
+                                            + vm.getGuestMemoryBuffered() + " 
/ " // $NON-NLS-1$
+                                            + vm.getGuestMemoryCached() + 
"KiB"); //$NON-NLS-1$
+        }
+        else {
+            setGuestFreeCachedBufferedMemInfo(null); // Handled in form
+        }
+
         setOS(AsyncDataProvider.getInstance().getOsName(vm.getVmOsId()));
 
         Translator translator = EnumTranslator.getInstance();
diff --git a/packaging/dbscripts/create_tables.sql 
b/packaging/dbscripts/create_tables.sql
index 04ce154..eebfbf8 100644
--- a/packaging/dbscripts/create_tables.sql
+++ b/packaging/dbscripts/create_tables.sql
@@ -1086,7 +1086,10 @@
     hash character varying(30),
     console_user_id uuid,
     guest_agent_nics_hash integer,
-    console_cur_user_name character varying(255)
+    console_cur_user_name character varying(255),
+    guest_mem_free integer DEFAULT NULL,
+    guest_mem_cached integer DEFAULT NULL,
+    guest_mem_buffered integer DEFAULT NULL
 );
 
 
diff --git a/packaging/dbscripts/create_views.sql 
b/packaging/dbscripts/create_views.sql
index 24c9a11..7d8f45a 100644
--- a/packaging/dbscripts/create_views.sql
+++ b/packaging/dbscripts/create_views.sql
@@ -675,6 +675,7 @@
                       vm_dynamic.display_ip as display_ip, 
vm_dynamic.display_type as display_type, vm_dynamic.kvm_enable as kvm_enable, 
vm_dynamic.boot_sequence as boot_sequence,
                       vm_dynamic.display_secure_port as display_secure_port, 
vm_dynamic.utc_diff as utc_diff, vm_dynamic.last_vds_run_on as last_vds_run_on,
                                          vm_dynamic.client_ip as 
client_ip,vm_dynamic.guest_requested_memory as guest_requested_memory, 
vm_static.time_zone as time_zone, vm_statistics.cpu_user as cpu_user, 
vm_statistics.cpu_sys as cpu_sys,
+                      vm_dynamic.guest_mem_buffered as guest_mem_buffered, 
vm_dynamic.guest_mem_cached as guest_mem_cached, vm_dynamic.guest_mem_free as 
guest_mem_free,
                       vm_statistics.memory_usage_history as 
memory_usage_history, vm_statistics.cpu_usage_history as cpu_usage_history,
                       vm_statistics.network_usage_history as 
network_usage_history,
                       vm_statistics.elapsed_time as elapsed_time, 
vm_statistics.usage_network_percent as usage_network_percent, 
vm_statistics.disks_usage as disks_usage,
@@ -744,6 +745,7 @@
             vms.is_spice_file_transfer_enabled, 
vms.is_spice_copy_paste_enabled,
             vms.cpu_profile_id,
             vms.is_auto_converge, vms.is_migrate_compressed
+            vms.guest_mem_buffered as guest_mem_buffered, vms.guest_mem_cached 
as guest_mem_cached, vms.guest_mem_free as guest_mem_free,
 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_06_0580_add_vm_dynamic_guest_mem_cached_buffered.sql
 
b/packaging/dbscripts/upgrade/03_06_0580_add_vm_dynamic_guest_mem_cached_buffered.sql
new file mode 100644
index 0000000..20c3ec3
--- /dev/null
+++ 
b/packaging/dbscripts/upgrade/03_06_0580_add_vm_dynamic_guest_mem_cached_buffered.sql
@@ -0,0 +1,3 @@
+select fn_db_add_column('vm_dynamic', 'guest_mem_free', 'INTEGER DEFAULT 
NULL');
+select fn_db_add_column('vm_dynamic', 'guest_mem_buffered', 'INTEGER DEFAULT 
NULL');
+select fn_db_add_column('vm_dynamic', 'guest_mem_cached', 'INTEGER DEFAULT 
NULL');
diff --git a/packaging/dbscripts/vms_sp.sql b/packaging/dbscripts/vms_sp.sql
index b79b7d2..9e0315c 100644
--- a/packaging/dbscripts/vms_sp.sql
+++ b/packaging/dbscripts/vms_sp.sql
@@ -274,13 +274,16 @@
   v_emulated_machine VARCHAR(255),
   v_current_cd VARCHAR(4000),
   v_exit_reason INTEGER,
-  v_guest_cpu_count INTEGER)
+  v_guest_cpu_count INTEGER,
+  v_guest_mem_free INTEGER,
+  v_guest_mem_buffered INTEGER,
+  v_guest_mem_cached INTEGER)
 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, 
last_stop_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, emulated_machine, current_cd, exit_reason, guest_cpu_count)
+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, 
last_stop_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, emulated_machine, current_cd, exit_reason, guest_cpu_count, 
guest_mem_buffered, guest_mem_cached, guest_mem_free)
        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_last_stop_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, 
v_emulated_machine, v_current_cd, v_exit_reason,
-         v_guest_cpu_count);
+         v_guest_cpu_count, v_guest_mem_buffered, v_guest_mem_cached, 
v_guest_mem_free);
 END; $procedure$
 LANGUAGE plpgsql;
 
@@ -329,7 +332,10 @@
   v_current_cd VARCHAR(4000),
   v_reason VARCHAR(4000),
   v_exit_reason INTEGER,
-  v_guest_cpu_count INTEGER)
+  v_guest_cpu_count INTEGER,
+  v_guest_mem_buffered INTEGER,
+  v_guest_mem_free INTEGER,
+  v_guest_mem_cached INTEGER)
 RETURNS VOID
 
        --The [vm_dynamic] table doesn't have a timestamp column. Optimistic 
concurrency logic cannot be generated
@@ -357,7 +363,10 @@
       current_cd = v_current_cd,
       reason = v_reason,
       exit_reason = v_exit_reason,
-      guest_cpu_count = v_guest_cpu_count
+      guest_cpu_count = v_guest_cpu_count,
+      guest_mem_bufered = v_guest_mem_buffered,
+      guest_mem_free = v_guest_mem_free,
+      guest_mem_cached = v_guest_mem_cached,
       WHERE vm_guid = v_vm_guid;
 END; $procedure$
 LANGUAGE plpgsql;


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I045a1592e5f83ffc439b5f3aa34ac21d41e9e27e
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Vinzenz Feenstra <vfeen...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to