Updated Branches: refs/heads/master a8ee45de7 -> 578c4444d
CLOUDSTACK-4093 UCS:API: Need delete UCS_manager API Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/578c4444 Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/578c4444 Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/578c4444 Branch: refs/heads/master Commit: 578c4444d797fc67032d23479ca8f331cb842b33 Parents: a8ee45d Author: frank <[email protected]> Authored: Tue Aug 6 17:58:48 2013 -0700 Committer: frank <[email protected]> Committed: Tue Aug 6 18:01:59 2013 -0700 ---------------------------------------------------------------------- client/tomcatconf/commands.properties.in | 1 + .../src/com/cloud/ucs/manager/UcsManager.java | 2 + .../com/cloud/ucs/manager/UcsManagerImpl.java | 11 ++++ .../cloudstack/api/DeleteUcsManagerCmd.java | 58 ++++++++++++++++++++ 4 files changed, 72 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cloudstack/blob/578c4444/client/tomcatconf/commands.properties.in ---------------------------------------------------------------------- diff --git a/client/tomcatconf/commands.properties.in b/client/tomcatconf/commands.properties.in index 47282af..66782e0 100644 --- a/client/tomcatconf/commands.properties.in +++ b/client/tomcatconf/commands.properties.in @@ -617,6 +617,7 @@ listUcsManagers=1 listUcsProfiles=1 listUcsBlades=1 associateUcsProfileToBlade=1 +deleteUcsManager=1 #### New Load Balancer commands createLoadBalancer=15 http://git-wip-us.apache.org/repos/asf/cloudstack/blob/578c4444/plugins/hypervisors/ucs/src/com/cloud/ucs/manager/UcsManager.java ---------------------------------------------------------------------- diff --git a/plugins/hypervisors/ucs/src/com/cloud/ucs/manager/UcsManager.java b/plugins/hypervisors/ucs/src/com/cloud/ucs/manager/UcsManager.java index 35a4459..0833e31 100755 --- a/plugins/hypervisors/ucs/src/com/cloud/ucs/manager/UcsManager.java +++ b/plugins/hypervisors/ucs/src/com/cloud/ucs/manager/UcsManager.java @@ -40,4 +40,6 @@ public interface UcsManager extends Manager, PluggableService { UcsBladeResponse associateProfileToBlade(AssociateUcsProfileToBladeCmd cmd); ListResponse<UcsBladeResponse> listUcsBlades(ListUcsBladeCmd cmd); + + void deleteUcsManager(Long id); } http://git-wip-us.apache.org/repos/asf/cloudstack/blob/578c4444/plugins/hypervisors/ucs/src/com/cloud/ucs/manager/UcsManagerImpl.java ---------------------------------------------------------------------- diff --git a/plugins/hypervisors/ucs/src/com/cloud/ucs/manager/UcsManagerImpl.java b/plugins/hypervisors/ucs/src/com/cloud/ucs/manager/UcsManagerImpl.java index e19c72a..d3068a8 100755 --- a/plugins/hypervisors/ucs/src/com/cloud/ucs/manager/UcsManagerImpl.java +++ b/plugins/hypervisors/ucs/src/com/cloud/ucs/manager/UcsManagerImpl.java @@ -491,4 +491,15 @@ public class UcsManagerImpl implements UcsManager { cmds.add(AssociateUcsProfileToBladeCmd.class); return cmds; } + + @Override + public void deleteUcsManager(Long id) { + SearchCriteriaService<UcsBladeVO, UcsBladeVO> serv = SearchCriteria2.create(UcsBladeVO.class); + serv.addAnd(serv.getEntity().getUcsManagerId(), Op.EQ, id); + List<UcsBladeVO> vos = serv.list(); + for (UcsBladeVO vo : vos) { + bladeDao.remove(vo.getId()); + } + ucsDao.remove(id); + } } http://git-wip-us.apache.org/repos/asf/cloudstack/blob/578c4444/plugins/hypervisors/ucs/src/org/apache/cloudstack/api/DeleteUcsManagerCmd.java ---------------------------------------------------------------------- diff --git a/plugins/hypervisors/ucs/src/org/apache/cloudstack/api/DeleteUcsManagerCmd.java b/plugins/hypervisors/ucs/src/org/apache/cloudstack/api/DeleteUcsManagerCmd.java new file mode 100644 index 0000000..c715c56 --- /dev/null +++ b/plugins/hypervisors/ucs/src/org/apache/cloudstack/api/DeleteUcsManagerCmd.java @@ -0,0 +1,58 @@ +package org.apache.cloudstack.api; + +import com.cloud.exception.ConcurrentOperationException; +import com.cloud.exception.InsufficientCapacityException; +import com.cloud.exception.NetworkRuleConflictException; +import com.cloud.exception.ResourceAllocationException; +import com.cloud.exception.ResourceUnavailableException; +import com.cloud.ucs.manager.UcsManager; +import com.cloud.user.Account; +import com.cloud.utils.exception.CloudRuntimeException; + +import org.apache.cloudstack.api.response.SuccessResponse; +import org.apache.cloudstack.api.response.UcsManagerResponse; +import org.apache.log4j.Logger; + +import javax.inject.Inject; + +@APICommand(name="deleteUcsManager", description="Delete a Ucs manager", responseObject= SuccessResponse.class) +public class DeleteUcsManagerCmd extends BaseCmd { + private static final Logger logger = Logger.getLogger(DeleteUcsManagerCmd.class); + + @Inject + private UcsManager mgr; + + @Parameter(name=ApiConstants.UCS_MANAGER_ID, type= BaseCmd.CommandType.UUID, description="ucs manager id", entityType=UcsManagerResponse.class, required=true) + private Long ucsManagerId; + + public Long getUcsManagerId() { + return ucsManagerId; + } + + @Override + public void execute() throws ResourceUnavailableException, + InsufficientCapacityException, ServerApiException, + ConcurrentOperationException, ResourceAllocationException, + NetworkRuleConflictException { + try { + mgr.deleteUcsManager(ucsManagerId); + SuccessResponse rsp = new SuccessResponse(); + rsp.setResponseName(getCommandName()); + rsp.setObjectName("success"); + this.setResponseObject(rsp); + } catch (Exception e) { + logger.debug(e.getMessage(), e); + throw new CloudRuntimeException(e); + } + } + + @Override + public String getCommandName() { + return "deleteUcsManagerResponse"; + } + + @Override + public long getEntityOwnerId() { + return Account.ACCOUNT_ID_SYSTEM; + } +}
