From 235c5aa6ebbfb2a0e4083f53fb55ff5d8fcb4688 Mon Sep 17 00:00:00 2001 From: anthony Date: Thu, 15 Dec 2011 12:37:13 -0800 Subject: [PATCH] SWIFT: api refine --- .../com/cloud/api/commands/AddSwiftCmd.java | 17 +++++-------- .../com/cloud/api/response/SwiftResponse.java | 25 +++++++++++++++++++ .../com/cloud/resource/ResourceService.java | 2 +- .../src/com/cloud/api/ApiResponseHelper.java | 2 ++ .../cloud/resource/ResourceManagerImpl.java | 4 +-- .../com/cloud/storage/swift/SwiftManager.java | 4 +-- .../cloud/storage/swift/SwiftManagerImpl.java | 9 ++----- 7 files changed, 39 insertions(+), 24 deletions(-) diff --git a/api/src/com/cloud/api/commands/AddSwiftCmd.java b/api/src/com/cloud/api/commands/AddSwiftCmd.java index 19bb7d02cab..ab77a4d43e6 100644 --- a/api/src/com/cloud/api/commands/AddSwiftCmd.java +++ b/api/src/com/cloud/api/commands/AddSwiftCmd.java @@ -18,8 +18,6 @@ package com.cloud.api.commands; -import java.util.List; - import org.apache.log4j.Logger; import com.cloud.api.ApiConstants; @@ -91,16 +89,13 @@ public class AddSwiftCmd extends BaseCmd { @Override public void execute(){ try { - List result = _resourceService.discoverSwift(this); + Swift result = _resourceService.discoverSwift(this); SwiftResponse swiftResponse = null; - if (result != null && result.size() > 0) { - for (Swift swift : result) { - // There should only be one secondary storage host per add - swiftResponse = _responseGenerator.createSwiftResponse(swift); - swiftResponse.setResponseName(getCommandName()); - swiftResponse.setObjectName("Swift"); - this.setResponseObject(swiftResponse); - } + if (result != null) { + swiftResponse = _responseGenerator.createSwiftResponse(result); + swiftResponse.setResponseName(getCommandName()); + swiftResponse.setObjectName("Swift"); + this.setResponseObject(swiftResponse); } else { throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to add Swift"); } diff --git a/api/src/com/cloud/api/response/SwiftResponse.java b/api/src/com/cloud/api/response/SwiftResponse.java index 214ffdc4c49..d5bbbd0a890 100755 --- a/api/src/com/cloud/api/response/SwiftResponse.java +++ b/api/src/com/cloud/api/response/SwiftResponse.java @@ -37,6 +37,15 @@ public class SwiftResponse extends BaseResponse { @Param(description = "the date and time the host was created") private Date created; + @SerializedName(ApiConstants.ACCOUNT) + @Param(description = "the account for swift") + private String account; + + @SerializedName(ApiConstants.ACCOUNT) + @Param(description = "the username for swift") + private String username; + + @Override public Long getObjectId() { return id.getValue(); @@ -62,4 +71,20 @@ public class SwiftResponse extends BaseResponse { this.created = created; } + public String getAccount() { + return account; + } + + public void setAccount(String account) { + this.account = account; + } + + public String getUsername() { + return username; + } + + public void setUsername(String username) { + this.username = username; + } + } diff --git a/api/src/com/cloud/resource/ResourceService.java b/api/src/com/cloud/resource/ResourceService.java index b000a960f96..ea8111d4b38 100755 --- a/api/src/com/cloud/resource/ResourceService.java +++ b/api/src/com/cloud/resource/ResourceService.java @@ -89,7 +89,7 @@ public interface ResourceService { Cluster getCluster(Long clusterId); - List discoverSwift(AddSwiftCmd addSwiftCmd) throws DiscoveryException; + Swift discoverSwift(AddSwiftCmd addSwiftCmd) throws DiscoveryException; List getSupportedHypervisorTypes(long zoneId); } diff --git a/server/src/com/cloud/api/ApiResponseHelper.java b/server/src/com/cloud/api/ApiResponseHelper.java index 2743c3254be..0cdc3ca0428 100755 --- a/server/src/com/cloud/api/ApiResponseHelper.java +++ b/server/src/com/cloud/api/ApiResponseHelper.java @@ -652,6 +652,8 @@ public class ApiResponseHelper implements ResponseGenerator { SwiftResponse swiftResponse = new SwiftResponse(); swiftResponse.setId(swift.getId()); swiftResponse.setUrl(swift.getUrl()); + swiftResponse.setAccount(swift.getAccount()); + swiftResponse.setUsername(swift.getUserName()); swiftResponse.setObjectName("Swift"); return swiftResponse; } diff --git a/server/src/com/cloud/resource/ResourceManagerImpl.java b/server/src/com/cloud/resource/ResourceManagerImpl.java index 07abf2672ea..64b251455bd 100755 --- a/server/src/com/cloud/resource/ResourceManagerImpl.java +++ b/server/src/com/cloud/resource/ResourceManagerImpl.java @@ -83,10 +83,10 @@ import com.cloud.ha.HighAvailabilityManager.WorkType; import com.cloud.host.DetailVO; import com.cloud.host.Host; import com.cloud.host.Host.Type; -import com.cloud.host.Status.Event; import com.cloud.host.HostStats; import com.cloud.host.HostVO; import com.cloud.host.Status; +import com.cloud.host.Status.Event; import com.cloud.host.dao.HostDao; import com.cloud.host.dao.HostDetailsDao; import com.cloud.host.dao.HostTagsDao; @@ -513,7 +513,7 @@ public class ResourceManagerImpl implements ResourceManager, ResourceService, Ma } @Override - public List discoverSwift(AddSwiftCmd cmd) throws DiscoveryException { + public Swift discoverSwift(AddSwiftCmd cmd) throws DiscoveryException { return _swiftMgr.addSwift(cmd); } diff --git a/server/src/com/cloud/storage/swift/SwiftManager.java b/server/src/com/cloud/storage/swift/SwiftManager.java index a882c1bd25a..02e5fe18323 100644 --- a/server/src/com/cloud/storage/swift/SwiftManager.java +++ b/server/src/com/cloud/storage/swift/SwiftManager.java @@ -24,8 +24,6 @@ package com.cloud.storage.swift; -import java.util.List; - import com.cloud.agent.api.to.SwiftTO; import com.cloud.api.commands.AddSwiftCmd; import com.cloud.api.commands.DeleteIsoCmd; @@ -39,7 +37,7 @@ public interface SwiftManager extends Manager { SwiftTO getSwiftTO(); - List addSwift(AddSwiftCmd cmd) throws DiscoveryException; + Swift addSwift(AddSwiftCmd cmd) throws DiscoveryException; boolean isSwiftEnabled(); diff --git a/server/src/com/cloud/storage/swift/SwiftManagerImpl.java b/server/src/com/cloud/storage/swift/SwiftManagerImpl.java index c759e7d73d0..5fd4d4835b4 100644 --- a/server/src/com/cloud/storage/swift/SwiftManagerImpl.java +++ b/server/src/com/cloud/storage/swift/SwiftManagerImpl.java @@ -24,8 +24,6 @@ package com.cloud.storage.swift; -import java.util.ArrayList; -import java.util.List; import java.util.Map; import javax.ejb.Local; @@ -43,7 +41,6 @@ import com.cloud.api.commands.DeleteTemplateCmd; import com.cloud.configuration.Config; import com.cloud.configuration.dao.ConfigurationDao; import com.cloud.exception.DiscoveryException; -import com.cloud.storage.Swift; import com.cloud.storage.SwiftVO; import com.cloud.storage.VMTemplateSwiftVO; import com.cloud.storage.dao.SwiftDao; @@ -100,15 +97,13 @@ public class SwiftManagerImpl implements SwiftManager { } @Override - public List addSwift(AddSwiftCmd cmd) throws DiscoveryException { + public SwiftVO addSwift(AddSwiftCmd cmd) throws DiscoveryException { if (!isSwiftEnabled()) { throw new DiscoveryException("Swift is not enabled"); } SwiftVO swift = new SwiftVO(cmd.getUrl(), cmd.getAccount(), cmd.getUsername(), cmd.getKey()); swift = _swiftDao.persist(swift); - List list = new ArrayList(); - list.add(swift); - return list; + return swift; } @Override