Skip to content

Commit a788d2c

Browse files
author
Kris McQueen
committed
bug 6736: rebootSystemVm should return the vm properties, not success true/false.
status 6736: resolved fixed
1 parent 95da86e commit a788d2c

4 files changed

Lines changed: 65 additions & 19 deletions

File tree

server/src/com/cloud/api/commands/RebootSystemVmCmd.java

Lines changed: 49 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -20,14 +20,18 @@
2020

2121
import org.apache.log4j.Logger;
2222

23+
import com.cloud.api.ApiDBUtils;
2324
import com.cloud.api.BaseAsyncCmd;
2425
import com.cloud.api.BaseCmd.Manager;
2526
import com.cloud.api.Implementation;
2627
import com.cloud.api.Parameter;
27-
import com.cloud.api.response.SuccessResponse;
28+
import com.cloud.api.response.SystemVmResponse;
2829
import com.cloud.event.EventTypes;
2930
import com.cloud.user.Account;
3031
import com.cloud.user.UserContext;
32+
import com.cloud.vm.ConsoleProxyVO;
33+
import com.cloud.vm.SecondaryStorageVmVO;
34+
import com.cloud.vm.VMInstanceVO;
3135

3236
@Implementation(method="rebootSystemVM", manager=Manager.ManagementServer, description="Reboots a system VM.")
3337
public class RebootSystemVmCmd extends BaseAsyncCmd {
@@ -80,10 +84,50 @@ public String getEventDescription() {
8084
}
8185

8286
@Override @SuppressWarnings("unchecked")
83-
public SuccessResponse getResponse() {
84-
Boolean success = (Boolean)getResponseObject();
85-
SuccessResponse response = new SuccessResponse();
86-
response.setSuccess(success);
87+
public SystemVmResponse getResponse() {
88+
VMInstanceVO instance = (VMInstanceVO)getResponseObject();
89+
90+
SystemVmResponse response = new SystemVmResponse();
91+
response.setId(instance.getId());
92+
response.setName(instance.getName());
93+
response.setZoneId(instance.getDataCenterId());
94+
response.setZoneName(ApiDBUtils.findZoneById(instance.getDataCenterId()).getName());
95+
response.setPodId(instance.getPodId());
96+
response.setHostId(instance.getHostId());
97+
if (response.getHostId() != null) {
98+
response.setHostName(ApiDBUtils.findHostById(instance.getHostId()).getName());
99+
}
100+
101+
response.setPrivateIp(instance.getPrivateIpAddress());
102+
response.setPrivateMacAddress(instance.getPrivateMacAddress());
103+
response.setPrivateNetmask(instance.getPrivateNetmask());
104+
response.setTemplateId(instance.getTemplateId());
105+
response.setCreated(instance.getCreated());
106+
response.setState(instance.getState().toString());
107+
108+
if (instance instanceof SecondaryStorageVmVO) {
109+
SecondaryStorageVmVO ssVm = (SecondaryStorageVmVO) instance;
110+
response.setDns1(ssVm.getDns1());
111+
response.setDns2(ssVm.getDns2());
112+
response.setNetworkDomain(ssVm.getDomain());
113+
response.setGateway(ssVm.getGateway());
114+
115+
response.setPublicIp(ssVm.getPublicIpAddress());
116+
response.setPublicMacAddress(ssVm.getPublicMacAddress());
117+
response.setPublicNetmask(ssVm.getPublicNetmask());
118+
} else if (instance instanceof ConsoleProxyVO) {
119+
ConsoleProxyVO proxy = (ConsoleProxyVO)instance;
120+
response.setDns1(proxy.getDns1());
121+
response.setDns2(proxy.getDns2());
122+
response.setNetworkDomain(proxy.getDomain());
123+
response.setGateway(proxy.getGateway());
124+
125+
response.setPublicIp(proxy.getPublicIpAddress());
126+
response.setPublicMacAddress(proxy.getPublicMacAddress());
127+
response.setPublicNetmask(proxy.getPublicNetmask());
128+
response.setActiveViewerSessions(proxy.getActiveSession());
129+
}
130+
87131
response.setResponseName(getName());
88132
return response;
89133
}

server/src/com/cloud/async/executor/RebootConsoleProxyExecutor.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ public boolean execute() {
3939
AsyncJobVO job = getJob();
4040
ManagementServer managementServer = asyncMgr.getExecutorContext().getManagementServer();
4141
VMOperationParam param = gson.fromJson(job.getCmdInfo(), VMOperationParam.class);
42-
42+
/*
4343
if(getSyncSource() == null) {
4444
asyncMgr.syncAsyncJobExecution(job, "ConsoleProxy", param.getVmId());
4545
return true;
@@ -58,7 +58,9 @@ public boolean execute() {
5858
e.getMessage());
5959
}
6060
return true;
61-
}
61+
}
62+
*/
63+
return true;
6264
}
6365

6466
public void processAnswer(VMOperationListener listener, long agentId, long seq, Answer answer) {

server/src/com/cloud/server/ManagementServer.java

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -145,6 +145,7 @@
145145
import com.cloud.uservm.UserVm;
146146
import com.cloud.utils.Pair;
147147
import com.cloud.utils.exception.ExecutionException;
148+
import com.cloud.vm.ConsoleProxy;
148149
import com.cloud.vm.ConsoleProxyVO;
149150
import com.cloud.vm.DomainRouterVO;
150151
import com.cloud.vm.InstanceGroupVO;
@@ -788,13 +789,13 @@ public interface ManagementServer {
788789
ConsoleProxyInfo getConsoleProxy(long dataCenterId, long userVmId);
789790
ConsoleProxyVO startConsoleProxy(long instanceId, long startEventId) throws InternalErrorException;
790791
boolean stopConsoleProxy(long instanceId, long startEventId);
791-
boolean rebootConsoleProxy(long instanceId, long startEventId);
792+
ConsoleProxyVO rebootConsoleProxy(long instanceId, long startEventId);
792793
String getConsoleAccessUrlRoot(long vmId);
793794
ConsoleProxyVO findConsoleProxyById(long instanceId);
794795
VMInstanceVO findSystemVMById(long instanceId);
795796
VMInstanceVO stopSystemVM(StopSystemVmCmd cmd);
796797
VMInstanceVO startSystemVM(StartSystemVMCmd cmd) throws InternalErrorException;
797-
boolean rebootSystemVM(RebootSystemVmCmd cmd);
798+
VMInstanceVO rebootSystemVM(RebootSystemVmCmd cmd);
798799

799800
/**
800801
* Returns a configuration value with the specified name

server/src/com/cloud/server/ManagementServerImpl.java

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@
2626
import java.net.UnknownHostException;
2727
import java.security.MessageDigest;
2828
import java.security.NoSuchAlgorithmException;
29-
import java.security.cert.Certificate;
3029
import java.util.ArrayList;
3130
import java.util.Arrays;
3231
import java.util.Calendar;
@@ -146,10 +145,8 @@
146145
import com.cloud.async.AsyncJobVO;
147146
import com.cloud.async.BaseAsyncJobExecutor;
148147
import com.cloud.async.dao.AsyncJobDao;
149-
import com.cloud.async.executor.ExtractJobResultObject;
150148
import com.cloud.capacity.CapacityVO;
151149
import com.cloud.capacity.dao.CapacityDao;
152-
import com.cloud.certificate.CertificateVO;
153150
import com.cloud.certificate.dao.CertificateDao;
154151
import com.cloud.configuration.Config;
155152
import com.cloud.configuration.ConfigurationManager;
@@ -228,7 +225,6 @@
228225
import com.cloud.storage.GuestOSVO;
229226
import com.cloud.storage.LaunchPermissionVO;
230227
import com.cloud.storage.Snapshot;
231-
import com.cloud.storage.Upload;
232228
import com.cloud.storage.Snapshot.SnapshotType;
233229
import com.cloud.storage.SnapshotPolicyVO;
234230
import com.cloud.storage.SnapshotVO;
@@ -238,6 +234,7 @@
238234
import com.cloud.storage.StoragePoolHostVO;
239235
import com.cloud.storage.StoragePoolVO;
240236
import com.cloud.storage.StorageStats;
237+
import com.cloud.storage.Upload;
241238
import com.cloud.storage.Upload.Mode;
242239
import com.cloud.storage.Upload.Type;
243240
import com.cloud.storage.UploadVO;
@@ -298,6 +295,7 @@
298295
import com.cloud.utils.exception.ExecutionException;
299296
import com.cloud.utils.net.MacAddress;
300297
import com.cloud.utils.net.NetUtils;
298+
import com.cloud.vm.ConsoleProxy;
301299
import com.cloud.vm.ConsoleProxyVO;
302300
import com.cloud.vm.DomainRouterVO;
303301
import com.cloud.vm.InstanceGroupVMMapVO;
@@ -308,7 +306,6 @@
308306
import com.cloud.vm.UserVmVO;
309307
import com.cloud.vm.VMInstanceVO;
310308
import com.cloud.vm.VirtualMachine;
311-
import com.cloud.vm.VirtualMachineName;
312309
import com.cloud.vm.dao.ConsoleProxyDao;
313310
import com.cloud.vm.dao.DomainRouterDao;
314311
import com.cloud.vm.dao.InstanceGroupDao;
@@ -4707,8 +4704,9 @@ public boolean stopConsoleProxy(long instanceId, long startEventId) {
47074704
}
47084705

47094706
@Override
4710-
public boolean rebootConsoleProxy(long instanceId, long startEventId) {
4711-
return _consoleProxyMgr.rebootProxy(instanceId, startEventId);
4707+
public ConsoleProxyVO rebootConsoleProxy(long instanceId, long startEventId) {
4708+
_consoleProxyMgr.rebootProxy(instanceId, startEventId);
4709+
return _consoleProxyDao.findById(instanceId);
47124710
}
47134711

47144712
@Override
@@ -6281,8 +6279,9 @@ public boolean stopSecondaryStorageVm(long instanceId, long startEventId) {
62816279
return _secStorageVmMgr.stopSecStorageVm(instanceId, startEventId);
62826280
}
62836281

6284-
public boolean rebootSecondaryStorageVm(long instanceId, long startEventId) {
6285-
return _secStorageVmMgr.rebootSecStorageVm(instanceId, startEventId);
6282+
public SecondaryStorageVmVO rebootSecondaryStorageVm(long instanceId, long startEventId) {
6283+
_secStorageVmMgr.rebootSecStorageVm(instanceId, startEventId);
6284+
return _secStorageVmDao.findById(instanceId);
62866285
}
62876286

62886287
public boolean destroySecondaryStorageVm(long instanceId, long startEventId) {
@@ -6416,7 +6415,7 @@ public VMInstanceVO stopSystemVM(StopSystemVmCmd cmd) {
64166415
}
64176416

64186417
@Override
6419-
public boolean rebootSystemVM(RebootSystemVmCmd cmd) {
6418+
public VMInstanceVO rebootSystemVM(RebootSystemVmCmd cmd) {
64206419
VMInstanceVO systemVm = _vmInstanceDao.findByIdTypes(cmd.getId(), VirtualMachine.Type.ConsoleProxy, VirtualMachine.Type.SecondaryStorageVm);
64216420

64226421
if (systemVm == null) {

0 commit comments

Comments
 (0)