Alona Kaplan has uploaded a new change for review.

Change subject: engine: adding maintenacneReason to vdsDynamic
......................................................................

engine: adding maintenacneReason to vdsDynamic

This patch includes-
1. Adding the field to the business entity.
2. Adding a column to the table.
3. Modifying table's update method to support the new propery/column
(The insert method wasn't updated since this property is not relevant when
creating a vds).

Change-Id: Iac900c656e8309bf9f32fcc9fa9f5c32ed26298c
Bug-Url: https://bugzilla.redhat.com/678977
Signed-off-by: Alona Kaplan <[email protected]>
---
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/VdsDynamic.java
M 
backend/manager/modules/dal/src/main/java/org/ovirt/engine/core/dao/VdsDynamicDAODbFacadeImpl.java
M backend/manager/modules/dal/src/test/resources/fixtures.xml
M packaging/dbscripts/create_views.sql
A 
packaging/dbscripts/upgrade/03_06_0940_add_maintenance_reason_to_vds_dynamic.sql
M packaging/dbscripts/vds_sp.sql
7 files changed, 44 insertions(+), 8 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/96/38296/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 fb083a3..11b5bf6 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
@@ -7,8 +7,8 @@
 import java.util.LinkedList;
 import java.util.List;
 import java.util.Map;
-
 import java.util.Set;
+
 import org.ovirt.engine.core.common.businessentities.network.Network;
 import 
org.ovirt.engine.core.common.businessentities.network.VdsNetworkInterface;
 import org.ovirt.engine.core.common.utils.ObjectUtils;
@@ -16,7 +16,7 @@
 import org.ovirt.engine.core.compat.RpmVersion;
 import org.ovirt.engine.core.compat.Version;
 
-public class VDS extends IVdcQueryable implements Serializable, 
BusinessEntityWithStatus<Guid, VDSStatus>, HasStoragePool<Guid>, Commented, 
Nameable, Cloneable {
+public class VDS extends IVdcQueryable implements Serializable, 
BusinessEntityWithStatus<Guid, VDSStatus>, HasStoragePool<Guid>, Commented, 
Nameable, Cloneable, Reasoned {
     private static final long serialVersionUID = -7893976203379789926L;
     private VdsStatic vdsStatic;
     private VdsDynamic vdsDynamic;
@@ -1305,4 +1305,14 @@
     public boolean isFenceAgentsExist() {
         return !getFenceAgents().isEmpty();
     }
+
+    @Override
+    public String getStopReason() {
+        return vdsDynamic.getMaintenanceReason();
+    }
+
+    @Override
+    public void setStopReason(String value) {
+        vdsDynamic.setMaintenanceReason(value);
+    }
 }
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VdsDynamic.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VdsDynamic.java
index 8f65a97..2d8ca75 100644
--- 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VdsDynamic.java
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/businessentities/VdsDynamic.java
@@ -6,6 +6,7 @@
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
+
 import javax.validation.constraints.Size;
 
 import org.ovirt.engine.core.common.utils.ObjectUtils;
@@ -154,6 +155,8 @@
     private boolean numaSupport;
 
     private Set<VmRngDevice.Source> supportedRngSources;
+
+    private String maintenanceReason;
 
     public VdsDynamic() {
         rpmVersion = new RpmVersion();
@@ -667,6 +670,14 @@
         this.supportedEmulatedMachines = supportedEmulatedMachines;
     }
 
+    public String getMaintenanceReason() {
+        return maintenanceReason;
+    }
+
+    public void setMaintenanceReason(String stopReason) {
+        this.maintenanceReason = stopReason;
+    }
+
     @Override
     public int hashCode() {
         final int prime = 31;
@@ -728,6 +739,7 @@
         result = prime * result + (numaSupport ? 0 : 1);
         result = prime * result + (liveSnapshotSupport ? 0 : 1);
         result = prime * result + (liveMergeSupport ? 0 : 1);
+        result = prime * result + (maintenanceReason == null ? 0 : 
maintenanceReason.hashCode());
 
         return result;
     }
@@ -799,6 +811,7 @@
                 && powerManagementControlledByPolicy == 
other.powerManagementControlledByPolicy
                 && ObjectUtils.objectsEqual(supportedRngSources, 
other.supportedRngSources)
                 && liveSnapshotSupport == other.liveSnapshotSupport
-                && liveMergeSupport == other.liveMergeSupport;
+                && liveMergeSupport == other.liveMergeSupport
+                && ObjectUtils.objectsEqual(maintenanceReason, 
other.maintenanceReason);
     }
 }
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 27bbefd..eda6853 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
@@ -105,6 +105,7 @@
             
entity.setLiveMergeSupport(rs.getBoolean("is_live_merge_supported"));
             
entity.setSupportedEmulatedMachines(rs.getString("supported_emulated_machines"));
             
entity.getSupportedRngSources().addAll(VmRngDevice.csvToSourcesSet(rs.getString("supported_rng_sources")));
+            entity.setMaintenanceReason(rs.getString("maintenance_reason"));
             return entity;
         }
     }
@@ -256,7 +257,8 @@
                 .addValue("supported_rng_sources", 
VmRngDevice.sourcesToCsv(vds.getSupportedRngSources()))
                 .addValue("supported_emulated_machines", 
vds.getSupportedEmulatedMachines())
                 .addValue("is_live_snapshot_supported", 
vds.getLiveSnapshotSupport())
-                .addValue("is_live_merge_supported", 
vds.getLiveMergeSupport());
+                .addValue("is_live_merge_supported", vds.getLiveMergeSupport())
+                .addValue("maintenance_reason", vds.getMaintenanceReason());
 
         return parameterSource;
     }
diff --git a/backend/manager/modules/dal/src/test/resources/fixtures.xml 
b/backend/manager/modules/dal/src/test/resources/fixtures.xml
index 67e8aaa..4db39e6 100644
--- a/backend/manager/modules/dal/src/test/resources/fixtures.xml
+++ b/backend/manager/modules/dal/src/test/resources/fixtures.xml
@@ -3241,6 +3241,7 @@
         <column>is_live_snapshot_supported</column>
         <column>is_live_merge_supported</column>
         <column>online_cpus</column>
+        <column>maintenance_reason</column>
         <row>
             <value>afce7a39-8e8c-4819-ba9c-796d316592e6</value>
             <value>3</value>
@@ -3295,6 +3296,7 @@
             <value>true</value>
             <value>true</value>
             <value>0,1,2,3</value>
+            <null />
         </row>
         <row>
             <value>afce7a39-8e8c-4819-ba9c-796d316592e7</value>
@@ -3350,6 +3352,7 @@
             <value>false</value>
             <value>false</value>
             <value>0,2,4</value>
+            <null />
         </row>
         <row>
             <value>afce7a39-8e8c-4819-ba9c-796d316592e8</value>
@@ -3405,6 +3408,7 @@
             <value>false</value>
             <value>false</value>
             <value>0,8,16,24,32</value>
+            <null />
         </row>
         <row>
             <value>23f6d691-5dfb-472b-86dc-9e1d2d3c18f3</value>
@@ -3460,6 +3464,7 @@
             <value>true</value>
             <value>true</value>
             <value>0,128</value>
+            <null />
         </row>
         <row>
             <value>2001751e-549b-4e7a-aff6-32d36856c125</value>
@@ -3515,6 +3520,7 @@
             <value>true</value>
             <value>true</value>
             <value>0,1,2,3,4,5,6,7,8</value>
+            <null />
         </row>
     </table>
 
diff --git a/packaging/dbscripts/create_views.sql 
b/packaging/dbscripts/create_views.sql
index e003ffe..e6f201d 100644
--- a/packaging/dbscripts/create_views.sql
+++ b/packaging/dbscripts/create_views.sql
@@ -1412,7 +1412,8 @@
     fence_agents.agent_user AS agent_user,
     fence_agents.agent_password AS agent_password,
     fence_agents.port AS agent_port,
-    fence_agents.options AS agent_options
+    fence_agents.options AS agent_options,
+    vds_dynamic.maintenance_reason AS maintenance_reason
 FROM
     vds_groups
 INNER JOIN vds_static ON vds_groups.vds_group_id = vds_static.vds_group_id
@@ -1547,7 +1548,8 @@
     fence_agents.agent_user AS agent_user,
     fence_agents.agent_password AS agent_password,
     fence_agents.port AS agent_port,
-    fence_agents.options AS agent_options
+    fence_agents.options AS agent_options,
+    vds_dynamic.maintenance_reason AS maintenance_reason
 FROM
     vds_groups
 INNER JOIN vds_static ON vds_groups.vds_group_id = vds_static.vds_group_id
diff --git 
a/packaging/dbscripts/upgrade/03_06_0940_add_maintenance_reason_to_vds_dynamic.sql
 
b/packaging/dbscripts/upgrade/03_06_0940_add_maintenance_reason_to_vds_dynamic.sql
new file mode 100644
index 0000000..6366798
--- /dev/null
+++ 
b/packaging/dbscripts/upgrade/03_06_0940_add_maintenance_reason_to_vds_dynamic.sql
@@ -0,0 +1 @@
+select fn_db_add_column('vds_dynamic', 'maintenance_reason', 'text');
diff --git a/packaging/dbscripts/vds_sp.sql b/packaging/dbscripts/vds_sp.sql
index 66232ca..756f781 100644
--- a/packaging/dbscripts/vds_sp.sql
+++ b/packaging/dbscripts/vds_sp.sql
@@ -293,7 +293,8 @@
  v_supported_rng_sources VARCHAR(255),
  v_is_live_snapshot_supported BOOLEAN,
  v_is_live_merge_supported BOOLEAN,
- v_online_cpus TEXT)
+ v_online_cpus TEXT,
+ v_maintenance_reason TEXT)
 RETURNS VOID
 
        --The [vds_dynamic] table doesn't have a timestamp column. Optimistic 
concurrency logic cannot be generated
@@ -331,7 +332,8 @@
       supported_rng_sources = v_supported_rng_sources,
       is_live_snapshot_supported = v_is_live_snapshot_supported,
       is_live_merge_supported = v_is_live_merge_supported,
-      online_cpus = v_online_cpus
+      online_cpus = v_online_cpus,
+      maintenance_reason = v_maintenance_reason
       WHERE vds_id = v_vds_id;
    END;
 


-- 
To view, visit https://gerrit.ovirt.org/38296
To unsubscribe, visit https://gerrit.ovirt.org/settings

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

Reply via email to