Search in sources :

Example 6 with DomainRouterVO

use of com.cloud.vm.DomainRouterVO in project cloudstack by apache.

the class DomainRouterDaoImpl method listByStateAndNetworkType.

@Override
public List<DomainRouterVO> listByStateAndNetworkType(final State state, final Network.GuestType type, final long mgmtSrvrId) {
    final SearchCriteria<DomainRouterVO> sc = StateNetworkTypeSearch.create();
    sc.setParameters("state", state);
    sc.setJoinParameters("networkRouter", "type", type);
    sc.setJoinParameters("host", "mgmtServerId", mgmtSrvrId);
    final List<DomainRouterVO> routerIds = listBy(sc);
    final List<DomainRouterVO> routers = new ArrayList<DomainRouterVO>();
    for (final DomainRouterVO router : routerIds) {
        routers.add(findById(router.getId()));
    }
    return routers;
}
Also used : ArrayList(java.util.ArrayList) DomainRouterVO(com.cloud.vm.DomainRouterVO)

Example 7 with DomainRouterVO

use of com.cloud.vm.DomainRouterVO in project cloudstack by apache.

the class DomainRouterDaoImpl method listIsolatedByHostId.

@Override
public List<DomainRouterVO> listIsolatedByHostId(final Long hostId) {
    final SearchCriteria<DomainRouterVO> sc = HostUpSearch.create();
    if (hostId != null) {
        sc.setParameters("host", hostId);
    }
    sc.setJoinParameters("networkRouter", "type", Network.GuestType.Isolated);
    final List<DomainRouterVO> routerIds = listBy(sc);
    final List<DomainRouterVO> routers = new ArrayList<DomainRouterVO>();
    for (final DomainRouterVO router : routerIds) {
        CollectionUtils.addIgnoreNull(routers, findById(router.getId()));
    }
    return routers;
}
Also used : ArrayList(java.util.ArrayList) DomainRouterVO(com.cloud.vm.DomainRouterVO)

Example 8 with DomainRouterVO

use of com.cloud.vm.DomainRouterVO in project cloudstack by apache.

the class DomainRouterDaoImpl method persist.

@Override
@DB
public DomainRouterVO persist(final DomainRouterVO router, final List<Network> guestNetworks) {
    final TransactionLegacy txn = TransactionLegacy.currentTxn();
    txn.start();
    // 1) create network
    final DomainRouterVO newRouter = super.persist(router);
    if (guestNetworks != null && !guestNetworks.isEmpty()) {
        // 2) add router to the network
        for (final Network guestNetwork : guestNetworks) {
            addRouterToGuestNetwork(router, guestNetwork);
        }
    }
    txn.commit();
    return newRouter;
}
Also used : TransactionLegacy(com.cloud.utils.db.TransactionLegacy) Network(com.cloud.network.Network) DomainRouterVO(com.cloud.vm.DomainRouterVO) DB(com.cloud.utils.db.DB)

Example 9 with DomainRouterVO

use of com.cloud.vm.DomainRouterVO in project cloudstack by apache.

the class DomainRouterDaoImpl method remove.

@Override
public boolean remove(final Long id) {
    final TransactionLegacy txn = TransactionLegacy.currentTxn();
    txn.start();
    final DomainRouterVO router = createForUpdate();
    router.setPublicIpAddress(null);
    final UpdateBuilder ub = getUpdateBuilder(router);
    ub.set(router, "state", State.Destroyed);
    update(id, ub, router);
    final boolean result = super.remove(id);
    txn.commit();
    return result;
}
Also used : TransactionLegacy(com.cloud.utils.db.TransactionLegacy) UpdateBuilder(com.cloud.utils.db.UpdateBuilder) DomainRouterVO(com.cloud.vm.DomainRouterVO)

Example 10 with DomainRouterVO

use of com.cloud.vm.DomainRouterVO in project cloudstack by apache.

the class VirtualNetworkApplianceManagerImpl method upgradeRouterTemplate.

@Override
public List<Long> upgradeRouterTemplate(final UpgradeRouterTemplateCmd cmd) {
    List<DomainRouterVO> routers = new ArrayList<DomainRouterVO>();
    int params = 0;
    final Long routerId = cmd.getId();
    if (routerId != null) {
        params++;
        final DomainRouterVO router = _routerDao.findById(routerId);
        if (router != null) {
            routers.add(router);
        }
    }
    final Long domainId = cmd.getDomainId();
    if (domainId != null) {
        final String accountName = cmd.getAccount();
        // List by account, if account Name is specified along with domainId
        if (accountName != null) {
            final Account account = _accountMgr.getActiveAccountByName(accountName, domainId);
            if (account == null) {
                throw new InvalidParameterValueException("Account :" + accountName + " does not exist in domain: " + domainId);
            }
            routers = _routerDao.listRunningByAccountId(account.getId());
        } else {
            // List by domainId, account name not specified
            routers = _routerDao.listRunningByDomain(domainId);
        }
        params++;
    }
    final Long clusterId = cmd.getClusterId();
    if (clusterId != null) {
        params++;
        routers = _routerDao.listRunningByClusterId(clusterId);
    }
    final Long podId = cmd.getPodId();
    if (podId != null) {
        params++;
        routers = _routerDao.listRunningByPodId(podId);
    }
    final Long zoneId = cmd.getZoneId();
    if (zoneId != null) {
        params++;
        routers = _routerDao.listRunningByDataCenter(zoneId);
    }
    if (params > 1) {
        throw new InvalidParameterValueException("Multiple parameters not supported. Specify only one among routerId/zoneId/podId/clusterId/accountId/domainId");
    }
    if (routers != null) {
        return rebootRouters(routers);
    }
    return null;
}
Also used : Account(com.cloud.user.Account) InvalidParameterValueException(com.cloud.exception.InvalidParameterValueException) ArrayList(java.util.ArrayList) DomainRouterVO(com.cloud.vm.DomainRouterVO)

Aggregations

DomainRouterVO (com.cloud.vm.DomainRouterVO)253 ResourceUnavailableException (com.cloud.exception.ResourceUnavailableException)64 ArrayList (java.util.ArrayList)60 CloudRuntimeException (com.cloud.utils.exception.CloudRuntimeException)47 DataCenterVO (com.cloud.dc.DataCenterVO)36 Network (com.cloud.network.Network)34 Test (org.junit.Test)32 NicProfile (com.cloud.vm.NicProfile)29 NetworkTopology (org.apache.cloudstack.network.topology.NetworkTopology)28 Zone (com.cloud.db.model.Zone)27 Account (com.cloud.user.Account)27 NetworkTopology (com.cloud.network.topology.NetworkTopology)23 Vpc (com.cloud.network.vpc.Vpc)22 ConcurrentOperationException (com.cloud.exception.ConcurrentOperationException)20 VirtualMachineProfile (com.cloud.vm.VirtualMachineProfile)17 HashMap (java.util.HashMap)17 InsufficientCapacityException (com.cloud.exception.InsufficientCapacityException)16 NetworkVO (com.cloud.network.dao.NetworkVO)16 UserVmVO (com.cloud.vm.UserVmVO)15 Answer (com.cloud.agent.api.Answer)14