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

Reply via email to