From ef541a2a7bc0aba35009fea38644ae1cb15ad946 Mon Sep 17 00:00:00 2001 From: Min Chen Date: Mon, 20 May 2013 13:39:43 -0700 Subject: [PATCH] Fix CLOUDSTACK-2538: Add name as an optional parameter for addImageStore api. --- .../api/command/admin/storage/AddImageStoreCmd.java | 8 ++++++++ .../lifecycle/CloudStackImageStoreLifeCycleImpl.java | 6 +++++- .../datastore/lifecycle/S3ImageStoreLifeCycleImpl.java | 3 ++- .../datastore/lifecycle/SwiftImageStoreLifeCycleImpl.java | 2 ++ server/src/com/cloud/storage/StorageManagerImpl.java | 2 +- 5 files changed, 18 insertions(+), 3 deletions(-) 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 08112f0aab0..1e383c9647b 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 @@ -44,6 +44,9 @@ public class AddImageStoreCmd extends BaseCmd { //////////////// API parameters ///////////////////// ///////////////////////////////////////////////////// + @Parameter(name=ApiConstants.NAME, type=CommandType.STRING, description="the name for the image store") + private String name; + @Parameter(name=ApiConstants.URL, type=CommandType.STRING, description="the URL for the image store") private String url; @@ -65,10 +68,15 @@ public class AddImageStoreCmd extends BaseCmd { /////////////////// Accessors /////////////////////// ///////////////////////////////////////////////////// + public String getUrl() { return url; } + public String getName() { + return name; + } + public Long getZoneId() { return zoneId; } diff --git a/plugins/storage/image/default/src/org/apache/cloudstack/storage/datastore/lifecycle/CloudStackImageStoreLifeCycleImpl.java b/plugins/storage/image/default/src/org/apache/cloudstack/storage/datastore/lifecycle/CloudStackImageStoreLifeCycleImpl.java index 84df7122268..d550f0b3b48 100644 --- a/plugins/storage/image/default/src/org/apache/cloudstack/storage/datastore/lifecycle/CloudStackImageStoreLifeCycleImpl.java +++ b/plugins/storage/image/default/src/org/apache/cloudstack/storage/datastore/lifecycle/CloudStackImageStoreLifeCycleImpl.java @@ -80,6 +80,10 @@ public class CloudStackImageStoreLifeCycleImpl implements ImageStoreLifeCycle { Long dcId = (Long) dsInfos.get("zoneId"); String url = (String) dsInfos.get("url"); + String name = (String)dsInfos.get("name"); + if ( name == null ){ + name = url; + } String providerName = (String)dsInfos.get("providerName"); DataStoreRole role =(DataStoreRole) dsInfos.get("role"); Map details = (Map)dsInfos.get("details"); @@ -111,7 +115,7 @@ public class CloudStackImageStoreLifeCycleImpl implements ImageStoreLifeCycle { Map imageStoreParameters = new HashMap(); - imageStoreParameters.put("name", url); + imageStoreParameters.put("name", name); imageStoreParameters.put("zoneId", dcId); imageStoreParameters.put("url", url); imageStoreParameters.put("protocol", uri.getScheme().toLowerCase()); diff --git a/plugins/storage/image/s3/src/org/apache/cloudstack/storage/datastore/lifecycle/S3ImageStoreLifeCycleImpl.java b/plugins/storage/image/s3/src/org/apache/cloudstack/storage/datastore/lifecycle/S3ImageStoreLifeCycleImpl.java index 1b5e2d57344..4ea97e57bfc 100644 --- a/plugins/storage/image/s3/src/org/apache/cloudstack/storage/datastore/lifecycle/S3ImageStoreLifeCycleImpl.java +++ b/plugins/storage/image/s3/src/org/apache/cloudstack/storage/datastore/lifecycle/S3ImageStoreLifeCycleImpl.java @@ -84,6 +84,7 @@ public class S3ImageStoreLifeCycleImpl implements ImageStoreLifeCycle { Long dcId = (Long) dsInfos.get("zoneId"); String url = (String) dsInfos.get("url"); + String name = (String)dsInfos.get("name"); String providerName = (String)dsInfos.get("providerName"); ScopeType scope = (ScopeType)dsInfos.get("scope"); DataStoreRole role =(DataStoreRole) dsInfos.get("role"); @@ -102,7 +103,7 @@ public class S3ImageStoreLifeCycleImpl implements ImageStoreLifeCycle { */ Map imageStoreParameters = new HashMap(); - imageStoreParameters.put("name", url); + imageStoreParameters.put("name", name); imageStoreParameters.put("zoneId", dcId); imageStoreParameters.put("url", url); String protocol = "http"; diff --git a/plugins/storage/image/swift/src/org/apache/cloudstack/storage/datastore/lifecycle/SwiftImageStoreLifeCycleImpl.java b/plugins/storage/image/swift/src/org/apache/cloudstack/storage/datastore/lifecycle/SwiftImageStoreLifeCycleImpl.java index 411e052440f..3fc68a1e8fe 100644 --- a/plugins/storage/image/swift/src/org/apache/cloudstack/storage/datastore/lifecycle/SwiftImageStoreLifeCycleImpl.java +++ b/plugins/storage/image/swift/src/org/apache/cloudstack/storage/datastore/lifecycle/SwiftImageStoreLifeCycleImpl.java @@ -80,6 +80,7 @@ public class SwiftImageStoreLifeCycleImpl implements ImageStoreLifeCycle { Long dcId = (Long) dsInfos.get("zoneId"); String url = (String) dsInfos.get("url"); + String name = (String)dsInfos.get("name"); ScopeType scope = (ScopeType)dsInfos.get("scope"); String providerName = (String)dsInfos.get("providerName"); DataStoreRole role =(DataStoreRole) dsInfos.get("role"); @@ -90,6 +91,7 @@ public class SwiftImageStoreLifeCycleImpl implements ImageStoreLifeCycle { // just need to insert an entry in DB Map imageStoreParameters = new HashMap(); + imageStoreParameters.put("name", name); imageStoreParameters.put("zoneId", dcId); imageStoreParameters.put("url", url); imageStoreParameters.put("protocol", "http"); diff --git a/server/src/com/cloud/storage/StorageManagerImpl.java b/server/src/com/cloud/storage/StorageManagerImpl.java index 504cdc64948..ba6b3434ad6 100755 --- a/server/src/com/cloud/storage/StorageManagerImpl.java +++ b/server/src/com/cloud/storage/StorageManagerImpl.java @@ -1892,7 +1892,7 @@ public class StorageManagerImpl extends ManagerBase implements StorageManager, C Map params = new HashMap(); params.put("zoneId", dcId); params.put("url", cmd.getUrl()); - params.put("name", cmd.getUrl()); + params.put("name", cmd.getName()); params.put("details", details); params.put("scope", scopeType); params.put("providerName", storeProvider.getName());