Michael Pasternak has uploaded a new change for review.

Change subject: restapi: expose host subject also in VM properties #867513
......................................................................

restapi: expose host subject also in VM properties #867513

https://bugzilla.redhat.com/show_bug.cgi?id=867513

certificate will be shown only when accessing specific vm resource,
future api versions will alow user specifying if he wants to get entier
entity [1] at collection resource.

[1] https://bugzilla.redhat.com/show_bug.cgi?id=868626

Change-Id: I73170653a307aa98d7219af4b792af133349cfd2
Signed-off-by: Michael Pasternak <mpast...@redhat.com>
---
M 
backend/manager/modules/restapi/interface/definition/src/main/resources/api.xsd
M 
backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendVmResource.java
M 
backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendVmResourceTest.java
3 files changed, 36 insertions(+), 1 deletion(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/92/8692/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 94cad8e..f412dab 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
@@ -1825,6 +1825,7 @@
       <xs:element name="secure_port" type="xs:unsignedShort" minOccurs="0" 
maxOccurs="1"/>
       <xs:element name="monitors" type="xs:int" minOccurs="0" maxOccurs="1"/>
       <xs:element name="allow_override" type="xs:boolean" minOccurs="0" 
maxOccurs="1"/>
+      <xs:element ref="certificate" minOccurs="0" maxOccurs="1"/>
     </xs:sequence>
   </xs:complexType>
 
diff --git 
a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendVmResource.java
 
b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendVmResource.java
index e48d274..35c0bce 100644
--- 
a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendVmResource.java
+++ 
b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendVmResource.java
@@ -16,6 +16,8 @@
 import org.ovirt.engine.api.model.Action;
 import org.ovirt.engine.api.model.CdRom;
 import org.ovirt.engine.api.model.CdRoms;
+import org.ovirt.engine.api.model.Certificate;
+import org.ovirt.engine.api.model.Display;
 import org.ovirt.engine.api.model.MemoryPolicy;
 import org.ovirt.engine.api.model.Statistic;
 import org.ovirt.engine.api.model.Statistics;
@@ -58,6 +60,7 @@
 import org.ovirt.engine.core.common.queries.GetPermissionsForObjectParameters;
 import org.ovirt.engine.core.common.queries.GetVdsGroupByVdsGroupIdParameters;
 import org.ovirt.engine.core.common.queries.GetVmByVmIdParameters;
+import org.ovirt.engine.core.common.queries.VdcQueryReturnValue;
 import org.ovirt.engine.core.common.queries.VdcQueryType;
 import org.ovirt.engine.core.compat.Guid;
 
@@ -342,6 +345,7 @@
         addStatistics(model, entity, uriInfo, httpHeaders);
         parent.setPayload(model);
         setBallooning(model);
+        setCertificateInfo(model);
         return model;
     }
 
@@ -409,4 +413,17 @@
         return parent;
     }
 
+    public void setCertificateInfo(VM model) {
+        VdcQueryReturnValue result =
+            runQuery(VdcQueryType.GetVdsCertificateSubjectByVmId,
+                    new GetVmByVmIdParameters(asGuid(model.getId())));
+
+        if (result != null && result.getSucceeded() && result.getReturnValue() 
!= null) {
+            if (!model.isSetDisplay()) {
+                model.setDisplay(new Display());
+            }
+            model.getDisplay().setCertificate(new Certificate());
+            
model.getDisplay().getCertificate().setSubject(result.getReturnValue().toString());
+        }
+    }
 }
diff --git 
a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendVmResourceTest.java
 
b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendVmResourceTest.java
index b5058cf..34622b8 100644
--- 
a/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendVmResourceTest.java
+++ 
b/backend/manager/modules/restapi/jaxrs/src/test/java/org/ovirt/engine/api/restapi/resource/BackendVmResourceTest.java
@@ -70,6 +70,7 @@
 
     private static final String ISO_ID = "foo.iso";
     private static final String FLOPPY_ID = "bar.vfd";
+    public static final String CERTIFICATE = "O=Redhat,CN=X.Y.Z.Q";
 
     public BackendVmResourceTest() {
         super(new BackendVmResource(GUIDS[0].toString(), new 
BackendVmsResource()));
@@ -114,8 +115,11 @@
         setUpGetEntityExpectations(1);
         setUpGetPayloadExpectations(0);
         setUpGetBallooningExpectations();
+        setUpGetCertuficateExpectations();
         control.replay();
-        verifyModel(resource.get(), 0);
+        VM response = resource.get();
+        verifyModel(response, 0);
+        verifyCertificate(response);
     }
 
     @Test
@@ -762,6 +766,12 @@
         verifyModelSpecific(model, index);
     }
 
+    private void verifyCertificate(VM model) {
+        assertNotNull(model.getDisplay());
+        assertNotNull(model.getDisplay().getCertificate());
+        assertEquals(model.getDisplay().getCertificate().getSubject(), 
CERTIFICATE);
+    }
+
     protected storage_domains getStorageDomain(int idx) {
         storage_domains dom = new storage_domains();
         dom.setId(GUIDS[idx]);
@@ -785,4 +795,11 @@
                 true);
     }
 
+    private void setUpGetCertuficateExpectations() throws Exception {
+        setUpGetEntityExpectations(VdcQueryType.GetVdsCertificateSubjectByVmId,
+                GetVmByVmIdParameters.class,
+                new String[] { "Id" },
+                new Object[] { GUIDS[0] },
+                CERTIFICATE);
+    }
 }


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

Gerrit-MessageType: newchange
Gerrit-Change-Id: I73170653a307aa98d7219af4b792af133349cfd2
Gerrit-PatchSet: 1
Gerrit-Project: ovirt-engine
Gerrit-Branch: master
Gerrit-Owner: Michael Pasternak <mpast...@redhat.com>
_______________________________________________
Engine-patches mailing list
Engine-patches@ovirt.org
http://lists.ovirt.org/mailman/listinfo/engine-patches

Reply via email to