1) Return embedded object for upgradeRouter command

2) Build response objects in ApiResponseHelper for stop/start/reboot/list router/systemVm commands
This commit is contained in:
alena 2010-11-02 19:46:22 -07:00
parent 0b177848fa
commit abb8f45667
14 changed files with 167 additions and 345 deletions

View File

@ -25,10 +25,12 @@ import com.cloud.api.response.AccountResponse;
import com.cloud.api.response.ConfigurationResponse;
import com.cloud.api.response.DiskOfferingResponse;
import com.cloud.api.response.DomainResponse;
import com.cloud.api.response.DomainRouterResponse;
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.SystemVmResponse;
import com.cloud.api.response.UserResponse;
import com.cloud.api.response.UserVmResponse;
import com.cloud.async.AsyncJobVO;
@ -52,8 +54,13 @@ import com.cloud.user.UserAccount;
import com.cloud.user.UserContext;
import com.cloud.user.UserStatisticsVO;
import com.cloud.uservm.UserVm;
import com.cloud.vm.ConsoleProxyVO;
import com.cloud.vm.DomainRouter;
import com.cloud.vm.InstanceGroupVO;
import com.cloud.vm.SecondaryStorageVmVO;
import com.cloud.vm.State;
import com.cloud.vm.SystemVm;
import com.cloud.vm.VMInstanceVO;
import com.cloud.vm.VmStats;
public class ApiResponseHelper {
@ -408,6 +415,106 @@ public class ApiResponseHelper {
userVmResponse.setNetworkGroupList(ApiDBUtils.getNetworkGroupsNamesForVm(userVm.getId()));
return userVmResponse;
}
public static SystemVmResponse createSystemVmResponse (VMInstanceVO systemVM) {
SystemVmResponse vmResponse = new SystemVmResponse();
if (systemVM instanceof SystemVm) {
SystemVm vm = (SystemVm)systemVM;
vmResponse.setId(vm.getId());
vmResponse.setSystemVmType(vm.getType().toString().toLowerCase());
String instanceType = "console_proxy";
if (systemVM instanceof SecondaryStorageVmVO) {
instanceType = "sec_storage_vm"; // FIXME: this should be a constant so that the async jobs get updated with the correct instance type, they are using
// different instance types at the moment
}
AsyncJobVO asyncJob = ApiDBUtils.findInstancePendingAsyncJob(instanceType, vm.getId());
if (asyncJob != null) {
vmResponse.setJobId(asyncJob.getId());
vmResponse.setJobStatus(asyncJob.getStatus());
}
vmResponse.setZoneId(vm.getDataCenterId());
vmResponse.setZoneName(ApiDBUtils.findZoneById(vm.getDataCenterId()).getName());
vmResponse.setDns1(vm.getDns1());
vmResponse.setDns2(vm.getDns2());
vmResponse.setNetworkDomain(vm.getDomain());
vmResponse.setGateway(vm.getGateway());
vmResponse.setName(vm.getName());
vmResponse.setPodId(vm.getPodId());
if (vm.getHostId() != null) {
vmResponse.setHostId(vm.getHostId());
vmResponse.setHostName(ApiDBUtils.findHostById(vm.getHostId()).getName());
}
vmResponse.setPrivateIp(vm.getPrivateIpAddress());
vmResponse.setPrivateMacAddress(vm.getPrivateMacAddress());
vmResponse.setPrivateNetmask(vm.getPrivateNetmask());
vmResponse.setPublicIp(vm.getPublicIpAddress());
vmResponse.setPublicMacAddress(vm.getPublicMacAddress());
vmResponse.setPublicNetmask(vm.getPublicNetmask());
vmResponse.setTemplateId(vm.getTemplateId());
vmResponse.setCreated(vm.getCreated());
if (vm.getState() != null) {
vmResponse.setState(vm.getState().toString());
}
}
// for console proxies, add the active sessions
if (systemVM instanceof ConsoleProxyVO) {
ConsoleProxyVO proxy = (ConsoleProxyVO)systemVM;
vmResponse.setActiveViewerSessions(proxy.getActiveSession());
}
return vmResponse;
}
public static DomainRouterResponse createDomainRouterResponse (DomainRouter router) {
DomainRouterResponse routerResponse = new DomainRouterResponse();
routerResponse.setId(router.getId());
AsyncJobVO asyncJob = ApiDBUtils.findInstancePendingAsyncJob("domain_router", router.getId());
if (asyncJob != null) {
routerResponse.setJobId(asyncJob.getId());
routerResponse.setJobStatus(asyncJob.getStatus());
}
routerResponse.setZoneId(router.getDataCenterId());
routerResponse.setZoneName(ApiDBUtils.findZoneById(router.getDataCenterId()).getName());
routerResponse.setDns1(router.getDns1());
routerResponse.setDns2(router.getDns2());
routerResponse.setNetworkDomain(router.getDomain());
routerResponse.setGateway(router.getGateway());
routerResponse.setName(router.getName());
routerResponse.setPodId(router.getPodId());
if (router.getHostId() != null) {
routerResponse.setHostId(router.getHostId());
routerResponse.setHostName(ApiDBUtils.findHostById(router.getHostId()).getName());
}
routerResponse.setPrivateIp(router.getPrivateIpAddress());
routerResponse.setPrivateMacAddress(router.getPrivateMacAddress());
routerResponse.setPrivateNetmask(router.getPrivateNetmask());
routerResponse.setPublicIp(router.getPublicIpAddress());
routerResponse.setPublicMacAddress(router.getPublicMacAddress());
routerResponse.setPublicNetmask(router.getPublicNetmask());
routerResponse.setGuestIpAddress(router.getGuestIpAddress());
routerResponse.setGuestMacAddress(router.getGuestMacAddress());
routerResponse.setGuestNetmask(router.getGuestNetmask());
routerResponse.setTemplateId(router.getTemplateId());
routerResponse.setCreated(router.getCreated());
routerResponse.setState(router.getState());
Account accountTemp = ApiDBUtils.findAccountById(router.getAccountId());
if (accountTemp != null) {
routerResponse.setAccountName(accountTemp.getAccountName());
routerResponse.setDomainId(accountTemp.getDomainId());
routerResponse.setDomainName(ApiDBUtils.findDomainById(accountTemp.getDomainId()).getName());
}
return routerResponse;
}
}

View File

@ -24,15 +24,13 @@ 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.BaseListCmd;
import com.cloud.api.Implementation;
import com.cloud.api.Parameter;
import com.cloud.api.response.DomainRouterResponse;
import com.cloud.api.response.ListResponse;
import com.cloud.async.AsyncJobVO;
import com.cloud.user.Account;
import com.cloud.vm.DomainRouterVO;
import com.cloud.vm.DomainRouter;
@Implementation(method="searchForRouters", description="List routers.")
public class ListRoutersCmd extends BaseListCmd {
@ -108,54 +106,11 @@ public class ListRoutersCmd extends BaseListCmd {
@Override @SuppressWarnings("unchecked")
public ListResponse<DomainRouterResponse> getResponse() {
List<DomainRouterVO> routers = (List<DomainRouterVO>)getResponseObject();
List<DomainRouter> routers = (List<DomainRouter>)getResponseObject();
ListResponse<DomainRouterResponse> response = new ListResponse<DomainRouterResponse>();
List<DomainRouterResponse> routerResponses = new ArrayList<DomainRouterResponse>();
for (DomainRouterVO router : routers) {
DomainRouterResponse routerResponse = new DomainRouterResponse();
routerResponse.setId(router.getId());
AsyncJobVO asyncJob = ApiDBUtils.findInstancePendingAsyncJob("domain_router", router.getId());
if (asyncJob != null) {
routerResponse.setJobId(asyncJob.getId());
routerResponse.setJobStatus(asyncJob.getStatus());
}
routerResponse.setZoneId(router.getDataCenterId());
routerResponse.setZoneName(ApiDBUtils.findZoneById(router.getDataCenterId()).getName());
routerResponse.setDns1(router.getDns1());
routerResponse.setDns2(router.getDns2());
routerResponse.setNetworkDomain(router.getDomain());
routerResponse.setGateway(router.getGateway());
routerResponse.setName(router.getName());
routerResponse.setPodId(router.getPodId());
if (router.getHostId() != null) {
routerResponse.setHostId(router.getHostId());
routerResponse.setHostName(ApiDBUtils.findHostById(router.getHostId()).getName());
}
routerResponse.setPrivateIp(router.getPrivateIpAddress());
routerResponse.setPrivateMacAddress(router.getPrivateMacAddress());
routerResponse.setPrivateNetmask(router.getPrivateNetmask());
routerResponse.setPublicIp(router.getPublicIpAddress());
routerResponse.setPublicMacAddress(router.getPublicMacAddress());
routerResponse.setPublicNetmask(router.getPublicNetmask());
routerResponse.setGuestIpAddress(router.getGuestIpAddress());
routerResponse.setGuestMacAddress(router.getGuestMacAddress());
routerResponse.setGuestNetmask(router.getGuestNetmask());
routerResponse.setTemplateId(router.getTemplateId());
routerResponse.setCreated(router.getCreated());
routerResponse.setState(router.getState());
Account accountTemp = ApiDBUtils.findAccountById(router.getAccountId());
if (accountTemp != null) {
routerResponse.setAccountName(accountTemp.getAccountName());
routerResponse.setDomainId(accountTemp.getDomainId());
routerResponse.setDomainName(ApiDBUtils.findDomainById(accountTemp.getDomainId()).getName());
}
for (DomainRouter router : routers) {
DomainRouterResponse routerResponse = ApiResponseHelper.createDomainRouterResponse(router);
routerResponse.setResponseName("router");
routerResponses.add(routerResponse);
}

View File

@ -23,16 +23,12 @@ 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.BaseListCmd;
import com.cloud.api.Implementation;
import com.cloud.api.Parameter;
import com.cloud.api.response.ListResponse;
import com.cloud.api.response.SystemVmResponse;
import com.cloud.async.AsyncJobVO;
import com.cloud.vm.ConsoleProxyVO;
import com.cloud.vm.SecondaryStorageVmVO;
import com.cloud.vm.SystemVm;
import com.cloud.vm.VMInstanceVO;
@Implementation(method="searchForSystemVm", description="List system virtual machines.")
@ -110,60 +106,10 @@ public class ListSystemVMsCmd extends BaseListCmd {
@Override @SuppressWarnings("unchecked")
public ListResponse<SystemVmResponse> getResponse() {
List<? extends VMInstanceVO> systemVMs = (List<? extends VMInstanceVO>)getResponseObject();
ListResponse<SystemVmResponse> response = new ListResponse<SystemVmResponse>();
List<SystemVmResponse> vmResponses = new ArrayList<SystemVmResponse>();
for (VMInstanceVO systemVM : systemVMs) {
SystemVmResponse vmResponse = new SystemVmResponse();
if (systemVM instanceof SystemVm) {
SystemVm vm = (SystemVm)systemVM;
vmResponse.setId(vm.getId());
vmResponse.setSystemVmType(vm.getType().toString().toLowerCase());
String instanceType = "console_proxy";
if (systemVM instanceof SecondaryStorageVmVO) {
instanceType = "sec_storage_vm"; // FIXME: this should be a constant so that the async jobs get updated with the correct instance type, they are using
// different instance types at the moment
}
AsyncJobVO asyncJob = ApiDBUtils.findInstancePendingAsyncJob(instanceType, vm.getId());
if (asyncJob != null) {
vmResponse.setJobId(asyncJob.getId());
vmResponse.setJobStatus(asyncJob.getStatus());
}
vmResponse.setZoneId(vm.getDataCenterId());
vmResponse.setZoneName(ApiDBUtils.findZoneById(vm.getDataCenterId()).getName());
vmResponse.setDns1(vm.getDns1());
vmResponse.setDns2(vm.getDns2());
vmResponse.setNetworkDomain(vm.getDomain());
vmResponse.setGateway(vm.getGateway());
vmResponse.setName(vm.getName());
vmResponse.setPodId(vm.getPodId());
if (vm.getHostId() != null) {
vmResponse.setHostId(vm.getHostId());
vmResponse.setHostName(ApiDBUtils.findHostById(vm.getHostId()).getName());
}
vmResponse.setPrivateIp(vm.getPrivateIpAddress());
vmResponse.setPrivateMacAddress(vm.getPrivateMacAddress());
vmResponse.setPrivateNetmask(vm.getPrivateNetmask());
vmResponse.setPublicIp(vm.getPublicIpAddress());
vmResponse.setPublicMacAddress(vm.getPublicMacAddress());
vmResponse.setPublicNetmask(vm.getPublicNetmask());
vmResponse.setTemplateId(vm.getTemplateId());
vmResponse.setCreated(vm.getCreated());
if (vm.getState() != null) {
vmResponse.setState(vm.getState().toString());
}
}
// for console proxies, add the active sessions
if (systemVM instanceof ConsoleProxyVO) {
ConsoleProxyVO proxy = (ConsoleProxyVO)systemVM;
vmResponse.setActiveViewerSessions(proxy.getActiveSession());
}
SystemVmResponse vmResponse = ApiResponseHelper.createSystemVmResponse(systemVM);
vmResponse.setResponseName("systemvm");
vmResponses.add(vmResponse);
}

View File

@ -22,6 +22,7 @@ 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.Implementation;
import com.cloud.api.Parameter;
@ -29,6 +30,7 @@ import com.cloud.api.response.DomainRouterResponse;
import com.cloud.event.EventTypes;
import com.cloud.network.NetworkManager;
import com.cloud.user.Account;
import com.cloud.vm.DomainRouter;
import com.cloud.vm.DomainRouterVO;
@Implementation(method="rebootRouter", manager=NetworkManager.class, description="Starts a router.")
@ -82,44 +84,8 @@ public class RebootRouterCmd extends BaseAsyncCmd {
@Override @SuppressWarnings("unchecked")
public DomainRouterResponse getResponse() {
DomainRouterResponse response = new DomainRouterResponse();
DomainRouterVO router = (DomainRouterVO)getResponseObject();
response.setId(router.getId());
response.setZoneId(router.getDataCenterId());
response.setZoneName(ApiDBUtils.findZoneById(router.getDataCenterId()).getName());
response.setDns1(router.getDns1());
response.setDns2(router.getDns2());
response.setNetworkDomain(router.getDomain());
response.setGateway(router.getGateway());
response.setName(router.getName());
response.setPodId(router.getPodId());
if (router.getHostId() != null) {
response.setHostId(router.getHostId());
response.setHostName(ApiDBUtils.findHostById(router.getHostId()).getName());
}
response.setPrivateIp(router.getPrivateIpAddress());
response.setPrivateMacAddress(router.getPrivateMacAddress());
response.setPrivateNetmask(router.getPrivateNetmask());
response.setPublicIp(router.getPublicIpAddress());
response.setPublicMacAddress(router.getPublicMacAddress());
response.setPublicNetmask(router.getPublicNetmask());
response.setGuestIpAddress(router.getGuestIpAddress());
response.setGuestMacAddress(router.getGuestMacAddress());
response.setGuestNetmask(router.getGuestNetmask());
response.setTemplateId(router.getTemplateId());
response.setCreated(router.getCreated());
response.setState(router.getState());
Account accountTemp = ApiDBUtils.findAccountById(router.getAccountId());
if (accountTemp != null) {
response.setAccountName(accountTemp.getAccountName());
response.setDomainId(accountTemp.getDomainId());
response.setDomainName(ApiDBUtils.findDomainById(accountTemp.getDomainId()).getName());
}
DomainRouter router = (DomainRouter)getResponseObject();
DomainRouterResponse response = ApiResponseHelper.createDomainRouterResponse(router);
response.setResponseName(getName());
return response;
}

View File

@ -21,7 +21,7 @@ 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.Implementation;
import com.cloud.api.Parameter;
@ -30,8 +30,6 @@ import com.cloud.event.EventTypes;
import com.cloud.server.ManagementServer;
import com.cloud.user.Account;
import com.cloud.user.UserContext;
import com.cloud.vm.ConsoleProxyVO;
import com.cloud.vm.SecondaryStorageVmVO;
import com.cloud.vm.VMInstanceVO;
@Implementation(method="rebootSystemVM", manager=ManagementServer.class, description="Reboots a system VM.")
@ -87,48 +85,7 @@ public class RebootSystemVmCmd extends BaseAsyncCmd {
@Override @SuppressWarnings("unchecked")
public SystemVmResponse getResponse() {
VMInstanceVO instance = (VMInstanceVO)getResponseObject();
SystemVmResponse response = new SystemVmResponse();
response.setId(instance.getId());
response.setName(instance.getName());
response.setZoneId(instance.getDataCenterId());
response.setZoneName(ApiDBUtils.findZoneById(instance.getDataCenterId()).getName());
response.setPodId(instance.getPodId());
response.setHostId(instance.getHostId());
if (response.getHostId() != null) {
response.setHostName(ApiDBUtils.findHostById(instance.getHostId()).getName());
}
response.setPrivateIp(instance.getPrivateIpAddress());
response.setPrivateMacAddress(instance.getPrivateMacAddress());
response.setPrivateNetmask(instance.getPrivateNetmask());
response.setTemplateId(instance.getTemplateId());
response.setCreated(instance.getCreated());
response.setState(instance.getState().toString());
if (instance instanceof SecondaryStorageVmVO) {
SecondaryStorageVmVO ssVm = (SecondaryStorageVmVO) instance;
response.setDns1(ssVm.getDns1());
response.setDns2(ssVm.getDns2());
response.setNetworkDomain(ssVm.getDomain());
response.setGateway(ssVm.getGateway());
response.setPublicIp(ssVm.getPublicIpAddress());
response.setPublicMacAddress(ssVm.getPublicMacAddress());
response.setPublicNetmask(ssVm.getPublicNetmask());
} else if (instance instanceof ConsoleProxyVO) {
ConsoleProxyVO proxy = (ConsoleProxyVO)instance;
response.setDns1(proxy.getDns1());
response.setDns2(proxy.getDns2());
response.setNetworkDomain(proxy.getDomain());
response.setGateway(proxy.getGateway());
response.setPublicIp(proxy.getPublicIpAddress());
response.setPublicMacAddress(proxy.getPublicMacAddress());
response.setPublicNetmask(proxy.getPublicNetmask());
response.setActiveViewerSessions(proxy.getActiveSession());
}
SystemVmResponse response = ApiResponseHelper.createSystemVmResponse(instance);
response.setResponseName(getName());
return response;
}

View File

@ -22,6 +22,7 @@ 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.Implementation;
import com.cloud.api.Parameter;
@ -30,7 +31,7 @@ import com.cloud.event.EventTypes;
import com.cloud.network.DomainRouterService;
import com.cloud.user.Account;
import com.cloud.uservm.UserVm;
import com.cloud.vm.DomainRouterVO;
import com.cloud.vm.DomainRouter;
@Implementation(method="startRouter", manager=DomainRouterService.class, description="Starts a router.")
@ -89,44 +90,8 @@ public class StartRouterCmd extends BaseAsyncCmd {
@Override @SuppressWarnings("unchecked")
public DomainRouterResponse getResponse() {
DomainRouterResponse routerResponse = new DomainRouterResponse();
DomainRouterVO router = (DomainRouterVO)getResponseObject();
routerResponse.setId(router.getId());
routerResponse.setZoneId(router.getDataCenterId());
routerResponse.setZoneName(ApiDBUtils.findZoneById(router.getDataCenterId()).getName());
routerResponse.setDns1(router.getDns1());
routerResponse.setDns2(router.getDns2());
routerResponse.setNetworkDomain(router.getDomain());
routerResponse.setGateway(router.getGateway());
routerResponse.setName(router.getName());
routerResponse.setPodId(router.getPodId());
if (router.getHostId() != null) {
routerResponse.setHostId(router.getHostId());
routerResponse.setHostName(ApiDBUtils.findHostById(router.getHostId()).getName());
}
routerResponse.setPrivateIp(router.getPrivateIpAddress());
routerResponse.setPrivateMacAddress(router.getPrivateMacAddress());
routerResponse.setPrivateNetmask(router.getPrivateNetmask());
routerResponse.setPublicIp(router.getPublicIpAddress());
routerResponse.setPublicMacAddress(router.getPublicMacAddress());
routerResponse.setPublicNetmask(router.getPublicNetmask());
routerResponse.setGuestIpAddress(router.getGuestIpAddress());
routerResponse.setGuestMacAddress(router.getGuestMacAddress());
routerResponse.setGuestNetmask(router.getGuestNetmask());
routerResponse.setTemplateId(router.getTemplateId());
routerResponse.setCreated(router.getCreated());
routerResponse.setState(router.getState());
Account accountTemp = ApiDBUtils.findAccountById(router.getAccountId());
if (accountTemp != null) {
routerResponse.setAccountName(accountTemp.getAccountName());
routerResponse.setDomainId(accountTemp.getDomainId());
routerResponse.setDomainName(ApiDBUtils.findDomainById(accountTemp.getDomainId()).getName());
}
DomainRouter router = (DomainRouter)getResponseObject();
DomainRouterResponse routerResponse = ApiResponseHelper.createDomainRouterResponse(router);
routerResponse.setResponseName(getName());
return routerResponse;
}

View File

@ -21,7 +21,7 @@ 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.Implementation;
import com.cloud.api.Parameter;
@ -30,8 +30,6 @@ import com.cloud.event.EventTypes;
import com.cloud.server.ManagementServer;
import com.cloud.user.Account;
import com.cloud.user.UserContext;
import com.cloud.vm.ConsoleProxyVO;
import com.cloud.vm.SecondaryStorageVmVO;
import com.cloud.vm.VMInstanceVO;
@Implementation(method="startSystemVM", manager=ManagementServer.class, description="Starts a system virtual machine.")
@ -91,48 +89,7 @@ public class StartSystemVMCmd extends BaseAsyncCmd {
@Override @SuppressWarnings("unchecked")
public SystemVmResponse getResponse() {
VMInstanceVO instance = (VMInstanceVO)getResponseObject();
SystemVmResponse response = new SystemVmResponse();
response.setId(instance.getId());
response.setName(instance.getName());
response.setZoneId(instance.getDataCenterId());
response.setZoneName(ApiDBUtils.findZoneById(instance.getDataCenterId()).getName());
response.setPodId(instance.getPodId());
response.setHostId(instance.getHostId());
if (response.getHostId() != null) {
response.setHostName(ApiDBUtils.findHostById(instance.getHostId()).getName());
}
response.setPrivateIp(instance.getPrivateIpAddress());
response.setPrivateMacAddress(instance.getPrivateMacAddress());
response.setPrivateNetmask(instance.getPrivateNetmask());
response.setTemplateId(instance.getTemplateId());
response.setCreated(instance.getCreated());
response.setState(instance.getState().toString());
if (instance instanceof SecondaryStorageVmVO) {
SecondaryStorageVmVO ssVm = (SecondaryStorageVmVO) instance;
response.setDns1(ssVm.getDns1());
response.setDns2(ssVm.getDns2());
response.setNetworkDomain(ssVm.getDomain());
response.setGateway(ssVm.getGateway());
response.setPublicIp(ssVm.getPublicIpAddress());
response.setPublicMacAddress(ssVm.getPublicMacAddress());
response.setPublicNetmask(ssVm.getPublicNetmask());
} else if (instance instanceof ConsoleProxyVO) {
ConsoleProxyVO proxy = (ConsoleProxyVO)instance;
response.setDns1(proxy.getDns1());
response.setDns2(proxy.getDns2());
response.setNetworkDomain(proxy.getDomain());
response.setGateway(proxy.getGateway());
response.setPublicIp(proxy.getPublicIpAddress());
response.setPublicMacAddress(proxy.getPublicMacAddress());
response.setPublicNetmask(proxy.getPublicNetmask());
response.setActiveViewerSessions(proxy.getActiveSession());
}
SystemVmResponse response = ApiResponseHelper.createSystemVmResponse(instance);
response.setResponseName(getName());
return response;
}

View File

@ -22,6 +22,7 @@ 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.Implementation;
import com.cloud.api.Parameter;
@ -30,7 +31,7 @@ import com.cloud.event.EventTypes;
import com.cloud.network.DomainRouterService;
import com.cloud.user.Account;
import com.cloud.uservm.UserVm;
import com.cloud.vm.DomainRouterVO;
import com.cloud.vm.DomainRouter;
@Implementation(method="stopRouter", manager=DomainRouterService.class, description="Stops a router.")
@ -84,46 +85,8 @@ public class StopRouterCmd extends BaseAsyncCmd {
@Override @SuppressWarnings("unchecked")
public DomainRouterResponse getResponse() {
DomainRouterVO router = (DomainRouterVO)getResponseObject();
DomainRouterResponse response = new DomainRouterResponse();
response.setId(router.getId());
response.setZoneId(router.getDataCenterId());
response.setZoneName(ApiDBUtils.findZoneById(router.getDataCenterId()).getName());
response.setDns1(router.getDns1());
response.setDns2(router.getDns2());
response.setNetworkDomain(router.getDomain());
response.setGateway(router.getGateway());
response.setName(router.getName());
response.setPodId(router.getPodId());
response.setPrivateIp(router.getPrivateIpAddress());
response.setPrivateMacAddress(router.getPrivateMacAddress());
response.setPrivateNetmask(router.getPrivateNetmask());
response.setPublicIp(router.getPublicIpAddress());
response.setPublicMacAddress(router.getPublicMacAddress());
response.setPublicNetmask(router.getPrivateNetmask());
response.setGuestIpAddress(router.getGuestIpAddress());
response.setGuestMacAddress(router.getGuestMacAddress());
response.setTemplateId(router.getTemplateId());
response.setCreated(router.getCreated());
response.setGuestNetmask(router.getGuestNetmask());
if (router.getHostId() != null) {
response.setHostName(ApiDBUtils.findHostById(router.getHostId()).getName());
response.setHostId(router.getHostId());
}
Account acct = ApiDBUtils.findAccountById(router.getAccountId());
if (acct != null) {
response.setAccountName(acct.getAccountName());
response.setDomainId(acct.getDomainId());
response.setDomainName(ApiDBUtils.findDomainById(acct.getDomainId()).getName());
}
if (router.getState() != null) {
response.setState(router.getState());
}
DomainRouter router = (DomainRouter)getResponseObject();
DomainRouterResponse response =ApiResponseHelper.createDomainRouterResponse(router);
response.setResponseName(getName());
return response;
}

View File

@ -20,11 +20,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.response.SuccessResponse;
import com.cloud.api.response.DomainRouterResponse;
import com.cloud.network.NetworkManager;
import com.cloud.vm.DomainRouter;
@Implementation(method="upgradeRouter", manager=NetworkManager.class)
public class UpgradeRouterCmd extends BaseCmd {
@ -63,12 +65,10 @@ public class UpgradeRouterCmd extends BaseCmd {
}
@Override @SuppressWarnings("unchecked")
public SuccessResponse getResponse() {
Boolean success = (Boolean)getResponseObject();
SuccessResponse response = new SuccessResponse();
response.setSuccess(success);
response.setResponseName(getName());
return response;
}
public DomainRouterResponse getResponse() {
DomainRouter router = (DomainRouter)getResponseObject();
DomainRouterResponse routerResponse = ApiResponseHelper.createDomainRouterResponse(router);
routerResponse.setResponseName(getName());
return routerResponse;
}
}

View File

@ -22,7 +22,7 @@ import com.cloud.api.commands.StopRouterCmd;
import com.cloud.exception.InvalidParameterValueException;
import com.cloud.exception.PermissionDeniedException;
import com.cloud.utils.component.Manager;
import com.cloud.vm.DomainRouterVO;
import com.cloud.vm.DomainRouter;
public interface DomainRouterService extends Manager {
/**
@ -31,7 +31,7 @@ public interface DomainRouterService extends Manager {
* @return DomainRouter object
* @throws InvalidParameterValueException, PermissionDeniedException
*/
DomainRouterVO startRouter(StartRouterCmd cmd) throws InvalidParameterValueException, PermissionDeniedException;
DomainRouter startRouter(StartRouterCmd cmd) throws InvalidParameterValueException, PermissionDeniedException;
/**
* Stops domain router
@ -39,5 +39,5 @@ public interface DomainRouterService extends Manager {
* @return router if successful, null otherwise
* @throws InvalidParameterValueException, PermissionDeniedException
*/
DomainRouterVO stopRouter(StopRouterCmd cmd);
DomainRouter stopRouter(StopRouterCmd cmd);
}

View File

@ -122,7 +122,7 @@ public interface NetworkManager extends Manager {
* @return DomainRouter object
* @throws InvalidParameterValueException, PermissionDeniedException
*/
DomainRouterVO startRouter(StartRouterCmd cmd);
DomainRouter startRouter(StartRouterCmd cmd);
boolean releaseRouter(long routerId);
@ -136,7 +136,7 @@ public interface NetworkManager extends Manager {
* @return router if successful, null otherwise
* @throws InvalidParameterValueException, PermissionDeniedException
*/
DomainRouterVO stopRouter(StopRouterCmd cmd);
DomainRouter stopRouter(StopRouterCmd cmd);
boolean getRouterStatistics(long vmId, Map<String, long[]> netStats, Map<String, long[]> diskStats);
@ -148,7 +148,7 @@ public interface NetworkManager extends Manager {
* @return the rebooted router
* @throws InvalidParameterValueException, PermissionDeniedException
*/
DomainRouterVO rebootRouter(RebootRouterCmd cmd);
DomainRouter rebootRouter(RebootRouterCmd cmd);
/**
* @param hostId get all of the virtual machine routers on a host.
* @return collection of VirtualMachineRouter
@ -306,7 +306,7 @@ public interface NetworkManager extends Manager {
void release(VirtualMachineProfile vmProfile);
<K extends VMInstanceVO> List<NicVO> getNics(K vm);
boolean upgradeRouter(UpgradeRouterCmd cmd);
DomainRouter upgradeRouter(UpgradeRouterCmd cmd);
List<AccountVO> getAccountsUsingNetworkConfiguration(long configurationId);
AccountVO getNetworkConfigurationOwner(long configurationId);

View File

@ -485,7 +485,7 @@ public class NetworkManagerImpl implements NetworkManager, DomainRouterService {
}
@Override
public boolean upgradeRouter(UpgradeRouterCmd cmd) throws InvalidParameterValueException, PermissionDeniedException {
public DomainRouter upgradeRouter(UpgradeRouterCmd cmd) throws InvalidParameterValueException, PermissionDeniedException {
return _routerMgr.upgradeRouter(cmd);
}
@ -500,7 +500,7 @@ public class NetworkManagerImpl implements NetworkManager, DomainRouterService {
}
@Override
public DomainRouterVO startRouter(StartRouterCmd cmd) throws InvalidParameterValueException, PermissionDeniedException {
public DomainRouter startRouter(StartRouterCmd cmd) throws InvalidParameterValueException, PermissionDeniedException {
return _routerMgr.startRouter(cmd);
}
@ -511,7 +511,7 @@ public class NetworkManagerImpl implements NetworkManager, DomainRouterService {
@Override
public DomainRouterVO stopRouter(StopRouterCmd cmd) throws InvalidParameterValueException, PermissionDeniedException{
public DomainRouter stopRouter(StopRouterCmd cmd) throws InvalidParameterValueException, PermissionDeniedException{
return _routerMgr.stopRouter(cmd);
}

View File

@ -101,7 +101,7 @@ public interface DomainRouterManager extends Manager {
* @return DomainRouter object
* @throws InvalidParameterValueException, PermissionDeniedException
*/
DomainRouterVO startRouter(StartRouterCmd cmd) throws InvalidParameterValueException, PermissionDeniedException;
DomainRouter startRouter(StartRouterCmd cmd) throws InvalidParameterValueException, PermissionDeniedException;
boolean releaseRouter(long routerId);
@ -115,7 +115,7 @@ public interface DomainRouterManager extends Manager {
* @return router if successful, null otherwise
* @throws InvalidParameterValueException, PermissionDeniedException
*/
DomainRouterVO stopRouter(StopRouterCmd cmd) throws InvalidParameterValueException, PermissionDeniedException;
DomainRouter stopRouter(StopRouterCmd cmd) throws InvalidParameterValueException, PermissionDeniedException;
boolean getRouterStatistics(long vmId, Map<String, long[]> netStats, Map<String, long[]> diskStats);
@ -124,10 +124,10 @@ public interface DomainRouterManager extends Manager {
/**
* Reboots domain router
* @param cmd the command specifying router's id
* @return success or failure
* @return router if successful
* @throws InvalidParameterValueException, PermissionDeniedException
*/
boolean rebootRouter(RebootRouterCmd cmd) throws InvalidParameterValueException, PermissionDeniedException;
DomainRouter rebootRouter(RebootRouterCmd cmd) throws InvalidParameterValueException, PermissionDeniedException;
/**
* @param hostId get all of the virtual machine routers on a host.
* @return collection of VirtualMachineRouter
@ -167,7 +167,7 @@ public interface DomainRouterManager extends Manager {
String createZoneVlan(DomainRouterVO router);
boolean upgradeRouter(UpgradeRouterCmd cmd) throws InvalidParameterValueException, PermissionDeniedException;
DomainRouter upgradeRouter(UpgradeRouterCmd cmd) throws InvalidParameterValueException, PermissionDeniedException;
DomainRouterVO getRouter(long accountId, long zoneId);
DomainRouterVO getRouter(String publicIpAddress);

View File

@ -657,7 +657,7 @@ public class DomainRouterManagerImpl implements DomainRouterManager, VirtualMach
@Override
@DB
public boolean upgradeRouter(UpgradeRouterCmd cmd) throws InvalidParameterValueException, PermissionDeniedException {
public DomainRouter upgradeRouter(UpgradeRouterCmd cmd) throws InvalidParameterValueException, PermissionDeniedException {
Long routerId = cmd.getId();
Long serviceOfferingId = cmd.getServiceOfferingId();
Account account = UserContext.current().getAccount();
@ -673,7 +673,7 @@ public class DomainRouterManagerImpl implements DomainRouterManager, VirtualMach
if (router.getServiceOfferingId() == serviceOfferingId) {
s_logger.debug("Router: " + routerId + "already has service offering: " + serviceOfferingId);
return true;
return _routerDao.findById(routerId);
}
ServiceOfferingVO newServiceOffering = _serviceOfferingDao.findById(serviceOfferingId);
@ -693,7 +693,10 @@ public class DomainRouterManagerImpl implements DomainRouterManager, VirtualMach
}
router.setServiceOfferingId(serviceOfferingId);
return _routerDao.update(routerId, router);
if (_routerDao.update(routerId, router))
return _routerDao.findById(routerId);
else
throw new CloudRuntimeException("Unable to upgrade router " + routerId);
}
@ -747,7 +750,7 @@ public class DomainRouterManagerImpl implements DomainRouterManager, VirtualMach
}
@Override
public DomainRouterVO startRouter(StartRouterCmd cmd) throws InvalidParameterValueException, PermissionDeniedException{
public DomainRouter startRouter(StartRouterCmd cmd) throws InvalidParameterValueException, PermissionDeniedException{
Long routerId = cmd.getId();
Account account = UserContext.current().getAccount();
@ -1234,7 +1237,7 @@ public class DomainRouterManagerImpl implements DomainRouterManager, VirtualMach
@Override
public DomainRouterVO stopRouter(StopRouterCmd cmd) throws InvalidParameterValueException, PermissionDeniedException{
public DomainRouter stopRouter(StopRouterCmd cmd) throws InvalidParameterValueException, PermissionDeniedException{
Long routerId = cmd.getId();
Account account = UserContext.current().getAccount();
@ -1382,7 +1385,7 @@ public class DomainRouterManagerImpl implements DomainRouterManager, VirtualMach
}
@Override
public boolean rebootRouter(RebootRouterCmd cmd) throws InvalidParameterValueException, PermissionDeniedException{
public DomainRouter rebootRouter(RebootRouterCmd cmd) throws InvalidParameterValueException, PermissionDeniedException{
Long routerId = cmd.getId();
Account account = UserContext.current().getAccount();
@ -1397,7 +1400,10 @@ public class DomainRouterManagerImpl implements DomainRouterManager, VirtualMach
}
long eventId = EventUtils.saveScheduledEvent(User.UID_SYSTEM, Account.ACCOUNT_ID_SYSTEM, EventTypes.EVENT_ROUTER_REBOOT, "rebooting Router with Id: "+routerId);
return rebootRouter(routerId, eventId);
if (rebootRouter(routerId, eventId))
return _routerDao.findById(routerId);
else
throw new CloudRuntimeException("Fail to reboot router " + routerId);
}
@Override