Roy Golan has uploaded a new change for review.

Change subject: core: call prccessHardwareCaps after GetHardwareInfo
......................................................................

core: call prccessHardwareCaps after GetHardwareInfo

the process capabilities of a host is now:

1. calling GetVdsCaps
2. persisting to DB *only* the cpu_flags from the result vds object
3. calling processHardwareCaps
4. calling processSoftwareCaps

Bug-Url: https://bugzilla.redhat.com/1077300
Change-Id: Ief9d623e4b46faa6809f9994ee78564b0955c306
Signed-off-by: Roy Golan <[email protected]>
---
M 
backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VdsDynamicDAO.java
M 
backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VdsDynamicDAODbFacadeImpl.java
M 
backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/VdsManager.java
M 
backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/VdsUpdateRunTimeInfo.java
M packaging/dbscripts/vds_sp.sql
5 files changed, 35 insertions(+), 3 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/61/27561/1

diff --git 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VdsDynamicDAO.java
 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VdsDynamicDAO.java
index 3c3b331..71f8c7a 100644
--- 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VdsDynamicDAO.java
+++ 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VdsDynamicDAO.java
@@ -35,4 +35,10 @@
      * @param controlledByPmPolicy - a new value for the flag
      */
     void updateVdsDynamicPowerManagementPolicyFlag(Guid id, boolean 
controlledByPmPolicy);
+
+    /**
+     * @param id
+     * @param cpuFlags
+     */
+    void updateCpuFlags(Guid id, String cpuFlags);
 }
diff --git 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VdsDynamicDAODbFacadeImpl.java
 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VdsDynamicDAODbFacadeImpl.java
index 7fe1c81..759990a 100644
--- 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VdsDynamicDAODbFacadeImpl.java
+++ 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VdsDynamicDAODbFacadeImpl.java
@@ -278,4 +278,13 @@
         
getCallsHandler().executeModification("UpdateVdsDynamicPowerManagementPolicyFlag",
 parameterSource);
 
     }
+
+    @Override
+    public void updateCpuFlags(Guid id, String cpuFlags) {
+        getCallsHandler().executeModification(
+                "updateCpuFlags",
+                getCustomMapSqlParameterSource()
+                        .addValue("vds_id", id)
+                        .addValue("cpu_flags", cpuFlags));
+    }
 }
diff --git 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/VdsManager.java
 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/VdsManager.java
index eeafaf4..71b9cae 100644
--- 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/VdsManager.java
+++ 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/VdsManager.java
@@ -547,6 +547,12 @@
 
             // We process the software capabilities.
             VDSStatus oldStatus = vds.getStatus();
+            if (oldStatus != VDSStatus.Up) {
+                // persist to db the host's cpu_flags.
+                // TODO this needs to be revisited - either all the logic is 
in-memory or based on db
+                
DbFacade.getInstance().getVdsDynamicDao().updateCpuFlags(vds.getId(), 
vds.getCpuFlags());
+                monitoringStrategy.processHardwareCapabilities(vds);
+            }
             monitoringStrategy.processSoftwareCapabilities(vds);
 
             returnStatus = vds.getStatus();
diff --git 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/VdsUpdateRunTimeInfo.java
 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/VdsUpdateRunTimeInfo.java
index 3a9adaf..114499d 100644
--- 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/VdsUpdateRunTimeInfo.java
+++ 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/VdsUpdateRunTimeInfo.java
@@ -484,9 +484,6 @@
                     refreshVdsStats();
                 }
             } else {
-                if (_firstStatus != VDSStatus.Up ) {
-                    monitoringStrategy.processHardwareCapabilities(_vds);
-                }
                 // refresh dynamic data
                 final AtomicBoolean processHardwareNeededAtomic = new 
AtomicBoolean();
                 VDSStatus refreshReturnStatus =
diff --git a/packaging/dbscripts/vds_sp.sql b/packaging/dbscripts/vds_sp.sql
index 1afb8d3..c7cfd03 100644
--- a/packaging/dbscripts/vds_sp.sql
+++ b/packaging/dbscripts/vds_sp.sql
@@ -975,3 +975,17 @@
       AND vds_interface.vds_id = vds.vds_id);
 END; $procedure$
 LANGUAGE plpgsql;
+
+
+Create or replace FUNCTION UpdateCpuFlags(
+  v_vds_id UUID,
+  v_cpu_flags VARCHAR(4000))
+  RETURNS VOID
+AS $procedure$
+BEGIN
+      UPDATE vds_dynamic
+      SET
+      cpu_flags = v_cpu_flags
+      WHERE vds_id = v_vds_id;
+END; $procedure$
+LANGUAGE plpgsql;


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: Ief9d623e4b46faa6809f9994ee78564b0955c306
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: ovirt-engine-3.4
Gerrit-Owner: Roy Golan <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to