api refactoring

This commit is contained in:
Alex Huang 2010-11-21 11:59:37 -08:00
parent 3efae818e2
commit 1e44925564
350 changed files with 6102 additions and 4383 deletions

View File

@ -178,6 +178,7 @@ import com.cloud.hypervisor.Hypervisor.HypervisorType;
import com.cloud.network.Networks.BroadcastDomainType;
import com.cloud.network.Networks.TrafficType;
import com.cloud.network.NetworkEnums.RouterPrivateIpStrategy;
import com.cloud.network.router.VirtualRouter;
import com.cloud.resource.ServerResource;
import com.cloud.resource.ServerResourceBase;
import com.cloud.storage.Storage;
@ -203,7 +204,6 @@ import com.cloud.utils.script.OutputInterpreter;
import com.cloud.utils.script.Script;
import com.cloud.vm.ConsoleProxyVO;
import com.cloud.vm.DiskProfile;
import com.cloud.vm.DomainRouter;
import com.cloud.vm.SecondaryStorageVmVO;
import com.cloud.vm.State;
import com.cloud.vm.VirtualMachine;
@ -869,7 +869,7 @@ public class LibvirtComputingResource extends ServerResourceBase implements Serv
}
protected synchronized String startDomainRouter(StartRouterCommand cmd) {
DomainRouter router = cmd.getRouter();
VirtualRouter router = cmd.getRouter();
List<InterfaceDef> nics = null;
try {
nics = createRouterVMNetworks(cmd);
@ -2087,7 +2087,7 @@ public class LibvirtComputingResource extends ServerResourceBase implements Serv
private Answer execute(StartRouterCommand cmd) {
final DomainRouter router = cmd.getRouter();
final VirtualRouter router = cmd.getRouter();
String result = null;
@ -3649,7 +3649,7 @@ public class LibvirtComputingResource extends ServerResourceBase implements Serv
private List<InterfaceDef> createRouterVMNetworks(StartRouterCommand cmd) throws InternalErrorException {
List<InterfaceDef> nics = new ArrayList<InterfaceDef>();
DomainRouter router = cmd.getRouter();
VirtualRouter router = cmd.getRouter();
String guestMac = router.getGuestMacAddress();
String privateMac = router.getPrivateMacAddress();
String pubMac = router.getPublicMacAddress();

View File

@ -3,5 +3,7 @@
<classpathentry kind="src" path="src"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry combineaccessrules="false" kind="src" path="/utils"/>
<classpathentry kind="lib" path="/thirdparty/log4j-1.2.15.jar"/>
<classpathentry kind="lib" path="/thirdparty/gson.jar"/>
<classpathentry kind="output" path="bin"/>
</classpath>

View File

@ -0,0 +1,36 @@
/**
* 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.alert;
import java.util.Date;
/**
* @author ahuang
*
*/
public interface Alert {
long getId();
short getType();
String getSubject();
Long getPodId();
long getDataCenterId();
int getSentCount();
Date getCreatedDate();
Date getLastSent();
Date getResolved();
}

View File

@ -18,8 +18,6 @@
package com.cloud.api;
import com.cloud.api.response.AsyncJobResponse;
import com.cloud.async.AsyncJobManager;
import com.cloud.async.AsyncJobVO;
/**
* A base command for supporting asynchronous API calls. When an API command is received, the command will be
@ -28,8 +26,7 @@ import com.cloud.async.AsyncJobVO;
* queryAsyncJobResult API command.
*/
public abstract class BaseAsyncCmd extends BaseCmd {
private AsyncJobManager _asyncJobMgr = null;
private AsyncJobVO _job = null;
private Object _job = null;
@Parameter(name="starteventid", type=CommandType.LONG)
private Long startEventId;
@ -64,23 +61,11 @@ public abstract class BaseAsyncCmd extends BaseCmd {
return response;
}
public AsyncJobManager getAsyncJobManager() {
return _asyncJobMgr;
}
public void setAsyncJobManager(AsyncJobManager mgr) {
_asyncJobMgr = mgr;
}
public void synchronizeCommand(String syncObjType, long syncObjId) {
_asyncJobMgr.syncAsyncJobExecution(_job, syncObjType, syncObjId);
_responseGenerator.synchronizeCommand(_job, syncObjType, syncObjId);
}
public AsyncJobVO getJob() {
return _job;
}
public void setJob(AsyncJobVO job) {
public void setJob(Object job) {
_job = job;
}
@ -91,5 +76,4 @@ public abstract class BaseAsyncCmd extends BaseCmd {
public void setStartEventId(Long startEventId) {
this.startEventId = startEventId;
}
}

View File

@ -1,6 +1,5 @@
package com.cloud.api;
import com.cloud.api.response.ApiResponseSerializer;
import com.cloud.api.response.CreateCmdResponse;
public abstract class BaseAsyncCreateCmd extends BaseAsyncCmd {
@ -22,6 +21,6 @@ public abstract class BaseAsyncCreateCmd extends BaseAsyncCmd {
response.setJobId(jobId);
response.setId(objectId);
response.setResponseName(getName());
return ApiResponseSerializer.toSerializedString(response, getResponseType());
return _responseGenerator.toSerializedString(response, getResponseType());
}
}

View File

@ -27,20 +27,20 @@ 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.consoleproxy.ConsoleProxyService;
import com.cloud.dao.EntityManager;
import com.cloud.exception.ConcurrentOperationException;
import com.cloud.exception.InsufficientCapacityException;
import com.cloud.exception.ResourceUnavailableException;
import com.cloud.network.DomainRouterService;
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.network.NetworkService;
import com.cloud.network.security.NetworkGroupService;
import com.cloud.resource.ResourceService;
import com.cloud.server.ManagementService;
import com.cloud.storage.StorageService;
import com.cloud.storage.snapshot.SnapshotService;
import com.cloud.template.TemplateService;
import com.cloud.user.Account;
import com.cloud.user.AccountService;
import com.cloud.utils.Pair;
@ -89,33 +89,35 @@ public abstract class BaseCmd {
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;
public static DomainRouterService _routerMgr;
public static ManagementService _mgr;
public static StorageService _storageMgr;
public static ResourceService _resourceService;
public static NetworkService _networkService;
public static TemplateService _templateService;
public static NetworkGroupService _networkGroupMgr;
public static SnapshotService _snapshotMgr;
public static ConsoleProxyService _consoleProxyMgr;
public static DomainRouterService _routerService;
public static ResponseGenerator _responseGenerator;
public static EntityManager _entityMgr;
static void setComponents(){
ComponentLocator locator = ComponentLocator.getLocator(ManagementServer.Name);
static void setComponents(ResponseGenerator generator){
ComponentLocator locator = ComponentLocator.getLocator(ManagementService.Name);
_mgr = (ManagementService)ComponentLocator.getComponent(ManagementService.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);
_routerMgr = locator.getManager(DomainRouterService.class);
_storageMgr = locator.getManager(StorageService.class);
_resourceService = locator.getManager(ResourceService.class);
_networkService = locator.getManager(NetworkService.class);
_templateService = locator.getManager(TemplateService.class);
_networkGroupMgr = locator.getManager(NetworkGroupService.class);
_snapshotMgr = locator.getManager(SnapshotService.class);
_consoleProxyMgr = locator.getManager(ConsoleProxyService.class);
_routerService = locator.getManager(DomainRouterService.class);
_entityMgr = locator.getManager(EntityManager.class);
_responseGenerator = generator;
}
public abstract void execute() throws ResourceUnavailableException, InsufficientCapacityException, ServerApiException, ConcurrentOperationException;
@ -334,14 +336,14 @@ public abstract class BaseCmd {
StringBuffer sb = new StringBuffer();
if (RESPONSE_TYPE_JSON.equalsIgnoreCase(responseType)) {
// JSON response
sb.append("{ \"" + getName() + "\" : { " + "\"@attributes\":{\"cloud-stack-version\":\""+ApiDBUtils.getVersion()+"\"},");
sb.append("{ \"" + getName() + "\" : { " + "\"@attributes\":{\"cloud-stack-version\":\""+_mgr.getVersion()+"\"},");
sb.append("\"errorcode\" : \"" + apiException.getErrorCode() + "\", \"description\" : \"" + apiException.getDescription() + "\" } }");
} else {
sb.append("<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>");
sb.append("<" + getName() + ">");
sb.append("<errorcode>" + apiException.getErrorCode() + "</errorcode>");
sb.append("<description>" + escapeXml(apiException.getDescription()) + "</description>");
sb.append("</" + getName() + " cloud-stack-version=\""+ApiDBUtils.getVersion()+ "\">");
sb.append("</" + getName() + " cloud-stack-version=\""+_mgr.getVersion()+ "\">");
}
return sb.toString();
}
@ -352,10 +354,10 @@ public abstract class BaseCmd {
// set up the return value with the name of the response
if (RESPONSE_TYPE_JSON.equalsIgnoreCase(responseType)) {
prefixSb.append("{ \"" + getName() + "\" : { \"@attributes\":{\"cloud-stack-version\":\""+ApiDBUtils.getVersion()+"\"},");
prefixSb.append("{ \"" + getName() + "\" : { \"@attributes\":{\"cloud-stack-version\":\""+ _mgr.getVersion()+"\"},");
} else {
prefixSb.append("<?xml version=\"1.0\" encoding=\"ISO-8859-1\"?>");
prefixSb.append("<" + getName() + " cloud-stack-version=\""+ApiDBUtils.getVersion()+ "\">");
prefixSb.append("<" + getName() + " cloud-stack-version=\""+_mgr.getVersion()+ "\">");
}
int i = 0;

View File

@ -6,8 +6,6 @@ import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import com.cloud.server.ManagementServer;
@Retention(RetentionPolicy.RUNTIME)
@Target({TYPE})
public @interface Implementation {

View File

@ -0,0 +1,202 @@
/**
* 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.api;
import java.text.DecimalFormat;
import java.util.List;
import com.cloud.api.commands.QueryAsyncJobResultCmd;
import com.cloud.api.response.AccountResponse;
import com.cloud.api.response.AsyncJobResponse;
import com.cloud.api.response.CapacityResponse;
import com.cloud.api.response.ClusterResponse;
import com.cloud.api.response.ConfigurationResponse;
import com.cloud.api.response.CreateCmdResponse;
import com.cloud.api.response.DiskOfferingResponse;
import com.cloud.api.response.DomainResponse;
import com.cloud.api.response.DomainRouterResponse;
import com.cloud.api.response.EventResponse;
import com.cloud.api.response.ExtractResponse;
import com.cloud.api.response.FirewallRuleResponse;
import com.cloud.api.response.HostResponse;
import com.cloud.api.response.IPAddressResponse;
import com.cloud.api.response.InstanceGroupResponse;
import com.cloud.api.response.IpForwardingRuleResponse;
import com.cloud.api.response.ListResponse;
import com.cloud.api.response.LoadBalancerResponse;
import com.cloud.api.response.NetworkGroupResponse;
import com.cloud.api.response.PodResponse;
import com.cloud.api.response.PreallocatedLunResponse;
import com.cloud.api.response.RemoteAccessVpnResponse;
import com.cloud.api.response.ResourceLimitResponse;
import com.cloud.api.response.ServiceOfferingResponse;
import com.cloud.api.response.SnapshotPolicyResponse;
import com.cloud.api.response.SnapshotResponse;
import com.cloud.api.response.StoragePoolResponse;
import com.cloud.api.response.SystemVmResponse;
import com.cloud.api.response.TemplatePermissionsResponse;
import com.cloud.api.response.TemplateResponse;
import com.cloud.api.response.UserResponse;
import com.cloud.api.response.UserVmResponse;
import com.cloud.api.response.VlanIpRangeResponse;
import com.cloud.api.response.VolumeResponse;
import com.cloud.api.response.VpnUsersResponse;
import com.cloud.api.response.ZoneResponse;
import com.cloud.async.AsyncJob;
import com.cloud.capacity.Capacity;
import com.cloud.configuration.Configuration;
import com.cloud.configuration.ResourceLimit;
import com.cloud.dc.DataCenter;
import com.cloud.dc.Pod;
import com.cloud.dc.Vlan;
import com.cloud.domain.Domain;
import com.cloud.event.Event;
import com.cloud.host.Host;
import com.cloud.network.IpAddress;
import com.cloud.network.LoadBalancer;
import com.cloud.network.RemoteAccessVpn;
import com.cloud.network.VpnUser;
import com.cloud.network.router.VirtualRouter;
import com.cloud.network.rules.FirewallRule;
import com.cloud.network.security.NetworkGroup;
import com.cloud.network.security.NetworkGroupRules;
import com.cloud.offering.DiskOffering;
import com.cloud.offering.ServiceOffering;
import com.cloud.org.Cluster;
import com.cloud.storage.Snapshot;
import com.cloud.storage.StoragePool;
import com.cloud.storage.Volume;
import com.cloud.storage.snapshot.SnapshotPolicy;
import com.cloud.template.VirtualMachineTemplate;
import com.cloud.user.Account;
import com.cloud.user.User;
import com.cloud.user.UserAccount;
import com.cloud.uservm.UserVm;
import com.cloud.vm.InstanceGroup;
import com.cloud.vm.VirtualMachine;
public interface ResponseGenerator {
UserResponse createUserResponse(UserAccount user);
AccountResponse createAccountResponse(Account account);
DomainResponse createDomainResponse(Domain domain);
DiskOfferingResponse createDiskOfferingResponse(DiskOffering offering);
ResourceLimitResponse createResourceLimitResponse(ResourceLimit limit);
ServiceOfferingResponse createServiceOfferingResponse(ServiceOffering offering);
ConfigurationResponse createConfigurationResponse(Configuration cfg);
SnapshotResponse createSnapshotResponse(Snapshot snapshot);
SnapshotPolicyResponse createSnapshotPolicyResponse(SnapshotPolicy policy);
UserVmResponse createUserVmResponse(UserVm userVm);
SystemVmResponse createSystemVmResponse(VirtualMachine systemVM);
DomainRouterResponse createDomainRouterResponse(VirtualRouter router);
HostResponse createHostResponse(Host host);
VlanIpRangeResponse createVlanIpRangeResponse(Vlan vlan);
IPAddressResponse createIPAddressResponse(IpAddress ipAddress);
LoadBalancerResponse createLoadBalancerResponse(LoadBalancer loadBalancer);
PodResponse createPodResponse(Pod pod);
ZoneResponse createZoneResponse(DataCenter dataCenter);
VolumeResponse createVolumeResponse(Volume volume);
InstanceGroupResponse createInstanceGroupResponse(InstanceGroup group);
PreallocatedLunResponse createPreallocatedLunResponse(Object preallocatedLun);
StoragePoolResponse createStoragePoolResponse(StoragePool pool);
ClusterResponse createClusterResponse(Cluster cluster);
FirewallRuleResponse createFirewallRuleResponse(FirewallRule fwRule);
IpForwardingRuleResponse createIpForwardingRuleResponse(FirewallRule fwRule);
UserVmResponse createUserVm2Response(UserVm userVm);
DomainRouterResponse createDomainRouter2Response(VirtualRouter router);
SystemVmResponse createSystemVm2Response(VirtualMachine systemVM);
void synchronizeCommand(Object job, String syncObjType, long syncObjId);
User findUserById(long userId);
UserVm findUserVmById(long vmId);
Volume findVolumeById(long volumeId);
Account findAccountByNameDomain(String accountName, long domainId);
VirtualMachineTemplate findTemplateById(long templateId);
VpnUsersResponse createVpnUserResponse(VpnUser user);
RemoteAccessVpnResponse createRemoteAccessVpnResponse(RemoteAccessVpn vpn);
void createTemplateResponse(List<TemplateResponse> responses, VirtualMachineTemplate template, boolean onlyReady, Long zoneId, boolean isAdmin,
Account account);
ListResponse<TemplateResponse> createTemplateResponse2(VirtualMachineTemplate template, Long zoneId);
ListResponse<TemplateResponse> createIsoResponses(VirtualMachineTemplate template, Long zoneId);
ListResponse<NetworkGroupResponse> createNetworkGroupResponses(List<? extends NetworkGroupRules> networkGroups);
NetworkGroupResponse createNetworkGroupResponse(NetworkGroup group);
ExtractResponse createExtractResponse(long uploadId, long id, long zoneId, long accountId, String mode);
TemplateResponse createTemplateResponse(VirtualMachineTemplate template, long destZoneId);
TemplateResponse createIsoResponse3(VirtualMachineTemplate iso, long destZoneId);
String toSerializedString(CreateCmdResponse response, String responseType);
AsyncJobResponse createAsyncJobResponse(AsyncJob job);
TemplateResponse createTemplateResponse(VirtualMachineTemplate template, Long snapshotId, long volumeId);
EventResponse createEventResponse(Event event);
ListResponse<TemplateResponse> createIsoResponse(List<? extends VirtualMachineTemplate> isos, Long zoneId, boolean onlyReady, boolean isAdmin,
Account account);
TemplateResponse createIsoResponse(VirtualMachineTemplate result);
List<CapacityResponse> createCapacityResponse(List<? extends Capacity> result, DecimalFormat format);
TemplatePermissionsResponse createTemplatePermissionsResponse(List<String> accountNames, long id, boolean isAdmin);
AsyncJobResponse queryJobResult(QueryAsyncJobResultCmd cmd);
}

View File

@ -23,7 +23,6 @@ import java.util.List;
import org.apache.log4j.Logger;
import com.cloud.api.ApiConstants;
import com.cloud.api.ApiResponseHelper;
import com.cloud.api.BaseCmd;
import com.cloud.api.Implementation;
import com.cloud.api.Parameter;
@ -31,7 +30,7 @@ import com.cloud.api.ServerApiException;
import com.cloud.api.response.HostResponse;
import com.cloud.api.response.ListResponse;
import com.cloud.exception.DiscoveryException;
import com.cloud.host.HostVO;
import com.cloud.host.Host;
@Implementation(description="Adds a new host.", responseObject=HostResponse.class)
public class AddHostCmd extends BaseCmd {
@ -109,12 +108,12 @@ public class AddHostCmd extends BaseCmd {
@Override
public void execute(){
try {
List<HostVO> result = _agentMgr.discoverHosts(this);
List<? extends Host> result = _resourceService.discoverHosts(this);
ListResponse<HostResponse> response = new ListResponse<HostResponse>();
List<HostResponse> hostResponses = new ArrayList<HostResponse>();
if (result != null) {
for (HostVO host : result) {
HostResponse hostResponse = ApiResponseHelper.createHostResponse(host);
for (Host host : result) {
HostResponse hostResponse = _responseGenerator.createHostResponse(host);
hostResponses.add(hostResponse);
}
} else {

View File

@ -23,14 +23,13 @@ import java.util.List;
import org.apache.log4j.Logger;
import com.cloud.api.ApiConstants;
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.HostResponse;
import com.cloud.exception.DiscoveryException;
import com.cloud.host.HostVO;
import com.cloud.host.Host;
@Implementation(description="Adds secondary storage.", responseObject=HostResponse.class)
public class AddSecondaryStorageCmd extends BaseCmd {
@ -71,12 +70,12 @@ public class AddSecondaryStorageCmd extends BaseCmd {
@Override
public void execute(){
try {
List<HostVO> result = _agentMgr.discoverHosts(this);
List<? extends Host> result = _resourceService.discoverHosts(this);
HostResponse hostResponse = null;
if (result != null && result.size() > 0) {
for (HostVO host : result) {
for (Host host : result) {
// There should only be one secondary storage host per add
hostResponse = ApiResponseHelper.createHostResponse(host);
hostResponse = _responseGenerator.createHostResponse(host);
hostResponse.setResponseName(getName());
hostResponse.setObjectName("secondarystorage");
this.setResponseObject(hostResponse);

View File

@ -20,17 +20,16 @@ package com.cloud.api.commands;
import org.apache.log4j.Logger;
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.VpnUsersResponse;
import com.cloud.domain.Domain;
import com.cloud.event.EventTypes;
import com.cloud.exception.AccountLimitException;
import com.cloud.exception.ConcurrentOperationException;
import com.cloud.network.VpnUserVO;
import com.cloud.network.VpnUser;
import com.cloud.user.Account;
import com.cloud.user.UserContext;
@ -88,16 +87,17 @@ public class AddVpnUserCmd extends BaseAsyncCmd {
/////////////// API Implementation///////////////////
/////////////////////////////////////////////////////
public String getName() {
@Override
public String getName() {
return s_name;
}
@Override
public long getAccountId() {
Account account = (Account)UserContext.current().getAccount();
Account account = UserContext.current().getAccount();
if ((account == null) || isAdmin(account.getType())) {
if ((domainId != null) && (accountName != null)) {
Account userAccount = ApiDBUtils.findAccountByNameDomain(accountName, domainId);
Account userAccount = _responseGenerator.findAccountByNameDomain(accountName, domainId);
if (userAccount != null) {
return userAccount.getId();
}
@ -126,17 +126,17 @@ public class AddVpnUserCmd extends BaseAsyncCmd {
@Override
public void execute(){
try {
VpnUserVO vpnUser = _networkMgr.addVpnUser(this);
VpnUser vpnUser = _networkService.addVpnUser(this);
if (vpnUser != null) {
VpnUsersResponse vpnResponse = new VpnUsersResponse();
vpnResponse.setId(vpnUser.getId());
vpnResponse.setUserName(vpnUser.getUsername());
vpnResponse.setAccountName(vpnUser.getAccountName());
Account accountTemp = ApiDBUtils.findAccountById(vpnUser.getAccountId());
Account accountTemp = _entityMgr.findById(Account.class, vpnUser.getAccountId());
if (accountTemp != null) {
vpnResponse.setDomainId(accountTemp.getDomainId());
vpnResponse.setDomainName(ApiDBUtils.findDomainById(accountTemp.getDomainId()).getName());
vpnResponse.setDomainName(_entityMgr.findById(Domain.class, accountTemp.getDomainId()).getName());
}
vpnResponse.setResponseName(getName());

View File

@ -22,7 +22,6 @@ import java.util.List;
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;
@ -31,7 +30,7 @@ import com.cloud.api.ServerApiException;
import com.cloud.api.response.SuccessResponse;
import com.cloud.event.EventTypes;
import com.cloud.exception.NetworkRuleConflictException;
import com.cloud.network.LoadBalancerVO;
import com.cloud.network.LoadBalancer;
import com.cloud.user.Account;
@Implementation(description="Assigns virtual machine or a list of virtual machines to a load balancer rule.", responseObject=SuccessResponse.class)
@ -80,7 +79,7 @@ public class AssignToLoadBalancerRuleCmd extends BaseAsyncCmd {
@Override
public long getAccountId() {
LoadBalancerVO lb = ApiDBUtils.findLoadBalancerById(getLoadBalancerId());
LoadBalancer lb = _entityMgr.findById(LoadBalancer.class, getLoadBalancerId());
if (lb == null) {
return Account.ACCOUNT_ID_SYSTEM; // bad id given, parent this command to SYSTEM so ERROR events are tracked
}
@ -100,7 +99,7 @@ public class AssignToLoadBalancerRuleCmd extends BaseAsyncCmd {
@Override
public void execute(){
try {
boolean result = _networkMgr.assignToLoadBalancer(this);
boolean result = _networkService.assignToLoadBalancer(this);
if (result) {
SuccessResponse response = new SuccessResponse(getName());
this.setResponseObject(response);

View File

@ -20,7 +20,6 @@ package com.cloud.api.commands;
import org.apache.log4j.Logger;
import com.cloud.api.ApiConstants;
import com.cloud.api.ApiResponseHelper;
import com.cloud.api.BaseCmd;
import com.cloud.api.Implementation;
import com.cloud.api.Parameter;
@ -29,7 +28,7 @@ import com.cloud.api.response.IPAddressResponse;
import com.cloud.exception.ConcurrentOperationException;
import com.cloud.exception.InsufficientAddressCapacityException;
import com.cloud.exception.ResourceAllocationException;
import com.cloud.network.IPAddressVO;
import com.cloud.network.IpAddress;
@Implementation(description="Acquires and associates a public IP to an account.", responseObject=IPAddressResponse.class)
public class AssociateIPAddrCmd extends BaseCmd {
@ -72,6 +71,7 @@ public class AssociateIPAddrCmd extends BaseCmd {
/////////////////////////////////////////////////////
@Override
public String getName() {
return s_name;
}
@ -83,9 +83,9 @@ public class AssociateIPAddrCmd extends BaseCmd {
@Override
public void execute(){
try {
IPAddressVO result = _networkMgr.associateIP(this);
IpAddress result = _networkService.associateIP(this);
if (result != null) {
IPAddressResponse ipResponse = ApiResponseHelper.createIPAddressResponse(result);
IPAddressResponse ipResponse = _responseGenerator.createIPAddressResponse(result);
ipResponse.setResponseName(getName());
this.setResponseObject(ipResponse);
} else {

View File

@ -20,8 +20,6 @@ package com.cloud.api.commands;
import org.apache.log4j.Logger;
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;
@ -29,7 +27,7 @@ import com.cloud.api.Parameter;
import com.cloud.api.ServerApiException;
import com.cloud.api.response.UserVmResponse;
import com.cloud.event.EventTypes;
import com.cloud.storage.VMTemplateVO;
import com.cloud.template.VirtualMachineTemplate;
import com.cloud.user.Account;
import com.cloud.uservm.UserVm;
@ -74,7 +72,7 @@ public class AttachIsoCmd extends BaseAsyncCmd {
@Override
public long getAccountId() {
VMTemplateVO iso = ApiDBUtils.findTemplateById(getId());
VirtualMachineTemplate iso = _responseGenerator.findTemplateById(getId());
if (iso == null) {
return Account.ACCOUNT_ID_SYSTEM; // bad id given, parent this command to SYSTEM so ERROR events are tracked
}
@ -93,11 +91,11 @@ public class AttachIsoCmd extends BaseAsyncCmd {
@Override
public void execute(){
boolean result = _templateMgr.attachIso(this);
boolean result = _templateService.attachIso(this);
if (result) {
UserVm userVm = ApiDBUtils.findUserVmById(virtualMachineId);
UserVm userVm = _responseGenerator.findUserVmById(virtualMachineId);
if (userVm != null) {
UserVmResponse response = ApiResponseHelper.createUserVmResponse(userVm);
UserVmResponse response = _responseGenerator.createUserVmResponse(userVm);
response.setResponseName(DeployVMCmd.getResultObjectName());
this.setResponseObject(response);
} else {

View File

@ -21,8 +21,6 @@ package com.cloud.api.commands;
import org.apache.log4j.Logger;
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;
@ -31,7 +29,6 @@ import com.cloud.api.ServerApiException;
import com.cloud.api.response.VolumeResponse;
import com.cloud.event.EventTypes;
import com.cloud.storage.Volume;
import com.cloud.storage.VolumeVO;
import com.cloud.user.Account;
@Implementation(description="Attaches a disk volume to a virtual machine.", responseObject=VolumeResponse.class)
@ -91,7 +88,7 @@ public class AttachVolumeCmd extends BaseAsyncCmd {
@Override
public long getAccountId() {
VolumeVO volume = ApiDBUtils.findVolumeById(getId());
Volume volume = _responseGenerator.findVolumeById(getId());
if (volume == null) {
return Account.ACCOUNT_ID_SYSTEM; // bad id given, parent this command to SYSTEM so ERROR events are tracked
}
@ -112,7 +109,7 @@ public class AttachVolumeCmd extends BaseAsyncCmd {
public void execute(){
Volume result = _userVmService.attachVolumeToVM(this);
if (result != null) {
VolumeResponse response = ApiResponseHelper.createVolumeResponse((VolumeVO)result);
VolumeResponse response = _responseGenerator.createVolumeResponse(result);
response.setResponseName(getName());
this.setResponseObject(response);
} else {

View File

@ -28,7 +28,6 @@ import java.util.Map;
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;
@ -37,7 +36,7 @@ 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.network.security.IngressRuleVO;
import com.cloud.network.security.IngressRule;
import com.cloud.user.Account;
import com.cloud.user.UserContext;
import com.cloud.utils.StringUtils;
@ -156,10 +155,10 @@ public class AuthorizeNetworkGroupIngressCmd extends BaseAsyncCmd {
@Override
public long getAccountId() {
Account account = (Account)UserContext.current().getAccount();
Account account = UserContext.current().getAccount();
if ((account == null) || isAdmin(account.getType())) {
if ((domainId != null) && (accountName != null)) {
Account userAccount = ApiDBUtils.findAccountByNameDomain(accountName, domainId);
Account userAccount = _responseGenerator.findAccountByNameDomain(accountName, domainId);
if (userAccount != null) {
return userAccount.getId();
}
@ -209,11 +208,11 @@ public class AuthorizeNetworkGroupIngressCmd extends BaseAsyncCmd {
@Override
public void execute(){
List<IngressRuleVO> ingressRules = _networkGroupMgr.authorizeNetworkGroupIngress(this);
List<? extends IngressRule> ingressRules = _networkGroupMgr.authorizeNetworkGroupIngress(this);
ListResponse<IngressRuleResponse> response = new ListResponse<IngressRuleResponse>();
if ((ingressRules != null) && !ingressRules.isEmpty()) {
List<IngressRuleResponse> responses = new ArrayList<IngressRuleResponse>();
for (IngressRuleVO ingressRule : ingressRules) {
for (IngressRule ingressRule : ingressRules) {
IngressRuleResponse ingressData = new IngressRuleResponse();
ingressData.setRuleId(ingressRule.getId());

View File

@ -21,7 +21,6 @@ package com.cloud.api.commands;
import org.apache.log4j.Logger;
import com.cloud.api.ApiConstants;
import com.cloud.api.ApiResponseHelper;
import com.cloud.api.BaseAsyncCmd;
import com.cloud.api.BaseCmd;
import com.cloud.api.Implementation;
@ -29,7 +28,7 @@ import com.cloud.api.Parameter;
import com.cloud.api.ServerApiException;
import com.cloud.api.response.HostResponse;
import com.cloud.event.EventTypes;
import com.cloud.host.HostVO;
import com.cloud.host.Host;
import com.cloud.user.Account;
import com.cloud.user.UserContext;
@ -91,9 +90,9 @@ public class CancelMaintenanceCmd extends BaseAsyncCmd {
@Override
public void execute(){
HostVO result = _agentMgr.cancelMaintenance(this);
Host result = _resourceService.cancelMaintenance(this);
if (result != null) {
HostResponse response = ApiResponseHelper.createHostResponse(result);
HostResponse response = _responseGenerator.createHostResponse(result);
response.setResponseName(getName());
this.setResponseObject(response);
} else {

View File

@ -21,7 +21,6 @@ package com.cloud.api.commands;
import org.apache.log4j.Logger;
import com.cloud.api.ApiConstants;
import com.cloud.api.ApiResponseHelper;
import com.cloud.api.BaseAsyncCmd;
import com.cloud.api.BaseCmd;
import com.cloud.api.Implementation;
@ -29,7 +28,7 @@ import com.cloud.api.Parameter;
import com.cloud.api.ServerApiException;
import com.cloud.api.response.StoragePoolResponse;
import com.cloud.event.EventTypes;
import com.cloud.storage.StoragePoolVO;
import com.cloud.storage.StoragePool;
import com.cloud.user.Account;
import com.cloud.user.UserContext;
@ -71,7 +70,7 @@ public class CancelPrimaryStorageMaintenanceCmd extends BaseAsyncCmd {
@Override
public long getAccountId() {
Account account = (Account)UserContext.current().getAccount();
Account account = UserContext.current().getAccount();
if (account != null) {
return account.getId();
}
@ -91,9 +90,9 @@ public class CancelPrimaryStorageMaintenanceCmd extends BaseAsyncCmd {
@Override
public void execute(){
StoragePoolVO result = _storageMgr.cancelPrimaryStorageForMaintenance(this);
StoragePool result = _storageMgr.cancelPrimaryStorageForMaintenance(this);
if (result != null) {
StoragePoolResponse response = ApiResponseHelper.createStoragePoolResponse(result);
StoragePoolResponse response = _responseGenerator.createStoragePoolResponse(result);
response.setResponseName(getName());
this.setResponseObject(response);
} else {

View File

@ -0,0 +1,114 @@
/**
* 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.api.commands;
import org.apache.log4j.Logger;
import com.cloud.api.ApiConstants;
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.TemplateResponse;
import com.cloud.event.EventTypes;
import com.cloud.exception.StorageUnavailableException;
import com.cloud.template.VirtualMachineTemplate;
import com.cloud.user.Account;
@Implementation(description="Copies an ISO file.", responseObject=TemplateResponse.class)
public class CopyIsoCmd extends BaseAsyncCmd {
public static final Logger s_logger = Logger.getLogger(CopyIsoCmd.class.getName());
private static final String s_name = "copyisoresponse";
/////////////////////////////////////////////////////
//////////////// API parameters /////////////////////
/////////////////////////////////////////////////////
@Parameter(name="destzoneid", type=CommandType.LONG, required=true, description="the ID of the destination zone to which the ISO file will be copied")
private Long destZoneId;
@Parameter(name=ApiConstants.ID, type=CommandType.LONG, required=true, description="the ID of the ISO file")
private Long id;
@Parameter(name="sourcezoneid", type=CommandType.LONG, required=true, description="the ID of the source zone from which the ISO file will be copied")
private Long sourceZoneId;
/////////////////////////////////////////////////////
/////////////////// Accessors ///////////////////////
/////////////////////////////////////////////////////
public Long getDestinationZoneId() {
return destZoneId;
}
public Long getId() {
return id;
}
public Long getSourceZoneId() {
return sourceZoneId;
}
/////////////////////////////////////////////////////
/////////////// API Implementation///////////////////
/////////////////////////////////////////////////////
@Override
public String getName() {
return s_name;
}
public static String getStaticName() {
return s_name;
}
@Override
public long getAccountId() {
VirtualMachineTemplate iso = _entityMgr.findById(VirtualMachineTemplate.class, getId());
if (iso != null) {
return iso.getAccountId();
}
// bad id given, parent this command to SYSTEM so ERROR events are tracked
return Account.ACCOUNT_ID_SYSTEM;
}
@Override
public String getEventType() {
return EventTypes.EVENT_ISO_COPY;
}
@Override
public String getEventDescription() {
return "copying ISO: " + getId() + " from zone: " + getSourceZoneId() + " to zone: " + getDestinationZoneId();
}
@Override
public void execute(){
try {
VirtualMachineTemplate iso = _templateService.copyIso(this);
TemplateResponse isoResponse = _responseGenerator.createIsoResponse3(iso, destZoneId);
isoResponse.setResponseName(getName());
this.setResponseObject(isoResponse);
} catch (StorageUnavailableException ex) {
throw new ServerApiException(BaseCmd.RESOURCE_UNAVAILABLE_ERROR, ex.getMessage());
}
}
}

View File

@ -0,0 +1,117 @@
/**
* 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.api.commands;
import org.apache.log4j.Logger;
import com.cloud.api.ApiConstants;
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.TemplateResponse;
import com.cloud.event.EventTypes;
import com.cloud.exception.StorageUnavailableException;
import com.cloud.template.VirtualMachineTemplate;
import com.cloud.user.Account;
@Implementation(description="Copies a template from one zone to another.", responseObject=TemplateResponse.class)
public class CopyTemplateCmd extends BaseAsyncCmd {
public static final Logger s_logger = Logger.getLogger(CopyTemplateCmd.class.getName());
private static final String s_name = "copytemplateresponse";
/////////////////////////////////////////////////////
//////////////// API parameters /////////////////////
/////////////////////////////////////////////////////
@Parameter(name=ApiConstants.DESTINATION_ZONE_ID, type=CommandType.LONG, required=true, description="ID of the zone the template is being copied to.")
private Long destZoneId;
@Parameter(name=ApiConstants.ID, type=CommandType.LONG, required=true, description="Template ID.")
private Long id;
@Parameter(name=ApiConstants.SOURCE_ZONE_ID, type=CommandType.LONG, required=true, description="ID of the zone the template is currently hosted on.")
private Long sourceZoneId;
/////////////////////////////////////////////////////
/////////////////// Accessors ///////////////////////
/////////////////////////////////////////////////////
public Long getDestinationZoneId() {
return destZoneId;
}
public Long getId() {
return id;
}
public Long getSourceZoneId() {
return sourceZoneId;
}
/////////////////////////////////////////////////////
/////////////// API Implementation///////////////////
/////////////////////////////////////////////////////
@Override
public String getName() {
return s_name;
}
public static String getStaticName() {
return s_name;
}
@Override
public long getAccountId() {
VirtualMachineTemplate template = _entityMgr.findById(VirtualMachineTemplate.class, getId());
if (template != null) {
return template.getAccountId();
}
// bad id given, parent this command to SYSTEM so ERROR events are tracked
return Account.ACCOUNT_ID_SYSTEM;
}
@Override
public String getEventType() {
return EventTypes.EVENT_TEMPLATE_COPY;
}
@Override
public String getEventDescription() {
return "copying template: " + getId() + " from zone: " + getSourceZoneId() + " to zone: " + getDestinationZoneId();
}
@Override
public void execute(){
try {
VirtualMachineTemplate template = _templateService.copyTemplate(this);
TemplateResponse templateResponse = _responseGenerator.createTemplateResponse(template, destZoneId);
templateResponse.setResponseName(getName());
this.setResponseObject(templateResponse);
} catch (StorageUnavailableException ex) {
throw new ServerApiException(BaseCmd.RESOURCE_UNAVAILABLE_ERROR, ex.getMessage());
}
}
}

View File

@ -20,14 +20,12 @@ package com.cloud.api.commands;
import org.apache.log4j.Logger;
import com.cloud.api.ApiConstants;
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.ConfigurationResponse;
import com.cloud.configuration.Configuration;
import com.cloud.configuration.ConfigurationVO;
@Implementation(description="Adds configuration value", responseObject=ConfigurationResponse.class)
public class CreateCfgCmd extends BaseCmd {
@ -99,7 +97,7 @@ public class CreateCfgCmd extends BaseCmd {
public void execute(){
Configuration cfg = _configService.addConfig(this);
if (cfg != null) {
ConfigurationResponse response = ApiResponseHelper.createConfigurationResponse((ConfigurationVO)cfg);
ConfigurationResponse response = _responseGenerator.createConfigurationResponse(cfg);
response.setResponseName(getName());
this.setResponseObject(response);
} else {

View File

@ -20,14 +20,12 @@ package com.cloud.api.commands;
import org.apache.log4j.Logger;
import com.cloud.api.ApiConstants;
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.DiskOfferingResponse;
import com.cloud.offering.DiskOffering;
import com.cloud.storage.DiskOfferingVO;
@Implementation(description="Creates a disk offering.", responseObject=DiskOfferingResponse.class)
public class CreateDiskOfferingCmd extends BaseCmd {
@ -90,7 +88,7 @@ public class CreateDiskOfferingCmd extends BaseCmd {
public void execute(){
DiskOffering offering = _configService.createDiskOffering(this);
if (offering != null) {
DiskOfferingResponse response = ApiResponseHelper.createDiskOfferingResponse((DiskOfferingVO)offering);
DiskOfferingResponse response = _responseGenerator.createDiskOfferingResponse(offering);
response.setResponseName(getName());
this.setResponseObject(response);
} else {

View File

@ -20,13 +20,12 @@ package com.cloud.api.commands;
import org.apache.log4j.Logger;
import com.cloud.api.ApiConstants;
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.DomainResponse;
import com.cloud.domain.DomainVO;
import com.cloud.domain.Domain;
@Implementation(description="Creates a domain", responseObject=DomainResponse.class)
public class CreateDomainCmd extends BaseCmd {
@ -69,9 +68,9 @@ public class CreateDomainCmd extends BaseCmd {
@Override
public void execute(){
DomainVO domain = _mgr.createDomain(this);
Domain domain = _mgr.createDomain(this);
if (domain != null) {
DomainResponse response = ApiResponseHelper.createDomainResponse(domain);
DomainResponse response = _responseGenerator.createDomainResponse(domain);
response.setResponseName(getName());
this.setResponseObject(response);
} else {

View File

@ -21,7 +21,6 @@ package com.cloud.api.commands;
import org.apache.log4j.Logger;
import com.cloud.api.ApiConstants;
import com.cloud.api.ApiResponseHelper;
import com.cloud.api.BaseAsyncCreateCmd;
import com.cloud.api.BaseCmd;
import com.cloud.api.Implementation;
@ -29,7 +28,7 @@ import com.cloud.api.Parameter;
import com.cloud.api.ServerApiException;
import com.cloud.api.response.FirewallRuleResponse;
import com.cloud.event.EventTypes;
import com.cloud.network.FirewallRuleVO;
import com.cloud.network.rules.FirewallRule;
import com.cloud.user.Account;
@Implementation(description="Creates an ip forwarding rule", responseObject=FirewallRuleResponse.class)
@ -73,9 +72,9 @@ public class CreateIpForwardingRuleCmd extends BaseAsyncCreateCmd {
@Override
public void execute(){
FirewallRuleVO result = _networkMgr.createIpForwardingRuleOnDomr(this.getId());
FirewallRule result = _networkService.createIpForwardingRuleOnDomr(this.getId());
if (result != null) {
FirewallRuleResponse fwResponse = ApiResponseHelper.createFirewallRuleResponse(result);
FirewallRuleResponse fwResponse = _responseGenerator.createFirewallRuleResponse(result);
fwResponse.setResponseName(getName());
this.setResponseObject(fwResponse);
} else {
@ -86,7 +85,7 @@ public class CreateIpForwardingRuleCmd extends BaseAsyncCreateCmd {
@Override
public void callCreate(){
FirewallRuleVO rule = _networkMgr.createIpForwardingRuleInDb(ipAddress,virtualMachineId);
FirewallRule rule = _networkService.createIpForwardingRuleInDb(ipAddress,virtualMachineId);
if (rule != null){
this.setId(rule.getId());
} else {

View File

@ -21,13 +21,12 @@ package com.cloud.api.commands;
import org.apache.log4j.Logger;
import com.cloud.api.ApiConstants;
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.network.LoadBalancerVO;
import com.cloud.network.LoadBalancer;
@Implementation(description="Creates a load balancer rule", responseObject=LoadBalancerResponse.class)
public class CreateLoadBalancerRuleCmd extends BaseCmd {
@ -91,15 +90,16 @@ public class CreateLoadBalancerRuleCmd extends BaseCmd {
/////////////// API Implementation///////////////////
/////////////////////////////////////////////////////
@Override
public String getName() {
return s_name;
}
@Override
public void execute(){
LoadBalancerVO result = _networkMgr.createLoadBalancerRule(this);
LoadBalancer result = _networkService.createLoadBalancerRule(this);
if (result != null) {
LoadBalancerResponse response = ApiResponseHelper.createLoadBalancerResponse(result);
LoadBalancerResponse response = _responseGenerator.createLoadBalancerResponse(result);
response.setResponseName(getName());
this.setResponseObject(response);
} else {

View File

@ -20,13 +20,12 @@ package com.cloud.api.commands;
import org.apache.log4j.Logger;
import com.cloud.api.ApiConstants;
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.network.security.NetworkGroupVO;
import com.cloud.network.security.NetworkGroup;
//TODO - add description to implementation
@Implementation(responseObject=NetworkGroupResponse.class)
@ -77,24 +76,17 @@ public class CreateNetworkGroupCmd extends BaseCmd {
/////////////// API Implementation///////////////////
/////////////////////////////////////////////////////
@Override
public String getName() {
return s_name;
}
@Override
public void execute(){
NetworkGroupVO group = _networkGroupMgr.createNetworkGroup(this);
NetworkGroup group = _networkGroupMgr.createNetworkGroup(this);
if (group != null) {
NetworkGroupResponse response = new NetworkGroupResponse();
response.setAccountName(group.getAccountName());
response.setDescription(group.getDescription());
response.setDomainId(group.getDomainId());
response.setDomainName(ApiDBUtils.findDomainById(group.getDomainId()).getName());
response.setId(group.getId());
response.setName(group.getName());
NetworkGroupResponse response = _responseGenerator.createNetworkGroupResponse(group);
response.setResponseName(getName());
response.setObjectName("securitygroup");
this.setResponseObject(response);
} else {
throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to create network group");

View File

@ -21,13 +21,11 @@ package com.cloud.api.commands;
import org.apache.log4j.Logger;
import com.cloud.api.ApiConstants;
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.dc.HostPodVO;
import com.cloud.dc.Pod;
@Implementation(description="Creates a new Pod.", responseObject=PodResponse.class)
@ -92,6 +90,7 @@ public class CreatePodCmd extends BaseCmd {
/////////////// API Implementation///////////////////
/////////////////////////////////////////////////////
@Override
public String getName() {
return s_name;
}
@ -100,7 +99,7 @@ public class CreatePodCmd extends BaseCmd {
public void execute(){
Pod result = _configService.createPod(this);
if (result != null) {
PodResponse response = ApiResponseHelper.createPodResponse((HostPodVO)result);
PodResponse response = _responseGenerator.createPodResponse(result);
response.setResponseName(getName());
this.setResponseObject(response);
} else {

View File

@ -21,14 +21,13 @@ package com.cloud.api.commands;
import org.apache.log4j.Logger;
import com.cloud.api.ApiConstants;
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.FirewallRuleResponse;
import com.cloud.exception.NetworkRuleConflictException;
import com.cloud.network.FirewallRuleVO;
import com.cloud.network.rules.FirewallRule;
@Implementation(description="Creates a port forwarding rule", responseObject=FirewallRuleResponse.class)
public class CreatePortForwardingRuleCmd extends BaseCmd {
@ -93,9 +92,9 @@ public class CreatePortForwardingRuleCmd extends BaseCmd {
@Override
public void execute(){
try {
FirewallRuleVO result = _networkMgr.createPortForwardingRule(this);
FirewallRule result = _networkService.createPortForwardingRule(this);
if (result != null) {
FirewallRuleResponse fwResponse = ApiResponseHelper.createFirewallRuleResponse(result);
FirewallRuleResponse fwResponse = _responseGenerator.createFirewallRuleResponse(result);
fwResponse.setResponseName(getName());
this.setResponseObject(fwResponse);
} else {

View File

@ -20,17 +20,17 @@ package com.cloud.api.commands;
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.domain.Domain;
import com.cloud.event.EventTypes;
import com.cloud.exception.ConcurrentOperationException;
import com.cloud.exception.ResourceUnavailableException;
import com.cloud.network.RemoteAccessVpnVO;
import com.cloud.network.RemoteAccessVpn;
import com.cloud.user.Account;
import com.cloud.user.UserContext;
@ -99,16 +99,17 @@ public class CreateRemoteAccessVpnCmd extends BaseAsyncCreateCmd {
public String getName() {
@Override
public String getName() {
return s_name;
}
@Override
public long getAccountId() {
Account account = (Account)UserContext.current().getAccount();
Account account = UserContext.current().getAccount();
if ((account == null) || isAdmin(account.getType())) {
if ((domainId != null) && (accountName != null)) {
Account userAccount = ApiDBUtils.findAccountByNameDomain(accountName, domainId);
Account userAccount = _responseGenerator.findAccountByNameDomain(accountName, domainId);
if (userAccount != null) {
return userAccount.getId();
}
@ -135,7 +136,7 @@ public class CreateRemoteAccessVpnCmd extends BaseAsyncCreateCmd {
@Override
public void callCreate(){
try {
RemoteAccessVpnVO vpn = _networkMgr.createRemoteAccessVpn(this);
RemoteAccessVpn vpn = _networkService.createRemoteAccessVpn(this);
if (vpn != null) {
this.setId(vpn.getId());
} else {
@ -149,7 +150,7 @@ public class CreateRemoteAccessVpnCmd extends BaseAsyncCreateCmd {
@Override
public void execute(){
try {
RemoteAccessVpnVO result = _networkMgr.startRemoteAccessVpn(this);
RemoteAccessVpn result = _networkService.startRemoteAccessVpn(this);
if (result != null) {
RemoteAccessVpnResponse response = new RemoteAccessVpnResponse();
response.setId(result.getId());
@ -157,7 +158,7 @@ public class CreateRemoteAccessVpnCmd extends BaseAsyncCreateCmd {
response.setIpRange(result.getIpRange());
response.setAccountName(result.getAccountName());
response.setDomainId(result.getDomainId());
response.setDomainName(ApiDBUtils.findDomainById(result.getDomainId()).getName());
response.setDomainName(_entityMgr.findById(Domain.class, result.getDomainId()).getName());
response.setObjectName("remoteaccessvpn");
response.setResponseName(getName());
response.setPresharedKey(result.getIpsecPresharedKey());

View File

@ -21,14 +21,12 @@ package com.cloud.api.commands;
import org.apache.log4j.Logger;
import com.cloud.api.ApiConstants;
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.offering.ServiceOffering;
import com.cloud.service.ServiceOfferingVO;
@Implementation(description="Creates a service offering.", responseObject=ServiceOfferingResponse.class)
public class CreateServiceOfferingCmd extends BaseCmd {
@ -119,7 +117,7 @@ public class CreateServiceOfferingCmd extends BaseCmd {
public void execute(){
ServiceOffering result = _configService.createServiceOffering(this);
if (result != null) {
ServiceOfferingResponse response = ApiResponseHelper.createServiceOfferingResponse((ServiceOfferingVO)result);
ServiceOfferingResponse response = _responseGenerator.createServiceOfferingResponse(result);
response.setResponseName(getName());
this.setResponseObject(response);
} else {

View File

@ -21,8 +21,6 @@ package com.cloud.api.commands;
import org.apache.log4j.Logger;
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;
@ -31,8 +29,8 @@ import com.cloud.api.ServerApiException;
import com.cloud.api.response.SnapshotResponse;
import com.cloud.event.EventTypes;
import com.cloud.exception.ResourceAllocationException;
import com.cloud.storage.SnapshotVO;
import com.cloud.storage.VolumeVO;
import com.cloud.storage.Snapshot;
import com.cloud.storage.Volume;
import com.cloud.user.Account;
@Implementation(description="Creates an instant snapshot of a volume.", responseObject=SnapshotResponse.class)
@ -84,7 +82,7 @@ public class CreateSnapshotCmd extends BaseAsyncCmd {
@Override
public long getAccountId() {
VolumeVO volume = ApiDBUtils.findVolumeById(getVolumeId());
Volume volume = _entityMgr.findById(Volume.class, getVolumeId());
if (volume != null) {
return volume.getAccountId();
}
@ -106,9 +104,9 @@ public class CreateSnapshotCmd extends BaseAsyncCmd {
@Override
public void execute(){
try {
SnapshotVO snapshot = _snapshotMgr.createSnapshot(this);
Snapshot snapshot = _snapshotMgr.createSnapshot(this);
if (snapshot != null) {
SnapshotResponse response = ApiResponseHelper.createSnapshotResponse(snapshot);
SnapshotResponse response = _responseGenerator.createSnapshotResponse(snapshot);
response.setResponseName(getName());
this.setResponseObject(response);
} else {

View File

@ -20,18 +20,18 @@ package com.cloud.api.commands;
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.domain.Domain;
import com.cloud.event.EventTypes;
import com.cloud.exception.ResourceAllocationException;
import com.cloud.storage.Snapshot.SnapshotType;
import com.cloud.storage.SnapshotVO;
import com.cloud.storage.VolumeVO;
import com.cloud.storage.Snapshot;
import com.cloud.storage.Snapshot.Type;
import com.cloud.storage.Volume;
import com.cloud.user.Account;
@Implementation(description="Creates an instant snapshot of a volume.", responseObject=SnapshotResponse.class)
@ -76,7 +76,7 @@ public class CreateSnapshotInternalCmd extends BaseAsyncCmd {
@Override
public long getAccountId() {
VolumeVO volume = ApiDBUtils.findVolumeById(getVolumeId());
Volume volume = _entityMgr.findById(Volume.class, getVolumeId());
if (volume != null) {
return volume.getAccountId();
}
@ -98,20 +98,20 @@ public class CreateSnapshotInternalCmd extends BaseAsyncCmd {
@Override
public void execute(){
try {
SnapshotVO snapshot = _snapshotMgr.createSnapshotInternal(this);
Snapshot snapshot = _snapshotMgr.createSnapshotInternal(this);
if (snapshot != null) {
SnapshotResponse response = new SnapshotResponse();
response.setId(snapshot.getId());
Account account = ApiDBUtils.findAccountById(snapshot.getAccountId());
Account account = _entityMgr.findById(Account.class, snapshot.getAccountId());
if (account != null) {
response.setAccountName(account.getAccountName());
response.setDomainId(account.getDomainId());
response.setDomainName(ApiDBUtils.findDomainById(account.getDomainId()).getName());
response.setDomainName(_entityMgr.findById(Domain.class, account.getDomainId()).getName());
}
VolumeVO volume = ApiDBUtils.findVolumeById(snapshot.getVolumeId());
String snapshotTypeStr = SnapshotType.values()[snapshot.getSnapshotType()].name();
Volume volume = _entityMgr.findById(Volume.class, snapshot.getVolumeId());
String snapshotTypeStr = Type.values()[snapshot.getSnapshotType()].name();
response.setSnapshotType(snapshotTypeStr);
response.setVolumeId(snapshot.getVolumeId());
response.setVolumeName(volume.getName());

View File

@ -21,13 +21,12 @@ package com.cloud.api.commands;
import org.apache.log4j.Logger;
import com.cloud.api.ApiConstants;
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.storage.SnapshotPolicyVO;
import com.cloud.storage.snapshot.SnapshotPolicy;
@Implementation(description="Creates a snapshot policy for the account.", responseObject=SnapshotPolicyResponse.class)
public class CreateSnapshotPolicyCmd extends BaseCmd {
@ -110,9 +109,9 @@ public class CreateSnapshotPolicyCmd extends BaseCmd {
@Override
public void execute(){
SnapshotPolicyVO result = _snapshotMgr.createPolicy(this);
SnapshotPolicy result = _snapshotMgr.createPolicy(this);
if (result != null) {
SnapshotPolicyResponse response = ApiResponseHelper.createSnapshotPolicyResponse(result);
SnapshotPolicyResponse response = _responseGenerator.createSnapshotPolicyResponse(result);
response.setResponseName(getName());
this.setResponseObject(response);
} else {

View File

@ -24,7 +24,6 @@ import java.util.Map;
import org.apache.log4j.Logger;
import com.cloud.api.ApiConstants;
import com.cloud.api.ApiResponseHelper;
import com.cloud.api.BaseCmd;
import com.cloud.api.Implementation;
import com.cloud.api.Parameter;
@ -32,7 +31,7 @@ import com.cloud.api.ServerApiException;
import com.cloud.api.response.StoragePoolResponse;
import com.cloud.exception.ResourceAllocationException;
import com.cloud.exception.ResourceInUseException;
import com.cloud.storage.StoragePoolVO;
import com.cloud.storage.StoragePool;
@SuppressWarnings("rawtypes")
@Implementation(description="Creates a storage pool.", responseObject=StoragePoolResponse.class)
@ -110,9 +109,9 @@ public class CreateStoragePoolCmd extends BaseCmd {
@Override
public void execute(){
try {
StoragePoolVO result = _storageMgr.createPool(this);
StoragePool result = _storageMgr.createPool(this);
if (result != null) {
StoragePoolResponse response = ApiResponseHelper.createStoragePoolResponse(result);
StoragePoolResponse response = _responseGenerator.createStoragePoolResponse(result);
response.setResponseName(getName());
this.setResponseObject(response);
} else {

View File

@ -21,7 +21,6 @@ package com.cloud.api.commands;
import org.apache.log4j.Logger;
import com.cloud.api.ApiConstants;
import com.cloud.api.ApiDBUtils;
import com.cloud.api.BaseAsyncCreateCmd;
import com.cloud.api.BaseCmd;
import com.cloud.api.Implementation;
@ -29,14 +28,10 @@ import com.cloud.api.Parameter;
import com.cloud.api.ServerApiException;
import com.cloud.api.response.StoragePoolResponse;
import com.cloud.api.response.TemplateResponse;
import com.cloud.dc.DataCenterVO;
import com.cloud.event.EventTypes;
import com.cloud.storage.GuestOS;
import com.cloud.storage.Snapshot;
import com.cloud.storage.VMTemplateHostVO;
import com.cloud.storage.VMTemplateStorageResourceAssoc.Status;
import com.cloud.storage.VMTemplateVO;
import com.cloud.storage.VolumeVO;
import com.cloud.storage.Volume;
import com.cloud.template.VirtualMachineTemplate;
import com.cloud.user.Account;
@Implementation(responseObject=StoragePoolResponse.class, description="Creates a template of a virtual machine. " +
@ -142,12 +137,12 @@ public class CreateTemplateCmd extends BaseAsyncCreateCmd {
Long volumeId = getVolumeId();
Long snapshotId = getSnapshotId();
if (volumeId != null) {
VolumeVO volume = ApiDBUtils.findVolumeById(volumeId);
Volume volume = _entityMgr.findById(Volume.class, volumeId);
if (volume != null) {
return volume.getAccountId();
}
} else {
Snapshot snapshot = ApiDBUtils.findSnapshotById(snapshotId);
Snapshot snapshot = _entityMgr.findById(Snapshot.class, snapshotId);
if (snapshot != null) {
return snapshot.getAccountId();
}
@ -169,7 +164,7 @@ public class CreateTemplateCmd extends BaseAsyncCreateCmd {
@Override
public void callCreate(){
VMTemplateVO template = _userVmService.createPrivateTemplateRecord(this);
VirtualMachineTemplate template = _userVmService.createPrivateTemplateRecord(this);
if (template != null){
this.setId(template.getId());
} else {
@ -179,51 +174,9 @@ public class CreateTemplateCmd extends BaseAsyncCreateCmd {
@Override
public void execute(){
VMTemplateVO template = _userVmService.createPrivateTemplate(this);
VirtualMachineTemplate template = _userVmService.createPrivateTemplate(this);
if (template != null) {
TemplateResponse response = new TemplateResponse();
response.setId(template.getId());
response.setName(template.getName());
response.setDisplayText(template.getDisplayText());
response.setPublic(template.isPublicTemplate());
response.setPasswordEnabled(template.getEnablePassword());
response.setCrossZones(template.isCrossZones());
VolumeVO volume = null;
if (snapshotId != null) {
Snapshot snapshot = ApiDBUtils.findSnapshotById(snapshotId);
volume = ApiDBUtils.findVolumeById(snapshot.getVolumeId());
} else {
volume = ApiDBUtils.findVolumeById(volumeId);
}
VMTemplateHostVO templateHostRef = ApiDBUtils.findTemplateHostRef(template.getId(), volume.getDataCenterId());
response.setCreated(templateHostRef.getCreated());
response.setReady(templateHostRef != null && templateHostRef.getDownloadState() == Status.DOWNLOADED);
GuestOS os = ApiDBUtils.findGuestOSById(template.getGuestOSId());
if (os != null) {
response.setOsTypeId(os.getId());
response.setOsTypeName(os.getDisplayName());
} else {
response.setOsTypeId(-1L);
response.setOsTypeName("");
}
Account owner = ApiDBUtils.findAccountById(template.getAccountId());
if (owner != null) {
response.setAccount(owner.getAccountName());
response.setDomainId(owner.getDomainId());
response.setDomainName(ApiDBUtils.findDomainById(owner.getDomainId()).getName());
}
DataCenterVO zone = ApiDBUtils.findZoneById(volume.getDataCenterId());
if (zone != null) {
response.setZoneId(zone.getId());
response.setZoneName(zone.getName());
}
response.setObjectName("template");
TemplateResponse response = _responseGenerator.createTemplateResponse(template, snapshotId, volumeId);
response.setResponseName(getName());
this.setResponseObject(response);

View File

@ -21,7 +21,6 @@ package com.cloud.api.commands;
import org.apache.log4j.Logger;
import com.cloud.api.ApiConstants;
import com.cloud.api.ApiResponseHelper;
import com.cloud.api.BaseCmd;
import com.cloud.api.Implementation;
import com.cloud.api.Parameter;
@ -126,7 +125,7 @@ public class CreateUserCmd extends BaseCmd {
public void execute(){
UserAccount user = _accountService.createUser(this);
if (user != null) {
UserResponse response = ApiResponseHelper.createUserResponse(user);
UserResponse response = _responseGenerator.createUserResponse(user);
response.setResponseName(getName());
this.setResponseObject(response);
} else {

View File

@ -20,13 +20,12 @@ package com.cloud.api.commands;
import org.apache.log4j.Logger;
import com.cloud.api.ApiConstants;
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.vm.InstanceGroupVO;
import com.cloud.vm.InstanceGroup;
@Implementation(description="Creates a vm group", responseObject=InstanceGroupResponse.class)
public class CreateVMGroupCmd extends BaseCmd{
@ -74,9 +73,9 @@ public class CreateVMGroupCmd extends BaseCmd{
@Override
public void execute(){
InstanceGroupVO result = _userVmService.createVmGroup(this);
InstanceGroup result = _userVmService.createVmGroup(this);
if (result != null) {
InstanceGroupResponse response = ApiResponseHelper.createInstanceGroupResponse(result);
InstanceGroupResponse response = _responseGenerator.createInstanceGroupResponse(result);
response.setResponseName(getName());
this.setResponseObject(response);
} else {

View File

@ -21,14 +21,12 @@ package com.cloud.api.commands;
import org.apache.log4j.Logger;
import com.cloud.api.ApiConstants;
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.dc.Vlan;
import com.cloud.dc.VlanVO;
import com.cloud.exception.ConcurrentOperationException;
import com.cloud.exception.InsufficientCapacityException;
@ -131,7 +129,7 @@ public class CreateVlanIpRangeCmd extends BaseCmd {
try {
Vlan result = _configService.createVlanAndPublicIpRange(this);
if (result != null) {
VlanIpRangeResponse response = ApiResponseHelper.createVlanIpRangeResponse((VlanVO)result);
VlanIpRangeResponse response = _responseGenerator.createVlanIpRangeResponse(result);
response.setResponseName(getName());
this.setResponseObject(response);
}else {

View File

@ -21,8 +21,6 @@ package com.cloud.api.commands;
import org.apache.log4j.Logger;
import com.cloud.api.ApiConstants;
import com.cloud.api.ApiDBUtils;
import com.cloud.api.ApiResponseHelper;
import com.cloud.api.BaseAsyncCreateCmd;
import com.cloud.api.BaseCmd;
import com.cloud.api.Implementation;
@ -32,7 +30,6 @@ import com.cloud.api.response.VolumeResponse;
import com.cloud.event.EventTypes;
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;
@ -114,10 +111,10 @@ public class CreateVolumeCmd extends BaseAsyncCreateCmd {
@Override
public long getAccountId() {
Account account = (Account)UserContext.current().getAccount();
Account account = UserContext.current().getAccount();
if ((account == null) || isAdmin(account.getType())) {
if ((domainId != null) && (accountName != null)) {
Account userAccount = ApiDBUtils.findAccountByNameDomain(accountName, domainId);
Account userAccount = _responseGenerator.findAccountByNameDomain(accountName, domainId);
if (userAccount != null) {
return userAccount.getId();
}
@ -159,7 +156,7 @@ public class CreateVolumeCmd extends BaseAsyncCreateCmd {
public void execute(){
Volume volume = _storageMgr.createVolume(this);
if (volume != null) {
VolumeResponse response = ApiResponseHelper.createVolumeResponse((VolumeVO)volume);
VolumeResponse response = _responseGenerator.createVolumeResponse(volume);
//FIXME - have to be moved to ApiResponseHelper
response.setSnapshotId(getSnapshotId()); // if the volume was created from a snapshot, snapshotId will be set so we pass it back in the response
response.setResponseName(getName());

View File

@ -21,14 +21,12 @@ package com.cloud.api.commands;
import org.apache.log4j.Logger;
import com.cloud.api.ApiConstants;
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.dc.DataCenter;
import com.cloud.dc.DataCenterVO;
@Implementation(description="Creates a Zone.", responseObject=ZoneResponse.class)
public class CreateZoneCmd extends BaseCmd {
@ -126,7 +124,7 @@ public class CreateZoneCmd extends BaseCmd {
public void execute(){
DataCenter result = _configService.createZone(this);
if (result != null){
ZoneResponse response = ApiResponseHelper.createZoneResponse((DataCenterVO)result);
ZoneResponse response = _responseGenerator.createZoneResponse(result);
response.setResponseName(getName());
this.setResponseObject(response);
} else {

View File

@ -20,14 +20,13 @@ package com.cloud.api.commands;
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.SuccessResponse;
import com.cloud.domain.DomainVO;
import com.cloud.domain.Domain;
import com.cloud.event.EventTypes;
import com.cloud.user.Account;
@ -70,7 +69,7 @@ public class DeleteDomainCmd extends BaseAsyncCmd {
@Override
public long getAccountId() {
DomainVO domain = ApiDBUtils.findDomainById(getId());
Domain domain = _entityMgr.findById(Domain.class, getId());
if (domain != null) {
return domain.getAccountId();
}

View File

@ -62,7 +62,7 @@ public class DeleteHostCmd extends BaseCmd {
@Override
public void execute(){
boolean result = _agentMgr.deleteHost(this);
boolean result = _resourceService.deleteHost(this);
if (result) {
SuccessResponse response = new SuccessResponse(getName());
this.setResponseObject(response);

View File

@ -63,7 +63,7 @@ public class DeleteIpForwardingRuleCmd extends BaseAsyncCmd {
@Override
public void execute(){
boolean result = false;
result = _networkMgr.deleteIpForwardingRule(id);
result = _networkService.deleteIpForwardingRule(id);
if (result) {
SuccessResponse response = new SuccessResponse(getName());
this.setResponseObject(response);

View File

@ -20,7 +20,6 @@ package com.cloud.api.commands;
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;
@ -28,7 +27,7 @@ import com.cloud.api.Parameter;
import com.cloud.api.ServerApiException;
import com.cloud.api.response.SuccessResponse;
import com.cloud.event.EventTypes;
import com.cloud.storage.VMTemplateVO;
import com.cloud.template.VirtualMachineTemplate;
import com.cloud.user.Account;
@Implementation(description="Deletes an ISO file.", responseObject=SuccessResponse.class)
@ -74,7 +73,7 @@ public class DeleteIsoCmd extends BaseAsyncCmd {
@Override
public long getAccountId() {
VMTemplateVO iso = ApiDBUtils.findTemplateById(getId());
VirtualMachineTemplate iso = _entityMgr.findById(VirtualMachineTemplate.class, getId());
if (iso != null) {
return iso.getAccountId();
}
@ -94,7 +93,7 @@ public class DeleteIsoCmd extends BaseAsyncCmd {
@Override
public void execute(){
boolean result = _templateMgr.deleteIso(this);
boolean result = _templateService.deleteIso(this);
if (result) {
SuccessResponse response = new SuccessResponse(getName());
this.setResponseObject(response);

View File

@ -20,7 +20,6 @@ package com.cloud.api.commands;
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;
@ -28,7 +27,7 @@ import com.cloud.api.Parameter;
import com.cloud.api.ServerApiException;
import com.cloud.api.response.SuccessResponse;
import com.cloud.event.EventTypes;
import com.cloud.network.LoadBalancerVO;
import com.cloud.network.LoadBalancer;
import com.cloud.user.Account;
@Implementation(description="Deletes a load balancer rule.", responseObject=SuccessResponse.class)
@ -62,7 +61,7 @@ public class DeleteLoadBalancerRuleCmd extends BaseAsyncCmd {
@Override
public long getAccountId() {
LoadBalancerVO lb = ApiDBUtils.findLoadBalancerById(getId());
LoadBalancer lb = _entityMgr.findById(LoadBalancer.class, getId());
if (lb != null) {
return lb.getAccountId();
}
@ -82,7 +81,7 @@ public class DeleteLoadBalancerRuleCmd extends BaseAsyncCmd {
@Override
public void execute(){
boolean result = _networkMgr.deleteLoadBalancerRule(this);
boolean result = _networkService.deleteLoadBalancerRule(this);
if (result) {
SuccessResponse response = new SuccessResponse(getName());
this.setResponseObject(response);

View File

@ -58,7 +58,7 @@ public class DeletePortForwardingRuleCmd extends BaseCmd {
@Override
public void execute(){
boolean result = _networkMgr.deletePortForwardingRule(id,false);
boolean result = _networkService.deletePortForwardingRule(id,false);
if (result) {
SuccessResponse response = new SuccessResponse(getName());
this.setResponseObject(response);

View File

@ -20,7 +20,6 @@ package com.cloud.api.commands;
import org.apache.log4j.Logger;
import com.cloud.api.ApiDBUtils;
import com.cloud.api.BaseAsyncCmd;
import com.cloud.api.BaseCmd;
import com.cloud.api.Implementation;
@ -74,16 +73,17 @@ public class DeleteRemoteAccessVpnCmd extends BaseAsyncCmd {
/////////////// API Implementation///////////////////
/////////////////////////////////////////////////////
public String getName() {
@Override
public String getName() {
return s_name;
}
@Override
public long getAccountId() {
Account account = (Account)UserContext.current().getAccount();
Account account = UserContext.current().getAccount();
if ((account == null) || isAdmin(account.getType())) {
if ((domainId != null) && (accountName != null)) {
Account userAccount = ApiDBUtils.findAccountByNameDomain(accountName, domainId);
Account userAccount = _responseGenerator.findAccountByNameDomain(accountName, domainId);
if (userAccount != null) {
return userAccount.getId();
}
@ -110,7 +110,7 @@ public class DeleteRemoteAccessVpnCmd extends BaseAsyncCmd {
@Override
public void execute(){
try {
boolean result = _networkMgr.destroyRemoteAccessVpn(this);
boolean result = _networkService.destroyRemoteAccessVpn(this);
if (result) {
SuccessResponse response = new SuccessResponse(getName());
this.setResponseObject(response);

View File

@ -21,7 +21,6 @@ package com.cloud.api.commands;
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;
@ -64,7 +63,7 @@ public class DeleteSnapshotCmd extends BaseAsyncCmd {
@Override
public long getAccountId() {
Snapshot snapshot = ApiDBUtils.findSnapshotById(getId());
Snapshot snapshot = _entityMgr.findById(Snapshot.class, getId());
if (snapshot != null) {
return snapshot.getAccountId();
}

View File

@ -21,7 +21,6 @@ package com.cloud.api.commands;
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;
@ -29,7 +28,7 @@ import com.cloud.api.Parameter;
import com.cloud.api.ServerApiException;
import com.cloud.api.response.SuccessResponse;
import com.cloud.event.EventTypes;
import com.cloud.storage.VMTemplateVO;
import com.cloud.template.VirtualMachineTemplate;
import com.cloud.user.Account;
@Implementation(responseObject=SuccessResponse.class, description="Deletes a template from the system. All virtual machines using the deleted template will not be affected.")
@ -76,7 +75,7 @@ public class DeleteTemplateCmd extends BaseAsyncCmd {
@Override
public long getAccountId() {
VMTemplateVO template = ApiDBUtils.findTemplateById(getId());
VirtualMachineTemplate template = _entityMgr.findById(VirtualMachineTemplate.class, getId());
if (template != null) {
return template.getAccountId();
}
@ -96,7 +95,7 @@ public class DeleteTemplateCmd extends BaseAsyncCmd {
@Override
public void execute(){
boolean result = _templateMgr.deleteTemplate(this);
boolean result = _templateService.deleteTemplate(this);
if (result) {
SuccessResponse response = new SuccessResponse(getName());
this.setResponseObject(response);

View File

@ -21,7 +21,6 @@ package com.cloud.api.commands;
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;
@ -70,7 +69,7 @@ public class DeleteUserCmd extends BaseAsyncCmd {
@Override
public long getAccountId() {
Account account = (Account)UserContext.current().getAccount();
Account account = UserContext.current().getAccount();
if (account != null) {
return account.getId();
}
@ -85,7 +84,7 @@ public class DeleteUserCmd extends BaseAsyncCmd {
@Override
public String getEventDescription() {
User user = ApiDBUtils.findUserById(getId());
User user = _responseGenerator.findUserById(getId());
return (user != null ? ("User " + user.getUsername() + " (id: " + user.getId() + ") and accountId = " + user.getAccountId()) : "user delete, but this user does not exist in the system");
}

View File

@ -23,8 +23,6 @@ import java.util.List;
import org.apache.log4j.Logger;
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;
@ -35,7 +33,7 @@ import com.cloud.event.EventTypes;
import com.cloud.exception.InsufficientStorageCapacityException;
import com.cloud.exception.ResourceAllocationException;
import com.cloud.exception.StorageUnavailableException;
import com.cloud.storage.VMTemplateVO;
import com.cloud.template.VirtualMachineTemplate;
import com.cloud.user.Account;
import com.cloud.user.UserContext;
import com.cloud.uservm.UserVm;
@ -169,7 +167,7 @@ public class DeployVMCmd extends BaseAsyncCmd {
Account account = UserContext.current().getAccount();
if ((account == null) || isAdmin(account.getType())) {
if ((domainId != null) && (accountName != null)) {
Account userAccount = ApiDBUtils.findAccountByNameDomain(accountName, domainId);
Account userAccount = _responseGenerator.findAccountByNameDomain(accountName, domainId);
if (userAccount != null) {
return userAccount.getId();
}
@ -198,14 +196,14 @@ public class DeployVMCmd extends BaseAsyncCmd {
try {
String password = null;
if (templateId != null ) {
VMTemplateVO template = ApiDBUtils.findTemplateById(templateId);
VirtualMachineTemplate template = _responseGenerator.findTemplateById(templateId);
if (template.getEnablePassword()) {
password = _mgr.generateRandomPassword();
}
}
UserVm result = _mgr.deployVirtualMachine(this, password);
if (result != null){
UserVmResponse response = ApiResponseHelper.createUserVmResponse(result);
UserVmResponse response = _responseGenerator.createUserVmResponse(result);
response.setPassword(password);
response.setResponseName(getName());
this.setResponseObject(response);

View File

@ -23,8 +23,6 @@ import java.util.List;
import org.apache.log4j.Logger;
import com.cloud.api.ApiConstants;
import com.cloud.api.ApiDBUtils;
import com.cloud.api.ApiResponseHelper;
import com.cloud.api.BaseAsyncCreateCmd;
import com.cloud.api.BaseCmd;
import com.cloud.api.Implementation;
@ -159,7 +157,7 @@ public class DeployVm2Cmd extends BaseAsyncCreateCmd {
try {
result = _userVmService.startVirtualMachine(this);
if (result != null) {
UserVmResponse response = ApiResponseHelper.createUserVm2Response(result);
UserVmResponse response = _responseGenerator.createUserVm2Response(result);
response.setPassword(password);
response.setResponseName(getName());
this.setResponseObject(response);
@ -208,7 +206,7 @@ public class DeployVm2Cmd extends BaseAsyncCreateCmd {
Account account = UserContext.current().getAccount();
if ((account == null) || isAdmin(account.getType())) {
if ((domainId != null) && (accountName != null)) {
Account userAccount = ApiDBUtils.findAccountByNameDomain(accountName, domainId);
Account userAccount = _responseGenerator.findAccountByNameDomain(accountName, domainId);
if (userAccount != null) {
return userAccount.getId();
}

View File

@ -20,8 +20,6 @@ package com.cloud.api.commands;
import org.apache.log4j.Logger;
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;
@ -66,7 +64,7 @@ public class DestroyVMCmd extends BaseAsyncCmd {
@Override
public long getAccountId() {
UserVm vm = ApiDBUtils.findUserVmById(getId());
UserVm vm = _responseGenerator.findUserVmById(getId());
if (vm != null) {
return vm.getAccountId();
}
@ -88,7 +86,7 @@ public class DestroyVMCmd extends BaseAsyncCmd {
public void execute() throws ResourceUnavailableException, ConcurrentOperationException{
UserVm result = _userVmService.destroyVm(this);
if (result != null) {
UserVmResponse response = ApiResponseHelper.createUserVmResponse(result);
UserVmResponse response = _responseGenerator.createUserVmResponse(result);
response.setResponseName("virtualmachine");
this.setResponseObject(response);
} else {

View File

@ -20,8 +20,6 @@ package com.cloud.api.commands;
import org.apache.log4j.Logger;
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;
@ -64,7 +62,7 @@ public class DetachIsoCmd extends BaseAsyncCmd {
@Override
public long getAccountId() {
UserVm vm = ApiDBUtils.findUserVmById(getVirtualMachineId());
UserVm vm = _entityMgr.findById(UserVm.class, getVirtualMachineId());
if (vm != null) {
return vm.getAccountId();
}
@ -84,10 +82,10 @@ public class DetachIsoCmd extends BaseAsyncCmd {
@Override
public void execute(){
boolean result = _templateMgr.detachIso(this);
boolean result = _templateService.detachIso(this);
if (result) {
UserVm userVm = ApiDBUtils.findUserVmById(virtualMachineId);
UserVmResponse response = ApiResponseHelper.createUserVmResponse(userVm);
UserVm userVm = _entityMgr.findById(UserVm.class, virtualMachineId);
UserVmResponse response = _responseGenerator.createUserVmResponse(userVm);
response.setResponseName(DeployVMCmd.getResultObjectName());
this.setResponseObject(response);
} else {

View File

@ -20,8 +20,6 @@ package com.cloud.api.commands;
import org.apache.log4j.Logger;
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;
@ -30,7 +28,6 @@ import com.cloud.api.ServerApiException;
import com.cloud.api.response.VolumeResponse;
import com.cloud.event.EventTypes;
import com.cloud.storage.Volume;
import com.cloud.storage.VolumeVO;
import com.cloud.user.Account;
import com.cloud.uservm.UserVm;
@ -85,12 +82,12 @@ public class DetachVolumeCmd extends BaseAsyncCmd {
public long getAccountId() {
Long volumeId = getId();
if (volumeId != null) {
VolumeVO volume = ApiDBUtils.findVolumeById(volumeId);
Volume volume = _responseGenerator.findVolumeById(volumeId);
if (volume != null) {
return volume.getAccountId();
}
} else if (getVirtualMachineId() != null) {
UserVm vm = ApiDBUtils.findUserVmById(getVirtualMachineId());
UserVm vm = _responseGenerator.findUserVmById(getVirtualMachineId());
if (vm != null) {
return vm.getAccountId();
}
@ -122,7 +119,7 @@ public class DetachVolumeCmd extends BaseAsyncCmd {
public void execute(){
Volume result = _userVmService.detachVolumeFromVM(this);
if (result != null){
VolumeResponse response = ApiResponseHelper.createVolumeResponse((VolumeVO)result);
VolumeResponse response = _responseGenerator.createVolumeResponse(result);
response.setResponseName("volume");
this.setResponseObject(response);
} else {

View File

@ -20,7 +20,6 @@ package com.cloud.api.commands;
import org.apache.log4j.Logger;
import com.cloud.api.ApiConstants;
import com.cloud.api.ApiResponseHelper;
import com.cloud.api.BaseAsyncCmd;
import com.cloud.api.BaseCmd;
import com.cloud.api.Implementation;
@ -74,7 +73,7 @@ public class DisableAccountCmd extends BaseAsyncCmd {
@Override
public long getAccountId() {
Account account = (Account)UserContext.current().getAccount();
Account account = UserContext.current().getAccount();
if (account != null) {
return account.getId();
}
@ -91,7 +90,7 @@ public class DisableAccountCmd extends BaseAsyncCmd {
public void execute(){
Account result = _accountService.disableAccount(this);
if (result != null){
AccountResponse response = ApiResponseHelper.createAccountResponse(result);
AccountResponse response = _responseGenerator.createAccountResponse(result);
response.setResponseName(getName());
this.setResponseObject(response);
} else {

View File

@ -20,7 +20,6 @@ package com.cloud.api.commands;
import org.apache.log4j.Logger;
import com.cloud.api.ApiConstants;
import com.cloud.api.ApiResponseHelper;
import com.cloud.api.BaseAsyncCmd;
import com.cloud.api.BaseCmd;
import com.cloud.api.Implementation;
@ -68,7 +67,7 @@ public class DisableUserCmd extends BaseAsyncCmd {
@Override
public long getAccountId() {
Account account = (Account)UserContext.current().getAccount();
Account account = UserContext.current().getAccount();
if (account != null) {
return account.getId();
}
@ -86,7 +85,7 @@ public class DisableUserCmd extends BaseAsyncCmd {
public void execute(){
UserAccount user = _accountService.disableUser(this);
if (user != null){
UserResponse response = ApiResponseHelper.createUserResponse(user);
UserResponse response = _responseGenerator.createUserResponse(user);
response.setResponseName(getName());
this.setResponseObject(response);
} else {

View File

@ -58,7 +58,7 @@ public class DisassociateIPAddrCmd extends BaseCmd {
@Override
public void execute(){
boolean result = _networkMgr.disassociateIpAddress(this);
boolean result = _networkService.disassociateIpAddress(this);
if (result) {
SuccessResponse response = new SuccessResponse(getName());
this.setResponseObject(response);

View File

@ -20,7 +20,6 @@ package com.cloud.api.commands;
import org.apache.log4j.Logger;
import com.cloud.api.ApiConstants;
import com.cloud.api.ApiResponseHelper;
import com.cloud.api.BaseCmd;
import com.cloud.api.Implementation;
import com.cloud.api.Parameter;
@ -68,7 +67,7 @@ public class EnableAccountCmd extends BaseCmd {
public void execute(){
Account result = _accountService.enableAccount(this);
if (result != null){
AccountResponse response = ApiResponseHelper.createAccountResponse(result);
AccountResponse response = _responseGenerator.createAccountResponse(result);
response.setResponseName(getName());
this.setResponseObject(response);
} else {

View File

@ -21,7 +21,6 @@ package com.cloud.api.commands;
import org.apache.log4j.Logger;
import com.cloud.api.ApiConstants;
import com.cloud.api.ApiResponseHelper;
import com.cloud.api.BaseCmd;
import com.cloud.api.Implementation;
import com.cloud.api.Parameter;
@ -63,7 +62,7 @@ public class EnableUserCmd extends BaseCmd {
public void execute(){
UserAccount user = _accountService.enableUser(this);
if (user != null){
UserResponse response = ApiResponseHelper.createUserResponse(user);
UserResponse response = _responseGenerator.createUserResponse(user);
response.setResponseName(getName());
this.setResponseObject(response);
} else {

View File

@ -20,7 +20,6 @@ package com.cloud.api.commands;
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;
@ -29,8 +28,7 @@ import com.cloud.api.ServerApiException;
import com.cloud.api.response.ExtractResponse;
import com.cloud.event.EventTypes;
import com.cloud.exception.InternalErrorException;
import com.cloud.storage.UploadVO;
import com.cloud.storage.VMTemplateVO;
import com.cloud.template.VirtualMachineTemplate;
import com.cloud.user.Account;
@Implementation(description="Extracts an ISO", responseObject=ExtractResponse.class)
@ -90,7 +88,7 @@ public class ExtractIsoCmd extends BaseAsyncCmd {
@Override
public long getAccountId() {
VMTemplateVO iso = ApiDBUtils.findTemplateById(getId());
VirtualMachineTemplate iso = _entityMgr.findById(VirtualMachineTemplate.class, getId());
if (iso != null) {
return iso.getAccountId();
}
@ -111,21 +109,9 @@ public class ExtractIsoCmd extends BaseAsyncCmd {
@Override
public void execute(){
try {
Long uploadId = _templateMgr.extract(this);
Long uploadId = _templateService.extract(this);
if (uploadId != null){
UploadVO uploadInfo = ApiDBUtils.findUploadById(uploadId);
ExtractResponse response = new ExtractResponse();
response.setId(id);
response.setName(ApiDBUtils.findTemplateById(id).getName());
response.setZoneId(zoneId);
response.setZoneName(ApiDBUtils.findZoneById(zoneId).getName());
response.setMode(mode);
response.setUploadId(uploadId);
response.setState(uploadInfo.getUploadState().toString());
response.setAccountId(getAccountId());
//FIX ME - Need to set the url once the gson jar is upgraded since it is throwing an error right now due to a bug.
//response.setUrl(uploadInfo.getUploadUrl());
response.setUrl(uploadInfo.getUploadUrl().replaceAll("/", "%2F"));
ExtractResponse response = _responseGenerator.createExtractResponse(uploadId, id, zoneId, getAccountId(), mode);
response.setResponseName(getName());
response.setObjectName("iso");
this.setResponseObject(response);

View File

@ -20,7 +20,6 @@ package com.cloud.api.commands;
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;
@ -29,8 +28,7 @@ import com.cloud.api.ServerApiException;
import com.cloud.api.response.ExtractResponse;
import com.cloud.event.EventTypes;
import com.cloud.exception.InternalErrorException;
import com.cloud.storage.UploadVO;
import com.cloud.storage.VMTemplateVO;
import com.cloud.template.VirtualMachineTemplate;
import com.cloud.user.Account;
@Implementation(description="Extracts a template", responseObject=ExtractResponse.class)
@ -90,7 +88,7 @@ public class ExtractTemplateCmd extends BaseAsyncCmd {
@Override
public long getAccountId() {
VMTemplateVO template = ApiDBUtils.findTemplateById(getId());
VirtualMachineTemplate template = _entityMgr.findById(VirtualMachineTemplate.class, getId());
if (template != null) {
return template.getAccountId();
}
@ -112,23 +110,10 @@ public class ExtractTemplateCmd extends BaseAsyncCmd {
@Override
public void execute(){
try {
Long uploadId = _templateMgr.extract(this);
Long uploadId = _templateService.extract(this);
if (uploadId != null){
UploadVO uploadInfo = ApiDBUtils.findUploadById(uploadId);
ExtractResponse response = new ExtractResponse();
ExtractResponse response = _responseGenerator.createExtractResponse(uploadId, id, zoneId, getAccountId(), mode);
response.setResponseName(getName());
response.setObjectName("template");
response.setId(id);
response.setName(ApiDBUtils.findTemplateById(id).getName());
response.setZoneId(zoneId);
response.setZoneName(ApiDBUtils.findZoneById(zoneId).getName());
response.setMode(mode);
response.setUploadId(uploadId);
response.setState(uploadInfo.getUploadState().toString());
response.setAccountId(getAccountId());
//FIX ME - Need to set the url once the gson jar is upgraded since it is throwing an error right now.
//response.setUrl(uploadInfo.getUploadUrl());
response.setUrl(uploadInfo.getUploadUrl().replaceAll("/", "%2F"));
this.setResponseObject(response);
} else {
throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to extract template");

View File

@ -22,16 +22,16 @@ 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.dc.DataCenter;
import com.cloud.event.EventTypes;
import com.cloud.storage.UploadVO;
import com.cloud.storage.VolumeVO;
import com.cloud.storage.Upload;
import com.cloud.storage.Volume;
import com.cloud.user.Account;
@Implementation(description="Extracts volume", responseObject=ExtractResponse.class)
@ -94,7 +94,7 @@ public class ExtractVolumeCmd extends BaseAsyncCmd {
@Override
public long getAccountId() {
VolumeVO volume = ApiDBUtils.findVolumeById(getId());
Volume volume = _entityMgr.findById(Volume.class, getId());
if (volume != null) {
return volume.getAccountId();
}
@ -118,14 +118,14 @@ public class ExtractVolumeCmd extends BaseAsyncCmd {
try {
Long uploadId = _mgr.extractVolume(this);
if (uploadId != null){
UploadVO uploadInfo = ApiDBUtils.findUploadById(uploadId);
Upload uploadInfo = _entityMgr.findById(Upload.class, uploadId);
ExtractResponse response = new ExtractResponse();
response.setResponseName(getName());
response.setObjectName("volume");
response.setId(id);
response.setName(ApiDBUtils.findVolumeById(id).getName());
response.setName(_entityMgr.findById(Volume.class, id).getName());
response.setZoneId(zoneId);
response.setZoneName(ApiDBUtils.findZoneById(zoneId).getName());
response.setZoneName(_entityMgr.findById(DataCenter.class, zoneId).getName());
response.setMode(mode);
response.setUploadId(uploadId);
response.setState(uploadInfo.getUploadState().toString());

View File

@ -23,13 +23,12 @@ import java.util.List;
import org.apache.log4j.Logger;
import com.cloud.api.ApiConstants;
import com.cloud.api.ApiResponseHelper;
import com.cloud.api.BaseListCmd;
import com.cloud.api.Implementation;
import com.cloud.api.Parameter;
import com.cloud.api.response.AccountResponse;
import com.cloud.api.response.ListResponse;
import com.cloud.user.AccountVO;
import com.cloud.user.Account;
@Implementation(description="Lists accounts and provides detailed account information for listed accounts", responseObject=AccountResponse.class)
public class ListAccountsCmd extends BaseListCmd {
@ -98,11 +97,11 @@ public class ListAccountsCmd extends BaseListCmd {
@Override
public void execute(){
List<AccountVO> accounts = _mgr.searchForAccounts(this);
List<? extends Account> accounts = _mgr.searchForAccounts(this);
ListResponse<AccountResponse> response = new ListResponse<AccountResponse>();
List<AccountResponse> accountResponses = new ArrayList<AccountResponse>();
for (AccountVO account : accounts) {
AccountResponse acctResponse = ApiResponseHelper.createAccountResponse(account);
for (Account account : accounts) {
AccountResponse acctResponse = _responseGenerator.createAccountResponse(account);
acctResponse.setObjectName("account");
accountResponses.add(acctResponse);
}

View File

@ -22,7 +22,7 @@ import java.util.List;
import org.apache.log4j.Logger;
import com.cloud.alert.AlertVO;
import com.cloud.alert.Alert;
import com.cloud.api.ApiConstants;
import com.cloud.api.BaseListCmd;
import com.cloud.api.Implementation;
@ -63,10 +63,10 @@ public class ListAlertsCmd extends BaseListCmd {
@Override
public void execute(){
List<AlertVO> result = _mgr.searchForAlerts(this);
List<? extends Alert> result = _mgr.searchForAlerts(this);
ListResponse<AlertResponse> response = new ListResponse<AlertResponse>();
List<AlertResponse> alertResponseList = new ArrayList<AlertResponse>();
for (AlertVO alert : result) {
for (Alert alert : result) {
AlertResponse alertResponse = new AlertResponse();
alertResponse.setId(alert.getId());
alertResponse.setAlertType(alert.getType());

View File

@ -22,14 +22,12 @@ import java.util.Date;
import java.util.List;
import com.cloud.api.ApiConstants;
import com.cloud.api.ApiSerializerHelper;
import com.cloud.api.BaseListCmd;
import com.cloud.api.Implementation;
import com.cloud.api.Parameter;
import com.cloud.api.ResponseObject;
import com.cloud.api.response.AsyncJobResponse;
import com.cloud.api.response.ListResponse;
import com.cloud.async.AsyncJobVO;
import com.cloud.async.AsyncJob;
@Implementation(description="Lists all pending asynchronous jobs for the account.", responseObject=AsyncJobResponse.class)
public class ListAsyncJobsCmd extends BaseListCmd {
@ -75,25 +73,11 @@ public class ListAsyncJobsCmd extends BaseListCmd {
@Override
public void execute(){
List<AsyncJobVO> result = _mgr.searchForAsyncJobs(this);
List<? extends AsyncJob> result = _mgr.searchForAsyncJobs(this);
ListResponse<AsyncJobResponse> response = new ListResponse<AsyncJobResponse>();
List<AsyncJobResponse> jobResponses = new ArrayList<AsyncJobResponse>();
for (AsyncJobVO job : result) {
AsyncJobResponse jobResponse = new AsyncJobResponse();
jobResponse.setAccountId(job.getAccountId());
jobResponse.setCmd(job.getCmd());
jobResponse.setCreated(job.getCreated());
jobResponse.setId(job.getId());
jobResponse.setJobInstanceId(job.getInstanceId());
jobResponse.setJobInstanceType(job.getInstanceType());
jobResponse.setJobProcStatus(job.getProcessStatus());
jobResponse.setJobResult((ResponseObject)ApiSerializerHelper.fromSerializedString(job.getResult()));
jobResponse.setJobResultCode(job.getResultCode());
jobResponse.setJobStatus(job.getStatus());
jobResponse.setUserId(job.getUserId());
jobResponse.setObjectName("asyncjobs");
jobResponses.add(jobResponse);
for (AsyncJob job : result) {
jobResponses.add(_responseGenerator.createAsyncJobResponse(job));
}
response.setResponses(jobResponses);

View File

@ -0,0 +1,109 @@
/**
* 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.api.commands;
import java.text.DecimalFormat;
import java.util.List;
import org.apache.log4j.Logger;
import com.cloud.api.ApiConstants;
import com.cloud.api.BaseListCmd;
import com.cloud.api.Implementation;
import com.cloud.api.Parameter;
import com.cloud.api.response.CapacityResponse;
import com.cloud.api.response.ListResponse;
import com.cloud.capacity.Capacity;
@Implementation(description="Lists capacity.", responseObject=CapacityResponse.class)
public class ListCapacityCmd extends BaseListCmd {
public static final Logger s_logger = Logger.getLogger(ListCapacityCmd.class.getName());
private static final DecimalFormat s_percentFormat = new DecimalFormat("##.##");
private static final String s_name = "listcapacityresponse";
/////////////////////////////////////////////////////
//////////////// API parameters /////////////////////
/////////////////////////////////////////////////////
@Parameter(name=ApiConstants.HOST_ID, type=CommandType.LONG, description="lists capacity by the Host ID")
private Long hostId;
@Parameter(name=ApiConstants.POD_ID, type=CommandType.LONG, description="lists capacity by the Pod ID")
private Long podId;
@Parameter(name=ApiConstants.TYPE, type=CommandType.STRING, description="lists capacity by type")
private String type;
@Parameter(name=ApiConstants.ZONE_ID, type=CommandType.LONG, description="lists capacity by the Zone ID")
private Long zoneId;
/////////////////////////////////////////////////////
/////////////////// Accessors ///////////////////////
/////////////////////////////////////////////////////
public Long getHostId() {
return hostId;
}
public Long getPodId() {
return podId;
}
public String getType() {
return type;
}
public Long getZoneId() {
return zoneId;
}
/////////////////////////////////////////////////////
/////////////// API Implementation///////////////////
/////////////////////////////////////////////////////
@Override
public String getName() {
return s_name;
}
@Override
public Long getPageSizeVal() {
Long pageSizeVal = 1000000L;
Integer pageSize = getPageSize();
if (pageSize != null) {
pageSizeVal = pageSize.longValue();
}
return pageSizeVal;
}
@Override
public void execute(){
List<? extends Capacity> result = _mgr.listCapacities(this);
ListResponse<CapacityResponse> response = new ListResponse<CapacityResponse>();
List<CapacityResponse> capacityResponses = _responseGenerator.createCapacityResponse(result, s_percentFormat);
response.setResponses(capacityResponses);
response.setResponseName(getName());
this.setResponseObject(response);
}
}

View File

@ -24,13 +24,12 @@ import java.util.List;
import org.apache.log4j.Logger;
import com.cloud.api.ApiConstants;
import com.cloud.api.ApiResponseHelper;
import com.cloud.api.BaseListCmd;
import com.cloud.api.Implementation;
import com.cloud.api.Parameter;
import com.cloud.api.response.ConfigurationResponse;
import com.cloud.api.response.ListResponse;
import com.cloud.configuration.ConfigurationVO;
import com.cloud.configuration.Configuration;
@Implementation(description="Lists all configurations.", responseObject=ConfigurationResponse.class)
public class ListCfgsByCmd extends BaseListCmd {
@ -73,11 +72,11 @@ public class ListCfgsByCmd extends BaseListCmd {
@Override
public void execute(){
List<ConfigurationVO> result = _mgr.searchForConfigurations(this);
List<? extends Configuration> result = _mgr.searchForConfigurations(this);
ListResponse<ConfigurationResponse> response = new ListResponse<ConfigurationResponse>();
List<ConfigurationResponse> configResponses = new ArrayList<ConfigurationResponse>();
for (ConfigurationVO cfg : result) {
ConfigurationResponse cfgResponse = ApiResponseHelper.createConfigurationResponse(cfg);
for (Configuration cfg : result) {
ConfigurationResponse cfgResponse = _responseGenerator.createConfigurationResponse(cfg);
cfgResponse.setObjectName("configuration");
configResponses.add(cfgResponse);
}

View File

@ -24,13 +24,12 @@ import java.util.List;
import org.apache.log4j.Logger;
import com.cloud.api.ApiConstants;
import com.cloud.api.ApiResponseHelper;
import com.cloud.api.BaseListCmd;
import com.cloud.api.Implementation;
import com.cloud.api.Parameter;
import com.cloud.api.response.ClusterResponse;
import com.cloud.api.response.ListResponse;
import com.cloud.dc.ClusterVO;
import com.cloud.org.Cluster;
@Implementation(description="Lists clusters.", responseObject=ClusterResponse.class)
public class ListClustersCmd extends BaseListCmd {
@ -86,11 +85,11 @@ public class ListClustersCmd extends BaseListCmd {
@Override
public void execute(){
List<ClusterVO> result = _mgr.searchForClusters(this);
List<? extends Cluster> result = _mgr.searchForClusters(this);
ListResponse<ClusterResponse> response = new ListResponse<ClusterResponse>();
List<ClusterResponse> clusterResponses = new ArrayList<ClusterResponse>();
for (ClusterVO cluster : result) {
ClusterResponse clusterResponse = ApiResponseHelper.createClusterResponse(cluster);
for (Cluster cluster : result) {
ClusterResponse clusterResponse = _responseGenerator.createClusterResponse(cluster);
clusterResponse.setObjectName("cluster");
clusterResponses.add(clusterResponse);
}

View File

@ -23,13 +23,12 @@ import java.util.List;
import org.apache.log4j.Logger;
import com.cloud.api.ApiConstants;
import com.cloud.api.ApiResponseHelper;
import com.cloud.api.BaseListCmd;
import com.cloud.api.Implementation;
import com.cloud.api.Parameter;
import com.cloud.api.response.DiskOfferingResponse;
import com.cloud.api.response.ListResponse;
import com.cloud.storage.DiskOfferingVO;
import com.cloud.offering.DiskOffering;
@Implementation(description="Lists all available disk offerings.", responseObject=DiskOfferingResponse.class)
public class ListDiskOfferingsCmd extends BaseListCmd {
@ -77,11 +76,11 @@ public class ListDiskOfferingsCmd extends BaseListCmd {
@Override
public void execute(){
List<DiskOfferingVO> result = _mgr.searchForDiskOfferings(this);
List<? extends DiskOffering> result = _mgr.searchForDiskOfferings(this);
ListResponse<DiskOfferingResponse> response = new ListResponse<DiskOfferingResponse>();
List<DiskOfferingResponse> diskOfferingResponses = new ArrayList<DiskOfferingResponse>();
for (DiskOfferingVO offering : result) {
DiskOfferingResponse diskOffResp = ApiResponseHelper.createDiskOfferingResponse(offering);
for (DiskOffering offering : result) {
DiskOfferingResponse diskOffResp = _responseGenerator.createDiskOfferingResponse(offering);
diskOffResp.setObjectName("diskoffering");
diskOfferingResponses.add(diskOffResp);
}

View File

@ -23,13 +23,12 @@ import java.util.List;
import org.apache.log4j.Logger;
import com.cloud.api.ApiConstants;
import com.cloud.api.ApiResponseHelper;
import com.cloud.api.BaseListCmd;
import com.cloud.api.Implementation;
import com.cloud.api.Parameter;
import com.cloud.api.response.DomainResponse;
import com.cloud.api.response.ListResponse;
import com.cloud.domain.DomainVO;
import com.cloud.domain.Domain;
@Implementation(description="Lists all children domains belonging to a specified domain", responseObject=DomainResponse.class)
public class ListDomainChildrenCmd extends BaseListCmd {
@ -77,11 +76,11 @@ public class ListDomainChildrenCmd extends BaseListCmd {
@Override
public void execute(){
List<DomainVO> result = _mgr.searchForDomainChildren(this);
List<? extends Domain> result = _mgr.searchForDomainChildren(this);
ListResponse<DomainResponse> response = new ListResponse<DomainResponse>();
List<DomainResponse> domainResponses = new ArrayList<DomainResponse>();
for (DomainVO domain : result) {
DomainResponse domainResponse = ApiResponseHelper.createDomainResponse(domain);
for (Domain domain : result) {
DomainResponse domainResponse = _responseGenerator.createDomainResponse(domain);
domainResponse.setObjectName("domain");
domainResponses.add(domainResponse);
}

View File

@ -23,13 +23,12 @@ import java.util.List;
import org.apache.log4j.Logger;
import com.cloud.api.ApiConstants;
import com.cloud.api.ApiResponseHelper;
import com.cloud.api.BaseListCmd;
import com.cloud.api.Implementation;
import com.cloud.api.Parameter;
import com.cloud.api.response.DomainResponse;
import com.cloud.api.response.ListResponse;
import com.cloud.domain.DomainVO;
import com.cloud.domain.Domain;
@Implementation(description="Lists domains and provides detailed information for listed domains", responseObject=DomainResponse.class)
public class ListDomainsCmd extends BaseListCmd {
@ -77,11 +76,11 @@ public class ListDomainsCmd extends BaseListCmd {
@Override
public void execute(){
List<DomainVO> result = _mgr.searchForDomains(this);
List<? extends Domain> result = _mgr.searchForDomains(this);
ListResponse<DomainResponse> response = new ListResponse<DomainResponse>();
List<DomainResponse> domainResponses = new ArrayList<DomainResponse>();
for (DomainVO domain : result) {
DomainResponse domainResponse = ApiResponseHelper.createDomainResponse(domain);
for (Domain domain : result) {
DomainResponse domainResponse = _responseGenerator.createDomainResponse(domain);
domainResponse.setObjectName("domain");
domainResponses.add(domainResponse);
}

View File

@ -24,14 +24,12 @@ import java.util.List;
import org.apache.log4j.Logger;
import com.cloud.api.ApiConstants;
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.EventResponse;
import com.cloud.api.response.ListResponse;
import com.cloud.event.EventVO;
import com.cloud.user.User;
import com.cloud.event.Event;
@Implementation(description="A command to list events.", responseObject=EventResponse.class)
public class ListEventsCmd extends BaseListCmd {
@ -114,28 +112,11 @@ public class ListEventsCmd extends BaseListCmd {
@Override
public void execute(){
List<EventVO> result = _mgr.searchForEvents(this);
List<? extends Event> result = _mgr.searchForEvents(this);
ListResponse<EventResponse> response = new ListResponse<EventResponse>();
List<EventResponse> eventResponses = new ArrayList<EventResponse>();
for (EventVO event : result) {
EventResponse responseEvent = new EventResponse();
responseEvent.setAccountName(event.getAccountName());
responseEvent.setCreated(event.getCreateDate());
responseEvent.setDescription(event.getDescription());
responseEvent.setDomainId(event.getDomainId());
responseEvent.setEventType(event.getType());
responseEvent.setId(event.getId());
responseEvent.setLevel(event.getLevel());
responseEvent.setParentId(event.getStartId());
responseEvent.setState(event.getState());
responseEvent.setDomainName(ApiDBUtils.findDomainById(event.getDomainId()).getName());
User user = ApiDBUtils.findUserById(event.getUserId());
if (user != null) {
responseEvent.setUsername(user.getUsername());
}
responseEvent.setObjectName("event");
eventResponses.add(responseEvent);
for (Event event : result) {
eventResponses.add(_responseGenerator.createEventResponse(event));
}
response.setResponses(eventResponses);

View File

@ -29,7 +29,7 @@ import com.cloud.api.Implementation;
import com.cloud.api.Parameter;
import com.cloud.api.response.GuestOSCategoryResponse;
import com.cloud.api.response.ListResponse;
import com.cloud.storage.GuestOSCategoryVO;
import com.cloud.storage.GuestOsCategory;
@Implementation(description="Lists all supported OS categories for this cloud.", responseObject=GuestOSCategoryResponse.class)
public class ListGuestOsCategoriesCmd extends BaseListCmd {
@ -65,10 +65,10 @@ public class ListGuestOsCategoriesCmd extends BaseListCmd {
@Override
public void execute(){
List<GuestOSCategoryVO> result = _mgr.listGuestOSCategoriesByCriteria(this);
List<? extends GuestOsCategory> result = _mgr.listGuestOSCategoriesByCriteria(this);
ListResponse<GuestOSCategoryResponse> response = new ListResponse<GuestOSCategoryResponse>();
List<GuestOSCategoryResponse> osCatResponses = new ArrayList<GuestOSCategoryResponse>();
for (GuestOSCategoryVO osCategory : result) {
for (GuestOsCategory osCategory : result) {
GuestOSCategoryResponse categoryResponse = new GuestOSCategoryResponse();
categoryResponse.setId(osCategory.getId());
categoryResponse.setName(osCategory.getName());

View File

@ -29,7 +29,7 @@ import com.cloud.api.Implementation;
import com.cloud.api.Parameter;
import com.cloud.api.response.GuestOSResponse;
import com.cloud.api.response.ListResponse;
import com.cloud.storage.GuestOSVO;
import com.cloud.storage.GuestOS;
@Implementation(description="Lists all supported OS types for this cloud.", responseObject=GuestOSResponse.class)
public class ListGuestOsCmd extends BaseListCmd {
@ -82,10 +82,10 @@ public class ListGuestOsCmd extends BaseListCmd {
@Override
public void execute(){
List<GuestOSVO> result = _mgr.listGuestOSByCriteria(this);
List<? extends GuestOS> result = _mgr.listGuestOSByCriteria(this);
ListResponse<GuestOSResponse> response = new ListResponse<GuestOSResponse>();
List<GuestOSResponse> osResponses = new ArrayList<GuestOSResponse>();
for (GuestOSVO guestOS : result) {
for (GuestOS guestOS : result) {
GuestOSResponse guestOSResponse = new GuestOSResponse();
guestOSResponse.setDescription(guestOS.getDisplayName());
guestOSResponse.setId(guestOS.getId());

View File

@ -24,13 +24,12 @@ import java.util.List;
import org.apache.log4j.Logger;
import com.cloud.api.ApiConstants;
import com.cloud.api.ApiResponseHelper;
import com.cloud.api.BaseListCmd;
import com.cloud.api.Implementation;
import com.cloud.api.Parameter;
import com.cloud.api.response.HostResponse;
import com.cloud.api.response.ListResponse;
import com.cloud.host.HostVO;
import com.cloud.host.Host;
@Implementation(description="Lists hosts.", responseObject=HostResponse.class)
public class ListHostsCmd extends BaseListCmd {
@ -108,12 +107,12 @@ public class ListHostsCmd extends BaseListCmd {
@Override
public void execute(){
List<HostVO> result = _mgr.searchForServers(this);
List<? extends Host> result = _mgr.searchForServers(this);
ListResponse<HostResponse> response = new ListResponse<HostResponse>();
List<HostResponse> hostResponses = new ArrayList<HostResponse>();
for (HostVO host : result) {
HostResponse hostResponse = ApiResponseHelper.createHostResponse(host);
for (Host host : result) {
HostResponse hostResponse = _responseGenerator.createHostResponse(host);
hostResponse.setObjectName("host");
hostResponses.add(hostResponse);
}

View File

@ -23,14 +23,13 @@ import java.util.List;
import org.apache.log4j.Logger;
import com.cloud.api.ApiConstants;
import com.cloud.api.ApiResponseHelper;
import com.cloud.api.BaseListCmd;
import com.cloud.api.Implementation;
import com.cloud.api.Parameter;
import com.cloud.api.response.FirewallRuleResponse;
import com.cloud.api.response.IpForwardingRuleResponse;
import com.cloud.api.response.ListResponse;
import com.cloud.network.FirewallRuleVO;
import com.cloud.network.rules.FirewallRule;
@Implementation(description="List the ip forwarding rules", responseObject=FirewallRuleResponse.class)
public class ListIpForwardingRulesCmd extends BaseListCmd {
@ -68,11 +67,11 @@ public class ListIpForwardingRulesCmd extends BaseListCmd {
@Override
public void execute(){
List<FirewallRuleVO> result = _mgr.searchForIpForwardingRules(this);
List<? extends FirewallRule> result = _mgr.searchForIpForwardingRules(this);
ListResponse<IpForwardingRuleResponse> response = new ListResponse<IpForwardingRuleResponse>();
List<IpForwardingRuleResponse> ipForwardingResponses = new ArrayList<IpForwardingRuleResponse>();
for (FirewallRuleVO rule : result) {
IpForwardingRuleResponse resp = ApiResponseHelper.createIpForwardingRuleResponse(rule);
for (FirewallRule rule : result) {
IpForwardingRuleResponse resp = _responseGenerator.createIpForwardingRuleResponse(rule);
if (resp != null) {
ipForwardingResponses.add(resp);
}

View File

@ -3,22 +3,24 @@ package com.cloud.api.commands;
import org.apache.log4j.Logger;
import com.cloud.storage.Storage.ImageFormat;
import com.cloud.storage.VMTemplateVO;
import com.cloud.template.VirtualMachineTemplate;
public class ListIsoPermissionsCmd extends ListTemplateOrIsoPermissionsCmd {
protected String getResponseName() {
return "listisopermissionsresponse";
}
public String getMediaType() {
@Override
public String getMediaType() {
return "iso";
}
protected Logger getLogger() {
@Override
protected Logger getLogger() {
return Logger.getLogger(ListIsoPermissionsCmd.class.getName());
}
protected boolean templateIsCorrectType(VMTemplateVO template) {
protected boolean templateIsCorrectType(VirtualMachineTemplate template) {
return template.getFormat().equals(ImageFormat.ISO);
}
}

View File

@ -18,28 +18,18 @@
package com.cloud.api.commands;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.log4j.Logger;
import com.cloud.api.ApiConstants;
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.ListResponse;
import com.cloud.api.response.TemplateResponse;
import com.cloud.async.AsyncJobVO;
import com.cloud.dc.DataCenterVO;
import com.cloud.host.HostVO;
import com.cloud.storage.GuestOS;
import com.cloud.storage.VMTemplateHostVO;
import com.cloud.storage.VMTemplateStorageResourceAssoc.Status;
import com.cloud.storage.VMTemplateVO;
import com.cloud.storage.dao.VMTemplateDao.TemplateFilter;
import com.cloud.template.VirtualMachineTemplate;
import com.cloud.template.VirtualMachineTemplate.TemplateFilter;
import com.cloud.user.Account;
import com.cloud.user.UserContext;
@ -142,7 +132,7 @@ public class ListIsosCmd extends BaseListCmd {
@Override
public void execute(){
List<VMTemplateVO> isos = _mgr.listIsos(this);
List<? extends VirtualMachineTemplate> isos = _mgr.listIsos(this);
TemplateFilter isoFilterObj = null;
try {
@ -158,7 +148,7 @@ public class ListIsosCmd extends BaseListCmd {
boolean isAdmin = false;
boolean isAccountSpecific = true;
Account account = (Account)UserContext.current().getAccount();
Account account = UserContext.current().getAccount();
if ((account == null) || (account.getType() == Account.ACCOUNT_TYPE_ADMIN) || (account.getType() == Account.ACCOUNT_TYPE_DOMAIN_ADMIN)) {
isAdmin = true;
if ((accountName == null) || (domainId == null)) {
@ -173,114 +163,7 @@ public class ListIsosCmd extends BaseListCmd {
(isoFilterObj == TemplateFilter.community);
Map<Long, List<VMTemplateHostVO>> isoHostsMap = new HashMap<Long, List<VMTemplateHostVO>>();
for (VMTemplateVO iso : isos) {
// TODO: implement
List<VMTemplateHostVO> isoHosts = ApiDBUtils.listTemplateHostBy(iso.getId(), zoneId);
if (iso.getName().equals("xs-tools.iso")) {
List<Long> xstoolsZones = new ArrayList<Long>();
// the xs-tools.iso is a special case since it will be available on every computing host in the zone and we want to return it once per zone
List<VMTemplateHostVO> xstoolsHosts = new ArrayList<VMTemplateHostVO>();
for (VMTemplateHostVO isoHost : isoHosts) {
// TODO: implement
HostVO host = ApiDBUtils.findHostById(isoHost.getHostId());
if (!xstoolsZones.contains(Long.valueOf(host.getDataCenterId()))) {
xstoolsZones.add(Long.valueOf(host.getDataCenterId()));
xstoolsHosts.add(isoHost);
}
}
isoHostsMap.put(iso.getId(), xstoolsHosts);
} else {
isoHostsMap.put(iso.getId(), isoHosts);
}
}
ListResponse<TemplateResponse> response = new ListResponse<TemplateResponse>();
List<TemplateResponse> isoResponses = new ArrayList<TemplateResponse>();
for (VMTemplateVO iso : isos) {
List<VMTemplateHostVO> isoHosts = isoHostsMap.get(iso.getId());
for (VMTemplateHostVO isoHost : isoHosts) {
if (onlyReady && isoHost.getDownloadState() != Status.DOWNLOADED) {
continue;
}
TemplateResponse isoResponse = new TemplateResponse();
isoResponse.setId(iso.getId());
isoResponse.setName(iso.getName());
isoResponse.setDisplayText(iso.getDisplayText());
isoResponse.setPublic(iso.isPublicTemplate());
isoResponse.setCreated(isoHost.getCreated());
isoResponse.setReady(isoHost.getDownloadState() == Status.DOWNLOADED);
isoResponse.setBootable(iso.isBootable());
isoResponse.setFeatured(iso.isFeatured());
isoResponse.setCrossZones(iso.isCrossZones());
isoResponse.setPublic(iso.isPublicTemplate());
// TODO: implement
GuestOS os = ApiDBUtils.findGuestOSById(iso.getGuestOSId());
if (os != null) {
isoResponse.setOsTypeId(os.getId());
isoResponse.setOsTypeName(os.getDisplayName());
} else {
isoResponse.setOsTypeId(-1L);
isoResponse.setOsTypeName("");
}
// add account ID and name
Account owner = ApiDBUtils.findAccountById(iso.getAccountId());
if (owner != null) {
isoResponse.setAccount(owner.getAccountName());
isoResponse.setDomainId(owner.getDomainId());
// TODO: implement
isoResponse.setDomainName(ApiDBUtils.findDomainById(owner.getDomainId()).getName());
}
// Add the zone ID
// TODO: implement
HostVO host = ApiDBUtils.findHostById(isoHost.getHostId());
DataCenterVO datacenter = ApiDBUtils.findZoneById(host.getDataCenterId());
isoResponse.setZoneId(host.getDataCenterId());
isoResponse.setZoneName(datacenter.getName());
// If the user is an admin, add the template download status
if (isAdmin || account.getId() == iso.getAccountId()) {
// add download status
if (isoHost.getDownloadState()!=Status.DOWNLOADED) {
String isoStatus = "Processing";
if (isoHost.getDownloadState() == VMTemplateHostVO.Status.DOWNLOADED) {
isoStatus = "Download Complete";
} else if (isoHost.getDownloadState() == VMTemplateHostVO.Status.DOWNLOAD_IN_PROGRESS) {
if (isoHost.getDownloadPercent() == 100) {
isoStatus = "Installing ISO";
} else {
isoStatus = isoHost.getDownloadPercent() + "% Downloaded";
}
} else {
isoStatus = isoHost.getErrorString();
}
isoResponse.setStatus(isoStatus);
} else {
isoResponse.setStatus("Successfully Installed");
}
}
long isoSize = isoHost.getSize();
if (isoSize > 0) {
isoResponse.setSize(isoSize);
}
AsyncJobVO asyncJob = ApiDBUtils.findInstancePendingAsyncJob("vm_template", iso.getId());
if(asyncJob != null) {
isoResponse.setJobId(asyncJob.getId());
isoResponse.setJobStatus(asyncJob.getStatus());
}
isoResponse.setObjectName("iso");
isoResponses.add(isoResponse);
}
}
response.setResponses(isoResponses);
ListResponse<TemplateResponse> response = _responseGenerator.createIsoResponse(isos, zoneId, onlyReady, isAdmin, account);
response.setResponseName(getName());
this.setResponseObject(response);
}

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