diff --git a/server/src/com/cloud/api/ApiDispatcher.java b/server/src/com/cloud/api/ApiDispatcher.java index 6d8d5106422..2b2b065b0de 100644 --- a/server/src/com/cloud/api/ApiDispatcher.java +++ b/server/src/com/cloud/api/ApiDispatcher.java @@ -107,11 +107,7 @@ public class ApiDispatcher { setupParameters(cmd, params); try { - Object result = cmd.execute(); - if (!(result instanceof ResponseObject)) { - cmd.setResponseObject(result); - } - + cmd.execute(); } catch (InvalidParameterValueException e1) { throw new ServerApiException(BaseCmd.PARAM_ERROR, e1.getMessage()); } catch (IllegalArgumentException e2) { diff --git a/server/src/com/cloud/api/ApiServer.java b/server/src/com/cloud/api/ApiServer.java index 5b0707588f4..583567af40a 100755 --- a/server/src/com/cloud/api/ApiServer.java +++ b/server/src/com/cloud/api/ApiServer.java @@ -79,6 +79,7 @@ import org.apache.http.protocol.ResponseServer; import org.apache.log4j.Logger; import com.cloud.api.response.ApiResponseSerializer; +import com.cloud.api.response.ListResponse; import com.cloud.async.AsyncJobVO; import com.cloud.configuration.ConfigurationVO; import com.cloud.configuration.dao.ConfigurationDao; @@ -352,7 +353,6 @@ public class ApiServer implements HttpRequestHandler { BaseAsyncCreateCmd createCmd = (BaseAsyncCreateCmd)cmdObj; _dispatcher.dispatchCreateCmd(createCmd, params); objectId = createCmd.getId(); - //createCmd.setId(objectId); params.put("id", objectId.toString()); } else { ApiDispatcher.setupParameters(cmdObj, params); @@ -398,7 +398,7 @@ public class ApiServer implements HttpRequestHandler { return ApiResponseSerializer.toSerializedString(asyncCmd.getResponse(jobId), asyncCmd.getResponseType()); } else { _dispatcher.dispatch(cmdObj, params); - return ApiResponseSerializer.toSerializedString(cmdObj.getResponse(), cmdObj.getResponseType()); + return ApiResponseSerializer.toSerializedString((ResponseObject)cmdObj.getResponseObject(), cmdObj.getResponseType()); } } diff --git a/server/src/com/cloud/api/BaseAsyncCmd.java b/server/src/com/cloud/api/BaseAsyncCmd.java index 1985e70eb60..900537e5bb1 100644 --- a/server/src/com/cloud/api/BaseAsyncCmd.java +++ b/server/src/com/cloud/api/BaseAsyncCmd.java @@ -91,4 +91,5 @@ public abstract class BaseAsyncCmd extends BaseCmd { public void setStartEventId(Long startEventId) { this.startEventId = startEventId; } + } diff --git a/server/src/com/cloud/api/BaseCmd.java b/server/src/com/cloud/api/BaseCmd.java index e488107a4f5..d65a5a1cdc2 100755 --- a/server/src/com/cloud/api/BaseCmd.java +++ b/server/src/com/cloud/api/BaseCmd.java @@ -151,7 +151,7 @@ public abstract class BaseCmd { return locator; } - public abstract Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ResourceUnavailableException, ConcurrentOperationException; + public abstract void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ResourceUnavailableException, ConcurrentOperationException; public String getResponseType() { if (responseType == null) { @@ -165,7 +165,6 @@ public abstract class BaseCmd { } public abstract String getName(); - public abstract T getResponse(); public Object getResponseObject() { return _responseObject; diff --git a/server/src/com/cloud/api/commands/AddHostCmd.java b/server/src/com/cloud/api/commands/AddHostCmd.java index 5881db054d0..0967296c961 100644 --- a/server/src/com/cloud/api/commands/AddHostCmd.java +++ b/server/src/com/cloud/api/commands/AddHostCmd.java @@ -22,7 +22,6 @@ import java.util.List; import org.apache.log4j.Logger; -import com.cloud.agent.AgentManager; import com.cloud.api.ApiConstants; import com.cloud.api.ApiResponseHelper; import com.cloud.api.BaseCmd; @@ -39,7 +38,7 @@ import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.PermissionDeniedException; import com.cloud.host.HostVO; -@Implementation(method="discoverHosts", manager=AgentManager.class, description="Adds a new host.") +@Implementation(description="Adds a new host.") public class AddHostCmd extends BaseCmd { public static final Logger s_logger = Logger.getLogger(AddHostCmd.class.getName()); @@ -111,32 +110,26 @@ public class AddHostCmd extends BaseCmd { public String getName() { return s_name; } - - @Override @SuppressWarnings("unchecked") - public ListResponse getResponse() { - List hosts = (List)getResponseObject(); - - ListResponse response = new ListResponse(); - List hostResponses = new ArrayList(); - if (hosts != null) { - for (HostVO host : hosts) { - HostResponse hostResponse = ApiResponseHelper.createHostResponse(host); - hostResponses.add(hostResponse); - } - } else { - throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to add host"); - } - - response.setResponses(hostResponses); - response.setResponseName(getName()); - return response; - } @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ try { List result = _agentMgr.discoverHosts(this); - return result; + ListResponse response = new ListResponse(); + List hostResponses = new ArrayList(); + if (result != null) { + for (HostVO host : result) { + HostResponse hostResponse = ApiResponseHelper.createHostResponse(host); + hostResponses.add(hostResponse); + } + } else { + throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to add host"); + } + + response.setResponses(hostResponses); + response.setResponseName(getName()); + + this.setResponseObject(response); } catch (DiscoveryException ex) { throw new ServerApiException(BaseCmd.INTERNAL_ERROR, ex.getMessage()); } diff --git a/server/src/com/cloud/api/commands/AddSecondaryStorageCmd.java b/server/src/com/cloud/api/commands/AddSecondaryStorageCmd.java index d6747c1b3de..200c730df46 100644 --- a/server/src/com/cloud/api/commands/AddSecondaryStorageCmd.java +++ b/server/src/com/cloud/api/commands/AddSecondaryStorageCmd.java @@ -22,7 +22,6 @@ import java.util.List; import org.apache.log4j.Logger; -import com.cloud.agent.AgentManager; import com.cloud.api.ApiConstants; import com.cloud.api.ApiResponseHelper; import com.cloud.api.BaseCmd; @@ -38,7 +37,7 @@ import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.PermissionDeniedException; import com.cloud.host.HostVO; -@Implementation(method="discoverHosts", manager=AgentManager.class, description="Adds secondary storage.") +@Implementation(description="Adds secondary storage.") public class AddSecondaryStorageCmd extends BaseCmd { public static final Logger s_logger = Logger.getLogger(AddSecondaryStorageCmd.class.getName()); private static final String s_name = "addsecondarystorageresponse"; @@ -74,29 +73,22 @@ public class AddSecondaryStorageCmd extends BaseCmd { return s_name; } - @Override @SuppressWarnings("unchecked") - public HostResponse getResponse() { - List hosts = (List)getResponseObject(); - HostResponse hostResponse = null; - if (hosts != null && hosts.size() > 0) { - for (HostVO host : hosts) { - // There should only be one secondary storage host per add - hostResponse = ApiResponseHelper.createHostResponse(host); - hostResponse.setResponseName(getName()); - hostResponse.setObjectName("secondarystorage"); - return hostResponse; - } - } else { - throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to add secondary storage"); - } - return hostResponse; - } - @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ try { List result = _agentMgr.discoverHosts(this); - return result; + HostResponse hostResponse = null; + if (result != null && result.size() > 0) { + for (HostVO host : result) { + // There should only be one secondary storage host per add + hostResponse = ApiResponseHelper.createHostResponse(host); + hostResponse.setResponseName(getName()); + hostResponse.setObjectName("secondarystorage"); + this.setResponseObject(hostResponse); + } + } else { + throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to add secondary storage"); + } } catch (DiscoveryException ex) { throw new ServerApiException(BaseCmd.INTERNAL_ERROR, ex.getMessage()); } diff --git a/server/src/com/cloud/api/commands/AddVpnUserCmd.java b/server/src/com/cloud/api/commands/AddVpnUserCmd.java index 6b4bb824a8e..fc552714df1 100644 --- a/server/src/com/cloud/api/commands/AddVpnUserCmd.java +++ b/server/src/com/cloud/api/commands/AddVpnUserCmd.java @@ -32,12 +32,11 @@ import com.cloud.exception.InsufficientAddressCapacityException; import com.cloud.exception.InsufficientCapacityException; import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.PermissionDeniedException; -import com.cloud.network.NetworkManager; import com.cloud.network.VpnUserVO; import com.cloud.user.Account; import com.cloud.user.UserContext; -@Implementation( method="addVpnUser", manager=NetworkManager.class, description="Adds vpn users") +@Implementation(description="Adds vpn users") public class AddVpnUserCmd extends BaseAsyncCmd { public static final Logger s_logger = Logger.getLogger(AddVpnUserCmd.class.getName()); @@ -95,25 +94,6 @@ public class AddVpnUserCmd extends BaseAsyncCmd { return s_name; } - @Override @SuppressWarnings("unchecked") - public VpnUsersResponse getResponse() { - VpnUserVO vpnUser = (VpnUserVO)getResponseObject(); - VpnUsersResponse vpnResponse = new VpnUsersResponse(); - vpnResponse.setId(vpnUser.getId()); - vpnResponse.setUserName(vpnUser.getUsername()); - vpnResponse.setAccountName(vpnUser.getAccountName()); - - Account accountTemp = ApiDBUtils.findAccountById(vpnUser.getAccountId()); - if (accountTemp != null) { - vpnResponse.setDomainId(accountTemp.getDomainId()); - vpnResponse.setDomainName(ApiDBUtils.findDomainById(accountTemp.getDomainId()).getName()); - } - - vpnResponse.setResponseName(getName()); - vpnResponse.setObjectName("vpnuser"); - return vpnResponse; - } - @Override public long getAccountId() { Account account = (Account)UserContext.current().getAccount(); @@ -146,9 +126,21 @@ public class AddVpnUserCmd extends BaseAsyncCmd { } @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ - VpnUserVO result = _networkMgr.addVpnUser(this); - return result; - } - + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + VpnUserVO vpnUser = _networkMgr.addVpnUser(this); + VpnUsersResponse vpnResponse = new VpnUsersResponse(); + vpnResponse.setId(vpnUser.getId()); + vpnResponse.setUserName(vpnUser.getUsername()); + vpnResponse.setAccountName(vpnUser.getAccountName()); + + Account accountTemp = ApiDBUtils.findAccountById(vpnUser.getAccountId()); + if (accountTemp != null) { + vpnResponse.setDomainId(accountTemp.getDomainId()); + vpnResponse.setDomainName(ApiDBUtils.findDomainById(accountTemp.getDomainId()).getName()); + } + + vpnResponse.setResponseName(getName()); + vpnResponse.setObjectName("vpnuser"); + this.setResponseObject(vpnResponse); + } } diff --git a/server/src/com/cloud/api/commands/AssignToLoadBalancerRuleCmd.java b/server/src/com/cloud/api/commands/AssignToLoadBalancerRuleCmd.java index 8bd21a80049..d299f8f4c53 100644 --- a/server/src/com/cloud/api/commands/AssignToLoadBalancerRuleCmd.java +++ b/server/src/com/cloud/api/commands/AssignToLoadBalancerRuleCmd.java @@ -37,10 +37,9 @@ import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.NetworkRuleConflictException; import com.cloud.exception.PermissionDeniedException; import com.cloud.network.LoadBalancerVO; -import com.cloud.network.NetworkManager; import com.cloud.user.Account; -@Implementation(method="assignToLoadBalancer", manager=NetworkManager.class, description="Assigns virtual machine or a list of virtual machines to a load balancer rule.") +@Implementation(description="Assigns virtual machine or a list of virtual machines to a load balancer rule.") public class AssignToLoadBalancerRuleCmd extends BaseAsyncCmd { public static final Logger s_logger = Logger.getLogger(AssignToLoadBalancerRuleCmd.class.getName()); @@ -102,21 +101,17 @@ public class AssignToLoadBalancerRuleCmd extends BaseAsyncCmd { public String getEventDescription() { return "applying port forwarding service for vm with id: " + getVirtualMachineId(); } - - @Override @SuppressWarnings("unchecked") - public SuccessResponse getResponse() { - if (getResponseObject() == null || (Boolean)getResponseObject()) { - return new SuccessResponse(getName()); - } else { - throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to assign to load balancer"); - } - } @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ try { boolean result = _networkMgr.assignToLoadBalancer(this); - return result; + if (result) { + SuccessResponse response = new SuccessResponse(getName()); + this.setResponseObject(response); + } else { + throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to assign load balancer rule"); + } } catch (NetworkRuleConflictException ex) { throw new ServerApiException(BaseCmd.INTERNAL_ERROR, ex.getMessage()); } diff --git a/server/src/com/cloud/api/commands/AssociateIPAddrCmd.java b/server/src/com/cloud/api/commands/AssociateIPAddrCmd.java index da0d3b7df3b..a9272f3242d 100644 --- a/server/src/com/cloud/api/commands/AssociateIPAddrCmd.java +++ b/server/src/com/cloud/api/commands/AssociateIPAddrCmd.java @@ -33,9 +33,8 @@ import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.PermissionDeniedException; import com.cloud.exception.ResourceAllocationException; import com.cloud.network.IPAddressVO; -import com.cloud.network.NetworkManager; -@Implementation(method="associateIP", manager=NetworkManager.class, description="Acquires and associates a public IP to an account.") +@Implementation(description="Acquires and associates a public IP to an account.") public class AssociateIPAddrCmd extends BaseCmd { public static final Logger s_logger = Logger.getLogger(AssociateIPAddrCmd.class.getName()); private static final String s_name = "associateipaddressresponse"; @@ -84,22 +83,15 @@ public class AssociateIPAddrCmd extends BaseCmd { return "addressinfo"; } - @SuppressWarnings("unchecked") - public IPAddressResponse getResponse() { - IPAddressVO ipAddress = (IPAddressVO)getResponseObject(); - IPAddressResponse ipResponse = ApiResponseHelper.createIPAddressResponse(ipAddress); - ipResponse.setResponseName(getName()); - return ipResponse; - } - @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ try { IPAddressVO result = _networkMgr.associateIP(this); - return result; + IPAddressResponse ipResponse = ApiResponseHelper.createIPAddressResponse(result); + ipResponse.setResponseName(getName()); + this.setResponseObject(ipResponse); } catch (ResourceAllocationException ex) { throw new ServerApiException(BaseCmd.INTERNAL_ERROR, ex.getMessage()); } - } } diff --git a/server/src/com/cloud/api/commands/AttachIsoCmd.java b/server/src/com/cloud/api/commands/AttachIsoCmd.java index 86fa23cde38..0e97d825bce 100755 --- a/server/src/com/cloud/api/commands/AttachIsoCmd.java +++ b/server/src/com/cloud/api/commands/AttachIsoCmd.java @@ -34,11 +34,10 @@ import com.cloud.exception.InsufficientCapacityException; import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.PermissionDeniedException; import com.cloud.storage.VMTemplateVO; -import com.cloud.template.TemplateManager; import com.cloud.user.Account; import com.cloud.vm.VMInstanceVO; -@Implementation(method="attachIso", manager=TemplateManager.class, description="Attaches an ISO to a virtual machine.") +@Implementation(description="Attaches an ISO to a virtual machine.") public class AttachIsoCmd extends BaseAsyncCmd { public static final Logger s_logger = Logger.getLogger(AttachIsoCmd.class.getName()); @@ -95,12 +94,11 @@ public class AttachIsoCmd extends BaseAsyncCmd { public String getEventDescription() { return "attaching ISO: " + getId() + " to vm: " + getVirtualMachineId(); } - - @Override @SuppressWarnings("unchecked") - public IsoVmResponse getResponse() { - Boolean responseObject = (Boolean)getResponseObject(); - - if (responseObject != null && responseObject != false) { + + @Override + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + boolean result = _templateMgr.attachIso(this); + if (result) { IsoVmResponse response = new IsoVmResponse(); VMTemplateVO iso = ApiDBUtils.findTemplateById(id); VMInstanceVO vmInstance = ApiDBUtils.findVMInstanceById(virtualMachineId); @@ -115,15 +113,10 @@ public class AttachIsoCmd extends BaseAsyncCmd { response.setVirtualMachineState(vmInstance.getState().toString()); response.setResponseName(getName()); response.setObjectName("iso"); - return response; + + this.setResponseObject(response); } else { throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to attach iso"); } } - - @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ - boolean result = _templateMgr.attachIso(this); - return result; - } } diff --git a/server/src/com/cloud/api/commands/AttachVolumeCmd.java b/server/src/com/cloud/api/commands/AttachVolumeCmd.java index 6773f7e733f..20182fd87b5 100755 --- a/server/src/com/cloud/api/commands/AttachVolumeCmd.java +++ b/server/src/com/cloud/api/commands/AttachVolumeCmd.java @@ -37,9 +37,8 @@ import com.cloud.exception.PermissionDeniedException; import com.cloud.storage.Volume; import com.cloud.storage.VolumeVO; import com.cloud.user.Account; -import com.cloud.vm.UserVmManager; -@Implementation(method="attachVolumeToVM", manager=UserVmManager.class, description="Attaches a disk volume to a virtual machine.") +@Implementation(description="Attaches a disk volume to a virtual machine.") public class AttachVolumeCmd extends BaseAsyncCmd { public static final Logger s_logger = Logger.getLogger(AttachVolumeCmd.class.getName()); private static final String s_name = "attachvolumeresponse"; @@ -112,18 +111,12 @@ public class AttachVolumeCmd extends BaseAsyncCmd { public String getEventDescription() { return "attaching volume: " + getId() + " to vm: " + getVirtualMachineId(); } - - @Override @SuppressWarnings("unchecked") - public VolumeResponse getResponse() { - VolumeVO volume = (VolumeVO)getResponseObject(); - VolumeResponse response = ApiResponseHelper.createVolumeResponse(volume); - response.setResponseName(getName()); - return response; - } @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ Volume result = _userVmService.attachVolumeToVM(this); - return result; + VolumeResponse response = ApiResponseHelper.createVolumeResponse((VolumeVO)result); + response.setResponseName(getName()); + this.setResponseObject(response); } } diff --git a/server/src/com/cloud/api/commands/AuthorizeNetworkGroupIngressCmd.java b/server/src/com/cloud/api/commands/AuthorizeNetworkGroupIngressCmd.java index 5ba1d2c184f..5cffb4cf69a 100644 --- a/server/src/com/cloud/api/commands/AuthorizeNetworkGroupIngressCmd.java +++ b/server/src/com/cloud/api/commands/AuthorizeNetworkGroupIngressCmd.java @@ -42,12 +42,12 @@ import com.cloud.exception.InsufficientCapacityException; import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.PermissionDeniedException; import com.cloud.network.security.IngressRuleVO; -import com.cloud.network.security.NetworkGroupManager; import com.cloud.user.Account; import com.cloud.user.UserContext; import com.cloud.utils.StringUtils; -@Implementation(method="authorizeNetworkGroupIngress", manager=NetworkGroupManager.class) @SuppressWarnings("rawtypes") +//FIXME - add description +@Implementation() @SuppressWarnings("rawtypes") public class AuthorizeNetworkGroupIngressCmd extends BaseAsyncCmd { public static final Logger s_logger = Logger.getLogger(AuthorizeNetworkGroupIngressCmd.class.getName()); @@ -210,12 +210,11 @@ public class AuthorizeNetworkGroupIngressCmd extends BaseAsyncCmd { return "authorizing ingress to group: " + getNetworkGroupName() + " to " + sb.toString(); } - - @Override @SuppressWarnings("unchecked") - public ListResponse getResponse() { - List ingressRules = (List)getResponseObject(); - - ListResponse response = new ListResponse(); + + @Override + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + List ingressRules = _networkGroupMgr.authorizeNetworkGroupIngress(this); + ListResponse response = new ListResponse(); if ((ingressRules != null) && !ingressRules.isEmpty()) { List responses = new ArrayList(); for (IngressRuleVO ingressRule : ingressRules) { @@ -243,16 +242,7 @@ public class AuthorizeNetworkGroupIngressCmd extends BaseAsyncCmd { } response.setResponses(responses); } - response.setResponseName("securitygroupingressrule"); - return response; - } - - @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ - List result = _networkGroupMgr.authorizeNetworkGroupIngress(this); - return result; + this.setResponseObject(response); } - - } diff --git a/server/src/com/cloud/api/commands/CancelMaintenanceCmd.java b/server/src/com/cloud/api/commands/CancelMaintenanceCmd.java index 56fd1a26079..d2b33e45ef0 100644 --- a/server/src/com/cloud/api/commands/CancelMaintenanceCmd.java +++ b/server/src/com/cloud/api/commands/CancelMaintenanceCmd.java @@ -20,7 +20,6 @@ package com.cloud.api.commands; import org.apache.log4j.Logger; -import com.cloud.agent.AgentManager; import com.cloud.api.ApiConstants; import com.cloud.api.ApiResponseHelper; import com.cloud.api.BaseAsyncCmd; @@ -38,7 +37,7 @@ import com.cloud.host.HostVO; import com.cloud.user.Account; import com.cloud.user.UserContext; -@Implementation(method="cancelMaintenance", manager=AgentManager.class, description="Cancels host maintenance.") +@Implementation(description="Cancels host maintenance.") public class CancelMaintenanceCmd extends BaseAsyncCmd { public static final Logger s_logger = Logger.getLogger(CancelMaintenanceCmd.class.getName()); @@ -93,18 +92,12 @@ public class CancelMaintenanceCmd extends BaseAsyncCmd { public String getEventDescription() { return "canceling maintenance for host: " + getId(); } - - @Override @SuppressWarnings("unchecked") - public HostResponse getResponse() { - HostVO host = (HostVO)getResponseObject(); - HostResponse response = ApiResponseHelper.createHostResponse(host); - response.setResponseName(getName()); - return response; - } @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ HostVO result = _agentMgr.cancelMaintenance(this); - return result; + HostResponse response = ApiResponseHelper.createHostResponse(result); + response.setResponseName(getName()); + this.setResponseObject(response); } } diff --git a/server/src/com/cloud/api/commands/CancelPrimaryStorageMaintenanceCmd.java b/server/src/com/cloud/api/commands/CancelPrimaryStorageMaintenanceCmd.java index c72806ae932..984c08c5c44 100644 --- a/server/src/com/cloud/api/commands/CancelPrimaryStorageMaintenanceCmd.java +++ b/server/src/com/cloud/api/commands/CancelPrimaryStorageMaintenanceCmd.java @@ -33,12 +33,11 @@ import com.cloud.exception.InsufficientAddressCapacityException; import com.cloud.exception.InsufficientCapacityException; import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.PermissionDeniedException; -import com.cloud.storage.StorageManager; import com.cloud.storage.StoragePoolVO; import com.cloud.user.Account; import com.cloud.user.UserContext; -@Implementation(method="cancelPrimaryStorageForMaintenance", manager=StorageManager.class) +@Implementation(description="Cancels maintenance for primary storage") public class CancelPrimaryStorageMaintenanceCmd extends BaseAsyncCmd { public static final Logger s_logger = Logger.getLogger(CancelPrimaryStorageMaintenanceCmd.class.getName()); @@ -93,18 +92,12 @@ public class CancelPrimaryStorageMaintenanceCmd extends BaseAsyncCmd { public String getEventDescription() { return "canceling maintenance for primary storage pool: " + getId(); } - - @Override @SuppressWarnings("unchecked") - public StoragePoolResponse getResponse() { - StoragePoolVO primaryStorage = (StoragePoolVO)getResponseObject(); - StoragePoolResponse response = ApiResponseHelper.createStoragePoolResponse(primaryStorage); - response.setResponseName(getName()); - return response; - } @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ StoragePoolVO result = _storageMgr.cancelPrimaryStorageForMaintenance(this); - return result; + StoragePoolResponse response = ApiResponseHelper.createStoragePoolResponse(result); + response.setResponseName(getName()); + this.setResponseObject(response); } } diff --git a/server/src/com/cloud/api/commands/CopyIsoCmd.java b/server/src/com/cloud/api/commands/CopyIsoCmd.java index ad3dff6b2e5..ddf5e0952d2 100644 --- a/server/src/com/cloud/api/commands/CopyIsoCmd.java +++ b/server/src/com/cloud/api/commands/CopyIsoCmd.java @@ -39,11 +39,10 @@ import com.cloud.storage.GuestOS; import com.cloud.storage.VMTemplateHostVO; import com.cloud.storage.VMTemplateStorageResourceAssoc.Status; import com.cloud.storage.VMTemplateVO; -import com.cloud.template.TemplateManager; import com.cloud.user.Account; import com.cloud.user.UserContext; -@Implementation(method="copyIso", manager=TemplateManager.class, description="Copies an ISO file.") +@Implementation(description="Copies an ISO file.") public class CopyIsoCmd extends BaseAsyncCmd { public static final Logger s_logger = Logger.getLogger(CopyIsoCmd.class.getName()); private static final String s_name = "copyisoresponse"; @@ -110,90 +109,82 @@ public class CopyIsoCmd extends BaseAsyncCmd { public String getEventDescription() { return "copying ISO: " + getId() + " from zone: " + getSourceZoneId() + " to zone: " + getDestinationZoneId(); } - - @Override @SuppressWarnings("unchecked") - public TemplateResponse getResponse() { - TemplateResponse isoResponse = new TemplateResponse(); - VMTemplateVO iso = (VMTemplateVO)getResponseObject(); - - if (iso != null) { - isoResponse.setId(iso.getId()); - isoResponse.setName(iso.getName()); - isoResponse.setDisplayText(iso.getDisplayText()); - isoResponse.setPublic(iso.isPublicTemplate()); - isoResponse.setBootable(iso.isBootable()); - isoResponse.setFeatured(iso.isFeatured()); - isoResponse.setCrossZones(iso.isCrossZones()); - isoResponse.setCreated(iso.getCreated()); - isoResponse.setZoneId(destZoneId); - isoResponse.setZoneName(ApiDBUtils.findZoneById(destZoneId).getName()); - - GuestOS os = ApiDBUtils.findGuestOSById(iso.getGuestOSId()); - if (os != null) { - isoResponse.setOsTypeId(os.getId()); - isoResponse.setOsTypeName(os.getDisplayName()); - } else { - isoResponse.setOsTypeId(-1L); - isoResponse.setOsTypeName(""); - } - - // add account ID and name - Account owner = ApiDBUtils.findAccountById(iso.getAccountId()); - if (owner != null) { - isoResponse.setAccount(owner.getAccountName()); - isoResponse.setDomainId(owner.getDomainId()); - isoResponse.setDomainName(ApiDBUtils.findDomainById(owner.getDomainId()).getName()); - } - - //set status - Account account = (Account)UserContext.current().getAccount(); - boolean isAdmin = false; - if ((account == null) || (account.getType() == Account.ACCOUNT_TYPE_ADMIN) || (account.getType() == Account.ACCOUNT_TYPE_DOMAIN_ADMIN)) { - isAdmin = true; - } - - //Return download status for admin users - VMTemplateHostVO templateHostRef = ApiDBUtils.findTemplateHostRef(iso.getId(), destZoneId); - - if (isAdmin || iso.getAccountId() == account.getId()) { - if (templateHostRef.getDownloadState()!=Status.DOWNLOADED) { - String templateStatus = "Processing"; - if (templateHostRef.getDownloadState() == VMTemplateHostVO.Status.DOWNLOAD_IN_PROGRESS) { - if (templateHostRef.getDownloadPercent() == 100) { - templateStatus = "Installing Template"; - } else { - templateStatus = templateHostRef.getDownloadPercent() + "% Downloaded"; - } - } else { - templateStatus = templateHostRef.getErrorString(); - } - isoResponse.setStatus(templateStatus); - } else if (templateHostRef.getDownloadState() == VMTemplateHostVO.Status.DOWNLOADED) { - isoResponse.setStatus("Download Complete"); - } else { - isoResponse.setStatus("Successfully Installed"); - } - } - - isoResponse.setReady(templateHostRef.getDownloadState() == VMTemplateHostVO.Status.DOWNLOADED); - - } else { - throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to copy iso"); - } - - isoResponse.setResponseName(getName()); - isoResponse.setObjectName("iso"); - return isoResponse; - } @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ try { - VMTemplateVO result = _templateMgr.copyIso(this); - return result; + VMTemplateVO iso = _templateMgr.copyIso(this); + TemplateResponse isoResponse = new TemplateResponse(); + if (iso != null) { + isoResponse.setId(iso.getId()); + isoResponse.setName(iso.getName()); + isoResponse.setDisplayText(iso.getDisplayText()); + isoResponse.setPublic(iso.isPublicTemplate()); + isoResponse.setBootable(iso.isBootable()); + isoResponse.setFeatured(iso.isFeatured()); + isoResponse.setCrossZones(iso.isCrossZones()); + isoResponse.setCreated(iso.getCreated()); + isoResponse.setZoneId(destZoneId); + isoResponse.setZoneName(ApiDBUtils.findZoneById(destZoneId).getName()); + + GuestOS os = ApiDBUtils.findGuestOSById(iso.getGuestOSId()); + if (os != null) { + isoResponse.setOsTypeId(os.getId()); + isoResponse.setOsTypeName(os.getDisplayName()); + } else { + isoResponse.setOsTypeId(-1L); + isoResponse.setOsTypeName(""); + } + + // add account ID and name + Account owner = ApiDBUtils.findAccountById(iso.getAccountId()); + if (owner != null) { + isoResponse.setAccount(owner.getAccountName()); + isoResponse.setDomainId(owner.getDomainId()); + isoResponse.setDomainName(ApiDBUtils.findDomainById(owner.getDomainId()).getName()); + } + + //set status + Account account = (Account)UserContext.current().getAccount(); + boolean isAdmin = false; + if ((account == null) || (account.getType() == Account.ACCOUNT_TYPE_ADMIN) || (account.getType() == Account.ACCOUNT_TYPE_DOMAIN_ADMIN)) { + isAdmin = true; + } + + //Return download status for admin users + VMTemplateHostVO templateHostRef = ApiDBUtils.findTemplateHostRef(iso.getId(), destZoneId); + + if (isAdmin || iso.getAccountId() == account.getId()) { + if (templateHostRef.getDownloadState()!=Status.DOWNLOADED) { + String templateStatus = "Processing"; + if (templateHostRef.getDownloadState() == VMTemplateHostVO.Status.DOWNLOAD_IN_PROGRESS) { + if (templateHostRef.getDownloadPercent() == 100) { + templateStatus = "Installing Template"; + } else { + templateStatus = templateHostRef.getDownloadPercent() + "% Downloaded"; + } + } else { + templateStatus = templateHostRef.getErrorString(); + } + isoResponse.setStatus(templateStatus); + } else if (templateHostRef.getDownloadState() == VMTemplateHostVO.Status.DOWNLOADED) { + isoResponse.setStatus("Download Complete"); + } else { + isoResponse.setStatus("Successfully Installed"); + } + } + + isoResponse.setReady(templateHostRef.getDownloadState() == VMTemplateHostVO.Status.DOWNLOADED); + + } else { + throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to copy iso"); + } + + isoResponse.setResponseName(getName()); + isoResponse.setObjectName("iso"); + this.setResponseObject(isoResponse); } catch (StorageUnavailableException ex) { throw new ServerApiException(BaseCmd.INTERNAL_ERROR, ex.getMessage()); } } - } diff --git a/server/src/com/cloud/api/commands/CopyTemplateCmd.java b/server/src/com/cloud/api/commands/CopyTemplateCmd.java index 73a4cba6491..f6c34251d5d 100644 --- a/server/src/com/cloud/api/commands/CopyTemplateCmd.java +++ b/server/src/com/cloud/api/commands/CopyTemplateCmd.java @@ -39,11 +39,10 @@ import com.cloud.storage.GuestOS; import com.cloud.storage.VMTemplateHostVO; import com.cloud.storage.VMTemplateStorageResourceAssoc.Status; import com.cloud.storage.VMTemplateVO; -import com.cloud.template.TemplateManager; import com.cloud.user.Account; import com.cloud.user.UserContext; -@Implementation(method="copyTemplate", manager=TemplateManager.class, description="Copies a template from one zone to another.") +@Implementation(description="Copies a template from one zone to another.") public class CopyTemplateCmd extends BaseAsyncCmd { public static final Logger s_logger = Logger.getLogger(CopyTemplateCmd.class.getName()); private static final String s_name = "copytemplateresponse"; @@ -112,92 +111,85 @@ public class CopyTemplateCmd extends BaseAsyncCmd { return "copying template: " + getId() + " from zone: " + getSourceZoneId() + " to zone: " + getDestinationZoneId(); } - @Override @SuppressWarnings("unchecked") - public TemplateResponse getResponse() { - TemplateResponse templateResponse = new TemplateResponse(); - VMTemplateVO template = (VMTemplateVO)getResponseObject(); - - if (template != null) { - templateResponse.setId(template.getId()); - templateResponse.setName(template.getName()); - templateResponse.setDisplayText(template.getDisplayText()); - templateResponse.setPublic(template.isPublicTemplate()); - templateResponse.setBootable(template.isBootable()); - templateResponse.setFeatured(template.isFeatured()); - templateResponse.setCrossZones(template.isCrossZones()); - templateResponse.setCreated(template.getCreated()); - templateResponse.setFormat(template.getFormat()); - templateResponse.setPasswordEnabled(template.getEnablePassword()); - templateResponse.setZoneId(destZoneId); - templateResponse.setZoneName(ApiDBUtils.findZoneById(destZoneId).getName()); - - GuestOS os = ApiDBUtils.findGuestOSById(template.getGuestOSId()); - if (os != null) { - templateResponse.setOsTypeId(os.getId()); - templateResponse.setOsTypeName(os.getDisplayName()); - } else { - templateResponse.setOsTypeId(-1L); - templateResponse.setOsTypeName(""); - } - - // add account ID and name - Account owner = ApiDBUtils.findAccountById(template.getAccountId()); - if (owner != null) { - templateResponse.setAccount(owner.getAccountName()); - templateResponse.setDomainId(owner.getDomainId()); - templateResponse.setDomainName(ApiDBUtils.findDomainById(owner.getDomainId()).getName()); - } - - //set status - Account account = (Account)UserContext.current().getAccount(); - boolean isAdmin = false; - if ((account == null) || (account.getType() == Account.ACCOUNT_TYPE_ADMIN) || (account.getType() == Account.ACCOUNT_TYPE_DOMAIN_ADMIN)) { - isAdmin = true; - } - - //Return download status for admin users - VMTemplateHostVO templateHostRef = ApiDBUtils.findTemplateHostRef(template.getId(), destZoneId); - - if (isAdmin || template.getAccountId() == account.getId()) { - if (templateHostRef.getDownloadState()!=Status.DOWNLOADED) { - String templateStatus = "Processing"; - if (templateHostRef.getDownloadState() == VMTemplateHostVO.Status.DOWNLOAD_IN_PROGRESS) { - if (templateHostRef.getDownloadPercent() == 100) { - templateStatus = "Installing Template"; - } else { - templateStatus = templateHostRef.getDownloadPercent() + "% Downloaded"; - } - } else { - templateStatus = templateHostRef.getErrorString(); - } - templateResponse.setStatus(templateStatus); - } else if (templateHostRef.getDownloadState() == VMTemplateHostVO.Status.DOWNLOADED) { - templateResponse.setStatus("Download Complete"); - } else { - templateResponse.setStatus("Successfully Installed"); - } - } - - templateResponse.setReady(templateHostRef != null && templateHostRef.getDownloadState() == VMTemplateHostVO.Status.DOWNLOADED); - - } else { - throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to copy template"); - } - - templateResponse.setResponseName(getName()); - templateResponse.setObjectName("template"); - return templateResponse; - } - @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ try { - VMTemplateVO result = _templateMgr.copyTemplate(this); - return result; + VMTemplateVO template = _templateMgr.copyTemplate(this); + TemplateResponse templateResponse = new TemplateResponse(); + if (template != null) { + templateResponse.setId(template.getId()); + templateResponse.setName(template.getName()); + templateResponse.setDisplayText(template.getDisplayText()); + templateResponse.setPublic(template.isPublicTemplate()); + templateResponse.setBootable(template.isBootable()); + templateResponse.setFeatured(template.isFeatured()); + templateResponse.setCrossZones(template.isCrossZones()); + templateResponse.setCreated(template.getCreated()); + templateResponse.setFormat(template.getFormat()); + templateResponse.setPasswordEnabled(template.getEnablePassword()); + templateResponse.setZoneId(destZoneId); + templateResponse.setZoneName(ApiDBUtils.findZoneById(destZoneId).getName()); + + GuestOS os = ApiDBUtils.findGuestOSById(template.getGuestOSId()); + if (os != null) { + templateResponse.setOsTypeId(os.getId()); + templateResponse.setOsTypeName(os.getDisplayName()); + } else { + templateResponse.setOsTypeId(-1L); + templateResponse.setOsTypeName(""); + } + + // add account ID and name + Account owner = ApiDBUtils.findAccountById(template.getAccountId()); + if (owner != null) { + templateResponse.setAccount(owner.getAccountName()); + templateResponse.setDomainId(owner.getDomainId()); + templateResponse.setDomainName(ApiDBUtils.findDomainById(owner.getDomainId()).getName()); + } + + //set status + Account account = (Account)UserContext.current().getAccount(); + boolean isAdmin = false; + if ((account == null) || (account.getType() == Account.ACCOUNT_TYPE_ADMIN) || (account.getType() == Account.ACCOUNT_TYPE_DOMAIN_ADMIN)) { + isAdmin = true; + } + + //Return download status for admin users + VMTemplateHostVO templateHostRef = ApiDBUtils.findTemplateHostRef(template.getId(), destZoneId); + + if (isAdmin || template.getAccountId() == account.getId()) { + if (templateHostRef.getDownloadState()!=Status.DOWNLOADED) { + String templateStatus = "Processing"; + if (templateHostRef.getDownloadState() == VMTemplateHostVO.Status.DOWNLOAD_IN_PROGRESS) { + if (templateHostRef.getDownloadPercent() == 100) { + templateStatus = "Installing Template"; + } else { + templateStatus = templateHostRef.getDownloadPercent() + "% Downloaded"; + } + } else { + templateStatus = templateHostRef.getErrorString(); + } + templateResponse.setStatus(templateStatus); + } else if (templateHostRef.getDownloadState() == VMTemplateHostVO.Status.DOWNLOADED) { + templateResponse.setStatus("Download Complete"); + } else { + templateResponse.setStatus("Successfully Installed"); + } + } + + templateResponse.setReady(templateHostRef != null && templateHostRef.getDownloadState() == VMTemplateHostVO.Status.DOWNLOADED); + + } else { + throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to copy template"); + } + + templateResponse.setResponseName(getName()); + templateResponse.setObjectName("template"); + + this.setResponseObject(templateResponse); } catch (StorageUnavailableException ex) { throw new ServerApiException(BaseCmd.INTERNAL_ERROR, ex.getMessage()); } } - } diff --git a/server/src/com/cloud/api/commands/CreateCfgCmd.java b/server/src/com/cloud/api/commands/CreateCfgCmd.java index 01b17c05180..912996f917c 100644 --- a/server/src/com/cloud/api/commands/CreateCfgCmd.java +++ b/server/src/com/cloud/api/commands/CreateCfgCmd.java @@ -27,7 +27,6 @@ import com.cloud.api.Parameter; import com.cloud.api.ServerApiException; import com.cloud.api.response.ConfigurationResponse; import com.cloud.configuration.Configuration; -import com.cloud.configuration.ConfigurationManager; import com.cloud.configuration.ConfigurationVO; import com.cloud.exception.ConcurrentOperationException; import com.cloud.exception.InsufficientAddressCapacityException; @@ -35,7 +34,7 @@ import com.cloud.exception.InsufficientCapacityException; import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.PermissionDeniedException; -@Implementation(method="addConfig", manager=ConfigurationManager.class) +@Implementation(description="Adds configuration value") public class CreateCfgCmd extends BaseCmd { public static final Logger s_logger = Logger.getLogger(CreateCfgCmd.class.getName()); private static final String s_name = "addconfigresponse"; @@ -102,21 +101,15 @@ public class CreateCfgCmd extends BaseCmd { return s_name; } - @Override @SuppressWarnings("unchecked") - public ConfigurationResponse getResponse() { - ConfigurationVO cfg = (ConfigurationVO)getResponseObject(); + @Override + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + Configuration cfg = _configService.addConfig(this); if (cfg != null) { - ConfigurationResponse response = ApiResponseHelper.createConfigurationResponse(cfg); + ConfigurationResponse response = ApiResponseHelper.createConfigurationResponse((ConfigurationVO)cfg); response.setResponseName(getName()); - return response; + this.setResponseObject(response); } else { throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to add config"); } } - - @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ - Configuration result = _configService.addConfig(this); - return result; - } } diff --git a/server/src/com/cloud/api/commands/CreateDiskOfferingCmd.java b/server/src/com/cloud/api/commands/CreateDiskOfferingCmd.java index 5c6d32e1beb..ed05b4c6e8e 100755 --- a/server/src/com/cloud/api/commands/CreateDiskOfferingCmd.java +++ b/server/src/com/cloud/api/commands/CreateDiskOfferingCmd.java @@ -26,7 +26,6 @@ import com.cloud.api.Implementation; import com.cloud.api.Parameter; import com.cloud.api.ServerApiException; import com.cloud.api.response.DiskOfferingResponse; -import com.cloud.configuration.ConfigurationManager; import com.cloud.exception.ConcurrentOperationException; import com.cloud.exception.InsufficientAddressCapacityException; import com.cloud.exception.InsufficientCapacityException; @@ -35,7 +34,7 @@ import com.cloud.exception.PermissionDeniedException; import com.cloud.offering.DiskOffering; import com.cloud.storage.DiskOfferingVO; -@Implementation(method="createDiskOffering", manager=ConfigurationManager.class, description="Creates a disk offering.") +@Implementation(description="Creates a disk offering.") public class CreateDiskOfferingCmd extends BaseCmd { public static final Logger s_logger = Logger.getLogger(CreateDiskOfferingCmd.class.getName()); @@ -90,23 +89,17 @@ public class CreateDiskOfferingCmd extends BaseCmd { @Override public String getName() { return s_name; - } - - @Override @SuppressWarnings("unchecked") - public DiskOfferingResponse getResponse() { - DiskOfferingVO offering = (DiskOfferingVO)getResponseObject(); + } + + @Override + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + DiskOffering offering = _configService.createDiskOffering(this); if (offering != null) { - DiskOfferingResponse response = ApiResponseHelper.createDiskOfferingResponse(offering); + DiskOfferingResponse response = ApiResponseHelper.createDiskOfferingResponse((DiskOfferingVO)offering); response.setResponseName(getName()); - return response; + this.setResponseObject(response); } else { throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to create disk offering"); } } - - @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ - DiskOffering result = _configService.createDiskOffering(this); - return result; - } } diff --git a/server/src/com/cloud/api/commands/CreateDomainCmd.java b/server/src/com/cloud/api/commands/CreateDomainCmd.java index 9dfb8bf3bcc..1477dc2d607 100644 --- a/server/src/com/cloud/api/commands/CreateDomainCmd.java +++ b/server/src/com/cloud/api/commands/CreateDomainCmd.java @@ -33,7 +33,7 @@ import com.cloud.exception.InsufficientCapacityException; import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.PermissionDeniedException; -@Implementation(method="createDomain", description="Creates a domain") +@Implementation(description="Creates a domain") public class CreateDomainCmd extends BaseCmd { public static final Logger s_logger = Logger.getLogger(CreateDomainCmd.class.getName()); @@ -70,24 +70,17 @@ public class CreateDomainCmd extends BaseCmd { @Override public String getName() { return s_name; - } - - @Override @SuppressWarnings("unchecked") - public DomainResponse getResponse() { - DomainVO domain = (DomainVO)getResponseObject(); + } + + @Override + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + DomainVO domain = _mgr.createDomain(this); if (domain != null) { DomainResponse response = ApiResponseHelper.createDomainResponse(domain); response.setResponseName(getName()); - return response; + this.setResponseObject(response); } else { throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to create domain"); } } - - @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ - DomainVO domain = _mgr.createDomain(this); - return domain; - //set response object here; change return type to void - } } diff --git a/server/src/com/cloud/api/commands/CreateIPForwardingRuleCmd.java b/server/src/com/cloud/api/commands/CreateIPForwardingRuleCmd.java index d8acaaad68e..67c3dd603b5 100644 --- a/server/src/com/cloud/api/commands/CreateIPForwardingRuleCmd.java +++ b/server/src/com/cloud/api/commands/CreateIPForwardingRuleCmd.java @@ -34,9 +34,8 @@ import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.NetworkRuleConflictException; import com.cloud.exception.PermissionDeniedException; import com.cloud.network.FirewallRuleVO; -import com.cloud.network.NetworkManager; -@Implementation(method="createPortForwardingRule", manager=NetworkManager.class, description="Creates a port forwarding rule") +@Implementation(description="Creates a port forwarding rule") public class CreateIPForwardingRuleCmd extends BaseCmd { public static final Logger s_logger = Logger.getLogger(CreateIPForwardingRuleCmd.class.getName()); @@ -94,25 +93,19 @@ public class CreateIPForwardingRuleCmd extends BaseCmd { @Override public String getName() { return s_name; - } - - @Override @SuppressWarnings("unchecked") - public FirewallRuleResponse getResponse() { - FirewallRuleVO fwRule = (FirewallRuleVO)getResponseObject(); - if (fwRule != null) { - FirewallRuleResponse fwResponse = ApiResponseHelper.createFirewallRuleResponse(fwRule); - fwResponse.setResponseName(getName()); - return fwResponse; - } - - throw new ServerApiException(NET_CREATE_IPFW_RULE_ERROR, "An existing rule for ipAddress / port / protocol of " + ipAddress + " / " + publicPort + " / " + protocol + " exits."); } @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ try { FirewallRuleVO result = _networkMgr.createPortForwardingRule(this); - return result; + if (result != null) { + FirewallRuleResponse fwResponse = ApiResponseHelper.createFirewallRuleResponse(result); + fwResponse.setResponseName(getName()); + this.setResponseObject(fwResponse); + } else { + throw new ServerApiException(NET_CREATE_IPFW_RULE_ERROR, "An existing rule for ipAddress / port / protocol of " + ipAddress + " / " + publicPort + " / " + protocol + " exits."); + } } catch (NetworkRuleConflictException ex) { throw new ServerApiException(BaseCmd.INTERNAL_ERROR, ex.getMessage()); } diff --git a/server/src/com/cloud/api/commands/CreateLoadBalancerRuleCmd.java b/server/src/com/cloud/api/commands/CreateLoadBalancerRuleCmd.java index 71ed3ffb758..9a507bb3938 100644 --- a/server/src/com/cloud/api/commands/CreateLoadBalancerRuleCmd.java +++ b/server/src/com/cloud/api/commands/CreateLoadBalancerRuleCmd.java @@ -33,9 +33,8 @@ import com.cloud.exception.InsufficientCapacityException; import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.PermissionDeniedException; import com.cloud.network.LoadBalancerVO; -import com.cloud.network.NetworkManager; -@Implementation(method="createLoadBalancerRule", manager=NetworkManager.class, description="Creates a load balancer rule") +@Implementation(description="Creates a load balancer rule") public class CreateLoadBalancerRuleCmd extends BaseCmd { public static final Logger s_logger = Logger.getLogger(CreateLoadBalancerRuleCmd.class.getName()); @@ -100,18 +99,12 @@ public class CreateLoadBalancerRuleCmd extends BaseCmd { public String getName() { return s_name; } - - @Override @SuppressWarnings("unchecked") - public LoadBalancerResponse getResponse() { - LoadBalancerVO loadBalancer = (LoadBalancerVO)getResponseObject(); - LoadBalancerResponse response = ApiResponseHelper.createLoadBalancerResponse(loadBalancer); - response.setResponseName(getName()); - return response; - } @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ LoadBalancerVO result = _networkMgr.createLoadBalancerRule(this); - return result; + LoadBalancerResponse response = ApiResponseHelper.createLoadBalancerResponse(result); + response.setResponseName(getName()); + this.setResponseObject(response); } } diff --git a/server/src/com/cloud/api/commands/CreateNetworkGroupCmd.java b/server/src/com/cloud/api/commands/CreateNetworkGroupCmd.java index 1ebebc0cea1..ef5d64ea6df 100644 --- a/server/src/com/cloud/api/commands/CreateNetworkGroupCmd.java +++ b/server/src/com/cloud/api/commands/CreateNetworkGroupCmd.java @@ -31,10 +31,10 @@ import com.cloud.exception.InsufficientAddressCapacityException; import com.cloud.exception.InsufficientCapacityException; import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.PermissionDeniedException; -import com.cloud.network.security.NetworkGroupManager; import com.cloud.network.security.NetworkGroupVO; -@Implementation(method="createNetworkGroup", manager=NetworkGroupManager.class) +//TODO - add description to implementation +@Implementation() public class CreateNetworkGroupCmd extends BaseCmd { public static final Logger s_logger = Logger.getLogger(CreateNetworkGroupCmd.class.getName()); @@ -85,11 +85,10 @@ public class CreateNetworkGroupCmd extends BaseCmd { public String getName() { return s_name; } - - @Override @SuppressWarnings("unchecked") - public NetworkGroupResponse getResponse() { - NetworkGroupVO group = (NetworkGroupVO)getResponseObject(); - + + @Override + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + NetworkGroupVO group = _networkGroupMgr.createNetworkGroup(this); NetworkGroupResponse response = new NetworkGroupResponse(); response.setAccountName(group.getAccountName()); response.setDescription(group.getDescription()); @@ -100,12 +99,6 @@ public class CreateNetworkGroupCmd extends BaseCmd { response.setResponseName(getName()); response.setObjectName("securitygroup"); - return response; - } - - @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ - NetworkGroupVO result = _networkGroupMgr.createNetworkGroup(this); - return result; + this.setResponseObject(response); } } diff --git a/server/src/com/cloud/api/commands/CreatePodCmd.java b/server/src/com/cloud/api/commands/CreatePodCmd.java index 78968a9499b..1e75ca6b037 100644 --- a/server/src/com/cloud/api/commands/CreatePodCmd.java +++ b/server/src/com/cloud/api/commands/CreatePodCmd.java @@ -27,7 +27,6 @@ import com.cloud.api.Implementation; import com.cloud.api.Parameter; import com.cloud.api.ServerApiException; import com.cloud.api.response.PodResponse; -import com.cloud.configuration.ConfigurationManager; import com.cloud.dc.HostPodVO; import com.cloud.dc.Pod; import com.cloud.exception.ConcurrentOperationException; @@ -36,7 +35,7 @@ import com.cloud.exception.InsufficientCapacityException; import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.PermissionDeniedException; -@Implementation(method="createPod", manager=ConfigurationManager.class, description="Creates a new Pod.") +@Implementation(description="Creates a new Pod.") public class CreatePodCmd extends BaseCmd { public static final Logger s_logger = Logger.getLogger(CreatePodCmd.class.getName()); @@ -102,17 +101,11 @@ public class CreatePodCmd extends BaseCmd { return s_name; } - @Override @SuppressWarnings("unchecked") - public PodResponse getResponse() { - HostPodVO pod = (HostPodVO)getResponseObject(); - PodResponse response = ApiResponseHelper.createPodResponse(pod); - response.setResponseName(getName()); - return response; - } - @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ Pod result = _configService.createPod(this); - return result; + PodResponse response = ApiResponseHelper.createPodResponse((HostPodVO)result); + response.setResponseName(getName()); + this.setResponseObject(response); } } diff --git a/server/src/com/cloud/api/commands/CreateRemoteAccessVpnCmd.java b/server/src/com/cloud/api/commands/CreateRemoteAccessVpnCmd.java index 67f766947a3..7b75f55b3b4 100644 --- a/server/src/com/cloud/api/commands/CreateRemoteAccessVpnCmd.java +++ b/server/src/com/cloud/api/commands/CreateRemoteAccessVpnCmd.java @@ -34,12 +34,11 @@ import com.cloud.exception.InsufficientCapacityException; import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.PermissionDeniedException; import com.cloud.exception.ResourceUnavailableException; -import com.cloud.network.NetworkManager; import com.cloud.network.RemoteAccessVpnVO; import com.cloud.user.Account; import com.cloud.user.UserContext; -@Implementation(createMethod="createRemoteAccessVpn", method="startRemoteAccessVpn", manager=NetworkManager.class, description="Creates a l2tp/ipsec remote access vpn") +@Implementation(description="Creates a l2tp/ipsec remote access vpn") public class CreateRemoteAccessVpnCmd extends BaseAsyncCreateCmd { public static final Logger s_logger = Logger.getLogger(CreateRemoteAccessVpnCmd.class.getName()); @@ -108,23 +107,6 @@ public class CreateRemoteAccessVpnCmd extends BaseAsyncCreateCmd { return s_name; } - @Override @SuppressWarnings("unchecked") - public RemoteAccessVpnResponse getResponse() { - RemoteAccessVpnVO responseObj = (RemoteAccessVpnVO)getResponseObject(); - - RemoteAccessVpnResponse response = new RemoteAccessVpnResponse(); - response.setId(responseObj.getId()); - response.setPublicIp(responseObj.getVpnServerAddress()); - response.setIpRange(responseObj.getIpRange()); - response.setAccountName(responseObj.getAccountName()); - response.setDomainId(responseObj.getDomainId()); - response.setDomainName(ApiDBUtils.findDomainById(responseObj.getDomainId()).getName()); - response.setObjectName("remoteaccessvpn"); - response.setResponseName(getName()); - response.setPresharedKey(responseObj.getIpsecPresharedKey()); - return response; - } - @Override public long getAccountId() { Account account = (Account)UserContext.current().getAccount(); @@ -163,13 +145,22 @@ public class CreateRemoteAccessVpnCmd extends BaseAsyncCreateCmd { } @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ try { RemoteAccessVpnVO result = _networkMgr.startRemoteAccessVpn(this); - return result; + RemoteAccessVpnResponse response = new RemoteAccessVpnResponse(); + response.setId(result.getId()); + response.setPublicIp(result.getVpnServerAddress()); + response.setIpRange(result.getIpRange()); + response.setAccountName(result.getAccountName()); + response.setDomainId(result.getDomainId()); + response.setDomainName(ApiDBUtils.findDomainById(result.getDomainId()).getName()); + response.setObjectName("remoteaccessvpn"); + response.setResponseName(getName()); + response.setPresharedKey(result.getIpsecPresharedKey()); + this.setResponseObject(response); } catch (ResourceUnavailableException ex) { throw new ServerApiException(BaseCmd.INTERNAL_ERROR, ex.getMessage()); } - } - + } } diff --git a/server/src/com/cloud/api/commands/CreateServiceOfferingCmd.java b/server/src/com/cloud/api/commands/CreateServiceOfferingCmd.java index c448859f4fd..66f3645884b 100644 --- a/server/src/com/cloud/api/commands/CreateServiceOfferingCmd.java +++ b/server/src/com/cloud/api/commands/CreateServiceOfferingCmd.java @@ -27,7 +27,6 @@ import com.cloud.api.Implementation; import com.cloud.api.Parameter; import com.cloud.api.ServerApiException; import com.cloud.api.response.ServiceOfferingResponse; -import com.cloud.configuration.ConfigurationManager; import com.cloud.exception.ConcurrentOperationException; import com.cloud.exception.InsufficientAddressCapacityException; import com.cloud.exception.InsufficientCapacityException; @@ -36,7 +35,7 @@ import com.cloud.exception.PermissionDeniedException; import com.cloud.offering.ServiceOffering; import com.cloud.service.ServiceOfferingVO; -@Implementation(method="createServiceOffering", manager=ConfigurationManager.class, description="Creates a service offering.") +@Implementation(description="Creates a service offering.") public class CreateServiceOfferingCmd extends BaseCmd { public static final Logger s_logger = Logger.getLogger(CreateServiceOfferingCmd.class.getName()); private static final String _name = "createserviceofferingresponse"; @@ -121,17 +120,11 @@ public class CreateServiceOfferingCmd extends BaseCmd { return _name; } - @Override @SuppressWarnings("unchecked") - public ServiceOfferingResponse getResponse() { - ServiceOfferingVO offering = (ServiceOfferingVO)getResponseObject(); - ServiceOfferingResponse response = ApiResponseHelper.createServiceOfferingResponse(offering); - response.setResponseName(getName()); - return response; - } - @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ ServiceOffering result = _configService.createServiceOffering(this); - return result; + ServiceOfferingResponse response = ApiResponseHelper.createServiceOfferingResponse((ServiceOfferingVO)result); + response.setResponseName(getName()); + this.setResponseObject(response); } } diff --git a/server/src/com/cloud/api/commands/CreateSnapshotCmd.java b/server/src/com/cloud/api/commands/CreateSnapshotCmd.java index b04ea4fa371..b550008595a 100644 --- a/server/src/com/cloud/api/commands/CreateSnapshotCmd.java +++ b/server/src/com/cloud/api/commands/CreateSnapshotCmd.java @@ -38,10 +38,9 @@ import com.cloud.exception.PermissionDeniedException; import com.cloud.exception.ResourceAllocationException; import com.cloud.storage.SnapshotVO; import com.cloud.storage.VolumeVO; -import com.cloud.storage.snapshot.SnapshotManager; import com.cloud.user.Account; -@Implementation(method="createSnapshot", manager=SnapshotManager.class, description="Creates an instant snapshot of a volume.") +@Implementation(description="Creates an instant snapshot of a volume.") public class CreateSnapshotCmd extends BaseAsyncCmd { public static final Logger s_logger = Logger.getLogger(CreateSnapshotCmd.class.getName()); private static final String s_name = "createsnapshotresponse"; @@ -109,24 +108,16 @@ public class CreateSnapshotCmd extends BaseAsyncCmd { return "creating snapshot for volume: " + getVolumeId(); } - @Override @SuppressWarnings("unchecked") - public SnapshotResponse getResponse() { - SnapshotVO snapshot = (SnapshotVO)getResponseObject(); - - if (snapshot != null) { - SnapshotResponse response = ApiResponseHelper.createSnapshotResponse(snapshot); - response.setResponseName(getName()); - return response; - } - - throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to create snapshot due to an internal error creating snapshot for volume " + volumeId); - } - @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ try { SnapshotVO snapshot = _snapshotMgr.createSnapshot(this); - return snapshot; + if (snapshot != null) { + SnapshotResponse response = ApiResponseHelper.createSnapshotResponse(snapshot); + response.setResponseName(getName()); + this.setResponseObject(response); + } + throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to create snapshot due to an internal error creating snapshot for volume " + volumeId); } catch (ResourceAllocationException ex) { throw new ServerApiException(BaseCmd.INTERNAL_ERROR, ex.getMessage()); } diff --git a/server/src/com/cloud/api/commands/CreateSnapshotInternalCmd.java b/server/src/com/cloud/api/commands/CreateSnapshotInternalCmd.java index e21813dc579..8143477cf01 100644 --- a/server/src/com/cloud/api/commands/CreateSnapshotInternalCmd.java +++ b/server/src/com/cloud/api/commands/CreateSnapshotInternalCmd.java @@ -37,10 +37,9 @@ import com.cloud.exception.ResourceAllocationException; import com.cloud.storage.Snapshot.SnapshotType; import com.cloud.storage.SnapshotVO; import com.cloud.storage.VolumeVO; -import com.cloud.storage.snapshot.SnapshotManager; import com.cloud.user.Account; -@Implementation(method="createSnapshotInternal", manager=SnapshotManager.class, description="Creates an instant snapshot of a volume.") +@Implementation(description="Creates an instant snapshot of a volume.") public class CreateSnapshotInternalCmd extends BaseAsyncCmd { public static final Logger s_logger = Logger.getLogger(CreateSnapshotInternalCmd.class.getName()); private static final String s_name = "createsnapshotresponse"; @@ -101,38 +100,31 @@ public class CreateSnapshotInternalCmd extends BaseAsyncCmd { return "creating snapshot for volume: " + getVolumeId(); } - @Override @SuppressWarnings("unchecked") - public SnapshotResponse getResponse() { - SnapshotVO snapshot = (SnapshotVO)getResponseObject(); - - SnapshotResponse response = new SnapshotResponse(); - response.setId(snapshot.getId()); - - Account account = ApiDBUtils.findAccountById(snapshot.getAccountId()); - if (account != null) { - response.setAccountName(account.getAccountName()); - response.setDomainId(account.getDomainId()); - response.setDomainName(ApiDBUtils.findDomainById(account.getDomainId()).getName()); - } - - VolumeVO volume = ApiDBUtils.findVolumeById(snapshot.getVolumeId()); - String snapshotTypeStr = SnapshotType.values()[snapshot.getSnapshotType()].name(); - response.setSnapshotType(snapshotTypeStr); - response.setVolumeId(snapshot.getVolumeId()); - response.setVolumeName(volume.getName()); - response.setVolumeType(volume.getVolumeType().toString()); - response.setCreated(snapshot.getCreated()); - response.setName(snapshot.getName()); - response.setObjectName("snapshot"); - response.setResponseName(getName()); - return response; - } - @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ try { SnapshotVO snapshot = _snapshotMgr.createSnapshotInternal(this); - return snapshot; + SnapshotResponse response = new SnapshotResponse(); + response.setId(snapshot.getId()); + + Account account = ApiDBUtils.findAccountById(snapshot.getAccountId()); + if (account != null) { + response.setAccountName(account.getAccountName()); + response.setDomainId(account.getDomainId()); + response.setDomainName(ApiDBUtils.findDomainById(account.getDomainId()).getName()); + } + + VolumeVO volume = ApiDBUtils.findVolumeById(snapshot.getVolumeId()); + String snapshotTypeStr = SnapshotType.values()[snapshot.getSnapshotType()].name(); + response.setSnapshotType(snapshotTypeStr); + response.setVolumeId(snapshot.getVolumeId()); + response.setVolumeName(volume.getName()); + response.setVolumeType(volume.getVolumeType().toString()); + response.setCreated(snapshot.getCreated()); + response.setName(snapshot.getName()); + response.setObjectName("snapshot"); + response.setResponseName(getName()); + this.setResponseObject(response); } catch (ResourceAllocationException ex) { throw new ServerApiException(BaseCmd.INTERNAL_ERROR, ex.getMessage()); } diff --git a/server/src/com/cloud/api/commands/CreateSnapshotPolicyCmd.java b/server/src/com/cloud/api/commands/CreateSnapshotPolicyCmd.java index a498a93f47d..c8c8b8921f5 100644 --- a/server/src/com/cloud/api/commands/CreateSnapshotPolicyCmd.java +++ b/server/src/com/cloud/api/commands/CreateSnapshotPolicyCmd.java @@ -33,9 +33,8 @@ import com.cloud.exception.InsufficientCapacityException; import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.PermissionDeniedException; import com.cloud.storage.SnapshotPolicyVO; -import com.cloud.storage.snapshot.SnapshotManager; -@Implementation(method="createPolicy", manager=SnapshotManager.class, description="Creates a snapshot policy for the account.") +@Implementation(description="Creates a snapshot policy for the account.") public class CreateSnapshotPolicyCmd extends BaseCmd { public static final Logger s_logger = Logger.getLogger(CreateSnapshotPolicyCmd.class.getName()); @@ -112,19 +111,13 @@ public class CreateSnapshotPolicyCmd extends BaseCmd { @Override public String getName() { return s_name; - } - - @Override @SuppressWarnings("unchecked") - public SnapshotPolicyResponse getResponse() { - SnapshotPolicyVO snapshotPolicy = (SnapshotPolicyVO)getResponseObject(); - SnapshotPolicyResponse response = ApiResponseHelper.createSnapshotPolicyResponse(snapshotPolicy); - response.setResponseName(getName()); - return response; } @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ SnapshotPolicyVO result = _snapshotMgr.createPolicy(this); - return result; + SnapshotPolicyResponse response = ApiResponseHelper.createSnapshotPolicyResponse(result); + response.setResponseName(getName()); + this.setResponseObject(response); } } diff --git a/server/src/com/cloud/api/commands/CreateStoragePoolCmd.java b/server/src/com/cloud/api/commands/CreateStoragePoolCmd.java index bba4d8a1f00..e65b4943b4b 100644 --- a/server/src/com/cloud/api/commands/CreateStoragePoolCmd.java +++ b/server/src/com/cloud/api/commands/CreateStoragePoolCmd.java @@ -37,11 +37,10 @@ import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.PermissionDeniedException; import com.cloud.exception.ResourceAllocationException; import com.cloud.exception.ResourceInUseException; -import com.cloud.storage.StorageManager; import com.cloud.storage.StoragePoolVO; @SuppressWarnings("rawtypes") -@Implementation(method="createPool", manager=StorageManager.class, description="Creates a storage pool.") +@Implementation(description="Creates a storage pool.") public class CreateStoragePoolCmd extends BaseCmd { public static final Logger s_logger = Logger.getLogger(CreateStoragePoolCmd.class.getName()); @@ -112,25 +111,18 @@ public class CreateStoragePoolCmd extends BaseCmd { public String getName() { return s_name; } - - @Override @SuppressWarnings("unchecked") - public StoragePoolResponse getResponse() { - StoragePoolVO pool = (StoragePoolVO)getResponseObject(); - if (pool != null) { - StoragePoolResponse response = ApiResponseHelper.createStoragePoolResponse(pool); - response.setResponseName(getName()); - return response; - } else { - throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to add host"); - } - } - @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ try { StoragePoolVO result = _storageMgr.createPool(this); - return result; + if (result != null) { + StoragePoolResponse response = ApiResponseHelper.createStoragePoolResponse(result); + response.setResponseName(getName()); + this.setResponseObject(response); + } else { + throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to add host"); + } } catch (ResourceAllocationException ex1) { throw new ServerApiException(BaseCmd.INTERNAL_ERROR, ex1.getMessage()); }catch (ResourceInUseException ex2) { diff --git a/server/src/com/cloud/api/commands/CreateTemplateCmd.java b/server/src/com/cloud/api/commands/CreateTemplateCmd.java index 9505071e3d1..e634d61a6e1 100644 --- a/server/src/com/cloud/api/commands/CreateTemplateCmd.java +++ b/server/src/com/cloud/api/commands/CreateTemplateCmd.java @@ -42,9 +42,8 @@ import com.cloud.storage.VMTemplateStorageResourceAssoc.Status; import com.cloud.storage.VMTemplateVO; import com.cloud.storage.VolumeVO; import com.cloud.user.Account; -import com.cloud.vm.UserVmManager; -@Implementation(method="createPrivateTemplate", createMethod="createPrivateTemplateRecord", manager=UserVmManager.class, description="Creates a template of a virtual machine. " + +@Implementation(description="Creates a template of a virtual machine. " + "The virtual machine must be in a STOPPED state. " + "A template created from this command is automatically designated as a private template visible to the account that created it.") public class CreateTemplateCmd extends BaseAsyncCreateCmd { @@ -172,9 +171,16 @@ public class CreateTemplateCmd extends BaseAsyncCreateCmd { return "creating template: " + getTemplateName(); } - @Override @SuppressWarnings("unchecked") - public TemplateResponse getResponse() { - VMTemplateVO template = (VMTemplateVO)getResponseObject(); + @Override + public void callCreate() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException, ResourceAllocationException{ + VMTemplateVO template = _userVmService.createPrivateTemplateRecord(this); + if (template != null) + this.setId(template.getId()); + } + + @Override + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + VMTemplateVO template = _userVmService.createPrivateTemplate(this); TemplateResponse response = new TemplateResponse(); response.setId(template.getId()); @@ -220,19 +226,7 @@ public class CreateTemplateCmd extends BaseAsyncCreateCmd { response.setObjectName("template"); response.setResponseName(getName()); - return response; - } - - @Override - public void callCreate() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException, ResourceAllocationException{ - VMTemplateVO template = _userVmService.createPrivateTemplateRecord(this); - if (template != null) - this.setId(template.getId()); - } - - @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ - VMTemplateVO result = _userVmService.createPrivateTemplate(this); - return result; + + this.setResponseObject(response); } } diff --git a/server/src/com/cloud/api/commands/CreateUserCmd.java b/server/src/com/cloud/api/commands/CreateUserCmd.java index 29e9cb8d468..d3578ed2b95 100644 --- a/server/src/com/cloud/api/commands/CreateUserCmd.java +++ b/server/src/com/cloud/api/commands/CreateUserCmd.java @@ -34,7 +34,7 @@ import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.PermissionDeniedException; import com.cloud.user.UserAccount; -@Implementation(method="createUser", description="Creates a user account") +@Implementation(description="Creates a user account") public class CreateUserCmd extends BaseCmd { public static final Logger s_logger = Logger.getLogger(CreateUserCmd.class.getName()); @@ -126,18 +126,12 @@ public class CreateUserCmd extends BaseCmd { public String getName() { return s_name; } - - @Override @SuppressWarnings("unchecked") - public UserResponse getResponse() { - UserAccount user = (UserAccount)getResponseObject(); - UserResponse response = ApiResponseHelper.createUserResponse(user); - response.setResponseName(getName()); - return response; - } @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ - UserAccount result = _accountService.createUser(this); - return result; + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + UserAccount user = _accountService.createUser(this); + UserResponse response = ApiResponseHelper.createUserResponse(user); + response.setResponseName(getName()); + this.setResponseObject(response); } } \ No newline at end of file diff --git a/server/src/com/cloud/api/commands/CreateVMGroupCmd.java b/server/src/com/cloud/api/commands/CreateVMGroupCmd.java index af37054ebb6..2a7c7356969 100644 --- a/server/src/com/cloud/api/commands/CreateVMGroupCmd.java +++ b/server/src/com/cloud/api/commands/CreateVMGroupCmd.java @@ -32,9 +32,8 @@ import com.cloud.exception.InsufficientCapacityException; import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.PermissionDeniedException; import com.cloud.vm.InstanceGroupVO; -import com.cloud.vm.UserVmManager; -@Implementation(method="createVmGroup", manager=UserVmManager.class) +@Implementation(description="Creates a vm group") public class CreateVMGroupCmd extends BaseCmd{ public static final Logger s_logger = Logger.getLogger(CreateVMGroupCmd.class.getName()); @@ -77,18 +76,12 @@ public class CreateVMGroupCmd extends BaseCmd{ public String getName() { return s_name; } - - @Override @SuppressWarnings("unchecked") - public InstanceGroupResponse getResponse() { - InstanceGroupVO group = (InstanceGroupVO)getResponseObject(); - InstanceGroupResponse response = ApiResponseHelper.createInstanceGroupResponse(group); - response.setResponseName(getName()); - return response; - } @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ InstanceGroupVO result = _userVmService.createVmGroup(this); - return result; + InstanceGroupResponse response = ApiResponseHelper.createInstanceGroupResponse(result); + response.setResponseName(getName()); + this.setResponseObject(response); } } diff --git a/server/src/com/cloud/api/commands/CreateVlanIpRangeCmd.java b/server/src/com/cloud/api/commands/CreateVlanIpRangeCmd.java index 4a22c8b990e..dcadbad93a9 100644 --- a/server/src/com/cloud/api/commands/CreateVlanIpRangeCmd.java +++ b/server/src/com/cloud/api/commands/CreateVlanIpRangeCmd.java @@ -27,7 +27,6 @@ import com.cloud.api.Implementation; import com.cloud.api.Parameter; import com.cloud.api.ServerApiException; import com.cloud.api.response.VlanIpRangeResponse; -import com.cloud.configuration.ConfigurationManager; import com.cloud.dc.Vlan; import com.cloud.dc.VlanVO; import com.cloud.exception.ConcurrentOperationException; @@ -36,7 +35,7 @@ import com.cloud.exception.InsufficientCapacityException; import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.PermissionDeniedException; -@Implementation(method="createVlanAndPublicIpRange", manager=ConfigurationManager.class, description="Creates a VLAN IP range.") +@Implementation(description="Creates a VLAN IP range.") public class CreateVlanIpRangeCmd extends BaseCmd { public static final Logger s_logger = Logger.getLogger(CreateVlanIpRangeCmd.class.getName()); @@ -129,18 +128,12 @@ public class CreateVlanIpRangeCmd extends BaseCmd { public String getName() { return s_name; } - - @Override @SuppressWarnings("unchecked") - public VlanIpRangeResponse getResponse() { - VlanVO vlan = (VlanVO)getResponseObject(); - VlanIpRangeResponse response = ApiResponseHelper.createVlanIpRangeResponse(vlan); - response.setResponseName(getName()); - return response; - } @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ Vlan result = _configService.createVlanAndPublicIpRange(this); - return result; + VlanIpRangeResponse response = ApiResponseHelper.createVlanIpRangeResponse((VlanVO)result); + response.setResponseName(getName()); + this.setResponseObject(response); } } diff --git a/server/src/com/cloud/api/commands/CreateVolumeCmd.java b/server/src/com/cloud/api/commands/CreateVolumeCmd.java index 0823b9c2f80..c80e0eedea4 100644 --- a/server/src/com/cloud/api/commands/CreateVolumeCmd.java +++ b/server/src/com/cloud/api/commands/CreateVolumeCmd.java @@ -145,16 +145,6 @@ public class CreateVolumeCmd extends BaseAsyncCreateCmd { return "creating volume: " + getVolumeName() + ((getSnapshotId() == null) ? "" : " from snapshot: " + getSnapshotId()); } - @Override @SuppressWarnings("unchecked") - public VolumeResponse getResponse() { - VolumeVO volume = (VolumeVO)getResponseObject(); - VolumeResponse response = ApiResponseHelper.createVolumeResponse(volume); - //FIXME - have to be moved to ApiResponseHelper - response.setSnapshotId(getSnapshotId()); // if the volume was created from a snapshot, snapshotId will be set so we pass it back in the response - response.setResponseName(getName()); - return response; - } - @Override public void callCreate() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException, ResourceAllocationException{ Volume volume = _storageMgr.allocVolume(this); @@ -164,8 +154,12 @@ public class CreateVolumeCmd extends BaseAsyncCreateCmd { } @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ Volume volume = _storageMgr.createVolume(this); - return volume; + VolumeResponse response = ApiResponseHelper.createVolumeResponse((VolumeVO)volume); + //FIXME - have to be moved to ApiResponseHelper + response.setSnapshotId(getSnapshotId()); // if the volume was created from a snapshot, snapshotId will be set so we pass it back in the response + response.setResponseName(getName()); + this.setResponseObject(response); } } diff --git a/server/src/com/cloud/api/commands/CreateZoneCmd.java b/server/src/com/cloud/api/commands/CreateZoneCmd.java index 8bd9b90f925..416417eb0b1 100644 --- a/server/src/com/cloud/api/commands/CreateZoneCmd.java +++ b/server/src/com/cloud/api/commands/CreateZoneCmd.java @@ -27,7 +27,6 @@ import com.cloud.api.Implementation; import com.cloud.api.Parameter; import com.cloud.api.ServerApiException; import com.cloud.api.response.ZoneResponse; -import com.cloud.configuration.ConfigurationManager; import com.cloud.dc.DataCenter; import com.cloud.dc.DataCenterVO; import com.cloud.exception.ConcurrentOperationException; @@ -36,7 +35,7 @@ import com.cloud.exception.InsufficientCapacityException; import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.PermissionDeniedException; -@Implementation(method="createZone", manager=ConfigurationManager.class, description="Creates a Zone.") +@Implementation(description="Creates a Zone.") public class CreateZoneCmd extends BaseCmd { public static final Logger s_logger = Logger.getLogger(CreateZoneCmd.class.getName()); @@ -121,18 +120,12 @@ public class CreateZoneCmd extends BaseCmd { public String getName() { return s_name; } - - @Override @SuppressWarnings("unchecked") - public ZoneResponse getResponse() { - DataCenterVO zone = (DataCenterVO)getResponseObject(); - ZoneResponse response = ApiResponseHelper.createZoneResponse(zone); - response.setResponseName(getName()); - return response; - } @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ DataCenter result = _configService.createZone(this); - return result; + ZoneResponse response = ApiResponseHelper.createZoneResponse((DataCenterVO)result); + response.setResponseName(getName()); + this.setResponseObject(response); } } diff --git a/server/src/com/cloud/api/commands/DeleteDiskOfferingCmd.java b/server/src/com/cloud/api/commands/DeleteDiskOfferingCmd.java index af8c50e3673..1c3cfdaae43 100644 --- a/server/src/com/cloud/api/commands/DeleteDiskOfferingCmd.java +++ b/server/src/com/cloud/api/commands/DeleteDiskOfferingCmd.java @@ -25,14 +25,13 @@ import com.cloud.api.Implementation; import com.cloud.api.Parameter; import com.cloud.api.ServerApiException; import com.cloud.api.response.SuccessResponse; -import com.cloud.configuration.ConfigurationManager; import com.cloud.exception.ConcurrentOperationException; import com.cloud.exception.InsufficientAddressCapacityException; import com.cloud.exception.InsufficientCapacityException; import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.PermissionDeniedException; -@Implementation(method="deleteDiskOffering", manager=ConfigurationManager.class, description="Updates a disk offering.") +@Implementation(description="Updates a disk offering.") public class DeleteDiskOfferingCmd extends BaseCmd { public static final Logger s_logger = Logger.getLogger(DeleteDiskOfferingCmd.class.getName()); private static final String s_name = "deletediskofferingresponse"; @@ -60,20 +59,16 @@ public class DeleteDiskOfferingCmd extends BaseCmd { public String getName() { return s_name; - } - - @Override @SuppressWarnings("unchecked") - public SuccessResponse getResponse() { - if (getResponseObject() == null || (Boolean)getResponseObject()) { - return new SuccessResponse(getName()); - } else { - throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to delete disk offering"); - } } @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ boolean result = _configService.deleteDiskOffering(this); - return result; + if (result) { + SuccessResponse response = new SuccessResponse(getName()); + this.setResponseObject(response); + } else { + throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to delete disk offering"); + } } } diff --git a/server/src/com/cloud/api/commands/DeleteDomainCmd.java b/server/src/com/cloud/api/commands/DeleteDomainCmd.java index a5253599d5e..05447602458 100644 --- a/server/src/com/cloud/api/commands/DeleteDomainCmd.java +++ b/server/src/com/cloud/api/commands/DeleteDomainCmd.java @@ -36,7 +36,7 @@ import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.PermissionDeniedException; import com.cloud.user.Account; -@Implementation(method="deleteDomain", description="Deletes a specified domain") +@Implementation(description="Deletes a specified domain") public class DeleteDomainCmd extends BaseAsyncCmd { public static final Logger s_logger = Logger.getLogger(DeleteDomainCmd.class.getName()); private static final String s_name = "deletedomainresponse"; @@ -92,19 +92,15 @@ public class DeleteDomainCmd extends BaseAsyncCmd { public String getEventDescription() { return "deleting domain: " + getId(); } - - @Override @SuppressWarnings("unchecked") - public SuccessResponse getResponse() { - if (getResponseObject() == null || (Boolean)getResponseObject()) { - return new SuccessResponse(getName()); - } else { - throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to delete delete domain"); - } - } @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ boolean result = _mgr.deleteDomain(this); - return result; + if (result) { + SuccessResponse response = new SuccessResponse(getName()); + this.setResponseObject(response); + } else { + throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to delete domain"); + } } } diff --git a/server/src/com/cloud/api/commands/DeleteHostCmd.java b/server/src/com/cloud/api/commands/DeleteHostCmd.java index f8f212ac557..d6bdc6fede4 100644 --- a/server/src/com/cloud/api/commands/DeleteHostCmd.java +++ b/server/src/com/cloud/api/commands/DeleteHostCmd.java @@ -20,7 +20,6 @@ package com.cloud.api.commands; import org.apache.log4j.Logger; -import com.cloud.agent.AgentManager; import com.cloud.api.ApiConstants; import com.cloud.api.BaseCmd; import com.cloud.api.Implementation; @@ -34,7 +33,7 @@ import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.PermissionDeniedException; -@Implementation(method="deleteHost", manager=AgentManager.class, description="Deletes a host.") +@Implementation(description="Deletes a host.") public class DeleteHostCmd extends BaseCmd { public static final Logger s_logger = Logger.getLogger(DeleteHostCmd.class.getName()); @@ -66,18 +65,14 @@ public class DeleteHostCmd extends BaseCmd { return s_name; } - @Override@SuppressWarnings("unchecked") - public SuccessResponse getResponse() { - if (getResponseObject() == null || (Boolean)getResponseObject()) { - return new SuccessResponse(getName()); - } else { - throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to delete host"); - } - } - @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ boolean result = _agentMgr.deleteHost(this); - return result; + if (result) { + SuccessResponse response = new SuccessResponse(getName()); + this.setResponseObject(response); + } else { + throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to delete host"); + } } } \ No newline at end of file diff --git a/server/src/com/cloud/api/commands/DeleteIPForwardingRuleCmd.java b/server/src/com/cloud/api/commands/DeleteIPForwardingRuleCmd.java index 5a90337dc73..ddfb872db95 100644 --- a/server/src/com/cloud/api/commands/DeleteIPForwardingRuleCmd.java +++ b/server/src/com/cloud/api/commands/DeleteIPForwardingRuleCmd.java @@ -30,9 +30,8 @@ import com.cloud.exception.InsufficientAddressCapacityException; import com.cloud.exception.InsufficientCapacityException; import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.PermissionDeniedException; -import com.cloud.network.NetworkManager; -@Implementation(method="deleteIpForwardingRule", manager=NetworkManager.class, description="Deletes a port forwarding rule") +@Implementation(description="Deletes a port forwarding rule") public class DeleteIPForwardingRuleCmd extends BaseCmd { public static final Logger s_logger = Logger.getLogger(DeleteIPForwardingRuleCmd.class.getName()); private static final String s_name = "deleteportforwardingruleresponse"; @@ -61,20 +60,15 @@ public class DeleteIPForwardingRuleCmd extends BaseCmd { public String getName() { return s_name; } - - @Override @SuppressWarnings("unchecked") - public SuccessResponse getResponse() { - if (getResponseObject() == null || (Boolean)getResponseObject()) { - return new SuccessResponse(getName()); - } else { - throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to delete port forwarding rule"); - } - } @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ boolean result = _networkMgr.deleteIpForwardingRule(this); - return result; - } - + if (result) { + SuccessResponse response = new SuccessResponse(getName()); + this.setResponseObject(response); + } else { + throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to delete port forwarding rule"); + } + } } diff --git a/server/src/com/cloud/api/commands/DeleteIsoCmd.java b/server/src/com/cloud/api/commands/DeleteIsoCmd.java index 44b021925ca..8e16301f448 100644 --- a/server/src/com/cloud/api/commands/DeleteIsoCmd.java +++ b/server/src/com/cloud/api/commands/DeleteIsoCmd.java @@ -34,10 +34,9 @@ import com.cloud.exception.InsufficientCapacityException; import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.PermissionDeniedException; import com.cloud.storage.VMTemplateVO; -import com.cloud.template.TemplateManager; import com.cloud.user.Account; -@Implementation(method="deleteIso", manager=TemplateManager.class, description="Deletes an ISO file.") +@Implementation(description="Deletes an ISO file.") public class DeleteIsoCmd extends BaseAsyncCmd { public static final Logger s_logger = Logger.getLogger(DeleteIsoCmd.class.getName()); private static final String s_name = "deleteisosresponse"; @@ -78,15 +77,6 @@ public class DeleteIsoCmd extends BaseAsyncCmd { return s_name; } - @Override @SuppressWarnings("unchecked") - public SuccessResponse getResponse() { - if (getResponseObject() == null || (Boolean)getResponseObject()) { - return new SuccessResponse(getName()); - } else { - throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to delete iso"); - } - } - @Override public long getAccountId() { VMTemplateVO iso = ApiDBUtils.findTemplateById(getId()); @@ -108,8 +98,13 @@ public class DeleteIsoCmd extends BaseAsyncCmd { } @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ boolean result = _templateMgr.deleteIso(this); - return result; + if (result) { + SuccessResponse response = new SuccessResponse(getName()); + this.setResponseObject(response); + } else { + throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to delete iso"); + } } } diff --git a/server/src/com/cloud/api/commands/DeleteLoadBalancerRuleCmd.java b/server/src/com/cloud/api/commands/DeleteLoadBalancerRuleCmd.java index 65f619a4b07..c56ef6719cf 100644 --- a/server/src/com/cloud/api/commands/DeleteLoadBalancerRuleCmd.java +++ b/server/src/com/cloud/api/commands/DeleteLoadBalancerRuleCmd.java @@ -34,10 +34,9 @@ import com.cloud.exception.InsufficientCapacityException; import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.PermissionDeniedException; import com.cloud.network.LoadBalancerVO; -import com.cloud.network.NetworkManager; import com.cloud.user.Account; -@Implementation(method="deleteLoadBalancerRule", manager=NetworkManager.class, description="Deletes a load balancer rule.") +@Implementation(description="Deletes a load balancer rule.") public class DeleteLoadBalancerRuleCmd extends BaseAsyncCmd { public static final Logger s_logger = Logger.getLogger(DeleteLoadBalancerRuleCmd.class.getName()); private static final String s_name = "deleteloadbalancerruleresponse"; @@ -85,19 +84,15 @@ public class DeleteLoadBalancerRuleCmd extends BaseAsyncCmd { public String getEventDescription() { return "deleting load balancer: " + getId(); } - - @Override @SuppressWarnings("unchecked") - public SuccessResponse getResponse() { - if (getResponseObject() == null || (Boolean)getResponseObject()) { - return new SuccessResponse(getName()); - } else { - throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to delete load balancer rule"); - } - } @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ boolean result = _networkMgr.deleteLoadBalancerRule(this); - return result; + if (result) { + SuccessResponse response = new SuccessResponse(getName()); + this.setResponseObject(response); + } else { + throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to delete load balancer"); + } } } diff --git a/server/src/com/cloud/api/commands/DeleteNetworkGroupCmd.java b/server/src/com/cloud/api/commands/DeleteNetworkGroupCmd.java index 8f5526f2020..e66f2f9e648 100644 --- a/server/src/com/cloud/api/commands/DeleteNetworkGroupCmd.java +++ b/server/src/com/cloud/api/commands/DeleteNetworkGroupCmd.java @@ -14,9 +14,8 @@ import com.cloud.exception.InsufficientCapacityException; import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.PermissionDeniedException; import com.cloud.exception.ResourceInUseException; -import com.cloud.network.security.NetworkGroupManager; -@Implementation(method="deleteNetworkGroup", manager=NetworkGroupManager.class) +@Implementation(description="Deletes network group") public class DeleteNetworkGroupCmd extends BaseCmd { public static final Logger s_logger = Logger.getLogger(DeleteNetworkGroupCmd.class.getName()); private static final String s_name = "deletenetworkgroupresponse"; @@ -60,21 +59,17 @@ public class DeleteNetworkGroupCmd extends BaseCmd { public String getName() { return s_name; } - - @Override @SuppressWarnings("unchecked") - public SuccessResponse getResponse() { - if (getResponseObject() == null || (Boolean)getResponseObject()) { - return new SuccessResponse(getName()); - } else { - throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to delete security group"); - } - } @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ try{ boolean result = _networkGroupMgr.deleteNetworkGroup(this); - return result; + if (result) { + SuccessResponse response = new SuccessResponse(getName()); + this.setResponseObject(response); + } else { + throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to delete network group"); + } } catch (ResourceInUseException ex) { throw new ServerApiException(BaseCmd.INTERNAL_ERROR, ex.getMessage()); } diff --git a/server/src/com/cloud/api/commands/DeletePodCmd.java b/server/src/com/cloud/api/commands/DeletePodCmd.java index 836c7690e6b..de74a8c0641 100644 --- a/server/src/com/cloud/api/commands/DeletePodCmd.java +++ b/server/src/com/cloud/api/commands/DeletePodCmd.java @@ -26,14 +26,13 @@ import com.cloud.api.Implementation; import com.cloud.api.Parameter; import com.cloud.api.ServerApiException; import com.cloud.api.response.SuccessResponse; -import com.cloud.configuration.ConfigurationManager; import com.cloud.exception.ConcurrentOperationException; import com.cloud.exception.InsufficientAddressCapacityException; import com.cloud.exception.InsufficientCapacityException; import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.PermissionDeniedException; -@Implementation(method="deletePod", manager=ConfigurationManager.class, description="Deletes a Pod.") +@Implementation(description="Deletes a Pod.") public class DeletePodCmd extends BaseCmd { public static final Logger s_logger = Logger.getLogger(DeletePodCmd.class.getName()); @@ -62,19 +61,15 @@ public class DeletePodCmd extends BaseCmd { public String getName() { return s_name; } - - @Override @SuppressWarnings("unchecked") - public SuccessResponse getResponse() { - if (getResponseObject() == null || (Boolean)getResponseObject()) { - return new SuccessResponse(getName()); - } else { - throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to delete pod"); - } - } - + @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ boolean result = _configService.deletePod(this); - return result; + if (result) { + SuccessResponse response = new SuccessResponse(getName()); + this.setResponseObject(response); + } else { + throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to delete pod"); + } } } diff --git a/server/src/com/cloud/api/commands/DeletePoolCmd.java b/server/src/com/cloud/api/commands/DeletePoolCmd.java index 57e8c0aee69..8d4a8e5e3d2 100644 --- a/server/src/com/cloud/api/commands/DeletePoolCmd.java +++ b/server/src/com/cloud/api/commands/DeletePoolCmd.java @@ -13,9 +13,8 @@ import com.cloud.exception.InsufficientAddressCapacityException; import com.cloud.exception.InsufficientCapacityException; import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.PermissionDeniedException; -import com.cloud.storage.StorageManager; -@Implementation(method="deletePool", manager=StorageManager.class, description="Deletes a storage pool.") +@Implementation(description="Deletes a storage pool.") public class DeletePoolCmd extends BaseCmd { public static final Logger s_logger = Logger.getLogger(DeletePoolCmd.class.getName()); private static final String s_name = "deletestoragepoolresponse"; @@ -46,18 +45,14 @@ public class DeletePoolCmd extends BaseCmd { return s_name; } - @Override @SuppressWarnings("unchecked") - public SuccessResponse getResponse() { - if ((Boolean)getResponseObject() == null || (Boolean)getResponseObject()) { - return new SuccessResponse(getName()); - } else { - throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to delete storage pool"); - } - } - @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ boolean result = _storageMgr.deletePool(this); - return result; + if (result) { + SuccessResponse response = new SuccessResponse(getName()); + this.setResponseObject(response); + } else { + throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to delete storage pool"); + } } } diff --git a/server/src/com/cloud/api/commands/DeletePreallocatedLunCmd.java b/server/src/com/cloud/api/commands/DeletePreallocatedLunCmd.java index 50d333098c5..36fe6e96ecd 100644 --- a/server/src/com/cloud/api/commands/DeletePreallocatedLunCmd.java +++ b/server/src/com/cloud/api/commands/DeletePreallocatedLunCmd.java @@ -29,7 +29,7 @@ import com.cloud.exception.InsufficientCapacityException; import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.PermissionDeniedException; -@Implementation(method="unregisterPreallocatedLun") +@Implementation(description="Unregisters PreallocatedLun") public class DeletePreallocatedLunCmd extends BaseCmd { private static final String s_name = "deletePreallocatedLunsResponse"; @@ -57,18 +57,14 @@ public class DeletePreallocatedLunCmd extends BaseCmd { return s_name; } - @Override @SuppressWarnings("unchecked") - public SuccessResponse getResponse() { - if (getResponseObject() == null || (Boolean)getResponseObject()) { - return new SuccessResponse(getName()); - } else { - throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to delete preallocated lun"); - } - } - @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ boolean result = _mgr.unregisterPreallocatedLun(this); - return result; + if (result) { + SuccessResponse response = new SuccessResponse(getName()); + this.setResponseObject(response); + } else { + throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to delete preallocated lun"); + } } } diff --git a/server/src/com/cloud/api/commands/DeleteRemoteAccessVpnCmd.java b/server/src/com/cloud/api/commands/DeleteRemoteAccessVpnCmd.java index f1b96fe8563..1ef7ab1814f 100644 --- a/server/src/com/cloud/api/commands/DeleteRemoteAccessVpnCmd.java +++ b/server/src/com/cloud/api/commands/DeleteRemoteAccessVpnCmd.java @@ -33,11 +33,10 @@ import com.cloud.exception.InsufficientAddressCapacityException; import com.cloud.exception.InsufficientCapacityException; import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.PermissionDeniedException; -import com.cloud.network.NetworkManager; import com.cloud.user.Account; import com.cloud.user.UserContext; -@Implementation(method="destroyRemoteAccessVpn", manager=NetworkManager.class, description="Destroys a l2tp/ipsec remote access vpn") +@Implementation(description="Destroys a l2tp/ipsec remote access vpn") public class DeleteRemoteAccessVpnCmd extends BaseAsyncCmd { public static final Logger s_logger = Logger.getLogger(DeleteRemoteAccessVpnCmd.class.getName()); @@ -83,15 +82,6 @@ public class DeleteRemoteAccessVpnCmd extends BaseAsyncCmd { return s_name; } - @Override @SuppressWarnings("unchecked") - public SuccessResponse getResponse() { - if ((Boolean)getResponseObject() == null || (Boolean)getResponseObject()) { - return new SuccessResponse(getName()); - } else { - throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to delete remote access vpn"); - } - } - @Override public long getAccountId() { Account account = (Account)UserContext.current().getAccount(); @@ -122,9 +112,14 @@ public class DeleteRemoteAccessVpnCmd extends BaseAsyncCmd { } @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ boolean result = _networkMgr.destroyRemoteAccessVpn(this); - return result; + if (result) { + SuccessResponse response = new SuccessResponse(getName()); + this.setResponseObject(response); + } else { + throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to delete remote access vpn"); + } } } diff --git a/server/src/com/cloud/api/commands/DeleteServiceOfferingCmd.java b/server/src/com/cloud/api/commands/DeleteServiceOfferingCmd.java index b53d2cdbebe..aa035809db5 100644 --- a/server/src/com/cloud/api/commands/DeleteServiceOfferingCmd.java +++ b/server/src/com/cloud/api/commands/DeleteServiceOfferingCmd.java @@ -26,14 +26,13 @@ import com.cloud.api.Implementation; import com.cloud.api.Parameter; import com.cloud.api.ServerApiException; import com.cloud.api.response.SuccessResponse; -import com.cloud.configuration.ConfigurationManager; import com.cloud.exception.ConcurrentOperationException; import com.cloud.exception.InsufficientAddressCapacityException; import com.cloud.exception.InsufficientCapacityException; import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.PermissionDeniedException; -@Implementation(method="deleteServiceOffering", manager=ConfigurationManager.class, description="Deletes a service offering.") +@Implementation(description="Deletes a service offering.") public class DeleteServiceOfferingCmd extends BaseCmd{ public static final Logger s_logger = Logger.getLogger(DeleteServiceOfferingCmd.class.getName()); private static final String s_name = "deleteserviceofferingresponse"; @@ -62,21 +61,16 @@ public class DeleteServiceOfferingCmd extends BaseCmd{ @Override public String getName() { return s_name; - } - - @Override @SuppressWarnings("unchecked") - public SuccessResponse getResponse() { - if (getResponseObject() == null || (Boolean)getResponseObject()) { - return new SuccessResponse(getName()); - } else { - throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to delete service offering"); - } - } + } @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ boolean result = _configService.deleteServiceOffering(this); - return result; - } - + if (result) { + SuccessResponse response = new SuccessResponse(getName()); + this.setResponseObject(response); + } else { + throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to delete service offering"); + } + } } diff --git a/server/src/com/cloud/api/commands/DeleteSnapshotCmd.java b/server/src/com/cloud/api/commands/DeleteSnapshotCmd.java index 7dc16f534b6..a38baf1d4d1 100644 --- a/server/src/com/cloud/api/commands/DeleteSnapshotCmd.java +++ b/server/src/com/cloud/api/commands/DeleteSnapshotCmd.java @@ -35,10 +35,9 @@ import com.cloud.exception.InsufficientCapacityException; import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.PermissionDeniedException; import com.cloud.storage.Snapshot; -import com.cloud.storage.snapshot.SnapshotManager; import com.cloud.user.Account; -@Implementation(method="deleteSnapshot", manager=SnapshotManager.class, description="Deletes a snapshot of a disk volume.") +@Implementation(description="Deletes a snapshot of a disk volume.") public class DeleteSnapshotCmd extends BaseAsyncCmd { public static final Logger s_logger = Logger.getLogger(DeleteSnapshotCmd.class.getName()); private static final String s_name = "deletesnapshotresponse"; @@ -102,18 +101,14 @@ public class DeleteSnapshotCmd extends BaseAsyncCmd { return "deleting snapshot: " + getId(); } - @Override @SuppressWarnings("unchecked") - public SuccessResponse getResponse() { - if (getResponseObject() == null || (Boolean)getResponseObject()) { - return new SuccessResponse(getName()); - } else { - throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to delete snapshot"); - } - } - @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ boolean result = _snapshotMgr.deleteSnapshot(this); - return result; + if (result) { + SuccessResponse response = new SuccessResponse(getName()); + this.setResponseObject(response); + } else { + throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to delete snapshot"); + } } } diff --git a/server/src/com/cloud/api/commands/DeleteSnapshotPoliciesCmd.java b/server/src/com/cloud/api/commands/DeleteSnapshotPoliciesCmd.java index ea6c3a43f00..fe1d23410b2 100644 --- a/server/src/com/cloud/api/commands/DeleteSnapshotPoliciesCmd.java +++ b/server/src/com/cloud/api/commands/DeleteSnapshotPoliciesCmd.java @@ -33,9 +33,8 @@ import com.cloud.exception.InsufficientAddressCapacityException; import com.cloud.exception.InsufficientCapacityException; import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.PermissionDeniedException; -import com.cloud.storage.snapshot.SnapshotManager; -@Implementation(method="deleteSnapshotPolicies", manager=SnapshotManager.class, description="Deletes snapshot policies for the account.") +@Implementation(description="Deletes snapshot policies for the account.") public class DeleteSnapshotPoliciesCmd extends BaseCmd { public static final Logger s_logger = Logger.getLogger(DeleteSnapshotPoliciesCmd.class.getName()); @@ -88,18 +87,14 @@ public class DeleteSnapshotPoliciesCmd extends BaseCmd { return s_name; } - @Override @SuppressWarnings("unchecked") - public SuccessResponse getResponse() { - if (getResponseObject() == null || (Boolean)getResponseObject()) { - return new SuccessResponse(getName()); - } else { - throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to delete snapshot policy"); - } - } - @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ boolean result = _snapshotMgr.deleteSnapshotPolicies(this); - return result; + if (result) { + SuccessResponse response = new SuccessResponse(getName()); + this.setResponseObject(response); + } else { + throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to delete snapshot policy"); + } } } diff --git a/server/src/com/cloud/api/commands/DeleteTemplateCmd.java b/server/src/com/cloud/api/commands/DeleteTemplateCmd.java index b6feb802f17..5c147fd63fe 100644 --- a/server/src/com/cloud/api/commands/DeleteTemplateCmd.java +++ b/server/src/com/cloud/api/commands/DeleteTemplateCmd.java @@ -35,10 +35,9 @@ import com.cloud.exception.InsufficientCapacityException; import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.PermissionDeniedException; import com.cloud.storage.VMTemplateVO; -import com.cloud.template.TemplateManager; import com.cloud.user.Account; -@Implementation(method="deleteTemplate", manager=TemplateManager.class, description="Deletes a template from the system. All virtual machines using the deleted template will not be affected.") +@Implementation(description="Deletes a template from the system. All virtual machines using the deleted template will not be affected.") public class DeleteTemplateCmd extends BaseAsyncCmd { public static final Logger s_logger = Logger.getLogger(DeleteTemplateCmd.class.getName()); private static final String s_name = "deletetemplateresponse"; @@ -80,15 +79,6 @@ public class DeleteTemplateCmd extends BaseAsyncCmd { return s_name; } - @Override @SuppressWarnings("unchecked") - public SuccessResponse getResponse() { - if (getResponseObject() == null || (Boolean)getResponseObject()) { - return new SuccessResponse(getName()); - } else { - throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to delete template"); - } - } - @Override public long getAccountId() { VMTemplateVO template = ApiDBUtils.findTemplateById(getId()); @@ -110,8 +100,13 @@ public class DeleteTemplateCmd extends BaseAsyncCmd { } @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ boolean result = _templateMgr.deleteTemplate(this); - return result; + if (result) { + SuccessResponse response = new SuccessResponse(getName()); + this.setResponseObject(response); + } else { + throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to delete template"); + } } } diff --git a/server/src/com/cloud/api/commands/DeleteUserCmd.java b/server/src/com/cloud/api/commands/DeleteUserCmd.java index d8b0c40bc6a..05f4b9dfc55 100644 --- a/server/src/com/cloud/api/commands/DeleteUserCmd.java +++ b/server/src/com/cloud/api/commands/DeleteUserCmd.java @@ -34,12 +34,11 @@ import com.cloud.exception.InsufficientAddressCapacityException; import com.cloud.exception.InsufficientCapacityException; import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.PermissionDeniedException; -import com.cloud.server.ManagementServer; import com.cloud.user.Account; import com.cloud.user.User; import com.cloud.user.UserContext; -@Implementation(method="deleteUser", manager=ManagementServer.class, description="Deletes a user account") +@Implementation(description="Deletes a user account") public class DeleteUserCmd extends BaseAsyncCmd { public static final Logger s_logger = Logger.getLogger(DeleteUserCmd.class.getName()); private static final String s_name = "deleteuserresponse"; @@ -94,19 +93,15 @@ public class DeleteUserCmd extends BaseAsyncCmd { User user = ApiDBUtils.findUserById(getId()); return (user != null ? ("User " + user.getUsername() + " (id: " + user.getId() + ") and accountId = " + user.getAccountId()) : "user delete, but this user does not exist in the system"); } - - @Override @SuppressWarnings("unchecked") - public SuccessResponse getResponse() { - if (getResponseObject() == null || (Boolean)getResponseObject()) { - return new SuccessResponse(getName()); - } else { - throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to delete user"); - } - } @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ boolean result = _accountService.deleteUser(this); - return result; + if (result) { + SuccessResponse response = new SuccessResponse(getName()); + this.setResponseObject(response); + } else { + throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to delete user"); + } } } diff --git a/server/src/com/cloud/api/commands/DeleteVMGroupCmd.java b/server/src/com/cloud/api/commands/DeleteVMGroupCmd.java index 514087beb7a..6dc198af27d 100644 --- a/server/src/com/cloud/api/commands/DeleteVMGroupCmd.java +++ b/server/src/com/cloud/api/commands/DeleteVMGroupCmd.java @@ -30,9 +30,8 @@ import com.cloud.exception.InsufficientAddressCapacityException; import com.cloud.exception.InsufficientCapacityException; import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.PermissionDeniedException; -import com.cloud.vm.UserVmManager; -@Implementation(method="deleteVmGroup", manager=UserVmManager.class) +@Implementation(description="Deletes a vm group") public class DeleteVMGroupCmd extends BaseCmd{ public static final Logger s_logger = Logger.getLogger(DeleteVMGroupCmd.class.getName()); private static final String s_name = "deleteinstancegroupresponse"; @@ -60,19 +59,15 @@ public class DeleteVMGroupCmd extends BaseCmd{ public String getName() { return s_name; } - - @Override @SuppressWarnings("unchecked") - public SuccessResponse getResponse() { - if (getResponseObject() == null || (Boolean)getResponseObject()) { - return new SuccessResponse(getName()); - } else { - throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to delete virtual machine group"); - } - } @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ boolean result = _userVmService.deleteVmGroup(this); - return result; + if (result) { + SuccessResponse response = new SuccessResponse(getName()); + this.setResponseObject(response); + } else { + throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to delete vm group"); + } } } diff --git a/server/src/com/cloud/api/commands/DeleteVlanIpRangeCmd.java b/server/src/com/cloud/api/commands/DeleteVlanIpRangeCmd.java index ec5b8d5f085..866814f1243 100644 --- a/server/src/com/cloud/api/commands/DeleteVlanIpRangeCmd.java +++ b/server/src/com/cloud/api/commands/DeleteVlanIpRangeCmd.java @@ -26,14 +26,13 @@ import com.cloud.api.Implementation; import com.cloud.api.Parameter; import com.cloud.api.ServerApiException; import com.cloud.api.response.SuccessResponse; -import com.cloud.configuration.ConfigurationManager; import com.cloud.exception.ConcurrentOperationException; import com.cloud.exception.InsufficientAddressCapacityException; import com.cloud.exception.InsufficientCapacityException; import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.PermissionDeniedException; -@Implementation(method="deleteVlanIpRange", manager=ConfigurationManager.class, description="Creates a VLAN IP range.") +@Implementation(description="Creates a VLAN IP range.") public class DeleteVlanIpRangeCmd extends BaseCmd { public static final Logger s_logger = Logger.getLogger(DeleteVlanIpRangeCmd.class.getName()); @@ -62,19 +61,15 @@ public class DeleteVlanIpRangeCmd extends BaseCmd { public String getName() { return s_name; } - - @Override @SuppressWarnings("unchecked") - public SuccessResponse getResponse() { - if (getResponseObject() == null || (Boolean)getResponseObject()) { - return new SuccessResponse(getName()); - } else { - throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to delete vlan ip range"); - } - } @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ boolean result = _configService.deleteVlanIpRange(this); - return result; + if (result) { + SuccessResponse response = new SuccessResponse(getName()); + this.setResponseObject(response); + } else { + throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to delete vlan ip range"); + } } } \ No newline at end of file diff --git a/server/src/com/cloud/api/commands/DeleteVolumeCmd.java b/server/src/com/cloud/api/commands/DeleteVolumeCmd.java index 1cc6c17f768..b6553cde688 100644 --- a/server/src/com/cloud/api/commands/DeleteVolumeCmd.java +++ b/server/src/com/cloud/api/commands/DeleteVolumeCmd.java @@ -31,9 +31,8 @@ import com.cloud.exception.InsufficientAddressCapacityException; import com.cloud.exception.InsufficientCapacityException; import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.PermissionDeniedException; -import com.cloud.storage.StorageManager; -@Implementation(method="deleteVolume", manager=StorageManager.class, description="Deletes a detached disk volume.") +@Implementation(description="Deletes a detached disk volume.") public class DeleteVolumeCmd extends BaseCmd { public static final Logger s_logger = Logger.getLogger(DeleteVolumeCmd.class.getName()); private static final String s_name = "deletevolumeresponse"; @@ -67,19 +66,15 @@ public class DeleteVolumeCmd extends BaseCmd { public static String getResultObjectName() { return "volume"; } - - @Override @SuppressWarnings("unchecked") - public SuccessResponse getResponse() { - if (getResponseObject() == null || (Boolean)getResponseObject()) { - return new SuccessResponse(getName()); - } else { - throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to delete volume"); - } - } @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ boolean result = _storageMgr.deleteVolume(this); - return result; + if (result) { + SuccessResponse response = new SuccessResponse(getName()); + this.setResponseObject(response); + } else { + throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to delete volume"); + } } } diff --git a/server/src/com/cloud/api/commands/DeleteZoneCmd.java b/server/src/com/cloud/api/commands/DeleteZoneCmd.java index 0390c87931c..aac882e65f0 100644 --- a/server/src/com/cloud/api/commands/DeleteZoneCmd.java +++ b/server/src/com/cloud/api/commands/DeleteZoneCmd.java @@ -26,14 +26,13 @@ import com.cloud.api.Implementation; import com.cloud.api.Parameter; import com.cloud.api.ServerApiException; import com.cloud.api.response.SuccessResponse; -import com.cloud.configuration.ConfigurationManager; import com.cloud.exception.ConcurrentOperationException; import com.cloud.exception.InsufficientAddressCapacityException; import com.cloud.exception.InsufficientCapacityException; import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.PermissionDeniedException; -@Implementation(method="deleteZone", manager=ConfigurationManager.class, description="Deletes a Zone.") +@Implementation(description="Deletes a Zone.") public class DeleteZoneCmd extends BaseCmd { public static final Logger s_logger = Logger.getLogger(DeleteZoneCmd.class.getName()); @@ -65,18 +64,14 @@ public class DeleteZoneCmd extends BaseCmd { return s_name; } - @Override @SuppressWarnings("unchecked") - public SuccessResponse getResponse() { - if (getResponseObject() == null || (Boolean)getResponseObject()) { - return new SuccessResponse(getName()); - } else { - throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to delete zone"); - } - } - @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ boolean result = _configService.deleteZone(this); - return result; + if (result) { + SuccessResponse response = new SuccessResponse(getName()); + this.setResponseObject(response); + } else { + throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to delete zone"); + } } } diff --git a/server/src/com/cloud/api/commands/DeployVMCmd.java b/server/src/com/cloud/api/commands/DeployVMCmd.java index 921a05180e6..14a4355c426 100644 --- a/server/src/com/cloud/api/commands/DeployVMCmd.java +++ b/server/src/com/cloud/api/commands/DeployVMCmd.java @@ -44,7 +44,7 @@ import com.cloud.user.UserContext; import com.cloud.uservm.UserVm; import com.cloud.utils.exception.ExecutionException; -@Implementation(method="deployVirtualMachine", description="Creates and automatically starts a virtual machine based on a service offering, disk offering, and template.") +@Implementation(description="Creates and automatically starts a virtual machine based on a service offering, disk offering, and template.") public class DeployVMCmd extends BaseAsyncCmd { public static final Logger s_logger = Logger.getLogger(DeployVMCmd.class.getName()); @@ -196,25 +196,19 @@ public class DeployVMCmd extends BaseAsyncCmd { public String getEventDescription() { return "deploying Vm"; } - - @Override @SuppressWarnings("unchecked") - public UserVmResponse getResponse() { - UserVm userVm = (UserVm)getResponseObject(); - UserVmResponse response = ApiResponseHelper.createUserVmResponse(userVm); - - // FIXME: where will the password come from in this case? -// if (templatePasswordEnabled) { -// response.setPassword(getPassword()); -// } - response.setResponseName(getName()); - return response; - } @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException, StorageUnavailableException{ + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException, StorageUnavailableException{ try { UserVm result = _mgr.deployVirtualMachine(this); - return result; + UserVmResponse response = ApiResponseHelper.createUserVmResponse(result); + + // FIXME: where will the password come from in this case? +// if (templatePasswordEnabled) { +// response.setPassword(getPassword()); +// } + response.setResponseName(getName()); + this.setResponseObject(response); } catch (ResourceAllocationException ex) { throw new ServerApiException(BaseCmd.INTERNAL_ERROR, ex.getMessage()); } catch (ExecutionException ex1) { diff --git a/server/src/com/cloud/api/commands/DeployVm2Cmd.java b/server/src/com/cloud/api/commands/DeployVm2Cmd.java index 04f54d9fd6c..75f56e5074c 100644 --- a/server/src/com/cloud/api/commands/DeployVm2Cmd.java +++ b/server/src/com/cloud/api/commands/DeployVm2Cmd.java @@ -37,6 +37,7 @@ import com.cloud.exception.InsufficientCapacityException; import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.PermissionDeniedException; import com.cloud.exception.ResourceAllocationException; +import com.cloud.exception.ResourceUnavailableException; import com.cloud.offering.ServiceOffering; import com.cloud.storage.VMTemplateVO; import com.cloud.user.Account; @@ -44,9 +45,8 @@ import com.cloud.user.User; import com.cloud.user.UserContext; import com.cloud.uservm.UserVm; import com.cloud.vm.InstanceGroupVO; -import com.cloud.vm.UserVmService; -@Implementation(createMethod="createVirtualMachine", method="startVirtualMachine", manager=UserVmService.class, description="Creates and automatically starts a virtual machine based on a service offering, disk offering, and template.") +@Implementation(description="Creates and automatically starts a virtual machine based on a service offering, disk offering, and template.") public class DeployVm2Cmd extends BaseAsyncCreateCmd { public static final Logger s_logger = Logger.getLogger(DeployVMCmd.class.getName()); @@ -161,57 +161,9 @@ public class DeployVm2Cmd extends BaseAsyncCreateCmd { /////////////// API Implementation/////////////////// ///////////////////////////////////////////////////// @Override - public Object execute() { - //TODO - method stub should be here - return null; - } - - @Override - public void callCreate() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException, ResourceAllocationException{ - } - - - @Override - public String getName() { - return s_name; - } - - public static String getResultObjectName() { - return "virtualmachine"; - } - - @Override - public long getAccountId() { - Account account = UserContext.current().getAccount(); - if ((account == null) || isAdmin(account.getType())) { - if ((domainId != null) && (accountName != null)) { - Account userAccount = ApiDBUtils.findAccountByNameDomain(accountName, domainId); - if (userAccount != null) { - return userAccount.getId(); - } - } - } - - if (account != null) { - return account.getId(); - } - - return Account.ACCOUNT_ID_SYSTEM; // no account info given, parent this command to SYSTEM so ERROR events are tracked - } - - @Override - public String getEventType() { - return EventTypes.EVENT_VM_CREATE; - } - - @Override - public String getEventDescription() { - return "deploying Vm"; - } - - @Override @SuppressWarnings("unchecked") - public UserVmResponse getResponse() { - UserVm userVm = (UserVm)getResponseObject(); + public void execute() { + try { + UserVm userVm = _userVmService.startVirtualMachine(this); UserVmResponse response = new UserVmResponse(); response.setId(userVm.getId()); @@ -313,6 +265,61 @@ public class DeployVm2Cmd extends BaseAsyncCreateCmd { response.setResponseName(getName()); response.setObjectName("virtualmachine"); - return response; + this.setResponseObject(response); + } catch (Exception ex) { + throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to deploy virtual machine"); + } + } + + @Override + public void callCreate() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException, ResourceAllocationException{ + try { + UserVm vm = _userVmService.createVirtualMachine(this); + if (vm != null) { + this.setId(vm.getId()); + } + } catch (ResourceUnavailableException ex) { + throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to create a vm"); + } + + } + + + @Override + public String getName() { + return s_name; + } + + public static String getResultObjectName() { + return "virtualmachine"; + } + + @Override + public long getAccountId() { + Account account = UserContext.current().getAccount(); + if ((account == null) || isAdmin(account.getType())) { + if ((domainId != null) && (accountName != null)) { + Account userAccount = ApiDBUtils.findAccountByNameDomain(accountName, domainId); + if (userAccount != null) { + return userAccount.getId(); + } + } + } + + if (account != null) { + return account.getId(); + } + + return Account.ACCOUNT_ID_SYSTEM; // no account info given, parent this command to SYSTEM so ERROR events are tracked + } + + @Override + public String getEventType() { + return EventTypes.EVENT_VM_CREATE; + } + + @Override + public String getEventDescription() { + return "deploying Vm"; } } diff --git a/server/src/com/cloud/api/commands/DestroyConsoleProxyCmd.java b/server/src/com/cloud/api/commands/DestroyConsoleProxyCmd.java index 17218831ec8..68b1b5c3811 100644 --- a/server/src/com/cloud/api/commands/DestroyConsoleProxyCmd.java +++ b/server/src/com/cloud/api/commands/DestroyConsoleProxyCmd.java @@ -27,7 +27,6 @@ import com.cloud.api.Implementation; import com.cloud.api.Parameter; import com.cloud.api.ServerApiException; import com.cloud.api.response.SuccessResponse; -import com.cloud.consoleproxy.ConsoleProxyManager; import com.cloud.event.EventTypes; import com.cloud.exception.ConcurrentOperationException; import com.cloud.exception.InsufficientAddressCapacityException; @@ -37,7 +36,7 @@ import com.cloud.exception.PermissionDeniedException; import com.cloud.user.Account; import com.cloud.user.UserContext; -@Implementation(method="destroyConsoleProxy", manager=ConsoleProxyManager.class) +@Implementation(description="Destroys console proxy") public class DestroyConsoleProxyCmd extends BaseAsyncCmd { public static final Logger s_logger = Logger.getLogger(DestroyConsoleProxyCmd.class.getName()); @@ -88,19 +87,15 @@ public class DestroyConsoleProxyCmd extends BaseAsyncCmd { public String getEventDescription() { return "destroying console proxy: " + getId(); } - - @Override @SuppressWarnings("unchecked") - public SuccessResponse getResponse() { - if (getResponseObject() == null || (Boolean)getResponseObject()) { - return new SuccessResponse(getName()); - } else { - throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to delete console proxy"); - } - } @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ boolean result = _consoleProxyMgr.destroyConsoleProxy(this); - return result; + if (result) { + SuccessResponse response = new SuccessResponse(getName()); + this.setResponseObject(response); + } else { + throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to destroy console proxy"); + } } } diff --git a/server/src/com/cloud/api/commands/DestroyVMCmd.java b/server/src/com/cloud/api/commands/DestroyVMCmd.java index 4ebf92214fd..03eb8a2bee6 100644 --- a/server/src/com/cloud/api/commands/DestroyVMCmd.java +++ b/server/src/com/cloud/api/commands/DestroyVMCmd.java @@ -36,9 +36,8 @@ import com.cloud.exception.PermissionDeniedException; import com.cloud.exception.StorageUnavailableException; import com.cloud.user.Account; import com.cloud.uservm.UserVm; -import com.cloud.vm.UserVmManager; -@Implementation(method="destroyVm", manager=UserVmManager.class, description="Destroys a virtual machine. Once destroyed, only the administrator can recover it.") +@Implementation(description="Destroys a virtual machine. Once destroyed, only the administrator can recover it.") public class DestroyVMCmd extends BaseAsyncCmd { public static final Logger s_logger = Logger.getLogger(DestroyVMCmd.class.getName()); @@ -88,17 +87,11 @@ public class DestroyVMCmd extends BaseAsyncCmd { return "destroying vm: " + getId(); } - @Override @SuppressWarnings("unchecked") - public UserVmResponse getResponse() { - UserVm userVm = (UserVm)getResponseObject(); - UserVmResponse recoverVmResponse = ApiResponseHelper.createUserVmResponse(userVm); - recoverVmResponse.setResponseName("virtualmachine"); - return recoverVmResponse; - } - @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException, StorageUnavailableException{ + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException, StorageUnavailableException{ UserVm result = _userVmService.destroyVm(this); - return result; + UserVmResponse response = ApiResponseHelper.createUserVmResponse(result); + response.setResponseName("virtualmachine"); + this.setResponseObject(response); } } diff --git a/server/src/com/cloud/api/commands/DetachIsoCmd.java b/server/src/com/cloud/api/commands/DetachIsoCmd.java index 9f3dbf8657d..63daf25a34d 100644 --- a/server/src/com/cloud/api/commands/DetachIsoCmd.java +++ b/server/src/com/cloud/api/commands/DetachIsoCmd.java @@ -33,11 +33,10 @@ import com.cloud.exception.InsufficientAddressCapacityException; import com.cloud.exception.InsufficientCapacityException; import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.PermissionDeniedException; -import com.cloud.template.TemplateManager; import com.cloud.user.Account; import com.cloud.uservm.UserVm; -@Implementation(method="detachIso", manager=TemplateManager.class, description="Detaches any ISO file (if any) currently attached to a virtual machine.") +@Implementation(description="Detaches any ISO file (if any) currently attached to a virtual machine.") public class DetachIsoCmd extends BaseAsyncCmd { public static final Logger s_logger = Logger.getLogger(DetachIsoCmd.class.getName()); @@ -86,19 +85,15 @@ public class DetachIsoCmd extends BaseAsyncCmd { public String getEventDescription() { return "detaching ISO from vm: " + getVirtualMachineId(); } - - @Override @SuppressWarnings("unchecked") - public SuccessResponse getResponse() { - if (getResponseObject() == null || (Boolean)getResponseObject()) { - return new SuccessResponse(getName()); - } else { - throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to detach iso"); - } - } @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ boolean result = _templateMgr.detachIso(this); - return result; + if (result) { + SuccessResponse response = new SuccessResponse(getName()); + this.setResponseObject(response); + } else { + throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to detach iso"); + } } } diff --git a/server/src/com/cloud/api/commands/DetachVolumeCmd.java b/server/src/com/cloud/api/commands/DetachVolumeCmd.java index 9fb127f5b01..eefed09ae2c 100755 --- a/server/src/com/cloud/api/commands/DetachVolumeCmd.java +++ b/server/src/com/cloud/api/commands/DetachVolumeCmd.java @@ -37,9 +37,8 @@ import com.cloud.storage.Volume; import com.cloud.storage.VolumeVO; import com.cloud.user.Account; import com.cloud.uservm.UserVm; -import com.cloud.vm.UserVmManager; -@Implementation(method="detachVolumeFromVM", manager=UserVmManager.class, description="Detaches a disk volume from a virtual machine.") +@Implementation(description="Detaches a disk volume from a virtual machine.") public class DetachVolumeCmd extends BaseAsyncCmd { public static final Logger s_logger = Logger.getLogger(DetachVolumeCmd.class.getName()); private static final String s_name = "detachvolumeresponse"; @@ -123,17 +122,11 @@ public class DetachVolumeCmd extends BaseAsyncCmd { return "detaching volume" + sb.toString(); } - @Override @SuppressWarnings("unchecked") - public VolumeResponse getResponse() { - VolumeVO volume = (VolumeVO)getResponseObject(); - VolumeResponse response = ApiResponseHelper.createVolumeResponse(volume); - response.setResponseName("volume"); - return response; - } - @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ Volume result = _userVmService.detachVolumeFromVM(this); - return result; + VolumeResponse response = ApiResponseHelper.createVolumeResponse((VolumeVO)result); + response.setResponseName("volume"); + this.setResponseObject(response); } } \ No newline at end of file diff --git a/server/src/com/cloud/api/commands/DisableAccountCmd.java b/server/src/com/cloud/api/commands/DisableAccountCmd.java index ff7cb1ac968..9a416676ae9 100644 --- a/server/src/com/cloud/api/commands/DisableAccountCmd.java +++ b/server/src/com/cloud/api/commands/DisableAccountCmd.java @@ -32,12 +32,10 @@ import com.cloud.exception.InsufficientAddressCapacityException; import com.cloud.exception.InsufficientCapacityException; import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.PermissionDeniedException; -import com.cloud.server.ManagementServer; import com.cloud.user.Account; -import com.cloud.user.AccountVO; import com.cloud.user.UserContext; -@Implementation(method="disableAccount", manager=ManagementServer.class, description="Disables an account") +@Implementation(description="Disables an account") public class DisableAccountCmd extends BaseAsyncCmd { public static final Logger s_logger = Logger.getLogger(DisableAccountCmd.class.getName()); private static final String s_name = "disableaccountresponse"; @@ -93,17 +91,11 @@ public class DisableAccountCmd extends BaseAsyncCmd { return "disabling account: " + getAccountName() + " in domain: " + getDomainId(); } - @Override @SuppressWarnings("unchecked") - public AccountResponse getResponse() { - AccountVO account = (AccountVO)getResponseObject(); - AccountResponse response = ApiResponseHelper.createAccountResponse(account); - response.setResponseName(getName()); - return response; - } - @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ Account result = _accountService.disableAccount(this); - return result; + AccountResponse response = ApiResponseHelper.createAccountResponse(result); + response.setResponseName(getName()); + this.setResponseObject(response); } } diff --git a/server/src/com/cloud/api/commands/DisableUserCmd.java b/server/src/com/cloud/api/commands/DisableUserCmd.java index ed01acda12c..0c5b2cf522d 100644 --- a/server/src/com/cloud/api/commands/DisableUserCmd.java +++ b/server/src/com/cloud/api/commands/DisableUserCmd.java @@ -36,7 +36,7 @@ import com.cloud.user.Account; import com.cloud.user.UserAccount; import com.cloud.user.UserContext; -@Implementation(method="disableUser", description="Disables a user account") +@Implementation(description="Disables a user account") public class DisableUserCmd extends BaseAsyncCmd { public static final Logger s_logger = Logger.getLogger(DisableUserCmd.class.getName()); private static final String s_name = "disableuserresponse"; @@ -85,17 +85,12 @@ public class DisableUserCmd extends BaseAsyncCmd { return "disabling user: " + getId(); } - @Override @SuppressWarnings("unchecked") - public UserResponse getResponse() { - UserAccount user = (UserAccount)getResponseObject(); - UserResponse response = ApiResponseHelper.createUserResponse(user); - response.setResponseName(getName()); - return response; - } @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ - UserAccount result = _accountService.disableUser(this); - return result; + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + UserAccount user = _accountService.disableUser(this); + UserResponse response = ApiResponseHelper.createUserResponse(user); + response.setResponseName(getName()); + this.setResponseObject(response); } } diff --git a/server/src/com/cloud/api/commands/DisassociateIPAddrCmd.java b/server/src/com/cloud/api/commands/DisassociateIPAddrCmd.java index 59d07aaa8b2..c2323e7fa4d 100644 --- a/server/src/com/cloud/api/commands/DisassociateIPAddrCmd.java +++ b/server/src/com/cloud/api/commands/DisassociateIPAddrCmd.java @@ -30,9 +30,8 @@ import com.cloud.exception.InsufficientAddressCapacityException; import com.cloud.exception.InsufficientCapacityException; import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.PermissionDeniedException; -import com.cloud.network.NetworkManager; -@Implementation(method="disassociateIpAddress", manager=NetworkManager.class, description="Disassociates an ip address from the account.") +@Implementation(description="Disassociates an ip address from the account.") public class DisassociateIPAddrCmd extends BaseCmd { public static final Logger s_logger = Logger.getLogger(DisassociateIPAddrCmd.class.getName()); @@ -62,18 +61,14 @@ public class DisassociateIPAddrCmd extends BaseCmd { return s_name; } - @Override @SuppressWarnings("unchecked") - public SuccessResponse getResponse() { - if (getResponseObject() == null || (Boolean)getResponseObject()) { - return new SuccessResponse(getName()); - } else { - throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to disassociate ip address"); - } - } - @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ boolean result = _networkMgr.disassociateIpAddress(this); - return result; + if (result) { + SuccessResponse response = new SuccessResponse(getName()); + this.setResponseObject(response); + } else { + throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to disassociate ip address"); + } } } diff --git a/server/src/com/cloud/api/commands/EnableAccountCmd.java b/server/src/com/cloud/api/commands/EnableAccountCmd.java index 0c5ada1309a..b4c3d161a63 100644 --- a/server/src/com/cloud/api/commands/EnableAccountCmd.java +++ b/server/src/com/cloud/api/commands/EnableAccountCmd.java @@ -31,11 +31,9 @@ import com.cloud.exception.InsufficientAddressCapacityException; import com.cloud.exception.InsufficientCapacityException; import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.PermissionDeniedException; -import com.cloud.server.ManagementServer; import com.cloud.user.Account; -import com.cloud.user.AccountVO; -@Implementation(method="enableAccount", manager=ManagementServer.class, description="Enables an account") +@Implementation(description="Enables an account") public class EnableAccountCmd extends BaseCmd { public static final Logger s_logger = Logger.getLogger(EnableAccountCmd.class.getName()); private static final String s_name = "enableaccountresponse"; @@ -70,18 +68,12 @@ public class EnableAccountCmd extends BaseCmd { public String getName() { return s_name; } - - @Override @SuppressWarnings("unchecked") - public AccountResponse getResponse() { - AccountVO account = (AccountVO)getResponseObject(); - AccountResponse response = ApiResponseHelper.createAccountResponse(account); - response.setResponseName(getName()); - return response; - } - + @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ Account result = _accountService.enableAccount(this); - return result; + AccountResponse response = ApiResponseHelper.createAccountResponse(result); + response.setResponseName(getName()); + this.setResponseObject(response); } } diff --git a/server/src/com/cloud/api/commands/EnableUserCmd.java b/server/src/com/cloud/api/commands/EnableUserCmd.java index 7eed5f7ef85..ac0900d2212 100644 --- a/server/src/com/cloud/api/commands/EnableUserCmd.java +++ b/server/src/com/cloud/api/commands/EnableUserCmd.java @@ -32,10 +32,9 @@ import com.cloud.exception.InsufficientAddressCapacityException; import com.cloud.exception.InsufficientCapacityException; import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.PermissionDeniedException; -import com.cloud.server.ManagementServer; import com.cloud.user.UserAccount; -@Implementation(method="enableUser", manager=ManagementServer.class, description="Enables a user account") +@Implementation(description="Enables a user account") public class EnableUserCmd extends BaseCmd { public static final Logger s_logger = Logger.getLogger(EnableUserCmd.class.getName()); private static final String s_name = "enableuserresponse"; @@ -65,17 +64,11 @@ public class EnableUserCmd extends BaseCmd { return s_name; } - @Override @SuppressWarnings("unchecked") - public UserResponse getResponse() { - UserAccount user = (UserAccount)getResponseObject(); - UserResponse response = ApiResponseHelper.createUserResponse(user); - response.setResponseName(getName()); - return response; - } - @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ - UserAccount result = _accountService.enableUser(this); - return result; + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + UserAccount user = _accountService.enableUser(this); + UserResponse response = ApiResponseHelper.createUserResponse(user); + response.setResponseName(getName()); + this.setResponseObject(response); } } diff --git a/server/src/com/cloud/api/commands/ExtractIsoCmd.java b/server/src/com/cloud/api/commands/ExtractIsoCmd.java index e333b205992..165f537357e 100755 --- a/server/src/com/cloud/api/commands/ExtractIsoCmd.java +++ b/server/src/com/cloud/api/commands/ExtractIsoCmd.java @@ -37,10 +37,9 @@ import com.cloud.exception.PermissionDeniedException; import com.cloud.exception.ResourceUnavailableException; import com.cloud.storage.UploadVO; import com.cloud.storage.VMTemplateVO; -import com.cloud.template.TemplateManager; import com.cloud.user.Account; -@Implementation(method="extract", manager=TemplateManager.class) +@Implementation(description="Extracts an ISO") public class ExtractIsoCmd extends BaseAsyncCmd { public static final Logger s_logger = Logger.getLogger(ExtractIsoCmd.class.getName()); @@ -111,37 +110,30 @@ public class ExtractIsoCmd extends BaseAsyncCmd { return "Extraction job"; } - @Override @SuppressWarnings("unchecked") - public ExtractResponse getResponse() { - Long uploadId = (Long)getResponseObject(); - UploadVO uploadInfo = ApiDBUtils.findUploadById(uploadId); - - ExtractResponse response = new ExtractResponse(); - response.setId(id); - response.setName(ApiDBUtils.findTemplateById(id).getName()); - response.setZoneId(zoneId); - response.setZoneName(ApiDBUtils.findZoneById(zoneId).getName()); - response.setMode(mode); - response.setUploadId(uploadId); - response.setState(uploadInfo.getUploadState().toString()); - response.setAccountId(getAccountId()); - //FIX ME - Need to set the url once the gson jar is upgraded since it is throwing an error right now due to a bug. - //response.setUrl(uploadInfo.getUploadUrl()); - response.setUrl(uploadInfo.getUploadUrl().replaceAll("/", "%2F")); - response.setResponseName(getName()); - response.setObjectName("iso"); - return response; - } - public static String getStaticName() { return s_name; } @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException, ResourceUnavailableException{ + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException, ResourceUnavailableException{ try { - Long result = _templateMgr.extract(this); - return result; + Long uploadId = _templateMgr.extract(this); + UploadVO uploadInfo = ApiDBUtils.findUploadById(uploadId); + ExtractResponse response = new ExtractResponse(); + response.setId(id); + response.setName(ApiDBUtils.findTemplateById(id).getName()); + response.setZoneId(zoneId); + response.setZoneName(ApiDBUtils.findZoneById(zoneId).getName()); + response.setMode(mode); + response.setUploadId(uploadId); + response.setState(uploadInfo.getUploadState().toString()); + response.setAccountId(getAccountId()); + //FIX ME - Need to set the url once the gson jar is upgraded since it is throwing an error right now due to a bug. + //response.setUrl(uploadInfo.getUploadUrl()); + response.setUrl(uploadInfo.getUploadUrl().replaceAll("/", "%2F")); + response.setResponseName(getName()); + response.setObjectName("iso"); + this.setResponseObject(response); } catch (InternalErrorException ex) { throw new ServerApiException(BaseCmd.INTERNAL_ERROR, ex.getMessage()); } diff --git a/server/src/com/cloud/api/commands/ExtractTemplateCmd.java b/server/src/com/cloud/api/commands/ExtractTemplateCmd.java index 9883d656122..be27c07bf0d 100755 --- a/server/src/com/cloud/api/commands/ExtractTemplateCmd.java +++ b/server/src/com/cloud/api/commands/ExtractTemplateCmd.java @@ -37,10 +37,9 @@ import com.cloud.exception.PermissionDeniedException; import com.cloud.exception.ResourceUnavailableException; import com.cloud.storage.UploadVO; import com.cloud.storage.VMTemplateVO; -import com.cloud.template.TemplateManager; import com.cloud.user.Account; -@Implementation(method="extract", manager=TemplateManager.class) +@Implementation(description="Extracts a template") public class ExtractTemplateCmd extends BaseAsyncCmd { public static final Logger s_logger = Logger.getLogger(ExtractTemplateCmd.class.getName()); @@ -115,34 +114,28 @@ public class ExtractTemplateCmd extends BaseAsyncCmd { public String getEventDescription() { return "Extraction job"; } - - @Override @SuppressWarnings("unchecked") - public ExtractResponse getResponse() { - Long uploadId = (Long)getResponseObject(); - UploadVO uploadInfo = ApiDBUtils.findUploadById(uploadId); - - ExtractResponse response = new ExtractResponse(); - response.setResponseName(getName()); - response.setObjectName("template"); - response.setId(id); - response.setName(ApiDBUtils.findTemplateById(id).getName()); - response.setZoneId(zoneId); - response.setZoneName(ApiDBUtils.findZoneById(zoneId).getName()); - response.setMode(mode); - response.setUploadId(uploadId); - response.setState(uploadInfo.getUploadState().toString()); - response.setAccountId(getAccountId()); - //FIX ME - Need to set the url once the gson jar is upgraded since it is throwing an error right now. - //response.setUrl(uploadInfo.getUploadUrl()); - response.setUrl(uploadInfo.getUploadUrl().replaceAll("/", "%2F")); - return response; - } @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException, ResourceUnavailableException{ + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException, ResourceUnavailableException{ try { - Long result = _templateMgr.extract(this); - return result; + Long uploadId = _templateMgr.extract(this); + UploadVO uploadInfo = ApiDBUtils.findUploadById(uploadId); + + ExtractResponse response = new ExtractResponse(); + response.setResponseName(getName()); + response.setObjectName("template"); + response.setId(id); + response.setName(ApiDBUtils.findTemplateById(id).getName()); + response.setZoneId(zoneId); + response.setZoneName(ApiDBUtils.findZoneById(zoneId).getName()); + response.setMode(mode); + response.setUploadId(uploadId); + response.setState(uploadInfo.getUploadState().toString()); + response.setAccountId(getAccountId()); + //FIX ME - Need to set the url once the gson jar is upgraded since it is throwing an error right now. + //response.setUrl(uploadInfo.getUploadUrl()); + response.setUrl(uploadInfo.getUploadUrl().replaceAll("/", "%2F")); + this.setResponseObject(response); } catch (InternalErrorException ex) { throw new ServerApiException(BaseCmd.INTERNAL_ERROR, ex.getMessage()); } diff --git a/server/src/com/cloud/api/commands/ExtractVolumeCmd.java b/server/src/com/cloud/api/commands/ExtractVolumeCmd.java index fa034e74923..22c7790e682 100755 --- a/server/src/com/cloud/api/commands/ExtractVolumeCmd.java +++ b/server/src/com/cloud/api/commands/ExtractVolumeCmd.java @@ -40,7 +40,7 @@ import com.cloud.storage.UploadVO; import com.cloud.storage.VolumeVO; import com.cloud.user.Account; -@Implementation(method="extractVolume") +@Implementation(description="Extracts volume") public class ExtractVolumeCmd extends BaseAsyncCmd { public static final Logger s_logger = Logger.getLogger(ExtractVolumeCmd.class.getName()); @@ -93,6 +93,10 @@ public class ExtractVolumeCmd extends BaseAsyncCmd { public String getName() { return s_name; } + + public static String getStaticName() { + return s_name; + } @Override public long getAccountId() { @@ -114,37 +118,27 @@ public class ExtractVolumeCmd extends BaseAsyncCmd { public String getEventDescription() { return "Extraction job"; } - - @Override @SuppressWarnings("unchecked") - public ExtractResponse getResponse() { - Long uploadId = (Long)getResponseObject(); - UploadVO uploadInfo = ApiDBUtils.findUploadById(uploadId); - - ExtractResponse response = new ExtractResponse(); - response.setResponseName(getName()); - response.setObjectName("volume"); - response.setId(id); - response.setName(ApiDBUtils.findVolumeById(id).getName()); - response.setZoneId(zoneId); - response.setZoneName(ApiDBUtils.findZoneById(zoneId).getName()); - response.setMode(mode); - response.setUploadId(uploadId); - response.setState(uploadInfo.getUploadState().toString()); - response.setAccountId(getAccountId()); - //FIX ME - Need to set the url once the gson jar is upgraded since it is throwing an error right now. - response.setUrl(uploadInfo.getUploadUrl().replaceAll("/", "%2F")); - return response; - } - - public static String getStaticName() { - return s_name; - } @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException, ResourceUnavailableException{ + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException, ResourceUnavailableException{ try { - Long result = _mgr.extractVolume(this); - return result; + Long uploadId = _mgr.extractVolume(this); + UploadVO uploadInfo = ApiDBUtils.findUploadById(uploadId); + + ExtractResponse response = new ExtractResponse(); + response.setResponseName(getName()); + response.setObjectName("volume"); + response.setId(id); + response.setName(ApiDBUtils.findVolumeById(id).getName()); + response.setZoneId(zoneId); + response.setZoneName(ApiDBUtils.findZoneById(zoneId).getName()); + response.setMode(mode); + response.setUploadId(uploadId); + response.setState(uploadInfo.getUploadState().toString()); + response.setAccountId(getAccountId()); + //FIX ME - Need to set the url once the gson jar is upgraded since it is throwing an error right now. + response.setUrl(uploadInfo.getUploadUrl().replaceAll("/", "%2F")); + this.setResponseObject(response); } catch (URISyntaxException ex) { throw new ServerApiException(BaseCmd.INTERNAL_ERROR, ex.getMessage()); } diff --git a/server/src/com/cloud/api/commands/GetCloudIdentifierCmd.java b/server/src/com/cloud/api/commands/GetCloudIdentifierCmd.java index 98098b7ea5e..6f403e2c128 100644 --- a/server/src/com/cloud/api/commands/GetCloudIdentifierCmd.java +++ b/server/src/com/cloud/api/commands/GetCloudIdentifierCmd.java @@ -33,9 +33,8 @@ import com.cloud.exception.InsufficientAddressCapacityException; import com.cloud.exception.InsufficientCapacityException; import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.PermissionDeniedException; -import com.cloud.server.ManagementServer; -@Implementation(method="getCloudIdentifierResponse", manager=ManagementServer.class, description="Retrieves a cloud identifier.") +@Implementation(description="Retrieves a cloud identifier.") public class GetCloudIdentifierCmd extends BaseCmd { public static final Logger s_logger = Logger.getLogger(GetCloudIdentifierCmd.class.getName()); private static final String s_name = "getcloudidentifierresponse"; @@ -65,25 +64,19 @@ public class GetCloudIdentifierCmd extends BaseCmd { return s_name; } - @Override @SuppressWarnings("unchecked") - public CloudIdentifierResponse getResponse() { + @Override + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + ArrayList result = _mgr.getCloudIdentifierResponse(this); CloudIdentifierResponse response = new CloudIdentifierResponse(); - ArrayList responseObject = (ArrayList)getResponseObject(); - if (responseObject != null) { - response.setCloudIdentifier(responseObject.get(0)); - response.setSignature(responseObject.get(1)); + if (result != null) { + response.setCloudIdentifier(result.get(0)); + response.setSignature(result.get(1)); } else { throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to add config"); } response.setObjectName("cloudidentifier"); response.setResponseName(getName()); - return response; - } - - @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ - ArrayList result = _mgr.getCloudIdentifierResponse(this); - return result; + this.setResponseObject(response); } } \ No newline at end of file diff --git a/server/src/com/cloud/api/commands/ListAccountsCmd.java b/server/src/com/cloud/api/commands/ListAccountsCmd.java index 33c7d6edcf9..2565853132a 100644 --- a/server/src/com/cloud/api/commands/ListAccountsCmd.java +++ b/server/src/com/cloud/api/commands/ListAccountsCmd.java @@ -35,10 +35,9 @@ import com.cloud.exception.InsufficientAddressCapacityException; import com.cloud.exception.InsufficientCapacityException; import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.PermissionDeniedException; -import com.cloud.server.ManagementServer; import com.cloud.user.AccountVO; -@Implementation(method="searchForAccounts",manager=ManagementServer.class,description="Lists accounts and provides detailed account information for listed accounts") +@Implementation(description="Lists accounts and provides detailed account information for listed accounts") public class ListAccountsCmd extends BaseListCmd { public static final Logger s_logger = Logger.getLogger(ListAccountsCmd.class.getName()); private static final String s_name = "listaccountsresponse"; @@ -110,12 +109,10 @@ public class ListAccountsCmd extends BaseListCmd { return s_name; } - @Override @SuppressWarnings("unchecked") - public ListResponse getResponse() { - List accounts = (List)getResponseObject(); - + @Override + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + List accounts = _mgr.searchForAccounts(this); ListResponse response = new ListResponse(); - List accountResponses = new ArrayList(); for (AccountVO account : accounts) { AccountResponse acctResponse = ApiResponseHelper.createAccountResponse(account); @@ -125,12 +122,7 @@ public class ListAccountsCmd extends BaseListCmd { response.setResponses(accountResponses); response.setResponseName(getName()); - return response; - } - - @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ - List result = _mgr.searchForAccounts(this); - return result; + + this.setResponseObject(response); } } diff --git a/server/src/com/cloud/api/commands/ListAlertsCmd.java b/server/src/com/cloud/api/commands/ListAlertsCmd.java index 5d9c6c47599..417a2086b28 100644 --- a/server/src/com/cloud/api/commands/ListAlertsCmd.java +++ b/server/src/com/cloud/api/commands/ListAlertsCmd.java @@ -36,7 +36,7 @@ import com.cloud.exception.InsufficientCapacityException; import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.PermissionDeniedException; -@Implementation(method="searchForAlerts", description="Lists all alerts.") +@Implementation(description="Lists all alerts.") public class ListAlertsCmd extends BaseListCmd { public static final Logger s_logger = Logger.getLogger(ListAlertsCmd.class.getName()); @@ -66,14 +66,13 @@ public class ListAlertsCmd extends BaseListCmd { public String getName() { return s_name; } - - @Override @SuppressWarnings("unchecked") - public ListResponse getResponse() { - List alertList = (List)getResponseObject(); - + + @Override + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + List result = _mgr.searchForAlerts(this); ListResponse response = new ListResponse(); List alertResponseList = new ArrayList(); - for (AlertVO alert : alertList) { + for (AlertVO alert : result) { AlertResponse alertResponse = new AlertResponse(); alertResponse.setId(alert.getId()); alertResponse.setAlertType(alert.getType()); @@ -86,12 +85,6 @@ public class ListAlertsCmd extends BaseListCmd { response.setResponses(alertResponseList); response.setResponseName(getName()); - return response; - } - - @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ - List result = _mgr.searchForAlerts(this); - return result; + this.setResponseObject(response); } } diff --git a/server/src/com/cloud/api/commands/ListAsyncJobsCmd.java b/server/src/com/cloud/api/commands/ListAsyncJobsCmd.java index e36628bf13f..6eb12c8197b 100644 --- a/server/src/com/cloud/api/commands/ListAsyncJobsCmd.java +++ b/server/src/com/cloud/api/commands/ListAsyncJobsCmd.java @@ -37,7 +37,7 @@ import com.cloud.exception.InsufficientCapacityException; import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.PermissionDeniedException; -@Implementation(method="searchForAsyncJobs", description="Lists all pending asynchronous jobs for the account.") +@Implementation(description="Lists all pending asynchronous jobs for the account.") public class ListAsyncJobsCmd extends BaseListCmd { private static final String s_name = "listasyncjobsresponse"; @@ -79,13 +79,12 @@ public class ListAsyncJobsCmd extends BaseListCmd { return s_name; } - @Override @SuppressWarnings("unchecked") - public ListResponse getResponse() { - List jobs = (List)getResponseObject(); - + @Override + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + List result = _mgr.searchForAsyncJobs(this); ListResponse response = new ListResponse(); List jobResponses = new ArrayList(); - for (AsyncJobVO job : jobs) { + for (AsyncJobVO job : result) { AsyncJobResponse jobResponse = new AsyncJobResponse(); jobResponse.setAccountId(job.getAccountId()); jobResponse.setCmd(job.getCmd()); @@ -105,12 +104,6 @@ public class ListAsyncJobsCmd extends BaseListCmd { response.setResponses(jobResponses); response.setResponseName(getName()); - return response; - } - - @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ - List result = _mgr.searchForAsyncJobs(this); - return result; + this.setResponseObject(response); } } diff --git a/server/src/com/cloud/api/commands/ListCapabilitiesCmd.java b/server/src/com/cloud/api/commands/ListCapabilitiesCmd.java index 4519e620cc8..7e8db2da117 100644 --- a/server/src/com/cloud/api/commands/ListCapabilitiesCmd.java +++ b/server/src/com/cloud/api/commands/ListCapabilitiesCmd.java @@ -31,7 +31,7 @@ import com.cloud.exception.InsufficientCapacityException; import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.PermissionDeniedException; -@Implementation(method="listCapabilities") +@Implementation(description="Lists capabilities") public class ListCapabilitiesCmd extends BaseCmd { public static final Logger s_logger = Logger.getLogger(ListCapabilitiesCmd.class.getName()); @@ -41,23 +41,15 @@ public class ListCapabilitiesCmd extends BaseCmd { public String getName() { return s_name; } - - @Override @SuppressWarnings("unchecked") - public CapabilitiesResponse getResponse() { - Map capabilities = (Map)getResponseObject(); - + + @Override + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + Map capabilities = _mgr.listCapabilities(this); CapabilitiesResponse response = new CapabilitiesResponse(); response.setNetworkGroupsEnabled(capabilities.get("networkGroupsEnabled")); response.setCloudStackVersion(capabilities.get("cloudStackVersion")); response.setObjectName("capability"); response.setResponseName(getName()); - - return response; - } - - @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ - Map result = _mgr.listCapabilities(this); - return result; + this.setResponseObject(response); } } diff --git a/server/src/com/cloud/api/commands/ListCapacityCmd.java b/server/src/com/cloud/api/commands/ListCapacityCmd.java index 956829e2f7c..b7b0ba52faa 100644 --- a/server/src/com/cloud/api/commands/ListCapacityCmd.java +++ b/server/src/com/cloud/api/commands/ListCapacityCmd.java @@ -47,7 +47,7 @@ import com.cloud.server.Criteria; import com.cloud.storage.Storage.StoragePoolType; import com.cloud.storage.StoragePoolVO; -@Implementation(method="listCapacities", description="Lists capacity.") +@Implementation(description="Lists capacity.") public class ListCapacityCmd extends BaseListCmd { public static final Logger s_logger = Logger.getLogger(ListCapacityCmd.class.getName()); @@ -109,44 +109,6 @@ public class ListCapacityCmd extends BaseListCmd { pageSizeVal = pageSize.longValue(); } return pageSizeVal; - } - - @Override @SuppressWarnings("unchecked") - public ListResponse getResponse() { - List capacities = (List)getResponseObject(); - - ListResponse response = new ListResponse(); - List capacityResponses = new ArrayList(); - List summedCapacities = sumCapacities(capacities); - for (CapacityVO summedCapacity : summedCapacities) { - CapacityResponse capacityResponse = new CapacityResponse(); - capacityResponse.setCapacityTotal(summedCapacity.getTotalCapacity()); - capacityResponse.setCapacityType(summedCapacity.getCapacityType()); - capacityResponse.setCapacityUsed(summedCapacity.getUsedCapacity()); - if (summedCapacity.getPodId() != null) { - capacityResponse.setPodId(summedCapacity.getPodId()); - if (summedCapacity.getPodId() > 0) { - capacityResponse.setPodName(ApiDBUtils.findPodById(summedCapacity.getPodId()).getName()); - } else { - capacityResponse.setPodName("All"); - } - } - capacityResponse.setZoneId(summedCapacity.getDataCenterId()); - capacityResponse.setZoneName(ApiDBUtils.findZoneById(summedCapacity.getDataCenterId()).getName()); - if (summedCapacity.getTotalCapacity() != 0) { - float computed = ((float)summedCapacity.getUsedCapacity() / (float)summedCapacity.getTotalCapacity() * 100f); - capacityResponse.setPercentUsed(s_percentFormat.format((float)summedCapacity.getUsedCapacity() / (float)summedCapacity.getTotalCapacity() * 100f)); - } else { - capacityResponse.setPercentUsed(s_percentFormat.format(0L)); - } - - capacityResponse.setObjectName("capacity"); - capacityResponses.add(capacityResponse); - } - - response.setResponses(capacityResponses); - response.setResponseName(getName()); - return response; } private List sumCapacities(List hostCapacities) { @@ -238,8 +200,39 @@ public class ListCapacityCmd extends BaseListCmd { } @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ List result = _mgr.listCapacities(this); - return result; + ListResponse response = new ListResponse(); + List capacityResponses = new ArrayList(); + List summedCapacities = sumCapacities(result); + for (CapacityVO summedCapacity : summedCapacities) { + CapacityResponse capacityResponse = new CapacityResponse(); + capacityResponse.setCapacityTotal(summedCapacity.getTotalCapacity()); + capacityResponse.setCapacityType(summedCapacity.getCapacityType()); + capacityResponse.setCapacityUsed(summedCapacity.getUsedCapacity()); + if (summedCapacity.getPodId() != null) { + capacityResponse.setPodId(summedCapacity.getPodId()); + if (summedCapacity.getPodId() > 0) { + capacityResponse.setPodName(ApiDBUtils.findPodById(summedCapacity.getPodId()).getName()); + } else { + capacityResponse.setPodName("All"); + } + } + capacityResponse.setZoneId(summedCapacity.getDataCenterId()); + capacityResponse.setZoneName(ApiDBUtils.findZoneById(summedCapacity.getDataCenterId()).getName()); + if (summedCapacity.getTotalCapacity() != 0) { + float computed = ((float)summedCapacity.getUsedCapacity() / (float)summedCapacity.getTotalCapacity() * 100f); + capacityResponse.setPercentUsed(s_percentFormat.format((float)summedCapacity.getUsedCapacity() / (float)summedCapacity.getTotalCapacity() * 100f)); + } else { + capacityResponse.setPercentUsed(s_percentFormat.format(0L)); + } + + capacityResponse.setObjectName("capacity"); + capacityResponses.add(capacityResponse); + } + + response.setResponses(capacityResponses); + response.setResponseName(getName()); + this.setResponseObject(response); } } diff --git a/server/src/com/cloud/api/commands/ListCfgsByCmd.java b/server/src/com/cloud/api/commands/ListCfgsByCmd.java index 5af076c6c3e..9b3af47c65d 100644 --- a/server/src/com/cloud/api/commands/ListCfgsByCmd.java +++ b/server/src/com/cloud/api/commands/ListCfgsByCmd.java @@ -38,7 +38,7 @@ import com.cloud.exception.InsufficientCapacityException; import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.PermissionDeniedException; -@Implementation(method="searchForConfigurations", description="Lists all configurations.") +@Implementation(description="Lists all configurations.") public class ListCfgsByCmd extends BaseListCmd { public static final Logger s_logger = Logger.getLogger(ListCfgsByCmd.class.getName()); @@ -76,14 +76,13 @@ public class ListCfgsByCmd extends BaseListCmd { public String getName() { return s_name; } - - @Override @SuppressWarnings("unchecked") - public ListResponse getResponse() { - List configurations = (List)getResponseObject(); - + + @Override + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + List result = _mgr.searchForConfigurations(this); ListResponse response = new ListResponse(); List configResponses = new ArrayList(); - for (ConfigurationVO cfg : configurations) { + for (ConfigurationVO cfg : result) { ConfigurationResponse cfgResponse = ApiResponseHelper.createConfigurationResponse(cfg); cfgResponse.setObjectName("configuration"); configResponses.add(cfgResponse); @@ -91,12 +90,6 @@ public class ListCfgsByCmd extends BaseListCmd { response.setResponses(configResponses); response.setResponseName(getName()); - return response; - } - - @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ - List result = _mgr.searchForConfigurations(this); - return result; + this.setResponseObject(response); } } diff --git a/server/src/com/cloud/api/commands/ListClustersCmd.java b/server/src/com/cloud/api/commands/ListClustersCmd.java index e12f88f08cc..f13992b863a 100644 --- a/server/src/com/cloud/api/commands/ListClustersCmd.java +++ b/server/src/com/cloud/api/commands/ListClustersCmd.java @@ -38,7 +38,7 @@ import com.cloud.exception.InsufficientCapacityException; import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.PermissionDeniedException; -@Implementation(method="searchForClusters", description="Lists clusters.") +@Implementation(description="Lists clusters.") public class ListClustersCmd extends BaseListCmd { public static final Logger s_logger = Logger.getLogger(ListServiceOfferingsCmd.class.getName()); @@ -89,14 +89,13 @@ public class ListClustersCmd extends BaseListCmd { public String getName() { return s_name; } - - @Override @SuppressWarnings("unchecked") - public ListResponse getResponse() { - List clusters = (List)getResponseObject(); - + + @Override + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + List result = _mgr.searchForClusters(this); ListResponse response = new ListResponse(); List clusterResponses = new ArrayList(); - for (ClusterVO cluster : clusters) { + for (ClusterVO cluster : result) { ClusterResponse clusterResponse = ApiResponseHelper.createClusterResponse(cluster); clusterResponse.setObjectName("cluster"); clusterResponses.add(clusterResponse); @@ -104,12 +103,6 @@ public class ListClustersCmd extends BaseListCmd { response.setResponses(clusterResponses); response.setResponseName(getName()); - return response; - } - - @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ - List result = _mgr.searchForClusters(this); - return result; + this.setResponseObject(response); } } diff --git a/server/src/com/cloud/api/commands/ListDiskOfferingsCmd.java b/server/src/com/cloud/api/commands/ListDiskOfferingsCmd.java index 83fa65567b6..e3949329c53 100644 --- a/server/src/com/cloud/api/commands/ListDiskOfferingsCmd.java +++ b/server/src/com/cloud/api/commands/ListDiskOfferingsCmd.java @@ -37,7 +37,7 @@ import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.PermissionDeniedException; import com.cloud.storage.DiskOfferingVO; -@Implementation(method="searchForDiskOfferings", description="Lists all available disk offerings.") +@Implementation(description="Lists all available disk offerings.") public class ListDiskOfferingsCmd extends BaseListCmd { public static final Logger s_logger = Logger.getLogger(ListDiskOfferingsCmd.class.getName()); @@ -81,13 +81,12 @@ public class ListDiskOfferingsCmd extends BaseListCmd { return s_name; } - @Override @SuppressWarnings("unchecked") - public ListResponse getResponse() { - List offerings = (List)getResponseObject(); - + @Override + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + List result = _mgr.searchForDiskOfferings(this); ListResponse response = new ListResponse(); List diskOfferingResponses = new ArrayList(); - for (DiskOfferingVO offering : offerings) { + for (DiskOfferingVO offering : result) { DiskOfferingResponse diskOffResp = ApiResponseHelper.createDiskOfferingResponse(offering); diskOffResp.setObjectName("diskoffering"); diskOfferingResponses.add(diskOffResp); @@ -95,12 +94,6 @@ public class ListDiskOfferingsCmd extends BaseListCmd { response.setResponses(diskOfferingResponses); response.setResponseName(getName()); - return response; - } - - @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ - List result = _mgr.searchForDiskOfferings(this); - return result; + this.setResponseObject(response); } } diff --git a/server/src/com/cloud/api/commands/ListDomainChildrenCmd.java b/server/src/com/cloud/api/commands/ListDomainChildrenCmd.java index cf5f0a9b63b..c6ffd0364b6 100644 --- a/server/src/com/cloud/api/commands/ListDomainChildrenCmd.java +++ b/server/src/com/cloud/api/commands/ListDomainChildrenCmd.java @@ -37,7 +37,7 @@ import com.cloud.exception.InsufficientCapacityException; import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.PermissionDeniedException; -@Implementation(method="searchForDomainChildren", description="Lists all children domains belonging to a specified domain") +@Implementation(description="Lists all children domains belonging to a specified domain") public class ListDomainChildrenCmd extends BaseListCmd { public static final Logger s_logger = Logger.getLogger(ListDomainChildrenCmd.class.getName()); @@ -79,15 +79,14 @@ public class ListDomainChildrenCmd extends BaseListCmd { @Override public String getName() { return s_name; - } - - @Override @SuppressWarnings("unchecked") - public ListResponse getResponse() { - List domains = (List)getResponseObject(); - + } + + @Override + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + List result = _mgr.searchForDomainChildren(this); ListResponse response = new ListResponse(); List domainResponses = new ArrayList(); - for (DomainVO domain : domains) { + for (DomainVO domain : result) { DomainResponse domainResponse = ApiResponseHelper.createDomainResponse(domain); domainResponse.setObjectName("domain"); domainResponses.add(domainResponse); @@ -95,12 +94,6 @@ public class ListDomainChildrenCmd extends BaseListCmd { response.setResponses(domainResponses); response.setResponseName(getName()); - return response; - } - - @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ - List result = _mgr.searchForDomainChildren(this); - return result; + this.setResponseObject(response); } } diff --git a/server/src/com/cloud/api/commands/ListDomainsCmd.java b/server/src/com/cloud/api/commands/ListDomainsCmd.java index cb0ed2231a4..d2040b62c22 100644 --- a/server/src/com/cloud/api/commands/ListDomainsCmd.java +++ b/server/src/com/cloud/api/commands/ListDomainsCmd.java @@ -37,7 +37,7 @@ import com.cloud.exception.InsufficientCapacityException; import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.PermissionDeniedException; -@Implementation(method="searchForDomains", description="Lists domains and provides detailed information for listed domains") +@Implementation(description="Lists domains and provides detailed information for listed domains") public class ListDomainsCmd extends BaseListCmd { public static final Logger s_logger = Logger.getLogger(ListDomainsCmd.class.getName()); @@ -81,13 +81,12 @@ public class ListDomainsCmd extends BaseListCmd { return s_name; } - @Override @SuppressWarnings("unchecked") - public ListResponse getResponse() { - List domains = (List)getResponseObject(); - + @Override + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + List result = _mgr.searchForDomains(this); ListResponse response = new ListResponse(); List domainResponses = new ArrayList(); - for (DomainVO domain : domains) { + for (DomainVO domain : result) { DomainResponse domainResponse = ApiResponseHelper.createDomainResponse(domain); domainResponse.setObjectName("domain"); domainResponses.add(domainResponse); @@ -95,12 +94,6 @@ public class ListDomainsCmd extends BaseListCmd { response.setResponses(domainResponses); response.setResponseName(getName()); - return response; - } - - @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ - List result = _mgr.searchForDomains(this); - return result; + this.setResponseObject(response); } } diff --git a/server/src/com/cloud/api/commands/ListEventsCmd.java b/server/src/com/cloud/api/commands/ListEventsCmd.java index 39bfa3e39dd..73b030764d2 100644 --- a/server/src/com/cloud/api/commands/ListEventsCmd.java +++ b/server/src/com/cloud/api/commands/ListEventsCmd.java @@ -39,7 +39,7 @@ import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.PermissionDeniedException; import com.cloud.user.User; -@Implementation(method="searchForEvents", description="A command to list events.") +@Implementation(description="A command to list events.") public class ListEventsCmd extends BaseListCmd { public static final Logger s_logger = Logger.getLogger(ListEventsCmd.class.getName()); @@ -118,13 +118,12 @@ public class ListEventsCmd extends BaseListCmd { return s_name; } - @Override @SuppressWarnings("unchecked") - public ListResponse getResponse() { - List events = (List)getResponseObject(); - + @Override + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + List result = _mgr.searchForEvents(this); ListResponse response = new ListResponse(); List eventResponses = new ArrayList(); - for (EventVO event : events) { + for (EventVO event : result) { EventResponse responseEvent = new EventResponse(); responseEvent.setAccountName(event.getAccountName()); responseEvent.setCreated(event.getCreateDate()); @@ -147,12 +146,6 @@ public class ListEventsCmd extends BaseListCmd { response.setResponses(eventResponses); response.setResponseName(getName()); - return response; - } - - @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ - List result = _mgr.searchForEvents(this); - return result; + this.setResponseObject(response); } } diff --git a/server/src/com/cloud/api/commands/ListGuestOsCategoriesCmd.java b/server/src/com/cloud/api/commands/ListGuestOsCategoriesCmd.java index b17516fcdf4..715930fbdd9 100644 --- a/server/src/com/cloud/api/commands/ListGuestOsCategoriesCmd.java +++ b/server/src/com/cloud/api/commands/ListGuestOsCategoriesCmd.java @@ -37,7 +37,7 @@ import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.PermissionDeniedException; import com.cloud.storage.GuestOSCategoryVO; -@Implementation(method="listGuestOSCategoriesByCriteria", description="Lists all supported OS categories for this cloud.") +@Implementation(description="Lists all supported OS categories for this cloud.") public class ListGuestOsCategoriesCmd extends BaseListCmd { public static final Logger s_logger = Logger.getLogger(ListIsosCmd.class.getName()); @@ -68,14 +68,13 @@ public class ListGuestOsCategoriesCmd extends BaseListCmd { public String getName() { return s_name; } - - @Override @SuppressWarnings("unchecked") - public ListResponse getResponse() { - List osCategories = (List)getResponseObject(); - + + @Override + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + List result = _mgr.listGuestOSCategoriesByCriteria(this); ListResponse response = new ListResponse(); List osCatResponses = new ArrayList(); - for (GuestOSCategoryVO osCategory : osCategories) { + for (GuestOSCategoryVO osCategory : result) { GuestOSCategoryResponse categoryResponse = new GuestOSCategoryResponse(); categoryResponse.setId(osCategory.getId()); categoryResponse.setName(osCategory.getName()); @@ -86,12 +85,6 @@ public class ListGuestOsCategoriesCmd extends BaseListCmd { response.setResponses(osCatResponses); response.setResponseName(getName()); - return response; - } - - @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ - List result = _mgr.listGuestOSCategoriesByCriteria(this); - return result; + this.setResponseObject(response); } } diff --git a/server/src/com/cloud/api/commands/ListGuestOsCmd.java b/server/src/com/cloud/api/commands/ListGuestOsCmd.java index 8fd7a64b3f5..a26681f2c2b 100644 --- a/server/src/com/cloud/api/commands/ListGuestOsCmd.java +++ b/server/src/com/cloud/api/commands/ListGuestOsCmd.java @@ -37,7 +37,7 @@ import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.PermissionDeniedException; import com.cloud.storage.GuestOSVO; -@Implementation(method="listGuestOSByCriteria", description="Lists all supported OS types for this cloud.") +@Implementation(description="Lists all supported OS types for this cloud.") public class ListGuestOsCmd extends BaseListCmd { public static final Logger s_logger = Logger.getLogger(ListIsosCmd.class.getName()); @@ -85,14 +85,13 @@ public class ListGuestOsCmd extends BaseListCmd { public String getName() { return s_name; } - - @Override @SuppressWarnings("unchecked") - public ListResponse getResponse() { - List guestOSList = (List)getResponseObject(); - + + @Override + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + List result = _mgr.listGuestOSByCriteria(this); ListResponse response = new ListResponse(); List osResponses = new ArrayList(); - for (GuestOSVO guestOS : guestOSList) { + for (GuestOSVO guestOS : result) { GuestOSResponse guestOSResponse = new GuestOSResponse(); guestOSResponse.setDescription(guestOS.getDisplayName()); guestOSResponse.setId(guestOS.getId()); @@ -104,12 +103,6 @@ public class ListGuestOsCmd extends BaseListCmd { response.setResponses(osResponses); response.setResponseName(getName()); - return response; - } - - @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ - List result = _mgr.listGuestOSByCriteria(this); - return result; + this.setResponseObject(response); } } diff --git a/server/src/com/cloud/api/commands/ListHostsCmd.java b/server/src/com/cloud/api/commands/ListHostsCmd.java index c8262f1ab7f..1b43cde8af8 100644 --- a/server/src/com/cloud/api/commands/ListHostsCmd.java +++ b/server/src/com/cloud/api/commands/ListHostsCmd.java @@ -38,7 +38,7 @@ import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.PermissionDeniedException; import com.cloud.host.HostVO; -@Implementation(method="searchForServers", description="Lists hosts.") +@Implementation(description="Lists hosts.") public class ListHostsCmd extends BaseListCmd { public static final Logger s_logger = Logger.getLogger(ListHostsCmd.class.getName()); @@ -112,13 +112,13 @@ public class ListHostsCmd extends BaseListCmd { return s_name; } - @Override @SuppressWarnings("unchecked") - public ListResponse getResponse() { - List hosts = (List)getResponseObject(); + @Override + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + List result = _mgr.searchForServers(this); ListResponse response = new ListResponse(); List hostResponses = new ArrayList(); - for (HostVO host : hosts) { + for (HostVO host : result) { HostResponse hostResponse = ApiResponseHelper.createHostResponse(host); hostResponse.setObjectName("host"); hostResponses.add(hostResponse); @@ -126,12 +126,6 @@ public class ListHostsCmd extends BaseListCmd { response.setResponses(hostResponses); response.setResponseName(getName()); - return response; - } - - @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ - List result = _mgr.searchForServers(this); - return result; + this.setResponseObject(response); } } diff --git a/server/src/com/cloud/api/commands/ListHypervisorsCmd.java b/server/src/com/cloud/api/commands/ListHypervisorsCmd.java index aa9c41ad1d6..4f26fe3c58a 100644 --- a/server/src/com/cloud/api/commands/ListHypervisorsCmd.java +++ b/server/src/com/cloud/api/commands/ListHypervisorsCmd.java @@ -32,7 +32,7 @@ import com.cloud.exception.InsufficientCapacityException; import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.PermissionDeniedException; -@Implementation(method="getHypervisors") +@Implementation(description="List hypervisors") public class ListHypervisorsCmd extends BaseCmd { public static final Logger s_logger = Logger.getLogger(UpgradeRouterCmd.class.getName()); private static final String s_name = "listhypervisorsresponse"; @@ -41,28 +41,21 @@ public class ListHypervisorsCmd extends BaseCmd { public String getName() { return s_name; } - - @Override @SuppressWarnings("unchecked") - public ListResponse getResponse() { - String[] hypervisorList = (String[])getResponseObject(); - - ListResponse response = new ListResponse(); - ArrayList responses = new ArrayList(); - for (String hypervisor : hypervisorList) { - HypervisorResponse hypervisorResponse = new HypervisorResponse(); - hypervisorResponse.setName(hypervisor); - hypervisorResponse.setObjectName("hypervisor"); - responses.add(hypervisorResponse); - } - - response.setResponses(responses); - response.setResponseName(getName()); - return response; - } @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ String[] result = _mgr.getHypervisors(this); - return result; + ListResponse response = new ListResponse(); + ArrayList responses = new ArrayList(); + for (String hypervisor : result) { + HypervisorResponse hypervisorResponse = new HypervisorResponse(); + hypervisorResponse.setName(hypervisor); + hypervisorResponse.setObjectName("hypervisor"); + responses.add(hypervisorResponse); + } + + response.setResponses(responses); + response.setResponseName(getName()); + this.setResponseObject(response); } } diff --git a/server/src/com/cloud/api/commands/ListIsosCmd.java b/server/src/com/cloud/api/commands/ListIsosCmd.java index 538f71d1734..e21ca7eecd5 100755 --- a/server/src/com/cloud/api/commands/ListIsosCmd.java +++ b/server/src/com/cloud/api/commands/ListIsosCmd.java @@ -49,7 +49,7 @@ import com.cloud.storage.dao.VMTemplateDao.TemplateFilter; import com.cloud.user.Account; import com.cloud.user.UserContext; -@Implementation(method="listIsos", description="Lists all available ISO files.") +@Implementation(description="Lists all available ISO files.") public class ListIsosCmd extends BaseListCmd { public static final Logger s_logger = Logger.getLogger(ListIsosCmd.class.getName()); @@ -145,9 +145,10 @@ public class ListIsosCmd extends BaseListCmd { public String getName() { return s_name; } - - @Override @SuppressWarnings("unchecked") - public ListResponse getResponse() { + + @Override + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + List isos = _mgr.listIsos(this); TemplateFilter isoFilterObj = null; try { @@ -177,7 +178,6 @@ public class ListIsosCmd extends BaseListCmd { (isoFilterObj == TemplateFilter.executable && isAccountSpecific) || (isoFilterObj == TemplateFilter.community); - List isos = (List)getResponseObject(); Map> isoHostsMap = new HashMap>(); for (VMTemplateVO iso : isos) { @@ -288,12 +288,6 @@ public class ListIsosCmd extends BaseListCmd { response.setResponses(isoResponses); response.setResponseName(getName()); - return response; - } - - @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ - List result = _mgr.listIsos(this); - return result; + this.setResponseObject(response); } } diff --git a/server/src/com/cloud/api/commands/ListLoadBalancerRuleInstancesCmd.java b/server/src/com/cloud/api/commands/ListLoadBalancerRuleInstancesCmd.java index a44f7bbf8df..cf922be9312 100644 --- a/server/src/com/cloud/api/commands/ListLoadBalancerRuleInstancesCmd.java +++ b/server/src/com/cloud/api/commands/ListLoadBalancerRuleInstancesCmd.java @@ -37,7 +37,7 @@ import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.PermissionDeniedException; import com.cloud.vm.UserVmVO; -@Implementation(method="listLoadBalancerInstances", description="List all virtual machine instances that are assigned to a load balancer rule.") +@Implementation(description="List all virtual machine instances that are assigned to a load balancer rule.") public class ListLoadBalancerRuleInstancesCmd extends BaseListCmd { public static final Logger s_logger = Logger.getLogger (ListLoadBalancerRuleInstancesCmd.class.getName()); @@ -73,14 +73,13 @@ public class ListLoadBalancerRuleInstancesCmd extends BaseListCmd { public String getName() { return s_name; } - - @Override @SuppressWarnings("unchecked") - public ListResponse getResponse() { - List instances = (List)getResponseObject(); - + + @Override + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + List result = _mgr.listLoadBalancerInstances(this); ListResponse response = new ListResponse(); List vmResponses = new ArrayList(); - for (UserVmVO instance : instances) { + for (UserVmVO instance : result) { UserVmResponse userVmResponse = ApiResponseHelper.createUserVmResponse(instance); userVmResponse.setObjectName("loadbalancerruleinstance"); vmResponses.add(userVmResponse); @@ -88,12 +87,6 @@ public class ListLoadBalancerRuleInstancesCmd extends BaseListCmd { response.setResponses(vmResponses); response.setResponseName(getName()); - return response; - } - - @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ - List result = _mgr.listLoadBalancerInstances(this); - return result; + this.setResponseObject(response); } } diff --git a/server/src/com/cloud/api/commands/ListLoadBalancerRulesCmd.java b/server/src/com/cloud/api/commands/ListLoadBalancerRulesCmd.java index 35d483ed6d5..241e6168bc0 100644 --- a/server/src/com/cloud/api/commands/ListLoadBalancerRulesCmd.java +++ b/server/src/com/cloud/api/commands/ListLoadBalancerRulesCmd.java @@ -38,7 +38,7 @@ import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.PermissionDeniedException; import com.cloud.network.LoadBalancerVO; -@Implementation(method="searchForLoadBalancers", description="Lists load balancer rules.") +@Implementation(description="Lists load balancer rules.") public class ListLoadBalancerRulesCmd extends BaseListCmd { public static final Logger s_logger = Logger.getLogger (ListLoadBalancerRulesCmd.class.getName()); @@ -103,10 +103,9 @@ public class ListLoadBalancerRulesCmd extends BaseListCmd { return s_name; } - @Override @SuppressWarnings("unchecked") - public ListResponse getResponse() { - List loadBalancers = (List)getResponseObject(); - + @Override + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + List loadBalancers = _mgr.searchForLoadBalancers(this); ListResponse response = new ListResponse(); List lbResponses = new ArrayList(); for (LoadBalancerVO loadBalancer : loadBalancers) { @@ -117,12 +116,6 @@ public class ListLoadBalancerRulesCmd extends BaseListCmd { response.setResponses(lbResponses); response.setResponseName(getName()); - return response; - } - - @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ - List result = _mgr.searchForLoadBalancers(this); - return result; + this.setResponseObject(response); } } diff --git a/server/src/com/cloud/api/commands/ListNetworkGroupsCmd.java b/server/src/com/cloud/api/commands/ListNetworkGroupsCmd.java index e17872b06bf..9a0454366d4 100644 --- a/server/src/com/cloud/api/commands/ListNetworkGroupsCmd.java +++ b/server/src/com/cloud/api/commands/ListNetworkGroupsCmd.java @@ -38,10 +38,9 @@ import com.cloud.exception.InsufficientAddressCapacityException; import com.cloud.exception.InsufficientCapacityException; import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.PermissionDeniedException; -import com.cloud.network.security.NetworkGroupManager; import com.cloud.network.security.NetworkGroupRulesVO; -@Implementation(method="searchForNetworkGroupRules", manager=NetworkGroupManager.class) +@Implementation(description="Lists network groups") public class ListNetworkGroupsCmd extends BaseListCmd { public static final Logger s_logger = Logger.getLogger(ListNetworkGroupsCmd.class.getName()); @@ -92,9 +91,9 @@ public class ListNetworkGroupsCmd extends BaseListCmd { return s_name; } - @Override @SuppressWarnings("unchecked") - public ListResponse getResponse() { - List networkGroups = (List)getResponseObject(); + @Override + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + List networkGroups = _networkGroupMgr.searchForNetworkGroupRules(this); List groupResultObjs = NetworkGroupResultObject.transposeNetworkGroups(networkGroups); ListResponse response = new ListResponse(); @@ -124,7 +123,7 @@ public class ListNetworkGroupsCmd extends BaseListCmd { ingressData.setStartPort(ingressRule.getStartPort()); ingressData.setEndPort(ingressRule.getEndPort()); } - + if (ingressRule.getAllowedNetworkGroup() != null) { ingressData.setNetworkGroupName(ingressRule.getAllowedNetworkGroup()); ingressData.setAccountName(ingressRule.getAllowedNetGroupAcct()); @@ -143,12 +142,6 @@ public class ListNetworkGroupsCmd extends BaseListCmd { response.setResponses(netGrpResponses); response.setResponseName(getName()); - return response; - } - - @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ - List result = _networkGroupMgr.searchForNetworkGroupRules(this); - return result; + this.setResponseObject(response); } } diff --git a/server/src/com/cloud/api/commands/ListPodsByCmd.java b/server/src/com/cloud/api/commands/ListPodsByCmd.java index 2945e0fcd8e..87c256ed6d7 100644 --- a/server/src/com/cloud/api/commands/ListPodsByCmd.java +++ b/server/src/com/cloud/api/commands/ListPodsByCmd.java @@ -38,7 +38,7 @@ import com.cloud.exception.InsufficientCapacityException; import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.PermissionDeniedException; -@Implementation(method="searchForPods", description="Lists all Pods.") +@Implementation(description="Lists all Pods.") public class ListPodsByCmd extends BaseListCmd { public static final Logger s_logger = Logger.getLogger(ListPodsByCmd.class.getName()); @@ -83,13 +83,12 @@ public class ListPodsByCmd extends BaseListCmd { return s_name; } - @Override @SuppressWarnings("unchecked") - public ListResponse getResponse() { - List pods = (List)getResponseObject(); - + @Override + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + List result = _mgr.searchForPods(this); ListResponse response = new ListResponse(); List podResponses = new ArrayList(); - for (HostPodVO pod : pods) { + for (HostPodVO pod : result) { PodResponse podResponse = ApiResponseHelper.createPodResponse(pod); podResponse.setObjectName("pod"); podResponses.add(podResponse); @@ -97,12 +96,6 @@ public class ListPodsByCmd extends BaseListCmd { response.setResponses(podResponses); response.setResponseName(getName()); - return response; - } - - @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ - List result = _mgr.searchForPods(this); - return result; + this.setResponseObject(response); } } diff --git a/server/src/com/cloud/api/commands/ListPortForwardingRulesCmd.java b/server/src/com/cloud/api/commands/ListPortForwardingRulesCmd.java index 2d056673a43..c857d1edfe0 100644 --- a/server/src/com/cloud/api/commands/ListPortForwardingRulesCmd.java +++ b/server/src/com/cloud/api/commands/ListPortForwardingRulesCmd.java @@ -36,9 +36,8 @@ import com.cloud.exception.InsufficientCapacityException; import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.PermissionDeniedException; import com.cloud.network.FirewallRuleVO; -import com.cloud.network.NetworkManager; -@Implementation(method="listPortForwardingRules", manager=NetworkManager.class, description="Lists all port forwarding rules for an IP address.") +@Implementation(description="Lists all port forwarding rules for an IP address.") public class ListPortForwardingRulesCmd extends BaseListCmd { public static final Logger s_logger = Logger.getLogger(ListPortForwardingRulesCmd.class.getName()); @@ -67,27 +66,20 @@ public class ListPortForwardingRulesCmd extends BaseListCmd { public String getName() { return s_name; } - - @Override @SuppressWarnings("unchecked") - public ListResponse getResponse() { - List firewallRules = (List)getResponseObject(); + + @Override + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + List result = _networkMgr.listPortForwardingRules(this); ListResponse response = new ListResponse(); List fwResponses = new ArrayList(); - for (FirewallRuleVO fwRule : firewallRules) { + for (FirewallRuleVO fwRule : result) { FirewallRuleResponse ruleData = ApiResponseHelper.createFirewallRuleResponse(fwRule); ruleData.setObjectName("portforwardingrule"); fwResponses.add(ruleData); } - response.setResponses(fwResponses); response.setResponseName(getName()); - return response; - } - - @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ - List result = _networkMgr.listPortForwardingRules(this); - return result; + this.setResponseObject(response); } } diff --git a/server/src/com/cloud/api/commands/ListPreallocatedLunsCmd.java b/server/src/com/cloud/api/commands/ListPreallocatedLunsCmd.java index 37a8092204c..01d9cf479e1 100644 --- a/server/src/com/cloud/api/commands/ListPreallocatedLunsCmd.java +++ b/server/src/com/cloud/api/commands/ListPreallocatedLunsCmd.java @@ -38,7 +38,7 @@ import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.PermissionDeniedException; import com.cloud.storage.preallocatedlun.PreallocatedLunVO; -@Implementation(method="getPreAllocatedLuns") +@Implementation() public class ListPreallocatedLunsCmd extends BaseListCmd { public static final Logger s_logger = Logger.getLogger(ListPreallocatedLunsCmd.class.getName()); @@ -77,10 +77,9 @@ public class ListPreallocatedLunsCmd extends BaseListCmd { return s_name; } - @Override @SuppressWarnings("unchecked") - public ListResponse getResponse() { - List preallocatedLuns = (List)getResponseObject(); - + @Override + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + List preallocatedLuns = _mgr.getPreAllocatedLuns(this); ListResponse response = new ListResponse(); List lunResponses = new ArrayList(); for (PreallocatedLunVO preallocatedLun : preallocatedLuns) { @@ -92,12 +91,6 @@ public class ListPreallocatedLunsCmd extends BaseListCmd { response.setResponses(lunResponses); response.setResponseName(getName()); - return response; - } - - @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ - List result = _mgr.getPreAllocatedLuns(this); - return result; + this.setResponseObject(response); } } diff --git a/server/src/com/cloud/api/commands/ListPublicIpAddressesCmd.java b/server/src/com/cloud/api/commands/ListPublicIpAddressesCmd.java index e8b75822c4d..23a99540560 100644 --- a/server/src/com/cloud/api/commands/ListPublicIpAddressesCmd.java +++ b/server/src/com/cloud/api/commands/ListPublicIpAddressesCmd.java @@ -38,7 +38,7 @@ import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.PermissionDeniedException; import com.cloud.network.IPAddressVO; -@Implementation(method="searchForIPAddresses", description="Lists all public ip addresses") +@Implementation(description="Lists all public ip addresses") public class ListPublicIpAddressesCmd extends BaseListCmd { public static final Logger s_logger = Logger.getLogger(ListPublicIpAddressesCmd.class.getName()); @@ -108,15 +108,14 @@ public class ListPublicIpAddressesCmd extends BaseListCmd { @Override public String getName() { return s_name; - } - - @Override @SuppressWarnings("unchecked") - public ListResponse getResponse() { - List ipAddresses = (List)getResponseObject(); - + } + + @Override + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + List result = _mgr.searchForIPAddresses(this); ListResponse response = new ListResponse(); List ipAddrResponses = new ArrayList(); - for (IPAddressVO ipAddress : ipAddresses) { + for (IPAddressVO ipAddress : result) { IPAddressResponse ipResponse = ApiResponseHelper.createIPAddressResponse(ipAddress); ipResponse.setObjectName("publicipaddress"); ipAddrResponses.add(ipResponse); @@ -124,12 +123,6 @@ public class ListPublicIpAddressesCmd extends BaseListCmd { response.setResponses(ipAddrResponses); response.setResponseName(getName()); - return response; - } - - @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ - List result = _mgr.searchForIPAddresses(this); - return result; + this.setResponseObject(response); } } diff --git a/server/src/com/cloud/api/commands/ListRecurringSnapshotScheduleCmd.java b/server/src/com/cloud/api/commands/ListRecurringSnapshotScheduleCmd.java index e2ad24eaea7..90d12ca2de9 100644 --- a/server/src/com/cloud/api/commands/ListRecurringSnapshotScheduleCmd.java +++ b/server/src/com/cloud/api/commands/ListRecurringSnapshotScheduleCmd.java @@ -24,7 +24,6 @@ import com.cloud.api.ApiConstants; import com.cloud.api.BaseListCmd; import com.cloud.api.Implementation; import com.cloud.api.Parameter; -import com.cloud.api.ResponseObject; import com.cloud.api.ServerApiException; import com.cloud.api.response.ListResponse; import com.cloud.api.response.SnapshotScheduleResponse; @@ -34,9 +33,8 @@ import com.cloud.exception.InsufficientCapacityException; import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.PermissionDeniedException; import com.cloud.storage.SnapshotScheduleVO; -import com.cloud.storage.snapshot.SnapshotManager; -@Implementation(method="findRecurringSnapshotSchedule", manager=SnapshotManager.class) +@Implementation(description="Lists recurring snapshot schedule") public class ListRecurringSnapshotScheduleCmd extends BaseListCmd { private static final String s_name = "listrecurringsnapshotscheduleresponse"; @@ -70,11 +68,10 @@ public class ListRecurringSnapshotScheduleCmd extends BaseListCmd { public String getName() { return s_name; } - - @Override @SuppressWarnings("unchecked") - public ResponseObject getResponse() { - List snapshotSchedules = (List)getResponseObject(); - + + @Override + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + List snapshotSchedules = _snapshotMgr.findRecurringSnapshotSchedule(this); ListResponse response = new ListResponse(); List snapshotScheduleResponses = new ArrayList(); for (SnapshotScheduleVO snapshotSchedule : snapshotSchedules) { @@ -90,12 +87,6 @@ public class ListRecurringSnapshotScheduleCmd extends BaseListCmd { response.setResponses(snapshotScheduleResponses); response.setResponseName(getName()); - return response; - } - - @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ - List result = _snapshotMgr.findRecurringSnapshotSchedule(this); - return result; + this.setResponseObject(response); } } diff --git a/server/src/com/cloud/api/commands/ListRemoteAccessVpnsCmd.java b/server/src/com/cloud/api/commands/ListRemoteAccessVpnsCmd.java index e85259e0c90..76c04c292a1 100644 --- a/server/src/com/cloud/api/commands/ListRemoteAccessVpnsCmd.java +++ b/server/src/com/cloud/api/commands/ListRemoteAccessVpnsCmd.java @@ -38,7 +38,7 @@ import com.cloud.exception.PermissionDeniedException; import com.cloud.network.RemoteAccessVpnVO; import com.cloud.user.Account; -@Implementation(method="searchForRemoteAccessVpns", description="Lists remote access vpns") +@Implementation(description="Lists remote access vpns") public class ListRemoteAccessVpnsCmd extends BaseListCmd { public static final Logger s_logger = Logger.getLogger (ListRemoteAccessVpnsCmd.class.getName()); @@ -102,14 +102,13 @@ public class ListRemoteAccessVpnsCmd extends BaseListCmd { return s_name; } - @Override @SuppressWarnings("unchecked") - public ListResponse getResponse() { - List vpns = (List)getResponseObject(); - + @Override + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + List vpns = _mgr.searchForRemoteAccessVpns(this); ListResponse response = new ListResponse(); List vpnResponses = new ArrayList(); for (RemoteAccessVpnVO vpn : vpns) { - RemoteAccessVpnResponse vpnResponse = new RemoteAccessVpnResponse(); + RemoteAccessVpnResponse vpnResponse = new RemoteAccessVpnResponse(); vpnResponse.setId(vpn.getId()); vpnResponse.setPublicIp(vpn.getVpnServerAddress()); vpnResponse.setIpRange(vpn.getIpRange()); @@ -128,12 +127,6 @@ public class ListRemoteAccessVpnsCmd extends BaseListCmd { response.setResponses(vpnResponses); response.setResponseName(getName()); - return response; - } - - @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ - List result = _mgr.searchForRemoteAccessVpns(this); - return result; + this.setResponseObject(response); } } diff --git a/server/src/com/cloud/api/commands/ListResourceLimitsCmd.java b/server/src/com/cloud/api/commands/ListResourceLimitsCmd.java index 6398f60aa1c..ae8495d1562 100644 --- a/server/src/com/cloud/api/commands/ListResourceLimitsCmd.java +++ b/server/src/com/cloud/api/commands/ListResourceLimitsCmd.java @@ -38,9 +38,8 @@ import com.cloud.exception.InsufficientAddressCapacityException; import com.cloud.exception.InsufficientCapacityException; import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.PermissionDeniedException; -import com.cloud.user.AccountManager; -@Implementation(method="searchForLimits", manager=AccountManager.class, description="Lists resource limits.") +@Implementation(description="Lists resource limits.") public class ListResourceLimitsCmd extends BaseListCmd { public static final Logger s_logger = Logger.getLogger(ListResourceLimitsCmd.class.getName()); @@ -94,14 +93,13 @@ public class ListResourceLimitsCmd extends BaseListCmd { public String getName() { return s_name; } - - @Override @SuppressWarnings("unchecked") - public ListResponse getResponse() { - List limits = (List)getResponseObject(); - + + @Override + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + List result = _accountService.searchForLimits(this); ListResponse response = new ListResponse(); List limitResponses = new ArrayList(); - for (ResourceLimit limit : limits) { + for (ResourceLimit limit : result) { ResourceLimitResponse resourceLimitResponse = ApiResponseHelper.createResourceLimitResponse(limit); resourceLimitResponse.setObjectName("resourcelimit"); limitResponses.add(resourceLimitResponse); @@ -109,12 +107,6 @@ public class ListResourceLimitsCmd extends BaseListCmd { response.setResponses(limitResponses); response.setResponseName(getName()); - return response; - } - - @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ - List result = _accountService.searchForLimits(this); - return result; + this.setResponseObject(response); } } diff --git a/server/src/com/cloud/api/commands/ListRoutersCmd.java b/server/src/com/cloud/api/commands/ListRoutersCmd.java index af81d9bb501..e45b0ebc306 100644 --- a/server/src/com/cloud/api/commands/ListRoutersCmd.java +++ b/server/src/com/cloud/api/commands/ListRoutersCmd.java @@ -39,7 +39,7 @@ import com.cloud.exception.PermissionDeniedException; import com.cloud.vm.DomainRouter; import com.cloud.vm.DomainRouterVO; -@Implementation(method="searchForRouters", description="List routers.") +@Implementation(description="List routers.") public class ListRoutersCmd extends BaseListCmd { public static final Logger s_logger = Logger.getLogger(ListRoutersCmd.class.getName()); @@ -110,13 +110,13 @@ public class ListRoutersCmd extends BaseListCmd { public String getName() { return s_name; } - - @Override @SuppressWarnings("unchecked") - public ListResponse getResponse() { - List routers = (List)getResponseObject(); + + @Override + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + List result = _mgr.searchForRouters(this); ListResponse response = new ListResponse(); List routerResponses = new ArrayList(); - for (DomainRouter router : routers) { + for (DomainRouter router : result) { DomainRouterResponse routerResponse = ApiResponseHelper.createDomainRouterResponse(router); routerResponse.setObjectName("router"); routerResponses.add(routerResponse); @@ -124,12 +124,6 @@ public class ListRoutersCmd extends BaseListCmd { response.setResponses(routerResponses); response.setResponseName(getName()); - return response; - } - - @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ - List result = _mgr.searchForRouters(this); - return result; + this.setResponseObject(response); } } diff --git a/server/src/com/cloud/api/commands/ListServiceOfferingsCmd.java b/server/src/com/cloud/api/commands/ListServiceOfferingsCmd.java index 2d8db8cea6c..de2811dd281 100644 --- a/server/src/com/cloud/api/commands/ListServiceOfferingsCmd.java +++ b/server/src/com/cloud/api/commands/ListServiceOfferingsCmd.java @@ -37,7 +37,7 @@ import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.PermissionDeniedException; import com.cloud.service.ServiceOfferingVO; -@Implementation(method="searchForServiceOfferings", description="Lists all available service offerings.") +@Implementation(description="Lists all available service offerings.") public class ListServiceOfferingsCmd extends BaseListCmd { public static final Logger s_logger = Logger.getLogger(ListServiceOfferingsCmd.class.getName()); @@ -80,11 +80,10 @@ public class ListServiceOfferingsCmd extends BaseListCmd { public String getName() { return s_name; } - - @Override @SuppressWarnings("unchecked") - public ListResponse getResponse() { - List offerings = (List)getResponseObject(); - + + @Override + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + List offerings = _mgr.searchForServiceOfferings(this); ListResponse response = new ListResponse(); List offeringResponses = new ArrayList(); for (ServiceOfferingVO offering : offerings) { @@ -95,12 +94,6 @@ public class ListServiceOfferingsCmd extends BaseListCmd { response.setResponses(offeringResponses); response.setResponseName(getName()); - return response; - } - - @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ - List result = _mgr.searchForServiceOfferings(this); - return result; + this.setResponseObject(response); } } diff --git a/server/src/com/cloud/api/commands/ListSnapshotPoliciesCmd.java b/server/src/com/cloud/api/commands/ListSnapshotPoliciesCmd.java index aaf287c67ae..f1029d541af 100644 --- a/server/src/com/cloud/api/commands/ListSnapshotPoliciesCmd.java +++ b/server/src/com/cloud/api/commands/ListSnapshotPoliciesCmd.java @@ -37,9 +37,8 @@ import com.cloud.exception.InsufficientCapacityException; import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.PermissionDeniedException; import com.cloud.storage.SnapshotPolicyVO; -import com.cloud.storage.snapshot.SnapshotManager; -@Implementation(method="listPoliciesforVolume", manager=SnapshotManager.class, description="Lists snapshot policies.") +@Implementation(description="Lists snapshot policies.") public class ListSnapshotPoliciesCmd extends BaseListCmd { public static final Logger s_logger = Logger.getLogger(ListSnapshotPoliciesCmd.class.getName()); @@ -82,27 +81,19 @@ public class ListSnapshotPoliciesCmd extends BaseListCmd { public String getName() { return s_name; } - - @Override @SuppressWarnings("unchecked") - public ListResponse getResponse() { - List policies = (List)getResponseObject(); + @Override + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + List result = _snapshotMgr.listPoliciesforVolume(this); ListResponse response = new ListResponse(); List policyResponses = new ArrayList(); - for (SnapshotPolicyVO policy : policies) { + for (SnapshotPolicyVO policy : result) { SnapshotPolicyResponse policyResponse = ApiResponseHelper.createSnapshotPolicyResponse(policy); policyResponse.setObjectName("snapshotpolicy"); policyResponses.add(policyResponse); } - response.setResponses(policyResponses); - response.setResponseName(getName()); - return response; - } - - @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ - List result = _snapshotMgr.listPoliciesforVolume(this); - return result; + response.setResponseName(getName()); + this.setResponseObject(response); } } diff --git a/server/src/com/cloud/api/commands/ListSnapshotsCmd.java b/server/src/com/cloud/api/commands/ListSnapshotsCmd.java index a0546c9b332..16114440be5 100644 --- a/server/src/com/cloud/api/commands/ListSnapshotsCmd.java +++ b/server/src/com/cloud/api/commands/ListSnapshotsCmd.java @@ -38,7 +38,7 @@ import com.cloud.exception.PermissionDeniedException; import com.cloud.storage.Snapshot; import com.cloud.storage.SnapshotVO; -@Implementation(method="listSnapshots", description="Lists all available snapshots for the account.") +@Implementation(description="Lists all available snapshots for the account.") public class ListSnapshotsCmd extends BaseListCmd { public static final Logger s_logger = Logger.getLogger(ListSnapshotsCmd.class.getName()); @@ -110,26 +110,19 @@ public class ListSnapshotsCmd extends BaseListCmd { return s_name; } - @Override @SuppressWarnings("unchecked") - public ListResponse getResponse() { - List snapshots = (List)getResponseObject(); - + @Override + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + List result = _mgr.listSnapshots(this); ListResponse response = new ListResponse(); List snapshotResponses = new ArrayList(); - for (Snapshot snapshot : snapshots) { + for (Snapshot snapshot : result) { SnapshotResponse snapshotResponse = ApiResponseHelper.createSnapshotResponse(snapshot); snapshotResponse.setObjectName("snapshot"); snapshotResponses.add(snapshotResponse); } - response.setResponses(snapshotResponses); - response.setResponseName(getName()); - return response; - } - - @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ - List result = _mgr.listSnapshots(this); - return result; + response.setResponseName(getName()); + + this.setResponseObject(response); } } diff --git a/server/src/com/cloud/api/commands/ListStoragePoolsCmd.java b/server/src/com/cloud/api/commands/ListStoragePoolsCmd.java index e819aad8624..0b2c3436c70 100644 --- a/server/src/com/cloud/api/commands/ListStoragePoolsCmd.java +++ b/server/src/com/cloud/api/commands/ListStoragePoolsCmd.java @@ -38,7 +38,7 @@ import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.PermissionDeniedException; import com.cloud.storage.StoragePoolVO; -@Implementation(method="searchForStoragePools", description="Lists storage pools.") +@Implementation(description="Lists storage pools.") public class ListStoragePoolsCmd extends BaseListCmd { public static final Logger s_logger = Logger.getLogger(ListStoragePoolsCmd.class.getName()); @@ -102,11 +102,10 @@ public class ListStoragePoolsCmd extends BaseListCmd { public String getName() { return s_name; } - - @Override @SuppressWarnings("unchecked") - public ListResponse getResponse() { - List pools = (List)getResponseObject(); + @Override + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + List pools = _mgr.searchForStoragePools(this); ListResponse response = new ListResponse(); List poolResponses = new ArrayList(); for (StoragePoolVO pool : pools) { @@ -117,12 +116,6 @@ public class ListStoragePoolsCmd extends BaseListCmd { response.setResponses(poolResponses); response.setResponseName(getName()); - return response; - } - - @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ - List result = _mgr.searchForStoragePools(this); - return result; + this.setResponseObject(response); } } diff --git a/server/src/com/cloud/api/commands/ListSystemVMsCmd.java b/server/src/com/cloud/api/commands/ListSystemVMsCmd.java index 33af2ed8735..8ab420aa3a0 100644 --- a/server/src/com/cloud/api/commands/ListSystemVMsCmd.java +++ b/server/src/com/cloud/api/commands/ListSystemVMsCmd.java @@ -37,7 +37,7 @@ import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.PermissionDeniedException; import com.cloud.vm.VMInstanceVO; -@Implementation(method="searchForSystemVm", description="List system virtual machines.") +@Implementation(description="List system virtual machines.") public class ListSystemVMsCmd extends BaseListCmd { public static final Logger s_logger = Logger.getLogger(ListSystemVMsCmd.class.getName()); @@ -107,11 +107,11 @@ public class ListSystemVMsCmd extends BaseListCmd { @Override public String getName() { return s_name; - } - - @Override @SuppressWarnings("unchecked") - public ListResponse getResponse() { - List systemVMs = (List)getResponseObject(); + } + + @Override + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + List systemVMs = _mgr.searchForSystemVm(this); ListResponse response = new ListResponse(); List vmResponses = new ArrayList(); for (VMInstanceVO systemVM : systemVMs) { @@ -122,12 +122,6 @@ public class ListSystemVMsCmd extends BaseListCmd { response.setResponses(vmResponses); response.setResponseName(getName()); - return response; - } - - @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ - List result = _mgr.searchForSystemVm(this); - return result; + this.setResponseObject(response); } } diff --git a/server/src/com/cloud/api/commands/ListTemplateOrIsoPermissionsCmd.java b/server/src/com/cloud/api/commands/ListTemplateOrIsoPermissionsCmd.java index 24985981044..403a481b7ac 100644 --- a/server/src/com/cloud/api/commands/ListTemplateOrIsoPermissionsCmd.java +++ b/server/src/com/cloud/api/commands/ListTemplateOrIsoPermissionsCmd.java @@ -37,7 +37,7 @@ import com.cloud.storage.VMTemplateVO; import com.cloud.user.Account; import com.cloud.user.UserContext; -@Implementation(method="listTemplatePermissions", description="List template visibility and all accounts that have permissions to view this template.") +@Implementation(description="List template visibility and all accounts that have permissions to view this template.") public class ListTemplateOrIsoPermissionsCmd extends BaseListCmd { public Logger s_logger = getLogger(); protected String s_name = "listtemplatepermissionsresponse"; @@ -79,10 +79,22 @@ public class ListTemplateOrIsoPermissionsCmd extends BaseListCmd { public String getName() { return s_name; } - - @Override @SuppressWarnings("unchecked") - public TemplatePermissionsResponse getResponse() { - List accountNames = (List)getResponseObject(); + + protected boolean templateIsCorrectType(VMTemplateVO template) { + return true; + } + + public String getMediaType() { + return "templateOrIso"; + } + + protected Logger getLogger() { + return Logger.getLogger(UpdateTemplateOrIsoPermissionsCmd.class.getName()); + } + + @Override + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + List accountNames = _mgr.listTemplatePermissions(this); Account account = (Account)UserContext.current().getAccount(); boolean isAdmin = ((account == null) || isAdmin(account.getType())); Long templateOwnerDomain = null; @@ -105,24 +117,6 @@ public class ListTemplateOrIsoPermissionsCmd extends BaseListCmd { response.setAccountNames(accountNames); response.setObjectName("templatepermission"); response.setResponseName(getName()); - return response; - } - - protected boolean templateIsCorrectType(VMTemplateVO template) { - return true; - } - - public String getMediaType() { - return "templateOrIso"; - } - - protected Logger getLogger() { - return Logger.getLogger(UpdateTemplateOrIsoPermissionsCmd.class.getName()); - } - - @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ - List result = _mgr.listTemplatePermissions(this); - return result; + this.setResponseObject(response); } } diff --git a/server/src/com/cloud/api/commands/ListTemplatesCmd.java b/server/src/com/cloud/api/commands/ListTemplatesCmd.java index 25c0e7b7604..439529fc676 100644 --- a/server/src/com/cloud/api/commands/ListTemplatesCmd.java +++ b/server/src/com/cloud/api/commands/ListTemplatesCmd.java @@ -48,7 +48,7 @@ import com.cloud.storage.dao.VMTemplateDao.TemplateFilter; import com.cloud.user.Account; import com.cloud.user.UserContext; -@Implementation(method="listTemplates", description="List all public, private, and privileged templates.") +@Implementation(description="List all public, private, and privileged templates.") public class ListTemplatesCmd extends BaseListCmd { public static final Logger s_logger = Logger.getLogger(ListTemplatesCmd.class.getName()); @@ -123,9 +123,10 @@ public class ListTemplatesCmd extends BaseListCmd { public String getName() { return s_name; } - - @Override @SuppressWarnings("unchecked") - public ListResponse getResponse() { + + @Override + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + List templates = _mgr.listTemplates(this); TemplateFilter templateFilterObj; try { templateFilterObj = TemplateFilter.valueOf(templateFilter); @@ -152,8 +153,6 @@ public class ListTemplatesCmd extends BaseListCmd { boolean showDomr = (templateFilterObj != TemplateFilter.selfexecutable); - // get the response - List templates = (List)getResponseObject(); ListResponse response = new ListResponse(); List templateResponses = new ArrayList(); @@ -253,12 +252,6 @@ public class ListTemplatesCmd extends BaseListCmd { response.setResponses(templateResponses); response.setResponseName(getName()); - return response; - } - - @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ - List result = _mgr.listTemplates(this); - return result; + this.setResponseObject(response); } } diff --git a/server/src/com/cloud/api/commands/ListUsersCmd.java b/server/src/com/cloud/api/commands/ListUsersCmd.java index 13cf13a6894..c66a1457626 100644 --- a/server/src/com/cloud/api/commands/ListUsersCmd.java +++ b/server/src/com/cloud/api/commands/ListUsersCmd.java @@ -36,10 +36,9 @@ import com.cloud.exception.InsufficientAddressCapacityException; import com.cloud.exception.InsufficientCapacityException; import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.PermissionDeniedException; -import com.cloud.server.ManagementServer; import com.cloud.user.UserAccountVO; -@Implementation(method="searchForUsers", description="Lists user accounts") +@Implementation(description="Lists user accounts") public class ListUsersCmd extends BaseListCmd { public static final Logger s_logger = Logger.getLogger(ListUsersCmd.class.getName()); @@ -102,27 +101,20 @@ public class ListUsersCmd extends BaseListCmd { @Override public String getName() { return s_name; - } - - @Override @SuppressWarnings("unchecked") - public ListResponse getResponse() { - List users = (List)getResponseObject(); - + } + + @Override + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + List result = _mgr.searchForUsers(this); ListResponse response = new ListResponse(); List userResponses = new ArrayList(); - for (UserAccountVO user : users) { + for (UserAccountVO user : result) { UserResponse userResponse = ApiResponseHelper.createUserResponse(user); userResponse.setObjectName("user"); userResponses.add(userResponse); } response.setResponses(userResponses); response.setResponseName(getName()); - return response; - } - - @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ - List result = _mgr.searchForUsers(this); - return result; + this.setResponseObject(response); } } diff --git a/server/src/com/cloud/api/commands/ListVMGroupsCmd.java b/server/src/com/cloud/api/commands/ListVMGroupsCmd.java index 98a6de3081e..e2537af2213 100644 --- a/server/src/com/cloud/api/commands/ListVMGroupsCmd.java +++ b/server/src/com/cloud/api/commands/ListVMGroupsCmd.java @@ -37,7 +37,7 @@ import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.PermissionDeniedException; import com.cloud.vm.InstanceGroupVO; -@Implementation(method="searchForVmGroups") +@Implementation(description="Lists vm groups") public class ListVMGroupsCmd extends BaseListCmd { public static final Logger s_logger = Logger.getLogger(ListVMGroupsCmd.class.getName()); @@ -88,10 +88,9 @@ public class ListVMGroupsCmd extends BaseListCmd { return s_name; } - @Override @SuppressWarnings("unchecked") - public ListResponse getResponse() { - List groups = (List)getResponseObject(); - + @Override + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + List groups = _mgr.searchForVmGroups(this); ListResponse response = new ListResponse(); List responses = new ArrayList(); for (InstanceGroupVO group : groups) { @@ -102,12 +101,6 @@ public class ListVMGroupsCmd extends BaseListCmd { response.setResponses(responses); response.setResponseName(getName()); - return response; - } - - @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ - List result = _mgr.searchForVmGroups(this); - return result; + this.setResponseObject(response); } } diff --git a/server/src/com/cloud/api/commands/ListVMsCmd.java b/server/src/com/cloud/api/commands/ListVMsCmd.java index a6e09e9b94c..a790cc5bdf1 100644 --- a/server/src/com/cloud/api/commands/ListVMsCmd.java +++ b/server/src/com/cloud/api/commands/ListVMsCmd.java @@ -38,7 +38,7 @@ import com.cloud.exception.PermissionDeniedException; import com.cloud.uservm.UserVm; import com.cloud.vm.UserVmVO; -@Implementation(method="searchForUserVMs", description="List the virtual machines owned by the account.") +@Implementation(description="List the virtual machines owned by the account.") public class ListVMsCmd extends BaseListCmd { public static final Logger s_logger = Logger.getLogger(ListVMsCmd.class.getName()); @@ -123,14 +123,13 @@ public class ListVMsCmd extends BaseListCmd { public String getName() { return s_name; } - - @Override @SuppressWarnings("unchecked") - public ListResponse getResponse() { - List userVms = (List)getResponseObject(); - + + @Override + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + List result = _mgr.searchForUserVMs(this); ListResponse response = new ListResponse(); List vmResponses = new ArrayList(); - for (UserVm userVm : userVms) { + for (UserVm userVm : result) { UserVmResponse userVmResponse = ApiResponseHelper.createUserVmResponse(userVm); if (userVmResponse != null) { userVmResponse.setObjectName("virtualmachine"); @@ -139,13 +138,7 @@ public class ListVMsCmd extends BaseListCmd { } response.setResponses(vmResponses); response.setResponseName(getName()); - return response; - } - - @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ - List result = _mgr.searchForUserVMs(this); - return result; + this.setResponseObject(response); } } diff --git a/server/src/com/cloud/api/commands/ListVlanIpRangesCmd.java b/server/src/com/cloud/api/commands/ListVlanIpRangesCmd.java index f127d5ce4d2..1d9929a89a1 100644 --- a/server/src/com/cloud/api/commands/ListVlanIpRangesCmd.java +++ b/server/src/com/cloud/api/commands/ListVlanIpRangesCmd.java @@ -37,7 +37,7 @@ import com.cloud.exception.InsufficientCapacityException; import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.PermissionDeniedException; -@Implementation(method="searchForVlans", description="Lists all VLAN IP ranges.") +@Implementation(description="Lists all VLAN IP ranges.") public class ListVlanIpRangesCmd extends BaseListCmd { public static final Logger s_logger = Logger.getLogger(ListVlanIpRangesCmd.class.getName()); @@ -101,11 +101,10 @@ public class ListVlanIpRangesCmd extends BaseListCmd { public String getName() { return s_name; } - - @Override @SuppressWarnings("unchecked") - public ListResponse getResponse() { - List vlans = (List)getResponseObject(); - + + @Override + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + List vlans = _mgr.searchForVlans(this); ListResponse response = new ListResponse(); List vlanResponses = new ArrayList(); for (VlanVO vlan : vlans) { @@ -116,12 +115,6 @@ public class ListVlanIpRangesCmd extends BaseListCmd { response.setResponses(vlanResponses); response.setResponseName(getName()); - return response; - } - - @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ - List result = _mgr.searchForVlans(this); - return result; + this.setResponseObject(response); } } diff --git a/server/src/com/cloud/api/commands/ListVolumesCmd.java b/server/src/com/cloud/api/commands/ListVolumesCmd.java index 8e0f4b32b5b..9d889cb80d1 100755 --- a/server/src/com/cloud/api/commands/ListVolumesCmd.java +++ b/server/src/com/cloud/api/commands/ListVolumesCmd.java @@ -37,7 +37,7 @@ import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.PermissionDeniedException; import com.cloud.storage.VolumeVO; -@Implementation(method="searchForVolumes", description="Lists all volumes.") +@Implementation(description="Lists all volumes.") public class ListVolumesCmd extends BaseListCmd { public static final Logger s_logger = Logger.getLogger(ListVolumesCmd.class.getName()); @@ -122,10 +122,10 @@ public class ListVolumesCmd extends BaseListCmd { public String getName() { return s_name; } - - @Override @SuppressWarnings("unchecked") - public ListResponse getResponse() { - List volumes = (List)getResponseObject(); + + @Override + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + List volumes = _mgr.searchForVolumes(this); ListResponse response = new ListResponse(); List volResponses = new ArrayList(); @@ -137,12 +137,6 @@ public class ListVolumesCmd extends BaseListCmd { response.setResponses(volResponses); response.setResponseName(getName()); - return response; - } - - @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ - List result = _mgr.searchForVolumes(this); - return result; + this.setResponseObject(response); } } diff --git a/server/src/com/cloud/api/commands/ListVpnUsersCmd.java b/server/src/com/cloud/api/commands/ListVpnUsersCmd.java index 62699472b56..5749c1909ce 100644 --- a/server/src/com/cloud/api/commands/ListVpnUsersCmd.java +++ b/server/src/com/cloud/api/commands/ListVpnUsersCmd.java @@ -38,7 +38,7 @@ import com.cloud.exception.PermissionDeniedException; import com.cloud.network.VpnUserVO; import com.cloud.user.Account; -@Implementation(method="searchForVpnUsers", description="Lists vpn users") +@Implementation(description="Lists vpn users") public class ListVpnUsersCmd extends BaseListCmd { public static final Logger s_logger = Logger.getLogger (ListVpnUsersCmd.class.getName()); @@ -88,15 +88,15 @@ public class ListVpnUsersCmd extends BaseListCmd { public String getName() { return s_name; } - - @Override @SuppressWarnings("unchecked") - public ListResponse getResponse() { - List vpnUsers = (List)getResponseObject(); + + @Override + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + List vpnUsers = _mgr.searchForVpnUsers(this); ListResponse response = new ListResponse(); List vpnResponses = new ArrayList(); for (VpnUserVO vpnUser : vpnUsers) { - VpnUsersResponse vpnResponse = new VpnUsersResponse(); + VpnUsersResponse vpnResponse = new VpnUsersResponse(); vpnResponse.setId(vpnUser.getId()); vpnResponse.setUserName(vpnUser.getUsername()); vpnResponse.setAccountName(vpnUser.getAccountName()); @@ -113,12 +113,6 @@ public class ListVpnUsersCmd extends BaseListCmd { response.setResponses(vpnResponses); response.setResponseName(getName()); - return response; - } - - @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ - List result = _mgr.searchForVpnUsers(this); - return result; + this.setResponseObject(response); } } diff --git a/server/src/com/cloud/api/commands/ListZonesByCmd.java b/server/src/com/cloud/api/commands/ListZonesByCmd.java index 7a4f5ce6576..ffa5257f580 100644 --- a/server/src/com/cloud/api/commands/ListZonesByCmd.java +++ b/server/src/com/cloud/api/commands/ListZonesByCmd.java @@ -37,7 +37,7 @@ import com.cloud.exception.InsufficientCapacityException; import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.PermissionDeniedException; -@Implementation(method="listDataCenters") +@Implementation(description="Lists zones") public class ListZonesByCmd extends BaseListCmd { public static final Logger s_logger = Logger.getLogger(ListZonesByCmd.class.getName()); @@ -72,11 +72,10 @@ public class ListZonesByCmd extends BaseListCmd { public String getName() { return s_name; } - - @Override @SuppressWarnings("unchecked") - public ListResponse getResponse() { - List dataCenters = (List)getResponseObject(); + @Override + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + List dataCenters = _mgr.listDataCenters(this); ListResponse response = new ListResponse(); List zoneResponses = new ArrayList(); for (DataCenterVO dataCenter : dataCenters) { @@ -87,12 +86,6 @@ public class ListZonesByCmd extends BaseListCmd { response.setResponses(zoneResponses); response.setResponseName(getName()); - return response; - } - - @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ - List result = _mgr.listDataCenters(this); - return result; + this.setResponseObject(response); } } diff --git a/server/src/com/cloud/api/commands/LockAccountCmd.java b/server/src/com/cloud/api/commands/LockAccountCmd.java index e2331195602..d953ef0e689 100644 --- a/server/src/com/cloud/api/commands/LockAccountCmd.java +++ b/server/src/com/cloud/api/commands/LockAccountCmd.java @@ -31,11 +31,9 @@ import com.cloud.exception.InsufficientAddressCapacityException; import com.cloud.exception.InsufficientCapacityException; import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.PermissionDeniedException; -import com.cloud.server.ManagementServer; import com.cloud.user.Account; -import com.cloud.user.AccountVO; -@Implementation(method="lockAccount", manager=ManagementServer.class, description="Locks an account") +@Implementation(description="Locks an account") public class LockAccountCmd extends BaseCmd { public static final Logger s_logger = Logger.getLogger(LockAccountCmd.class.getName()); @@ -72,17 +70,11 @@ public class LockAccountCmd extends BaseCmd { return s_name; } - @Override @SuppressWarnings("unchecked") - public AccountResponse getResponse() { - AccountVO account = (AccountVO)getResponseObject(); - AccountResponse response = ApiResponseHelper.createAccountResponse(account); - response.setResponseName(getName()); - return response; - } - @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ Account result = _accountService.lockAccount(this); - return result; + AccountResponse response = ApiResponseHelper.createAccountResponse(result); + response.setResponseName(getName()); + this.setResponseObject(response); } } diff --git a/server/src/com/cloud/api/commands/LockUserCmd.java b/server/src/com/cloud/api/commands/LockUserCmd.java index 2721d1d6afd..228dda9d84e 100644 --- a/server/src/com/cloud/api/commands/LockUserCmd.java +++ b/server/src/com/cloud/api/commands/LockUserCmd.java @@ -31,10 +31,9 @@ import com.cloud.exception.InsufficientAddressCapacityException; import com.cloud.exception.InsufficientCapacityException; import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.PermissionDeniedException; -import com.cloud.server.ManagementServer; import com.cloud.user.UserAccount; -@Implementation(method="lockUser", manager=ManagementServer.class, description="Locks a user account") +@Implementation(description="Locks a user account") public class LockUserCmd extends BaseCmd { public static final Logger s_logger = Logger.getLogger(LockUserCmd.class.getName()); @@ -63,18 +62,13 @@ public class LockUserCmd extends BaseCmd { public String getName() { return s_name; } - - @Override @SuppressWarnings("unchecked") - public UserResponse getResponse() { - UserAccount user = (UserAccount)getResponseObject(); - UserResponse response = ApiResponseHelper.createUserResponse(user); - response.setResponseName(getName()); - return response; - } @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ - UserAccount result = _accountService.lockUser(this); - return result; + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + UserAccount user = _accountService.lockUser(this); + UserResponse response = ApiResponseHelper.createUserResponse(user); + response.setResponseName(getName()); + + this.setResponseObject(response); } } diff --git a/server/src/com/cloud/api/commands/PrepareForMaintenanceCmd.java b/server/src/com/cloud/api/commands/PrepareForMaintenanceCmd.java index 1d03d84503f..5480cf10bdd 100644 --- a/server/src/com/cloud/api/commands/PrepareForMaintenanceCmd.java +++ b/server/src/com/cloud/api/commands/PrepareForMaintenanceCmd.java @@ -19,7 +19,6 @@ package com.cloud.api.commands; import org.apache.log4j.Logger; -import com.cloud.agent.AgentManager; import com.cloud.api.ApiConstants; import com.cloud.api.ApiResponseHelper; import com.cloud.api.BaseAsyncCmd; @@ -37,7 +36,7 @@ import com.cloud.host.HostVO; import com.cloud.user.Account; import com.cloud.user.UserContext; -@Implementation(method="maintain", manager=AgentManager.class, description="Prepares a host for maintenance.") +@Implementation(description="Prepares a host for maintenance.") public class PrepareForMaintenanceCmd extends BaseAsyncCmd { public static final Logger s_logger = Logger.getLogger(PrepareForMaintenanceCmd.class.getName()); @@ -90,18 +89,12 @@ public class PrepareForMaintenanceCmd extends BaseAsyncCmd { public String getEventDescription() { return "preparing host: " + getId() + " for maintenance"; } - - @Override @SuppressWarnings("unchecked") - public HostResponse getResponse() { - HostVO host = (HostVO)getResponseObject(); - HostResponse response = ApiResponseHelper.createHostResponse(host); - response.setResponseName("host"); - return response; - } @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ HostVO result = _agentMgr.maintain(this); - return result; + HostResponse response = ApiResponseHelper.createHostResponse(result); + response.setResponseName("host"); + this.setResponseObject(response); } } diff --git a/server/src/com/cloud/api/commands/PreparePrimaryStorageForMaintenanceCmd.java b/server/src/com/cloud/api/commands/PreparePrimaryStorageForMaintenanceCmd.java index 07c32454a2c..75864b1ecf3 100644 --- a/server/src/com/cloud/api/commands/PreparePrimaryStorageForMaintenanceCmd.java +++ b/server/src/com/cloud/api/commands/PreparePrimaryStorageForMaintenanceCmd.java @@ -32,12 +32,11 @@ import com.cloud.exception.InsufficientAddressCapacityException; import com.cloud.exception.InsufficientCapacityException; import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.PermissionDeniedException; -import com.cloud.storage.StorageManager; import com.cloud.storage.StoragePoolVO; import com.cloud.user.Account; import com.cloud.user.UserContext; -@Implementation(method="preparePrimaryStorageForMaintenance", manager=StorageManager.class) +@Implementation(description="Puts storage pool into maintenance state") public class PreparePrimaryStorageForMaintenanceCmd extends BaseAsyncCmd { public static final Logger s_logger = Logger.getLogger(PreparePrimaryStorageForMaintenanceCmd.class.getName()); private static final String s_name = "prepareprimarystorageformaintenanceresponse"; @@ -90,17 +89,11 @@ public class PreparePrimaryStorageForMaintenanceCmd extends BaseAsyncCmd { return "preparing storage pool: " + getId() + " for maintenance"; } - @Override @SuppressWarnings("unchecked") - public StoragePoolResponse getResponse() { - StoragePoolVO primaryStorage = (StoragePoolVO)getResponseObject(); - StoragePoolResponse response = ApiResponseHelper.createStoragePoolResponse(primaryStorage); - response.setResponseName("storagepool"); - return response; - } - @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ StoragePoolVO result = _storageMgr.preparePrimaryStorageForMaintenance(this); - return result; + StoragePoolResponse response = ApiResponseHelper.createStoragePoolResponse(result); + response.setResponseName("storagepool"); + this.setResponseObject(response); } } diff --git a/server/src/com/cloud/api/commands/QueryAsyncJobResultCmd.java b/server/src/com/cloud/api/commands/QueryAsyncJobResultCmd.java index 006c32b61cc..bb5d4c6dc52 100644 --- a/server/src/com/cloud/api/commands/QueryAsyncJobResultCmd.java +++ b/server/src/com/cloud/api/commands/QueryAsyncJobResultCmd.java @@ -37,7 +37,7 @@ import com.cloud.exception.InsufficientCapacityException; import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.PermissionDeniedException; -@Implementation(method="queryAsyncJobResult", description="Retrieves the current status of asynchronous job.") +@Implementation(description="Retrieves the current status of asynchronous job.") public class QueryAsyncJobResultCmd extends BaseCmd { public static final Logger s_logger = Logger.getLogger(QueryAsyncJobResultCmd.class.getName()); @@ -66,11 +66,10 @@ public class QueryAsyncJobResultCmd extends BaseCmd { public String getName() { return s_name; } - - @Override @SuppressWarnings("unchecked") - public AsyncJobResponse getResponse() { - AsyncJobResult result = (AsyncJobResult)getResponseObject(); - + + @Override + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + AsyncJobResult result = _asyncMgr.queryAsyncJobResult(this); AsyncJobResponse response = new AsyncJobResponse(); response.setId(result.getJobId()); response.setJobStatus(result.getJobStatus()); @@ -89,12 +88,6 @@ public class QueryAsyncJobResultCmd extends BaseCmd { } response.setResponseName(getName()); - return response; - } - - @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ - AsyncJobResult result = _asyncMgr.queryAsyncJobResult(this); - return result; + this.setResponseObject(response); } } diff --git a/server/src/com/cloud/api/commands/RebootRouterCmd.java b/server/src/com/cloud/api/commands/RebootRouterCmd.java index 60a0e1ae4ed..61b227b7c00 100644 --- a/server/src/com/cloud/api/commands/RebootRouterCmd.java +++ b/server/src/com/cloud/api/commands/RebootRouterCmd.java @@ -34,12 +34,11 @@ import com.cloud.exception.InsufficientAddressCapacityException; import com.cloud.exception.InsufficientCapacityException; import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.PermissionDeniedException; -import com.cloud.network.NetworkManager; import com.cloud.user.Account; import com.cloud.vm.DomainRouter; import com.cloud.vm.DomainRouterVO; -@Implementation(method="rebootRouter", manager=NetworkManager.class, description="Starts a router.") +@Implementation(description="Starts a router.") public class RebootRouterCmd extends BaseAsyncCmd { public static final Logger s_logger = Logger.getLogger(RebootRouterCmd.class.getName()); private static final String s_name = "rebootrouterresponse"; @@ -88,17 +87,12 @@ public class RebootRouterCmd extends BaseAsyncCmd { return "rebooting router: " + getId(); } - @Override @SuppressWarnings("unchecked") - public DomainRouterResponse getResponse() { - DomainRouter router = (DomainRouter)getResponseObject(); - DomainRouterResponse response = ApiResponseHelper.createDomainRouterResponse(router); - response.setResponseName("router"); - return response; - } @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ DomainRouter result = _networkMgr.rebootRouter(this); - return result; + DomainRouterResponse response = ApiResponseHelper.createDomainRouterResponse(result); + response.setResponseName("router"); + this.setResponseObject(response); } } diff --git a/server/src/com/cloud/api/commands/RebootSystemVmCmd.java b/server/src/com/cloud/api/commands/RebootSystemVmCmd.java index 877766103c3..1dc682a9465 100644 --- a/server/src/com/cloud/api/commands/RebootSystemVmCmd.java +++ b/server/src/com/cloud/api/commands/RebootSystemVmCmd.java @@ -33,12 +33,11 @@ import com.cloud.exception.InsufficientAddressCapacityException; import com.cloud.exception.InsufficientCapacityException; import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.PermissionDeniedException; -import com.cloud.server.ManagementServer; import com.cloud.user.Account; import com.cloud.user.UserContext; import com.cloud.vm.VMInstanceVO; -@Implementation(method="rebootSystemVM", manager=ManagementServer.class, description="Reboots a system VM.") +@Implementation(description="Reboots a system VM.") public class RebootSystemVmCmd extends BaseAsyncCmd { public static final Logger s_logger = Logger.getLogger(RebootSystemVmCmd.class.getName()); @@ -87,18 +86,12 @@ public class RebootSystemVmCmd extends BaseAsyncCmd { public String getEventDescription() { return "rebooting system vm: " + getId(); } - - @Override @SuppressWarnings("unchecked") - public SystemVmResponse getResponse() { - VMInstanceVO instance = (VMInstanceVO)getResponseObject(); - SystemVmResponse response = ApiResponseHelper.createSystemVmResponse(instance); - response.setResponseName(getName()); - return response; - } @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ VMInstanceVO result = _mgr.rebootSystemVM(this); - return result; + SystemVmResponse response = ApiResponseHelper.createSystemVmResponse(result); + response.setResponseName(getName()); + this.setResponseObject(response); } } diff --git a/server/src/com/cloud/api/commands/RebootVMCmd.java b/server/src/com/cloud/api/commands/RebootVMCmd.java index b2676e1eeea..da7fee4878f 100644 --- a/server/src/com/cloud/api/commands/RebootVMCmd.java +++ b/server/src/com/cloud/api/commands/RebootVMCmd.java @@ -36,9 +36,8 @@ import com.cloud.exception.PermissionDeniedException; import com.cloud.exception.StorageUnavailableException; import com.cloud.user.Account; import com.cloud.uservm.UserVm; -import com.cloud.vm.UserVmManager; -@Implementation(method="rebootVirtualMachine", manager=UserVmManager.class, description="Reboots a virtual machine.") +@Implementation(description="Reboots a virtual machine.") public class RebootVMCmd extends BaseAsyncCmd { public static final Logger s_logger = Logger.getLogger(RebootVMCmd.class.getName()); private static final String s_name = "rebootvirtualmachineresponse"; @@ -86,19 +85,12 @@ public class RebootVMCmd extends BaseAsyncCmd { public String getEventDescription() { return "rebooting user vm: " + getId(); } - - - @Override @SuppressWarnings("unchecked") - public UserVmResponse getResponse() { - UserVm userVm = (UserVm)getResponseObject(); - UserVmResponse recoverVmResponse = ApiResponseHelper.createUserVmResponse(userVm); - recoverVmResponse.setResponseName(getName()); - return recoverVmResponse; - } @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException, StorageUnavailableException{ + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException, StorageUnavailableException{ UserVm result = _userVmService.rebootVirtualMachine(this); - return result; + UserVmResponse response = ApiResponseHelper.createUserVmResponse(result); + response.setResponseName(getName()); + this.setResponseObject(response); } } diff --git a/server/src/com/cloud/api/commands/ReconnectHostCmd.java b/server/src/com/cloud/api/commands/ReconnectHostCmd.java index 829f7c136b2..aa4c24a25cf 100644 --- a/server/src/com/cloud/api/commands/ReconnectHostCmd.java +++ b/server/src/com/cloud/api/commands/ReconnectHostCmd.java @@ -20,7 +20,6 @@ package com.cloud.api.commands; import org.apache.log4j.Logger; -import com.cloud.agent.AgentManager; import com.cloud.api.ApiConstants; import com.cloud.api.ApiResponseHelper; import com.cloud.api.BaseAsyncCmd; @@ -40,7 +39,7 @@ import com.cloud.host.HostVO; import com.cloud.user.Account; import com.cloud.user.UserContext; -@Implementation(method="reconnectHost", manager=AgentManager.class, description="Reconnects a host.") +@Implementation(description="Reconnects a host.") public class ReconnectHostCmd extends BaseAsyncCmd { public static final Logger s_logger = Logger.getLogger(ReconnectHostCmd.class.getName()); @@ -93,21 +92,14 @@ public class ReconnectHostCmd extends BaseAsyncCmd { public String getEventDescription() { return "reconnecting host: " + getId(); } - - @Override @SuppressWarnings("unchecked") - public HostResponse getResponse() { - HostVO host = (HostVO)getResponseObject(); - HostResponse response = ApiResponseHelper.createHostResponse(host); - response.setResponseName(getName()); - - return response; - } @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ try { HostVO result = _agentMgr.reconnectHost(this); - return result; + HostResponse response = ApiResponseHelper.createHostResponse(result); + response.setResponseName(getName()); + this.setResponseObject(response); } catch (AgentUnavailableException ex) { throw new ServerApiException(BaseCmd.INTERNAL_ERROR, ex.getMessage()); } diff --git a/server/src/com/cloud/api/commands/RecoverVMCmd.java b/server/src/com/cloud/api/commands/RecoverVMCmd.java index 56609c5601a..27340815b60 100644 --- a/server/src/com/cloud/api/commands/RecoverVMCmd.java +++ b/server/src/com/cloud/api/commands/RecoverVMCmd.java @@ -35,9 +35,8 @@ import com.cloud.exception.PermissionDeniedException; import com.cloud.exception.ResourceAllocationException; import com.cloud.exception.StorageUnavailableException; import com.cloud.uservm.UserVm; -import com.cloud.vm.UserVmManager; -@Implementation(method="recoverVirtualMachine", manager=UserVmManager.class, description="Recovers a virtual machine.") +@Implementation(description="Recovers a virtual machine.") public class RecoverVMCmd extends BaseCmd { public static final Logger s_logger = Logger.getLogger(RecoverVMCmd.class.getName()); @@ -66,20 +65,14 @@ public class RecoverVMCmd extends BaseCmd { public String getName() { return s_name; } - - @Override @SuppressWarnings("unchecked") - public UserVmResponse getResponse() { - UserVm userVm = (UserVm)getResponseObject(); - UserVmResponse recoverVmResponse = ApiResponseHelper.createUserVmResponse(userVm); - recoverVmResponse.setResponseName(getName()); - return recoverVmResponse; - } @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException, StorageUnavailableException{ + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException, StorageUnavailableException{ try { UserVm result = _userVmService.recoverVirtualMachine(this); - return result; + UserVmResponse recoverVmResponse = ApiResponseHelper.createUserVmResponse(result); + recoverVmResponse.setResponseName(getName()); + this.setResponseObject(recoverVmResponse); } catch (ResourceAllocationException ex) { throw new ServerApiException(BaseCmd.INTERNAL_ERROR, ex.getMessage()); } diff --git a/server/src/com/cloud/api/commands/RegisterCmd.java b/server/src/com/cloud/api/commands/RegisterCmd.java index 91c455fa389..1cdd9ea42aa 100644 --- a/server/src/com/cloud/api/commands/RegisterCmd.java +++ b/server/src/com/cloud/api/commands/RegisterCmd.java @@ -31,9 +31,8 @@ import com.cloud.exception.InsufficientAddressCapacityException; import com.cloud.exception.InsufficientCapacityException; import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.PermissionDeniedException; -import com.cloud.server.ManagementServer; -@Implementation(method="createApiKeyAndSecretKey", manager=ManagementServer.class, description="This command allows a user to register for the developer API, returning a secret key and an API key. This request is made through the integration API port, so it is a privileged command and must be made on behalf of a user. It is up to the implementer just how the username and password are entered, and then how that translates to an integration API request. Both secret key and API key should be returned to the user") +@Implementation(description="This command allows a user to register for the developer API, returning a secret key and an API key. This request is made through the integration API port, so it is a privileged command and must be made on behalf of a user. It is up to the implementer just how the username and password are entered, and then how that translates to an integration API request. Both secret key and API key should be returned to the user") public class RegisterCmd extends BaseCmd { public static final Logger s_logger = Logger.getLogger(RegisterCmd.class.getName()); @@ -62,21 +61,14 @@ public class RegisterCmd extends BaseCmd { return s_name; } - @Override @SuppressWarnings("unchecked") - public RegisterResponse getResponse() { - String[] keys = (String[])getResponseObject(); - - RegisterResponse response = new RegisterResponse(); - response.setApiKey(keys[0]); + @Override + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + String[] keys = _mgr.createApiKeyAndSecretKey(this); + RegisterResponse response = new RegisterResponse(); + response.setApiKey(keys[0]); response.setSecretKey(keys[1]); response.setObjectName("userkeys"); response.setResponseName(getName()); - return response; - } - - @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ - String[] result = _mgr.createApiKeyAndSecretKey(this); - return result; + this.setResponseObject(response); } } diff --git a/server/src/com/cloud/api/commands/RegisterIsoCmd.java b/server/src/com/cloud/api/commands/RegisterIsoCmd.java index c17d5a6c48f..8adec4b668d 100755 --- a/server/src/com/cloud/api/commands/RegisterIsoCmd.java +++ b/server/src/com/cloud/api/commands/RegisterIsoCmd.java @@ -41,10 +41,9 @@ import com.cloud.exception.ResourceUnavailableException; import com.cloud.storage.VMTemplateHostVO; import com.cloud.storage.VMTemplateStorageResourceAssoc.Status; import com.cloud.storage.VMTemplateVO; -import com.cloud.template.TemplateManager; import com.cloud.user.Account; -@Implementation(method="registerIso", manager=TemplateManager.class, description="Registers an existing ISO into the Cloud.com Cloud.") +@Implementation(description="Registers an existing ISO into the Cloud.com Cloud.") public class RegisterIsoCmd extends BaseCmd { public static final Logger s_logger = Logger.getLogger(RegisterIsoCmd.class.getName()); @@ -122,63 +121,56 @@ public class RegisterIsoCmd extends BaseCmd { public String getName() { return s_name; } - - @Override @SuppressWarnings("unchecked") - public ListResponse getResponse() { - VMTemplateVO template = (VMTemplateVO)getResponseObject(); - - ListResponse response = new ListResponse(); - List responses = new ArrayList(); - List zones = null; - - if ((zoneId != null) && (zoneId != -1)) { - zones = new ArrayList(); - zones.add(ApiDBUtils.findZoneById(zoneId)); - } else { - zones = ApiDBUtils.listZones(); - } - - for (DataCenterVO zone : zones) { - TemplateResponse templateResponse = new TemplateResponse(); - templateResponse.setId(template.getId()); - templateResponse.setName(template.getName()); - templateResponse.setDisplayText(template.getDisplayText()); - templateResponse.setPublic(template.isPublicTemplate()); - - VMTemplateHostVO isoHostRef = ApiDBUtils.findTemplateHostRef(template.getId(), zone.getId()); - if (isoHostRef != null) { - templateResponse.setCreated(isoHostRef.getCreated()); - templateResponse.setReady(isoHostRef.getDownloadState() == Status.DOWNLOADED); - } - - templateResponse.setFeatured(template.isFeatured()); - templateResponse.setBootable(template.isBootable()); - templateResponse.setOsTypeId(template.getGuestOSId()); - templateResponse.setOsTypeName(ApiDBUtils.findGuestOSById(template.getGuestOSId()).getDisplayName()); - - Account owner = ApiDBUtils.findAccountById(template.getAccountId()); - if (owner != null) { - templateResponse.setAccountId(owner.getId()); - templateResponse.setAccount(owner.getAccountName()); - templateResponse.setDomainId(owner.getDomainId()); - } - - templateResponse.setZoneId(zone.getId()); - templateResponse.setZoneName(zone.getName()); - templateResponse.setObjectName("iso"); - - responses.add(templateResponse); - } - response.setResponseName(getName()); - response.setResponses(responses); - return response; - } @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException, ResourceUnavailableException{ + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException, ResourceUnavailableException{ try { - VMTemplateVO result = _templateMgr.registerIso(this); - return result; + VMTemplateVO template = _templateMgr.registerIso(this); + ListResponse response = new ListResponse(); + List responses = new ArrayList(); + List zones = null; + + if ((zoneId != null) && (zoneId != -1)) { + zones = new ArrayList(); + zones.add(ApiDBUtils.findZoneById(zoneId)); + } else { + zones = ApiDBUtils.listZones(); + } + + for (DataCenterVO zone : zones) { + TemplateResponse templateResponse = new TemplateResponse(); + templateResponse.setId(template.getId()); + templateResponse.setName(template.getName()); + templateResponse.setDisplayText(template.getDisplayText()); + templateResponse.setPublic(template.isPublicTemplate()); + + VMTemplateHostVO isoHostRef = ApiDBUtils.findTemplateHostRef(template.getId(), zone.getId()); + if (isoHostRef != null) { + templateResponse.setCreated(isoHostRef.getCreated()); + templateResponse.setReady(isoHostRef.getDownloadState() == Status.DOWNLOADED); + } + + templateResponse.setFeatured(template.isFeatured()); + templateResponse.setBootable(template.isBootable()); + templateResponse.setOsTypeId(template.getGuestOSId()); + templateResponse.setOsTypeName(ApiDBUtils.findGuestOSById(template.getGuestOSId()).getDisplayName()); + + Account owner = ApiDBUtils.findAccountById(template.getAccountId()); + if (owner != null) { + templateResponse.setAccountId(owner.getId()); + templateResponse.setAccount(owner.getAccountName()); + templateResponse.setDomainId(owner.getDomainId()); + } + + templateResponse.setZoneId(zone.getId()); + templateResponse.setZoneName(zone.getName()); + templateResponse.setObjectName("iso"); + + responses.add(templateResponse); + } + response.setResponseName(getName()); + response.setResponses(responses); + this.setResponseObject(response); } catch (ResourceAllocationException ex) { throw new ServerApiException(BaseCmd.INTERNAL_ERROR, ex.getMessage()); } diff --git a/server/src/com/cloud/api/commands/RegisterPreallocatedLunCmd.java b/server/src/com/cloud/api/commands/RegisterPreallocatedLunCmd.java index 53c4b8c2970..37df40b386c 100644 --- a/server/src/com/cloud/api/commands/RegisterPreallocatedLunCmd.java +++ b/server/src/com/cloud/api/commands/RegisterPreallocatedLunCmd.java @@ -31,7 +31,7 @@ import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.PermissionDeniedException; import com.cloud.storage.preallocatedlun.PreallocatedLunVO; -@Implementation(method="registerPreallocatedLun") +@Implementation() public class RegisterPreallocatedLunCmd extends BaseCmd { private static final String s_name = "registerPreallocatedLunsResponse"; @@ -98,17 +98,11 @@ public class RegisterPreallocatedLunCmd extends BaseCmd { return s_name; } - @Override @SuppressWarnings("unchecked") - public PreallocatedLunResponse getResponse() { - PreallocatedLunVO preallocatedLun = (PreallocatedLunVO)getResponseObject(); - PreallocatedLunResponse response = ApiResponseHelper.createPreallocatedLunResponse(preallocatedLun); - response.setResponseName(getName()); - return response; - } - @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ PreallocatedLunVO result = _mgr.registerPreallocatedLun(this); - return result; + PreallocatedLunResponse response = ApiResponseHelper.createPreallocatedLunResponse(result); + response.setResponseName(getName()); + this.setResponseObject(response); } } diff --git a/server/src/com/cloud/api/commands/RegisterTemplateCmd.java b/server/src/com/cloud/api/commands/RegisterTemplateCmd.java index ce11f39224e..b4eaa941b3c 100755 --- a/server/src/com/cloud/api/commands/RegisterTemplateCmd.java +++ b/server/src/com/cloud/api/commands/RegisterTemplateCmd.java @@ -43,10 +43,9 @@ import com.cloud.storage.GuestOS; import com.cloud.storage.VMTemplateHostVO; import com.cloud.storage.VMTemplateStorageResourceAssoc.Status; import com.cloud.storage.VMTemplateVO; -import com.cloud.template.TemplateManager; import com.cloud.user.Account; -@Implementation(method="registerTemplate", manager=TemplateManager.class, description="Registers an existing template into the Cloud.com cloud. ") +@Implementation(description="Registers an existing template into the Cloud.com cloud. ") public class RegisterTemplateCmd extends BaseCmd { public static final Logger s_logger = Logger.getLogger(RegisterTemplateCmd.class.getName()); @@ -153,73 +152,67 @@ public class RegisterTemplateCmd extends BaseCmd { return s_name; } - @Override @SuppressWarnings("unchecked") - public ListResponse getResponse() { - VMTemplateVO template = (VMTemplateVO)getResponseObject(); - - ListResponse response = new ListResponse(); - List responses = new ArrayList(); - List zones = null; - - if ((zoneId != null) && (zoneId != -1)) { - zones = new ArrayList(); - zones.add(ApiDBUtils.findZoneById(zoneId)); - } else { - zones = ApiDBUtils.listZones(); - } - - for (DataCenterVO zone : zones) { - TemplateResponse templateResponse = new TemplateResponse(); - templateResponse.setId(template.getId()); - templateResponse.setName(template.getName()); - templateResponse.setDisplayText(template.getDisplayText()); - templateResponse.setPublic(template.isPublicTemplate()); - templateResponse.setCrossZones(template.isCrossZones()); - - VMTemplateHostVO isoHostRef = ApiDBUtils.findTemplateHostRef(template.getId(), zone.getId()); - if (isoHostRef != null) { - templateResponse.setCreated(isoHostRef.getCreated()); - templateResponse.setReady(isoHostRef.getDownloadState() == Status.DOWNLOADED); - } - - templateResponse.setFeatured(template.isFeatured()); - templateResponse.setPasswordEnabled(template.getEnablePassword()); - templateResponse.setFormat(template.getFormat()); - templateResponse.setStatus("Processing"); - - GuestOS os = ApiDBUtils.findGuestOSById(template.getGuestOSId()); - if (os != null) { - templateResponse.setOsTypeId(os.getId()); - templateResponse.setOsTypeName(os.getDisplayName()); - } else { - templateResponse.setOsTypeId(-1L); - templateResponse.setOsTypeName(""); - } - - Account owner = ApiDBUtils.findAccountById(template.getAccountId()); - if (owner != null) { - templateResponse.setAccountId(owner.getId()); - templateResponse.setAccount(owner.getAccountName()); - templateResponse.setDomainId(owner.getDomainId()); - } - - templateResponse.setZoneId(zone.getId()); - templateResponse.setZoneName(zone.getName()); - templateResponse.setHypervisor(template.getHypervisorType().toString()); - templateResponse.setObjectName("template"); - - responses.add(templateResponse); - } - response.setResponseName(getName()); - response.setResponses(responses); - return response; - } - @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException, ResourceUnavailableException{ + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException, ResourceUnavailableException{ try { - VMTemplateVO result = _templateMgr.registerTemplate(this); - return result; + VMTemplateVO template = _templateMgr.registerTemplate(this); + ListResponse response = new ListResponse(); + List responses = new ArrayList(); + List zones = null; + + if ((zoneId != null) && (zoneId != -1)) { + zones = new ArrayList(); + zones.add(ApiDBUtils.findZoneById(zoneId)); + } else { + zones = ApiDBUtils.listZones(); + } + + for (DataCenterVO zone : zones) { + TemplateResponse templateResponse = new TemplateResponse(); + templateResponse.setId(template.getId()); + templateResponse.setName(template.getName()); + templateResponse.setDisplayText(template.getDisplayText()); + templateResponse.setPublic(template.isPublicTemplate()); + templateResponse.setCrossZones(template.isCrossZones()); + + VMTemplateHostVO isoHostRef = ApiDBUtils.findTemplateHostRef(template.getId(), zone.getId()); + if (isoHostRef != null) { + templateResponse.setCreated(isoHostRef.getCreated()); + templateResponse.setReady(isoHostRef.getDownloadState() == Status.DOWNLOADED); + } + + templateResponse.setFeatured(template.isFeatured()); + templateResponse.setPasswordEnabled(template.getEnablePassword()); + templateResponse.setFormat(template.getFormat()); + templateResponse.setStatus("Processing"); + + GuestOS os = ApiDBUtils.findGuestOSById(template.getGuestOSId()); + if (os != null) { + templateResponse.setOsTypeId(os.getId()); + templateResponse.setOsTypeName(os.getDisplayName()); + } else { + templateResponse.setOsTypeId(-1L); + templateResponse.setOsTypeName(""); + } + + Account owner = ApiDBUtils.findAccountById(template.getAccountId()); + if (owner != null) { + templateResponse.setAccountId(owner.getId()); + templateResponse.setAccount(owner.getAccountName()); + templateResponse.setDomainId(owner.getDomainId()); + } + + templateResponse.setZoneId(zone.getId()); + templateResponse.setZoneName(zone.getName()); + templateResponse.setHypervisor(template.getHypervisorType().toString()); + templateResponse.setObjectName("template"); + + responses.add(templateResponse); + } + response.setResponseName(getName()); + response.setResponses(responses); + + this.setResponseObject(response); } catch (ResourceAllocationException ex) { throw new ServerApiException(BaseCmd.INTERNAL_ERROR, ex.getMessage()); } catch (URISyntaxException ex1) { diff --git a/server/src/com/cloud/api/commands/RemoveFromLoadBalancerRuleCmd.java b/server/src/com/cloud/api/commands/RemoveFromLoadBalancerRuleCmd.java index 1b956de211f..348a09cb976 100644 --- a/server/src/com/cloud/api/commands/RemoveFromLoadBalancerRuleCmd.java +++ b/server/src/com/cloud/api/commands/RemoveFromLoadBalancerRuleCmd.java @@ -37,11 +37,10 @@ import com.cloud.exception.InsufficientCapacityException; import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.PermissionDeniedException; import com.cloud.network.LoadBalancerVO; -import com.cloud.network.NetworkManager; import com.cloud.user.Account; import com.cloud.utils.StringUtils; -@Implementation(method="removeFromLoadBalancer", manager=NetworkManager.class, description="Removes a virtual machine or a list of virtual machines from a load balancer rule.") +@Implementation(description="Removes a virtual machine or a list of virtual machines from a load balancer rule.") public class RemoveFromLoadBalancerRuleCmd extends BaseAsyncCmd { public static final Logger s_logger = Logger.getLogger(RemoveFromLoadBalancerRuleCmd.class.getName()); @@ -110,18 +109,14 @@ public class RemoveFromLoadBalancerRuleCmd extends BaseAsyncCmd { return "removing instances from load balancer: " + getId() + " (ids: " + StringUtils.join(vmIds, ",") + ")"; } - @Override @SuppressWarnings("unchecked") - public SuccessResponse getResponse() { - if (getResponseObject() == null || (Boolean)getResponseObject()) { - return new SuccessResponse(getName()); - } else { - throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to remove instance from load balancer rule"); - } - } - @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ boolean result = _networkMgr.removeFromLoadBalancer(this); - return result; + if (result) { + SuccessResponse response = new SuccessResponse(getName()); + this.setResponseObject(response); + } else { + throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to remove instance from load balancer rule"); + } } } diff --git a/server/src/com/cloud/api/commands/RemoveVpnUserCmd.java b/server/src/com/cloud/api/commands/RemoveVpnUserCmd.java index 21063ba07b7..759e297cbfe 100644 --- a/server/src/com/cloud/api/commands/RemoveVpnUserCmd.java +++ b/server/src/com/cloud/api/commands/RemoveVpnUserCmd.java @@ -33,11 +33,10 @@ import com.cloud.exception.InsufficientAddressCapacityException; import com.cloud.exception.InsufficientCapacityException; import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.PermissionDeniedException; -import com.cloud.network.NetworkManager; import com.cloud.user.Account; import com.cloud.user.UserContext; -@Implementation( method="removeVpnUser", manager=NetworkManager.class, description="Removes vpn user") +@Implementation(description="Removes vpn user") public class RemoveVpnUserCmd extends BaseAsyncCmd { public static final Logger s_logger = Logger.getLogger(RemoveVpnUserCmd.class.getName()); @@ -85,15 +84,6 @@ public class RemoveVpnUserCmd extends BaseAsyncCmd { return s_name; } - @Override @SuppressWarnings("unchecked") - public SuccessResponse getResponse() { - if (getResponseObject() == null || (Boolean)getResponseObject()) { - return new SuccessResponse(getName()); - } else { - throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to remove vpn user"); - } - } - @Override public long getAccountId() { Account account = (Account)UserContext.current().getAccount(); @@ -125,9 +115,13 @@ public class RemoveVpnUserCmd extends BaseAsyncCmd { } @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ boolean result = _networkMgr.removeVpnUser(this); - return result; - } - + if (result) { + SuccessResponse response = new SuccessResponse(getName()); + this.setResponseObject(response); + } else { + throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to remove vpn user"); + } + } } diff --git a/server/src/com/cloud/api/commands/ResetVMPasswordCmd.java b/server/src/com/cloud/api/commands/ResetVMPasswordCmd.java index bc0303de5c8..792c38f5788 100644 --- a/server/src/com/cloud/api/commands/ResetVMPasswordCmd.java +++ b/server/src/com/cloud/api/commands/ResetVMPasswordCmd.java @@ -36,9 +36,8 @@ import com.cloud.exception.PermissionDeniedException; import com.cloud.exception.StorageUnavailableException; import com.cloud.user.Account; import com.cloud.uservm.UserVm; -import com.cloud.vm.UserVmManager; -@Implementation(method="resetVMPassword", manager=UserVmManager.class, description="Resets the password for virtual machine. " + +@Implementation(description="Resets the password for virtual machine. " + "The virtual machine must be in a \"Stopped\" state and the template must already " + "support this feature for this command to take effect. [async]") public class ResetVMPasswordCmd extends BaseAsyncCmd { @@ -101,23 +100,17 @@ public class ResetVMPasswordCmd extends BaseAsyncCmd { public String getEventDescription() { return "resetting password for vm: " + getId(); } - - @Override @SuppressWarnings("unchecked") - public UserVmResponse getResponse() { - UserVm userVm = (UserVm)getResponseObject(); - UserVmResponse response = ApiResponseHelper.createUserVmResponse(userVm); + + @Override + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException, StorageUnavailableException{ + UserVm result = _userVmService.resetVMPassword(this); + UserVmResponse response = ApiResponseHelper.createUserVmResponse(result); // FIXME: where will the password come from in this case? // if (templatePasswordEnabled) { // response.setPassword(getPassword()); // } response.setResponseName(getName()); - return response; - } - - @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException, StorageUnavailableException{ - UserVm result = _userVmService.resetVMPassword(this); - return result; + this.setResponseObject(response); } } diff --git a/server/src/com/cloud/api/commands/RevokeNetworkGroupIngressCmd.java b/server/src/com/cloud/api/commands/RevokeNetworkGroupIngressCmd.java index 131aff366b8..68b4b4307ab 100644 --- a/server/src/com/cloud/api/commands/RevokeNetworkGroupIngressCmd.java +++ b/server/src/com/cloud/api/commands/RevokeNetworkGroupIngressCmd.java @@ -21,12 +21,11 @@ import com.cloud.exception.InsufficientAddressCapacityException; import com.cloud.exception.InsufficientCapacityException; import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.PermissionDeniedException; -import com.cloud.network.security.NetworkGroupManager; import com.cloud.user.Account; import com.cloud.user.UserContext; @SuppressWarnings("rawtypes") -@Implementation(method="revokeNetworkGroupIngress", manager=NetworkGroupManager.class) +@Implementation() public class RevokeNetworkGroupIngressCmd extends BaseAsyncCmd { public static final Logger s_logger = Logger.getLogger(RevokeNetworkGroupIngressCmd.class.getName()); @@ -184,19 +183,15 @@ public class RevokeNetworkGroupIngressCmd extends BaseAsyncCmd { return "revoking ingress from group: " + getNetworkGroupName() + " for " + sb.toString(); } - - @Override @SuppressWarnings("unchecked") - public SuccessResponse getResponse() { - if (getResponseObject() == null || (Boolean)getResponseObject()) { - return new SuccessResponse(getName()); - } else { - throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to revoke security group ingress rule"); - } - } @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ boolean result = _networkGroupMgr.revokeNetworkGroupIngress(this); - return result; + if (result) { + SuccessResponse response = new SuccessResponse(getName()); + this.setResponseObject(response); + } else { + throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to revoke security group ingress rule"); + } } } diff --git a/server/src/com/cloud/api/commands/StartRouter2Cmd.java b/server/src/com/cloud/api/commands/StartRouter2Cmd.java index 9f880f8e17b..5bf18954fec 100644 --- a/server/src/com/cloud/api/commands/StartRouter2Cmd.java +++ b/server/src/com/cloud/api/commands/StartRouter2Cmd.java @@ -34,13 +34,12 @@ import com.cloud.exception.InsufficientCapacityException; import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.PermissionDeniedException; import com.cloud.exception.ResourceUnavailableException; -import com.cloud.network.DomainRouterService; import com.cloud.user.Account; import com.cloud.uservm.UserVm; import com.cloud.vm.DomainRouter; -@Implementation(method="startRouter", manager=DomainRouterService.class, description="Starts a router.") +@Implementation(description="Starts a router.") public class StartRouter2Cmd extends BaseAsyncCmd { public static final Logger s_logger = Logger.getLogger(StartRouter2Cmd.class.getName()); private static final String s_name = "startrouterresponse"; @@ -95,15 +94,11 @@ public class StartRouter2Cmd extends BaseAsyncCmd { } @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientCapacityException, ConcurrentOperationException, ResourceUnavailableException { - return _routerMgr.startRouter(this); - } - - @Override @SuppressWarnings("unchecked") - public DomainRouterResponse getResponse() { - DomainRouter router = (DomainRouter)getResponseObject(); + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientCapacityException, ConcurrentOperationException, ResourceUnavailableException { + DomainRouter router = _routerMgr.startRouter(this); DomainRouterResponse routerResponse = ApiResponseHelper.createDomainRouterResponse(router); routerResponse.setResponseName(getName()); - return routerResponse; + this.setResponseObject(routerResponse); } + } diff --git a/server/src/com/cloud/api/commands/StartRouterCmd.java b/server/src/com/cloud/api/commands/StartRouterCmd.java index 616a0487ba4..0fa4f8fa3b3 100644 --- a/server/src/com/cloud/api/commands/StartRouterCmd.java +++ b/server/src/com/cloud/api/commands/StartRouterCmd.java @@ -34,13 +34,12 @@ import com.cloud.exception.InsufficientAddressCapacityException; import com.cloud.exception.InsufficientCapacityException; import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.PermissionDeniedException; -import com.cloud.network.DomainRouterService; import com.cloud.user.Account; import com.cloud.uservm.UserVm; import com.cloud.vm.DomainRouter; -@Implementation(method="startRouter", manager=DomainRouterService.class, description="Starts a router.") +@Implementation(description="Starts a router.") public class StartRouterCmd extends BaseAsyncCmd { public static final Logger s_logger = Logger.getLogger(StartRouterCmd.class.getName()); private static final String s_name = "startrouterresponse"; @@ -93,18 +92,12 @@ public class StartRouterCmd extends BaseAsyncCmd { public String getEventDescription() { return "starting router: " + getId(); } - - @Override @SuppressWarnings("unchecked") - public DomainRouterResponse getResponse() { - DomainRouter router = (DomainRouter)getResponseObject(); - DomainRouterResponse routerResponse = ApiResponseHelper.createDomainRouterResponse(router); - routerResponse.setResponseName(getName()); - return routerResponse; - } @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ - DomainRouter result = _networkMgr.startRouter(this); - return result; + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + DomainRouter result = _routerMgr.startRouter(this); + DomainRouterResponse routerResponse = ApiResponseHelper.createDomainRouterResponse(result); + routerResponse.setResponseName(getName()); + this.setResponseObject(routerResponse); } } diff --git a/server/src/com/cloud/api/commands/StartSystemVMCmd.java b/server/src/com/cloud/api/commands/StartSystemVMCmd.java index 57c78cfe069..bf3d233680f 100644 --- a/server/src/com/cloud/api/commands/StartSystemVMCmd.java +++ b/server/src/com/cloud/api/commands/StartSystemVMCmd.java @@ -33,12 +33,11 @@ import com.cloud.exception.InsufficientAddressCapacityException; import com.cloud.exception.InsufficientCapacityException; import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.PermissionDeniedException; -import com.cloud.server.ManagementServer; import com.cloud.user.Account; import com.cloud.user.UserContext; import com.cloud.vm.VMInstanceVO; -@Implementation(method="startSystemVM", manager=ManagementServer.class, description="Starts a system virtual machine.") +@Implementation(description="Starts a system virtual machine.") public class StartSystemVMCmd extends BaseAsyncCmd { public static final Logger s_logger = Logger.getLogger(StartSystemVMCmd.class.getName()); @@ -91,18 +90,12 @@ public class StartSystemVMCmd extends BaseAsyncCmd { public String getEventDescription() { return "starting system vm: " + getId(); } - - @Override @SuppressWarnings("unchecked") - public SystemVmResponse getResponse() { - VMInstanceVO instance = (VMInstanceVO)getResponseObject(); - SystemVmResponse response = ApiResponseHelper.createSystemVmResponse(instance); - response.setResponseName(getName()); - return response; - } @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ - VMInstanceVO result = _mgr.startSystemVM(this); - return result; + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + VMInstanceVO instance = _mgr.startSystemVM(this); + SystemVmResponse response = ApiResponseHelper.createSystemVmResponse(instance); + response.setResponseName(getName()); + this.setResponseObject(response); } } diff --git a/server/src/com/cloud/api/commands/StartVMCmd.java b/server/src/com/cloud/api/commands/StartVMCmd.java index 82e40688188..627bb53b93a 100644 --- a/server/src/com/cloud/api/commands/StartVMCmd.java +++ b/server/src/com/cloud/api/commands/StartVMCmd.java @@ -38,9 +38,8 @@ import com.cloud.exception.StorageUnavailableException; import com.cloud.user.Account; import com.cloud.uservm.UserVm; import com.cloud.utils.exception.ExecutionException; -import com.cloud.vm.UserVmManager; -@Implementation(method="startVirtualMachine", manager=UserVmManager.class, description="Starts a virtual machine.") +@Implementation(description="Starts a virtual machine.") public class StartVMCmd extends BaseAsyncCmd { public static final Logger s_logger = Logger.getLogger(StartVMCmd.class.getName()); @@ -93,20 +92,14 @@ public class StartVMCmd extends BaseAsyncCmd { public String getEventDescription() { return "starting user vm: " + getId(); } - - @Override @SuppressWarnings("unchecked") - public UserVmResponse getResponse() { - UserVm userVm = (UserVm)getResponseObject(); - UserVmResponse recoverVmResponse = ApiResponseHelper.createUserVmResponse(userVm); - recoverVmResponse.setResponseName(getName()); - return recoverVmResponse; - } @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException, StorageUnavailableException{ + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException, StorageUnavailableException{ try { UserVm result = _userVmService.startVirtualMachine(this); - return result; + UserVmResponse response = ApiResponseHelper.createUserVmResponse(result); + response.setResponseName(getName()); + this.setResponseObject(response); } catch (ExecutionException ex) { throw new ServerApiException(BaseCmd.INTERNAL_ERROR, ex.getMessage()); } diff --git a/server/src/com/cloud/api/commands/StartVm2Cmd.java b/server/src/com/cloud/api/commands/StartVm2Cmd.java index 5b18553422d..58fc3994133 100644 --- a/server/src/com/cloud/api/commands/StartVm2Cmd.java +++ b/server/src/com/cloud/api/commands/StartVm2Cmd.java @@ -40,9 +40,8 @@ import com.cloud.storage.VolumeVO; import com.cloud.user.Account; import com.cloud.uservm.UserVm; import com.cloud.vm.InstanceGroupVO; -import com.cloud.vm.UserVmService; -@Implementation(method="startVirtualMachine", manager=UserVmService.class, description="Starts a virtual machine.") +@Implementation(description="Starts a virtual machine.") public class StartVm2Cmd extends BaseAsyncCmd { public static final Logger s_logger = Logger.getLogger(StartVMCmd.class.getName()); @@ -67,9 +66,111 @@ public class StartVm2Cmd extends BaseAsyncCmd { /////////////// API Implementation/////////////////// ///////////////////////////////////////////////////// @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ - //TODO - put method stub here - return null; + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + try { + UserVm vm = _userVmService.startVirtualMachine(this); + + UserVmResponse response = new UserVmResponse(); + response.setId(vm.getId()); + response.setName(vm.getHostName()); + response.setCreated(vm.getCreated()); + response.setZoneId(vm.getDataCenterId()); + response.setZoneName(ApiDBUtils.findZoneById(vm.getDataCenterId()).getName()); + response.setIpAddress(vm.getPrivateIpAddress()); + response.setServiceOfferingId(vm.getServiceOfferingId()); + response.setHaEnable(vm.isHaEnabled()); + if (vm.getDisplayName() == null || vm.getDisplayName().length() == 0) { + response.setDisplayName(vm.getHostName()); + } else { + response.setDisplayName(vm.getDisplayName()); + } + + InstanceGroupVO group = ApiDBUtils.findInstanceGroupForVM(vm.getId()); + if (group != null) { + response.setGroup(group.getName()); + response.setGroupId(group.getId()); + } + + if (vm.getState() != null) { + response.setState(vm.getState().toString()); + } + + Account acct = ApiDBUtils.findAccountById(vm.getAccountId()); + if (acct != null) { + response.setAccountName(acct.getAccountName()); + response.setDomainId(acct.getDomainId()); + response.setDomainName(ApiDBUtils.findDomainById(acct.getDomainId()).getName()); + } + + if (BaseCmd.isAdmin(acct.getType()) && (vm.getHostId() != null)) { + response.setHostName(ApiDBUtils.findHostById(vm.getHostId()).getName()); + response.setHostId(vm.getHostId()); + } + + String templateName = "ISO Boot"; + boolean templatePasswordEnabled = false; + String templateDisplayText = "ISO Boot"; + + VMTemplateVO template = ApiDBUtils.findTemplateById(vm.getTemplateId()); + if (template != null) { + templateName = template.getName(); + templatePasswordEnabled = template.getEnablePassword(); + templateDisplayText = template.getDisplayText(); + if (templateDisplayText == null) { + templateDisplayText = templateName; + } + } + + response.setTemplateId(vm.getTemplateId()); + response.setTemplateName(templateName); + response.setTemplateDisplayText(templateDisplayText); + response.setPasswordEnabled(templatePasswordEnabled); + if (templatePasswordEnabled) { + response.setPassword(null); // FIXME: Where should password come from? In the old framework, password was always passed + // in to composeResultObject() as null, so that behavior is preserved... + } else { + response.setPassword(""); + } + + String isoName = null; + if (vm.getIsoId() != null) { + VMTemplateVO iso = ApiDBUtils.findTemplateById(vm.getIsoId().longValue()); + if (iso != null) { + isoName = iso.getName(); + } + } + + response.setIsoId(vm.getIsoId()); + response.setIsoName(isoName); + + ServiceOffering offering = ApiDBUtils.findServiceOfferingById(vm.getServiceOfferingId()); + response.setServiceOfferingId(vm.getServiceOfferingId()); + response.setServiceOfferingName(offering.getName()); + + response.setCpuNumber(offering.getCpu()); + response.setCpuSpeed(offering.getSpeed()); + response.setMemory(offering.getRamSize()); + + VolumeVO rootVolume = ApiDBUtils.findRootVolume(vm.getId()); + if (rootVolume != null) { + response.setRootDeviceId(rootVolume.getDeviceId()); + StoragePoolVO storagePool = ApiDBUtils.findStoragePoolById(rootVolume.getPoolId()); + response.setRootDeviceType(storagePool.getPoolType().toString()); + } + + response.setGuestOsId(vm.getGuestOSId()); + + //Network groups + response.setNetworkGroupList(ApiDBUtils.getNetworkGroupsNamesForVm(vm.getId())); + response.setObjectName("virtualmachine"); + response.setResponseName(getName()); + //response.setResponseName(getResultObjectName()); + this.setResponseObject(response); + } catch (Exception ex) { + throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to start a vm"); + } + + } @Override @@ -100,106 +201,4 @@ public class StartVm2Cmd extends BaseAsyncCmd { public String getEventDescription() { return "starting user vm: " + getId(); } - - @Override @SuppressWarnings("unchecked") - public UserVmResponse getResponse() { - UserVm vm = (UserVm)getResponseObject(); - - UserVmResponse response = new UserVmResponse(); - response.setId(vm.getId()); - response.setName(vm.getHostName()); - response.setCreated(vm.getCreated()); - response.setZoneId(vm.getDataCenterId()); - response.setZoneName(ApiDBUtils.findZoneById(vm.getDataCenterId()).getName()); - response.setIpAddress(vm.getPrivateIpAddress()); - response.setServiceOfferingId(vm.getServiceOfferingId()); - response.setHaEnable(vm.isHaEnabled()); - if (vm.getDisplayName() == null || vm.getDisplayName().length() == 0) { - response.setDisplayName(vm.getHostName()); - } else { - response.setDisplayName(vm.getDisplayName()); - } - - InstanceGroupVO group = ApiDBUtils.findInstanceGroupForVM(vm.getId()); - if (group != null) { - response.setGroup(group.getName()); - response.setGroupId(group.getId()); - } - - if (vm.getState() != null) { - response.setState(vm.getState().toString()); - } - - Account acct = ApiDBUtils.findAccountById(vm.getAccountId()); - if (acct != null) { - response.setAccountName(acct.getAccountName()); - response.setDomainId(acct.getDomainId()); - response.setDomainName(ApiDBUtils.findDomainById(acct.getDomainId()).getName()); - } - - if (BaseCmd.isAdmin(acct.getType()) && (vm.getHostId() != null)) { - response.setHostName(ApiDBUtils.findHostById(vm.getHostId()).getName()); - response.setHostId(vm.getHostId()); - } - - String templateName = "ISO Boot"; - boolean templatePasswordEnabled = false; - String templateDisplayText = "ISO Boot"; - - VMTemplateVO template = ApiDBUtils.findTemplateById(vm.getTemplateId()); - if (template != null) { - templateName = template.getName(); - templatePasswordEnabled = template.getEnablePassword(); - templateDisplayText = template.getDisplayText(); - if (templateDisplayText == null) { - templateDisplayText = templateName; - } - } - - response.setTemplateId(vm.getTemplateId()); - response.setTemplateName(templateName); - response.setTemplateDisplayText(templateDisplayText); - response.setPasswordEnabled(templatePasswordEnabled); - if (templatePasswordEnabled) { - response.setPassword(null); // FIXME: Where should password come from? In the old framework, password was always passed - // in to composeResultObject() as null, so that behavior is preserved... - } else { - response.setPassword(""); - } - - String isoName = null; - if (vm.getIsoId() != null) { - VMTemplateVO iso = ApiDBUtils.findTemplateById(vm.getIsoId().longValue()); - if (iso != null) { - isoName = iso.getName(); - } - } - - response.setIsoId(vm.getIsoId()); - response.setIsoName(isoName); - - ServiceOffering offering = ApiDBUtils.findServiceOfferingById(vm.getServiceOfferingId()); - response.setServiceOfferingId(vm.getServiceOfferingId()); - response.setServiceOfferingName(offering.getName()); - - response.setCpuNumber(offering.getCpu()); - response.setCpuSpeed(offering.getSpeed()); - response.setMemory(offering.getRamSize()); - - VolumeVO rootVolume = ApiDBUtils.findRootVolume(vm.getId()); - if (rootVolume != null) { - response.setRootDeviceId(rootVolume.getDeviceId()); - StoragePoolVO storagePool = ApiDBUtils.findStoragePoolById(rootVolume.getPoolId()); - response.setRootDeviceType(storagePool.getPoolType().toString()); - } - - response.setGuestOsId(vm.getGuestOSId()); - - //Network groups - response.setNetworkGroupList(ApiDBUtils.getNetworkGroupsNamesForVm(vm.getId())); - response.setObjectName("virtualmachine"); - response.setResponseName(getName()); - //response.setResponseName(getResultObjectName()); - return response; - } } diff --git a/server/src/com/cloud/api/commands/StopRouter2Cmd.java b/server/src/com/cloud/api/commands/StopRouter2Cmd.java index 288d8eef0fa..6288915ef88 100644 --- a/server/src/com/cloud/api/commands/StopRouter2Cmd.java +++ b/server/src/com/cloud/api/commands/StopRouter2Cmd.java @@ -35,13 +35,12 @@ import com.cloud.exception.InsufficientCapacityException; import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.PermissionDeniedException; import com.cloud.exception.ResourceUnavailableException; -import com.cloud.network.DomainRouterService; import com.cloud.user.Account; import com.cloud.uservm.UserVm; import com.cloud.vm.DomainRouter; -@Implementation(method="stopRouter", manager=DomainRouterService.class, description="Stops a router.") +@Implementation(description="Stops a router.") public class StopRouter2Cmd extends BaseAsyncCmd { public static final Logger s_logger = Logger.getLogger(StopRouter2Cmd.class.getName()); private static final String s_name = "stoprouterresponse"; @@ -90,17 +89,11 @@ public class StopRouter2Cmd extends BaseAsyncCmd { return "stopping router: " + getId(); } - @Override @SuppressWarnings("unchecked") - public DomainRouterResponse getResponse() { - DomainRouter router = (DomainRouter)getResponseObject(); + @Override + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException, ResourceUnavailableException{ + DomainRouter router = _routerMgr.stopRouter(this); DomainRouterResponse response =ApiResponseHelper.createDomainRouterResponse(router); response.setResponseName(getName()); - return response; - } - - @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException, ResourceUnavailableException{ - DomainRouter result = _routerMgr.stopRouter(this); - return result; + this.setResponseObject(response); } } diff --git a/server/src/com/cloud/api/commands/StopRouterCmd.java b/server/src/com/cloud/api/commands/StopRouterCmd.java index 6e2975fb208..1ad71aab476 100644 --- a/server/src/com/cloud/api/commands/StopRouterCmd.java +++ b/server/src/com/cloud/api/commands/StopRouterCmd.java @@ -34,13 +34,12 @@ import com.cloud.exception.InsufficientAddressCapacityException; import com.cloud.exception.InsufficientCapacityException; import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.PermissionDeniedException; -import com.cloud.network.DomainRouterService; import com.cloud.user.Account; import com.cloud.uservm.UserVm; import com.cloud.vm.DomainRouter; -@Implementation(method="stopRouter", manager=DomainRouterService.class, description="Stops a router.") +@Implementation(description="Stops a router.") public class StopRouterCmd extends BaseAsyncCmd { public static final Logger s_logger = Logger.getLogger(StopRouterCmd.class.getName()); private static final String s_name = "stoprouterresponse"; @@ -89,17 +88,11 @@ public class StopRouterCmd extends BaseAsyncCmd { return "stopping router: " + getId(); } - @Override @SuppressWarnings("unchecked") - public DomainRouterResponse getResponse() { - DomainRouter router = (DomainRouter)getResponseObject(); - DomainRouterResponse response =ApiResponseHelper.createDomainRouterResponse(router); - response.setResponseName(getName()); - return response; - } - @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ - DomainRouter result = _networkMgr.stopRouter(this); - return result; + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + DomainRouter result = _routerMgr.stopRouter(this); + DomainRouterResponse response =ApiResponseHelper.createDomainRouterResponse(result); + response.setResponseName(getName()); + this.setResponseObject(response); } } diff --git a/server/src/com/cloud/api/commands/StopSystemVmCmd.java b/server/src/com/cloud/api/commands/StopSystemVmCmd.java index 095f59b452d..c0a85454da7 100644 --- a/server/src/com/cloud/api/commands/StopSystemVmCmd.java +++ b/server/src/com/cloud/api/commands/StopSystemVmCmd.java @@ -33,12 +33,11 @@ import com.cloud.exception.InsufficientAddressCapacityException; import com.cloud.exception.InsufficientCapacityException; import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.PermissionDeniedException; -import com.cloud.server.ManagementServer; import com.cloud.user.Account; import com.cloud.user.UserContext; import com.cloud.vm.VMInstanceVO; -@Implementation(method="stopSystemVM", manager=ManagementServer.class, description="Stops a system VM.") +@Implementation(description="Stops a system VM.") public class StopSystemVmCmd extends BaseAsyncCmd { public static final Logger s_logger = Logger.getLogger(StopSystemVmCmd.class.getName()); @@ -88,17 +87,11 @@ public class StopSystemVmCmd extends BaseAsyncCmd { return "stopping system vm: " + getId(); } - @Override @SuppressWarnings("unchecked") - public SystemVmResponse getResponse() { - VMInstanceVO instance = (VMInstanceVO)getResponseObject(); - SystemVmResponse response = ApiResponseHelper.createSystemVmResponse(instance); - response.setResponseName(getName()); - return response; - } - @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ VMInstanceVO result = _mgr.stopSystemVM(this); - return result; + SystemVmResponse response = ApiResponseHelper.createSystemVmResponse(result); + response.setResponseName(getName()); + this.setResponseObject(response); } } diff --git a/server/src/com/cloud/api/commands/StopVMCmd.java b/server/src/com/cloud/api/commands/StopVMCmd.java index bbf210afc77..2ba4f023b54 100644 --- a/server/src/com/cloud/api/commands/StopVMCmd.java +++ b/server/src/com/cloud/api/commands/StopVMCmd.java @@ -36,9 +36,8 @@ import com.cloud.exception.PermissionDeniedException; import com.cloud.exception.StorageUnavailableException; import com.cloud.user.Account; import com.cloud.uservm.UserVm; -import com.cloud.vm.UserVmManager; -@Implementation(method="stopVirtualMachine", manager=UserVmManager.class, description="Stops a virtual machine.") +@Implementation(description="Stops a virtual machine.") public class StopVMCmd extends BaseAsyncCmd { public static final Logger s_logger = Logger.getLogger(StopVMCmd.class.getName()); @@ -92,17 +91,11 @@ public class StopVMCmd extends BaseAsyncCmd { return "stopping user vm: " + getId(); } - @Override @SuppressWarnings("unchecked") - public UserVmResponse getResponse() { - UserVm userVm = (UserVm)getResponseObject(); - UserVmResponse recoverVmResponse = ApiResponseHelper.createUserVmResponse(userVm); - recoverVmResponse.setResponseName(getName()); - return recoverVmResponse; - } - @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException, StorageUnavailableException{ + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException, StorageUnavailableException{ UserVm result = _userVmService.stopVirtualMachine(this); - return result; + UserVmResponse response = ApiResponseHelper.createUserVmResponse(result); + response.setResponseName(getName()); + this.setResponseObject(response); } } diff --git a/server/src/com/cloud/api/commands/StopVm2Cmd.java b/server/src/com/cloud/api/commands/StopVm2Cmd.java index ec11b747237..8f25eb5f47f 100644 --- a/server/src/com/cloud/api/commands/StopVm2Cmd.java +++ b/server/src/com/cloud/api/commands/StopVm2Cmd.java @@ -35,9 +35,8 @@ import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.PermissionDeniedException; import com.cloud.user.Account; import com.cloud.uservm.UserVm; -import com.cloud.vm.UserVmService; -@Implementation(method="stopVirtualMachine", manager=UserVmService.class, description="Stops a virtual machine.") +@Implementation(description="Stops a virtual machine.") public class StopVm2Cmd extends BaseAsyncCmd { public static final Logger s_logger = Logger.getLogger(StopVMCmd.class.getName()); @@ -62,9 +61,11 @@ public class StopVm2Cmd extends BaseAsyncCmd { /////////////// API Implementation/////////////////// ///////////////////////////////////////////////////// @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ - //TODO - put method stub here - return null; + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + UserVm userVm = _userVmService.stopVirtualMachine(this); + UserVmResponse response = ApiResponseHelper.createUserVmResponse(userVm); + response.setResponseName(getName()); + this.setResponseObject(response); } @Override @@ -95,12 +96,4 @@ public class StopVm2Cmd extends BaseAsyncCmd { public String getEventDescription() { return "stopping user vm: " + getId(); } - - @Override @SuppressWarnings("unchecked") - public UserVmResponse getResponse() { - UserVm userVm = (UserVm)getResponseObject(); - UserVmResponse recoverVmResponse = ApiResponseHelper.createUserVmResponse(userVm); - recoverVmResponse.setResponseName(getName()); - return recoverVmResponse; - } } diff --git a/server/src/com/cloud/api/commands/UpdateAccountCmd.java b/server/src/com/cloud/api/commands/UpdateAccountCmd.java index 2661e717474..2bd5cd180d0 100644 --- a/server/src/com/cloud/api/commands/UpdateAccountCmd.java +++ b/server/src/com/cloud/api/commands/UpdateAccountCmd.java @@ -31,11 +31,9 @@ import com.cloud.exception.InsufficientAddressCapacityException; import com.cloud.exception.InsufficientCapacityException; import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.PermissionDeniedException; -import com.cloud.server.ManagementServer; import com.cloud.user.Account; -import com.cloud.user.AccountVO; -@Implementation(method="updateAccount", manager=ManagementServer.class, description="Updates account information for the authenticated user") +@Implementation(description="Updates account information for the authenticated user") public class UpdateAccountCmd extends BaseCmd{ public static final Logger s_logger = Logger.getLogger(UpdateAccountCmd.class.getName()); private static final String s_name = "updateaccountresponse"; @@ -77,18 +75,12 @@ public class UpdateAccountCmd extends BaseCmd{ public String getName() { return s_name; } - - @Override @SuppressWarnings("unchecked") - public AccountResponse getResponse() { - AccountVO account = (AccountVO)getResponseObject(); - AccountResponse response = ApiResponseHelper.createAccountResponse(account); - response.setResponseName(getName()); - return response; - } @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ Account result = _accountService.updateAccount(this); - return result; + AccountResponse response = ApiResponseHelper.createAccountResponse(result); + response.setResponseName(getName()); + this.setResponseObject(response); } } diff --git a/server/src/com/cloud/api/commands/UpdateCfgCmd.java b/server/src/com/cloud/api/commands/UpdateCfgCmd.java index 25743aea4f7..1d4c0d6254b 100644 --- a/server/src/com/cloud/api/commands/UpdateCfgCmd.java +++ b/server/src/com/cloud/api/commands/UpdateCfgCmd.java @@ -28,7 +28,6 @@ import com.cloud.api.Parameter; import com.cloud.api.ServerApiException; import com.cloud.api.response.ConfigurationResponse; import com.cloud.configuration.Configuration; -import com.cloud.configuration.ConfigurationManager; import com.cloud.configuration.ConfigurationVO; import com.cloud.exception.ConcurrentOperationException; import com.cloud.exception.InsufficientAddressCapacityException; @@ -36,7 +35,7 @@ import com.cloud.exception.InsufficientCapacityException; import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.PermissionDeniedException; -@Implementation(method="updateConfiguration", manager=ConfigurationManager.class, description="Updates a configuration.") +@Implementation(description="Updates a configuration.") public class UpdateCfgCmd extends BaseCmd { public static final Logger s_logger = Logger.getLogger(UpdateCfgCmd.class.getName()); private static final String s_name = "updateconfigurationresponse"; @@ -71,22 +70,15 @@ public class UpdateCfgCmd extends BaseCmd { return s_name; } - @Override @SuppressWarnings("unchecked") - public ConfigurationResponse getResponse() { - ConfigurationVO cfg = (ConfigurationVO)getResponseObject(); - + @Override + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + Configuration cfg = _configService.updateConfiguration(this); if (cfg != null) { - ConfigurationResponse response = ApiResponseHelper.createConfigurationResponse(cfg); + ConfigurationResponse response = ApiResponseHelper.createConfigurationResponse((ConfigurationVO)cfg); response.setResponseName(getName()); - return response; + this.setResponseObject(response); } else { throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to update config"); } } - - @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ - Configuration result = _configService.updateConfiguration(this); - return result; - } } diff --git a/server/src/com/cloud/api/commands/UpdateDiskOfferingCmd.java b/server/src/com/cloud/api/commands/UpdateDiskOfferingCmd.java index 5baf6a03f6f..047dda4b36c 100644 --- a/server/src/com/cloud/api/commands/UpdateDiskOfferingCmd.java +++ b/server/src/com/cloud/api/commands/UpdateDiskOfferingCmd.java @@ -26,7 +26,6 @@ import com.cloud.api.Implementation; import com.cloud.api.Parameter; import com.cloud.api.ServerApiException; import com.cloud.api.response.DiskOfferingResponse; -import com.cloud.configuration.ConfigurationManager; import com.cloud.exception.ConcurrentOperationException; import com.cloud.exception.InsufficientAddressCapacityException; import com.cloud.exception.InsufficientCapacityException; @@ -35,7 +34,7 @@ import com.cloud.exception.PermissionDeniedException; import com.cloud.offering.DiskOffering; import com.cloud.storage.DiskOfferingVO; -@Implementation(method="updateDiskOffering", manager=ConfigurationManager.class, description="Updates a disk offering.") +@Implementation(description="Updates a disk offering.") public class UpdateDiskOfferingCmd extends BaseCmd{ public static final Logger s_logger = Logger.getLogger(UpdateDiskOfferingCmd.class.getName()); private static final String s_name = "updatediskofferingresponse"; @@ -85,17 +84,11 @@ public class UpdateDiskOfferingCmd extends BaseCmd{ return s_name; } - @Override @SuppressWarnings("unchecked") - public DiskOfferingResponse getResponse() { - DiskOfferingVO offering = (DiskOfferingVO) getResponseObject(); - DiskOfferingResponse response = ApiResponseHelper.createDiskOfferingResponse(offering); - response.setResponseName(getName()); - return response; - } - @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ DiskOffering result = _configService.updateDiskOffering(this); - return result; + DiskOfferingResponse response = ApiResponseHelper.createDiskOfferingResponse((DiskOfferingVO)result); + response.setResponseName(getName()); + this.setResponseObject(response); } } diff --git a/server/src/com/cloud/api/commands/UpdateDomainCmd.java b/server/src/com/cloud/api/commands/UpdateDomainCmd.java index 53939b975c9..7fa59ef2d56 100644 --- a/server/src/com/cloud/api/commands/UpdateDomainCmd.java +++ b/server/src/com/cloud/api/commands/UpdateDomainCmd.java @@ -32,9 +32,8 @@ import com.cloud.exception.InsufficientAddressCapacityException; import com.cloud.exception.InsufficientCapacityException; import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.PermissionDeniedException; -import com.cloud.server.ManagementServer; -@Implementation(method="updateDomain", manager=ManagementServer.class, description="Updates a domain with a new name") +@Implementation(description="Updates a domain with a new name") public class UpdateDomainCmd extends BaseCmd { public static final Logger s_logger = Logger.getLogger(UpdateDomainCmd.class.getName()); private static final String s_name = "updatedomainresponse"; @@ -70,21 +69,15 @@ public class UpdateDomainCmd extends BaseCmd { return s_name; } - @Override @SuppressWarnings("unchecked") - public DomainResponse getResponse() { - DomainVO domain = (DomainVO)getResponseObject(); + @Override + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + DomainVO domain = _mgr.updateDomain(this); if (domain != null) { DomainResponse response = ApiResponseHelper.createDomainResponse(domain); response.setResponseName(getName()); - return response; + this.setResponseObject(response); } else { throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to update domain"); } - } - - @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ - DomainVO domain = _mgr.updateDomain(this); - return domain; } } diff --git a/server/src/com/cloud/api/commands/UpdateHostCmd.java b/server/src/com/cloud/api/commands/UpdateHostCmd.java index 4db10e082a8..5d0f076b7f3 100644 --- a/server/src/com/cloud/api/commands/UpdateHostCmd.java +++ b/server/src/com/cloud/api/commands/UpdateHostCmd.java @@ -20,7 +20,6 @@ package com.cloud.api.commands; import org.apache.log4j.Logger; -import com.cloud.agent.AgentManager; import com.cloud.api.ApiConstants; import com.cloud.api.ApiResponseHelper; import com.cloud.api.BaseCmd; @@ -35,7 +34,7 @@ import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.PermissionDeniedException; import com.cloud.host.HostVO; -@Implementation(method="updateHost", manager=AgentManager.class, description="Updates a host.") +@Implementation(description="Updates a host.") public class UpdateHostCmd extends BaseCmd { public static final Logger s_logger = Logger.getLogger(UpdateHostCmd.class.getName()); private static final String s_name = "updatehostresponse"; @@ -75,21 +74,15 @@ public class UpdateHostCmd extends BaseCmd { return "updatehost"; } - @Override @SuppressWarnings("unchecked") - public HostResponse getResponse() { - HostVO host = (HostVO)getResponseObject(); - if (host != null) { - HostResponse hostResponse = ApiResponseHelper.createHostResponse(host); + @Override + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + HostVO result = _agentMgr.updateHost(this); + if (result != null) { + HostResponse hostResponse = ApiResponseHelper.createHostResponse(result); hostResponse.setResponseName(getName()); - return hostResponse; + this.setResponseObject(hostResponse); } else { throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to update host"); } } - - @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ - HostVO result = _agentMgr.updateHost(this); - return result; - } } diff --git a/server/src/com/cloud/api/commands/UpdateIPForwardingRuleCmd.java b/server/src/com/cloud/api/commands/UpdateIPForwardingRuleCmd.java index 86818c9a91c..352666d9fed 100644 --- a/server/src/com/cloud/api/commands/UpdateIPForwardingRuleCmd.java +++ b/server/src/com/cloud/api/commands/UpdateIPForwardingRuleCmd.java @@ -18,10 +18,9 @@ import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.PermissionDeniedException; import com.cloud.network.FirewallRuleVO; import com.cloud.network.IPAddressVO; -import com.cloud.server.ManagementServer; import com.cloud.user.Account; -@Implementation(method="updatePortForwardingRule", manager=ManagementServer.class, description="Updates a port forwarding rule. Only the private port and the virtual machine can be updated.") +@Implementation(description="Updates a port forwarding rule. Only the private port and the virtual machine can be updated.") public class UpdateIPForwardingRuleCmd extends BaseAsyncCmd { public static final Logger s_logger = Logger.getLogger(UpdateIPForwardingRuleCmd.class.getName()); private static final String s_name = "updateportforwardingruleresponse"; @@ -106,17 +105,11 @@ public class UpdateIPForwardingRuleCmd extends BaseAsyncCmd { return "updating port forwarding rule"; } - @Override @SuppressWarnings("unchecked") - public FirewallRuleResponse getResponse() { - FirewallRuleVO fwRule = (FirewallRuleVO)getResponseObject(); - FirewallRuleResponse response = ApiResponseHelper.createFirewallRuleResponse(fwRule); - response.setResponseName(getName()); - return response; - } - @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ FirewallRuleVO result = _mgr.updatePortForwardingRule(this); - return result; + FirewallRuleResponse response = ApiResponseHelper.createFirewallRuleResponse(result); + response.setResponseName(getName()); + this.setResponseObject(response); } } diff --git a/server/src/com/cloud/api/commands/UpdateIsoCmd.java b/server/src/com/cloud/api/commands/UpdateIsoCmd.java index 523f435e9b5..a9a758509fb 100755 --- a/server/src/com/cloud/api/commands/UpdateIsoCmd.java +++ b/server/src/com/cloud/api/commands/UpdateIsoCmd.java @@ -29,10 +29,9 @@ import com.cloud.exception.InsufficientCapacityException; import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.PermissionDeniedException; import com.cloud.exception.ResourceUnavailableException; -import com.cloud.server.ManagementServer; import com.cloud.storage.VMTemplateVO; -@Implementation(method="updateTemplate", manager=ManagementServer.class, description="Updates an ISO file.") +@Implementation(description="Updates an ISO file.") public class UpdateIsoCmd extends UpdateTemplateOrIsoCmd { public static final Logger s_logger = Logger.getLogger(UpdateIsoCmd.class.getName()); private static final String s_name = "updateisoresponse"; @@ -58,31 +57,24 @@ public class UpdateIsoCmd extends UpdateTemplateOrIsoCmd { return s_name; } - @SuppressWarnings("unchecked") - public TemplateResponse getResponse() { + @Override + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException, ResourceUnavailableException{ + VMTemplateVO result = _mgr.updateTemplate(this); TemplateResponse response = new TemplateResponse(); - VMTemplateVO responseObject = (VMTemplateVO)getResponseObject(); - if (responseObject != null) { - response.setId(responseObject.getId()); - response.setName(responseObject.getName()); - response.setDisplayText(responseObject.getDisplayText()); - response.setPublic(responseObject.isPublicTemplate()); - response.setCreated(responseObject.getCreated()); - response.setFormat(responseObject.getFormat()); - response.setOsTypeId(responseObject.getGuestOSId()); - response.setBootable(responseObject.isBootable()); + if (result != null) { + response.setId(result.getId()); + response.setName(result.getName()); + response.setDisplayText(result.getDisplayText()); + response.setPublic(result.isPublicTemplate()); + response.setCreated(result.getCreated()); + response.setFormat(result.getFormat()); + response.setOsTypeId(result.getGuestOSId()); + response.setBootable(result.isBootable()); response.setObjectName("iso"); + response.setResponseName(getName()); + this.setResponseObject(response); } else { throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to update iso"); } - - response.setResponseName(getName()); - return response; - } - - @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException, ResourceUnavailableException{ - VMTemplateVO result = _mgr.updateTemplate(this); - return result; } } diff --git a/server/src/com/cloud/api/commands/UpdateIsoPermissionsCmd.java b/server/src/com/cloud/api/commands/UpdateIsoPermissionsCmd.java index df993caa2ee..378297e046c 100644 --- a/server/src/com/cloud/api/commands/UpdateIsoPermissionsCmd.java +++ b/server/src/com/cloud/api/commands/UpdateIsoPermissionsCmd.java @@ -2,17 +2,18 @@ package com.cloud.api.commands; import org.apache.log4j.Logger; +import com.cloud.api.BaseCmd; import com.cloud.api.Implementation; import com.cloud.api.ServerApiException; +import com.cloud.api.response.SuccessResponse; import com.cloud.exception.ConcurrentOperationException; import com.cloud.exception.InsufficientAddressCapacityException; import com.cloud.exception.InsufficientCapacityException; import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.PermissionDeniedException; import com.cloud.exception.ResourceUnavailableException; -import com.cloud.server.ManagementServer; -@Implementation(method="updateTemplatePermissions", manager=ManagementServer.class) +@Implementation(description="Updates iso permissions") public class UpdateIsoPermissionsCmd extends UpdateTemplateOrIsoPermissionsCmd { protected String getResponseName() { return "updateisopermissionsresponse"; @@ -23,8 +24,13 @@ public class UpdateIsoPermissionsCmd extends UpdateTemplateOrIsoPermissionsCmd { } @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException, ResourceUnavailableException{ + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException, ResourceUnavailableException{ boolean result = _mgr.updateTemplatePermissions(this); - return result; + if (result) { + SuccessResponse response = new SuccessResponse(getName()); + this.setResponseObject(response); + } else { + throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to update iso permissinos"); + } } } diff --git a/server/src/com/cloud/api/commands/UpdateLoadBalancerRuleCmd.java b/server/src/com/cloud/api/commands/UpdateLoadBalancerRuleCmd.java index 0a918447b58..8936f18d508 100644 --- a/server/src/com/cloud/api/commands/UpdateLoadBalancerRuleCmd.java +++ b/server/src/com/cloud/api/commands/UpdateLoadBalancerRuleCmd.java @@ -34,10 +34,9 @@ import com.cloud.exception.InsufficientCapacityException; import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.PermissionDeniedException; import com.cloud.network.LoadBalancerVO; -import com.cloud.network.NetworkManager; import com.cloud.user.Account; -@Implementation(method="updateLoadBalancerRule", manager=NetworkManager.class) +@Implementation(description="Updates load balancer") public class UpdateLoadBalancerRuleCmd extends BaseAsyncCmd { public static final Logger s_logger = Logger.getLogger(UpdateLoadBalancerRuleCmd.class.getName()); private static final String s_name = "updateloadbalancerruleresponse"; @@ -112,18 +111,12 @@ public class UpdateLoadBalancerRuleCmd extends BaseAsyncCmd { public String getEventDescription() { return "updating load balancer rule"; } - - @Override @SuppressWarnings("unchecked") - public LoadBalancerResponse getResponse() { - LoadBalancerVO loadBalancer = (LoadBalancerVO)getResponseObject(); - LoadBalancerResponse response = ApiResponseHelper.createLoadBalancerResponse(loadBalancer); - response.setResponseName(getName()); - return response; - } @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ LoadBalancerVO result = _networkMgr.updateLoadBalancerRule(this); - return result; + LoadBalancerResponse response = ApiResponseHelper.createLoadBalancerResponse(result); + response.setResponseName(getName()); + this.setResponseObject(response); } } diff --git a/server/src/com/cloud/api/commands/UpdatePodCmd.java b/server/src/com/cloud/api/commands/UpdatePodCmd.java index 457a893d29b..316d3a692de 100644 --- a/server/src/com/cloud/api/commands/UpdatePodCmd.java +++ b/server/src/com/cloud/api/commands/UpdatePodCmd.java @@ -27,7 +27,6 @@ import com.cloud.api.Implementation; import com.cloud.api.Parameter; import com.cloud.api.ServerApiException; import com.cloud.api.response.PodResponse; -import com.cloud.configuration.ConfigurationManager; import com.cloud.dc.HostPodVO; import com.cloud.dc.Pod; import com.cloud.exception.ConcurrentOperationException; @@ -36,7 +35,7 @@ import com.cloud.exception.InsufficientCapacityException; import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.PermissionDeniedException; -@Implementation(method="editPod", manager=ConfigurationManager.class, description="Updates a Pod.") +@Implementation(description="Updates a Pod.") public class UpdatePodCmd extends BaseCmd { public static final Logger s_logger = Logger.getLogger(UpdatePodCmd.class.getName()); @@ -99,18 +98,12 @@ public class UpdatePodCmd extends BaseCmd { public String getName() { return s_name; } - - @Override @SuppressWarnings("unchecked") - public PodResponse getResponse() { - HostPodVO pod = (HostPodVO)getResponseObject(); - PodResponse response = ApiResponseHelper.createPodResponse(pod); - response.setResponseName(getName()); - return response; - } @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ Pod result = _configService.editPod(this); - return result; + PodResponse response = ApiResponseHelper.createPodResponse((HostPodVO)result); + response.setResponseName(getName()); + this.setResponseObject(response); } } diff --git a/server/src/com/cloud/api/commands/UpdateResourceLimitCmd.java b/server/src/com/cloud/api/commands/UpdateResourceLimitCmd.java index 0a5cf4dafea..6c234670360 100644 --- a/server/src/com/cloud/api/commands/UpdateResourceLimitCmd.java +++ b/server/src/com/cloud/api/commands/UpdateResourceLimitCmd.java @@ -28,15 +28,13 @@ import com.cloud.api.Parameter; import com.cloud.api.ServerApiException; import com.cloud.api.response.ResourceLimitResponse; import com.cloud.configuration.ResourceLimit; -import com.cloud.configuration.ResourceLimitVO; import com.cloud.exception.ConcurrentOperationException; import com.cloud.exception.InsufficientAddressCapacityException; import com.cloud.exception.InsufficientCapacityException; import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.PermissionDeniedException; -import com.cloud.user.AccountManager; -@Implementation(method="updateResourceLimit", manager=AccountManager.class, description="Updates resource limits for an account or domain.") +@Implementation(description="Updates resource limits for an account or domain.") public class UpdateResourceLimitCmd extends BaseCmd { public static final Logger s_logger = Logger.getLogger(UpdateResourceLimitCmd.class.getName()); @@ -92,17 +90,11 @@ public class UpdateResourceLimitCmd extends BaseCmd { return s_name; } - @Override @SuppressWarnings("unchecked") - public ResourceLimitResponse getResponse() { - ResourceLimitVO limit = (ResourceLimitVO) getResponseObject(); - ResourceLimitResponse response = ApiResponseHelper.createResourceLimitResponse(limit); - response.setResponseName(getName()); - return response; - } - @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ ResourceLimit result = _accountService.updateResourceLimit(this); - return result; + ResourceLimitResponse response = ApiResponseHelper.createResourceLimitResponse(result); + response.setResponseName(getName()); + this.setResponseObject(response); } } diff --git a/server/src/com/cloud/api/commands/UpdateServiceOfferingCmd.java b/server/src/com/cloud/api/commands/UpdateServiceOfferingCmd.java index b4be9bcfeea..1418c29371f 100644 --- a/server/src/com/cloud/api/commands/UpdateServiceOfferingCmd.java +++ b/server/src/com/cloud/api/commands/UpdateServiceOfferingCmd.java @@ -26,7 +26,6 @@ import com.cloud.api.Implementation; import com.cloud.api.Parameter; import com.cloud.api.ServerApiException; import com.cloud.api.response.ServiceOfferingResponse; -import com.cloud.configuration.ConfigurationManager; import com.cloud.exception.ConcurrentOperationException; import com.cloud.exception.InsufficientAddressCapacityException; import com.cloud.exception.InsufficientCapacityException; @@ -35,7 +34,7 @@ import com.cloud.exception.PermissionDeniedException; import com.cloud.offering.ServiceOffering; import com.cloud.service.ServiceOfferingVO; -@Implementation(method="updateServiceOffering", manager=ConfigurationManager.class, description="Updates a service offering.") +@Implementation(description="Updates a service offering.") public class UpdateServiceOfferingCmd extends BaseCmd { public static final Logger s_logger = Logger.getLogger(UpdateServiceOfferingCmd.class.getName()); private static final String s_name = "updateserviceofferingresponse"; @@ -99,17 +98,11 @@ public class UpdateServiceOfferingCmd extends BaseCmd { return s_name; } - @Override @SuppressWarnings("unchecked") - public ServiceOfferingResponse getResponse() { - ServiceOfferingVO offering = (ServiceOfferingVO) getResponseObject(); - ServiceOfferingResponse response = ApiResponseHelper.createServiceOfferingResponse(offering); - response.setResponseName(getName()); - return response; - } - @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ ServiceOffering result = _configService.updateServiceOffering(this); - return result; + ServiceOfferingResponse response = ApiResponseHelper.createServiceOfferingResponse((ServiceOfferingVO)result); + response.setResponseName(getName()); + this.setResponseObject(response); } } diff --git a/server/src/com/cloud/api/commands/UpdateStoragePoolCmd.java b/server/src/com/cloud/api/commands/UpdateStoragePoolCmd.java index edc904692d7..b121d38cab8 100644 --- a/server/src/com/cloud/api/commands/UpdateStoragePoolCmd.java +++ b/server/src/com/cloud/api/commands/UpdateStoragePoolCmd.java @@ -32,10 +32,9 @@ import com.cloud.exception.InsufficientAddressCapacityException; import com.cloud.exception.InsufficientCapacityException; import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.PermissionDeniedException; -import com.cloud.storage.StorageManager; import com.cloud.storage.StoragePoolVO; -@Implementation(method="updateStoragePool", manager=StorageManager.class, description="Updates a storage pool.") +@Implementation(description="Updates a storage pool.") public class UpdateStoragePoolCmd extends BaseCmd { public static final Logger s_logger = Logger.getLogger(UpdateStoragePoolCmd.class.getName()); @@ -71,18 +70,12 @@ public class UpdateStoragePoolCmd extends BaseCmd { public String getName() { return s_name; } - - @Override @SuppressWarnings("unchecked") - public StoragePoolResponse getResponse() { - StoragePoolVO pool = (StoragePoolVO) getResponseObject(); - StoragePoolResponse response = ApiResponseHelper.createStoragePoolResponse(pool); - response.setResponseName(getName()); - return response; - } @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ StoragePoolVO result = _storageMgr.updateStoragePool(this); - return result; + StoragePoolResponse response = ApiResponseHelper.createStoragePoolResponse(result); + response.setResponseName(getName()); + this.setResponseObject(response); } } diff --git a/server/src/com/cloud/api/commands/UpdateTemplateCmd.java b/server/src/com/cloud/api/commands/UpdateTemplateCmd.java index 881448eed8c..c0c40fb02fd 100644 --- a/server/src/com/cloud/api/commands/UpdateTemplateCmd.java +++ b/server/src/com/cloud/api/commands/UpdateTemplateCmd.java @@ -29,10 +29,9 @@ import com.cloud.exception.InsufficientCapacityException; import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.PermissionDeniedException; import com.cloud.exception.ResourceUnavailableException; -import com.cloud.server.ManagementServer; import com.cloud.storage.VMTemplateVO; -@Implementation(method="updateTemplate", manager=ManagementServer.class, description="Updates attributes of a template.") +@Implementation(description="Updates attributes of a template.") public class UpdateTemplateCmd extends UpdateTemplateOrIsoCmd { public static final Logger s_logger = Logger.getLogger(UpdateTemplateCmd.class.getName()); private static final String s_name = "updatetemplateresponse"; @@ -56,30 +55,29 @@ public class UpdateTemplateCmd extends UpdateTemplateOrIsoCmd { @SuppressWarnings("unchecked") public TemplateResponse getResponse() { - TemplateResponse response = new TemplateResponse(); - VMTemplateVO responseObject = (VMTemplateVO)getResponseObject(); - if (responseObject != null) { - response.setId(responseObject.getId()); - response.setName(responseObject.getName()); - response.setDisplayText(responseObject.getDisplayText()); - response.setPublic(responseObject.isPublicTemplate()); - response.setCreated(responseObject.getCreated()); - response.setFormat(responseObject.getFormat()); - response.setOsTypeId(responseObject.getGuestOSId()); - response.setPasswordEnabled(responseObject.getEnablePassword()); - response.setCrossZones(responseObject.isCrossZones()); - response.setObjectName("template"); - } else { - throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to update template"); - } - - response.setResponseName(getName()); - return response; + return null; } @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException, ResourceUnavailableException{ + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException, ResourceUnavailableException{ VMTemplateVO result = _mgr.updateTemplate(this); - return result; + TemplateResponse response = new TemplateResponse(); + if (result != null) { + response.setId(result.getId()); + response.setName(result.getName()); + response.setDisplayText(result.getDisplayText()); + response.setPublic(result.isPublicTemplate()); + response.setCreated(result.getCreated()); + response.setFormat(result.getFormat()); + response.setOsTypeId(result.getGuestOSId()); + response.setPasswordEnabled(result.getEnablePassword()); + response.setCrossZones(result.isCrossZones()); + response.setObjectName("template"); + response.setResponseName(getName()); + + this.setResponseObject(response); + } else { + throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to update template"); + } } } diff --git a/server/src/com/cloud/api/commands/UpdateTemplateOrIsoCmd.java b/server/src/com/cloud/api/commands/UpdateTemplateOrIsoCmd.java index 5c5537af58c..5e8663cf645 100644 --- a/server/src/com/cloud/api/commands/UpdateTemplateOrIsoCmd.java +++ b/server/src/com/cloud/api/commands/UpdateTemplateOrIsoCmd.java @@ -24,9 +24,8 @@ import com.cloud.api.ApiConstants; import com.cloud.api.BaseCmd; import com.cloud.api.Implementation; import com.cloud.api.Parameter; -import com.cloud.server.ManagementServer; -@Implementation(method="updateTemplate", manager=ManagementServer.class) +@Implementation() public abstract class UpdateTemplateOrIsoCmd extends BaseCmd { public static final Logger s_logger = Logger.getLogger(UpdateIsoCmd.class.getName()); diff --git a/server/src/com/cloud/api/commands/UpdateTemplateOrIsoPermissionsCmd.java b/server/src/com/cloud/api/commands/UpdateTemplateOrIsoPermissionsCmd.java index 49fa6a3bddc..e1ff611f6b3 100644 --- a/server/src/com/cloud/api/commands/UpdateTemplateOrIsoPermissionsCmd.java +++ b/server/src/com/cloud/api/commands/UpdateTemplateOrIsoPermissionsCmd.java @@ -9,16 +9,14 @@ import com.cloud.api.BaseCmd; import com.cloud.api.Implementation; import com.cloud.api.Parameter; import com.cloud.api.ServerApiException; -import com.cloud.api.response.SuccessResponse; import com.cloud.exception.ConcurrentOperationException; import com.cloud.exception.InsufficientAddressCapacityException; import com.cloud.exception.InsufficientCapacityException; import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.PermissionDeniedException; import com.cloud.exception.ResourceUnavailableException; -import com.cloud.server.ManagementServer; -@Implementation(method="updateTemplatePermissions", manager=ManagementServer.class) +@Implementation() public abstract class UpdateTemplateOrIsoPermissionsCmd extends BaseCmd { public Logger s_logger = getLogger(); protected String s_name = getResponseName(); @@ -85,18 +83,8 @@ public abstract class UpdateTemplateOrIsoPermissionsCmd extends BaseCmd { return Logger.getLogger(UpdateTemplateOrIsoPermissionsCmd.class.getName()); } - @Override @SuppressWarnings("unchecked") - public SuccessResponse getResponse() { - if (getResponseObject() == null || (Boolean)getResponseObject()) { - return new SuccessResponse(getName()); - } else { - throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to update template permissions"); - } - } - @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException, ResourceUnavailableException{ + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException, ResourceUnavailableException{ //method is implemented in updateTemplate/updateIsoPermissions - return null; } } diff --git a/server/src/com/cloud/api/commands/UpdateTemplatePermissionsCmd.java b/server/src/com/cloud/api/commands/UpdateTemplatePermissionsCmd.java index f22d14bc2ce..41f25c5012a 100644 --- a/server/src/com/cloud/api/commands/UpdateTemplatePermissionsCmd.java +++ b/server/src/com/cloud/api/commands/UpdateTemplatePermissionsCmd.java @@ -20,18 +20,18 @@ package com.cloud.api.commands; import org.apache.log4j.Logger; +import com.cloud.api.BaseCmd; import com.cloud.api.Implementation; import com.cloud.api.ServerApiException; +import com.cloud.api.response.SuccessResponse; import com.cloud.exception.ConcurrentOperationException; import com.cloud.exception.InsufficientAddressCapacityException; import com.cloud.exception.InsufficientCapacityException; import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.PermissionDeniedException; import com.cloud.exception.ResourceUnavailableException; -import com.cloud.server.ManagementServer; -import com.cloud.storage.VMTemplateVO; -@Implementation(method="updateTemplatePermissions", manager=ManagementServer.class, description="Updates a template visibility permissions. " + +@Implementation(description="Updates a template visibility permissions. " + "A public template is visible to all accounts within the same domain. " + "A private template is visible only to the owner of the template. " + "A priviledged template is a private template with account permissions added. " + @@ -46,9 +46,14 @@ public class UpdateTemplatePermissionsCmd extends UpdateTemplateOrIsoPermissions } @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException, ResourceUnavailableException{ + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException, ResourceUnavailableException{ boolean result = _mgr.updateTemplatePermissions(this); - return result; + if (result) { + SuccessResponse response = new SuccessResponse(getName()); + this.setResponseObject(response); + } else { + throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to delete template permissions"); + } } } diff --git a/server/src/com/cloud/api/commands/UpdateUserCmd.java b/server/src/com/cloud/api/commands/UpdateUserCmd.java index b4b21e30163..118de43e6ef 100644 --- a/server/src/com/cloud/api/commands/UpdateUserCmd.java +++ b/server/src/com/cloud/api/commands/UpdateUserCmd.java @@ -32,10 +32,9 @@ import com.cloud.exception.InsufficientAddressCapacityException; import com.cloud.exception.InsufficientCapacityException; import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.PermissionDeniedException; -import com.cloud.server.ManagementServer; import com.cloud.user.UserAccount; -@Implementation(method="updateUser", manager=ManagementServer.class, description="Updates a user account") +@Implementation(description="Updates a user account") public class UpdateUserCmd extends BaseCmd { public static final Logger s_logger = Logger.getLogger(UpdateUserCmd.class.getName()); @@ -120,17 +119,11 @@ public class UpdateUserCmd extends BaseCmd { return s_name; } - @Override @SuppressWarnings("unchecked") - public UserResponse getResponse() { - UserAccount user = (UserAccount)getResponseObject(); + @Override + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + UserAccount user = _accountService.updateUser(this); UserResponse response = ApiResponseHelper.createUserResponse(user); response.setResponseName(getName()); - return response; - } - - @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ - UserAccount result = _accountService.updateUser(this); - return result; + this.setResponseObject(response); } } \ No newline at end of file diff --git a/server/src/com/cloud/api/commands/UpdateVMCmd.java b/server/src/com/cloud/api/commands/UpdateVMCmd.java index c83a82e3591..4f787665b6d 100644 --- a/server/src/com/cloud/api/commands/UpdateVMCmd.java +++ b/server/src/com/cloud/api/commands/UpdateVMCmd.java @@ -33,9 +33,8 @@ import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.PermissionDeniedException; import com.cloud.exception.StorageUnavailableException; import com.cloud.uservm.UserVm; -import com.cloud.vm.UserVmManager; -@Implementation(method="updateVirtualMachine", manager=UserVmManager.class, description="Updates parameters of a virtual machine.") +@Implementation(description="Updates parameters of a virtual machine.") public class UpdateVMCmd extends BaseCmd{ public static final Logger s_logger = Logger.getLogger(UpdateVMCmd.class.getName()); private static final String s_name = "updatevirtualmachineresponse"; @@ -89,17 +88,11 @@ public class UpdateVMCmd extends BaseCmd{ return "virtualmachine"; } - @Override @SuppressWarnings("unchecked") - public UserVmResponse getResponse() { - UserVm userVm = (UserVm)getResponseObject(); - UserVmResponse recoverVmResponse = ApiResponseHelper.createUserVmResponse(userVm); - recoverVmResponse.setResponseName(getName()); - return recoverVmResponse; - } - @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException, StorageUnavailableException{ + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException, StorageUnavailableException{ UserVm result = _userVmService.updateVirtualMachine(this); - return result; + UserVmResponse response = ApiResponseHelper.createUserVmResponse(result); + response.setResponseName(getName()); + this.setResponseObject(response); } } diff --git a/server/src/com/cloud/api/commands/UpdateVMGroupCmd.java b/server/src/com/cloud/api/commands/UpdateVMGroupCmd.java index 765194869f7..aef1d6929c2 100644 --- a/server/src/com/cloud/api/commands/UpdateVMGroupCmd.java +++ b/server/src/com/cloud/api/commands/UpdateVMGroupCmd.java @@ -33,7 +33,7 @@ import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.PermissionDeniedException; import com.cloud.vm.InstanceGroupVO; -@Implementation(method="updateVmGroup") +@Implementation(description="Updates a vm group") public class UpdateVMGroupCmd extends BaseCmd{ private static final String s_name = "updateinstancegroupresponse"; @@ -70,17 +70,11 @@ public class UpdateVMGroupCmd extends BaseCmd{ return s_name; } - @Override @SuppressWarnings("unchecked") - public InstanceGroupResponse getResponse() { - InstanceGroupVO group = (InstanceGroupVO)getResponseObject(); - InstanceGroupResponse response = ApiResponseHelper.createInstanceGroupResponse(group); - response.setResponseName(getName()); - return response; - } - @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ InstanceGroupVO result = _mgr.updateVmGroup(this); - return result; + InstanceGroupResponse response = ApiResponseHelper.createInstanceGroupResponse(result); + response.setResponseName(getName()); + this.setResponseObject(response); } } diff --git a/server/src/com/cloud/api/commands/UpdateZoneCmd.java b/server/src/com/cloud/api/commands/UpdateZoneCmd.java index 8fbb31e7d21..86ae06987c0 100644 --- a/server/src/com/cloud/api/commands/UpdateZoneCmd.java +++ b/server/src/com/cloud/api/commands/UpdateZoneCmd.java @@ -27,7 +27,6 @@ import com.cloud.api.Implementation; import com.cloud.api.Parameter; import com.cloud.api.ServerApiException; import com.cloud.api.response.ZoneResponse; -import com.cloud.configuration.ConfigurationManager; import com.cloud.dc.DataCenter; import com.cloud.dc.DataCenterVO; import com.cloud.exception.ConcurrentOperationException; @@ -36,7 +35,7 @@ import com.cloud.exception.InsufficientCapacityException; import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.PermissionDeniedException; -@Implementation(method="editZone", manager=ConfigurationManager.class, description="Updates a Zone.") +@Implementation(description="Updates a Zone.") public class UpdateZoneCmd extends BaseCmd { public static final Logger s_logger = Logger.getLogger(UpdateZoneCmd.class.getName()); @@ -132,23 +131,16 @@ public class UpdateZoneCmd extends BaseCmd { public String getName() { return s_name; } - - @Override @SuppressWarnings("unchecked") - public ZoneResponse getResponse() { - - DataCenterVO responseObject = (DataCenterVO)getResponseObject(); - if (responseObject != null) { - ZoneResponse response = ApiResponseHelper.createZoneResponse(responseObject); - response.setResponseName(getName()); - return response; - } else { - throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to update zone; internal error."); - } - } @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ DataCenter result = _configService.editZone(this); - return result; + if (result != null) { + ZoneResponse response = ApiResponseHelper.createZoneResponse((DataCenterVO)result); + response.setResponseName(getName()); + this.setResponseObject(response); + } else { + throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to update zone; internal error."); + } } } diff --git a/server/src/com/cloud/api/commands/UpgradeRouterCmd.java b/server/src/com/cloud/api/commands/UpgradeRouterCmd.java index 1cdc8fd0dc4..b7ab7234841 100644 --- a/server/src/com/cloud/api/commands/UpgradeRouterCmd.java +++ b/server/src/com/cloud/api/commands/UpgradeRouterCmd.java @@ -31,10 +31,9 @@ import com.cloud.exception.InsufficientAddressCapacityException; import com.cloud.exception.InsufficientCapacityException; import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.PermissionDeniedException; -import com.cloud.network.NetworkManager; import com.cloud.vm.DomainRouter; -@Implementation(method="upgradeRouter", manager=NetworkManager.class) +@Implementation(description="Upgrades domain router to a new service offering") public class UpgradeRouterCmd extends BaseCmd { public static final Logger s_logger = Logger.getLogger(UpgradeRouterCmd.class.getName()); private static final String s_name = "changeserviceforrouterresponse"; @@ -69,18 +68,12 @@ public class UpgradeRouterCmd extends BaseCmd { public String getName() { return s_name; } - - @Override @SuppressWarnings("unchecked") - public DomainRouterResponse getResponse() { - DomainRouter router = (DomainRouter)getResponseObject(); - DomainRouterResponse routerResponse = ApiResponseHelper.createDomainRouterResponse(router); - routerResponse.setResponseName(getName()); - return routerResponse; - } @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ - DomainRouter result = _networkMgr.upgradeRouter(this); - return result; + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + DomainRouter router = _networkMgr.upgradeRouter(this); + DomainRouterResponse routerResponse = ApiResponseHelper.createDomainRouterResponse(router); + routerResponse.setResponseName(getName()); + this.setResponseObject(routerResponse); } } diff --git a/server/src/com/cloud/api/commands/UpgradeVMCmd.java b/server/src/com/cloud/api/commands/UpgradeVMCmd.java index b1152794a44..d1f20f8d116 100644 --- a/server/src/com/cloud/api/commands/UpgradeVMCmd.java +++ b/server/src/com/cloud/api/commands/UpgradeVMCmd.java @@ -33,9 +33,8 @@ import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.PermissionDeniedException; import com.cloud.exception.StorageUnavailableException; import com.cloud.uservm.UserVm; -import com.cloud.vm.UserVmManager; -@Implementation(method="upgradeVirtualMachine", manager=UserVmManager.class, description="Changes the service offering for a virtual machine. " + +@Implementation(description="Changes the service offering for a virtual machine. " + "The virtual machine must be in a \"Stopped\" state for " + "this command to take effect.") public class UpgradeVMCmd extends BaseCmd { @@ -77,17 +76,11 @@ public class UpgradeVMCmd extends BaseCmd { return "virtualmachine"; } - @Override @SuppressWarnings("unchecked") - public UserVmResponse getResponse() { - UserVm userVm = (UserVm)getResponseObject(); - UserVmResponse recoverVmResponse = ApiResponseHelper.createUserVmResponse(userVm); - recoverVmResponse.setResponseName(getName()); - return recoverVmResponse; - } - @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException, StorageUnavailableException{ + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException, StorageUnavailableException{ UserVm result = _userVmService.upgradeVirtualMachine(this); - return result; + UserVmResponse response = ApiResponseHelper.createUserVmResponse(result); + response.setResponseName(getName()); + this.setResponseObject(response); } } diff --git a/server/src/com/cloud/api/commands/UploadCustomCertificateCmd.java b/server/src/com/cloud/api/commands/UploadCustomCertificateCmd.java index 155046a2b72..851af6872ba 100644 --- a/server/src/com/cloud/api/commands/UploadCustomCertificateCmd.java +++ b/server/src/com/cloud/api/commands/UploadCustomCertificateCmd.java @@ -33,7 +33,7 @@ import com.cloud.exception.InvalidParameterValueException; import com.cloud.exception.PermissionDeniedException; import com.cloud.user.Account; -@Implementation(method="uploadCertificate") +@Implementation(description="Uploads custom certificate") public class UploadCustomCertificateCmd extends BaseAsyncCmd { public static final Logger s_logger = Logger.getLogger(UploadCustomCertificateCmd.class.getName()); @@ -46,16 +46,6 @@ public class UploadCustomCertificateCmd extends BaseAsyncCmd { return certificate; } - @Override @SuppressWarnings("unchecked") - public CustomCertificateResponse getResponse() { - String updatedCpIdList = (String)getResponseObject(); - CustomCertificateResponse response = new CustomCertificateResponse(); - response.setResponseName(getName()); - response.setUpdatedConsoleProxyIdList(updatedCpIdList); - response.setObjectName("customcertificate"); - return response; - } - @Override public String getEventType() { return EventTypes.EVENT_VOLUME_CREATE; @@ -81,9 +71,13 @@ public class UploadCustomCertificateCmd extends BaseAsyncCmd { } @Override - public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ + public void execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{ String result = _mgr.uploadCertificate(this); - return result; + CustomCertificateResponse response = new CustomCertificateResponse(); + response.setResponseName(getName()); + response.setUpdatedConsoleProxyIdList(result); + response.setObjectName("customcertificate"); + this.setResponseObject(response); } } diff --git a/server/src/com/cloud/async/AsyncJobManagerImpl.java b/server/src/com/cloud/async/AsyncJobManagerImpl.java index 7a65ce88f07..00459f2662a 100644 --- a/server/src/com/cloud/async/AsyncJobManagerImpl.java +++ b/server/src/com/cloud/async/AsyncJobManagerImpl.java @@ -39,6 +39,7 @@ import com.cloud.api.ApiGsonHelper; import com.cloud.api.ApiSerializerHelper; import com.cloud.api.BaseAsyncCmd; import com.cloud.api.BaseCmd; +import com.cloud.api.ResponseObject; import com.cloud.api.ServerApiException; import com.cloud.api.commands.QueryAsyncJobResultCmd; import com.cloud.api.response.ExceptionResponse; @@ -370,7 +371,7 @@ public class AsyncJobManagerImpl implements AsyncJobManager { _dispatcher.dispatch(cmdObj, params); // serialize this to the async job table - completeAsyncJob(jobId, AsyncJobResult.STATUS_SUCCEEDED, 0, cmdObj.getResponse()); + completeAsyncJob(jobId, AsyncJobResult.STATUS_SUCCEEDED, 0, cmdObj.getResponseObject()); // commands might need to be queued as part of synchronization here, so they just have to be re-dispatched from the queue mechanism... if (job.getSyncSource() != null) {