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