bug 7504: Events refactoring

This commit is contained in:
kishan 2010-12-24 12:58:07 +05:30
parent bb0e6a0ae3
commit 53d3455cbe
9 changed files with 83 additions and 129 deletions

View File

@ -53,7 +53,7 @@ public interface VirtualNetworkApplianceService {
* @throws ResourceUnavailableException
* @throws InvalidParameterValueException, PermissionDeniedException
*/
VirtualRouter stopRouter(long routerId) throws ResourceUnavailableException, ConcurrentOperationException;
VirtualRouter stopDomainRouter(long routerId) throws ResourceUnavailableException, ConcurrentOperationException;
/**
* Reboots domain router

View File

@ -78,8 +78,8 @@ import com.cloud.dc.dao.DataCenterDao;
import com.cloud.dc.dao.HostPodDao;
import com.cloud.deploy.DataCenterDeployment;
import com.cloud.deploy.DeployDestination;
import com.cloud.event.Event;
import com.cloud.event.EventTypes;
import com.cloud.event.EventUtils;
import com.cloud.event.EventVO;
import com.cloud.event.dao.EventDao;
import com.cloud.exception.AgentUnavailableException;
@ -344,6 +344,8 @@ public class ConsoleProxyManagerImpl implements ConsoleProxyManager, ConsoleProx
try {
if (proxyLock.lock(ACQUIRE_GLOBAL_LOCK_TIMEOUT_FOR_SYNC)) {
try {
long accountId = proxy.getAccountId();
long startEventId = EventUtils.saveStartedEvent(User.UID_SYSTEM, accountId, EventTypes.EVENT_PROXY_START, "Starting proxy : " + proxy.getName());
proxy = startProxy(proxyVmId);
if (proxy == null) {
@ -365,6 +367,7 @@ public class ConsoleProxyManagerImpl implements ConsoleProxyManager, ConsoleProx
if (s_logger.isInfoEnabled()) {
s_logger.info("Unable to start console proxy, proxy vm Id : " + proxyVmId + " will recycle it and restart a new one");
}
EventUtils.saveEvent(User.UID_SYSTEM, accountId, EventVO.LEVEL_ERROR, EventTypes.EVENT_PROXY_START, "Failed to start console proxy", startEventId);
destroyProxy(proxyVmId);
return null;
} else {
@ -372,6 +375,7 @@ public class ConsoleProxyManagerImpl implements ConsoleProxyManager, ConsoleProx
s_logger.trace("Console proxy " + proxy.getName() + " is started");
}
EventUtils.saveEvent(User.UID_SYSTEM, accountId, EventVO.LEVEL_INFO, EventTypes.EVENT_PROXY_START, "Started console proxy: "+proxy.getName(), startEventId);
// if it is a new assignment or a changed assignment,
// update the
// record
@ -644,6 +648,7 @@ public class ConsoleProxyManagerImpl implements ConsoleProxyManager, ConsoleProx
s_logger.debug("Assign console proxy from a newly started instance for request from data center : " + dataCenterId);
}
long startEventId = EventUtils.saveStartedEvent(User.UID_SYSTEM, Account.ACCOUNT_ID_SYSTEM, EventTypes.EVENT_PROXY_CREATE, "Creating console proxy");
Map<String, Object> context = createProxyInstance(dataCenterId);
long proxyVmId = (Long) context.get("proxyVmId");
@ -651,13 +656,14 @@ public class ConsoleProxyManagerImpl implements ConsoleProxyManager, ConsoleProx
if (s_logger.isTraceEnabled()) {
s_logger.trace("Creating proxy instance failed, data center id : " + dataCenterId);
}
EventUtils.saveEvent(User.UID_SYSTEM, Account.ACCOUNT_ID_SYSTEM, EventVO.LEVEL_ERROR, EventTypes.EVENT_PROXY_CREATE, "console proxy creation failed", startEventId);
return null;
}
ConsoleProxyVO proxy = _consoleProxyDao.findById(proxyVmId);
// allocProxyStorage(dataCenterId, proxyVmId);
if (proxy != null) {
EventUtils.saveEvent(User.UID_SYSTEM, Account.ACCOUNT_ID_SYSTEM, EventVO.LEVEL_INFO, EventTypes.EVENT_PROXY_CREATE, "Succesfully created console proxy", startEventId);
SubscriptionMgr.getInstance().notifySubscribers(ConsoleProxyManager.ALERT_SUBJECT, this,
new ConsoleProxyAlertEventArgs(ConsoleProxyAlertEventArgs.PROXY_CREATED, dataCenterId, proxy.getId(), proxy, null));
return proxy;
@ -671,7 +677,7 @@ public class ConsoleProxyManagerImpl implements ConsoleProxyManager, ConsoleProx
this,
new ConsoleProxyAlertEventArgs(ConsoleProxyAlertEventArgs.PROXY_CREATE_FAILURE, dataCenterId, proxyVmId, null,
"Unable to allocate storage"));
EventUtils.saveEvent(User.UID_SYSTEM, Account.ACCOUNT_ID_SYSTEM, EventVO.LEVEL_ERROR, EventTypes.EVENT_PROXY_CREATE, "console proxy creation failed", startEventId);
destroyProxyDBOnly(proxyVmId);
}
return null;
@ -1254,6 +1260,8 @@ public class ConsoleProxyManagerImpl implements ConsoleProxyManager, ConsoleProx
if (proxy != null) {
long proxyVmId = proxy.getId();
GlobalLock proxyLock = GlobalLock.getInternLock(getProxyLockName(proxyVmId));
long accountId = proxy.getAccountId();
long startEventId = EventUtils.saveStartedEvent(User.UID_SYSTEM, accountId, EventTypes.EVENT_PROXY_START, "Starting proxy : " + proxy.getName());
try {
if (proxyLock.lock(ACQUIRE_GLOBAL_LOCK_TIMEOUT_FOR_SYNC)) {
try {
@ -1276,7 +1284,8 @@ public class ConsoleProxyManagerImpl implements ConsoleProxyManager, ConsoleProx
s_logger.info("Unable to start console proxy for standby capacity, proxy vm Id : " + proxyVmId
+ ", will recycle it and start a new one");
}
EventUtils.saveEvent(User.UID_SYSTEM, accountId, EventVO.LEVEL_ERROR, EventTypes.EVENT_PROXY_START, "Failed to start console proxy", startEventId);
if (proxyFromStoppedPool) {
destroyProxy(proxyVmId);
}
@ -1284,6 +1293,8 @@ public class ConsoleProxyManagerImpl implements ConsoleProxyManager, ConsoleProx
if (s_logger.isInfoEnabled()) {
s_logger.info("Console proxy " + proxy.getName() + " is started");
}
EventUtils.saveEvent(User.UID_SYSTEM, accountId, EventVO.LEVEL_INFO, EventTypes.EVENT_PROXY_START, "Started console proxy: "+proxy.getName(), startEventId);
}
}
}
@ -1505,11 +1516,6 @@ public class ConsoleProxyManagerImpl implements ConsoleProxyManager, ConsoleProx
return false;
}
/*
* saveStartedEvent(User.UID_SYSTEM, Account.ACCOUNT_ID_SYSTEM,
* EventTypes.EVENT_PROXY_REBOOT, "Rebooting console proxy with Id: " +
* proxyVmId, startEventId);
*/
if (proxy.getState() == State.Running && proxy.getHostId() != null) {
final RebootCommand cmd = new RebootCommand(proxy.getInstanceName());
final Answer answer = _agentMgr.easySend(proxy.getHostId(), cmd);
@ -1526,28 +1532,12 @@ public class ConsoleProxyManagerImpl implements ConsoleProxyManager, ConsoleProx
new ConsoleProxyAlertEventArgs(ConsoleProxyAlertEventArgs.PROXY_REBOOTED, proxy.getDataCenterId(), proxy.getId(),
proxy, null));
final EventVO event = new EventVO();
event.setUserId(User.UID_SYSTEM);
event.setAccountId(Account.ACCOUNT_ID_SYSTEM);
event.setType(EventTypes.EVENT_PROXY_REBOOT);
event.setLevel(EventVO.LEVEL_INFO);
// event.setStartId(startEventId);
event.setDescription("Console proxy rebooted - " + proxy.getName());
_eventDao.persist(event);
return true;
} else {
if (s_logger.isDebugEnabled()) {
s_logger.debug("failed to reboot console proxy : " + proxy.getName());
}
final EventVO event = new EventVO();
event.setUserId(User.UID_SYSTEM);
event.setAccountId(Account.ACCOUNT_ID_SYSTEM);
event.setType(EventTypes.EVENT_PROXY_REBOOT);
event.setLevel(EventVO.LEVEL_ERROR);
// event.setStartId(startEventId);
event.setDescription("Rebooting console proxy failed - " + proxy.getName());
_eventDao.persist(event);
return false;
}
} else {
@ -1580,11 +1570,7 @@ public class ConsoleProxyManagerImpl implements ConsoleProxyManager, ConsoleProx
}
return true;
}
/*
* saveStartedEvent(User.UID_SYSTEM, Account.ACCOUNT_ID_SYSTEM,
* EventTypes.EVENT_PROXY_DESTROY, "Destroying console proxy with Id: "
* + vmId, startEventId);
*/
if (s_logger.isDebugEnabled()) {
s_logger.debug("Destroying console proxy vm " + vmId);
}
@ -1615,15 +1601,6 @@ public class ConsoleProxyManagerImpl implements ConsoleProxyManager, ConsoleProx
_consoleProxyDao.remove(vm.getId());
final EventVO event = new EventVO();
event.setUserId(User.UID_SYSTEM);
event.setAccountId(Account.ACCOUNT_ID_SYSTEM);
event.setType(EventTypes.EVENT_PROXY_DESTROY);
event.setLevel(EventVO.LEVEL_INFO);
//event.setStartId(startEventId);
event.setDescription("Console proxy destroyed - " + vm.getName());
_eventDao.persist(event);
txn.commit();
} catch (Exception e) {
s_logger.error("Caught this error: ", e);
@ -1650,13 +1627,6 @@ public class ConsoleProxyManagerImpl implements ConsoleProxyManager, ConsoleProx
_consoleProxyDao.remove(vmId);
final EventVO event = new EventVO();
event.setUserId(User.UID_SYSTEM);
event.setAccountId(Account.ACCOUNT_ID_SYSTEM);
event.setType(EventTypes.EVENT_PROXY_DESTROY);
event.setLevel(EventVO.LEVEL_INFO);
event.setDescription("Console proxy destroyed - " + proxy.getName());
_eventDao.persist(event);
}
txn.commit();
@ -1696,15 +1666,6 @@ public class ConsoleProxyManagerImpl implements ConsoleProxyManager, ConsoleProx
StopAnswer answer = (StopAnswer) _agentMgr.send(proxyHostId, cmd);
if (answer == null || !answer.getResult()) {
s_logger.debug("Unable to stop due to " + (answer == null ? "answer is null" : answer.getDetails()));
final EventVO event = new EventVO();
event.setUserId(User.UID_SYSTEM);
event.setAccountId(Account.ACCOUNT_ID_SYSTEM);
event.setType(EventTypes.EVENT_PROXY_STOP);
event.setLevel(EventVO.LEVEL_ERROR);
//event.setStartId(startEventId);
event.setDescription("Stopping console proxy failed due to negative answer from agent - " + proxy.getName());
_eventDao.persist(event);
return false;
}
completeStopCommand(proxy, VirtualMachine.Event.OperationSucceeded);
@ -1714,25 +1675,8 @@ public class ConsoleProxyManagerImpl implements ConsoleProxyManager, ConsoleProx
this,
new ConsoleProxyAlertEventArgs(ConsoleProxyAlertEventArgs.PROXY_DOWN, proxy.getDataCenterId(), proxy.getId(), proxy,
null));
final EventVO event = new EventVO();
event.setUserId(User.UID_SYSTEM);
event.setAccountId(Account.ACCOUNT_ID_SYSTEM);
event.setType(EventTypes.EVENT_PROXY_STOP);
event.setLevel(EventVO.LEVEL_INFO);
//event.setStartId(startEventId);
event.setDescription("Console proxy stopped - " + proxy.getName());
_eventDao.persist(event);
return true;
} catch (OperationTimedoutException e) {
final EventVO event = new EventVO();
event.setUserId(User.UID_SYSTEM);
event.setAccountId(Account.ACCOUNT_ID_SYSTEM);
event.setType(EventTypes.EVENT_PROXY_STOP);
event.setLevel(EventVO.LEVEL_ERROR);
//event.setStartId(startEventId);
event.setDescription("Stopping console proxy failed due to operation time out - " + proxy.getName());
_eventDao.persist(event);
throw new AgentUnavailableException(proxy.getHostId());
}
} finally {
@ -1858,21 +1802,6 @@ public class ConsoleProxyManagerImpl implements ConsoleProxyManager, ConsoleProx
return "consoleproxy." + id;
}
private Long saveStartedEvent(Long userId, Long accountId, String type, String description, long startEventId) {
EventVO event = new EventVO();
event.setUserId(userId);
event.setAccountId(accountId);
event.setType(type);
event.setState(Event.State.Started);
event.setDescription(description);
event.setStartId(startEventId);
event = _eventDao.persist(event);
if (event != null) {
return event.getId();
}
return null;
}
@Override
public boolean configure(String name, Map<String, Object> params) throws ConfigurationException {
if (s_logger.isInfoEnabled()) {

View File

@ -113,7 +113,7 @@ public class DhcpElement extends AdapterBase implements NetworkElement{
if (router == null) {
return true;
}
return _routerMgr.stopRouter(router.getId(), 1);
return _routerMgr.stopRouter(router.getId());
}
@Override

View File

@ -124,7 +124,7 @@ public class VirtualRouterElement extends AdapterBase implements NetworkElement
if (router == null) {
return true;
}
return _routerMgr.stopRouter(router.getId(), 1);
return _routerMgr.stopRouter(router.getId());
}
@Override

View File

@ -68,7 +68,7 @@ public interface VirtualNetworkApplianceManager extends Manager {
boolean destroyRouter(long routerId);
boolean stopRouter(long routerId, long eventId);
boolean stopRouter(long routerId);
boolean getRouterStatistics(long vmId, Map<String, long[]> netStats, Map<String, long[]> diskStats);

View File

@ -345,15 +345,6 @@ public class VirtualNetworkApplianceManagerImpl implements VirtualNetworkApplian
return false;
}
EventVO event = new EventVO();
event.setUserId(User.UID_SYSTEM);
event.setAccountId(router.getAccountId());
event.setType(EventTypes.EVENT_ROUTER_DESTROY);
event.setState(Event.State.Started);
event.setParameters("id=" + routerId);
event.setDescription("Starting to destroy router : " + router.getName());
event = _eventDao.persist(event);
try {
if (router.getState() == State.Destroyed || router.getState() == State.Expunging || router.getRemoved() != null) {
if (s_logger.isDebugEnabled()) {
@ -362,10 +353,15 @@ public class VirtualNetworkApplianceManagerImpl implements VirtualNetworkApplian
return true;
}
long startEventId = EventUtils.saveStartedEvent(User.UID_SYSTEM, router.getAccountId(), EventTypes.EVENT_ROUTER_STOP, "Starting to stop router : " + router.getName());
if (!stop(router)) {
s_logger.debug("Unable to stop the router: " + routerId);
EventUtils.saveEvent(User.UID_SYSTEM, router.getAccountId(), EventVO.LEVEL_ERROR, EventTypes.EVENT_ROUTER_STOP, "Unable to stop router: " + router.getName(), startEventId);
return false;
} else {
EventUtils.saveEvent(User.UID_SYSTEM, router.getAccountId(), EventVO.LEVEL_INFO, EventTypes.EVENT_ROUTER_STOP, "successfully stopped router : " + router.getName(), startEventId);
}
router = _routerDao.findById(routerId);
if (!_itMgr.stateTransitTo(router, VirtualMachine.Event.DestroyRequested, router.getHostId())) {
s_logger.debug("VM " + router.toString() + " is not in a state to be destroyed.");
@ -390,15 +386,6 @@ public class VirtualNetworkApplianceManagerImpl implements VirtualNetworkApplian
s_logger.debug("Successfully destroyed router: " + routerId);
}
EventVO completedEvent = new EventVO();
completedEvent.setUserId(User.UID_SYSTEM);
completedEvent.setAccountId(router.getAccountId());
completedEvent.setType(EventTypes.EVENT_ROUTER_DESTROY);
completedEvent.setStartId(event.getId());
completedEvent.setParameters("id=" + routerId);
completedEvent.setDescription("successfully destroyed router : " + router.getName());
_eventDao.persist(completedEvent);
return true;
}
@ -619,7 +606,7 @@ public class VirtualNetworkApplianceManagerImpl implements VirtualNetworkApplian
}
@Override
public boolean stopRouter(final long routerId, long eventId) {
public boolean stopRouter(final long routerId) {
AsyncJobExecutor asyncExecutor = BaseAsyncJobExecutor.getCurrentExecutor();
if (asyncExecutor != null) {
AsyncJobVO job = asyncExecutor.getJob();
@ -633,15 +620,23 @@ public class VirtualNetworkApplianceManagerImpl implements VirtualNetworkApplian
if (s_logger.isDebugEnabled()) {
s_logger.debug("Stopping router " + routerId);
}
return stop(_routerDao.findById(routerId));
DomainRouterVO router = _routerDao.findById(routerId);
long startEventId = EventUtils.saveStartedEvent(User.UID_SYSTEM, router.getAccountId(), EventTypes.EVENT_ROUTER_STOP, "Starting to stop router : " + router.getName());
if (!stop(router)) {
s_logger.debug("Unable to stop the router: " + routerId);
EventUtils.saveEvent(User.UID_SYSTEM, router.getAccountId(), EventVO.LEVEL_ERROR, EventTypes.EVENT_ROUTER_STOP, "Unable to stop router: " + router.getName(), startEventId);
return false;
} else {
EventUtils.saveEvent(User.UID_SYSTEM, router.getAccountId(), EventVO.LEVEL_INFO, EventTypes.EVENT_ROUTER_STOP, "successfully stopped router : " + router.getName(), startEventId);
return true;
}
}
@Override
public VirtualRouter stopRouter(StopRouterCmd cmd) throws InvalidParameterValueException, PermissionDeniedException,
ResourceUnavailableException, ConcurrentOperationException {
if (_useNewNetworking) {
return stopRouter(cmd.getId());
return stopDomainRouter(cmd.getId());
}
Long routerId = cmd.getId();
Account account = UserContext.current().getAccount();
@ -656,7 +651,7 @@ public class VirtualNetworkApplianceManagerImpl implements VirtualNetworkApplian
throw new PermissionDeniedException("Unable to stop router with id " + routerId + ". Permission denied");
}
boolean success = stopRouter(routerId, 0);
boolean success = stopRouter(routerId);
if (success) {
return _routerDao.findById(routerId);
@ -1208,7 +1203,7 @@ public class VirtualNetworkApplianceManagerImpl implements VirtualNetworkApplian
s_logger.info("Found " + ids.size() + " routers to stop. ");
for (final Long id : ids) {
stopRouter(id, 0);
stopRouter(id);
}
s_logger.info("Done my job. Time to rest.");
} catch (Exception e) {
@ -1314,6 +1309,7 @@ public class VirtualNetworkApplianceManagerImpl implements VirtualNetworkApplian
DomainRouterVO router = _routerDao.findByNetworkConfiguration(guestNetwork.getId());
if (router == null) {
long startEventId = EventUtils.saveStartedEvent(User.UID_SYSTEM, owner.getId(), EventTypes.EVENT_ROUTER_CREATE, "Starting to create router for accountId : " +owner.getAccountId());
long id = _routerDao.getNextInSequence(Long.class, "id");
if (s_logger.isDebugEnabled()) {
s_logger.debug("Creating the router " + id);
@ -1357,9 +1353,26 @@ public class VirtualNetworkApplianceManagerImpl implements VirtualNetworkApplian
router = new DomainRouterVO(id, _offering.getId(), VirtualMachineName.getRouterName(id, _instance), _template.getId(),
_template.getGuestOSId(), owner.getDomainId(), owner.getId(), guestNetwork.getId(), _offering.getOfferHA());
router = _itMgr.allocate(router, _template, _offering, networks, plan, null, owner);
if(router != null){
EventUtils.saveEvent(User.UID_SYSTEM, owner.getAccountId(), EventVO.LEVEL_INFO, EventTypes.EVENT_ROUTER_CREATE, "successfully create router : " + router.getName(), startEventId);
} else {
EventUtils.saveEvent(User.UID_SYSTEM, owner.getAccountId(), EventVO.LEVEL_ERROR, EventTypes.EVENT_ROUTER_CREATE, "router creation failed", startEventId);
}
}
return _itMgr.start(router, null, _accountService.getSystemUser(), _accountService.getSystemAccount(), null);
State state = router.getState();
if (state != State.Starting && state != State.Running) {
long startEventId = EventUtils.saveStartedEvent(User.UID_SYSTEM, owner.getId(), EventTypes.EVENT_ROUTER_START, "Starting router : " +router.getName());
router = _itMgr.start(router, null, _accountService.getSystemUser(), _accountService.getSystemAccount(), null);
if(router != null){
EventUtils.saveEvent(User.UID_SYSTEM, owner.getAccountId(), EventVO.LEVEL_INFO, EventTypes.EVENT_ROUTER_START, "successfully started router : " + router.getName(), startEventId);
} else {
EventUtils.saveEvent(User.UID_SYSTEM, owner.getAccountId(), EventVO.LEVEL_ERROR, EventTypes.EVENT_ROUTER_START, "failed to start router", startEventId);
}
}
return router;
}
@Override
@ -1377,6 +1390,7 @@ public class VirtualNetworkApplianceManagerImpl implements VirtualNetworkApplian
DomainRouterVO router = _routerDao.findByNetworkConfiguration(guestNetwork.getId());
if (router == null) {
long startEventId = EventUtils.saveStartedEvent(User.UID_SYSTEM, owner.getId(), EventTypes.EVENT_ROUTER_CREATE, "Starting to create router for accountId : " +owner.getAccountId());
long id = _routerDao.getNextInSequence(Long.class, "id");
if (s_logger.isDebugEnabled()) {
s_logger.debug("Creating the router " + id);
@ -1396,9 +1410,23 @@ public class VirtualNetworkApplianceManagerImpl implements VirtualNetworkApplian
_template.getGuestOSId(), owner.getDomainId(), owner.getId(), guestNetwork.getId(), _offering.getOfferHA());
router.setRole(Role.DHCP_USERDATA);
router = _itMgr.allocate(router, _template, _offering, networks, plan, null, owner);
if(router != null){
EventUtils.saveEvent(User.UID_SYSTEM, owner.getAccountId(), EventVO.LEVEL_INFO, EventTypes.EVENT_ROUTER_CREATE, "successfully create router : " + router.getName(), startEventId);
} else {
EventUtils.saveEvent(User.UID_SYSTEM, owner.getAccountId(), EventVO.LEVEL_ERROR, EventTypes.EVENT_ROUTER_CREATE, "router creation failed", startEventId);
}
}
return _itMgr.start(router, null, _accountService.getSystemUser(), _accountService.getSystemAccount(), null);
State state = router.getState();
if (state != State.Starting && state != State.Running) {
long startEventId = EventUtils.saveStartedEvent(User.UID_SYSTEM, owner.getId(), EventTypes.EVENT_ROUTER_START, "Starting router : " +router.getName());
router = _itMgr.start(router, null, _accountService.getSystemUser(), _accountService.getSystemAccount(), null);
if(router != null){
EventUtils.saveEvent(User.UID_SYSTEM, owner.getAccountId(), EventVO.LEVEL_INFO, EventTypes.EVENT_ROUTER_START, "successfully started router : " + router.getName(), startEventId);
} else {
EventUtils.saveEvent(User.UID_SYSTEM, owner.getAccountId(), EventVO.LEVEL_ERROR, EventTypes.EVENT_ROUTER_START, "failed to start router", startEventId);
}
}
return router;
}
@Override
@ -1757,7 +1785,7 @@ public class VirtualNetworkApplianceManagerImpl implements VirtualNetworkApplian
* , PermissionDeniedException
*/
@Override
public VirtualRouter stopRouter(long routerId) throws ResourceUnavailableException, ConcurrentOperationException {
public VirtualRouter stopDomainRouter(long routerId) throws ResourceUnavailableException, ConcurrentOperationException {
UserContext context = UserContext.current();
Account account = context.getAccount();
long accountId = account.getId();

View File

@ -4219,9 +4219,6 @@ public class ManagementServerImpl implements ManagementServer {
@Override
public VirtualMachine startSystemVm(long vmId) {
UserContext context = UserContext.current();
long callerId = context.getUserId();
long callerAccountId = context.getAccount().getId();
VMInstanceVO systemVm = _vmInstanceDao.findByIdTypes(vmId, VirtualMachine.Type.ConsoleProxy, VirtualMachine.Type.SecondaryStorageVm);
if (systemVm == null) {
@ -4239,10 +4236,6 @@ public class ManagementServerImpl implements ManagementServer {
@Override
public VirtualMachine stopSystemVm(long vmId) {
UserContext context = UserContext.current();
long callerId = context.getUserId();
long callerAccountId = context.getAccount().getId();
// verify parameters
VMInstanceVO systemVm = _vmInstanceDao.findByIdTypes(vmId, VirtualMachine.Type.ConsoleProxy, VirtualMachine.Type.SecondaryStorageVm);

View File

@ -2360,7 +2360,7 @@ public class StorageManagerImpl implements StorageManager, StorageService, Manag
//if the instance is of type domain router vm, call the network manager
if(vmInstance.getType().equals(VirtualMachine.Type.DomainRouter))
{
if(!_routerMgr.stopRouter(vmInstance.getId(), 0))
if(!_routerMgr.stopRouter(vmInstance.getId()))
{
String errorMsg = "There was an error stopping the domain router id: "+vmInstance.getId()+" ,cannot enable primary storage maintenance";
s_logger.warn(errorMsg);

View File

@ -819,7 +819,7 @@ public class AccountManagerImpl implements AccountManager, AccountService {
}
for (UserVmVO vm : vms) {
long startEventId = EventUtils.saveStartedEvent(userId, vm.getAccountId(), EventTypes.EVENT_VM_DESTROY, "Destroyed VM instance : " + vm.getName(), 0);
long startEventId = EventUtils.saveStartedEvent(userId, vm.getAccountId(), EventTypes.EVENT_VM_DESTROY, "Destroyed VM instance : " + vm.getName());
if (!_vmMgr.destroyVirtualMachine(userId, vm.getId())) {
s_logger.error("Unable to destroy vm: " + vm.getId());
accountCleanupNeeded = true;
@ -846,9 +846,13 @@ public class AccountManagerImpl implements AccountManager, AccountService {
boolean routersCleanedUp = true;
for (DomainRouterVO router : routers) {
long startEventId = EventUtils.saveStartedEvent(userId, router.getAccountId(), EventTypes.EVENT_ROUTER_DESTROY, "Starting to destroy router : " + router.getName());
if (!_routerMgr.destroyRouter(router.getId())) {
s_logger.error("Unable to destroy router: " + router.getId());
routersCleanedUp = false;
EventUtils.saveEvent(userId, router.getAccountId(), EventVO.LEVEL_ERROR, EventTypes.EVENT_ROUTER_DESTROY, "Unable to destroy router: " + router.getName(), startEventId);
} else {
EventUtils.saveEvent(userId, router.getAccountId(), EventVO.LEVEL_INFO, EventTypes.EVENT_ROUTER_DESTROY, "successfully destroyed router : " + router.getName(), startEventId);
}
}
@ -967,7 +971,7 @@ public class AccountManagerImpl implements AccountManager, AccountService {
List<DomainRouterVO> routers = _routerDao.listBy(accountId);
for (DomainRouterVO router : routers) {
success = (success && _routerMgr.stopRouter(router.getId(), 0));
success = (success && _routerMgr.stopRouter(router.getId()));
}
return success;