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
