Oved Ourfali has uploaded a new change for review. Change subject: restapi: add support for import image as template ......................................................................
restapi: add support for import image as template Change-Id: I5efa82616c3fa3944800542aafce14d550bd74d9 Bug-Url: https://bugzilla.redhat.com/1075682 Signed-off-by: Oved Ourfali <oourf...@redhat.com> --- M backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportRepoImageCommand.java M backend/manager/modules/restapi/interface/definition/src/main/resources/api.xsd M backend/manager/modules/restapi/interface/definition/src/main/resources/rsdl_metadata.yaml M backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/AbstractBackendActionableResource.java M backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendStorageDomainImageResource.java 5 files changed, 27 insertions(+), 1 deletion(-) git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/31/25731/1 diff --git a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportRepoImageCommand.java b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportRepoImageCommand.java index ef96f7b..8391303 100644 --- a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportRepoImageCommand.java +++ b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportRepoImageCommand.java @@ -38,6 +38,7 @@ super(parameters); getParameters().setCommandType(getActionType()); + getParameters().setParametersCurrentUser(getCurrentUser()); } protected ProviderProxyFactory getProviderProxyFactory() { 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 5927a70..164d1b5 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 @@ -199,6 +199,8 @@ <xs:element ref="bricks" minOccurs="0" /> <!-- ... etc., explicitly enumerate all the parameter types --> <xs:element name="job" type="Job" minOccurs="0"/> + <!-- indicates whether to import the image as template or not --> + <xs:element name="import_as_template" type="xs:boolean" minOccurs="0" maxOccurs="1"/> </xs:sequence> </xs:group> diff --git a/backend/manager/modules/restapi/interface/definition/src/main/resources/rsdl_metadata.yaml b/backend/manager/modules/restapi/interface/definition/src/main/resources/rsdl_metadata.yaml index 688fdee..dad4a70 100644 --- a/backend/manager/modules/restapi/interface/definition/src/main/resources/rsdl_metadata.yaml +++ b/backend/manager/modules/restapi/interface/definition/src/main/resources/rsdl_metadata.yaml @@ -1346,7 +1346,7 @@ parameterType: Action signatures: - mandatoryArguments: {storagedomain.id|name: 'xs:string'} - optionalArguments: {action.async: 'xs:boolean', action.grace_period.expiry: 'xs:long'} + optionalArguments: {action.async: 'xs:boolean', action.grace_period.expiry: 'xs:long', action.import_as_template: 'xs:boolean', action.cluster.id|name: 'xs:string'} urlparams: {} headers: Content-Type: {value: application/xml|json, required: true} diff --git a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/AbstractBackendActionableResource.java b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/AbstractBackendActionableResource.java index 13cbcb3..d94a094 100644 --- a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/AbstractBackendActionableResource.java +++ b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/AbstractBackendActionableResource.java @@ -20,7 +20,9 @@ import org.ovirt.engine.core.common.action.VdcActionType; import org.ovirt.engine.core.common.action.VdcReturnValueBase; import org.ovirt.engine.core.common.businessentities.StoragePool; +import org.ovirt.engine.core.common.businessentities.VDSGroup; import org.ovirt.engine.core.common.interfaces.SearchType; +import org.ovirt.engine.core.common.queries.NameQueryParameters; import org.ovirt.engine.core.common.queries.VdcQueryParametersBase; import org.ovirt.engine.core.common.queries.VdcQueryType; import org.ovirt.engine.core.compat.Guid; @@ -207,6 +209,19 @@ } } + protected Guid getClusterId(Action action) { + if (action.getCluster().isSetId()) { + return asGuid(action.getCluster().getId()); + } else { + VDSGroup cluster = lookupClusterByName(action.getCluster().getName()); + return cluster != null ? cluster.getId() : null; + } + } + + protected VDSGroup lookupClusterByName(String name) { + return getEntity(VDSGroup.class, VdcQueryType.GetVdsGroupByName, new NameQueryParameters(name), "Cluster: name=" + name); + } + protected Guid lookupStorageDomainIdByName(String name) { if (!isFiltered()) { return getEntity(org.ovirt.engine.core.common.businessentities.StorageDomain.class, SearchType.StorageDomain, "Storage: name=" + name).getId(); diff --git a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendStorageDomainImageResource.java b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendStorageDomainImageResource.java index 162763d..24aea37 100644 --- a/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendStorageDomainImageResource.java +++ b/backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendStorageDomainImageResource.java @@ -41,6 +41,14 @@ importParameters.setStoragePoolId(getDataCenterId(getStorageDomainId(action))); importParameters.setStorageDomainId(getStorageDomainId(action)); + if (action.isSetImportAsTemplate()) { + if (action.isImportAsTemplate()) { + validateParameters(action, "cluster.id|name"); + importParameters.setClusterId(getClusterId(action)); + } + importParameters.setImportAsTemplate(action.isImportAsTemplate()); + } + return doAction(VdcActionType.ImportRepoImage, importParameters, action); } -- To view, visit http://gerrit.ovirt.org/25731 To unsubscribe, visit http://gerrit.ovirt.org/settings Gerrit-MessageType: newchange Gerrit-Change-Id: I5efa82616c3fa3944800542aafce14d550bd74d9 Gerrit-PatchSet: 1 Gerrit-Project: ovirt-engine Gerrit-Branch: ovirt-engine-3.4 Gerrit-Owner: Oved Ourfali <oourf...@redhat.com> _______________________________________________ Engine-patches mailing list Engine-patches@ovirt.org http://lists.ovirt.org/mailman/listinfo/engine-patches