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 <[email protected]>
---
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
4 files changed, 26 insertions(+), 1 deletion(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/15/25715/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 163a0ea..8524623 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 6583e43..23f7cca 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.importAsTemplate: '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 87400fc..09a4860 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), "GetVdsGroupByName");
+    }
+
     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/25715
To unsubscribe, visit http://gerrit.ovirt.org/settings

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

Reply via email to