Hello Jiří Moskovčák,

I'd like you to do a code review.  Please visit

    http://gerrit.ovirt.org/23423

to review the following change.

Change subject: core: added support for ksm settings
......................................................................

core: added support for ksm settings

Since vdsm 3.3 the ksm is controlled via MoM and there should
be a way to control the ksm settings from the engine. This patch
adds the initial support to the engine core.

Change-Id: I719d0b130fda26894db9fdaf892fd6da28bb648b
Bug-Url: https://bugzilla.redhat.com/1026980
Signed-off-by: Jiri Moskovcak <[email protected]>
---
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/InitVdsOnUpCommand.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateMomPolicyCommand.java
M 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VDSGroup.java
M 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/MomPolicyVDSParameters.java
M 
backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VdsGroupDAODbFacadeImpl.java
M 
backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/SetMOMPolicyParametersVDSCommand.java
M 
backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/VdsProperties.java
A packaging/dbscripts/upgrade/03_04_0480_add_enable_ksm_to_vds_groups.sql
M packaging/dbscripts/vds_groups_sp.sql
9 files changed, 40 insertions(+), 9 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/23/23423/1

diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/InitVdsOnUpCommand.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/InitVdsOnUpCommand.java
index 0035055..d10077e 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/InitVdsOnUpCommand.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/InitVdsOnUpCommand.java
@@ -267,7 +267,8 @@
         if (cluster.getcompatibility_version().compareTo(Version.v3_3) >= 0) {
             try {
                 returnValue = 
runVdsCommand(VDSCommandType.SetMOMPolicyParameters,
-                        new MomPolicyVDSParameters(vds, 
cluster.isEnableBallooning()));
+                        new MomPolicyVDSParameters(vds, 
cluster.isEnableBallooning(), cluster.isEnableKsm())
+                                                );
             } catch (VdcBLLException e) {
                 log.errorFormat("Could not update MoM policy on host {0}", 
vds.getName());
                 returnValue.setSucceeded(false);
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateMomPolicyCommand.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateMomPolicyCommand.java
index 7a1da67..33ef712 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateMomPolicyCommand.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/UpdateMomPolicyCommand.java
@@ -26,7 +26,9 @@
         boolean succeeded = false;
         try {
             succeeded = runVdsCommand(VDSCommandType.SetMOMPolicyParameters,
-                    new MomPolicyVDSParameters(getVds(), 
getVdsGroup().isEnableBallooning())).getSucceeded();
+                    new MomPolicyVDSParameters(getVds(), 
getVdsGroup().isEnableBallooning(),
+                                                getVdsGroup().isEnableKsm())
+                                              ).getSucceeded();
         } catch (VdcBLLException e) {
             log.errorFormat("Could not update MoM policy on host {0}", 
getVdsName());
         }
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VDSGroup.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VDSGroup.java
index 8ff574f..d04514c 100644
--- 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VDSGroup.java
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VDSGroup.java
@@ -46,6 +46,8 @@
 
     private boolean enableBallooning;
 
+    private boolean enableKsm;
+
     private boolean countThreadsAsCores;
 
     @Size(max = BusinessEntitiesDefinitions.GENERAL_VERSION_SIZE)
@@ -277,6 +279,14 @@
         this.clusterPolicyProperties = clusterPolicyProperties;
     }
 
+    public boolean isEnableKsm() {
+        return enableKsm;
+    }
+
+    public void setEnableKsm(boolean enableKsm) {
+        this.enableKsm = enableKsm;
+    }
+
     public boolean isEnableBallooning() {
         return enableBallooning;
     }
@@ -341,6 +351,7 @@
         result = prime * result + (haReservation ? 1231 : 1237);
         result = prime * result + ((clusterPolicyName == null) ? 0 : 
clusterPolicyName.hashCode());
         result = prime * result + (clusterPolicyProperties == null ? 0 : 
clusterPolicyProperties.hashCode());
+        result = prime * result + (enableKsm ? 1231 : 1237);
         result = prime * result + (enableBallooning ? 1231 : 1237);
         result = prime * result + ((optimizationType == null) ? 0 : 
optimizationType.hashCode());
         return result;
@@ -379,6 +390,7 @@
                 && ObjectUtils.objectsEqual(clusterPolicyId, 
other.clusterPolicyId)
                 && ObjectUtils.objectsEqual(clusterPolicyName, 
other.clusterPolicyName)
                 && ObjectUtils.objectsEqual(clusterPolicyProperties, 
other.clusterPolicyProperties)
+                && enableKsm == other.enableKsm
                 && enableBallooning == other.enableBallooning
                 && detectEmulatedMachine == other.detectEmulatedMachine
                 && optimizationType == other.optimizationType);
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/MomPolicyVDSParameters.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/MomPolicyVDSParameters.java
index 051ea41..1b2b6c7 100644
--- 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/MomPolicyVDSParameters.java
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/vdscommands/MomPolicyVDSParameters.java
@@ -7,10 +7,12 @@
  */
 public class MomPolicyVDSParameters extends VdsIdVDSCommandParametersBase {
     private boolean enableBalloon;
+    private boolean enableKsm;
 
-    public MomPolicyVDSParameters(VDS vds, boolean enableBalloon) {
+    public MomPolicyVDSParameters(VDS vds, boolean enableBalloon, boolean 
enableKsm) {
         super(vds.getId());
         this.enableBalloon = enableBalloon;
+        this.enableKsm = enableKsm;
     }
 
     public MomPolicyVDSParameters() {
@@ -23,4 +25,12 @@
     public void setEnableBalloon(boolean enableBalloon) {
         this.enableBalloon = enableBalloon;
     }
+
+    public boolean isEnableKsm() {
+        return enableKsm;
+    }
+
+    public void setEnableKsm(boolean enableKsm) {
+        this.enableKsm = enableKsm;
+    }
 }
diff --git 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VdsGroupDAODbFacadeImpl.java
 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VdsGroupDAODbFacadeImpl.java
index 91bceb6..aa7154c 100644
--- 
a/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VdsGroupDAODbFacadeImpl.java
+++ 
b/backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VdsGroupDAODbFacadeImpl.java
@@ -195,7 +195,7 @@
                 .addValue("architecture", group.getArchitecture())
                 .addValue("enable_balloon", group.isEnableBallooning())
                 .addValue("optimization_type", group.getOptimizationType())
-                .addValue("enable_balloon", group.isEnableBallooning())
+                .addValue("enable_ksm", group.isEnableKsm())
                 .addValue("spice_proxy", group.getSpiceProxy());
         return parameterSource;
     }
@@ -236,6 +236,7 @@
             
entity.setClusterPolicyProperties(SerializationFactory.getDeserializer()
                     
.deserializeOrCreateNew(rs.getString("cluster_policy_custom_properties"), 
LinkedHashMap.class));
             entity.setEnableBallooning(rs.getBoolean("enable_balloon"));
+            entity.setEnableKsm(rs.getBoolean("enable_ksm"));
             
entity.setArchitecture(ArchitectureType.forValue(rs.getInt("architecture")));
             
entity.setOptimizationType(OptimizationType.from(rs.getInt("optimization_type")));
             entity.setSpiceProxy(rs.getString("spice_proxy"));
diff --git 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/SetMOMPolicyParametersVDSCommand.java
 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/SetMOMPolicyParametersVDSCommand.java
index f041162..7e9123b 100644
--- 
a/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/SetMOMPolicyParametersVDSCommand.java
+++ 
b/backend/manager/modules/vdsbroker/src/main/java/org/ovirt/engine/core/vdsbroker/vdsbroker/SetMOMPolicyParametersVDSCommand.java
@@ -27,6 +27,7 @@
     protected Map<String, Object> initDeviceStructure() {
         Map<String, Object> deviceStruct = new HashMap<>();
         deviceStruct.put(VdsProperties.balloonEnabled, 
getParameters().isEnableBalloon());
+        deviceStruct.put(VdsProperties.ksmEnabled, 
getParameters().isEnableKsm());
         return deviceStruct;
     }
 }
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 5560cfe..c980e69 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
@@ -326,6 +326,7 @@
 
     // MoM policy tuning
     public static final String balloonEnabled = "balloonEnabled";
+    public static final String ksmEnabled = "ksmEnabled";
 
     // properties for ServerConnectionListReturnForXmlRpc
     public static final String serverType = "serverType";
diff --git 
a/packaging/dbscripts/upgrade/03_04_0480_add_enable_ksm_to_vds_groups.sql 
b/packaging/dbscripts/upgrade/03_04_0480_add_enable_ksm_to_vds_groups.sql
new file mode 100644
index 0000000..e97ffb3
--- /dev/null
+++ b/packaging/dbscripts/upgrade/03_04_0480_add_enable_ksm_to_vds_groups.sql
@@ -0,0 +1 @@
+select fn_db_add_column('vds_groups', 'enable_ksm', 'boolean not null default 
true');
diff --git a/packaging/dbscripts/vds_groups_sp.sql 
b/packaging/dbscripts/vds_groups_sp.sql
index ba25f6e..6d0dd33 100644
--- a/packaging/dbscripts/vds_groups_sp.sql
+++ b/packaging/dbscripts/vds_groups_sp.sql
@@ -31,16 +31,17 @@
        v_enable_balloon BOOLEAN,
        v_architecture INTEGER,
        v_optimization_type SMALLINT,
-       v_spice_proxy VARCHAR(255))
+       v_spice_proxy VARCHAR(255),
+       v_enable_ksm BOOLEAN)
 RETURNS VOID
    AS $procedure$
 BEGIN
       INSERT INTO vds_groups(vds_group_id,description, name, 
free_text_comment, cpu_name, storage_pool_id,  max_vds_memory_over_commit, 
count_threads_as_cores, compatibility_version,
         transparent_hugepages, migrate_on_error, virt_service, 
gluster_service, tunnel_migration, emulated_machine, detect_emulated_machine, 
trusted_service, ha_reservation, cluster_policy_id,
-        cluster_policy_custom_properties, enable_balloon, architecture, 
optimization_type, spice_proxy)
+        cluster_policy_custom_properties, enable_balloon, architecture, 
optimization_type, spice_proxy, enable_ksm)
        VALUES(v_vds_group_id,v_description, v_name, v_free_text_comment, 
v_cpu_name, v_storage_pool_id,  v_max_vds_memory_over_commit, 
v_count_threads_as_cores, v_compatibility_version,
     v_transparent_hugepages, v_migrate_on_error, v_virt_service, 
v_gluster_service, v_tunnel_migration, v_emulated_machine, 
v_detect_emulated_machine, v_trusted_service, v_ha_reservation, 
v_cluster_policy_id, v_cluster_policy_custom_properties, v_enable_balloon,
-    v_architecture, v_optimization_type, v_spice_proxy);
+    v_architecture, v_optimization_type, v_spice_proxy, v_enable_ksm);
 END; $procedure$
 LANGUAGE plpgsql;
 
@@ -71,7 +72,8 @@
        v_enable_balloon BOOLEAN,
        v_architecture INTEGER,
        v_optimization_type SMALLINT,
-       v_spice_proxy VARCHAR(255)
+       v_spice_proxy VARCHAR(255),
+       v_enable_ksm BOOLEAN
 )
 RETURNS VOID
 
@@ -88,7 +90,7 @@
       virt_service = v_virt_service, gluster_service = v_gluster_service, 
tunnel_migration = v_tunnel_migration,
       emulated_machine = v_emulated_machine, detect_emulated_machine = 
v_detect_emulated_machine, trusted_service = v_trusted_service, ha_reservation 
= v_ha_reservation , cluster_policy_id = v_cluster_policy_id,
       cluster_policy_custom_properties = v_cluster_policy_custom_properties, 
enable_balloon = v_enable_balloon, architecture = v_architecture,
-      optimization_type = v_optimization_type, spice_proxy = v_spice_proxy
+      optimization_type = v_optimization_type, spice_proxy = v_spice_proxy, 
enable_ksm = v_enable_ksm
       WHERE vds_group_id = v_vds_group_id;
 END; $procedure$
 LANGUAGE plpgsql;


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I719d0b130fda26894db9fdaf892fd6da28bb648b
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: ovirt-engine-3.4
Gerrit-Owner: Gilad Chaplik <[email protected]>
Gerrit-Reviewer: Jiří Moskovčák <[email protected]>
_______________________________________________
Engine-patches mailing list
[email protected]
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to