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 8349774cbaf..08112f0aab0 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,7 +44,7 @@ public class AddImageStoreCmd extends BaseCmd { //////////////// API parameters ///////////////////// ///////////////////////////////////////////////////// - @Parameter(name=ApiConstants.URL, type=CommandType.STRING, required=true, description="the URL for the image store") + @Parameter(name=ApiConstants.URL, type=CommandType.STRING, description="the URL for the image store") private String url; @Parameter(name=ApiConstants.ZONE_ID, type=CommandType.UUID, entityType=ZoneResponse.class, diff --git a/engine/storage/src/org/apache/cloudstack/storage/image/datastore/ImageStoreHelper.java b/engine/storage/src/org/apache/cloudstack/storage/image/datastore/ImageStoreHelper.java index fe6e94f2853..d0dfd55ff37 100644 --- a/engine/storage/src/org/apache/cloudstack/storage/image/datastore/ImageStoreHelper.java +++ b/engine/storage/src/org/apache/cloudstack/storage/image/datastore/ImageStoreHelper.java @@ -70,7 +70,6 @@ public class ImageStoreHelper { return store; } store = new ImageStoreVO(); - store.setName((String)params.get("name")); store.setProtocol((String)params.get("protocol")); store.setProviderName((String)params.get("providerName")); store.setScope((ScopeType)params.get("scope")); @@ -82,6 +81,10 @@ public class ImageStoreHelper { store.setUuid(UUID.randomUUID().toString()); } store.setUrl((String)params.get("url")); + store.setName((String)params.get("name")); + if ( store.getName() == null ){ + store.setName(store.getUuid()); + } store.setRole((DataStoreRole)params.get("role")); store = imageStoreDao.persist(store); 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 05c9e37aca4..1b5e2d57344 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 @@ -91,6 +91,7 @@ public class S3ImageStoreLifeCycleImpl implements ImageStoreLifeCycle { s_logger.info("Trying to add a S3 store in data center " + dcId); + /* try{ // verify S3 parameters _s3Mgr.verifyS3Fields(details); @@ -98,6 +99,7 @@ public class S3ImageStoreLifeCycleImpl implements ImageStoreLifeCycle { catch (DiscoveryException ex){ throw new InvalidParameterValueException("failed to verify S3 parameters!"); } + */ Map imageStoreParameters = new HashMap(); imageStoreParameters.put("name", url); 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 20e0939b9fe..411e052440f 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 @@ -90,7 +90,6 @@ public class SwiftImageStoreLifeCycleImpl implements ImageStoreLifeCycle { // just need to insert an entry in DB Map imageStoreParameters = new HashMap(); - imageStoreParameters.put("name", url); imageStoreParameters.put("zoneId", dcId); imageStoreParameters.put("url", url); imageStoreParameters.put("protocol", "http"); diff --git a/server/src/com/cloud/storage/s3/S3ManagerImpl.java b/server/src/com/cloud/storage/s3/S3ManagerImpl.java index 1e8ad4f54ed..2edf2326b59 100644 --- a/server/src/com/cloud/storage/s3/S3ManagerImpl.java +++ b/server/src/com/cloud/storage/s3/S3ManagerImpl.java @@ -258,10 +258,10 @@ public class S3ManagerImpl extends ManagerBase implements S3Manager { params.get(ApiConstants.S3_SECRET_KEY), params.get(ApiConstants.S3_END_POINT), params.get(ApiConstants.S3_BUCKET_NAME), - Boolean.valueOf(params.get(ApiConstants.S3_HTTPS_FLAG)), - Integer.valueOf(params.get(ApiConstants.S3_CONNECTION_TIMEOUT)), - Integer.valueOf(params.get(ApiConstants.S3_MAX_ERROR_RETRY)), - Integer.valueOf(params.get(ApiConstants.S3_SOCKET_TIMEOUT)), now()); + params.get(ApiConstants.S3_HTTPS_FLAG) == null ? false : Boolean.valueOf(params.get(ApiConstants.S3_HTTPS_FLAG)), + params.get(ApiConstants.S3_CONNECTION_TIMEOUT) == null ? null : Integer.valueOf(params.get(ApiConstants.S3_CONNECTION_TIMEOUT)), + params.get(ApiConstants.S3_MAX_ERROR_RETRY) == null ? null : Integer.valueOf(params.get(ApiConstants.S3_MAX_ERROR_RETRY)), + params.get(ApiConstants.S3_SOCKET_TIMEOUT) == null ? null : Integer.valueOf(params.get(ApiConstants.S3_SOCKET_TIMEOUT)), now()); this.validateFields(s3VO);