Daniel Erez has uploaded a new change for review.

Change subject: core,restapi: Glance import - custom disk and template name
......................................................................

core,restapi: Glance import - custom disk and template name

Import Glance image - allow specifying custom disk name
and/or template name (when importing as template).

E.g.
<action>
    <name>imported-disk</name>
    <storage_domain>
        <name>data1</name>
    </storage_domain>
    <cluster>
        <name>Default</name>
    </cluster>
    <import_as_template>true</import_as_template>
    <template>
      <name>imported-template</name>
    </template>
</action>

Change-Id: I19da074f7b6ae9d5a0c943c3a7dc6b90a3db03f0
Signed-off-by: Daniel Erez <de...@redhat.com>
---
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportRepoImageCommand.java
M 
backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportRepoImageCopyTaskHandler.java
M 
backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/ImportRepoImageParameters.java
M 
backend/manager/modules/restapi/jaxrs/src/main/java/org/ovirt/engine/api/restapi/resource/BackendStorageDomainImageResource.java
4 files changed, 23 insertions(+), 3 deletions(-)


  git pull ssh://gerrit.ovirt.org:29418/ovirt-engine refs/changes/05/37105/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 e40395e..cbcfdf4 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
@@ -157,6 +157,9 @@
                 } else {
                     diskImage.setVolumeType(VolumeType.Sparse);
                 }
+                if (getParameters().getDiskAlias() != null) {
+                    diskImage.setDiskAlias(getParameters().getDiskAlias());
+                }
             }
             getParameters().setDiskImage(diskImage);
         }
diff --git 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportRepoImageCopyTaskHandler.java
 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportRepoImageCopyTaskHandler.java
index a6085fb..d9a932a 100644
--- 
a/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportRepoImageCopyTaskHandler.java
+++ 
b/backend/manager/modules/bll/src/main/java/org/ovirt/engine/core/bll/ImportRepoImageCopyTaskHandler.java
@@ -118,8 +118,9 @@
         OsRepository osRepository = 
SimpleDependecyInjector.getInstance().get(OsRepository.class);
 
         DiskImage templateDiskImage = 
getEnclosingCommand().getParameters().getDiskImage();
+        String templateName = 
getEnclosingCommand().getParameters().getTemplateName();
         // Following the same convention as the glance disk name, using a 
GlanceTemplate prefix, followed by a short identifier
-        String vmTemplateName = "GlanceTemplate-" + 
Guid.newGuid().toString().substring(0, 7);
+        String vmTemplateName = templateName != null ? templateName : 
"GlanceTemplate-" + Guid.newGuid().toString().substring(0, 7);
         AddVmTemplateParameters parameters = new 
AddVmTemplateParameters(masterVm, vmTemplateName, 
templateDiskImage.getDiskDescription());
 
         // Setting the user from the parent command, as the session might 
already be invalid
diff --git 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/ImportRepoImageParameters.java
 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/ImportRepoImageParameters.java
index 3769da6..fbdc0df 100644
--- 
a/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/ImportRepoImageParameters.java
+++ 
b/backend/manager/modules/common/src/main/java/org/ovirt/engine/core/common/action/ImportRepoImageParameters.java
@@ -14,6 +14,7 @@
     private Guid sourceStorageDomainId;
     private Guid clusterId;
     private boolean importAsTemplate;
+    private String templateName;
 
     public String getSourceRepoImageId() {
         return sourceRepoImageId;
@@ -55,4 +56,11 @@
         this.diskImage = diskImage;
     }
 
+    public String getTemplateName() {
+        return templateName;
+    }
+
+    public void setTemplateName(String templateName) {
+        this.templateName = templateName;
+    }
 }
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 24aea37..76f3dba 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
@@ -1,7 +1,5 @@
 package org.ovirt.engine.api.restapi.resource;
 
-import javax.ws.rs.core.Response;
-
 import org.ovirt.engine.api.model.Action;
 import org.ovirt.engine.api.model.Image;
 import org.ovirt.engine.api.resource.ActionResource;
@@ -12,6 +10,8 @@
 import org.ovirt.engine.core.common.queries.GetImageByIdParameters;
 import org.ovirt.engine.core.common.queries.VdcQueryType;
 import org.ovirt.engine.core.compat.Guid;
+
+import javax.ws.rs.core.Response;
 
 
 public class BackendStorageDomainImageResource
@@ -45,10 +45,18 @@
             if (action.isImportAsTemplate()) {
                 validateParameters(action, "cluster.id|name");
                 importParameters.setClusterId(getClusterId(action));
+
+                if (action.isSetTemplate() && 
action.getTemplate().isSetName()) {
+                    
importParameters.setTemplateName(action.getTemplate().getName());
+                }
             }
             importParameters.setImportAsTemplate(action.isImportAsTemplate());
         }
 
+        if (action.isSetName()) {
+            importParameters.setDiskAlias(action.getName());
+        }
+
         return doAction(VdcActionType.ImportRepoImage, importParameters, 
action);
     }
 


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

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

Reply via email to