Greg Padgett has uploaded a new change for review.

Change subject: backend, db: store additional hosted engine info
......................................................................

backend, db: store additional hosted engine info

New fields for hosted engine, allowing UI display/control of maintenance
operations.  Adds:
  ha_configured - HA is installed on the host
  ha_active - HA is currently running/updating on the host
  ha_global_maintenance - HA global maintenance is enabled according to
                          the host
  ha_local_maintenance - HA local maintenance is enabled on the host

Change-Id: Ib62849ffe0f7392c1feb1f2a0536a23410b58210
Bug-Url: https://bugzilla.redhat.com/1047649
Signed-off-by: Greg Padgett <gpadg...@redhat.com>
---
M 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VDS.java
M 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VdsStatistics.java
M 
backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VdsDAODbFacadeImpl.java
M 
backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VdsStatisticsDAODbFacadeImpl.java
M backend/manager/modules/dal/src/test/resources/fixtures.xml
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 packaging/dbscripts/create_views.sql
A packaging/dbscripts/upgrade/03_05_0030_add_ha_columns_to_vds_statistics.sql
M packaging/dbscripts/vds_sp.sql
10 files changed, 202 insertions(+), 23 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/04/24604/1

diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VDS.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VDS.java
index 6fcf174..c3c1944 100644
--- 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VDS.java
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VDS.java
@@ -171,6 +171,11 @@
         vds.setActiveNic(getActiveNic());
         
vds.setPowerManagementControlledByPolicy(isPowerManagementControlledByPolicy());
         vds.setDisablePowerManagementPolicy(isDisablePowerManagementPolicy());
+        vds.setHighlyAvailableScore(getHighlyAvailableScore());
+        vds.setHighlyAvailableIsConfigured(getHighlyAvailableIsConfigured());
+        vds.setHighlyAvailableIsActive(getHighlyAvailableIsActive());
+        
vds.setHighlyAvailableGlobalMaintenance(getHighlyAvailableGlobalMaintenance());
+        
vds.setHighlyAvailableLocalMaintenance(getHighlyAvailableLocalMaintenance());
 
         return vds;
     }
@@ -551,14 +556,46 @@
         this.mVdsDynamic.setvm_active(value);
     }
 
-    public Integer getHighlyAvailableScore() {
+    public int getHighlyAvailableScore() {
         return this.mVdsStatistics.getHighlyAvailableScore();
     }
 
-    public void setHighlyAvailableScore(Integer value) {
+    public void setHighlyAvailableScore(int value) {
         this.mVdsStatistics.setHighlyAvailableScore(value);
     }
 
+    public boolean getHighlyAvailableIsConfigured() {
+        return this.mVdsStatistics.getHighlyAvailableIsConfigured();
+    }
+
+    public void setHighlyAvailableIsConfigured(boolean value) {
+        this.mVdsStatistics.setHighlyAvailableIsConfigured(value);
+    }
+
+    public boolean getHighlyAvailableIsActive() {
+        return this.mVdsStatistics.getHighlyAvailableIsActive();
+    }
+
+    public void setHighlyAvailableIsActive(boolean value) {
+        this.mVdsStatistics.setHighlyAvailableIsActive(value);
+    }
+
+    public boolean getHighlyAvailableGlobalMaintenance() {
+        return this.mVdsStatistics.getHighlyAvailableGlobalMaintenance();
+    }
+
+    public void setHighlyAvailableGlobalMaintenance(boolean value) {
+        this.mVdsStatistics.setHighlyAvailableGlobalMaintenance(value);
+    }
+
+    public boolean getHighlyAvailableLocalMaintenance() {
+        return this.mVdsStatistics.getHighlyAvailableLocalMaintenance();
+    }
+
+    public void setHighlyAvailableLocalMaintenance(boolean value) {
+        this.mVdsStatistics.setHighlyAvailableLocalMaintenance(value);
+    }
+
     public int getVmCount() {
         return this.mVdsDynamic.getvm_count();
     }
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VdsStatistics.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VdsStatistics.java
index 818f3e4..dbaa923 100644
--- 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VdsStatistics.java
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VdsStatistics.java
@@ -24,11 +24,16 @@
     private Integer ksm_cpu_percent;
     private Long ksm_pages;
     private Boolean ksm_state;
-    // Score in a hosted engine environment
-    // Score 0 means no HA agents are on this host
-    // Positive score means there is an agent
-    private Integer highlyAvailableScore;
     private int anonymousHugePages;
+    // The following values store the state of the Hosted Engine HA environment
+    // for each host and allow the user to see/change that state through the
+    // engine UI.  They originate in the HA agent and are updated with the 
other
+    // stats in vdsm's getVdsStats call.
+    private int highlyAvailableScore;
+    private boolean highlyAvailableIsConfigured;
+    private boolean highlyAvailableIsActive;
+    private boolean highlyAvailableGlobalMaintenance;
+    private boolean highlyAvailableLocalMaintenance;
 
     public VdsStatistics() {
         this.cpu_idle = BigDecimal.ZERO;
@@ -42,6 +47,10 @@
         swap_total = 0L;
         ksm_pages = 0L;
         highlyAvailableScore = 0;
+        highlyAvailableIsConfigured = false;
+        highlyAvailableIsActive = false;
+        highlyAvailableGlobalMaintenance = false;
+        highlyAvailableLocalMaintenance = false;
     }
 
     public int getAnonymousHugePages() {
@@ -71,8 +80,12 @@
         result = prime * result + ((ksm_cpu_percent == null) ? 0 : 
ksm_cpu_percent.hashCode());
         result = prime * result + ((swap_total == null) ? 0 : 
swap_total.hashCode());
         result = prime * result + ((swap_free == null) ? 0 : 
swap_free.hashCode());
-        result = prime * result + ((highlyAvailableScore == null) ? 0 : 
highlyAvailableScore.hashCode());
         result = prime * result + anonymousHugePages;
+        result = prime * result + highlyAvailableScore;
+        result = prime * result + (highlyAvailableIsConfigured ? 1231 : 1237);
+        result = prime * result + (highlyAvailableIsActive ? 1231 : 1237);
+        result = prime * result + (highlyAvailableGlobalMaintenance ? 1231 : 
1237);
+        result = prime * result + (highlyAvailableLocalMaintenance ? 1231 : 
1237);
         return result;
     }
 
@@ -103,8 +116,12 @@
                 && ObjectUtils.objectsEqual(ksm_cpu_percent, 
other.ksm_cpu_percent)
                 && ObjectUtils.objectsEqual(swap_total, other.swap_total)
                 && ObjectUtils.objectsEqual(swap_free, other.swap_free)
-                && ObjectUtils.objectsEqual(highlyAvailableScore, 
other.highlyAvailableScore)
-                && (anonymousHugePages == other.anonymousHugePages));
+                && (anonymousHugePages == other.anonymousHugePages)
+                && (highlyAvailableScore == other.highlyAvailableScore)
+                && (highlyAvailableIsConfigured == 
other.highlyAvailableIsConfigured)
+                && (highlyAvailableIsActive == other.highlyAvailableIsActive)
+                && (highlyAvailableGlobalMaintenance == 
other.highlyAvailableGlobalMaintenance)
+                && (highlyAvailableLocalMaintenance == 
other.highlyAvailableLocalMaintenance));
     }
 
     public Double getcpu_idle() {
@@ -250,12 +267,44 @@
         this.ksm_state = value;
     }
 
-    public Integer getHighlyAvailableScore() {
+    public int getHighlyAvailableScore() {
         return highlyAvailableScore;
     }
 
-    public void setHighlyAvailableScore(Integer value) {
+    public void setHighlyAvailableScore(int value) {
         highlyAvailableScore = value;
     }
 
+    public boolean getHighlyAvailableIsConfigured() {
+        return highlyAvailableIsConfigured;
+    }
+
+    public void setHighlyAvailableIsConfigured(boolean value) {
+        highlyAvailableIsConfigured = value;
+    }
+
+    public boolean getHighlyAvailableIsActive() {
+        return highlyAvailableIsActive;
+    }
+
+    public void setHighlyAvailableIsActive(boolean value) {
+        highlyAvailableIsActive = value;
+    }
+
+    public boolean getHighlyAvailableGlobalMaintenance() {
+        return highlyAvailableGlobalMaintenance;
+    }
+
+    public void setHighlyAvailableGlobalMaintenance(boolean value) {
+        highlyAvailableGlobalMaintenance = value;
+    }
+
+    public boolean getHighlyAvailableLocalMaintenance() {
+        return highlyAvailableLocalMaintenance;
+    }
+
+    public void setHighlyAvailableLocalMaintenance(boolean value) {
+        highlyAvailableLocalMaintenance = value;
+    }
+
 }
diff --git 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VdsDAODbFacadeImpl.java
 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VdsDAODbFacadeImpl.java
index 4c66558..f4c7f50 100644
--- 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VdsDAODbFacadeImpl.java
+++ 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VdsDAODbFacadeImpl.java
@@ -341,6 +341,10 @@
             entity.setHighlyAvailableScore(rs.getInt("ha_score"));
             
entity.setDisablePowerManagementPolicy(rs.getBoolean("disable_auto_pm"));
             
entity.setPowerManagementControlledByPolicy(rs.getBoolean("controlled_by_pm_policy"));
+            
entity.setHighlyAvailableIsConfigured(rs.getBoolean("ha_configured"));
+            entity.setHighlyAvailableIsActive(rs.getBoolean("ha_active"));
+            
entity.setHighlyAvailableGlobalMaintenance(rs.getBoolean("ha_global_maintenance"));
+            
entity.setHighlyAvailableLocalMaintenance(rs.getBoolean("ha_local_maintenance"));
             entity.calculateFreeVirtualMemory();
             return entity;
         }
diff --git 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VdsStatisticsDAODbFacadeImpl.java
 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VdsStatisticsDAODbFacadeImpl.java
index c1e84cd..c9deccb 100644
--- 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VdsStatisticsDAODbFacadeImpl.java
+++ 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VdsStatisticsDAODbFacadeImpl.java
@@ -46,6 +46,11 @@
             entity.setksm_pages(rs.getLong("ksm_pages"));
             entity.setksm_state((Boolean) rs.getObject("ksm_state"));
             entity.setAnonymousHugePages(rs.getInt("anonymous_hugepages"));
+            entity.setHighlyAvailableScore(rs.getInt("ha_score"));
+            
entity.setHighlyAvailableIsConfigured(rs.getBoolean("ha_configured"));
+            entity.setHighlyAvailableIsActive(rs.getBoolean("ha_active"));
+            
entity.setHighlyAvailableGlobalMaintenance(rs.getBoolean("ha_global_maintenance"));
+            
entity.setHighlyAvailableLocalMaintenance(rs.getBoolean("ha_local_maintenance"));
             return entity;
         }
     }
@@ -80,8 +85,12 @@
                 .addValue("ksm_cpu_percent", stats.getksm_cpu_percent())
                 .addValue("ksm_pages", stats.getksm_pages())
                 .addValue("ksm_state", stats.getksm_state())
+                .addValue("anonymous_hugepages", stats.getAnonymousHugePages())
                 .addValue("ha_score", stats.getHighlyAvailableScore())
-                .addValue("anonymous_hugepages", 
stats.getAnonymousHugePages());
+                .addValue("ha_configured", 
stats.getHighlyAvailableIsConfigured())
+                .addValue("ha_active", stats.getHighlyAvailableIsActive())
+                .addValue("ha_global_maintenance", 
stats.getHighlyAvailableGlobalMaintenance())
+                .addValue("ha_local_maintenance", 
stats.getHighlyAvailableLocalMaintenance());
 
         getCallsHandler().executeModification("InsertVdsStatistics", 
parameterSource);
     }
@@ -106,8 +115,12 @@
                 .addValue("ksm_cpu_percent", stats.getksm_cpu_percent())
                 .addValue("ksm_pages", stats.getksm_pages())
                 .addValue("ksm_state", stats.getksm_state())
+                .addValue("anonymous_hugepages", stats.getAnonymousHugePages())
                 .addValue("ha_score", stats.getHighlyAvailableScore())
-                .addValue("anonymous_hugepages", 
stats.getAnonymousHugePages());
+                .addValue("ha_configured", 
stats.getHighlyAvailableIsConfigured())
+                .addValue("ha_active", stats.getHighlyAvailableIsActive())
+                .addValue("ha_global_maintenance", 
stats.getHighlyAvailableGlobalMaintenance())
+                .addValue("ha_local_maintenance", 
stats.getHighlyAvailableLocalMaintenance());
 
         getCallsHandler().executeModification("UpdateVdsStatistics", 
parameterSource);
     }
diff --git a/backend/manager/modules/dal/src/test/resources/fixtures.xml 
b/backend/manager/modules/dal/src/test/resources/fixtures.xml
index 78dd5cb..0dbbc8b 100644
--- a/backend/manager/modules/dal/src/test/resources/fixtures.xml
+++ b/backend/manager/modules/dal/src/test/resources/fixtures.xml
@@ -2740,8 +2740,12 @@
         <column>ksm_pages</column>
         <column>ksm_state</column>
         <column>_update_date</column>
-        <column>ha_score</column>
         <column>anonymous_hugepages</column>
+        <column>ha_score</column>
+        <column>ha_configured</column>
+        <column>ha_active</column>
+        <column>ha_global_maintenance</column>
+        <column>ha_local_maintenance</column>
         <row>
             <value>afce7a39-8e8c-4819-ba9c-796d316592e6</value>
             <value>100</value>
@@ -2761,6 +2765,10 @@
             <null />
             <value>0</value>
             <value>0</value>
+            <value>false</value>
+            <value>false</value>
+            <value>false</value>
+            <value>false</value>
         </row>
         <row>
             <value>afce7a39-8e8c-4819-ba9c-796d316592e7</value>
@@ -2781,6 +2789,10 @@
             <null />
             <value>0</value>
             <value>0</value>
+            <value>false</value>
+            <value>false</value>
+            <value>false</value>
+            <value>false</value>
         </row>
         <row>
             <value>afce7a39-8e8c-4819-ba9c-796d316592e8</value>
@@ -2801,6 +2813,10 @@
             <null />
             <value>0</value>
             <value>0</value>
+            <value>false</value>
+            <value>false</value>
+            <value>false</value>
+            <value>false</value>
         </row>
         <row>
             <value>23f6d691-5dfb-472b-86dc-9e1d2d3c18f3</value>
@@ -2821,6 +2837,10 @@
             <null />
             <value>0</value>
             <value>0</value>
+            <value>false</value>
+            <value>false</value>
+            <value>false</value>
+            <value>false</value>
         </row>
         <row>
             <value>2001751e-549b-4e7a-aff6-32d36856c125</value>
@@ -2841,6 +2861,10 @@
             <null />
             <value>0</value>
             <value>0</value>
+            <value>false</value>
+            <value>false</value>
+            <value>false</value>
+            <value>false</value>
         </row>
     </table>
 
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 8852f4f..5efcb12 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
@@ -633,8 +633,36 @@
         vds.setVmMigrating(AssignIntValue(xmlRpcStruct, 
VdsProperties.vm_migrating));
         updateVDSDomainData(vds, xmlRpcStruct);
         updateLocalDisksUsage(vds, xmlRpcStruct);
-        Integer haScore = AssignIntValue(xmlRpcStruct, VdsProperties.ha_score);
+
+        // hosted engine
+        Integer haScore = null;
+        Boolean haIsConfigured = null;
+        Boolean haIsActive = null;
+        Boolean haGlobalMaint = null;
+        Boolean haLocalMaint = null;
+        if (xmlRpcStruct.containsKey(VdsProperties.ha_stats)) {
+            Map<String, Object> haStats = (Map<String, Object>) 
xmlRpcStruct.get(VdsProperties.ha_stats);
+            if (haStats != null) {
+                haScore = AssignIntValue(haStats, 
VdsProperties.ha_stats_score);
+                haIsConfigured = AssignBoolValue(haStats, 
VdsProperties.ha_stats_is_configured);
+                haIsActive = AssignBoolValue(haStats, 
VdsProperties.ha_stats_is_active);
+                haGlobalMaint = AssignBoolValue(haStats, 
VdsProperties.ha_stats_global_maintenance);
+                haLocalMaint = AssignBoolValue(haStats, 
VdsProperties.ha_stats_local_maintenance);
+            }
+        } else {
+            haScore = AssignIntValue(xmlRpcStruct, VdsProperties.ha_score);
+            // prior to 3.4, haScore was returned if ha was installed; assume 
active if > 0
+            if (haScore != null) {
+                haIsConfigured = true;
+                haIsActive = (haScore > 0);
+            }
+        }
         vds.setHighlyAvailableScore(haScore != null ? haScore : 0);
+        vds.setHighlyAvailableIsConfigured(haIsConfigured != null ? 
haIsConfigured : false);
+        vds.setHighlyAvailableIsActive(haIsActive != null ? haIsActive : 
false);
+        vds.setHighlyAvailableGlobalMaintenance(haGlobalMaint != null ? 
haGlobalMaint : false);
+        vds.setHighlyAvailableLocalMaintenance(haLocalMaint != null ? 
haLocalMaint : false);
+
     }
 
     /**
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 2c7cd65..40bf1a9 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
@@ -67,6 +67,12 @@
     public static final String images_last_check = "imagesLastCheck";
     public static final String images_last_delay = "imagesLastDelay";
     public static final String ha_score = "haScore";
+    public static final String ha_stats = "haStats";
+    public static final String ha_stats_score = "score";
+    public static final String ha_stats_is_configured = "configured";
+    public static final String ha_stats_is_active = "active";
+    public static final String ha_stats_global_maintenance = 
"globalMaintenance";
+    public static final String ha_stats_local_maintenance = "localMaintenance";
 
     public static final String INTERFACE = "iface";
 
diff --git a/packaging/dbscripts/create_views.sql 
b/packaging/dbscripts/create_views.sql
index 58bba2f..c1cd9bc 100644
--- a/packaging/dbscripts/create_views.sql
+++ b/packaging/dbscripts/create_views.sql
@@ -721,7 +721,8 @@
                        vds_static.recoverable as recoverable, 
vds_static.sshKeyFingerprint as sshKeyFingerprint, vds_dynamic.hw_manufacturer 
as hw_manufacturer, vds_dynamic.hw_product_name as hw_product_name, 
vds_dynamic.hw_version as hw_version,
                       vds_dynamic.hw_serial_number as hw_serial_number, 
vds_dynamic.hw_uuid as hw_uuid, vds_dynamic.hw_family as hw_family, 
vds_static.console_address as console_address,
                       vds_dynamic.hbas as hbas, 
vds_dynamic.supported_emulated_machines as supported_emulated_machines, 
vds_static.ssh_port as ssh_port, vds_static.ssh_username as ssh_username, 
vds_statistics.ha_score as ha_score,
-                      vds_static.disable_auto_pm as disable_auto_pm, 
vds_dynamic.controlled_by_pm_policy as controlled_by_pm_policy
+                      vds_statistics.ha_configured as ha_configured, 
vds_statistics.ha_active as ha_active, vds_statistics.ha_global_maintenance as 
ha_global_maintenance,
+                      vds_statistics.ha_local_maintenance as 
ha_local_maintenance, vds_static.disable_auto_pm as disable_auto_pm, 
vds_dynamic.controlled_by_pm_policy as controlled_by_pm_policy
 FROM         vds_groups INNER JOIN
 vds_static ON vds_groups.vds_group_id = vds_static.vds_group_id INNER JOIN
 vds_dynamic ON vds_static.vds_id = vds_dynamic.vds_id INNER JOIN
@@ -762,7 +763,8 @@
                       vds_groups.compatibility_version AS 
vds_group_compatibility_version, vds_dynamic.host_os, vds_dynamic.kvm_version, 
vds_dynamic.libvirt_version,
                       vds_dynamic.spice_version, vds_dynamic.gluster_version, 
vds_dynamic.kernel_version, vds_dynamic.iscsi_initiator_name,
                       vds_dynamic.transparent_hugepages_state, 
vds_statistics.anonymous_hugepages, vds_dynamic.non_operational_reason,
-                      storage_pool_iso_map.storage_id, vds_static.ssh_port, 
vds_static.ssh_username, vds_statistics.ha_score as ha_score,
+                      storage_pool_iso_map.storage_id, vds_static.ssh_port, 
vds_static.ssh_username, vds_statistics.ha_score,
+                      vds_statistics.ha_configured, vds_statistics.ha_active, 
vds_statistics.ha_global_maintenance, vds_statistics.ha_local_maintenance,
                       vds_static.disable_auto_pm as disable_auto_pm, 
vds_dynamic.controlled_by_pm_policy as controlled_by_pm_policy
 FROM         vds_groups INNER JOIN
 vds_static ON vds_groups.vds_group_id = vds_static.vds_group_id INNER JOIN
diff --git 
a/packaging/dbscripts/upgrade/03_05_0030_add_ha_columns_to_vds_statistics.sql 
b/packaging/dbscripts/upgrade/03_05_0030_add_ha_columns_to_vds_statistics.sql
new file mode 100644
index 0000000..36869f7
--- /dev/null
+++ 
b/packaging/dbscripts/upgrade/03_05_0030_add_ha_columns_to_vds_statistics.sql
@@ -0,0 +1,6 @@
+
+select fn_db_add_column('vds_statistics', 'ha_configured', 'BOOLEAN NOT NULL 
DEFAULT FALSE');
+select fn_db_add_column('vds_statistics', 'ha_active', 'BOOLEAN NOT NULL 
DEFAULT FALSE');
+select fn_db_add_column('vds_statistics', 'ha_global_maintenance', 'BOOLEAN 
NOT NULL DEFAULT FALSE');
+select fn_db_add_column('vds_statistics', 'ha_local_maintenance', 'BOOLEAN NOT 
NULL DEFAULT FALSE');
+
diff --git a/packaging/dbscripts/vds_sp.sql b/packaging/dbscripts/vds_sp.sql
index 6d28679..1afb8d3 100644
--- a/packaging/dbscripts/vds_sp.sql
+++ b/packaging/dbscripts/vds_sp.sql
@@ -24,15 +24,19 @@
  v_ksm_cpu_percent INTEGER ,
  v_ksm_pages BIGINT ,
  v_ksm_state BOOLEAN,
+ v_anonymous_hugepages INTEGER,
  v_ha_score INTEGER,
- v_anonymous_hugepages INTEGER)
+ v_ha_configured BOOLEAN,
+ v_ha_active BOOLEAN,
+ v_ha_global_maintenance BOOLEAN,
+ v_ha_local_maintenance BOOLEAN)
 RETURNS VOID
    AS $procedure$
 BEGIN
 
    BEGIN
-INSERT INTO vds_statistics(cpu_idle, cpu_load, cpu_sys, cpu_user, 
usage_cpu_percent, usage_mem_percent, usage_network_percent, vds_id, 
mem_available, mem_free, 
mem_shared,swap_free,swap_total,ksm_cpu_percent,ksm_pages,ksm_state, 
ha_score,anonymous_hugepages)
-       VALUES(v_cpu_idle, v_cpu_load, v_cpu_sys, v_cpu_user, 
v_usage_cpu_percent, v_usage_mem_percent, v_usage_network_percent, v_vds_id, 
v_mem_available, v_mem_free, 
v_mem_shared,v_swap_free,v_swap_total,v_ksm_cpu_percent,v_ksm_pages,v_ksm_state,
 v_ha_score,v_anonymous_hugepages);
+INSERT INTO vds_statistics(cpu_idle, cpu_load, cpu_sys, cpu_user, 
usage_cpu_percent, usage_mem_percent, usage_network_percent, vds_id, 
mem_available, mem_free, 
mem_shared,swap_free,swap_total,ksm_cpu_percent,ksm_pages,ksm_state, 
anonymous_hugepages, ha_score, ha_configured, ha_active, ha_global_maintenance, 
ha_local_maintenance)
+       VALUES(v_cpu_idle, v_cpu_load, v_cpu_sys, v_cpu_user, 
v_usage_cpu_percent, v_usage_mem_percent, v_usage_network_percent, v_vds_id, 
v_mem_available, v_mem_free, 
v_mem_shared,v_swap_free,v_swap_total,v_ksm_cpu_percent,v_ksm_pages,v_ksm_state,
 v_anonymous_hugepages, v_ha_score, v_ha_configured, v_ha_active, 
v_ha_global_maintenance, v_ha_local_maintenance);
    END;
 
    RETURN;
@@ -59,8 +63,12 @@
  v_ksm_cpu_percent INTEGER ,
  v_ksm_pages BIGINT ,
  v_ksm_state BOOLEAN,
+ v_anonymous_hugepages INTEGER,
  v_ha_score INTEGER,
- v_anonymous_hugepages INTEGER)
+ v_ha_configured BOOLEAN,
+ v_ha_active BOOLEAN,
+ v_ha_global_maintenance BOOLEAN,
+ v_ha_local_maintenance BOOLEAN)
 RETURNS VOID
 
        --The [vds_dynamic] table doesn't have a timestamp column. Optimistic 
concurrency logic cannot be generated
@@ -74,8 +82,10 @@
       usage_network_percent = v_usage_network_percent,
       mem_available = v_mem_available, mem_free = v_mem_free, mem_shared = 
v_mem_shared,
       swap_free = v_swap_free,swap_total = v_swap_total,ksm_cpu_percent = 
v_ksm_cpu_percent,
-      ksm_pages = v_ksm_pages,ksm_state = v_ksm_state, ha_score = v_ha_score, 
_update_date = LOCALTIMESTAMP,
-      anonymous_hugepages = v_anonymous_hugepages
+      ksm_pages = v_ksm_pages,ksm_state = v_ksm_state, anonymous_hugepages = 
v_anonymous_hugepages,
+      ha_score = v_ha_score, ha_configured = v_ha_configured, ha_active = 
v_ha_active,
+      ha_global_maintenance = v_ha_global_maintenance, ha_local_maintenance = 
v_ha_local_maintenance,
+      _update_date = LOCALTIMESTAMP
       WHERE vds_id = v_vds_id;
    END;
 


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

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

Reply via email to