From a2f1d233787b9182a1ef4ae45eee3bfc0f4d6eb5 Mon Sep 17 00:00:00 2001 From: Min Chen Date: Thu, 1 Aug 2013 18:02:42 -0700 Subject: [PATCH] CLOUDSTACK-3748: AddS3Cmd NPE. --- .../api/command/admin/storage/AddS3Cmd.java | 28 ++++++++++++------- 1 file changed, 18 insertions(+), 10 deletions(-) diff --git a/api/src/org/apache/cloudstack/api/command/admin/storage/AddS3Cmd.java b/api/src/org/apache/cloudstack/api/command/admin/storage/AddS3Cmd.java index 3ad84fd5a51..70cde7892f4 100644 --- a/api/src/org/apache/cloudstack/api/command/admin/storage/AddS3Cmd.java +++ b/api/src/org/apache/cloudstack/api/command/admin/storage/AddS3Cmd.java @@ -91,8 +91,8 @@ public final class AddS3Cmd extends BaseCmd { @Override public void execute() throws ResourceUnavailableException, InsufficientCapacityException, - ServerApiException, ConcurrentOperationException, ResourceAllocationException, - NetworkRuleConflictException { + ServerApiException, ConcurrentOperationException, ResourceAllocationException, + NetworkRuleConflictException { AddImageStoreCmd cmd = new AddImageStoreCmd(); cmd.setProviderName("S3"); @@ -101,19 +101,27 @@ public final class AddS3Cmd extends BaseCmd { details.put(ApiConstants.S3_SECRET_KEY, this.getSecretKey()); details.put(ApiConstants.S3_END_POINT, this.getEndPoint()); details.put(ApiConstants.S3_BUCKET_NAME, this.getBucketName()); - details.put(ApiConstants.S3_HTTPS_FLAG, this.getHttpsFlag().toString()); - details.put(ApiConstants.S3_CONNECTION_TIMEOUT, this.getConnectionTimeout().toString()); - details.put(ApiConstants.S3_MAX_ERROR_RETRY, this.getMaxErrorRetry().toString()); - details.put(ApiConstants.S3_SOCKET_TIMEOUT, this.getSocketTimeout().toString()); + if (this.getHttpsFlag() != null) { + details.put(ApiConstants.S3_HTTPS_FLAG, this.getHttpsFlag().toString()); + } + if (this.getConnectionTimeout() != null) { + details.put(ApiConstants.S3_CONNECTION_TIMEOUT, this.getConnectionTimeout().toString()); + } + if (this.getMaxErrorRetry() != null) { + details.put(ApiConstants.S3_MAX_ERROR_RETRY, this.getMaxErrorRetry().toString()); + } + if (this.getSocketTimeout() != null) { + details.put(ApiConstants.S3_SOCKET_TIMEOUT, this.getSocketTimeout().toString()); + } try{ ImageStore result = _storageService.discoverImageStore(cmd); ImageStoreResponse storeResponse = null; if (result != null ) { - storeResponse = _responseGenerator.createImageStoreResponse(result); - storeResponse.setResponseName(getCommandName()); - storeResponse.setObjectName("secondarystorage"); - this.setResponseObject(storeResponse); + storeResponse = _responseGenerator.createImageStoreResponse(result); + storeResponse.setResponseName(getCommandName()); + storeResponse.setObjectName("secondarystorage"); + this.setResponseObject(storeResponse); } else { throw new ServerApiException(ApiErrorCode.INTERNAL_ERROR, "Failed to add secondary storage"); }