Ori Liel has uploaded a new change for review.

Change subject: restapi: Don't display PM type when PM disabled (#1191478)
......................................................................

restapi: Don't display PM type when PM disabled (#1191478)

Currenly Power-Management type is disaplyed even when
Power-Managemnent is disabled for the host. This patch
fixed that.

This patch also declares this field as deprecated, since
speaking of the 'type' of Power-Management doesn't make
sense since intorduction of fence-agents. Type should be
associated with a specific agent, not the entire PM.
It was not deleted from PM to maintain backwards
compatibility.

Bug-Url: http://bugzilla.redhat.com/1191478
Change-Id: I0630ebde2b342964f44c3fad51de1ca5032b5c23
Signed-off-by: Ori Liel <[email protected]>
---
M 
backend/manager/modules/restapi/interface/definition/src/main/resources/api.xsd
M 
backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/DeprecatedPowerManagementMapper.java
M 
backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/HostMapper.java
M 
backend/manager/modules/restapi/types/src/test/java/org/ovirt/engine/api/restapi/types/DeprecatedPowerManagementMapperTest.java
4 files changed, 14 insertions(+), 4 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/82/40382/1

diff --git 
a/backend/manager/modules/restapi/interface/definition/src/main/resources/api.xsd
 
b/backend/manager/modules/restapi/interface/definition/src/main/resources/api.xsd
index f91d638..1bde347 100644
--- 
a/backend/manager/modules/restapi/interface/definition/src/main/resources/api.xsd
+++ 
b/backend/manager/modules/restapi/interface/definition/src/main/resources/api.xsd
@@ -1808,6 +1808,7 @@
       <xs:element name="automatic_pm_enabled" type="xs:boolean" minOccurs="0" 
maxOccurs="1"/>
       <xs:element name="kdump_detection" type="xs:boolean" minOccurs="0" 
maxOccurs="1"/>
     </xs:sequence>
+    <!-- TODO: (deprecated) remove 'type' post 4.0 -->
     <xs:attribute name="type" type="xs:string"/>
   </xs:complexType>
 
diff --git 
a/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/DeprecatedPowerManagementMapper.java
 
b/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/DeprecatedPowerManagementMapper.java
index 56856cb..d5ce965 100644
--- 
a/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/DeprecatedPowerManagementMapper.java
+++ 
b/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/DeprecatedPowerManagementMapper.java
@@ -9,6 +9,7 @@
 import org.ovirt.engine.api.model.Agents;
 import org.ovirt.engine.api.model.PowerManagement;
 import org.ovirt.engine.api.restapi.utils.AgentComparator;
+import org.ovirt.engine.core.common.businessentities.VDS;
 import org.ovirt.engine.core.common.businessentities.pm.FenceAgent;
 import org.ovirt.engine.core.compat.Guid;
 
@@ -121,14 +122,18 @@
     /**
      * Map the fence agents from this host into the PowerManagement object in 
the API.
      */
-    public static PowerManagement map(List<FenceAgent> agents, PowerManagement 
pm) {
+    public static PowerManagement map(VDS host, PowerManagement pm) {
         if (pm == null) {
             pm = new PowerManagement();
         }
+        List<FenceAgent> agents = host.getFenceAgents();
         if (agents != null && !agents.isEmpty()) {
             Collections.sort(agents, new 
FenceAgent.FenceAgentOrderComparator());
             // Set agent-related fields directly in PowerManagement object 
(for backwards compatibility).
             mapAgentToPm(agents.get(0), pm);
+            if (!host.isPmEnabled()) {
+                pm.setType(null);
+            }
             pm.setAgents(new Agents());
             pm.getAgents().getAgents().add(new Agent());
             // map the first agent
diff --git 
a/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/HostMapper.java
 
b/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/HostMapper.java
index 54fa462..048ecb6 100644
--- 
a/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/HostMapper.java
+++ 
b/backend/manager/modules/restapi/types/src/main/java/org/ovirt/engine/api/restapi/types/HostMapper.java
@@ -236,7 +236,7 @@
             model.getIscsi().setInitiator(entity.getIScsiInitiatorName());
         }
         PowerManagement pm = map(entity, (PowerManagement) null);
-        
model.setPowerManagement(DeprecatedPowerManagementMapper.map(entity.getFenceAgents(),
 pm));
+        model.setPowerManagement(DeprecatedPowerManagementMapper.map(entity, 
pm));
         model.setHardwareInformation(map(entity, (HardwareInformation)null));
         model.setSsh(map(entity.getStaticData(), (SSH) null));
         CPU cpu = new CPU();
@@ -390,7 +390,7 @@
         model.setEnabled(entity.isPmEnabled());
         model.setAutomaticPmEnabled(!entity.isDisablePowerManagementPolicy());
         if (entity.isPmEnabled()) {
-            DeprecatedPowerManagementMapper.map(entity.getFenceAgents(), 
model);
+            DeprecatedPowerManagementMapper.map(entity, model);
         }
         return model;
     }
diff --git 
a/backend/manager/modules/restapi/types/src/test/java/org/ovirt/engine/api/restapi/types/DeprecatedPowerManagementMapperTest.java
 
b/backend/manager/modules/restapi/types/src/test/java/org/ovirt/engine/api/restapi/types/DeprecatedPowerManagementMapperTest.java
index a235f1d..5eb07b8 100644
--- 
a/backend/manager/modules/restapi/types/src/test/java/org/ovirt/engine/api/restapi/types/DeprecatedPowerManagementMapperTest.java
+++ 
b/backend/manager/modules/restapi/types/src/test/java/org/ovirt/engine/api/restapi/types/DeprecatedPowerManagementMapperTest.java
@@ -11,6 +11,7 @@
 import org.ovirt.engine.api.model.Option;
 import org.ovirt.engine.api.model.Options;
 import org.ovirt.engine.api.model.PowerManagement;
+import org.ovirt.engine.core.common.businessentities.VDS;
 import org.ovirt.engine.core.common.businessentities.pm.FenceAgent;
 import org.ovirt.engine.core.compat.Guid;
 
@@ -114,6 +115,9 @@
         String[] ip = { "1.1.1.111", "1.1.1.112" };
         int i = 0;
         List<FenceAgent> agents = new LinkedList<>();
+        VDS vds = new VDS();
+        vds.setPmEnabled(true);
+        vds.setFenceAgents(agents);
         FenceAgent primaryAgent =
                 createFenceAgent(new 
Guid("00000000-0000-0000-0000-000000000000"),
                         ip[0],
@@ -134,7 +138,7 @@
                         "secure=true",
                         1); // concurrent
         agents.add(secondaryAgent);
-        PowerManagement powerMgmt = 
DeprecatedPowerManagementMapper.map(agents, null);
+        PowerManagement powerMgmt = DeprecatedPowerManagementMapper.map(vds, 
null);
         assertEquals(powerMgmt.getAgents().getAgents().size(), 2);
         for (Agent agent : powerMgmt.getAgents().getAgents()) {
             assertEquals(agent.getAddress(), ip[i]);


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

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

Reply via email to