1) Refactored current Apis not to use reflection for method invocation. In new version following has to be done:

* Implement callCreate() and execute() methods in apis extending BaseAsyncCreateCmd (example - CreateVolumeCmd)
* Implement execute() method in apis extending BaseCmd and BaseAsyncCmd (example - deleteVolumeCmd and deleteUserCmd)

We no longer need createMethod(), method(), manager() fields in @Implementation annotation, cleanup has to be done.

2) Moved Account/User related methods to AccountManagerImpl. Methods are exposed via AccountService interface.
3) Enhanced exception handing for Api calls.
4) Created ConfigurationService interface, all Api config methods are exposed via it.
This commit is contained in:
alena 2010-11-06 22:45:41 -07:00
parent 3c053ca610
commit 1c24deda34
183 changed files with 3470 additions and 1279 deletions

View File

@ -0,0 +1,37 @@
/**
* Copyright (C) 2010 Cloud.com, Inc. All rights reserved.
*
* This software is licensed under the GNU General Public License v3 or later.
*
* It is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or any later version.
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>.
*
*/
package com.cloud.configuration;
public interface Configuration{
public String getCategory();
public String getInstance();
public String getComponent();
public String getName();
public String getValue();
public String getDescription();
}

View File

@ -18,14 +18,14 @@
package com.cloud.configuration;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
@Entity
@Table(name="configuration")
public class ConfigurationVO {
public class ConfigurationVO implements Configuration{
@Column(name="instance")
private String instance;

View File

@ -18,8 +18,6 @@
package com.cloud.api;
import java.lang.reflect.Field;
import java.lang.reflect.InvocationTargetException;
import java.lang.reflect.Method;
import java.text.DateFormat;
import java.text.ParseException;
import java.util.ArrayList;
@ -30,11 +28,16 @@ import java.util.StringTokenizer;
import org.apache.log4j.Logger;
import com.cloud.api.BaseCmd.CommandType;
import com.cloud.async.AsyncCommandQueued;
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.ResourceAllocationException;
import com.cloud.exception.ResourceUnavailableException;
import com.cloud.server.ManagementServer;
import com.cloud.user.Account;
import com.cloud.user.UserContext;
import com.cloud.utils.DateUtil;
import com.cloud.utils.component.ComponentLocator;
import com.cloud.utils.exception.CloudRuntimeException;
@ -58,116 +61,85 @@ public class ApiDispatcher {
_locator = ComponentLocator.getLocator(ManagementServer.Name);
}
public Long dispatchCreateCmd(BaseAsyncCreateCmd cmd, Map<String, String> params) {
public void dispatchCreateCmd(BaseAsyncCreateCmd cmd, Map<String, String> params) {
setupParameters(cmd, params);
Implementation impl = cmd.getClass().getAnnotation(Implementation.class);
if (impl == null) {
throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Unable to execute create command " + cmd.getClass().getName() + ", no implementation specified.");
}
String methodName = impl.createMethod();
Class<?> mgrClass = impl.manager();
Object mgr = null;
if (mgrClass.equals(ManagementServer.class)) {
mgr = ComponentLocator.getComponent(ManagementServer.Name);
} else {
mgr = _locator.getManager(impl.manager());
}
if (mgr == null) {
throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Unable to execute method " + methodName + " for command " + cmd.getClass().getSimpleName() + ", unable to find manager " + impl.manager() + " to execute method " + methodName);
}
try {
Method method = mgr.getClass().getMethod(methodName, cmd.getClass());
Object dbObject = method.invoke(mgr, cmd);
if (dbObject == null) {
throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Create method " + methodName + " in class " + cmd.getClass().getSimpleName() + " failed to create an object.");
}
Method getIdMethod = dbObject.getClass().getMethod("getId");
Object id = getIdMethod.invoke(dbObject);
return (Long)id;
} catch (NoSuchMethodException nsme) {
s_logger.warn("Exception executing method " + methodName + " for command " + cmd.getClass().getSimpleName(), nsme);
throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Unable to execute method " + methodName + " for command " + cmd.getClass().getSimpleName() + ", unable to find implementation.");
} catch (InvocationTargetException ite) {
Throwable cause = ite.getCause();
if (cause instanceof InvalidParameterValueException) {
throw new ServerApiException(BaseCmd.PARAM_ERROR, cause.getMessage());
} else if (cause instanceof IllegalArgumentException) {
throw new ServerApiException(BaseCmd.PARAM_ERROR, cause.getMessage());
} else if (cause instanceof PermissionDeniedException) {
throw new ServerApiException(BaseCmd.ACCOUNT_ERROR, cause.getMessage());
} else if (cause instanceof ResourceAllocationException){
throw new ServerApiException(BaseCmd.UNSUPPORTED_ACTION_ERROR, cause.getMessage());
} else if (cause instanceof ServerApiException) {
throw (ServerApiException)cause;
}
s_logger.warn("Exception executing method " + methodName + " for command " + cmd.getClass().getSimpleName(), ite);
throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Unable to execute method " + methodName + " for command " + cmd.getClass().getSimpleName() + ", internal error in the implementation.");
} catch (IllegalAccessException iae) {
s_logger.warn("Exception executing method " + methodName + " for command " + cmd.getClass().getSimpleName(), iae);
throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Unable to execute method " + methodName + " for command " + cmd.getClass().getSimpleName() + ", internal error in the implementation.");
} catch (IllegalArgumentException iArgEx) {
s_logger.warn("Exception executing method " + methodName + " for command " + cmd.getClass().getSimpleName(), iArgEx);
throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Unable to execute method " + methodName + " for command " + cmd.getClass().getSimpleName() + ", internal error in the implementation.");
cmd.callCreate();
} catch (InvalidParameterValueException e1) {
throw new ServerApiException(BaseCmd.PARAM_ERROR, e1.getMessage());
} catch (IllegalArgumentException e2) {
throw new ServerApiException(BaseCmd.PARAM_ERROR, e2.getMessage());
} catch (PermissionDeniedException e3) {
throw new ServerApiException(BaseCmd.ACCOUNT_ERROR, e3.getMessage());
} catch (InsufficientAddressCapacityException e4) {
throw new ServerApiException(BaseCmd.INTERNAL_ERROR, e4.getMessage());
} catch (InsufficientCapacityException e5) {
throw new ServerApiException(BaseCmd.INTERNAL_ERROR, e5.getMessage());
} catch (ConcurrentOperationException e6) {
s_logger.error("Exception while executing " + cmd.getName() + ":", e6);
if (UserContext.current().getAccount() == null || UserContext.current().getAccount().getType() == Account.ACCOUNT_TYPE_ADMIN)
throw new ServerApiException(BaseCmd.INTERNAL_ERROR, e6.getMessage());
else
throw new ServerApiException(BaseCmd.INTERNAL_ERROR, BaseCmd.USER_ERROR_MESSAGE);
} catch (ResourceUnavailableException e7) {
s_logger.error("Exception while executing " + cmd.getName() + ":", e7);
if (UserContext.current().getAccount() == null || UserContext.current().getAccount().getType() == Account.ACCOUNT_TYPE_ADMIN)
throw new ServerApiException(BaseCmd.INTERNAL_ERROR, e7.getMessage());
else
throw new ServerApiException(BaseCmd.INTERNAL_ERROR, BaseCmd.USER_ERROR_MESSAGE);
} catch (ResourceAllocationException e8) {
s_logger.error("Exception while executing " + cmd.getName() + ":", e8);
if (UserContext.current().getAccount() == null || UserContext.current().getAccount().getType() == Account.ACCOUNT_TYPE_ADMIN)
throw new ServerApiException(BaseCmd.INTERNAL_ERROR, e8.getMessage());
else
throw new ServerApiException(BaseCmd.INTERNAL_ERROR, BaseCmd.USER_ERROR_MESSAGE);
} catch (CloudRuntimeException e9) {
s_logger.error("Exception while executing " + cmd.getName() + ":", e9);
if (UserContext.current().getAccount() == null || UserContext.current().getAccount().getType() == Account.ACCOUNT_TYPE_ADMIN)
throw new ServerApiException(BaseCmd.INTERNAL_ERROR, e9.getMessage());
else
throw new ServerApiException(BaseCmd.INTERNAL_ERROR, BaseCmd.USER_ERROR_MESSAGE);
}
}
public void dispatch(BaseCmd cmd, Map<String, String> params) {
setupParameters(cmd, params);
Implementation impl = cmd.getClass().getAnnotation(Implementation.class);
if (impl == null) {
throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Unable to execute command " + cmd.getClass().getName() + ", no implementation specified.");
}
String methodName = impl.method();
Class<?> mgrClass = impl.manager();
Object mgr = null;
if (mgrClass.equals(ManagementServer.class)) {
mgr = ComponentLocator.getComponent(ManagementServer.Name);
} else {
mgr = _locator.getManager(impl.manager());
}
if (mgr == null) {
throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Unable to execute method " + methodName + " for command " + cmd.getClass().getSimpleName() + ", unable to find manager " + impl.manager() + " to execute method " + methodName);
}
try {
Method method = mgr.getClass().getMethod(methodName, cmd.getClass());
Object result = method.invoke(mgr, cmd);
cmd.setResponseObject(result);
} catch (NoSuchMethodException nsme) {
s_logger.warn("Exception executing method " + methodName + " for command " + cmd.getClass().getSimpleName(), nsme);
throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Unable to execute method " + methodName + " for command " + cmd.getClass().getSimpleName() + ", unable to find implementation.");
} catch (InvocationTargetException ite) {
Throwable cause = ite.getCause();
if (cause instanceof AsyncCommandQueued) {
throw (AsyncCommandQueued)cause;
}
if (cause instanceof InvalidParameterValueException) {
throw new ServerApiException(BaseCmd.PARAM_ERROR, cause.getMessage());
} else if (cause instanceof IllegalArgumentException) {
throw new ServerApiException(BaseCmd.PARAM_ERROR, cause.getMessage());
} else if (cause instanceof PermissionDeniedException) {
throw new ServerApiException(BaseCmd.ACCOUNT_ERROR, cause.getMessage());
} else if (cause instanceof ServerApiException) {
throw (ServerApiException)cause;
}
s_logger.warn("Exception executing method " + methodName + " for command " + cmd.getClass().getSimpleName(), ite);
throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Unable to execute method " + methodName + " for command " + cmd.getClass().getSimpleName() + ", internal error in the implementation.");
} catch (IllegalAccessException iae) {
s_logger.warn("Exception executing method " + methodName + " for command " + cmd.getClass().getSimpleName(), iae);
throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Unable to execute method " + methodName + " for command " + cmd.getClass().getSimpleName() + ", internal error in the implementation.");
} catch (IllegalArgumentException iArgEx) {
s_logger.warn("Exception executing method " + methodName + " for command " + cmd.getClass().getSimpleName(), iArgEx);
throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Unable to execute method " + methodName + " for command " + cmd.getClass().getSimpleName() + ", internal error in the implementation.");
Object result = cmd.execute();
if (!(result instanceof ResponseObject)) {
cmd.setResponseObject(result);
}
} catch (InvalidParameterValueException e1) {
throw new ServerApiException(BaseCmd.PARAM_ERROR, e1.getMessage());
} catch (IllegalArgumentException e2) {
throw new ServerApiException(BaseCmd.PARAM_ERROR, e2.getMessage());
} catch (PermissionDeniedException e3) {
throw new ServerApiException(BaseCmd.ACCOUNT_ERROR, e3.getMessage());
} catch (InsufficientAddressCapacityException e4) {
throw new ServerApiException(BaseCmd.INTERNAL_ERROR, e4.getMessage());
} catch (InsufficientCapacityException e5) {
throw new ServerApiException(BaseCmd.INTERNAL_ERROR, e5.getMessage());
} catch (ConcurrentOperationException e6) {
s_logger.error("Exception while executing " + cmd.getName() + ":", e6);
if (UserContext.current().getAccount() == null || UserContext.current().getAccount().getType() == Account.ACCOUNT_TYPE_ADMIN)
throw new ServerApiException(BaseCmd.INTERNAL_ERROR, e6.getMessage());
else
throw new ServerApiException(BaseCmd.INTERNAL_ERROR, BaseCmd.USER_ERROR_MESSAGE);
} catch (ResourceUnavailableException e7) {
s_logger.error("Exception while executing " + cmd.getName() + ":", e7);
if (UserContext.current().getAccount() == null || UserContext.current().getAccount().getType() == Account.ACCOUNT_TYPE_ADMIN)
throw new ServerApiException(BaseCmd.INTERNAL_ERROR, e7.getMessage());
else
throw new ServerApiException(BaseCmd.INTERNAL_ERROR, BaseCmd.USER_ERROR_MESSAGE);
} catch (CloudRuntimeException e8) {
s_logger.error("Exception while executing " + cmd.getName() + ":", e8);
if (UserContext.current().getAccount() == null || UserContext.current().getAccount().getType() == Account.ACCOUNT_TYPE_ADMIN)
throw new ServerApiException(BaseCmd.INTERNAL_ERROR, e8.getMessage());
else
throw new ServerApiException(BaseCmd.INTERNAL_ERROR, BaseCmd.USER_ERROR_MESSAGE);
}
}
@ -214,14 +186,15 @@ public class ApiDispatcher {
}
throw new ServerApiException(BaseCmd.PARAM_ERROR, "Unable to parse date " + paramObj + " for command " + cmd.getName() + ", please pass dates in the format yyyy-MM-dd");
} catch (CloudRuntimeException cloudEx) {
// FIXME: Better error message? This only happens if the API command is not executable, which typically means there was
// and IllegalAccessException setting one of the parameters.
// FIXME: Better error message? This only happens if the API command is not executable, which typically means
// there was
// and IllegalAccessException setting one of the parameters.
throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Internal error executing API command " + cmd.getName());
}
}
}
@SuppressWarnings({"unchecked", "rawtypes"})
@SuppressWarnings({ "unchecked", "rawtypes" })
private static void setFieldValue(Field field, BaseCmd cmdObj, Object paramObj, Parameter annotation) throws IllegalArgumentException, ParseException {
try {
field.setAccessible(true);

View File

@ -52,7 +52,7 @@ import com.cloud.api.response.ZoneResponse;
import com.cloud.async.AsyncJobVO;
import com.cloud.configuration.ConfigurationVO;
import com.cloud.configuration.ResourceCount.ResourceType;
import com.cloud.configuration.ResourceLimitVO;
import com.cloud.configuration.ResourceLimit;
import com.cloud.dc.ClusterVO;
import com.cloud.dc.DataCenterVO;
import com.cloud.dc.HostPodVO;
@ -255,7 +255,7 @@ public class ApiResponseHelper {
return diskOfferingResponse;
}
public static ResourceLimitResponse createResourceLimitResponse (ResourceLimitVO limit) {
public static ResourceLimitResponse createResourceLimitResponse (ResourceLimit limit) {
ResourceLimitResponse resourceLimitResponse = new ResourceLimitResponse();
if (limit.getDomainId() != null) {
resourceLimitResponse.setDomainId(limit.getDomainId());
@ -351,8 +351,7 @@ public class ApiResponseHelper {
}
public static UserVmResponse createUserVmResponse (UserVm userVm) {
UserVmResponse userVmResponse = new UserVmResponse();
UserVmResponse userVmResponse = new UserVmResponse();
Account acct = ApiDBUtils.findAccountById(Long.valueOf(userVm.getAccountId()));
//FIXME - this check should be done in searchForUserVm method in ManagementServerImpl;
//otherwise the number of vms returned is not going to match pageSize request parameter

View File

@ -79,7 +79,6 @@ import org.apache.http.protocol.ResponseServer;
import org.apache.log4j.Logger;
import com.cloud.api.response.ApiResponseSerializer;
import com.cloud.async.AsyncJobManager;
import com.cloud.async.AsyncJobVO;
import com.cloud.configuration.ConfigurationVO;
import com.cloud.configuration.dao.ConfigurationDao;
@ -110,7 +109,7 @@ public class ApiServer implements HttpRequestHandler {
private static final short READ_ONLY_ADMIN_COMMAND = 4;
private static final short USER_COMMAND = 8;
private Properties _apiCommands = null;
private AsyncJobManager _asyncMgr;
//private AsyncJobManager _asyncMgr;
private ApiDispatcher _dispatcher;
private ManagementServer _ms = null;
@ -187,7 +186,7 @@ public class ApiServer implements HttpRequestHandler {
_ms = (ManagementServer)ComponentLocator.getComponent(ManagementServer.Name);
ComponentLocator locator = ComponentLocator.getLocator(ManagementServer.Name);
_asyncMgr = locator.getManager(AsyncJobManager.class);
//_asyncMgr = locator.getManager(AsyncJobManager.class);
_dispatcher = ApiDispatcher.getInstance();
int apiPort = 8096; // default port
@ -351,8 +350,9 @@ public class ApiServer implements HttpRequestHandler {
Long objectId = null;
if (cmdObj instanceof BaseAsyncCreateCmd) {
BaseAsyncCreateCmd createCmd = (BaseAsyncCreateCmd)cmdObj;
objectId = _dispatcher.dispatchCreateCmd(createCmd, params);
createCmd.setId(objectId);
_dispatcher.dispatchCreateCmd(createCmd, params);
objectId = createCmd.getId();
//createCmd.setId(objectId);
params.put("id", objectId.toString());
} else {
ApiDispatcher.setupParameters(cmdObj, params);
@ -391,7 +391,7 @@ public class ApiServer implements HttpRequestHandler {
job.setCmd(cmdObj.getClass().getName());
job.setCmdInfo(ApiGsonHelper.getBuilder().create().toJson(params));
long jobId = _asyncMgr.submitAsyncJob(job);
long jobId = BaseCmd._asyncMgr.submitAsyncJob(job);
if (objectId != null) {
return ((BaseAsyncCreateCmd)asyncCmd).getResponse(jobId, objectId);
}

View File

@ -2,10 +2,19 @@ package com.cloud.api;
import com.cloud.api.response.ApiResponseSerializer;
import com.cloud.api.response.CreateCmdResponse;
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.ResourceAllocationException;
import com.cloud.exception.ResourceUnavailableException;
public abstract class BaseAsyncCreateCmd extends BaseAsyncCmd {
@Parameter(name="id", type=CommandType.LONG)
private Long id;
public abstract void callCreate() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ResourceUnavailableException, ConcurrentOperationException, ResourceAllocationException;
public Long getId() {
return id;

View File

@ -27,11 +27,32 @@ import java.util.Map;
import org.apache.log4j.Logger;
import com.cloud.agent.AgentManager;
import com.cloud.async.AsyncJobManager;
import com.cloud.configuration.ConfigurationService;
import com.cloud.consoleproxy.ConsoleProxyManager;
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.network.NetworkManager;
import com.cloud.network.security.NetworkGroupManager;
import com.cloud.server.ManagementServer;
import com.cloud.storage.StorageManager;
import com.cloud.storage.snapshot.SnapshotManager;
import com.cloud.template.TemplateManager;
import com.cloud.user.Account;
import com.cloud.user.AccountService;
import com.cloud.utils.Pair;
import com.cloud.utils.component.ComponentLocator;
import com.cloud.vm.UserVmService;
public abstract class BaseCmd {
private static final Logger s_logger = Logger.getLogger(BaseCmd.class.getName());
public static final String USER_ERROR_MESSAGE = "Internal error executing command, please contact your system administrator";
public static final int PROGRESS_INSTANCE_CREATED = 1;
public static final String RESPONSE_TYPE_XML = "xml";
@ -87,12 +108,49 @@ public abstract class BaseCmd {
public static final DateFormat INPUT_FORMAT = new SimpleDateFormat("yyyy-MM-dd");
private static final DateFormat _outputFormat = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ssZ");
public static final ComponentLocator s_locator = getComponents();
public static ConfigurationService _configService;
public static AccountService _accountService;
public static UserVmService _userVmService;
public static ManagementServer _mgr;
public static AsyncJobManager _asyncMgr;
public static StorageManager _storageMgr;
public static AgentManager _agentMgr;
public static NetworkManager _networkMgr;
public static TemplateManager _templateMgr;
public static NetworkGroupManager _networkGroupMgr;
public static SnapshotManager _snapshotMgr;
public static ConsoleProxyManager _consoleProxyMgr;
private Object _responseObject = null;
@Parameter(name="response", type=CommandType.STRING)
private String responseType;
private static ComponentLocator getComponents(){
ComponentLocator locator = ComponentLocator.getLocator(ManagementServer.Name);
_accountService = locator.getManager(AccountService.class);
_configService = locator.getManager(ConfigurationService.class);
_userVmService = locator.getManager(UserVmService.class);
_mgr = (ManagementServer)locator.getComponent("management-server");
_asyncMgr = locator.getManager(AsyncJobManager.class);
_storageMgr = locator.getManager(StorageManager.class);
_agentMgr = locator.getManager(AgentManager.class);
_networkMgr = locator.getManager(NetworkManager.class);
_templateMgr = locator.getManager(TemplateManager.class);
_networkGroupMgr = locator.getManager(NetworkGroupManager.class);
_snapshotMgr = locator.getManager(SnapshotManager.class);
_consoleProxyMgr = locator.getManager(ConsoleProxyManager.class);
return locator;
}
public abstract Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ResourceUnavailableException, ConcurrentOperationException;
public String getResponseType() {
if (responseType == null) {
return RESPONSE_TYPE_XML;

View File

@ -31,6 +31,12 @@ import com.cloud.api.Parameter;
import com.cloud.api.ServerApiException;
import com.cloud.api.response.HostResponse;
import com.cloud.api.response.ListResponse;
import com.cloud.exception.ConcurrentOperationException;
import com.cloud.exception.DiscoveryException;
import com.cloud.exception.InsufficientAddressCapacityException;
import com.cloud.exception.InsufficientCapacityException;
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.")
@ -124,5 +130,15 @@ public class AddHostCmd extends BaseCmd {
response.setResponses(hostResponses);
response.setResponseName(getName());
return response;
}
@Override
public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{
try {
List<HostVO> result = _agentMgr.discoverHosts(this);
return result;
} catch (DiscoveryException ex) {
throw new ServerApiException(BaseCmd.INTERNAL_ERROR, ex.getMessage());
}
}
}

View File

@ -18,7 +18,6 @@
package com.cloud.api.commands;
import java.util.ArrayList;
import java.util.List;
import org.apache.log4j.Logger;
@ -31,7 +30,12 @@ import com.cloud.api.Implementation;
import com.cloud.api.Parameter;
import com.cloud.api.ServerApiException;
import com.cloud.api.response.HostResponse;
import com.cloud.api.response.ListResponse;
import com.cloud.exception.ConcurrentOperationException;
import com.cloud.exception.DiscoveryException;
import com.cloud.exception.InsufficientAddressCapacityException;
import com.cloud.exception.InsufficientCapacityException;
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.")
@ -86,5 +90,15 @@ public class AddSecondaryStorageCmd extends BaseCmd {
throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to add secondary storage");
}
return hostResponse;
}
@Override
public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{
try {
List<HostVO> result = _agentMgr.discoverHosts(this);
return result;
} catch (DiscoveryException ex) {
throw new ServerApiException(BaseCmd.INTERNAL_ERROR, ex.getMessage());
}
}
}

View File

@ -24,9 +24,14 @@ import com.cloud.api.ApiDBUtils;
import com.cloud.api.BaseAsyncCmd;
import com.cloud.api.Implementation;
import com.cloud.api.Parameter;
import com.cloud.api.response.SuccessResponse;
import com.cloud.api.ServerApiException;
import com.cloud.api.response.VpnUsersResponse;
import com.cloud.event.EventTypes;
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.network.NetworkManager;
import com.cloud.network.VpnUserVO;
import com.cloud.user.Account;
@ -86,8 +91,6 @@ public class AddVpnUserCmd extends BaseAsyncCmd {
/////////////// API Implementation///////////////////
/////////////////////////////////////////////////////
public String getName() {
return s_name;
}
@ -142,6 +145,10 @@ public class AddVpnUserCmd extends BaseAsyncCmd {
return EventTypes.EVENT_VPN_USER_ADD;
}
@Override
public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{
VpnUserVO result = _networkMgr.addVpnUser(this);
return result;
}
}

View File

@ -30,6 +30,12 @@ import com.cloud.api.Parameter;
import com.cloud.api.ServerApiException;
import com.cloud.api.response.SuccessResponse;
import com.cloud.event.EventTypes;
import com.cloud.exception.ConcurrentOperationException;
import com.cloud.exception.InsufficientAddressCapacityException;
import com.cloud.exception.InsufficientCapacityException;
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;
@ -105,4 +111,14 @@ public class AssignToLoadBalancerRuleCmd extends BaseAsyncCmd {
throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to assign to load balancer");
}
}
@Override
public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{
try {
boolean result = _networkMgr.assignToLoadBalancer(this);
return result;
} catch (NetworkRuleConflictException ex) {
throw new ServerApiException(BaseCmd.INTERNAL_ERROR, ex.getMessage());
}
}
}

View File

@ -24,7 +24,14 @@ import com.cloud.api.ApiResponseHelper;
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.IPAddressResponse;
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.ResourceAllocationException;
import com.cloud.network.IPAddressVO;
import com.cloud.network.NetworkManager;
@ -68,6 +75,7 @@ public class AssociateIPAddrCmd extends BaseCmd {
/////////////// API Implementation///////////////////
/////////////////////////////////////////////////////
public String getName() {
return s_name;
}
@ -82,5 +90,16 @@ public class AssociateIPAddrCmd extends BaseCmd {
IPAddressResponse ipResponse = ApiResponseHelper.createIPAddressResponse(ipAddress);
ipResponse.setResponseName(getName());
return ipResponse;
}
@Override
public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{
try {
IPAddressVO result = _networkMgr.associateIP(this);
return result;
} catch (ResourceAllocationException ex) {
throw new ServerApiException(BaseCmd.INTERNAL_ERROR, ex.getMessage());
}
}
}

View File

@ -28,6 +28,11 @@ import com.cloud.api.Parameter;
import com.cloud.api.ServerApiException;
import com.cloud.api.response.IsoVmResponse;
import com.cloud.event.EventTypes;
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.storage.VMTemplateVO;
import com.cloud.template.TemplateManager;
import com.cloud.user.Account;
@ -114,6 +119,11 @@ public class AttachIsoCmd extends BaseAsyncCmd {
} 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;
}
}

View File

@ -26,8 +26,15 @@ import com.cloud.api.ApiResponseHelper;
import com.cloud.api.BaseAsyncCmd;
import com.cloud.api.Implementation;
import com.cloud.api.Parameter;
import com.cloud.api.ServerApiException;
import com.cloud.api.response.VolumeResponse;
import com.cloud.event.EventTypes;
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.storage.Volume;
import com.cloud.storage.VolumeVO;
import com.cloud.user.Account;
import com.cloud.vm.UserVmManager;
@ -113,4 +120,10 @@ public class AttachVolumeCmd extends BaseAsyncCmd {
response.setResponseName(getName());
return response;
}
@Override
public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{
Volume result = _userVmService.attachVolumeToVM(this);
return result;
}
}

View File

@ -32,9 +32,15 @@ import com.cloud.api.ApiDBUtils;
import com.cloud.api.BaseAsyncCmd;
import com.cloud.api.Implementation;
import com.cloud.api.Parameter;
import com.cloud.api.ServerApiException;
import com.cloud.api.response.IngressRuleResponse;
import com.cloud.api.response.ListResponse;
import com.cloud.event.EventTypes;
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.network.security.IngressRuleVO;
import com.cloud.network.security.NetworkGroupManager;
import com.cloud.user.Account;
@ -241,4 +247,12 @@ public class AuthorizeNetworkGroupIngressCmd extends BaseAsyncCmd {
response.setResponseName("securitygroupingressrule");
return response;
}
@Override
public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{
List<IngressRuleVO> result = _networkGroupMgr.authorizeNetworkGroupIngress(this);
return result;
}
}

View File

@ -26,8 +26,14 @@ import com.cloud.api.ApiResponseHelper;
import com.cloud.api.BaseAsyncCmd;
import com.cloud.api.Implementation;
import com.cloud.api.Parameter;
import com.cloud.api.ServerApiException;
import com.cloud.api.response.HostResponse;
import com.cloud.event.EventTypes;
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.host.HostVO;
import com.cloud.user.Account;
import com.cloud.user.UserContext;
@ -95,4 +101,10 @@ public class CancelMaintenanceCmd extends BaseAsyncCmd {
response.setResponseName(getName());
return response;
}
@Override
public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{
HostVO result = _agentMgr.cancelMaintenance(this);
return result;
}
}

View File

@ -25,8 +25,14 @@ import com.cloud.api.ApiResponseHelper;
import com.cloud.api.BaseAsyncCmd;
import com.cloud.api.Implementation;
import com.cloud.api.Parameter;
import com.cloud.api.ServerApiException;
import com.cloud.api.response.StoragePoolResponse;
import com.cloud.event.EventTypes;
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.storage.StorageManager;
import com.cloud.storage.StoragePoolVO;
import com.cloud.user.Account;
@ -95,4 +101,10 @@ public class CancelPrimaryStorageMaintenanceCmd extends BaseAsyncCmd {
response.setResponseName(getName());
return response;
}
@Override
public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{
StoragePoolVO result = _storageMgr.cancelPrimaryStorageForMaintenance(this);
return result;
}
}

View File

@ -29,6 +29,12 @@ import com.cloud.api.Parameter;
import com.cloud.api.ServerApiException;
import com.cloud.api.response.TemplateResponse;
import com.cloud.event.EventTypes;
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.StorageUnavailableException;
import com.cloud.storage.GuestOS;
import com.cloud.storage.VMTemplateHostVO;
import com.cloud.storage.VMTemplateStorageResourceAssoc.Status;
@ -179,5 +185,15 @@ public class CopyIsoCmd extends BaseAsyncCmd {
isoResponse.setObjectName("iso");
return isoResponse;
}
@Override
public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{
try {
VMTemplateVO result = _templateMgr.copyIso(this);
return result;
} catch (StorageUnavailableException ex) {
throw new ServerApiException(BaseCmd.INTERNAL_ERROR, ex.getMessage());
}
}
}

View File

@ -29,6 +29,12 @@ import com.cloud.api.Parameter;
import com.cloud.api.ServerApiException;
import com.cloud.api.response.TemplateResponse;
import com.cloud.event.EventTypes;
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.StorageUnavailableException;
import com.cloud.storage.GuestOS;
import com.cloud.storage.VMTemplateHostVO;
import com.cloud.storage.VMTemplateStorageResourceAssoc.Status;
@ -182,5 +188,16 @@ public class CopyTemplateCmd extends BaseAsyncCmd {
templateResponse.setObjectName("template");
return templateResponse;
}
@Override
public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{
try {
VMTemplateVO result = _templateMgr.copyTemplate(this);
return result;
} catch (StorageUnavailableException ex) {
throw new ServerApiException(BaseCmd.INTERNAL_ERROR, ex.getMessage());
}
}
}

View File

@ -26,8 +26,14 @@ import com.cloud.api.Implementation;
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;
import com.cloud.exception.InsufficientCapacityException;
import com.cloud.exception.InvalidParameterValueException;
import com.cloud.exception.PermissionDeniedException;
@Implementation(method="addConfig", manager=ConfigurationManager.class)
public class CreateCfgCmd extends BaseCmd {
@ -91,7 +97,6 @@ public class CreateCfgCmd extends BaseCmd {
/////////////// API Implementation///////////////////
/////////////////////////////////////////////////////
@Override
public String getName() {
return s_name;
@ -108,4 +113,10 @@ public class CreateCfgCmd extends BaseCmd {
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;
}
}

View File

@ -27,6 +27,12 @@ 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;
import com.cloud.exception.InvalidParameterValueException;
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.")
@ -97,4 +103,10 @@ public class CreateDiskOfferingCmd extends BaseCmd {
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;
}
}

View File

@ -27,6 +27,11 @@ import com.cloud.api.Parameter;
import com.cloud.api.ServerApiException;
import com.cloud.api.response.DomainResponse;
import com.cloud.domain.DomainVO;
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="createDomain", description="Creates a domain")
public class CreateDomainCmd extends BaseCmd {
@ -78,4 +83,11 @@ public class CreateDomainCmd extends BaseCmd {
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
}
}

View File

@ -27,6 +27,12 @@ import com.cloud.api.Implementation;
import com.cloud.api.Parameter;
import com.cloud.api.ServerApiException;
import com.cloud.api.response.FirewallRuleResponse;
import com.cloud.exception.ConcurrentOperationException;
import com.cloud.exception.InsufficientAddressCapacityException;
import com.cloud.exception.InsufficientCapacityException;
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;
@ -101,4 +107,15 @@ public class CreateIPForwardingRuleCmd extends BaseCmd {
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{
try {
FirewallRuleVO result = _networkMgr.createPortForwardingRule(this);
return result;
} catch (NetworkRuleConflictException ex) {
throw new ServerApiException(BaseCmd.INTERNAL_ERROR, ex.getMessage());
}
}
}

View File

@ -25,7 +25,13 @@ import com.cloud.api.ApiResponseHelper;
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.LoadBalancerResponse;
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.network.LoadBalancerVO;
import com.cloud.network.NetworkManager;
@ -101,5 +107,11 @@ public class CreateLoadBalancerRuleCmd extends BaseCmd {
LoadBalancerResponse response = ApiResponseHelper.createLoadBalancerResponse(loadBalancer);
response.setResponseName(getName());
return response;
}
@Override
public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{
LoadBalancerVO result = _networkMgr.createLoadBalancerRule(this);
return result;
}
}

View File

@ -24,7 +24,13 @@ import com.cloud.api.ApiDBUtils;
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.NetworkGroupResponse;
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.network.security.NetworkGroupManager;
import com.cloud.network.security.NetworkGroupVO;
@ -96,4 +102,10 @@ public class CreateNetworkGroupCmd extends BaseCmd {
response.setObjectName("securitygroup");
return response;
}
@Override
public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{
NetworkGroupVO result = _networkGroupMgr.createNetworkGroup(this);
return result;
}
}

View File

@ -25,9 +25,16 @@ import com.cloud.api.ApiResponseHelper;
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.PodResponse;
import com.cloud.configuration.ConfigurationManager;
import com.cloud.dc.HostPodVO;
import com.cloud.dc.Pod;
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="createPod", manager=ConfigurationManager.class, description="Creates a new Pod.")
public class CreatePodCmd extends BaseCmd {
@ -102,4 +109,10 @@ public class CreatePodCmd extends BaseCmd {
response.setResponseName(getName());
return response;
}
@Override
public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{
Pod result = _configService.createPod(this);
return result;
}
}

View File

@ -22,10 +22,18 @@ import org.apache.log4j.Logger;
import com.cloud.api.ApiDBUtils;
import com.cloud.api.BaseAsyncCreateCmd;
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.RemoteAccessVpnResponse;
import com.cloud.event.EventTypes;
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.network.NetworkManager;
import com.cloud.network.RemoteAccessVpnVO;
import com.cloud.user.Account;
@ -58,6 +66,7 @@ public class CreateRemoteAccessVpnCmd extends BaseAsyncCreateCmd {
/////////////////////////////////////////////////////
/////////////////// Accessors ///////////////////////
/////////////////////////////////////////////////////
public String getPublicIp() {
return publicIp;
}
@ -144,7 +153,23 @@ public class CreateRemoteAccessVpnCmd extends BaseAsyncCreateCmd {
public String getEventType() {
return EventTypes.EVENT_REMOTE_ACCESS_VPN_CREATE;
}
@Override
public void callCreate() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ResourceUnavailableException, ConcurrentOperationException{
RemoteAccessVpnVO vpn = _networkMgr.createRemoteAccessVpn(this);
if (vpn != null) {
this.setId(vpn.getId());
}
}
@Override
public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{
try {
RemoteAccessVpnVO result = _networkMgr.startRemoteAccessVpn(this);
return result;
} catch (ResourceUnavailableException ex) {
throw new ServerApiException(BaseCmd.INTERNAL_ERROR, ex.getMessage());
}
}
}

View File

@ -25,8 +25,15 @@ import com.cloud.api.ApiResponseHelper;
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.ServiceOfferingResponse;
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;
import com.cloud.offering.ServiceOffering;
import com.cloud.service.ServiceOfferingVO;
@Implementation(method="createServiceOffering", manager=ConfigurationManager.class, description="Creates a service offering.")
@ -120,5 +127,11 @@ public class CreateServiceOfferingCmd extends BaseCmd {
ServiceOfferingResponse response = ApiResponseHelper.createServiceOfferingResponse(offering);
response.setResponseName(getName());
return response;
}
}
@Override
public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{
ServiceOffering result = _configService.createServiceOffering(this);
return result;
}
}

View File

@ -30,6 +30,12 @@ import com.cloud.api.Parameter;
import com.cloud.api.ServerApiException;
import com.cloud.api.response.SnapshotResponse;
import com.cloud.event.EventTypes;
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.ResourceAllocationException;
import com.cloud.storage.SnapshotVO;
import com.cloud.storage.VolumeVO;
import com.cloud.storage.snapshot.SnapshotManager;
@ -115,4 +121,14 @@ public class CreateSnapshotCmd extends BaseAsyncCmd {
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{
try {
SnapshotVO snapshot = _snapshotMgr.createSnapshot(this);
return snapshot;
} catch (ResourceAllocationException ex) {
throw new ServerApiException(BaseCmd.INTERNAL_ERROR, ex.getMessage());
}
}
}

View File

@ -22,10 +22,18 @@ import org.apache.log4j.Logger;
import com.cloud.api.ApiConstants;
import com.cloud.api.ApiDBUtils;
import com.cloud.api.BaseAsyncCmd;
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.SnapshotResponse;
import com.cloud.event.EventTypes;
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.ResourceAllocationException;
import com.cloud.storage.Snapshot.SnapshotType;
import com.cloud.storage.SnapshotVO;
import com.cloud.storage.VolumeVO;
@ -119,4 +127,14 @@ public class CreateSnapshotInternalCmd extends BaseAsyncCmd {
response.setResponseName(getName());
return response;
}
@Override
public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{
try {
SnapshotVO snapshot = _snapshotMgr.createSnapshotInternal(this);
return snapshot;
} catch (ResourceAllocationException ex) {
throw new ServerApiException(BaseCmd.INTERNAL_ERROR, ex.getMessage());
}
}
}

View File

@ -25,7 +25,13 @@ import com.cloud.api.ApiResponseHelper;
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.SnapshotPolicyResponse;
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.storage.SnapshotPolicyVO;
import com.cloud.storage.snapshot.SnapshotManager;
@ -114,5 +120,11 @@ public class CreateSnapshotPolicyCmd extends BaseCmd {
SnapshotPolicyResponse response = ApiResponseHelper.createSnapshotPolicyResponse(snapshotPolicy);
response.setResponseName(getName());
return response;
}
@Override
public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{
SnapshotPolicyVO result = _snapshotMgr.createPolicy(this);
return result;
}
}

View File

@ -18,6 +18,7 @@
package com.cloud.api.commands;
import java.net.UnknownHostException;
import java.util.Map;
import org.apache.log4j.Logger;
@ -29,6 +30,13 @@ import com.cloud.api.Implementation;
import com.cloud.api.Parameter;
import com.cloud.api.ServerApiException;
import com.cloud.api.response.StoragePoolResponse;
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.ResourceAllocationException;
import com.cloud.exception.ResourceInUseException;
import com.cloud.storage.StorageManager;
import com.cloud.storage.StoragePoolVO;
@ -99,7 +107,7 @@ public class CreateStoragePoolCmd extends BaseCmd {
/////////////////////////////////////////////////////
/////////////// API Implementation///////////////////
/////////////////////////////////////////////////////
@Override
public String getName() {
return s_name;
@ -116,5 +124,19 @@ public class CreateStoragePoolCmd extends BaseCmd {
} else {
throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to add host");
}
}
@Override
public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{
try {
StoragePoolVO result = _storageMgr.createPool(this);
return result;
} catch (ResourceAllocationException ex1) {
throw new ServerApiException(BaseCmd.INTERNAL_ERROR, ex1.getMessage());
}catch (ResourceInUseException ex2) {
throw new ServerApiException(BaseCmd.INTERNAL_ERROR, ex2.getMessage());
} catch (UnknownHostException ex3) {
throw new ServerApiException(BaseCmd.INTERNAL_ERROR, ex3.getMessage());
}
}
}

View File

@ -25,9 +25,16 @@ import com.cloud.api.ApiDBUtils;
import com.cloud.api.BaseAsyncCreateCmd;
import com.cloud.api.Implementation;
import com.cloud.api.Parameter;
import com.cloud.api.ServerApiException;
import com.cloud.api.response.TemplateResponse;
import com.cloud.dc.DataCenterVO;
import com.cloud.event.EventTypes;
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.ResourceAllocationException;
import com.cloud.storage.GuestOS;
import com.cloud.storage.Snapshot;
import com.cloud.storage.VMTemplateHostVO;
@ -214,5 +221,18 @@ 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;
}
}

View File

@ -25,7 +25,13 @@ import com.cloud.api.ApiResponseHelper;
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.UserResponse;
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.UserAccount;
@Implementation(method="createUser", description="Creates a user account")
@ -128,4 +134,10 @@ public class CreateUserCmd extends BaseCmd {
response.setResponseName(getName());
return response;
}
@Override
public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{
UserAccount result = _accountService.createUser(this);
return result;
}
}

View File

@ -24,7 +24,13 @@ import com.cloud.api.ApiResponseHelper;
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.InstanceGroupResponse;
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.vm.InstanceGroupVO;
import com.cloud.vm.UserVmManager;
@ -79,4 +85,10 @@ public class CreateVMGroupCmd extends BaseCmd{
response.setResponseName(getName());
return response;
}
@Override
public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{
InstanceGroupVO result = _userVmService.createVmGroup(this);
return result;
}
}

View File

@ -25,9 +25,16 @@ import com.cloud.api.ApiResponseHelper;
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.VlanIpRangeResponse;
import com.cloud.configuration.ConfigurationManager;
import com.cloud.dc.Vlan;
import com.cloud.dc.VlanVO;
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="createVlanAndPublicIpRange", manager=ConfigurationManager.class, description="Creates a VLAN IP range.")
public class CreateVlanIpRangeCmd extends BaseCmd {
@ -129,5 +136,11 @@ public class CreateVlanIpRangeCmd extends BaseCmd {
VlanIpRangeResponse response = ApiResponseHelper.createVlanIpRangeResponse(vlan);
response.setResponseName(getName());
return response;
}
@Override
public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{
Vlan result = _configService.createVlanAndPublicIpRange(this);
return result;
}
}

View File

@ -26,15 +26,21 @@ import com.cloud.api.ApiResponseHelper;
import com.cloud.api.BaseAsyncCreateCmd;
import com.cloud.api.Implementation;
import com.cloud.api.Parameter;
import com.cloud.api.ServerApiException;
import com.cloud.api.response.VolumeResponse;
import com.cloud.event.EventTypes;
import com.cloud.storage.StorageManager;
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.ResourceAllocationException;
import com.cloud.storage.Volume;
import com.cloud.storage.VolumeVO;
import com.cloud.user.Account;
import com.cloud.user.UserContext;
@Implementation(createMethod="allocVolume", method="createVolume", manager=StorageManager.class, description="Creates a disk volume from a disk offering. " +
"This disk volume must still be attached to a virtual machine to make use of it.")
@Implementation(description="Creates a disk volume from a disk offering. This disk volume must still be attached to a virtual machine to make use of it.")
public class CreateVolumeCmd extends BaseAsyncCreateCmd {
public static final Logger s_logger = Logger.getLogger(CreateVolumeCmd.class.getName());
private static final String s_name = "createvolumeresponse";
@ -101,7 +107,6 @@ public class CreateVolumeCmd extends BaseAsyncCreateCmd {
/////////////////////////////////////////////////////
/////////////// API Implementation///////////////////
/////////////////////////////////////////////////////
@Override
public String getName() {
return s_name;
@ -139,7 +144,7 @@ public class CreateVolumeCmd extends BaseAsyncCreateCmd {
public String getEventDescription() {
return "creating volume: " + getVolumeName() + ((getSnapshotId() == null) ? "" : " from snapshot: " + getSnapshotId());
}
@Override @SuppressWarnings("unchecked")
public VolumeResponse getResponse() {
VolumeVO volume = (VolumeVO)getResponseObject();
@ -149,4 +154,18 @@ public class CreateVolumeCmd extends BaseAsyncCreateCmd {
response.setResponseName(getName());
return response;
}
@Override
public void callCreate() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException, ResourceAllocationException{
Volume volume = _storageMgr.allocVolume(this);
if (volume != null) {
this.setId(volume.getId());
}
}
@Override
public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{
Volume volume = _storageMgr.createVolume(this);
return volume;
}
}

View File

@ -25,9 +25,16 @@ import com.cloud.api.ApiResponseHelper;
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.ZoneResponse;
import com.cloud.configuration.ConfigurationManager;
import com.cloud.dc.DataCenter;
import com.cloud.dc.DataCenterVO;
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="createZone", manager=ConfigurationManager.class, description="Creates a Zone.")
public class CreateZoneCmd extends BaseCmd {
@ -109,7 +116,6 @@ public class CreateZoneCmd extends BaseCmd {
/////////////////////////////////////////////////////
/////////////// API Implementation///////////////////
/////////////////////////////////////////////////////
@Override
public String getName() {
@ -123,4 +129,10 @@ public class CreateZoneCmd extends BaseCmd {
response.setResponseName(getName());
return response;
}
@Override
public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{
DataCenter result = _configService.createZone(this);
return result;
}
}

View File

@ -26,6 +26,11 @@ 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.")
public class DeleteDiskOfferingCmd extends BaseCmd {
@ -53,7 +58,6 @@ public class DeleteDiskOfferingCmd extends BaseCmd {
/////////////// API Implementation///////////////////
/////////////////////////////////////////////////////
public String getName() {
return s_name;
}
@ -65,5 +69,11 @@ public class DeleteDiskOfferingCmd extends BaseCmd {
} else {
throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to delete disk offering");
}
}
@Override
public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{
boolean result = _configService.deleteDiskOffering(this);
return result;
}
}

View File

@ -29,6 +29,11 @@ import com.cloud.api.ServerApiException;
import com.cloud.api.response.SuccessResponse;
import com.cloud.domain.DomainVO;
import com.cloud.event.EventTypes;
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.Account;
@Implementation(method="deleteDomain", description="Deletes a specified domain")
@ -95,5 +100,11 @@ public class DeleteDomainCmd extends BaseAsyncCmd {
} else {
throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to delete delete domain");
}
}
@Override
public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{
boolean result = _mgr.deleteDomain(this);
return result;
}
}

View File

@ -27,6 +27,11 @@ 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;
@Implementation(method="deleteHost", manager=AgentManager.class, description="Deletes a host.")
@ -68,5 +73,11 @@ public class DeleteHostCmd extends BaseCmd {
} else {
throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to delete host");
}
}
@Override
public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{
boolean result = _agentMgr.deleteHost(this);
return result;
}
}

View File

@ -25,6 +25,11 @@ 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.network.NetworkManager;
@Implementation(method="deleteIpForwardingRule", manager=NetworkManager.class, description="Deletes a port forwarding rule")
@ -64,5 +69,12 @@ public class DeleteIPForwardingRuleCmd extends BaseCmd {
} else {
throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to delete port forwarding rule");
}
}
}
@Override
public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{
boolean result = _networkMgr.deleteIpForwardingRule(this);
return result;
}
}

View File

@ -28,6 +28,11 @@ import com.cloud.api.Parameter;
import com.cloud.api.ServerApiException;
import com.cloud.api.response.SuccessResponse;
import com.cloud.event.EventTypes;
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.storage.VMTemplateVO;
import com.cloud.template.TemplateManager;
import com.cloud.user.Account;
@ -100,5 +105,11 @@ public class DeleteIsoCmd extends BaseAsyncCmd {
@Override
public String getEventDescription() {
return "Deleting iso " + getId();
}
@Override
public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{
boolean result = _templateMgr.deleteIso(this);
return result;
}
}

View File

@ -28,6 +28,11 @@ import com.cloud.api.Parameter;
import com.cloud.api.ServerApiException;
import com.cloud.api.response.SuccessResponse;
import com.cloud.event.EventTypes;
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.network.LoadBalancerVO;
import com.cloud.network.NetworkManager;
import com.cloud.user.Account;
@ -88,5 +93,11 @@ public class DeleteLoadBalancerRuleCmd extends BaseAsyncCmd {
} else {
throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to delete load balancer rule");
}
}
}
@Override
public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{
boolean result = _networkMgr.deleteLoadBalancerRule(this);
return result;
}
}

View File

@ -8,6 +8,12 @@ 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.ResourceInUseException;
import com.cloud.network.security.NetworkGroupManager;
@Implementation(method="deleteNetworkGroup", manager=NetworkGroupManager.class)
@ -63,4 +69,14 @@ public class DeleteNetworkGroupCmd extends BaseCmd {
throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to delete security group");
}
}
@Override
public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{
try{
boolean result = _networkGroupMgr.deleteNetworkGroup(this);
return result;
} catch (ResourceInUseException ex) {
throw new ServerApiException(BaseCmd.INTERNAL_ERROR, ex.getMessage());
}
}
}

View File

@ -27,6 +27,11 @@ 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.")
public class DeletePodCmd extends BaseCmd {
@ -66,4 +71,10 @@ public class DeletePodCmd extends BaseCmd {
throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to delete pod");
}
}
@Override
public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{
boolean result = _configService.deletePod(this);
return result;
}
}

View File

@ -8,6 +8,11 @@ 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.storage.StorageManager;
@Implementation(method="deletePool", manager=StorageManager.class, description="Deletes a storage pool.")
@ -49,4 +54,10 @@ public class DeletePoolCmd extends BaseCmd {
throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to delete storage pool");
}
}
@Override
public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{
boolean result = _storageMgr.deletePool(this);
return result;
}
}

View File

@ -23,6 +23,11 @@ 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;
@Implementation(method="unregisterPreallocatedLun")
public class DeletePreallocatedLunCmd extends BaseCmd {
@ -60,4 +65,10 @@ public class DeletePreallocatedLunCmd extends BaseCmd {
throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to delete preallocated lun");
}
}
@Override
public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{
boolean result = _mgr.unregisterPreallocatedLun(this);
return result;
}
}

View File

@ -28,6 +28,11 @@ import com.cloud.api.Parameter;
import com.cloud.api.ServerApiException;
import com.cloud.api.response.SuccessResponse;
import com.cloud.event.EventTypes;
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.network.NetworkManager;
import com.cloud.user.Account;
import com.cloud.user.UserContext;
@ -74,7 +79,6 @@ public class DeleteRemoteAccessVpnCmd extends BaseAsyncCmd {
/////////////// API Implementation///////////////////
/////////////////////////////////////////////////////
public String getName() {
return s_name;
}
@ -117,6 +121,10 @@ public class DeleteRemoteAccessVpnCmd extends BaseAsyncCmd {
return EventTypes.EVENT_REMOTE_ACCESS_VPN_DESTROY;
}
@Override
public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{
boolean result = _networkMgr.destroyRemoteAccessVpn(this);
return result;
}
}

View File

@ -27,6 +27,11 @@ 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.")
public class DeleteServiceOfferingCmd extends BaseCmd{
@ -66,5 +71,12 @@ public class DeleteServiceOfferingCmd extends BaseCmd{
} else {
throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to delete service offering");
}
}
}
@Override
public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{
boolean result = _configService.deleteServiceOffering(this);
return result;
}
}

View File

@ -29,6 +29,11 @@ import com.cloud.api.Parameter;
import com.cloud.api.ServerApiException;
import com.cloud.api.response.SuccessResponse;
import com.cloud.event.EventTypes;
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.storage.Snapshot;
import com.cloud.storage.snapshot.SnapshotManager;
import com.cloud.user.Account;
@ -104,5 +109,11 @@ public class DeleteSnapshotCmd extends BaseAsyncCmd {
} else {
throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to delete snapshot");
}
}
}
@Override
public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{
boolean result = _snapshotMgr.deleteSnapshot(this);
return result;
}
}

View File

@ -28,6 +28,11 @@ 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.storage.snapshot.SnapshotManager;
@Implementation(method="deleteSnapshotPolicies", manager=SnapshotManager.class, description="Deletes snapshot policies for the account.")
@ -90,5 +95,11 @@ public class DeleteSnapshotPoliciesCmd extends BaseCmd {
} else {
throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to delete snapshot policy");
}
}
}
@Override
public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{
boolean result = _snapshotMgr.deleteSnapshotPolicies(this);
return result;
}
}

View File

@ -29,6 +29,11 @@ import com.cloud.api.Parameter;
import com.cloud.api.ServerApiException;
import com.cloud.api.response.SuccessResponse;
import com.cloud.event.EventTypes;
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.storage.VMTemplateVO;
import com.cloud.template.TemplateManager;
import com.cloud.user.Account;
@ -65,7 +70,7 @@ public class DeleteTemplateCmd extends BaseAsyncCmd {
/////////////////////////////////////////////////////
/////////////// API Implementation///////////////////
/////////////////////////////////////////////////////
@Override
public String getName() {
return s_name;
@ -102,5 +107,11 @@ public class DeleteTemplateCmd extends BaseAsyncCmd {
@Override
public String getEventDescription() {
return "Deleting template " + getId();
}
@Override
public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{
boolean result = _templateMgr.deleteTemplate(this);
return result;
}
}

View File

@ -29,6 +29,11 @@ import com.cloud.api.Parameter;
import com.cloud.api.ServerApiException;
import com.cloud.api.response.SuccessResponse;
import com.cloud.event.EventTypes;
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.server.ManagementServer;
import com.cloud.user.Account;
import com.cloud.user.User;
@ -97,5 +102,11 @@ public class DeleteUserCmd extends BaseAsyncCmd {
} else {
throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to delete user");
}
}
}
@Override
public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{
boolean result = _accountService.deleteUser(this);
return result;
}
}

View File

@ -25,6 +25,11 @@ 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.vm.UserVmManager;
@Implementation(method="deleteVmGroup", manager=UserVmManager.class)
@ -64,4 +69,10 @@ public class DeleteVMGroupCmd extends BaseCmd{
throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to delete virtual machine group");
}
}
@Override
public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{
boolean result = _userVmService.deleteVmGroup(this);
return result;
}
}

View File

@ -27,6 +27,11 @@ 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.")
public class DeleteVlanIpRangeCmd extends BaseCmd {
@ -65,5 +70,11 @@ public class DeleteVlanIpRangeCmd extends BaseCmd {
} else {
throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to delete vlan ip range");
}
}
}
}
@Override
public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{
boolean result = _configService.deleteVlanIpRange(this);
return result;
}
}

View File

@ -26,6 +26,11 @@ 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.storage.StorageManager;
@Implementation(method="deleteVolume", manager=StorageManager.class, description="Deletes a detached disk volume.")
@ -71,4 +76,10 @@ public class DeleteVolumeCmd extends BaseCmd {
throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to delete volume");
}
}
@Override
public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{
boolean result = _storageMgr.deleteVolume(this);
return result;
}
}

View File

@ -27,6 +27,11 @@ 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.")
public class DeleteZoneCmd extends BaseCmd {
@ -68,4 +73,10 @@ public class DeleteZoneCmd extends BaseCmd {
throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to delete zone");
}
}
@Override
public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{
boolean result = _configService.deleteZone(this);
return result;
}
}

View File

@ -26,13 +26,23 @@ import com.cloud.api.ApiConstants;
import com.cloud.api.ApiDBUtils;
import com.cloud.api.ApiResponseHelper;
import com.cloud.api.BaseAsyncCmd;
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.UserVmResponse;
import com.cloud.event.EventTypes;
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.ResourceAllocationException;
import com.cloud.exception.StorageUnavailableException;
import com.cloud.user.Account;
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.")
public class DeployVMCmd extends BaseAsyncCmd {
@ -148,7 +158,7 @@ public class DeployVMCmd extends BaseAsyncCmd {
/////////////////////////////////////////////////////
/////////////// API Implementation///////////////////
/////////////////////////////////////////////////////
@Override
public String getName() {
return s_name;
@ -199,4 +209,16 @@ public class DeployVMCmd extends BaseAsyncCmd {
response.setResponseName(getName());
return response;
}
@Override
public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException, StorageUnavailableException{
try {
UserVm result = _mgr.deployVirtualMachine(this);
return result;
} catch (ResourceAllocationException ex) {
throw new ServerApiException(BaseCmd.INTERNAL_ERROR, ex.getMessage());
} catch (ExecutionException ex1) {
throw new ServerApiException(BaseCmd.INTERNAL_ERROR, ex1.getMessage());
}
}
}

View File

@ -28,8 +28,15 @@ import com.cloud.api.BaseAsyncCreateCmd;
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.UserVmResponse;
import com.cloud.event.EventTypes;
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.ResourceAllocationException;
import com.cloud.offering.ServiceOffering;
import com.cloud.storage.VMTemplateVO;
import com.cloud.user.Account;
@ -153,6 +160,16 @@ 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() {

View File

@ -29,6 +29,11 @@ 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;
import com.cloud.exception.InsufficientCapacityException;
import com.cloud.exception.InvalidParameterValueException;
import com.cloud.exception.PermissionDeniedException;
import com.cloud.user.Account;
import com.cloud.user.UserContext;
@ -91,5 +96,11 @@ public class DestroyConsoleProxyCmd extends BaseAsyncCmd {
} else {
throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to delete console proxy");
}
}
}
@Override
public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{
boolean result = _consoleProxyMgr.destroyConsoleProxy(this);
return result;
}
}

View File

@ -25,8 +25,15 @@ import com.cloud.api.ApiResponseHelper;
import com.cloud.api.BaseAsyncCmd;
import com.cloud.api.Implementation;
import com.cloud.api.Parameter;
import com.cloud.api.ServerApiException;
import com.cloud.api.response.UserVmResponse;
import com.cloud.event.EventTypes;
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.StorageUnavailableException;
import com.cloud.user.Account;
import com.cloud.uservm.UserVm;
import com.cloud.vm.UserVmManager;
@ -87,5 +94,11 @@ public class DestroyVMCmd extends BaseAsyncCmd {
UserVmResponse recoverVmResponse = ApiResponseHelper.createUserVmResponse(userVm);
recoverVmResponse.setResponseName("virtualmachine");
return recoverVmResponse;
}
}
@Override
public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException, StorageUnavailableException{
UserVm result = _userVmService.destroyVm(this);
return result;
}
}

View File

@ -28,6 +28,11 @@ import com.cloud.api.Parameter;
import com.cloud.api.ServerApiException;
import com.cloud.api.response.SuccessResponse;
import com.cloud.event.EventTypes;
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.template.TemplateManager;
import com.cloud.user.Account;
import com.cloud.uservm.UserVm;
@ -89,5 +94,11 @@ public class DetachIsoCmd extends BaseAsyncCmd {
} else {
throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to detach iso");
}
}
}
@Override
public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{
boolean result = _templateMgr.detachIso(this);
return result;
}
}

View File

@ -25,8 +25,15 @@ import com.cloud.api.ApiResponseHelper;
import com.cloud.api.BaseAsyncCmd;
import com.cloud.api.Implementation;
import com.cloud.api.Parameter;
import com.cloud.api.ServerApiException;
import com.cloud.api.response.VolumeResponse;
import com.cloud.event.EventTypes;
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.storage.Volume;
import com.cloud.storage.VolumeVO;
import com.cloud.user.Account;
import com.cloud.uservm.UserVm;
@ -123,4 +130,10 @@ public class DetachVolumeCmd extends BaseAsyncCmd {
response.setResponseName("volume");
return response;
}
@Override
public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{
Volume result = _userVmService.detachVolumeFromVM(this);
return result;
}
}

View File

@ -24,8 +24,14 @@ import com.cloud.api.ApiResponseHelper;
import com.cloud.api.BaseAsyncCmd;
import com.cloud.api.Implementation;
import com.cloud.api.Parameter;
import com.cloud.api.ServerApiException;
import com.cloud.api.response.AccountResponse;
import com.cloud.event.EventTypes;
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.server.ManagementServer;
import com.cloud.user.Account;
import com.cloud.user.AccountVO;
@ -93,5 +99,11 @@ public class DisableAccountCmd extends BaseAsyncCmd {
AccountResponse response = ApiResponseHelper.createAccountResponse(account);
response.setResponseName(getName());
return response;
}
@Override
public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{
Account result = _accountService.disableAccount(this);
return result;
}
}

View File

@ -24,8 +24,14 @@ import com.cloud.api.ApiResponseHelper;
import com.cloud.api.BaseAsyncCmd;
import com.cloud.api.Implementation;
import com.cloud.api.Parameter;
import com.cloud.api.ServerApiException;
import com.cloud.api.response.UserResponse;
import com.cloud.event.EventTypes;
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.Account;
import com.cloud.user.UserAccount;
import com.cloud.user.UserContext;
@ -85,5 +91,11 @@ public class DisableUserCmd extends BaseAsyncCmd {
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;
}
}

View File

@ -25,6 +25,11 @@ 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.network.NetworkManager;
@Implementation(method="disassociateIpAddress", manager=NetworkManager.class, description="Disassociates an ip address from the account.")
@ -64,5 +69,11 @@ public class DisassociateIPAddrCmd extends BaseCmd {
} else {
throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to disassociate ip address");
}
}
}
@Override
public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{
boolean result = _networkMgr.disassociateIpAddress(this);
return result;
}
}

View File

@ -24,8 +24,15 @@ import com.cloud.api.ApiResponseHelper;
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.AccountResponse;
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.server.ManagementServer;
import com.cloud.user.Account;
import com.cloud.user.AccountVO;
@Implementation(method="enableAccount", manager=ManagementServer.class, description="Enables an account")
@ -70,5 +77,11 @@ public class EnableAccountCmd extends BaseCmd {
AccountResponse response = ApiResponseHelper.createAccountResponse(account);
response.setResponseName(getName());
return response;
}
@Override
public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{
Account result = _accountService.enableAccount(this);
return result;
}
}

View File

@ -25,7 +25,13 @@ import com.cloud.api.ApiResponseHelper;
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.UserResponse;
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.server.ManagementServer;
import com.cloud.user.UserAccount;
@ -65,5 +71,11 @@ public class EnableUserCmd extends BaseCmd {
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;
}
}

View File

@ -22,10 +22,19 @@ import org.apache.log4j.Logger;
import com.cloud.api.ApiConstants;
import com.cloud.api.ApiDBUtils;
import com.cloud.api.BaseAsyncCmd;
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.ExtractResponse;
import com.cloud.event.EventTypes;
import com.cloud.exception.ConcurrentOperationException;
import com.cloud.exception.InsufficientAddressCapacityException;
import com.cloud.exception.InsufficientCapacityException;
import com.cloud.exception.InternalErrorException;
import com.cloud.exception.InvalidParameterValueException;
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;
@ -127,4 +136,14 @@ public class ExtractIsoCmd extends BaseAsyncCmd {
public static String getStaticName() {
return s_name;
}
@Override
public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException, ResourceUnavailableException{
try {
Long result = _templateMgr.extract(this);
return result;
} catch (InternalErrorException ex) {
throw new ServerApiException(BaseCmd.INTERNAL_ERROR, ex.getMessage());
}
}
}

View File

@ -22,10 +22,19 @@ import org.apache.log4j.Logger;
import com.cloud.api.ApiConstants;
import com.cloud.api.ApiDBUtils;
import com.cloud.api.BaseAsyncCmd;
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.ExtractResponse;
import com.cloud.event.EventTypes;
import com.cloud.exception.ConcurrentOperationException;
import com.cloud.exception.InsufficientAddressCapacityException;
import com.cloud.exception.InsufficientCapacityException;
import com.cloud.exception.InternalErrorException;
import com.cloud.exception.InvalidParameterValueException;
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;
@ -128,4 +137,14 @@ public class ExtractTemplateCmd extends BaseAsyncCmd {
response.setUrl(uploadInfo.getUploadUrl().replaceAll("/", "%2F"));
return response;
}
@Override
public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException, ResourceUnavailableException{
try {
Long result = _templateMgr.extract(this);
return result;
} catch (InternalErrorException ex) {
throw new ServerApiException(BaseCmd.INTERNAL_ERROR, ex.getMessage());
}
}
}

View File

@ -17,15 +17,25 @@
*/
package com.cloud.api.commands;
import java.net.URISyntaxException;
import org.apache.log4j.Logger;
import com.cloud.api.ApiConstants;
import com.cloud.api.ApiDBUtils;
import com.cloud.api.BaseAsyncCmd;
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.ExtractResponse;
import com.cloud.event.EventTypes;
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.storage.UploadVO;
import com.cloud.storage.VolumeVO;
import com.cloud.user.Account;
@ -129,4 +139,14 @@ public class ExtractVolumeCmd extends BaseAsyncCmd {
public static String getStaticName() {
return s_name;
}
@Override
public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException, ResourceUnavailableException{
try {
Long result = _mgr.extractVolume(this);
return result;
} catch (URISyntaxException ex) {
throw new ServerApiException(BaseCmd.INTERNAL_ERROR, ex.getMessage());
}
}
}

View File

@ -28,6 +28,11 @@ import com.cloud.api.Implementation;
import com.cloud.api.Parameter;
import com.cloud.api.ServerApiException;
import com.cloud.api.response.CloudIdentifierResponse;
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.server.ManagementServer;
@Implementation(method="getCloudIdentifierResponse", manager=ManagementServer.class, description="Retrieves a cloud identifier.")
@ -75,4 +80,10 @@ public class GetCloudIdentifierCmd extends BaseCmd {
response.setResponseName(getName());
return response;
}
@Override
public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{
ArrayList<String> result = _mgr.getCloudIdentifierResponse(this);
return result;
}
}

View File

@ -27,8 +27,14 @@ import com.cloud.api.ApiResponseHelper;
import com.cloud.api.BaseListCmd;
import com.cloud.api.Implementation;
import com.cloud.api.Parameter;
import com.cloud.api.ServerApiException;
import com.cloud.api.response.AccountResponse;
import com.cloud.api.response.ListResponse;
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.server.ManagementServer;
import com.cloud.user.AccountVO;
@ -120,5 +126,11 @@ 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<AccountVO> result = _mgr.searchForAccounts(this);
return result;
}
}

View File

@ -27,8 +27,14 @@ import com.cloud.api.ApiConstants;
import com.cloud.api.BaseListCmd;
import com.cloud.api.Implementation;
import com.cloud.api.Parameter;
import com.cloud.api.ServerApiException;
import com.cloud.api.response.AlertResponse;
import com.cloud.api.response.ListResponse;
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="searchForAlerts", description="Lists all alerts.")
public class ListAlertsCmd extends BaseListCmd {
@ -82,4 +88,10 @@ public class ListAlertsCmd extends BaseListCmd {
response.setResponseName(getName());
return response;
}
@Override
public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{
List<AlertVO> result = _mgr.searchForAlerts(this);
return result;
}
}

View File

@ -27,9 +27,15 @@ 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.AsyncJobResponse;
import com.cloud.api.response.ListResponse;
import com.cloud.async.AsyncJobVO;
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="searchForAsyncJobs", description="Lists all pending asynchronous jobs for the account.")
public class ListAsyncJobsCmd extends BaseListCmd {
@ -68,7 +74,6 @@ public class ListAsyncJobsCmd extends BaseListCmd {
/////////////////////////////////////////////////////
/////////////// API Implementation///////////////////
/////////////////////////////////////////////////////
@Override
public String getName() {
return s_name;
@ -101,5 +106,11 @@ 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<AsyncJobVO> result = _mgr.searchForAsyncJobs(this);
return result;
}
}

View File

@ -23,7 +23,13 @@ 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.CapabilitiesResponse;
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="listCapabilities")
public class ListCapabilitiesCmd extends BaseCmd {
@ -47,5 +53,11 @@ public class ListCapabilitiesCmd extends BaseCmd {
response.setResponseName(getName());
return response;
}
@Override
public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{
Map<String, String> result = _mgr.listCapabilities(this);
return result;
}
}

View File

@ -34,9 +34,15 @@ import com.cloud.api.ApiDBUtils;
import com.cloud.api.BaseListCmd;
import com.cloud.api.Implementation;
import com.cloud.api.Parameter;
import com.cloud.api.ServerApiException;
import com.cloud.api.response.CapacityResponse;
import com.cloud.api.response.ListResponse;
import com.cloud.capacity.CapacityVO;
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.server.Criteria;
import com.cloud.storage.Storage.StoragePoolType;
import com.cloud.storage.StoragePoolVO;
@ -229,5 +235,11 @@ public class ListCapacityCmd extends BaseListCmd {
summedCapacities.add(summedCapacity);
}
return summedCapacities;
}
}
@Override
public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{
List<CapacityVO> result = _mgr.listCapacities(this);
return result;
}
}

View File

@ -28,9 +28,15 @@ import com.cloud.api.ApiResponseHelper;
import com.cloud.api.BaseListCmd;
import com.cloud.api.Implementation;
import com.cloud.api.Parameter;
import com.cloud.api.ServerApiException;
import com.cloud.api.response.ConfigurationResponse;
import com.cloud.api.response.ListResponse;
import com.cloud.configuration.ConfigurationVO;
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="searchForConfigurations", description="Lists all configurations.")
public class ListCfgsByCmd extends BaseListCmd {
@ -87,4 +93,10 @@ public class ListCfgsByCmd extends BaseListCmd {
response.setResponseName(getName());
return response;
}
@Override
public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{
List<ConfigurationVO> result = _mgr.searchForConfigurations(this);
return result;
}
}

View File

@ -28,9 +28,15 @@ import com.cloud.api.ApiResponseHelper;
import com.cloud.api.BaseListCmd;
import com.cloud.api.Implementation;
import com.cloud.api.Parameter;
import com.cloud.api.ServerApiException;
import com.cloud.api.response.ClusterResponse;
import com.cloud.api.response.ListResponse;
import com.cloud.dc.ClusterVO;
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="searchForClusters", description="Lists clusters.")
public class ListClustersCmd extends BaseListCmd {
@ -100,4 +106,10 @@ public class ListClustersCmd extends BaseListCmd {
response.setResponseName(getName());
return response;
}
@Override
public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{
List<ClusterVO> result = _mgr.searchForClusters(this);
return result;
}
}

View File

@ -27,8 +27,14 @@ import com.cloud.api.ApiResponseHelper;
import com.cloud.api.BaseListCmd;
import com.cloud.api.Implementation;
import com.cloud.api.Parameter;
import com.cloud.api.ServerApiException;
import com.cloud.api.response.DiskOfferingResponse;
import com.cloud.api.response.ListResponse;
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.storage.DiskOfferingVO;
@Implementation(method="searchForDiskOfferings", description="Lists all available disk offerings.")
@ -90,5 +96,11 @@ 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<DiskOfferingVO> result = _mgr.searchForDiskOfferings(this);
return result;
}
}

View File

@ -27,9 +27,15 @@ import com.cloud.api.ApiResponseHelper;
import com.cloud.api.BaseListCmd;
import com.cloud.api.Implementation;
import com.cloud.api.Parameter;
import com.cloud.api.ServerApiException;
import com.cloud.api.response.DomainResponse;
import com.cloud.api.response.ListResponse;
import com.cloud.domain.DomainVO;
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="searchForDomainChildren", description="Lists all children domains belonging to a specified domain")
public class ListDomainChildrenCmd extends BaseListCmd {
@ -90,5 +96,11 @@ 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<DomainVO> result = _mgr.searchForDomainChildren(this);
return result;
}
}

View File

@ -27,9 +27,15 @@ import com.cloud.api.ApiResponseHelper;
import com.cloud.api.BaseListCmd;
import com.cloud.api.Implementation;
import com.cloud.api.Parameter;
import com.cloud.api.ServerApiException;
import com.cloud.api.response.DomainResponse;
import com.cloud.api.response.ListResponse;
import com.cloud.domain.DomainVO;
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="searchForDomains", description="Lists domains and provides detailed information for listed domains")
public class ListDomainsCmd extends BaseListCmd {
@ -90,5 +96,11 @@ 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<DomainVO> result = _mgr.searchForDomains(this);
return result;
}
}

View File

@ -28,9 +28,15 @@ import com.cloud.api.ApiDBUtils;
import com.cloud.api.BaseListCmd;
import com.cloud.api.Implementation;
import com.cloud.api.Parameter;
import com.cloud.api.ServerApiException;
import com.cloud.api.response.EventResponse;
import com.cloud.api.response.ListResponse;
import com.cloud.event.EventVO;
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.User;
@Implementation(method="searchForEvents", description="A command to list events.")
@ -142,5 +148,11 @@ 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<EventVO> result = _mgr.searchForEvents(this);
return result;
}
}

View File

@ -27,8 +27,14 @@ import com.cloud.api.ApiConstants;
import com.cloud.api.BaseListCmd;
import com.cloud.api.Implementation;
import com.cloud.api.Parameter;
import com.cloud.api.ServerApiException;
import com.cloud.api.response.GuestOSCategoryResponse;
import com.cloud.api.response.ListResponse;
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.storage.GuestOSCategoryVO;
@Implementation(method="listGuestOSCategoriesByCriteria", description="Lists all supported OS categories for this cloud.")
@ -82,4 +88,10 @@ public class ListGuestOsCategoriesCmd extends BaseListCmd {
response.setResponseName(getName());
return response;
}
@Override
public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{
List<GuestOSCategoryVO> result = _mgr.listGuestOSCategoriesByCriteria(this);
return result;
}
}

View File

@ -27,8 +27,14 @@ import com.cloud.api.ApiConstants;
import com.cloud.api.BaseListCmd;
import com.cloud.api.Implementation;
import com.cloud.api.Parameter;
import com.cloud.api.ServerApiException;
import com.cloud.api.response.GuestOSResponse;
import com.cloud.api.response.ListResponse;
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.storage.GuestOSVO;
@Implementation(method="listGuestOSByCriteria", description="Lists all supported OS types for this cloud.")
@ -100,4 +106,10 @@ public class ListGuestOsCmd extends BaseListCmd {
response.setResponseName(getName());
return response;
}
@Override
public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{
List<GuestOSVO> result = _mgr.listGuestOSByCriteria(this);
return result;
}
}

View File

@ -28,8 +28,14 @@ import com.cloud.api.ApiResponseHelper;
import com.cloud.api.BaseListCmd;
import com.cloud.api.Implementation;
import com.cloud.api.Parameter;
import com.cloud.api.ServerApiException;
import com.cloud.api.response.HostResponse;
import com.cloud.api.response.ListResponse;
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.host.HostVO;
@Implementation(method="searchForServers", description="Lists hosts.")
@ -121,5 +127,11 @@ 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<HostVO> result = _mgr.searchForServers(this);
return result;
}
}

View File

@ -23,8 +23,14 @@ 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.HypervisorResponse;
import com.cloud.api.response.ListResponse;
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="getHypervisors")
public class ListHypervisorsCmd extends BaseCmd {
@ -53,4 +59,10 @@ public class ListHypervisorsCmd extends BaseCmd {
response.setResponseName(getName());
return response;
}
@Override
public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{
String[] result = _mgr.getHypervisors(this);
return result;
}
}

View File

@ -30,10 +30,16 @@ import com.cloud.api.ApiDBUtils;
import com.cloud.api.BaseListCmd;
import com.cloud.api.Implementation;
import com.cloud.api.Parameter;
import com.cloud.api.ServerApiException;
import com.cloud.api.response.ListResponse;
import com.cloud.api.response.TemplateResponse;
import com.cloud.async.AsyncJobVO;
import com.cloud.dc.DataCenterVO;
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.host.HostVO;
import com.cloud.storage.GuestOS;
import com.cloud.storage.VMTemplateHostVO;
@ -134,7 +140,7 @@ public class ListIsosCmd extends BaseListCmd {
/////////////////////////////////////////////////////
/////////////// API Implementation///////////////////
/////////////////////////////////////////////////////
@Override
public String getName() {
return s_name;
@ -284,4 +290,10 @@ public class ListIsosCmd extends BaseListCmd {
response.setResponseName(getName());
return response;
}
@Override
public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{
List<VMTemplateVO> result = _mgr.listIsos(this);
return result;
}
}

View File

@ -27,8 +27,14 @@ import com.cloud.api.ApiResponseHelper;
import com.cloud.api.BaseListCmd;
import com.cloud.api.Implementation;
import com.cloud.api.Parameter;
import com.cloud.api.ServerApiException;
import com.cloud.api.response.ListResponse;
import com.cloud.api.response.UserVmResponse;
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.vm.UserVmVO;
@Implementation(method="listLoadBalancerInstances", description="List all virtual machine instances that are assigned to a load balancer rule.")
@ -84,4 +90,10 @@ public class ListLoadBalancerRuleInstancesCmd extends BaseListCmd {
response.setResponseName(getName());
return response;
}
@Override
public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{
List<UserVmVO> result = _mgr.listLoadBalancerInstances(this);
return result;
}
}

View File

@ -28,8 +28,14 @@ import com.cloud.api.ApiResponseHelper;
import com.cloud.api.BaseListCmd;
import com.cloud.api.Implementation;
import com.cloud.api.Parameter;
import com.cloud.api.ServerApiException;
import com.cloud.api.response.ListResponse;
import com.cloud.api.response.LoadBalancerResponse;
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.network.LoadBalancerVO;
@Implementation(method="searchForLoadBalancers", description="Lists load balancer rules.")
@ -112,5 +118,11 @@ 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<LoadBalancerVO> result = _mgr.searchForLoadBalancers(this);
return result;
}
}

View File

@ -27,11 +27,17 @@ import com.cloud.api.ApiDBUtils;
import com.cloud.api.BaseListCmd;
import com.cloud.api.Implementation;
import com.cloud.api.Parameter;
import com.cloud.api.ServerApiException;
import com.cloud.api.response.IngressRuleResponse;
import com.cloud.api.response.ListResponse;
import com.cloud.api.response.NetworkGroupResponse;
import com.cloud.async.executor.IngressRuleResultObject;
import com.cloud.async.executor.NetworkGroupResultObject;
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.network.security.NetworkGroupManager;
import com.cloud.network.security.NetworkGroupRulesVO;
@ -139,4 +145,10 @@ public class ListNetworkGroupsCmd extends BaseListCmd {
response.setResponseName(getName());
return response;
}
@Override
public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{
List<NetworkGroupRulesVO> result = _networkGroupMgr.searchForNetworkGroupRules(this);
return result;
}
}

View File

@ -28,9 +28,15 @@ import com.cloud.api.ApiResponseHelper;
import com.cloud.api.BaseListCmd;
import com.cloud.api.Implementation;
import com.cloud.api.Parameter;
import com.cloud.api.ServerApiException;
import com.cloud.api.response.ListResponse;
import com.cloud.api.response.PodResponse;
import com.cloud.dc.HostPodVO;
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="searchForPods", description="Lists all Pods.")
public class ListPodsByCmd extends BaseListCmd {
@ -93,4 +99,10 @@ public class ListPodsByCmd extends BaseListCmd {
response.setResponseName(getName());
return response;
}
@Override
public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{
List<HostPodVO> result = _mgr.searchForPods(this);
return result;
}
}

View File

@ -27,8 +27,14 @@ import com.cloud.api.ApiResponseHelper;
import com.cloud.api.BaseListCmd;
import com.cloud.api.Implementation;
import com.cloud.api.Parameter;
import com.cloud.api.ServerApiException;
import com.cloud.api.response.FirewallRuleResponse;
import com.cloud.api.response.ListResponse;
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.network.FirewallRuleVO;
import com.cloud.network.NetworkManager;
@ -77,5 +83,11 @@ public class ListPortForwardingRulesCmd extends BaseListCmd {
response.setResponses(fwResponses);
response.setResponseName(getName());
return response;
}
@Override
public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{
List<FirewallRuleVO> result = _networkMgr.listPortForwardingRules(this);
return result;
}
}

View File

@ -28,8 +28,14 @@ import com.cloud.api.ApiResponseHelper;
import com.cloud.api.BaseListCmd;
import com.cloud.api.Implementation;
import com.cloud.api.Parameter;
import com.cloud.api.ServerApiException;
import com.cloud.api.response.ListResponse;
import com.cloud.api.response.PreallocatedLunResponse;
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.storage.preallocatedlun.PreallocatedLunVO;
@Implementation(method="getPreAllocatedLuns")
@ -88,4 +94,10 @@ public class ListPreallocatedLunsCmd extends BaseListCmd {
response.setResponseName(getName());
return response;
}
@Override
public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{
List<PreallocatedLunVO> result = _mgr.getPreAllocatedLuns(this);
return result;
}
}

View File

@ -28,8 +28,14 @@ import com.cloud.api.ApiResponseHelper;
import com.cloud.api.BaseListCmd;
import com.cloud.api.Implementation;
import com.cloud.api.Parameter;
import com.cloud.api.ServerApiException;
import com.cloud.api.response.IPAddressResponse;
import com.cloud.api.response.ListResponse;
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.network.IPAddressVO;
@Implementation(method="searchForIPAddresses", description="Lists all public ip addresses")
@ -119,5 +125,11 @@ 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<IPAddressVO> result = _mgr.searchForIPAddresses(this);
return result;
}
}

View File

@ -25,8 +25,14 @@ 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;
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.storage.SnapshotScheduleVO;
import com.cloud.storage.snapshot.SnapshotManager;
@ -85,5 +91,11 @@ 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<SnapshotScheduleVO> result = _snapshotMgr.findRecurringSnapshotSchedule(this);
return result;
}
}

View File

@ -27,10 +27,14 @@ import com.cloud.api.ApiDBUtils;
import com.cloud.api.BaseListCmd;
import com.cloud.api.Implementation;
import com.cloud.api.Parameter;
import com.cloud.api.response.RemoteAccessVpnResponse;
import com.cloud.api.ServerApiException;
import com.cloud.api.response.ListResponse;
import com.cloud.api.response.LoadBalancerResponse;
import com.cloud.network.LoadBalancerVO;
import com.cloud.api.response.RemoteAccessVpnResponse;
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.network.RemoteAccessVpnVO;
import com.cloud.user.Account;
@ -125,5 +129,11 @@ 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<RemoteAccessVpnVO> result = _mgr.searchForRemoteAccessVpns(this);
return result;
}
}

View File

@ -28,9 +28,16 @@ import com.cloud.api.ApiResponseHelper;
import com.cloud.api.BaseListCmd;
import com.cloud.api.Implementation;
import com.cloud.api.Parameter;
import com.cloud.api.ServerApiException;
import com.cloud.api.response.ListResponse;
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="searchForLimits", manager=AccountManager.class, description="Lists resource limits.")
@ -82,7 +89,7 @@ public class ListResourceLimitsCmd extends BaseListCmd {
/////////////////////////////////////////////////////
/////////////// API Implementation///////////////////
/////////////////////////////////////////////////////
@Override
public String getName() {
return s_name;
@ -90,11 +97,11 @@ public class ListResourceLimitsCmd extends BaseListCmd {
@Override @SuppressWarnings("unchecked")
public ListResponse<ResourceLimitResponse> getResponse() {
List<ResourceLimitVO> limits = (List<ResourceLimitVO>)getResponseObject();
List<ResourceLimit> limits = (List<ResourceLimit>)getResponseObject();
ListResponse<ResourceLimitResponse> response = new ListResponse<ResourceLimitResponse>();
List<ResourceLimitResponse> limitResponses = new ArrayList<ResourceLimitResponse>();
for (ResourceLimitVO limit : limits) {
for (ResourceLimit limit : limits) {
ResourceLimitResponse resourceLimitResponse = ApiResponseHelper.createResourceLimitResponse(limit);
resourceLimitResponse.setObjectName("resourcelimit");
limitResponses.add(resourceLimitResponse);
@ -104,4 +111,10 @@ public class ListResourceLimitsCmd extends BaseListCmd {
response.setResponseName(getName());
return response;
}
@Override
public Object execute() throws ServerApiException, InvalidParameterValueException, PermissionDeniedException, InsufficientAddressCapacityException, InsufficientCapacityException, ConcurrentOperationException{
List<ResourceLimitVO> result = _accountService.searchForLimits(this);
return result;
}
}

View File

@ -28,9 +28,16 @@ import com.cloud.api.ApiResponseHelper;
import com.cloud.api.BaseListCmd;
import com.cloud.api.Implementation;
import com.cloud.api.Parameter;
import com.cloud.api.ServerApiException;
import com.cloud.api.response.DomainRouterResponse;
import com.cloud.api.response.ListResponse;
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.vm.DomainRouter;
import com.cloud.vm.DomainRouterVO;
@Implementation(method="searchForRouters", description="List routers.")
public class ListRoutersCmd extends BaseListCmd {
@ -118,5 +125,11 @@ 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<DomainRouterVO> result = _mgr.searchForRouters(this);
return result;
}
}

Some files were not shown because too many files have changed in this diff Show More