Address various UI requirements by introducing provider constants.

Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/0d78209b
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/0d78209b
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/0d78209b

Branch: refs/heads/object_store
Commit: 0d78209b736cc0c67990e9179d3d465b4208ca51
Parents: 4db84fb
Author: Min Chen <min.c...@citrix.com>
Authored: Mon May 6 15:12:33 2013 -0700
Committer: Min Chen <min.c...@citrix.com>
Committed: Mon May 6 15:12:33 2013 -0700

----------------------------------------------------------------------
 .../command/admin/storage/AddImageStoreCmd.java    |    2 +-
 .../storage/template/DownloadManagerImpl.java      |    7 +-----
 .../subsystem/api/storage/DataStoreProvider.java   |    8 +++++++
 .../storage/image/TemplateServiceImpl.java         |   17 ++++++++++++--
 .../provider/DataStoreProviderManagerImpl.java     |   12 ++++------
 .../provider/CloudStackImageStoreProviderImpl.java |    3 +-
 .../provider/S3ImageStoreProviderImpl.java         |    3 +-
 .../provider/SampleImageStoreProviderImpl.java     |    3 +-
 .../provider/SwiftImageStoreProviderImpl.java      |    6 +---
 .../CloudStackPrimaryDataStoreProviderImpl.java    |    3 +-
 .../cloud/template/HypervisorTemplateAdapter.java  |    2 +-
 11 files changed, 40 insertions(+), 26 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cloudstack/blob/0d78209b/api/src/org/apache/cloudstack/api/command/admin/storage/AddImageStoreCmd.java
----------------------------------------------------------------------
diff --git 
a/api/src/org/apache/cloudstack/api/command/admin/storage/AddImageStoreCmd.java 
b/api/src/org/apache/cloudstack/api/command/admin/storage/AddImageStoreCmd.java
index ef9921d..8349774 100644
--- 
a/api/src/org/apache/cloudstack/api/command/admin/storage/AddImageStoreCmd.java
+++ 
b/api/src/org/apache/cloudstack/api/command/admin/storage/AddImageStoreCmd.java
@@ -75,7 +75,7 @@ public class AddImageStoreCmd extends BaseCmd {
 
      public Map<String, String> getDetails() {
          Map<String, String> detailsMap = null;
-         if (!details.isEmpty()) {
+         if (details != null && !details.isEmpty()) {
              detailsMap = new HashMap<String, String>();
              Collection<?> props = details.values();
              Iterator<?> iter = props.iterator();

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/0d78209b/core/src/com/cloud/storage/template/DownloadManagerImpl.java
----------------------------------------------------------------------
diff --git a/core/src/com/cloud/storage/template/DownloadManagerImpl.java 
b/core/src/com/cloud/storage/template/DownloadManagerImpl.java
index cd6165d..12914b0 100755
--- a/core/src/com/cloud/storage/template/DownloadManagerImpl.java
+++ b/core/src/com/cloud/storage/template/DownloadManagerImpl.java
@@ -505,12 +505,7 @@ public class DownloadManagerImpl extends ManagerBase 
implements DownloadManager
             String cksum, String installPathPrefix, String user, String 
password, long maxTemplateSizeInBytes, Proxy proxy, ResourceType resourceType) {
         UUID uuid = UUID.randomUUID();
         String jobId = uuid.toString();
-        String tmpDir = "";
-        if (resourceType == ResourceType.TEMPLATE) {
-            tmpDir = installPathPrefix + File.separator + accountId + 
File.separator + id;
-        } else {
-            tmpDir = installPathPrefix + File.separator + id;
-        }
+        String tmpDir = installPathPrefix;
 
         try {
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/0d78209b/engine/api/src/org/apache/cloudstack/engine/subsystem/api/storage/DataStoreProvider.java
----------------------------------------------------------------------
diff --git 
a/engine/api/src/org/apache/cloudstack/engine/subsystem/api/storage/DataStoreProvider.java
 
b/engine/api/src/org/apache/cloudstack/engine/subsystem/api/storage/DataStoreProvider.java
index c0c1f76..cdcdef8 100644
--- 
a/engine/api/src/org/apache/cloudstack/engine/subsystem/api/storage/DataStoreProvider.java
+++ 
b/engine/api/src/org/apache/cloudstack/engine/subsystem/api/storage/DataStoreProvider.java
@@ -25,6 +25,14 @@ import java.util.Set;
 
 
 public interface DataStoreProvider {
+    // constants for provider names
+    public static final String NFS_IMAGE = "NFS";
+    public static final String S3_IMAGE = "S3";
+    public static final String SWIFT_IMAGE = "Swift";
+    public static final String SAMPLE_IMAGE = "Sample";
+
+    public static final String DEFAULT_PRIMARY = "DefaultPrimary";
+
     public static enum DataStoreProviderType {
         PRIMARY,
         IMAGE,

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/0d78209b/engine/storage/image/src/org/apache/cloudstack/storage/image/TemplateServiceImpl.java
----------------------------------------------------------------------
diff --git 
a/engine/storage/image/src/org/apache/cloudstack/storage/image/TemplateServiceImpl.java
 
b/engine/storage/image/src/org/apache/cloudstack/storage/image/TemplateServiceImpl.java
index 60b3f53..30c7183 100644
--- 
a/engine/storage/image/src/org/apache/cloudstack/storage/image/TemplateServiceImpl.java
+++ 
b/engine/storage/image/src/org/apache/cloudstack/storage/image/TemplateServiceImpl.java
@@ -62,6 +62,7 @@ import org.apache.log4j.Logger;
 import org.springframework.stereotype.Component;
 
 import com.cloud.agent.api.Answer;
+import com.cloud.agent.api.storage.DeleteTemplateCommand;
 import com.cloud.agent.api.storage.ListTemplateAnswer;
 import com.cloud.agent.api.storage.ListTemplateCommand;
 import com.cloud.alert.AlertManager;
@@ -381,9 +382,19 @@ public class TemplateServiceImpl implements 
TemplateService {
             List<UserVmVO> userVmUsingIso = 
_userVmDao.listByIsoId(tInfo.getId());
             //check if there is any Vm using this ISO.
             if (userVmUsingIso == null || userVmUsingIso.isEmpty()) {
-                
deleteTemplateAsync(_templateFactory.getTemplate(tInfo.getId(), store));
-                String description = "Deleted template " + 
tInfo.getTemplateName() + " on secondary storage " + storeId;
-                s_logger.info(description);
+                //TODO: we cannot directly call deleteTemplateSync here to 
reuse delete logic since in this case, our db does not have this template at 
all.
+                VMTemplateVO template = _templateDao.findById(tInfo.getId());
+                DeleteTemplateCommand dtCommand = new 
DeleteTemplateCommand(store.getTO(), tInfo.getInstallPath(), template.getId(), 
template.getAccountId());
+                EndPoint ep = _epSelector.select(store);
+                Answer answer = ep.sendMessage(dtCommand);
+                if (answer == null || !answer.getResult()) {
+                    s_logger.info("Failed to deleted template at store: " + 
store.getName());
+
+                } else {
+                    String description = "Deleted template " + 
tInfo.getTemplateName() + " on secondary storage " + storeId;
+                    s_logger.info(description);
+                }
+
             }
         }
 

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/0d78209b/engine/storage/src/org/apache/cloudstack/storage/datastore/provider/DataStoreProviderManagerImpl.java
----------------------------------------------------------------------
diff --git 
a/engine/storage/src/org/apache/cloudstack/storage/datastore/provider/DataStoreProviderManagerImpl.java
 
b/engine/storage/src/org/apache/cloudstack/storage/datastore/provider/DataStoreProviderManagerImpl.java
index e34a35e..796afe2 100644
--- 
a/engine/storage/src/org/apache/cloudstack/storage/datastore/provider/DataStoreProviderManagerImpl.java
+++ 
b/engine/storage/src/org/apache/cloudstack/storage/datastore/provider/DataStoreProviderManagerImpl.java
@@ -31,9 +31,7 @@ import 
org.apache.cloudstack.api.response.StorageProviderResponse;
 import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreProvider;
 import 
org.apache.cloudstack.engine.subsystem.api.storage.DataStoreProvider.DataStoreProviderType;
 import 
org.apache.cloudstack.engine.subsystem.api.storage.DataStoreProviderManager;
-import org.apache.cloudstack.engine.subsystem.api.storage.ImageStoreProvider;
 import 
org.apache.cloudstack.engine.subsystem.api.storage.PrimaryDataStoreDriver;
-import 
org.apache.cloudstack.engine.subsystem.api.storage.PrimaryDataStoreProvider;
 import org.apache.cloudstack.storage.datastore.PrimaryDataStoreProviderManager;
 import org.apache.cloudstack.storage.image.ImageStoreDriver;
 import org.apache.cloudstack.storage.image.datastore.ImageStoreProviderManager;
@@ -90,7 +88,7 @@ public class DataStoreProviderManagerImpl extends ManagerBase 
implements DataSto
         }
         return providers;
     }
-    
+
     public List<StorageProviderResponse> getCacheDataStoreProviders() {
         List<StorageProviderResponse> providers = new 
ArrayList<StorageProviderResponse>();
         for (DataStoreProvider provider : providerMap.values()) {
@@ -147,18 +145,18 @@ public class DataStoreProviderManagerImpl extends 
ManagerBase implements DataSto
 
     @Override
     public DataStoreProvider getDefaultPrimaryDataStoreProvider() {
-        return this.getDataStoreProvider("cloudstack primary data store 
provider");
+        return this.getDataStoreProvider(DataStoreProvider.DEFAULT_PRIMARY);
     }
 
 
     @Override
     public DataStoreProvider getDefaultImageDataStoreProvider() {
-        return this.getDataStoreProvider("CloudStack ImageStore Provider");
+        return this.getDataStoreProvider(DataStoreProvider.NFS_IMAGE);
     }
-    
+
     @Override
     public DataStoreProvider getDefaultCacheDataStoreProvider() {
-        return this.getDataStoreProvider("cloudstack image store provider");
+        return this.getDataStoreProvider(DataStoreProvider.NFS_IMAGE);
     }
 
     @Override

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/0d78209b/plugins/storage/image/default/src/org/apache/cloudstack/storage/datastore/provider/CloudStackImageStoreProviderImpl.java
----------------------------------------------------------------------
diff --git 
a/plugins/storage/image/default/src/org/apache/cloudstack/storage/datastore/provider/CloudStackImageStoreProviderImpl.java
 
b/plugins/storage/image/default/src/org/apache/cloudstack/storage/datastore/provider/CloudStackImageStoreProviderImpl.java
index 953a078..c9952e2 100644
--- 
a/plugins/storage/image/default/src/org/apache/cloudstack/storage/datastore/provider/CloudStackImageStoreProviderImpl.java
+++ 
b/plugins/storage/image/default/src/org/apache/cloudstack/storage/datastore/provider/CloudStackImageStoreProviderImpl.java
@@ -25,6 +25,7 @@ import javax.inject.Inject;
 
 import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreDriver;
 import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreLifeCycle;
+import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreProvider;
 import 
org.apache.cloudstack.engine.subsystem.api.storage.HypervisorHostListener;
 import org.apache.cloudstack.engine.subsystem.api.storage.ImageStoreProvider;
 import 
org.apache.cloudstack.storage.datastore.driver.CloudStackImageStoreDriverImpl;
@@ -41,7 +42,7 @@ import com.cloud.utils.component.ComponentContext;
 @Component
 public class CloudStackImageStoreProviderImpl implements ImageStoreProvider {
 
-    private final String providerName = "CloudStack ImageStore Provider";
+    private final String providerName = DataStoreProvider.NFS_IMAGE;
     protected ImageStoreLifeCycle lifeCycle;
     protected ImageStoreDriver driver;
     @Inject

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/0d78209b/plugins/storage/image/s3/src/org/apache/cloudstack/storage/datastore/provider/S3ImageStoreProviderImpl.java
----------------------------------------------------------------------
diff --git 
a/plugins/storage/image/s3/src/org/apache/cloudstack/storage/datastore/provider/S3ImageStoreProviderImpl.java
 
b/plugins/storage/image/s3/src/org/apache/cloudstack/storage/datastore/provider/S3ImageStoreProviderImpl.java
index 174e2db..7efb59a 100644
--- 
a/plugins/storage/image/s3/src/org/apache/cloudstack/storage/datastore/provider/S3ImageStoreProviderImpl.java
+++ 
b/plugins/storage/image/s3/src/org/apache/cloudstack/storage/datastore/provider/S3ImageStoreProviderImpl.java
@@ -28,6 +28,7 @@ import javax.inject.Inject;
 
 import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreDriver;
 import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreLifeCycle;
+import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreProvider;
 import 
org.apache.cloudstack.engine.subsystem.api.storage.HypervisorHostListener;
 import org.apache.cloudstack.engine.subsystem.api.storage.ImageStoreProvider;
 import org.apache.cloudstack.storage.datastore.driver.S3ImageStoreDriverImpl;
@@ -44,7 +45,7 @@ import com.cloud.utils.component.ComponentContext;
 @Component
 public class S3ImageStoreProviderImpl implements ImageStoreProvider {
 
-    private final String providerName = "S3";
+    private final String providerName = DataStoreProvider.S3_IMAGE;
     protected ImageStoreLifeCycle lifeCycle;
     protected ImageStoreDriver driver;
     @Inject

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/0d78209b/plugins/storage/image/sample/src/org/apache/cloudstack/storage/datastore/provider/SampleImageStoreProviderImpl.java
----------------------------------------------------------------------
diff --git 
a/plugins/storage/image/sample/src/org/apache/cloudstack/storage/datastore/provider/SampleImageStoreProviderImpl.java
 
b/plugins/storage/image/sample/src/org/apache/cloudstack/storage/datastore/provider/SampleImageStoreProviderImpl.java
index 4b96da7..1a0614b 100644
--- 
a/plugins/storage/image/sample/src/org/apache/cloudstack/storage/datastore/provider/SampleImageStoreProviderImpl.java
+++ 
b/plugins/storage/image/sample/src/org/apache/cloudstack/storage/datastore/provider/SampleImageStoreProviderImpl.java
@@ -26,6 +26,7 @@ import javax.inject.Inject;
 
 import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreDriver;
 import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreLifeCycle;
+import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreProvider;
 import 
org.apache.cloudstack.engine.subsystem.api.storage.HypervisorHostListener;
 import org.apache.cloudstack.engine.subsystem.api.storage.ImageStoreProvider;
 import 
org.apache.cloudstack.storage.datastore.driver.SampleImageStoreDriverImpl;
@@ -38,7 +39,7 @@ import com.cloud.storage.ScopeType;
 import com.cloud.utils.component.ComponentContext;
 
 public class SampleImageStoreProviderImpl implements ImageStoreProvider {
-    private final String name = "sample image data store provider";
+    private final String name = DataStoreProvider.SAMPLE_IMAGE;
     protected ImageStoreLifeCycle lifeCycle;
     protected ImageStoreDriver driver;
     @Inject

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/0d78209b/plugins/storage/image/swift/src/org/apache/cloudstack/storage/datastore/provider/SwiftImageStoreProviderImpl.java
----------------------------------------------------------------------
diff --git 
a/plugins/storage/image/swift/src/org/apache/cloudstack/storage/datastore/provider/SwiftImageStoreProviderImpl.java
 
b/plugins/storage/image/swift/src/org/apache/cloudstack/storage/datastore/provider/SwiftImageStoreProviderImpl.java
index 2ba2e9d..bd6f9f0 100644
--- 
a/plugins/storage/image/swift/src/org/apache/cloudstack/storage/datastore/provider/SwiftImageStoreProviderImpl.java
+++ 
b/plugins/storage/image/swift/src/org/apache/cloudstack/storage/datastore/provider/SwiftImageStoreProviderImpl.java
@@ -18,16 +18,14 @@
  */
 package org.apache.cloudstack.storage.datastore.provider;
 
-import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Map;
 import java.util.Set;
-import java.util.UUID;
-
 import javax.inject.Inject;
 
 import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreDriver;
 import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreLifeCycle;
+import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreProvider;
 import 
org.apache.cloudstack.engine.subsystem.api.storage.HypervisorHostListener;
 import org.apache.cloudstack.engine.subsystem.api.storage.ImageStoreProvider;
 import 
org.apache.cloudstack.storage.datastore.driver.SwiftImageStoreDriverImpl;
@@ -44,7 +42,7 @@ import com.cloud.utils.component.ComponentContext;
 @Component
 public class SwiftImageStoreProviderImpl implements ImageStoreProvider {
 
-    private final String providerName = "Swift";
+    private final String providerName = DataStoreProvider.SWIFT_IMAGE;
     protected ImageStoreLifeCycle lifeCycle;
     protected ImageStoreDriver driver;
     @Inject

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/0d78209b/plugins/storage/volume/default/src/org/apache/cloudstack/storage/datastore/provider/CloudStackPrimaryDataStoreProviderImpl.java
----------------------------------------------------------------------
diff --git 
a/plugins/storage/volume/default/src/org/apache/cloudstack/storage/datastore/provider/CloudStackPrimaryDataStoreProviderImpl.java
 
b/plugins/storage/volume/default/src/org/apache/cloudstack/storage/datastore/provider/CloudStackPrimaryDataStoreProviderImpl.java
index af1d0c4..dc9d985 100644
--- 
a/plugins/storage/volume/default/src/org/apache/cloudstack/storage/datastore/provider/CloudStackPrimaryDataStoreProviderImpl.java
+++ 
b/plugins/storage/volume/default/src/org/apache/cloudstack/storage/datastore/provider/CloudStackPrimaryDataStoreProviderImpl.java
@@ -23,6 +23,7 @@ import java.util.Map;
 import java.util.Set;
 
 import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreLifeCycle;
+import org.apache.cloudstack.engine.subsystem.api.storage.DataStoreProvider;
 import 
org.apache.cloudstack.engine.subsystem.api.storage.HypervisorHostListener;
 import 
org.apache.cloudstack.engine.subsystem.api.storage.PrimaryDataStoreDriver;
 import 
org.apache.cloudstack.engine.subsystem.api.storage.PrimaryDataStoreProvider;
@@ -34,7 +35,7 @@ import com.cloud.utils.component.ComponentContext;
 public class CloudStackPrimaryDataStoreProviderImpl implements
         PrimaryDataStoreProvider {
 
-    private final String providerName = "cloudstack primary data store 
provider";
+    private final String providerName = DataStoreProvider.DEFAULT_PRIMARY;
     protected PrimaryDataStoreDriver driver;
     protected HypervisorHostListener listener;
     protected DataStoreLifeCycle lifecyle;

http://git-wip-us.apache.org/repos/asf/cloudstack/blob/0d78209b/server/src/com/cloud/template/HypervisorTemplateAdapter.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/template/HypervisorTemplateAdapter.java 
b/server/src/com/cloud/template/HypervisorTemplateAdapter.java
index ae1e178..7e560e3 100755
--- a/server/src/com/cloud/template/HypervisorTemplateAdapter.java
+++ b/server/src/com/cloud/template/HypervisorTemplateAdapter.java
@@ -175,7 +175,7 @@ public class HypervisorTemplateAdapter extends 
TemplateAdapterBase implements Te
                TemplateInfo tmpl = 
this.imageFactory.getTemplate(template.getId(), imageStore);
                CreateTemplateContext<TemplateApiResult> context = new 
CreateTemplateContext<TemplateApiResult>(null, tmpl);
                AsyncCallbackDispatcher<HypervisorTemplateAdapter, 
TemplateApiResult> caller = AsyncCallbackDispatcher.create(this);
-               caller.setCallback(this.createTemplateAsyncCallBack(null, 
null));
+               
caller.setCallback(caller.getTarget().createTemplateAsyncCallBack(null, null));
                caller.setContext(context);
            this.imageService
                     .createTemplateAsync(tmpl, imageStore, caller);

Reply via email to