mirror of
https://github.com/apache/cloudstack.git
synced 2025-10-26 08:42:29 +01:00
renamed the domainrouter services
This commit is contained in:
parent
356526db83
commit
0ecb0118ec
@ -34,7 +34,7 @@ import com.cloud.exception.ConcurrentOperationException;
|
||||
import com.cloud.exception.InsufficientCapacityException;
|
||||
import com.cloud.exception.ResourceAllocationException;
|
||||
import com.cloud.exception.ResourceUnavailableException;
|
||||
import com.cloud.network.DomainRouterService;
|
||||
import com.cloud.network.VirtualNetworkApplianceService;
|
||||
import com.cloud.network.NetworkService;
|
||||
import com.cloud.network.lb.LoadBalancingRulesService;
|
||||
import com.cloud.network.rules.RulesService;
|
||||
@ -99,7 +99,7 @@ public abstract class BaseCmd {
|
||||
public static SecurityGroupService _securityGroupMgr;
|
||||
public static SnapshotService _snapshotMgr;
|
||||
public static ConsoleProxyService _consoleProxyMgr;
|
||||
public static DomainRouterService _routerService;
|
||||
public static VirtualNetworkApplianceService _routerService;
|
||||
public static ResponseGenerator _responseGenerator;
|
||||
public static EntityManager _entityMgr;
|
||||
public static RulesService _rulesService;
|
||||
@ -119,7 +119,7 @@ public abstract class BaseCmd {
|
||||
_securityGroupMgr = locator.getManager(SecurityGroupService.class);
|
||||
_snapshotMgr = locator.getManager(SnapshotService.class);
|
||||
_consoleProxyMgr = locator.getManager(ConsoleProxyService.class);
|
||||
_routerService = locator.getManager(DomainRouterService.class);
|
||||
_routerService = locator.getManager(VirtualNetworkApplianceService.class);
|
||||
_entityMgr = locator.getManager(EntityManager.class);
|
||||
_rulesService = locator.getManager(RulesService.class);
|
||||
_lbService = locator.getManager(LoadBalancingRulesService.class);
|
||||
|
||||
@ -27,7 +27,7 @@ import com.cloud.exception.InvalidParameterValueException;
|
||||
import com.cloud.exception.ResourceUnavailableException;
|
||||
import com.cloud.network.router.VirtualRouter;
|
||||
|
||||
public interface DomainRouterService {
|
||||
public interface VirtualNetworkApplianceService {
|
||||
/**
|
||||
* Starts domain router
|
||||
* @param cmd the command specifying router's id
|
||||
@ -76,7 +76,7 @@
|
||||
<adapter name="First Fit" class="com.cloud.deploy.FirstFitPlanner"/>
|
||||
</adapters>
|
||||
<adapters key="com.cloud.network.element.NetworkElement">
|
||||
<adapter name="DomainRouter" class="com.cloud.network.element.DomainRouterElement"/>
|
||||
<adapter name="DomainRouter" class="com.cloud.network.element.VirtualRouterElement"/>
|
||||
<adapter name="Dhcp" class="com.cloud.network.element.DhcpElement"/>
|
||||
</adapters>
|
||||
<adapters key="com.cloud.acl.SecurityChecker">
|
||||
|
||||
@ -3177,11 +3177,11 @@ public abstract class CitrixResourceBase implements ServerResource {
|
||||
}
|
||||
long avail = cap - lvmsr.getPhysicalUtilisation(conn);
|
||||
lvmsr.setNameLabel(conn, lvmuuid);
|
||||
String name = "VMOps local storage pool in host : " + _host.uuid;
|
||||
String name = "Cloud Stack Local Storage Pool for " + _host.uuid;
|
||||
lvmsr.setNameDescription(conn, name);
|
||||
Host host = Host.getByUuid(conn, _host.uuid);
|
||||
String address = host.getAddress(conn);
|
||||
StoragePoolInfo pInfo = new StoragePoolInfo(name, address, SRType.LVM.toString(), SRType.LVM.toString(), StoragePoolType.LVM, cap, avail);
|
||||
StoragePoolInfo pInfo = new StoragePoolInfo(lvmuuid, address, SRType.LVM.toString(), SRType.LVM.toString(), StoragePoolType.LVM, cap, avail);
|
||||
StartupStorageCommand cmd = new StartupStorageCommand();
|
||||
cmd.setPoolInfo(pInfo);
|
||||
cmd.setGuid(_host.uuid);
|
||||
|
||||
@ -591,8 +591,9 @@ public class AgentManagerImpl implements AgentManager, HandlerFactory, ResourceS
|
||||
if(cmd.getClusterType() != null && !cmd.getClusterType().isEmpty()) {
|
||||
clusterType = Cluster.ClusterType.valueOf(cmd.getClusterType());
|
||||
}
|
||||
if(clusterType == null)
|
||||
clusterType = Cluster.ClusterType.CloudManaged;
|
||||
if(clusterType == null) {
|
||||
clusterType = Cluster.ClusterType.CloudManaged;
|
||||
}
|
||||
|
||||
Discoverer discoverer = getMatchingDiscover(hypervisorType);
|
||||
if(discoverer == null) {
|
||||
@ -616,8 +617,9 @@ public class AgentManagerImpl implements AgentManager, HandlerFactory, ResourceS
|
||||
clusterId = cluster.getId();
|
||||
}
|
||||
|
||||
if(clusterType == Cluster.ClusterType.CloudManaged)
|
||||
return _hostDao.listByCluster(clusterId);
|
||||
if(clusterType == Cluster.ClusterType.CloudManaged) {
|
||||
return _hostDao.listByCluster(clusterId);
|
||||
}
|
||||
|
||||
boolean success = false;
|
||||
try {
|
||||
@ -669,8 +671,9 @@ public class AgentManagerImpl implements AgentManager, HandlerFactory, ResourceS
|
||||
Enumeration<Discoverer> en = _discoverers.enumeration();
|
||||
while (en.hasMoreElements()) {
|
||||
Discoverer discoverer = en.nextElement();
|
||||
if(discoverer.getHypervisorType() == hypervisorType)
|
||||
return discoverer;
|
||||
if(discoverer.getHypervisorType() == hypervisorType) {
|
||||
return discoverer;
|
||||
}
|
||||
}
|
||||
return null;
|
||||
}
|
||||
@ -772,8 +775,9 @@ public class AgentManagerImpl implements AgentManager, HandlerFactory, ResourceS
|
||||
while (en.hasMoreElements()) {
|
||||
Discoverer discoverer = en.nextElement();
|
||||
if(hypervisorType != null) {
|
||||
if(!discoverer.matchHypervisor(hypervisorType))
|
||||
continue;
|
||||
if(!discoverer.matchHypervisor(hypervisorType)) {
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
Map<? extends ServerResource, Map<String, String>> resources = null;
|
||||
@ -1376,23 +1380,19 @@ public class AgentManagerImpl implements AgentManager, HandlerFactory, ResourceS
|
||||
}
|
||||
if (host.getClusterId() != null) {
|
||||
params.put("cluster", Long.toString(host.getClusterId()));
|
||||
String guid = null;
|
||||
ClusterVO cluster = _clusterDao.findById(host.getClusterId());
|
||||
if ( cluster.getGuid() == null ) {
|
||||
guid = host.getDetail("pool");
|
||||
} else {
|
||||
guid = cluster.getGuid();
|
||||
}
|
||||
if( guid == null || guid.isEmpty() ) {
|
||||
throw new CloudRuntimeException("Can not find guid for cluster " + cluster.getId() + " name " + cluster.getName());
|
||||
}
|
||||
params.put("pool", guid);
|
||||
}
|
||||
|
||||
String guid = null;
|
||||
ClusterVO cluster = _clusterDao.findById(host.getClusterId());
|
||||
if(cluster.getHypervisorType() == Hypervisor.HypervisorType.XenServer) {
|
||||
if ( cluster.getGuid() == null ) {
|
||||
guid = host.getDetail("pool");
|
||||
} else {
|
||||
guid = cluster.getGuid();
|
||||
}
|
||||
if( guid == null || guid.isEmpty() ) {
|
||||
throw new CloudRuntimeException("Can not find guid for cluster " + cluster.getId() + " name " + cluster.getName());
|
||||
}
|
||||
params.put("pool", guid);
|
||||
}
|
||||
|
||||
|
||||
params.put("ipaddress", host.getPrivateIpAddress());
|
||||
params.put("secondary.storage.vm", "false");
|
||||
params.put("max.template.iso.size", _configDao.getValue("max.template.iso.size"));
|
||||
@ -1904,6 +1904,7 @@ public class AgentManagerImpl implements AgentManager, HandlerFactory, ResourceS
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public Host addHost(long zoneId, ServerResource resource, Type hostType, Map<String, String> hostDetails) {
|
||||
// Check if the zone exists in the system
|
||||
if (_dcDao.findById(zoneId) == null ){
|
||||
@ -1911,7 +1912,7 @@ public class AgentManagerImpl implements AgentManager, HandlerFactory, ResourceS
|
||||
}
|
||||
|
||||
Map<String, String> details = hostDetails;
|
||||
String guid = (String) details.get("guid");
|
||||
String guid = details.get("guid");
|
||||
List<HostVO> currentHosts = _hostDao.listBy(hostType, zoneId);
|
||||
for (HostVO currentHost : currentHosts) {
|
||||
if (currentHost.getGuid().equals(guid)) {
|
||||
|
||||
@ -70,7 +70,7 @@ import com.cloud.network.dao.NetworkRuleConfigDaoImpl;
|
||||
import com.cloud.network.dao.RemoteAccessVpnDaoImpl;
|
||||
import com.cloud.network.dao.VpnUserDaoImpl;
|
||||
import com.cloud.network.lb.LoadBalancingRulesManagerImpl;
|
||||
import com.cloud.network.router.DomainRouterManagerImpl;
|
||||
import com.cloud.network.router.VirtualNetworkApplianceManagerImpl;
|
||||
import com.cloud.network.rules.RulesManagerImpl;
|
||||
import com.cloud.network.rules.dao.PortForwardingRulesDaoImpl;
|
||||
import com.cloud.network.security.SecurityGroupManagerImpl;
|
||||
@ -280,7 +280,7 @@ public class DefaultComponentLibrary implements ComponentLibrary {
|
||||
addManager("SnapshotScheduler", SnapshotSchedulerImpl.class);
|
||||
addManager("SecurityGroupManager", SecurityGroupManagerImpl.class);
|
||||
addManager("VmManager", VirtualMachineManagerImpl.class);
|
||||
addManager("DomainRouterManager", DomainRouterManagerImpl.class);
|
||||
addManager("DomainRouterManager", VirtualNetworkApplianceManagerImpl.class);
|
||||
addManager("EntityManager", EntityManagerImpl.class);
|
||||
addManager("LoadBalancingRulesManager", LoadBalancingRulesManagerImpl.class);
|
||||
addManager("RulesManager", RulesManagerImpl.class);
|
||||
|
||||
@ -101,7 +101,7 @@ import com.cloud.network.guru.NetworkGuru;
|
||||
import com.cloud.network.lb.LoadBalancingRule;
|
||||
import com.cloud.network.lb.LoadBalancingRule.LbDestination;
|
||||
import com.cloud.network.lb.LoadBalancingRulesManager;
|
||||
import com.cloud.network.router.DomainRouterManager;
|
||||
import com.cloud.network.router.VirtualNetworkApplianceManager;
|
||||
import com.cloud.network.rules.FirewallRule;
|
||||
import com.cloud.network.rules.PortForwardingRuleVO;
|
||||
import com.cloud.network.rules.RulesManager;
|
||||
@ -182,7 +182,7 @@ public class NetworkManagerImpl implements NetworkManager, NetworkService, Manag
|
||||
@Inject NicDao _nicDao = null;
|
||||
@Inject RemoteAccessVpnDao _remoteAccessVpnDao = null;
|
||||
@Inject VpnUserDao _vpnUsersDao = null;
|
||||
@Inject DomainRouterManager _routerMgr;
|
||||
@Inject VirtualNetworkApplianceManager _routerMgr;
|
||||
@Inject RulesManager _rulesMgr;
|
||||
@Inject LoadBalancingRulesManager _lbMgr;
|
||||
@Inject FirewallRulesDao _firewallRulesDao;
|
||||
|
||||
@ -36,16 +36,16 @@ import com.cloud.host.HostVO;
|
||||
import com.cloud.host.Status;
|
||||
import com.cloud.host.dao.HostDao;
|
||||
import com.cloud.hypervisor.Hypervisor.HypervisorType;
|
||||
import com.cloud.network.router.DomainRouterManager;
|
||||
import com.cloud.network.router.VirtualNetworkApplianceManager;
|
||||
|
||||
|
||||
|
||||
public class SshKeysDistriMonitor implements Listener {
|
||||
private static final Logger s_logger = Logger.getLogger(SshKeysDistriMonitor.class);
|
||||
private final DomainRouterManager _routerMgr;
|
||||
private final VirtualNetworkApplianceManager _routerMgr;
|
||||
private final HostDao _hostDao;
|
||||
private ConfigurationDao _configDao;
|
||||
public SshKeysDistriMonitor(DomainRouterManager mgr, HostDao host, ConfigurationDao config) {
|
||||
public SshKeysDistriMonitor(VirtualNetworkApplianceManager mgr, HostDao host, ConfigurationDao config) {
|
||||
this._routerMgr = mgr;
|
||||
_hostDao = host;
|
||||
_configDao = config;
|
||||
|
||||
@ -32,7 +32,7 @@ import com.cloud.network.Network;
|
||||
import com.cloud.network.NetworkManager;
|
||||
import com.cloud.network.PublicIpAddress;
|
||||
import com.cloud.network.dao.NetworkDao;
|
||||
import com.cloud.network.router.DomainRouterManager;
|
||||
import com.cloud.network.router.VirtualNetworkApplianceManager;
|
||||
import com.cloud.network.rules.FirewallRule;
|
||||
import com.cloud.network.service.Providers;
|
||||
import com.cloud.offering.NetworkOffering;
|
||||
@ -56,7 +56,7 @@ public class DhcpElement extends AdapterBase implements NetworkElement {
|
||||
|
||||
@Inject NetworkDao _networkConfigDao;
|
||||
@Inject NetworkManager _networkMgr;
|
||||
@Inject DomainRouterManager _routerMgr;
|
||||
@Inject VirtualNetworkApplianceManager _routerMgr;
|
||||
@Inject UserVmManager _userVmMgr;
|
||||
@Inject UserVmDao _userVmDao;
|
||||
@Inject DomainRouterDao _routerDao;
|
||||
|
||||
@ -39,7 +39,7 @@ import com.cloud.network.dao.NetworkDao;
|
||||
import com.cloud.network.lb.LoadBalancingRule;
|
||||
import com.cloud.network.lb.LoadBalancingRule.LbDestination;
|
||||
import com.cloud.network.lb.LoadBalancingRulesManager;
|
||||
import com.cloud.network.router.DomainRouterManager;
|
||||
import com.cloud.network.router.VirtualNetworkApplianceManager;
|
||||
import com.cloud.network.rules.FirewallRule;
|
||||
import com.cloud.network.rules.FirewallRule.Purpose;
|
||||
import com.cloud.network.service.Providers;
|
||||
@ -62,14 +62,14 @@ import com.cloud.vm.dao.UserVmDao;
|
||||
|
||||
|
||||
@Local(value=NetworkElement.class)
|
||||
public class DomainRouterElement extends AdapterBase implements NetworkElement {
|
||||
private static final Logger s_logger = Logger.getLogger(DomainRouterElement.class);
|
||||
public class VirtualRouterElement extends AdapterBase implements NetworkElement {
|
||||
private static final Logger s_logger = Logger.getLogger(VirtualRouterElement.class);
|
||||
|
||||
@Inject NetworkDao _networkConfigDao;
|
||||
@Inject NetworkManager _networkMgr;
|
||||
@Inject LoadBalancingRulesManager _lbMgr;
|
||||
@Inject NetworkOfferingDao _networkOfferingDao;
|
||||
@Inject DomainRouterManager _routerMgr;
|
||||
@Inject VirtualNetworkApplianceManager _routerMgr;
|
||||
@Inject UserVmManager _userVmMgr;
|
||||
@Inject UserVmDao _userVmDao;
|
||||
@Inject DomainRouterDao _routerDao;
|
||||
@ -45,7 +45,7 @@ import com.cloud.vm.VirtualMachineProfile;
|
||||
* NetworkManager manages the network for the different end users.
|
||||
*
|
||||
*/
|
||||
public interface DomainRouterManager extends Manager {
|
||||
public interface VirtualNetworkApplianceManager extends Manager {
|
||||
public static final int DEFAULT_ROUTER_VM_RAMSIZE = 128; // 128M
|
||||
public static final boolean USE_POD_VLAN = false;
|
||||
/**
|
||||
@ -77,16 +77,12 @@ import com.cloud.configuration.dao.ResourceLimitDao;
|
||||
import com.cloud.dc.DataCenter;
|
||||
import com.cloud.dc.DataCenterVO;
|
||||
import com.cloud.dc.HostPodVO;
|
||||
import com.cloud.dc.Vlan;
|
||||
import com.cloud.dc.Vlan.VlanType;
|
||||
import com.cloud.dc.VlanVO;
|
||||
import com.cloud.dc.dao.AccountVlanMapDao;
|
||||
import com.cloud.dc.dao.DataCenterDao;
|
||||
import com.cloud.dc.dao.HostPodDao;
|
||||
import com.cloud.dc.dao.VlanDao;
|
||||
import com.cloud.deploy.DataCenterDeployment;
|
||||
import com.cloud.deploy.DeployDestination;
|
||||
import com.cloud.domain.DomainVO;
|
||||
import com.cloud.domain.dao.DomainDao;
|
||||
import com.cloud.event.Event;
|
||||
import com.cloud.event.EventTypes;
|
||||
@ -107,7 +103,6 @@ import com.cloud.host.HostVO;
|
||||
import com.cloud.host.dao.HostDao;
|
||||
import com.cloud.hypervisor.Hypervisor;
|
||||
import com.cloud.hypervisor.Hypervisor.HypervisorType;
|
||||
import com.cloud.network.DomainRouterService;
|
||||
import com.cloud.network.IPAddressVO;
|
||||
import com.cloud.network.IpAddress;
|
||||
import com.cloud.network.Network;
|
||||
@ -119,6 +114,7 @@ import com.cloud.network.Networks.TrafficType;
|
||||
import com.cloud.network.PublicIpAddress;
|
||||
import com.cloud.network.RemoteAccessVpnVO;
|
||||
import com.cloud.network.SshKeysDistriMonitor;
|
||||
import com.cloud.network.VirtualNetworkApplianceService;
|
||||
import com.cloud.network.VpnUserVO;
|
||||
import com.cloud.network.addr.PublicIp;
|
||||
import com.cloud.network.dao.FirewallRulesDao;
|
||||
@ -152,7 +148,6 @@ import com.cloud.storage.dao.VolumeDao;
|
||||
import com.cloud.user.Account;
|
||||
import com.cloud.user.AccountManager;
|
||||
import com.cloud.user.AccountService;
|
||||
import com.cloud.user.AccountVO;
|
||||
import com.cloud.user.User;
|
||||
import com.cloud.user.UserContext;
|
||||
import com.cloud.user.UserStatisticsVO;
|
||||
@ -169,7 +164,6 @@ import com.cloud.utils.concurrency.NamedThreadFactory;
|
||||
import com.cloud.utils.db.DB;
|
||||
import com.cloud.utils.db.Transaction;
|
||||
import com.cloud.utils.exception.CloudRuntimeException;
|
||||
import com.cloud.utils.exception.ExecutionException;
|
||||
import com.cloud.utils.net.NetUtils;
|
||||
import com.cloud.vm.DomainRouterVO;
|
||||
import com.cloud.vm.NicProfile;
|
||||
@ -186,11 +180,12 @@ import com.cloud.vm.dao.NicDao;
|
||||
import com.cloud.vm.dao.UserVmDao;
|
||||
|
||||
/**
|
||||
* NetworkManagerImpl implements NetworkManager.
|
||||
* VirtualNetworkApplianceManagerImpl manages the different types of
|
||||
* virtual network appliances available in the Cloud Stack.
|
||||
*/
|
||||
@Local(value = { DomainRouterManager.class, DomainRouterService.class })
|
||||
public class DomainRouterManagerImpl implements DomainRouterManager, DomainRouterService, VirtualMachineGuru<DomainRouterVO> {
|
||||
private static final Logger s_logger = Logger.getLogger(DomainRouterManagerImpl.class);
|
||||
@Local(value = { VirtualNetworkApplianceManager.class, VirtualNetworkApplianceService.class })
|
||||
public class VirtualNetworkApplianceManagerImpl implements VirtualNetworkApplianceManager, VirtualNetworkApplianceService, VirtualMachineGuru<DomainRouterVO> {
|
||||
private static final Logger s_logger = Logger.getLogger(VirtualNetworkApplianceManagerImpl.class);
|
||||
|
||||
String _name;
|
||||
@Inject
|
||||
@ -336,126 +331,6 @@ public class DomainRouterManagerImpl implements DomainRouterManager, DomainRoute
|
||||
}
|
||||
}
|
||||
|
||||
@DB
|
||||
public DomainRouterVO createDhcpServerForDirectlyAttachedGuests(long userId, long accountId, DataCenterVO dc, HostPodVO pod, Long candidateHost,
|
||||
VlanVO guestVlan) throws ConcurrentOperationException {
|
||||
|
||||
final AccountVO account = _accountDao.findById(accountId);
|
||||
boolean podVlan = guestVlan.getVlanType().equals(VlanType.DirectAttached) && guestVlan.getVlanTag().equals(Vlan.UNTAGGED);
|
||||
long accountIdForDHCPServer = podVlan ? Account.ACCOUNT_ID_SYSTEM : accountId;
|
||||
long domainIdForDHCPServer = podVlan ? DomainVO.ROOT_DOMAIN : account.getDomainId();
|
||||
String domainNameForDHCPServer = podVlan ? "root" : _domainDao.findById(account.getDomainId()).getName();
|
||||
|
||||
final VMTemplateVO rtrTemplate = _templateDao.findRoutingTemplate();
|
||||
|
||||
final Transaction txn = Transaction.currentTxn();
|
||||
DomainRouterVO router = null;
|
||||
Long podId = pod.getId();
|
||||
pod = _podDao.acquireInLockTable(podId, 20 * 60);
|
||||
if (pod == null) {
|
||||
throw new ConcurrentOperationException("Unable to acquire lock on pod " + podId);
|
||||
}
|
||||
if (s_logger.isDebugEnabled()) {
|
||||
s_logger.debug("Lock on pod " + podId + " is acquired");
|
||||
}
|
||||
|
||||
final long id = _routerDao.getNextInSequence(Long.class, "id");
|
||||
final String[] macAddresses = _dcDao.getNextAvailableMacAddressPair(dc.getId());
|
||||
final String mgmtMacAddress = macAddresses[0];
|
||||
final String guestMacAddress = macAddresses[1];
|
||||
final String name = VirtualMachineName.getRouterName(id, _instance).intern();
|
||||
|
||||
boolean routerLockAcquired = false;
|
||||
try {
|
||||
List<DomainRouterVO> rtrs = _routerDao.listByVlanDbId(guestVlan.getId());
|
||||
assert rtrs.size() < 2 : "How did we get more than one router per vlan?";
|
||||
if (rtrs.size() == 1) {
|
||||
return rtrs.get(0);
|
||||
}
|
||||
String mgmtNetmask = NetUtils.getCidrNetmask(pod.getCidrSize());
|
||||
final String guestIp = null;// _ipAddressDao.assignIpAddress(accountIdForDHCPServer,
|
||||
// domainIdForDHCPServer,
|
||||
// guestVlan.getId(),
|
||||
// false).getAddress();
|
||||
|
||||
router = new DomainRouterVO(id, _offering.getId(), name, mgmtMacAddress, null, mgmtNetmask, _routerTemplateId,
|
||||
rtrTemplate.getGuestOSId(), guestMacAddress, guestIp, guestVlan.getVlanNetmask(), accountIdForDHCPServer, domainIdForDHCPServer,
|
||||
"FE:FF:FF:FF:FF:FF", null, "255.255.255.255", guestVlan.getId(), guestVlan.getVlanTag(), pod.getId(), dc.getId(), _routerRamSize,
|
||||
guestVlan.getVlanGateway(), domainNameForDHCPServer, dc.getDns1(), dc.getDns2());
|
||||
router.setRole(Role.DHCP_USERDATA);
|
||||
router.setVnet(guestVlan.getVlanTag());
|
||||
|
||||
router.setLastHostId(candidateHost);
|
||||
|
||||
txn.start();
|
||||
router = _routerDao.persist(router);
|
||||
router = _routerDao.acquireInLockTable(router.getId());
|
||||
if (router == null) {
|
||||
s_logger.debug("Unable to acquire lock on router " + id);
|
||||
throw new CloudRuntimeException("Unable to acquire lock on router " + id);
|
||||
}
|
||||
|
||||
routerLockAcquired = true;
|
||||
|
||||
txn.commit();
|
||||
|
||||
List<VolumeVO> vols = _storageMgr.create(account, router, rtrTemplate, dc, pod, _offering, null, 0);
|
||||
if (vols == null) {
|
||||
_ipAddressDao.unassignIpAddress(guestIp);
|
||||
_routerDao.expunge(router.getId());
|
||||
if (s_logger.isDebugEnabled()) {
|
||||
s_logger.debug("Unable to create dhcp server in storage host or pool in pod " + pod.getName() + " (id:" + pod.getId() + ")");
|
||||
}
|
||||
}
|
||||
|
||||
final EventVO event = new EventVO();
|
||||
event.setUserId(userId);
|
||||
event.setAccountId(accountIdForDHCPServer);
|
||||
event.setType(EventTypes.EVENT_ROUTER_CREATE);
|
||||
|
||||
if (vols == null) {
|
||||
event.setDescription("failed to create DHCP Server : " + router.getName());
|
||||
event.setLevel(EventVO.LEVEL_ERROR);
|
||||
_eventDao.persist(event);
|
||||
throw new ExecutionException("Unable to create DHCP Server");
|
||||
}
|
||||
_itMgr.stateTransitTo(router, VirtualMachine.Event.OperationSucceeded, null);
|
||||
|
||||
s_logger.info("DHCP server created: id=" + router.getId() + "; name=" + router.getName() + "; vlan=" + guestVlan.getVlanTag() + "; pod="
|
||||
+ pod.getName());
|
||||
|
||||
event.setDescription("successfully created DHCP Server : " + router.getName() + " with ip : " + router.getGuestIpAddress());
|
||||
_eventDao.persist(event);
|
||||
|
||||
return router;
|
||||
} catch (final Throwable th) {
|
||||
if (th instanceof ExecutionException) {
|
||||
s_logger.error("Error while starting router due to " + th.getMessage());
|
||||
} else {
|
||||
s_logger.error("Unable to create router", th);
|
||||
}
|
||||
txn.rollback();
|
||||
|
||||
if (router.getState() == State.Creating) {
|
||||
_routerDao.expunge(router.getId());
|
||||
}
|
||||
return null;
|
||||
} finally {
|
||||
if (routerLockAcquired) {
|
||||
if (s_logger.isDebugEnabled()) {
|
||||
s_logger.debug("Releasing lock on router " + id);
|
||||
}
|
||||
_routerDao.releaseFromLockTable(id);
|
||||
}
|
||||
if (pod != null) {
|
||||
if (s_logger.isDebugEnabled()) {
|
||||
s_logger.debug("Releasing lock on pod " + podId);
|
||||
}
|
||||
_podDao.releaseFromLockTable(pod.getId());
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean destroyRouter(final long routerId) {
|
||||
|
||||
@ -1052,7 +927,7 @@ public class DomainRouterManagerImpl implements DomainRouterManager, DomainRoute
|
||||
return true;
|
||||
}
|
||||
|
||||
protected DomainRouterManagerImpl() {
|
||||
protected VirtualNetworkApplianceManagerImpl() {
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -187,7 +187,7 @@ import com.cloud.network.dao.IPAddressDao;
|
||||
import com.cloud.network.dao.NetworkDao;
|
||||
import com.cloud.network.dao.RemoteAccessVpnDao;
|
||||
import com.cloud.network.dao.VpnUserDao;
|
||||
import com.cloud.network.router.DomainRouterManager;
|
||||
import com.cloud.network.router.VirtualNetworkApplianceManager;
|
||||
import com.cloud.network.security.SecurityGroupVO;
|
||||
import com.cloud.network.security.dao.SecurityGroupDao;
|
||||
import com.cloud.offering.NetworkOffering;
|
||||
@ -437,7 +437,7 @@ public class ManagementServerImpl implements ManagementServer {
|
||||
|
||||
// Parse the max number of UserVMs and public IPs from server-setup.xml,
|
||||
// and set them in the right places
|
||||
_routerRamSize = NumbersUtil.parseInt(_configs.get("router.ram.size"),DomainRouterManager.DEFAULT_ROUTER_VM_RAMSIZE);
|
||||
_routerRamSize = NumbersUtil.parseInt(_configs.get("router.ram.size"),VirtualNetworkApplianceManager.DEFAULT_ROUTER_VM_RAMSIZE);
|
||||
_proxyRamSize = NumbersUtil.parseInt(_configs.get("consoleproxy.ram.size"), ConsoleProxyManager.DEFAULT_PROXY_VM_RAMSIZE);
|
||||
_ssRamSize = NumbersUtil.parseInt(_configs.get("secstorage.ram.size"), SecondaryStorageVmManager.DEFAULT_SS_VM_RAMSIZE);
|
||||
|
||||
|
||||
@ -111,7 +111,7 @@ import com.cloud.host.dao.DetailsDao;
|
||||
import com.cloud.host.dao.HostDao;
|
||||
import com.cloud.hypervisor.Hypervisor.HypervisorType;
|
||||
import com.cloud.network.NetworkManager;
|
||||
import com.cloud.network.router.DomainRouterManager;
|
||||
import com.cloud.network.router.VirtualNetworkApplianceManager;
|
||||
import com.cloud.offering.ServiceOffering;
|
||||
import com.cloud.service.ServiceOfferingVO;
|
||||
import com.cloud.service.dao.ServiceOfferingDao;
|
||||
@ -210,7 +210,7 @@ public class StorageManagerImpl implements StorageManager, StorageService, Manag
|
||||
@Inject protected DomainDao _domainDao;
|
||||
@Inject protected UserDao _userDao;
|
||||
@Inject protected ClusterDao _clusterDao;
|
||||
@Inject protected DomainRouterManager _routerMgr;
|
||||
@Inject protected VirtualNetworkApplianceManager _routerMgr;
|
||||
|
||||
@Inject(adapter=StoragePoolAllocator.class)
|
||||
protected Adapters<StoragePoolAllocator> _storagePoolAllocators;
|
||||
@ -2783,13 +2783,14 @@ public class StorageManagerImpl implements StorageManager, StorageService, Manag
|
||||
}
|
||||
Pair<VolumeTO, StoragePool> created = createVolume(newVol, _diskOfferingDao.findById(newVol.getDiskOfferingId()), vm, vols, dest);
|
||||
if (created == null) {
|
||||
long poolId = newVol.getPoolId();
|
||||
newVol.setPoolId(null);
|
||||
try {
|
||||
_volsDao.update(newVol, Volume.Event.OperationFailed);
|
||||
} catch (ConcurrentOperationException e) {
|
||||
throw new CloudRuntimeException("Unable to update the failure on a volume: " + newVol, e);
|
||||
}
|
||||
throw new StorageUnavailableException("Unable to create " + newVol, newVol.getPoolId());
|
||||
throw new StorageUnavailableException("Unable to create " + newVol, poolId);
|
||||
}
|
||||
created.first().setDeviceId(newVol.getDeviceId().intValue());
|
||||
newVol.setStatus(AsyncInstanceCreateStatus.Created);
|
||||
|
||||
@ -70,7 +70,7 @@ import com.cloud.network.NetworkManager;
|
||||
import com.cloud.network.NetworkVO;
|
||||
import com.cloud.network.dao.IPAddressDao;
|
||||
import com.cloud.network.dao.NetworkDao;
|
||||
import com.cloud.network.router.DomainRouterManager;
|
||||
import com.cloud.network.router.VirtualNetworkApplianceManager;
|
||||
import com.cloud.network.security.SecurityGroupManager;
|
||||
import com.cloud.server.Criteria;
|
||||
import com.cloud.storage.StorageManager;
|
||||
@ -128,7 +128,7 @@ public class AccountManagerImpl implements AccountManager, AccountService {
|
||||
@Inject private StorageManager _storageMgr;
|
||||
@Inject private TemplateManager _tmpltMgr;
|
||||
@Inject private ConfigurationManager _configMgr;
|
||||
@Inject private DomainRouterManager _routerMgr;
|
||||
@Inject private VirtualNetworkApplianceManager _routerMgr;
|
||||
|
||||
private final GlobalLock m_resourceCountLock = GlobalLock.getInternLock("resource.count");
|
||||
|
||||
|
||||
@ -130,7 +130,7 @@ import com.cloud.network.dao.IPAddressDao;
|
||||
import com.cloud.network.dao.LoadBalancerDao;
|
||||
import com.cloud.network.dao.LoadBalancerVMMapDao;
|
||||
import com.cloud.network.dao.NetworkDao;
|
||||
import com.cloud.network.router.DomainRouterManager;
|
||||
import com.cloud.network.router.VirtualNetworkApplianceManager;
|
||||
import com.cloud.network.rules.RulesManager;
|
||||
import com.cloud.network.security.SecurityGroupManager;
|
||||
import com.cloud.offering.NetworkOffering;
|
||||
@ -249,7 +249,7 @@ public class UserVmManagerImpl implements UserVmManager, UserVmService, Manager
|
||||
@Inject InstanceGroupVMMapDao _groupVMMapDao;
|
||||
@Inject VirtualMachineManager _itMgr;
|
||||
@Inject NetworkDao _networkDao;
|
||||
@Inject DomainRouterManager _routerMgr;
|
||||
@Inject VirtualNetworkApplianceManager _routerMgr;
|
||||
@Inject NicDao _nicDao;
|
||||
@Inject RulesManager _rulesMgr;
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user