Search in sources :

Example 6 with Param

use of com.cloud.vm.VirtualMachineProfile.Param in project cloudstack by apache.

the class LoadBalanceRuleHandlerTest method testStartWhenParamsIsNull.

@Test
public void testStartWhenParamsIsNull() throws Exception {
    DomainRouterVO elbVmMock = mock(DomainRouterVO.class);
    String uuid = "uuid";
    when(elbVmMock.getUuid()).thenReturn(uuid);
    long id = 1L;
    when(elbVmMock.getId()).thenReturn(id);
    Map<Param, Object> params = null;
    loadBalanceRuleHandler.start(elbVmMock, params);
    verify(virtualMachineManagerMock, times(1)).start(uuid, params);
    verify(domainRouterDaoMock, times(1)).findById(id);
}
Also used : Param(com.cloud.vm.VirtualMachineProfile.Param) DomainRouterVO(com.cloud.vm.DomainRouterVO) Test(org.junit.Test)

Example 7 with Param

use of com.cloud.vm.VirtualMachineProfile.Param in project cloudstack by apache.

the class VirtualNetworkApplianceManagerImpl method startRouter.

@Override
public VirtualRouter startRouter(final long routerId, final boolean reprogramNetwork) throws ResourceUnavailableException, InsufficientCapacityException, ConcurrentOperationException {
    final Account caller = CallContext.current().getCallingAccount();
    final User callerUser = _accountMgr.getActiveUser(CallContext.current().getCallingUserId());
    // verify parameters
    DomainRouterVO router = _routerDao.findById(routerId);
    // clean up the update_state feild
    if (router.getUpdateState() == VirtualRouter.UpdateState.UPDATE_FAILED) {
        router.setUpdateState(null);
        _routerDao.update(router.getId(), router);
    }
    if (router == null) {
        throw new InvalidParameterValueException("Unable to find router by id " + routerId + ".");
    }
    _accountMgr.checkAccess(caller, null, true, router);
    final Account owner = _accountMgr.getAccount(router.getAccountId());
    // Check if all networks are implemented for the domR; if not -
    // implement them
    final DataCenter dc = _dcDao.findById(router.getDataCenterId());
    HostPodVO pod = null;
    if (router.getPodIdToDeployIn() != null) {
        pod = _podDao.findById(router.getPodIdToDeployIn());
    }
    final DeployDestination dest = new DeployDestination(dc, pod, null, null);
    final ReservationContext context = new ReservationContextImpl(null, null, callerUser, owner);
    final List<NicVO> nics = _nicDao.listByVmId(routerId);
    for (final NicVO nic : nics) {
        if (!_networkMgr.startNetwork(nic.getNetworkId(), dest, context)) {
            s_logger.warn("Failed to start network id=" + nic.getNetworkId() + " as a part of domR start");
            throw new CloudRuntimeException("Failed to start network id=" + nic.getNetworkId() + " as a part of domR start");
        }
    }
    // After start network, check if it's already running
    router = _routerDao.findById(routerId);
    if (router.getState() == VirtualMachine.State.Running) {
        return router;
    }
    final UserVO user = _userDao.findById(CallContext.current().getCallingUserId());
    final Map<Param, Object> params = new HashMap<Param, Object>();
    if (reprogramNetwork) {
        params.put(Param.ReProgramGuestNetworks, true);
    } else {
        params.put(Param.ReProgramGuestNetworks, false);
    }
    final VirtualRouter virtualRouter = _nwHelper.startVirtualRouter(router, user, caller, params);
    if (virtualRouter == null) {
        throw new CloudRuntimeException("Failed to start router with id " + routerId);
    }
    return virtualRouter;
}
Also used : Account(com.cloud.user.Account) User(com.cloud.user.User) HashMap(java.util.HashMap) HostPodVO(com.cloud.dc.HostPodVO) ReservationContextImpl(com.cloud.vm.ReservationContextImpl) ReservationContext(com.cloud.vm.ReservationContext) DataCenter(com.cloud.dc.DataCenter) UserVO(com.cloud.user.UserVO) InvalidParameterValueException(com.cloud.exception.InvalidParameterValueException) DeployDestination(com.cloud.deploy.DeployDestination) CloudRuntimeException(com.cloud.utils.exception.CloudRuntimeException) Param(com.cloud.vm.VirtualMachineProfile.Param) NicVO(com.cloud.vm.NicVO) DomainRouterVO(com.cloud.vm.DomainRouterVO)

Aggregations

DomainRouterVO (com.cloud.vm.DomainRouterVO)7 Param (com.cloud.vm.VirtualMachineProfile.Param)7 HashMap (java.util.HashMap)6 Test (org.junit.Test)4 Account (com.cloud.user.Account)3 CloudRuntimeException (com.cloud.utils.exception.CloudRuntimeException)3 HostPodVO (com.cloud.dc.HostPodVO)2 DeployDestination (com.cloud.deploy.DeployDestination)2 InvalidParameterValueException (com.cloud.exception.InvalidParameterValueException)2 User (com.cloud.user.User)2 UserVO (com.cloud.user.UserVO)2 NicVO (com.cloud.vm.NicVO)2 ReservationContext (com.cloud.vm.ReservationContext)2 ReservationContextImpl (com.cloud.vm.ReservationContextImpl)2 Zone (com.cloud.db.model.Zone)1 DataCenter (com.cloud.dc.DataCenter)1 DataCenterVO (com.cloud.dc.DataCenterVO)1 VlanVO (com.cloud.dc.VlanVO)1 ConcurrentOperationException (com.cloud.exception.ConcurrentOperationException)1 ResourceUnavailableException (com.cloud.exception.ResourceUnavailableException)1