diff --git a/server/src/com/cloud/configuration/DefaultComponentLibrary.java b/server/src/com/cloud/configuration/DefaultComponentLibrary.java index ffbc95069f9..140b968b62a 100755 --- a/server/src/com/cloud/configuration/DefaultComponentLibrary.java +++ b/server/src/com/cloud/configuration/DefaultComponentLibrary.java @@ -103,16 +103,9 @@ import com.cloud.network.firewall.FirewallManagerImpl; import com.cloud.network.lb.ElasticLoadBalancerManagerImpl; import com.cloud.network.lb.LoadBalancingRulesManagerImpl; import com.cloud.network.lb.dao.ElasticLbVmMapDaoImpl; -import com.cloud.network.ovs.OvsNetworkManagerImpl; import com.cloud.network.ovs.OvsTunnelManagerImpl; -import com.cloud.network.ovs.dao.GreTunnelDaoImpl; import com.cloud.network.ovs.dao.OvsTunnelInterfaceDaoImpl; import com.cloud.network.ovs.dao.OvsTunnelNetworkDaoImpl; -import com.cloud.network.ovs.dao.OvsTunnelDaoImpl; -import com.cloud.network.ovs.dao.OvsWorkDaoImpl; -import com.cloud.network.ovs.dao.VlanMappingDaoImpl; -import com.cloud.network.ovs.dao.VlanMappingDirtyDaoImpl; -import com.cloud.network.ovs.dao.VmFlowLogDaoImpl; import com.cloud.network.router.VirtualNetworkApplianceManagerImpl; import com.cloud.network.rules.RulesManagerImpl; import com.cloud.network.rules.dao.PortForwardingRulesDaoImpl; @@ -293,12 +286,6 @@ public class DefaultComponentLibrary extends ComponentLibraryBase implements Com addDao("UsageEventDao", UsageEventDaoImpl.class); addDao("ClusterDetailsDao", ClusterDetailsDaoImpl.class); addDao("UserVmDetailsDao", UserVmDetailsDaoImpl.class); - addDao("VlanMappingDao", VlanMappingDaoImpl.class); - addDao("VlanMappingDirtyDao", VlanMappingDirtyDaoImpl.class); - addDao("OvsWorkDao", OvsWorkDaoImpl.class); - addDao("VmFlowLogDao", VmFlowLogDaoImpl.class); - addDao("GreTunnelDao", GreTunnelDaoImpl.class); - addDao("OvsTunnelDao", OvsTunnelDaoImpl.class); addDao("OvsTunnelInterfaceDao", OvsTunnelInterfaceDaoImpl.class); addDao("OvsTunnelAccountDao", OvsTunnelNetworkDaoImpl.class); addDao("StoragePoolWorkDao", StoragePoolWorkDaoImpl.class); @@ -370,7 +357,6 @@ public class DefaultComponentLibrary extends ComponentLibraryBase implements Com addManager("LoadBalancingRulesManager", LoadBalancingRulesManagerImpl.class); addManager("RulesManager", RulesManagerImpl.class); addManager("RemoteAccessVpnManager", RemoteAccessVpnManagerImpl.class); - addManager("OvsNetworkManager", OvsNetworkManagerImpl.class); addManager("OvsTunnelManager", OvsTunnelManagerImpl.class); addManager("Capacity Manager", CapacityManagerImpl.class); addManager("VirtualMachineManager", ClusteredVirtualMachineManagerImpl.class); diff --git a/server/src/com/cloud/network/element/OvsElement.java b/server/src/com/cloud/network/element/OvsElement.java index 3fa130e793d..9a736671593 100644 --- a/server/src/com/cloud/network/element/OvsElement.java +++ b/server/src/com/cloud/network/element/OvsElement.java @@ -26,9 +26,7 @@ import com.cloud.network.Network.Capability; import com.cloud.network.Network.Provider; import com.cloud.network.Network.Service; import com.cloud.network.Networks; -import com.cloud.network.Networks.BroadcastDomainType; import com.cloud.network.PhysicalNetworkServiceProvider; -import com.cloud.network.ovs.OvsNetworkManager; import com.cloud.network.ovs.OvsTunnelManager; import com.cloud.offering.NetworkOffering; import com.cloud.utils.component.AdapterBase; @@ -40,8 +38,6 @@ import com.cloud.vm.VirtualMachineProfile; @Local(value = NetworkElement.class) public class OvsElement extends AdapterBase implements NetworkElement { - @Inject - OvsNetworkManager _ovsVlanMgr; @Inject OvsTunnelManager _ovsTunnelMgr; @@ -84,14 +80,6 @@ public class OvsElement extends AdapterBase implements NetworkElement { return true; } - //NOTE (Salvatore Orlando): - //The code for ovs Vlan Manager has not been touched. Only the OVS tunnel - //manager has been restored. Ideally, the code for OVS Vlan Manager should go. - _ovsVlanMgr.VmCheckAndCreateTunnel(vm, dest); - String command = _ovsVlanMgr.applyDefaultFlow(vm.getVirtualMachine(), dest); - if (command != null) { - nic.setBroadcastUri(BroadcastDomainType.Vswitch.toUri(command)); - } _ovsTunnelMgr.VmCheckAndCreateTunnel(vm, network, dest); //_ovsTunnelMgr.applyDefaultFlow(vm.getVirtualMachine(), dest); diff --git a/server/src/com/cloud/network/guru/ExternalGuestNetworkGuru.java b/server/src/com/cloud/network/guru/ExternalGuestNetworkGuru.java index 6b2882a7614..6c381f2b18e 100644 --- a/server/src/com/cloud/network/guru/ExternalGuestNetworkGuru.java +++ b/server/src/com/cloud/network/guru/ExternalGuestNetworkGuru.java @@ -35,7 +35,6 @@ import com.cloud.network.Networks.BroadcastDomainType; import com.cloud.network.PhysicalNetworkVO; import com.cloud.network.dao.NetworkDao; import com.cloud.network.dao.PhysicalNetworkDao; -import com.cloud.network.ovs.OvsNetworkManager; import com.cloud.network.ovs.OvsTunnelManager; import com.cloud.network.rules.PortForwardingRuleVO; import com.cloud.network.rules.dao.PortForwardingRulesDao; @@ -66,13 +65,11 @@ public class ExternalGuestNetworkGuru extends GuestNetworkGuru { @Inject PortForwardingRulesDao _pfRulesDao; @Inject - OvsNetworkManager _ovsNetworkMgr; - @Inject OvsTunnelManager _tunnelMgr; @Override public Network design(NetworkOffering offering, DeploymentPlan plan, Network userSpecified, Account owner) { - if (_ovsNetworkMgr.isOvsNetworkEnabled() || _tunnelMgr.isOvsTunnelEnabled()) { + if (_tunnelMgr.isOvsTunnelEnabled()) { return null; } @@ -91,7 +88,7 @@ public class ExternalGuestNetworkGuru extends GuestNetworkGuru { public Network implement(Network config, NetworkOffering offering, DeployDestination dest, ReservationContext context) throws InsufficientVirtualNetworkCapcityException { assert (config.getState() == State.Implementing) : "Why are we implementing " + config; - if (_ovsNetworkMgr.isOvsNetworkEnabled() || _tunnelMgr.isOvsTunnelEnabled()) { + if (_tunnelMgr.isOvsTunnelEnabled()) { return null; } @@ -174,7 +171,7 @@ public class ExternalGuestNetworkGuru extends GuestNetworkGuru { NicProfile profile = super.allocate(config, nic, vm); - if (_ovsNetworkMgr.isOvsNetworkEnabled() || _tunnelMgr.isOvsTunnelEnabled()) { + if (_tunnelMgr.isOvsTunnelEnabled()) { return null; } @@ -193,7 +190,7 @@ public class ExternalGuestNetworkGuru extends GuestNetworkGuru { public void deallocate(Network config, NicProfile nic, VirtualMachineProfile vm) { super.deallocate(config, nic, vm); - if (_ovsNetworkMgr.isOvsNetworkEnabled() || _tunnelMgr.isOvsTunnelEnabled()) { + if (_tunnelMgr.isOvsTunnelEnabled()) { return; } @@ -210,7 +207,7 @@ public class ExternalGuestNetworkGuru extends GuestNetworkGuru { public void reserve(NicProfile nic, Network config, VirtualMachineProfile vm, DeployDestination dest, ReservationContext context) throws InsufficientVirtualNetworkCapcityException, InsufficientAddressCapacityException { assert (nic.getReservationStrategy() == ReservationStrategy.Start) : "What can I do for nics that are not allocated at start? "; - if (_ovsNetworkMgr.isOvsNetworkEnabled()) { + if (_tunnelMgr.isOvsTunnelEnabled()) { return; } @@ -244,7 +241,7 @@ public class ExternalGuestNetworkGuru extends GuestNetworkGuru { @Override public boolean release(NicProfile nic, VirtualMachineProfile vm, String reservationId) { - if (_ovsNetworkMgr.isOvsNetworkEnabled() || _tunnelMgr.isOvsTunnelEnabled()) { + if (_tunnelMgr.isOvsTunnelEnabled()) { return true; } diff --git a/server/src/com/cloud/network/guru/OvsGuestNetworkGuru.java b/server/src/com/cloud/network/guru/OvsGuestNetworkGuru.java index a4b55866e94..d031feeb6eb 100644 --- a/server/src/com/cloud/network/guru/OvsGuestNetworkGuru.java +++ b/server/src/com/cloud/network/guru/OvsGuestNetworkGuru.java @@ -27,7 +27,6 @@ import com.cloud.exception.InsufficientVirtualNetworkCapcityException; import com.cloud.network.Network; import com.cloud.network.NetworkManager; import com.cloud.network.NetworkVO; -import com.cloud.network.ovs.OvsNetworkManager; import com.cloud.network.ovs.OvsTunnelManager; import com.cloud.offering.NetworkOffering; import com.cloud.user.Account; @@ -45,14 +44,13 @@ import com.cloud.network.Network.State; public class OvsGuestNetworkGuru extends GuestNetworkGuru { private static final Logger s_logger = Logger.getLogger(OvsGuestNetworkGuru.class); - @Inject OvsNetworkManager _ovsNetworkMgr; @Inject NetworkManager _externalNetworkManager; @Inject OvsTunnelManager _ovsTunnelMgr; @Override public Network design(NetworkOffering offering, DeploymentPlan plan, Network userSpecified, Account owner) { - if (!_ovsNetworkMgr.isOvsNetworkEnabled() && !_ovsTunnelMgr.isOvsTunnelEnabled()) { + if (!_ovsTunnelMgr.isOvsTunnelEnabled()) { return null; } @@ -73,13 +71,7 @@ public class OvsGuestNetworkGuru extends GuestNetworkGuru { if (vnet == null) { throw new InsufficientVirtualNetworkCapcityException("Unable to allocate vnet as a part of network " + network + " implement ", DataCenter.class, dcId); } - String vnetUri = null; - if (_ovsNetworkMgr.isOvsNetworkEnabled()) { - vnetUri = "vlan" + vnet; - } else if (_ovsTunnelMgr.isOvsTunnelEnabled()) { - vnetUri = vnet; - } - implemented.setBroadcastUri(BroadcastDomainType.Vswitch.toUri(vnetUri)); + implemented.setBroadcastUri(BroadcastDomainType.Vswitch.toUri(vnet)); EventUtils.saveEvent(UserContext.current().getCallerUserId(), network.getAccountId(), EventVO.LEVEL_INFO, EventTypes.EVENT_ZONE_VLAN_ASSIGN, "Assigned Zone Vlan: "+vnet+ " Network Id: "+network.getId(), 0); } else { implemented.setBroadcastUri(network.getBroadcastUri()); @@ -89,7 +81,7 @@ public class OvsGuestNetworkGuru extends GuestNetworkGuru { @Override public Network implement(Network config, NetworkOffering offering, DeployDestination dest, ReservationContext context) throws InsufficientVirtualNetworkCapcityException { assert (config.getState() == State.Implementing) : "Why are we implementing " + config; - if (!_ovsNetworkMgr.isOvsNetworkEnabled()&& !_ovsTunnelMgr.isOvsTunnelEnabled()) { + if (!_ovsTunnelMgr.isOvsTunnelEnabled()) { return null; } NetworkVO implemented = (NetworkVO)super.implement(config, offering, dest, context); diff --git a/server/src/com/cloud/network/ovs/OvsTunnelManager.java b/server/src/com/cloud/network/ovs/OvsTunnelManager.java index efba0cf99c8..5b1e1bf511d 100644 --- a/server/src/com/cloud/network/ovs/OvsTunnelManager.java +++ b/server/src/com/cloud/network/ovs/OvsTunnelManager.java @@ -22,7 +22,8 @@ public interface OvsTunnelManager extends Manager { boolean isOvsTunnelEnabled(); - public void VmCheckAndCreateTunnel(VirtualMachineProfile vm, Network nw, DeployDestination dest); + public void VmCheckAndCreateTunnel(VirtualMachineProfile vm, + Network nw, DeployDestination dest); public void CheckAndDestroyTunnel(VirtualMachine vm, Network nw); diff --git a/server/src/com/cloud/network/ovs/OvsTunnelManagerImpl.java b/server/src/com/cloud/network/ovs/OvsTunnelManagerImpl.java index cae56d10aa0..75276b590a9 100644 --- a/server/src/com/cloud/network/ovs/OvsTunnelManagerImpl.java +++ b/server/src/com/cloud/network/ovs/OvsTunnelManagerImpl.java @@ -39,9 +39,7 @@ import com.cloud.host.dao.HostDao; import com.cloud.hypervisor.Hypervisor.HypervisorType; import com.cloud.network.Network; import com.cloud.network.Networks.TrafficType; -import com.cloud.network.PhysicalNetwork; import com.cloud.network.PhysicalNetworkTrafficType; -import com.cloud.network.dao.PhysicalNetworkDao; import com.cloud.network.dao.PhysicalNetworkTrafficTypeDao; import com.cloud.network.ovs.dao.OvsTunnelInterfaceDao; import com.cloud.network.ovs.dao.OvsTunnelInterfaceVO; @@ -63,7 +61,8 @@ import com.cloud.vm.dao.UserVmDao; @Local(value={OvsTunnelManager.class}) public class OvsTunnelManagerImpl implements OvsTunnelManager { - public static final Logger s_logger = Logger.getLogger(OvsTunnelManagerImpl.class.getName()); + public static final Logger s_logger = + Logger.getLogger(OvsTunnelManagerImpl.class.getName()); String _name; boolean _isEnabled; @@ -95,16 +94,13 @@ public class OvsTunnelManagerImpl implements OvsTunnelManager { } @DB - protected OvsTunnelNetworkVO createTunnelRecord(long from, long to, long networkId, int key) { + protected OvsTunnelNetworkVO createTunnelRecord(long from, long to, + long networkId, int key) { OvsTunnelNetworkVO ta = null; - try { - // Use the network id as a Key - // FIXME: networkid is long, key must be integer - // This is a horrible cast, and it must be removed and replace with something better - // before committing into master - ta = new OvsTunnelNetworkVO(from, to, (int)networkId, networkId); - OvsTunnelNetworkVO lock = _tunnelNetworkDao.acquireInLockTable(Long.valueOf(1)); + ta = new OvsTunnelNetworkVO(from, to, key, networkId); + OvsTunnelNetworkVO lock = + _tunnelNetworkDao.acquireInLockTable(Long.valueOf(1)); if (lock == null) { s_logger.warn("Cannot lock table ovs_tunnel_account"); return null; @@ -112,20 +108,21 @@ public class OvsTunnelManagerImpl implements OvsTunnelManager { _tunnelNetworkDao.persist(ta); _tunnelNetworkDao.releaseFromLockTable(lock.getId()); } catch (EntityExistsException e) { - s_logger.debug("A record for the tunnel from " + from + " to " + to + " already exists"); + s_logger.debug("A record for the tunnel from " + from + + " to " + to + " already exists"); } - return ta; } @DB - protected OvsTunnelInterfaceVO createInterfaceRecord(String ip, String netmask, String mac, - long hostId, String label) { + protected OvsTunnelInterfaceVO createInterfaceRecord(String ip, + String netmask,String mac,long hostId, String label) { OvsTunnelInterfaceVO ti = null; try { ti = new OvsTunnelInterfaceVO(ip, netmask, mac, hostId, label); //TODO: Is locking really necessary here? - OvsTunnelInterfaceVO lock = _tunnelInterfaceDao.acquireInLockTable(Long.valueOf(1)); + OvsTunnelInterfaceVO lock = + _tunnelInterfaceDao.acquireInLockTable(Long.valueOf(1)); if (lock == null) { s_logger.warn("Cannot lock table ovs_tunnel_account"); return null; @@ -139,49 +136,54 @@ public class OvsTunnelManagerImpl implements OvsTunnelManager { return ti; } - private String handleFetchInterfaceAnswer(Answer[] answers, Long hostId){ OvsFetchInterfaceAnswer ans = (OvsFetchInterfaceAnswer) answers[0]; - OvsTunnelInterfaceVO ti = createInterfaceRecord(ans.getIp(), ans.getNetmask(), ans.getMac(), - hostId, ans.getLabel()); - s_logger.debug("### Interface added to DB - id:" + ti.getId()); + OvsTunnelInterfaceVO ti = + createInterfaceRecord(ans.getIp(), ans.getNetmask(), + ans.getMac(), hostId, ans.getLabel()); return ti.getIp(); } private void handleCreateTunnelAnswer(Answer[] answers){ OvsCreateTunnelAnswer r = (OvsCreateTunnelAnswer) answers[0]; String s = String.format( - "(hostIP:%1$s, remoteIP:%2$s, bridge:%3$s, greKey:%4$s, portName:%5$s)", - r.getFromIp(), r.getToIp(), r.getBridge(), r.getKey(), r.getInPortName()); + "(hostIP:%1$s, remoteIP:%2$s, bridge:%3$s," + + "greKey:%4$s, portName:%5$s)", + r.getFromIp(), r.getToIp(), r.getBridge(), + r.getKey(), r.getInPortName()); Long from = r.getFrom(); Long to = r.getTo(); long networkId = r.getNetworkId(); - OvsTunnelNetworkVO ta = _tunnelNetworkDao.getByFromToNetwork(from, to, networkId); - if (ta == null) { - throw new CloudRuntimeException(String.format("Unable find tunnelAccount record(from=%1$s, to=%2$s, account=%3$s", from, to, networkId)); + OvsTunnelNetworkVO tunnel = _tunnelNetworkDao.getByFromToNetwork(from, to, networkId); + if (tunnel == null) { + throw new CloudRuntimeException( + String.format("Unable find tunnelNetwork record" + + "(from=%1$s,to=%2$s, account=%3$s", + from, to, networkId)); } - s_logger.debug("Result:" + r.getResult()); if (!r.getResult()) { - ta.setState("FAILED"); - s_logger.warn("Create GRE tunnel failed due to " + r.getDetails() + s); + tunnel.setState("FAILED"); + s_logger.warn("Create GRE tunnel failed due to " + + r.getDetails() + s); } else { - ta.setState("SUCCESS"); - ta.setPortName(r.getInPortName()); - s_logger.warn("Create GRE tunnel " + r.getDetails() + s); + tunnel.setState("SUCCESS"); + tunnel.setPortName(r.getInPortName()); + s_logger.warn("Create GRE tunnel " + + r.getDetails() + s); } - _tunnelNetworkDao.update(ta.getId(), ta); + _tunnelNetworkDao.update(tunnel.getId(), tunnel); } - - private String getGreEndpointIP(Host host, Network nw) throws AgentUnavailableException, OperationTimedoutException { + private String getGreEndpointIP(Host host, Network nw) throws + AgentUnavailableException, OperationTimedoutException { String endpointIp = null; // Fetch physical network and associated tags // If no tag specified, look for this network - // TODO: Should we Make this a configuration option? + // Default name for network label String physNetLabel = "cloud-public"; Long physNetId = nw.getPhysicalNetworkId(); - PhysicalNetworkTrafficType physNetTT = _physNetTTDao.findBy(physNetId, TrafficType.Guest); - s_logger.debug("### Physical network:" + physNetId + " - traffic type:" + physNetTT.getUuid()); + PhysicalNetworkTrafficType physNetTT = + _physNetTTDao.findBy(physNetId, TrafficType.Guest); HypervisorType hvType = host.getHypervisorType(); switch (hvType) { @@ -192,27 +194,34 @@ public class OvsTunnelManagerImpl implements OvsTunnelManager { } break; default: - throw new CloudRuntimeException("Hypervisor " + hvType.toString() + " unsupported by OVS Tunnel Manager"); + throw new CloudRuntimeException("Hypervisor " + + hvType.toString() + + " unsupported by OVS Tunnel Manager"); } // Try to fetch GRE endpoint IP address for cloud db // If not found, then find it on the hypervisor - OvsTunnelInterfaceVO tunnelIface = _tunnelInterfaceDao.getByHostAndLabel(host.getId(), physNetLabel); + OvsTunnelInterfaceVO tunnelIface = + _tunnelInterfaceDao.getByHostAndLabel(host.getId(), + physNetLabel); if (tunnelIface == null) { - //Now find and fetch configuration for physical interface for network with label on target host - Commands fetchIfaceCmds = new Commands(new OvsFetchInterfaceCommand(physNetLabel)); - s_logger.debug("Ask host " + host.getId() + " to retrieve interface for phy net with label:" + physNetLabel); - Answer[] fetchIfaceAnswers = _agentMgr.send(host.getId(), fetchIfaceCmds); - + //Now find and fetch configuration for physical interface + //for network with label on target host + Commands fetchIfaceCmds = + new Commands(new OvsFetchInterfaceCommand(physNetLabel)); + s_logger.debug("Ask host " + host.getId() + + " to retrieve interface for phy net with label:" + + physNetLabel); + Answer[] fetchIfaceAnswers = _agentMgr.send(host.getId(), + fetchIfaceCmds); //And finally save it for future use - endpointIp = handleFetchInterfaceAnswer(fetchIfaceAnswers, host.getId()); + endpointIp = handleFetchInterfaceAnswer(fetchIfaceAnswers, + host.getId()); } else { endpointIp = tunnelIface.getIp(); } - s_logger.debug("### Ladies and gents, the endpoint for host " + host.getId() + " is " + endpointIp); return endpointIp; } - private int getGreKey(Network network) { int key = 0; @@ -227,13 +236,15 @@ public class OvsTunnelManagerImpl implements OvsTunnelManager { s_logger.debug("Well well, how did '" + key + "' end up in the broadcast URI for the network?"); throw new CloudRuntimeException( - String.format("Invalid GRE key parsed from network broadcast URI (%s)", + String.format("Invalid GRE key parsed from" + + "network broadcast URI (%s)", network.getBroadcastUri().toString())); } } @DB - protected void CheckAndCreateTunnel(VirtualMachine instance, Network nw, DeployDestination dest) { + protected void CheckAndCreateTunnel(VirtualMachine instance, + Network nw, DeployDestination dest) { if (!_isEnabled) { return; } @@ -241,15 +252,17 @@ public class OvsTunnelManagerImpl implements OvsTunnelManager { s_logger.debug("Creating tunnels with OVS tunnel manager"); if (instance.getType() != VirtualMachine.Type.User && instance.getType() != VirtualMachine.Type.DomainRouter) { - s_logger.debug("Will not work if you're not an instance or a virtual router"); + s_logger.debug("Will not work if you're not" + + "an instance or a virtual router"); return; } long hostId = dest.getHost().getId(); int key = getGreKey(nw); - // Find active (i.e.: not shut off) VMs with a NIC on the target network - List vms = _userVmDao.listByNetworkIdAndStates(nw.getId(), State.Running, State.Starting, - State.Stopping, State.Unknown, State.Migrating); + // Find active VMs with a NIC on the target network + List vms = _userVmDao.listByNetworkIdAndStates(nw.getId(), + State.Running, State.Starting, + State.Stopping, State.Unknown, State.Migrating); // Find routers for the network List routers = _routerDao.findByNetwork(nw.getId()); Listins = new ArrayList(); @@ -269,25 +282,31 @@ public class OvsTunnelManagerImpl implements OvsTunnelManager { if (rh == null || rh.longValue() == hostId) { continue; } - //FIXME: Still using 'TunnelAccount name' - but should actually be tunnelNetwork or something like that - OvsTunnelNetworkVO ta = _tunnelNetworkDao.getByFromToNetwork(hostId, rh.longValue(), nw.getId()); + OvsTunnelNetworkVO ta = + _tunnelNetworkDao.getByFromToNetwork(hostId, + rh.longValue(), nw.getId()); // Try and create the tunnel even if a previous attempt failed if (ta == null || ta.getState().equals("FAILED")) { - s_logger.debug("Attempting to create tunnel from:" + hostId + " to:" + rh.longValue()); + s_logger.debug("Attempting to create tunnel from:" + + hostId + " to:" + rh.longValue()); if (ta == null) { - this.createTunnelRecord(hostId, rh.longValue(), nw.getId(), key); + this.createTunnelRecord(hostId, rh.longValue(), + nw.getId(), key); } if (!toHostIds.contains(rh)) { toHostIds.add(rh); } } - ta = _tunnelNetworkDao.getByFromToNetwork(rh.longValue(), hostId, nw.getId()); + ta = _tunnelNetworkDao.getByFromToNetwork(rh.longValue(), + hostId, nw.getId()); // Try and create the tunnel even if a previous attempt failed if (ta == null || ta.getState().equals("FAILED")) { - s_logger.debug("Attempting to create tunnel from:" + rh.longValue() + " to:" + hostId); + s_logger.debug("Attempting to create tunnel from:" + + rh.longValue() + " to:" + hostId); if (ta == null) { - this.createTunnelRecord(rh.longValue(), hostId, nw.getId(), key); + this.createTunnelRecord(rh.longValue(), hostId, + nw.getId(), key); } if (!fromHostIds.contains(rh)) { fromHostIds.add(rh); @@ -303,8 +322,9 @@ public class OvsTunnelManagerImpl implements OvsTunnelManager { String otherIp = getGreEndpointIP(rHost, nw); Commands cmds = new Commands( new OvsCreateTunnelCommand(otherIp, key, - Long.valueOf(hostId), i, nw.getId(), myIp)); - s_logger.debug("Ask host " + hostId + " to create gre tunnel to " + i); + Long.valueOf(hostId), i, nw.getId(), myIp)); + s_logger.debug("Ask host " + hostId + + " to create gre tunnel to " + i); Answer[] answers = _agentMgr.send(hostId, cmds); handleCreateTunnelAnswer(answers); noHost = false; @@ -314,9 +334,11 @@ public class OvsTunnelManagerImpl implements OvsTunnelManager { HostVO rHost = _hostDao.findById(i); String otherIp = getGreEndpointIP(rHost, nw); Commands cmds = new Commands( - new OvsCreateTunnelCommand(myIp, key, i, Long.valueOf(hostId), - nw.getId(), otherIp)); - s_logger.debug("Ask host " + i + " to create gre tunnel to " + hostId); + new OvsCreateTunnelCommand(myIp, key, i, + Long.valueOf(hostId), + nw.getId(), otherIp)); + s_logger.debug("Ask host " + i + + " to create gre tunnel to " + hostId); Answer[] answers = _agentMgr.send(i, cmds); handleCreateTunnelAnswer(answers); noHost = false; @@ -326,7 +348,8 @@ public class OvsTunnelManagerImpl implements OvsTunnelManager { if (noHost) { Commands cmds = new Commands( new OvsSetupBridgeCommand(key, hostId, nw.getId())); - s_logger.debug("Ask host " + hostId + " to configure bridge for network:" + nw.getId()); + s_logger.debug("Ask host " + hostId + + " to configure bridge for network:" + nw.getId()); Answer[] answers = _agentMgr.send(hostId, cmds); handleSetupBridgeAnswer(answers); } @@ -356,49 +379,59 @@ public class OvsTunnelManagerImpl implements OvsTunnelManager { } @Override - public void VmCheckAndCreateTunnel(VirtualMachineProfile vm, Network nw, DeployDestination dest) { + public void VmCheckAndCreateTunnel( + VirtualMachineProfile vm, + Network nw, DeployDestination dest) { CheckAndCreateTunnel(vm.getVirtualMachine(), nw, dest); } @DB - private void handleDestroyTunnelAnswer(Answer ans, long from, long to, long network_id) { - + private void handleDestroyTunnelAnswer(Answer ans, long from, + long to, long network_id) { if (ans.getResult()) { OvsTunnelNetworkVO lock = _tunnelNetworkDao.acquireInLockTable(Long.valueOf(1)); if (lock == null) { - s_logger.warn(String.format("failed to lock ovs_tunnel_account, remove record of " + - "tunnel(from=%1$s, to=%2$s account=%3$s) failed", - from, to, network_id)); + s_logger.warn(String.format("failed to lock" + + "ovs_tunnel_account, remove record of " + + "tunnel(from=%1$s, to=%2$s account=%3$s) failed", + from, to, network_id)); return; } _tunnelNetworkDao.removeByFromToNetwork(from, to, network_id); _tunnelNetworkDao.releaseFromLockTable(lock.getId()); - s_logger.debug(String.format("Destroy tunnel(account:%1$s, from:%2$s, to:%3$s) successful", - network_id, from, to)); + s_logger.debug(String.format("Destroy tunnel(account:%1$s," + + "from:%2$s, to:%3$s) successful", + network_id, from, to)); } else { - s_logger.debug(String.format("Destroy tunnel(account:%1$s, from:%2$s, to:%3$s) failed", - network_id, from, to)); + s_logger.debug(String.format("Destroy tunnel(account:%1$s," + + "from:%2$s, to:%3$s) failed", + network_id, from, to)); } } @DB - private void handleDestroyBridgeAnswer(Answer ans, long host_id, long network_id) { + private void handleDestroyBridgeAnswer(Answer ans, + long host_id, long network_id) { if (ans.getResult()) { - OvsTunnelNetworkVO lock = _tunnelNetworkDao.acquireInLockTable(Long.valueOf(1)); + OvsTunnelNetworkVO lock = + _tunnelNetworkDao.acquireInLockTable(Long.valueOf(1)); if (lock == null) { - s_logger.warn("failed to lock ovs_tunnel_network, remove record"); + s_logger.warn("failed to lock ovs_tunnel_network," + + "remove record"); return; } _tunnelNetworkDao.removeByFromNetwork(host_id, network_id); _tunnelNetworkDao.releaseFromLockTable(lock.getId()); - s_logger.debug(String.format("Destroy bridge for network %1$s successful", network_id)); + s_logger.debug(String.format("Destroy bridge for" + + "network %1$s successful", network_id)); } else { - s_logger.debug(String.format("Destroy bridge for network %1$s failed", network_id)); + s_logger.debug(String.format("Destroy bridge for" + + "network %1$s failed", network_id)); } } @@ -413,19 +446,22 @@ public class OvsTunnelManagerImpl implements OvsTunnelManager { return; } - List userVms = _userVmDao.listByAccountIdAndHostId(vm.getAccountId(), vm.getHostId()); + List userVms = _userVmDao.listByAccountIdAndHostId( + vm.getAccountId(), vm.getHostId()); if (vm.getType() == VirtualMachine.Type.User) { if (userVms.size() > 1) { return; } - List routers = _routerDao.findByNetwork(nw.getId()); + List routers = + _routerDao.findByNetwork(nw.getId()); for (DomainRouterVO router : routers) { if (router.getHostId() == vm.getHostId()) { return; } } - } else if (vm.getType() == VirtualMachine.Type.DomainRouter && userVms.size() != 0) { + } else if (vm.getType() == VirtualMachine.Type.DomainRouter && + userVms.size() != 0) { return; } try { @@ -433,26 +469,31 @@ public class OvsTunnelManagerImpl implements OvsTunnelManager { * the tunnels for this network */ int key = getGreKey(nw); Command cmd = new OvsDestroyBridgeCommand(nw.getId(), key); - s_logger.debug("Destroying bridge for network " + nw.getId() + " on host:" + vm.getHostId()); + s_logger.debug("Destroying bridge for network " + nw.getId() + + " on host:" + vm.getHostId()); Answer ans = _agentMgr.send(vm.getHostId(), cmd); handleDestroyBridgeAnswer(ans, vm.getHostId(), nw.getId()); /* Then ask hosts have peer tunnel with me to destroy them */ - List peers = _tunnelNetworkDao.listByToNetwork(vm.getHostId(), nw.getId()); + List peers = + _tunnelNetworkDao.listByToNetwork(vm.getHostId(), + nw.getId()); for (OvsTunnelNetworkVO p : peers) { // If the tunnel was not successfully created don't bother to remove it if (p.getState().equals("SUCCESS")) { - cmd = new OvsDestroyTunnelCommand(p.getNetworkId(), key, p.getPortName()); + cmd = new OvsDestroyTunnelCommand(p.getNetworkId(), key, + p.getPortName()); s_logger.debug("Destroying tunnel to " + vm.getHostId() + " from " + p.getFrom()); ans = _agentMgr.send(p.getFrom(), cmd); - handleDestroyTunnelAnswer(ans, p.getFrom(), p.getTo(), p.getNetworkId()); + handleDestroyTunnelAnswer(ans, p.getFrom(), + p.getTo(), p.getNetworkId()); } } } catch (Exception e) { - s_logger.warn(String.format("Destroy tunnel(account:%1$s, hostId:%2$s) failed", vm.getAccountId(), vm.getHostId()), e); + s_logger.warn(String.format("Destroy tunnel(account:%1$s," + + "hostId:%2$s) failed", vm.getAccountId(), vm.getHostId()), e); } - } } diff --git a/server/test/com/cloud/agent/manager/ResourceManagerTest.java b/server/test/com/cloud/agent/manager/ResourceManagerTest.java index 57433ad191e..2e253414404 100755 --- a/server/test/com/cloud/agent/manager/ResourceManagerTest.java +++ b/server/test/com/cloud/agent/manager/ResourceManagerTest.java @@ -10,367 +10,351 @@ // limitations under the License. // // Automatically generated by addcopyright.py at 04/03/2012 -package com.cloud.agent.manager; - -import java.io.Serializable; -import java.lang.reflect.Field; - -import junit.framework.TestCase; - -import org.apache.log4j.Logger; -import org.junit.After; -import org.junit.Before; - -import com.cloud.alert.AlertManagerImpl; -import com.cloud.alert.dao.AlertDaoImpl; -import com.cloud.api.BaseCmd; -import com.cloud.api.commands.CreatePodCmd; -import com.cloud.api.commands.CreateZoneCmd; -import com.cloud.async.AsyncJobExecutorContextImpl; -import com.cloud.async.AsyncJobManagerImpl; -import com.cloud.async.SyncQueueManagerImpl; -import com.cloud.async.dao.AsyncJobDaoImpl; -import com.cloud.async.dao.SyncQueueDaoImpl; -import com.cloud.async.dao.SyncQueueItemDaoImpl; -import com.cloud.capacity.CapacityManagerImpl; -import com.cloud.capacity.dao.CapacityDaoImpl; -import com.cloud.certificate.dao.CertificateDaoImpl; -import com.cloud.cluster.CheckPointManagerImpl; -import com.cloud.cluster.ClusterFenceManagerImpl; -import com.cloud.cluster.ClusterManagerImpl; -import com.cloud.cluster.agentlb.dao.HostTransferMapDaoImpl; -import com.cloud.cluster.dao.ManagementServerHostDaoImpl; -import com.cloud.cluster.dao.StackMaidDaoImpl; -import com.cloud.configuration.ConfigurationManagerImpl; -import com.cloud.configuration.ConfigurationService; -import com.cloud.configuration.dao.ConfigurationDaoImpl; -import com.cloud.configuration.dao.ResourceCountDaoImpl; -import com.cloud.configuration.dao.ResourceLimitDaoImpl; -import com.cloud.consoleproxy.ConsoleProxyManagerImpl; -import com.cloud.dao.EntityManagerImpl; -import com.cloud.dc.ClusterDetailsDaoImpl; -import com.cloud.dc.dao.AccountVlanMapDaoImpl; -import com.cloud.dc.dao.ClusterDaoImpl; -import com.cloud.dc.dao.DataCenterDaoImpl; -import com.cloud.dc.dao.DataCenterIpAddressDaoImpl; -import com.cloud.dc.dao.DcDetailsDaoImpl; -import com.cloud.dc.dao.HostPodDaoImpl; -import com.cloud.dc.dao.PodVlanMapDaoImpl; -import com.cloud.dc.dao.VlanDaoImpl; -import com.cloud.domain.dao.DomainDaoImpl; -import com.cloud.event.dao.EventDaoImpl; -import com.cloud.event.dao.UsageEventDaoImpl; -import com.cloud.ha.HighAvailabilityManagerImpl; -import com.cloud.ha.dao.HighAvailabilityDaoImpl; -import com.cloud.host.dao.HostDaoImpl; -import com.cloud.host.dao.HostDetailsDaoImpl; -import com.cloud.host.dao.HostTagsDaoImpl; -import com.cloud.hypervisor.HypervisorGuruManagerImpl; -import com.cloud.hypervisor.dao.HypervisorCapabilitiesDaoImpl; -import com.cloud.keystore.KeystoreDaoImpl; -import com.cloud.keystore.KeystoreManagerImpl; -import com.cloud.maint.UpgradeManagerImpl; -import com.cloud.maint.dao.AgentUpgradeDaoImpl; -import com.cloud.network.NetworkManagerImpl; -import com.cloud.network.dao.FirewallRulesCidrsDaoImpl; -import com.cloud.network.dao.FirewallRulesDaoImpl; -import com.cloud.network.dao.IPAddressDaoImpl; -import com.cloud.network.dao.InlineLoadBalancerNicMapDaoImpl; -import com.cloud.network.dao.LoadBalancerDaoImpl; -import com.cloud.network.dao.LoadBalancerVMMapDaoImpl; -import com.cloud.network.dao.NetworkDaoImpl; -import com.cloud.network.dao.NetworkDomainDaoImpl; -import com.cloud.network.dao.NetworkRuleConfigDaoImpl; -import com.cloud.network.dao.RemoteAccessVpnDaoImpl; -import com.cloud.network.dao.VpnUserDaoImpl; -import com.cloud.network.firewall.FirewallManagerImpl; -import com.cloud.network.lb.ElasticLoadBalancerManagerImpl; -import com.cloud.network.lb.LoadBalancingRulesManagerImpl; -import com.cloud.network.lb.dao.ElasticLbVmMapDaoImpl; -import com.cloud.network.ovs.OvsNetworkManagerImpl; -import com.cloud.network.ovs.OvsTunnelManagerImpl; -import com.cloud.network.ovs.dao.GreTunnelDaoImpl; -import com.cloud.network.ovs.dao.OvsTunnelAccountDaoImpl; -import com.cloud.network.ovs.dao.OvsTunnelDaoImpl; -import com.cloud.network.ovs.dao.OvsWorkDaoImpl; -import com.cloud.network.ovs.dao.VlanMappingDaoImpl; -import com.cloud.network.ovs.dao.VlanMappingDirtyDaoImpl; -import com.cloud.network.ovs.dao.VmFlowLogDaoImpl; -import com.cloud.network.router.VirtualNetworkApplianceManagerImpl; -import com.cloud.network.rules.RulesManagerImpl; -import com.cloud.network.rules.dao.PortForwardingRulesDaoImpl; -import com.cloud.network.security.SecurityGroupManagerImpl2; -import com.cloud.network.security.dao.SecurityGroupDaoImpl; -import com.cloud.network.security.dao.SecurityGroupRulesDaoImpl; -import com.cloud.network.security.dao.SecurityGroupVMMapDaoImpl; -import com.cloud.network.security.dao.SecurityGroupWorkDaoImpl; -import com.cloud.network.security.dao.VmRulesetLogDaoImpl; -import com.cloud.network.vpn.RemoteAccessVpnManagerImpl; -import com.cloud.offerings.dao.NetworkOfferingDaoImpl; -import com.cloud.projects.ProjectManagerImpl; -import com.cloud.projects.dao.ProjectAccountDaoImpl; -import com.cloud.projects.dao.ProjectDaoImpl; -import com.cloud.resource.ResourceManagerImpl; -import com.cloud.resourcelimit.ResourceLimitManagerImpl; -import com.cloud.service.dao.ServiceOfferingDaoImpl; -import com.cloud.storage.OCFS2ManagerImpl; -import com.cloud.storage.StorageManagerImpl; -import com.cloud.storage.dao.DiskOfferingDaoImpl; -import com.cloud.storage.dao.GuestOSCategoryDaoImpl; -import com.cloud.storage.dao.GuestOSDaoImpl; -import com.cloud.storage.dao.LaunchPermissionDaoImpl; -import com.cloud.storage.dao.SnapshotDaoImpl; -import com.cloud.storage.dao.SnapshotPolicyDaoImpl; -import com.cloud.storage.dao.SnapshotScheduleDaoImpl; -import com.cloud.storage.dao.StoragePoolDaoImpl; -import com.cloud.storage.dao.StoragePoolHostDaoImpl; -import com.cloud.storage.dao.StoragePoolWorkDaoImpl; -import com.cloud.storage.dao.SwiftDaoImpl; -import com.cloud.storage.dao.UploadDaoImpl; -import com.cloud.storage.dao.VMTemplateDaoImpl; -import com.cloud.storage.dao.VMTemplateHostDaoImpl; -import com.cloud.storage.dao.VMTemplatePoolDaoImpl; -import com.cloud.storage.dao.VMTemplateZoneDaoImpl; -import com.cloud.storage.dao.VolumeDaoImpl; -import com.cloud.storage.download.DownloadMonitorImpl; -import com.cloud.storage.secondary.SecondaryStorageManagerImpl; -import com.cloud.storage.snapshot.SnapshotManagerImpl; -import com.cloud.storage.snapshot.SnapshotSchedulerImpl; -import com.cloud.storage.upload.UploadMonitorImpl; -import com.cloud.template.TemplateManagerImpl; -import com.cloud.user.AccountManagerImpl; -import com.cloud.user.DomainManagerImpl; -import com.cloud.user.dao.AccountDaoImpl; -import com.cloud.user.dao.SSHKeyPairDaoImpl; -import com.cloud.user.dao.UserAccountDaoImpl; -import com.cloud.user.dao.UserDaoImpl; -import com.cloud.user.dao.UserStatisticsDaoImpl; -import com.cloud.utils.component.ComponentLocator; -import com.cloud.utils.component.ComponentLocator.ComponentInfo; -import com.cloud.utils.component.Manager; -import com.cloud.utils.component.MockComponentLocator; -import com.cloud.utils.db.GenericDao; -import com.cloud.vm.ClusteredVirtualMachineManagerImpl; -import com.cloud.vm.ItWorkDaoImpl; -import com.cloud.vm.UserVmManagerImpl; -import com.cloud.vm.dao.ConsoleProxyDaoImpl; -import com.cloud.vm.dao.DomainRouterDaoImpl; -import com.cloud.vm.dao.InstanceGroupDaoImpl; -import com.cloud.vm.dao.InstanceGroupVMMapDaoImpl; -import com.cloud.vm.dao.NicDaoImpl; -import com.cloud.vm.dao.SecondaryStorageVmDaoImpl; -import com.cloud.vm.dao.UserVmDaoImpl; -import com.cloud.vm.dao.UserVmDetailsDaoImpl; -import com.cloud.vm.dao.VMInstanceDaoImpl; - -public class ResourceManagerTest extends TestCase { - MockComponentLocator _locator; - private static final Logger s_logger = Logger.getLogger(ResourceManagerTest.class); - ConfigurationService _configService; - - @Override - @Before - public void setUp() throws Exception { - _locator = new MockComponentLocator("management-server"); - _locator.addDao("StackMaidDao", StackMaidDaoImpl.class); - _locator.addDao("VMTemplateZoneDao", VMTemplateZoneDaoImpl.class); - _locator.addDao("DomainRouterDao", DomainRouterDaoImpl.class); - _locator.addDao("HostDao", HostDaoImpl.class); - _locator.addDao("VMInstanceDao", VMInstanceDaoImpl.class); - _locator.addDao("UserVmDao", UserVmDaoImpl.class); - ComponentInfo> info = _locator.addDao("ServiceOfferingDao", ServiceOfferingDaoImpl.class); - info.addParameter("cache.size", "50"); - info.addParameter("cache.time.to.live", "600"); - info = _locator.addDao("DiskOfferingDao", DiskOfferingDaoImpl.class); - info.addParameter("cache.size", "50"); - info.addParameter("cache.time.to.live", "600"); - info = _locator.addDao("DataCenterDao", DataCenterDaoImpl.class); - info.addParameter("cache.size", "50"); - info.addParameter("cache.time.to.live", "600"); - info = _locator.addDao("HostPodDao", HostPodDaoImpl.class); - info.addParameter("cache.size", "50"); - info.addParameter("cache.time.to.live", "600"); - _locator.addDao("IPAddressDao", IPAddressDaoImpl.class); - info = _locator.addDao("VlanDao", VlanDaoImpl.class); - info.addParameter("cache.size", "30"); - info.addParameter("cache.time.to.live", "3600"); - _locator.addDao("PodVlanMapDao", PodVlanMapDaoImpl.class); - _locator.addDao("AccountVlanMapDao", AccountVlanMapDaoImpl.class); - _locator.addDao("VolumeDao", VolumeDaoImpl.class); - _locator.addDao("EventDao", EventDaoImpl.class); - info = _locator.addDao("UserDao", UserDaoImpl.class); - info.addParameter("cache.size", "5000"); - info.addParameter("cache.time.to.live", "300"); - _locator.addDao("UserStatisticsDao", UserStatisticsDaoImpl.class); - _locator.addDao("FirewallRulesDao", FirewallRulesDaoImpl.class); - _locator.addDao("LoadBalancerDao", LoadBalancerDaoImpl.class); - _locator.addDao("NetworkRuleConfigDao", NetworkRuleConfigDaoImpl.class); - _locator.addDao("LoadBalancerVMMapDao", LoadBalancerVMMapDaoImpl.class); - _locator.addDao("DataCenterIpAddressDao", DataCenterIpAddressDaoImpl.class); - _locator.addDao("SecurityGroupDao", SecurityGroupDaoImpl.class); - //_locator.addDao("IngressRuleDao", IngressRuleDaoImpl.class); - _locator.addDao("SecurityGroupVMMapDao", SecurityGroupVMMapDaoImpl.class); - _locator.addDao("SecurityGroupRulesDao", SecurityGroupRulesDaoImpl.class); - _locator.addDao("SecurityGroupWorkDao", SecurityGroupWorkDaoImpl.class); - _locator.addDao("VmRulesetLogDao", VmRulesetLogDaoImpl.class); - _locator.addDao("AlertDao", AlertDaoImpl.class); - _locator.addDao("CapacityDao", CapacityDaoImpl.class); - _locator.addDao("DomainDao", DomainDaoImpl.class); - _locator.addDao("AccountDao", AccountDaoImpl.class); - _locator.addDao("ResourceLimitDao", ResourceLimitDaoImpl.class); - _locator.addDao("ResourceCountDao", ResourceCountDaoImpl.class); - _locator.addDao("UserAccountDao", UserAccountDaoImpl.class); - _locator.addDao("VMTemplateHostDao", VMTemplateHostDaoImpl.class); - _locator.addDao("UploadDao", UploadDaoImpl.class); - _locator.addDao("VMTemplatePoolDao", VMTemplatePoolDaoImpl.class); - _locator.addDao("LaunchPermissionDao", LaunchPermissionDaoImpl.class); - _locator.addDao("ConfigurationDao", ConfigurationDaoImpl.class); - info = _locator.addDao("VMTemplateDao", VMTemplateDaoImpl.class); - info.addParameter("cache.size", "100"); - info.addParameter("cache.time.to.live", "600"); - info.addParameter("routing.uniquename", "routing"); - _locator.addDao("HighAvailabilityDao", HighAvailabilityDaoImpl.class); - _locator.addDao("ConsoleProxyDao", ConsoleProxyDaoImpl.class); - _locator.addDao("SecondaryStorageVmDao", SecondaryStorageVmDaoImpl.class); - _locator.addDao("ManagementServerHostDao", ManagementServerHostDaoImpl.class); - _locator.addDao("AgentUpgradeDao", AgentUpgradeDaoImpl.class); - _locator.addDao("SnapshotDao", SnapshotDaoImpl.class); - _locator.addDao("AsyncJobDao", AsyncJobDaoImpl.class); - _locator.addDao("SyncQueueDao", SyncQueueDaoImpl.class); - _locator.addDao("SyncQueueItemDao", SyncQueueItemDaoImpl.class); - _locator.addDao("GuestOSDao", GuestOSDaoImpl.class); - _locator.addDao("GuestOSCategoryDao", GuestOSCategoryDaoImpl.class); - _locator.addDao("StoragePoolDao", StoragePoolDaoImpl.class); - _locator.addDao("StoragePoolHostDao", StoragePoolHostDaoImpl.class); - _locator.addDao("DetailsDao", HostDetailsDaoImpl.class); - _locator.addDao("SnapshotPolicyDao", SnapshotPolicyDaoImpl.class); - _locator.addDao("SnapshotScheduleDao", SnapshotScheduleDaoImpl.class); - _locator.addDao("ClusterDao", ClusterDaoImpl.class); - _locator.addDao("CertificateDao", CertificateDaoImpl.class); - _locator.addDao("NetworkConfigurationDao", NetworkDaoImpl.class); - _locator.addDao("NetworkOfferingDao", NetworkOfferingDaoImpl.class); - _locator.addDao("NicDao", NicDaoImpl.class); - _locator.addDao("InstanceGroupDao", InstanceGroupDaoImpl.class); - _locator.addDao("InstanceGroupVMMapDao", InstanceGroupVMMapDaoImpl.class); - _locator.addDao("RemoteAccessVpnDao", RemoteAccessVpnDaoImpl.class); - _locator.addDao("VpnUserDao", VpnUserDaoImpl.class); - _locator.addDao("ItWorkDao", ItWorkDaoImpl.class); - _locator.addDao("FirewallRulesDao", FirewallRulesDaoImpl.class); - _locator.addDao("PortForwardingRulesDao", PortForwardingRulesDaoImpl.class); - _locator.addDao("FirewallRulesCidrsDao", FirewallRulesCidrsDaoImpl.class); - _locator.addDao("SSHKeyPairDao", SSHKeyPairDaoImpl.class); - _locator.addDao("UsageEventDao", UsageEventDaoImpl.class); - _locator.addDao("ClusterDetailsDao", ClusterDetailsDaoImpl.class); - _locator.addDao("UserVmDetailsDao", UserVmDetailsDaoImpl.class); - _locator.addDao("VlanMappingDao", VlanMappingDaoImpl.class); - _locator.addDao("VlanMappingDirtyDao", VlanMappingDirtyDaoImpl.class); - _locator.addDao("OvsWorkDao", OvsWorkDaoImpl.class); - _locator.addDao("VmFlowLogDao", VmFlowLogDaoImpl.class); - _locator.addDao("GreTunnelDao", GreTunnelDaoImpl.class); - _locator.addDao("OvsTunnelDao", OvsTunnelDaoImpl.class); - _locator.addDao("OvsTunnelAccountDao", OvsTunnelAccountDaoImpl.class); - _locator.addDao("StoragePoolWorkDao", StoragePoolWorkDaoImpl.class); - _locator.addDao("HostTagsDao", HostTagsDaoImpl.class); - _locator.addDao("NetworkDomainDao", NetworkDomainDaoImpl.class); - _locator.addDao("KeystoreDao", KeystoreDaoImpl.class); - _locator.addDao("DcDetailsDao", DcDetailsDaoImpl.class); - _locator.addDao("SwiftDao", SwiftDaoImpl.class); - _locator.addDao("AgentTransferMapDao", HostTransferMapDaoImpl.class); - _locator.addDao("ProjectDao", ProjectDaoImpl.class); - _locator.addDao("InlineLoadBalancerNicMapDao", InlineLoadBalancerNicMapDaoImpl.class); - _locator.addDao("ElasticLbVmMap", ElasticLbVmMapDaoImpl.class); - _locator.addDao("ProjectsAccountDao", ProjectAccountDaoImpl.class); - info = _locator.addDao("HypervisorCapabilitiesDao", HypervisorCapabilitiesDaoImpl.class); - info.addParameter("cache.size", "100"); - info.addParameter("cache.time.to.live", "600"); - - _locator.addManager("StackMaidManager", CheckPointManagerImpl.class); - _locator.addManager("account manager", AccountManagerImpl.class); - _locator.addManager("domain manager", DomainManagerImpl.class); - _locator.addManager("resource limit manager", ResourceLimitManagerImpl.class); - _locator.addManager("configuration manager", ConfigurationManagerImpl.class); - _locator.addManager("network manager", NetworkManagerImpl.class); - _locator.addManager("download manager", DownloadMonitorImpl.class); - _locator.addManager("upload manager", UploadMonitorImpl.class); - _locator.addManager("keystore manager", KeystoreManagerImpl.class); - _locator.addManager("secondary storage vm manager", SecondaryStorageManagerImpl.class); - _locator.addManager("vm manager", UserVmManagerImpl.class); - _locator.addManager("upgrade manager", UpgradeManagerImpl.class); - _locator.addManager("StorageManager", StorageManagerImpl.class); - _locator.addManager("SyncQueueManager", SyncQueueManagerImpl.class); - _locator.addManager("AsyncJobManager", AsyncJobManagerImpl.class); - _locator.addManager("AsyncJobExecutorContext", AsyncJobExecutorContextImpl.class); - _locator.addManager("HA Manager", HighAvailabilityManagerImpl.class); - _locator.addManager("Alert Manager", AlertManagerImpl.class); - _locator.addManager("Template Manager", TemplateManagerImpl.class); - _locator.addManager("Snapshot Manager", SnapshotManagerImpl.class); - _locator.addManager("SnapshotScheduler", SnapshotSchedulerImpl.class); - _locator.addManager("SecurityGroupManager", SecurityGroupManagerImpl2.class); - _locator.addManager("DomainRouterManager", VirtualNetworkApplianceManagerImpl.class); - _locator.addManager("EntityManager", EntityManagerImpl.class); - _locator.addManager("LoadBalancingRulesManager", LoadBalancingRulesManagerImpl.class); - _locator.addManager("RulesManager", RulesManagerImpl.class); - _locator.addManager("RemoteAccessVpnManager", RemoteAccessVpnManagerImpl.class); - _locator.addManager("OvsNetworkManager", OvsNetworkManagerImpl.class); - _locator.addManager("OvsTunnelManager", OvsTunnelManagerImpl.class); - _locator.addManager("Capacity Manager", CapacityManagerImpl.class); - _locator.addManager("Cluster Manager", ClusterManagerImpl.class); - _locator.addManager("VirtualMachineManager", ClusteredVirtualMachineManagerImpl.class); - _locator.addManager("HypervisorGuruManager", HypervisorGuruManagerImpl.class); - _locator.addManager("ClusterFenceManager", ClusterFenceManagerImpl.class); - _locator.addManager("ResourceManager", ResourceManagerImpl.class); - - _locator.addManager("OCFS2Manager", OCFS2ManagerImpl.class); - _locator.addManager("FirewallManager", FirewallManagerImpl.class); - ComponentInfo info1 = _locator.addManager("ConsoleProxyManager", ConsoleProxyManagerImpl.class); - info1.addParameter("consoleproxy.sslEnabled", "true"); - _locator.addManager("ClusteredAgentManager", ClusteredAgentManagerImpl.class); - _locator.addManager("ProjectManager", ProjectManagerImpl.class); - _locator.addManager("ElasticLoadBalancerManager", ElasticLoadBalancerManagerImpl.class); - - _locator.makeActive(null); - _configService = ComponentLocator.inject(ConfigurationManagerImpl.class); - } - - private void evaluateCmd(T cmd, String name, Object value) { - try { - Field f = cmd.getClass().getDeclaredField(name); - f.set(cmd, value); - } catch (Exception e) { - s_logger.debug("Unable to evaluate " + cmd.getClass().getName() + "." + name, e); - TestCase.fail(); - } - } - - private void createZone(String zoneName) { - CreateZoneCmd cZone = new CreateZoneCmd(); - evaluateCmd(cZone, "dns1", "10.223.110.254"); - evaluateCmd(cZone, "internalDns1", "10.223.110.254"); - evaluateCmd(cZone, "zoneName", zoneName); - evaluateCmd(cZone, "networkType", "Basic"); - evaluateCmd(cZone, "securitygroupenabled", false); - s_logger.info("Create zone:" + cZone.getZoneName()); - - _configService.createZone(cZone); - } - - private void createPod(String name) { - CreatePodCmd cPod = new CreatePodCmd(); - evaluateCmd(cPod, "netmask", "255.255.255.0"); - - } - - private void deploy100Hosts() { - createZone("test1"); - } - - public void testDeploy100Hosts() { - deploy100Hosts(); - } - - @Override - @After - public void tearDown() throws Exception { - } - -} +package com.cloud.agent.manager; + +import java.io.Serializable; +import java.lang.reflect.Field; + +import junit.framework.TestCase; + +import org.apache.log4j.Logger; +import org.junit.After; +import org.junit.Before; + +import com.cloud.alert.AlertManagerImpl; +import com.cloud.alert.dao.AlertDaoImpl; +import com.cloud.api.BaseCmd; +import com.cloud.api.commands.CreatePodCmd; +import com.cloud.api.commands.CreateZoneCmd; +import com.cloud.async.AsyncJobExecutorContextImpl; +import com.cloud.async.AsyncJobManagerImpl; +import com.cloud.async.SyncQueueManagerImpl; +import com.cloud.async.dao.AsyncJobDaoImpl; +import com.cloud.async.dao.SyncQueueDaoImpl; +import com.cloud.async.dao.SyncQueueItemDaoImpl; +import com.cloud.capacity.CapacityManagerImpl; +import com.cloud.capacity.dao.CapacityDaoImpl; +import com.cloud.certificate.dao.CertificateDaoImpl; +import com.cloud.cluster.CheckPointManagerImpl; +import com.cloud.cluster.ClusterFenceManagerImpl; +import com.cloud.cluster.ClusterManagerImpl; +import com.cloud.cluster.agentlb.dao.HostTransferMapDaoImpl; +import com.cloud.cluster.dao.ManagementServerHostDaoImpl; +import com.cloud.cluster.dao.StackMaidDaoImpl; +import com.cloud.configuration.ConfigurationManagerImpl; +import com.cloud.configuration.ConfigurationService; +import com.cloud.configuration.dao.ConfigurationDaoImpl; +import com.cloud.configuration.dao.ResourceCountDaoImpl; +import com.cloud.configuration.dao.ResourceLimitDaoImpl; +import com.cloud.consoleproxy.ConsoleProxyManagerImpl; +import com.cloud.dao.EntityManagerImpl; +import com.cloud.dc.ClusterDetailsDaoImpl; +import com.cloud.dc.dao.AccountVlanMapDaoImpl; +import com.cloud.dc.dao.ClusterDaoImpl; +import com.cloud.dc.dao.DataCenterDaoImpl; +import com.cloud.dc.dao.DataCenterIpAddressDaoImpl; +import com.cloud.dc.dao.DcDetailsDaoImpl; +import com.cloud.dc.dao.HostPodDaoImpl; +import com.cloud.dc.dao.PodVlanMapDaoImpl; +import com.cloud.dc.dao.VlanDaoImpl; +import com.cloud.domain.dao.DomainDaoImpl; +import com.cloud.event.dao.EventDaoImpl; +import com.cloud.event.dao.UsageEventDaoImpl; +import com.cloud.ha.HighAvailabilityManagerImpl; +import com.cloud.ha.dao.HighAvailabilityDaoImpl; +import com.cloud.host.dao.HostDaoImpl; +import com.cloud.host.dao.HostDetailsDaoImpl; +import com.cloud.host.dao.HostTagsDaoImpl; +import com.cloud.hypervisor.HypervisorGuruManagerImpl; +import com.cloud.hypervisor.dao.HypervisorCapabilitiesDaoImpl; +import com.cloud.keystore.KeystoreDaoImpl; +import com.cloud.keystore.KeystoreManagerImpl; +import com.cloud.maint.UpgradeManagerImpl; +import com.cloud.maint.dao.AgentUpgradeDaoImpl; +import com.cloud.network.NetworkManagerImpl; +import com.cloud.network.dao.FirewallRulesCidrsDaoImpl; +import com.cloud.network.dao.FirewallRulesDaoImpl; +import com.cloud.network.dao.IPAddressDaoImpl; +import com.cloud.network.dao.InlineLoadBalancerNicMapDaoImpl; +import com.cloud.network.dao.LoadBalancerDaoImpl; +import com.cloud.network.dao.LoadBalancerVMMapDaoImpl; +import com.cloud.network.dao.NetworkDaoImpl; +import com.cloud.network.dao.NetworkDomainDaoImpl; +import com.cloud.network.dao.NetworkRuleConfigDaoImpl; +import com.cloud.network.dao.RemoteAccessVpnDaoImpl; +import com.cloud.network.dao.VpnUserDaoImpl; +import com.cloud.network.firewall.FirewallManagerImpl; +import com.cloud.network.lb.ElasticLoadBalancerManagerImpl; +import com.cloud.network.lb.LoadBalancingRulesManagerImpl; +import com.cloud.network.lb.dao.ElasticLbVmMapDaoImpl; +import com.cloud.network.ovs.OvsTunnelManagerImpl; +import com.cloud.network.router.VirtualNetworkApplianceManagerImpl; +import com.cloud.network.rules.RulesManagerImpl; +import com.cloud.network.rules.dao.PortForwardingRulesDaoImpl; +import com.cloud.network.security.SecurityGroupManagerImpl2; +import com.cloud.network.security.dao.SecurityGroupDaoImpl; +import com.cloud.network.security.dao.SecurityGroupRulesDaoImpl; +import com.cloud.network.security.dao.SecurityGroupVMMapDaoImpl; +import com.cloud.network.security.dao.SecurityGroupWorkDaoImpl; +import com.cloud.network.security.dao.VmRulesetLogDaoImpl; +import com.cloud.network.vpn.RemoteAccessVpnManagerImpl; +import com.cloud.offerings.dao.NetworkOfferingDaoImpl; +import com.cloud.projects.ProjectManagerImpl; +import com.cloud.projects.dao.ProjectAccountDaoImpl; +import com.cloud.projects.dao.ProjectDaoImpl; +import com.cloud.resource.ResourceManagerImpl; +import com.cloud.resourcelimit.ResourceLimitManagerImpl; +import com.cloud.service.dao.ServiceOfferingDaoImpl; +import com.cloud.storage.OCFS2ManagerImpl; +import com.cloud.storage.StorageManagerImpl; +import com.cloud.storage.dao.DiskOfferingDaoImpl; +import com.cloud.storage.dao.GuestOSCategoryDaoImpl; +import com.cloud.storage.dao.GuestOSDaoImpl; +import com.cloud.storage.dao.LaunchPermissionDaoImpl; +import com.cloud.storage.dao.SnapshotDaoImpl; +import com.cloud.storage.dao.SnapshotPolicyDaoImpl; +import com.cloud.storage.dao.SnapshotScheduleDaoImpl; +import com.cloud.storage.dao.StoragePoolDaoImpl; +import com.cloud.storage.dao.StoragePoolHostDaoImpl; +import com.cloud.storage.dao.StoragePoolWorkDaoImpl; +import com.cloud.storage.dao.SwiftDaoImpl; +import com.cloud.storage.dao.UploadDaoImpl; +import com.cloud.storage.dao.VMTemplateDaoImpl; +import com.cloud.storage.dao.VMTemplateHostDaoImpl; +import com.cloud.storage.dao.VMTemplatePoolDaoImpl; +import com.cloud.storage.dao.VMTemplateZoneDaoImpl; +import com.cloud.storage.dao.VolumeDaoImpl; +import com.cloud.storage.download.DownloadMonitorImpl; +import com.cloud.storage.secondary.SecondaryStorageManagerImpl; +import com.cloud.storage.snapshot.SnapshotManagerImpl; +import com.cloud.storage.snapshot.SnapshotSchedulerImpl; +import com.cloud.storage.upload.UploadMonitorImpl; +import com.cloud.template.TemplateManagerImpl; +import com.cloud.user.AccountManagerImpl; +import com.cloud.user.DomainManagerImpl; +import com.cloud.user.dao.AccountDaoImpl; +import com.cloud.user.dao.SSHKeyPairDaoImpl; +import com.cloud.user.dao.UserAccountDaoImpl; +import com.cloud.user.dao.UserDaoImpl; +import com.cloud.user.dao.UserStatisticsDaoImpl; +import com.cloud.utils.component.ComponentLocator; +import com.cloud.utils.component.ComponentLocator.ComponentInfo; +import com.cloud.utils.component.Manager; +import com.cloud.utils.component.MockComponentLocator; +import com.cloud.utils.db.GenericDao; +import com.cloud.vm.ClusteredVirtualMachineManagerImpl; +import com.cloud.vm.ItWorkDaoImpl; +import com.cloud.vm.UserVmManagerImpl; +import com.cloud.vm.dao.ConsoleProxyDaoImpl; +import com.cloud.vm.dao.DomainRouterDaoImpl; +import com.cloud.vm.dao.InstanceGroupDaoImpl; +import com.cloud.vm.dao.InstanceGroupVMMapDaoImpl; +import com.cloud.vm.dao.NicDaoImpl; +import com.cloud.vm.dao.SecondaryStorageVmDaoImpl; +import com.cloud.vm.dao.UserVmDaoImpl; +import com.cloud.vm.dao.UserVmDetailsDaoImpl; +import com.cloud.vm.dao.VMInstanceDaoImpl; + +public class ResourceManagerTest extends TestCase { + MockComponentLocator _locator; + private static final Logger s_logger = Logger.getLogger(ResourceManagerTest.class); + ConfigurationService _configService; + + @Override + @Before + public void setUp() throws Exception { + _locator = new MockComponentLocator("management-server"); + _locator.addDao("StackMaidDao", StackMaidDaoImpl.class); + _locator.addDao("VMTemplateZoneDao", VMTemplateZoneDaoImpl.class); + _locator.addDao("DomainRouterDao", DomainRouterDaoImpl.class); + _locator.addDao("HostDao", HostDaoImpl.class); + _locator.addDao("VMInstanceDao", VMInstanceDaoImpl.class); + _locator.addDao("UserVmDao", UserVmDaoImpl.class); + ComponentInfo> info = _locator.addDao("ServiceOfferingDao", ServiceOfferingDaoImpl.class); + info.addParameter("cache.size", "50"); + info.addParameter("cache.time.to.live", "600"); + info = _locator.addDao("DiskOfferingDao", DiskOfferingDaoImpl.class); + info.addParameter("cache.size", "50"); + info.addParameter("cache.time.to.live", "600"); + info = _locator.addDao("DataCenterDao", DataCenterDaoImpl.class); + info.addParameter("cache.size", "50"); + info.addParameter("cache.time.to.live", "600"); + info = _locator.addDao("HostPodDao", HostPodDaoImpl.class); + info.addParameter("cache.size", "50"); + info.addParameter("cache.time.to.live", "600"); + _locator.addDao("IPAddressDao", IPAddressDaoImpl.class); + info = _locator.addDao("VlanDao", VlanDaoImpl.class); + info.addParameter("cache.size", "30"); + info.addParameter("cache.time.to.live", "3600"); + _locator.addDao("PodVlanMapDao", PodVlanMapDaoImpl.class); + _locator.addDao("AccountVlanMapDao", AccountVlanMapDaoImpl.class); + _locator.addDao("VolumeDao", VolumeDaoImpl.class); + _locator.addDao("EventDao", EventDaoImpl.class); + info = _locator.addDao("UserDao", UserDaoImpl.class); + info.addParameter("cache.size", "5000"); + info.addParameter("cache.time.to.live", "300"); + _locator.addDao("UserStatisticsDao", UserStatisticsDaoImpl.class); + _locator.addDao("FirewallRulesDao", FirewallRulesDaoImpl.class); + _locator.addDao("LoadBalancerDao", LoadBalancerDaoImpl.class); + _locator.addDao("NetworkRuleConfigDao", NetworkRuleConfigDaoImpl.class); + _locator.addDao("LoadBalancerVMMapDao", LoadBalancerVMMapDaoImpl.class); + _locator.addDao("DataCenterIpAddressDao", DataCenterIpAddressDaoImpl.class); + _locator.addDao("SecurityGroupDao", SecurityGroupDaoImpl.class); + //_locator.addDao("IngressRuleDao", IngressRuleDaoImpl.class); + _locator.addDao("SecurityGroupVMMapDao", SecurityGroupVMMapDaoImpl.class); + _locator.addDao("SecurityGroupRulesDao", SecurityGroupRulesDaoImpl.class); + _locator.addDao("SecurityGroupWorkDao", SecurityGroupWorkDaoImpl.class); + _locator.addDao("VmRulesetLogDao", VmRulesetLogDaoImpl.class); + _locator.addDao("AlertDao", AlertDaoImpl.class); + _locator.addDao("CapacityDao", CapacityDaoImpl.class); + _locator.addDao("DomainDao", DomainDaoImpl.class); + _locator.addDao("AccountDao", AccountDaoImpl.class); + _locator.addDao("ResourceLimitDao", ResourceLimitDaoImpl.class); + _locator.addDao("ResourceCountDao", ResourceCountDaoImpl.class); + _locator.addDao("UserAccountDao", UserAccountDaoImpl.class); + _locator.addDao("VMTemplateHostDao", VMTemplateHostDaoImpl.class); + _locator.addDao("UploadDao", UploadDaoImpl.class); + _locator.addDao("VMTemplatePoolDao", VMTemplatePoolDaoImpl.class); + _locator.addDao("LaunchPermissionDao", LaunchPermissionDaoImpl.class); + _locator.addDao("ConfigurationDao", ConfigurationDaoImpl.class); + info = _locator.addDao("VMTemplateDao", VMTemplateDaoImpl.class); + info.addParameter("cache.size", "100"); + info.addParameter("cache.time.to.live", "600"); + info.addParameter("routing.uniquename", "routing"); + _locator.addDao("HighAvailabilityDao", HighAvailabilityDaoImpl.class); + _locator.addDao("ConsoleProxyDao", ConsoleProxyDaoImpl.class); + _locator.addDao("SecondaryStorageVmDao", SecondaryStorageVmDaoImpl.class); + _locator.addDao("ManagementServerHostDao", ManagementServerHostDaoImpl.class); + _locator.addDao("AgentUpgradeDao", AgentUpgradeDaoImpl.class); + _locator.addDao("SnapshotDao", SnapshotDaoImpl.class); + _locator.addDao("AsyncJobDao", AsyncJobDaoImpl.class); + _locator.addDao("SyncQueueDao", SyncQueueDaoImpl.class); + _locator.addDao("SyncQueueItemDao", SyncQueueItemDaoImpl.class); + _locator.addDao("GuestOSDao", GuestOSDaoImpl.class); + _locator.addDao("GuestOSCategoryDao", GuestOSCategoryDaoImpl.class); + _locator.addDao("StoragePoolDao", StoragePoolDaoImpl.class); + _locator.addDao("StoragePoolHostDao", StoragePoolHostDaoImpl.class); + _locator.addDao("DetailsDao", HostDetailsDaoImpl.class); + _locator.addDao("SnapshotPolicyDao", SnapshotPolicyDaoImpl.class); + _locator.addDao("SnapshotScheduleDao", SnapshotScheduleDaoImpl.class); + _locator.addDao("ClusterDao", ClusterDaoImpl.class); + _locator.addDao("CertificateDao", CertificateDaoImpl.class); + _locator.addDao("NetworkConfigurationDao", NetworkDaoImpl.class); + _locator.addDao("NetworkOfferingDao", NetworkOfferingDaoImpl.class); + _locator.addDao("NicDao", NicDaoImpl.class); + _locator.addDao("InstanceGroupDao", InstanceGroupDaoImpl.class); + _locator.addDao("InstanceGroupVMMapDao", InstanceGroupVMMapDaoImpl.class); + _locator.addDao("RemoteAccessVpnDao", RemoteAccessVpnDaoImpl.class); + _locator.addDao("VpnUserDao", VpnUserDaoImpl.class); + _locator.addDao("ItWorkDao", ItWorkDaoImpl.class); + _locator.addDao("FirewallRulesDao", FirewallRulesDaoImpl.class); + _locator.addDao("PortForwardingRulesDao", PortForwardingRulesDaoImpl.class); + _locator.addDao("FirewallRulesCidrsDao", FirewallRulesCidrsDaoImpl.class); + _locator.addDao("SSHKeyPairDao", SSHKeyPairDaoImpl.class); + _locator.addDao("UsageEventDao", UsageEventDaoImpl.class); + _locator.addDao("ClusterDetailsDao", ClusterDetailsDaoImpl.class); + _locator.addDao("UserVmDetailsDao", UserVmDetailsDaoImpl.class); + _locator.addDao("StoragePoolWorkDao", StoragePoolWorkDaoImpl.class); + _locator.addDao("HostTagsDao", HostTagsDaoImpl.class); + _locator.addDao("NetworkDomainDao", NetworkDomainDaoImpl.class); + _locator.addDao("KeystoreDao", KeystoreDaoImpl.class); + _locator.addDao("DcDetailsDao", DcDetailsDaoImpl.class); + _locator.addDao("SwiftDao", SwiftDaoImpl.class); + _locator.addDao("AgentTransferMapDao", HostTransferMapDaoImpl.class); + _locator.addDao("ProjectDao", ProjectDaoImpl.class); + _locator.addDao("InlineLoadBalancerNicMapDao", InlineLoadBalancerNicMapDaoImpl.class); + _locator.addDao("ElasticLbVmMap", ElasticLbVmMapDaoImpl.class); + _locator.addDao("ProjectsAccountDao", ProjectAccountDaoImpl.class); + info = _locator.addDao("HypervisorCapabilitiesDao", HypervisorCapabilitiesDaoImpl.class); + info.addParameter("cache.size", "100"); + info.addParameter("cache.time.to.live", "600"); + + _locator.addManager("StackMaidManager", CheckPointManagerImpl.class); + _locator.addManager("account manager", AccountManagerImpl.class); + _locator.addManager("domain manager", DomainManagerImpl.class); + _locator.addManager("resource limit manager", ResourceLimitManagerImpl.class); + _locator.addManager("configuration manager", ConfigurationManagerImpl.class); + _locator.addManager("network manager", NetworkManagerImpl.class); + _locator.addManager("download manager", DownloadMonitorImpl.class); + _locator.addManager("upload manager", UploadMonitorImpl.class); + _locator.addManager("keystore manager", KeystoreManagerImpl.class); + _locator.addManager("secondary storage vm manager", SecondaryStorageManagerImpl.class); + _locator.addManager("vm manager", UserVmManagerImpl.class); + _locator.addManager("upgrade manager", UpgradeManagerImpl.class); + _locator.addManager("StorageManager", StorageManagerImpl.class); + _locator.addManager("SyncQueueManager", SyncQueueManagerImpl.class); + _locator.addManager("AsyncJobManager", AsyncJobManagerImpl.class); + _locator.addManager("AsyncJobExecutorContext", AsyncJobExecutorContextImpl.class); + _locator.addManager("HA Manager", HighAvailabilityManagerImpl.class); + _locator.addManager("Alert Manager", AlertManagerImpl.class); + _locator.addManager("Template Manager", TemplateManagerImpl.class); + _locator.addManager("Snapshot Manager", SnapshotManagerImpl.class); + _locator.addManager("SnapshotScheduler", SnapshotSchedulerImpl.class); + _locator.addManager("SecurityGroupManager", SecurityGroupManagerImpl2.class); + _locator.addManager("DomainRouterManager", VirtualNetworkApplianceManagerImpl.class); + _locator.addManager("EntityManager", EntityManagerImpl.class); + _locator.addManager("LoadBalancingRulesManager", LoadBalancingRulesManagerImpl.class); + _locator.addManager("RulesManager", RulesManagerImpl.class); + _locator.addManager("RemoteAccessVpnManager", RemoteAccessVpnManagerImpl.class); + _locator.addManager("OvsTunnelManager", OvsTunnelManagerImpl.class); + _locator.addManager("Capacity Manager", CapacityManagerImpl.class); + _locator.addManager("Cluster Manager", ClusterManagerImpl.class); + _locator.addManager("VirtualMachineManager", ClusteredVirtualMachineManagerImpl.class); + _locator.addManager("HypervisorGuruManager", HypervisorGuruManagerImpl.class); + _locator.addManager("ClusterFenceManager", ClusterFenceManagerImpl.class); + _locator.addManager("ResourceManager", ResourceManagerImpl.class); + + _locator.addManager("OCFS2Manager", OCFS2ManagerImpl.class); + _locator.addManager("FirewallManager", FirewallManagerImpl.class); + ComponentInfo info1 = _locator.addManager("ConsoleProxyManager", ConsoleProxyManagerImpl.class); + info1.addParameter("consoleproxy.sslEnabled", "true"); + _locator.addManager("ClusteredAgentManager", ClusteredAgentManagerImpl.class); + _locator.addManager("ProjectManager", ProjectManagerImpl.class); + _locator.addManager("ElasticLoadBalancerManager", ElasticLoadBalancerManagerImpl.class); + + _locator.makeActive(null); + _configService = ComponentLocator.inject(ConfigurationManagerImpl.class); + } + + private void evaluateCmd(T cmd, String name, Object value) { + try { + Field f = cmd.getClass().getDeclaredField(name); + f.set(cmd, value); + } catch (Exception e) { + s_logger.debug("Unable to evaluate " + cmd.getClass().getName() + "." + name, e); + TestCase.fail(); + } + } + + private void createZone(String zoneName) { + CreateZoneCmd cZone = new CreateZoneCmd(); + evaluateCmd(cZone, "dns1", "10.223.110.254"); + evaluateCmd(cZone, "internalDns1", "10.223.110.254"); + evaluateCmd(cZone, "zoneName", zoneName); + evaluateCmd(cZone, "networkType", "Basic"); + evaluateCmd(cZone, "securitygroupenabled", false); + s_logger.info("Create zone:" + cZone.getZoneName()); + + _configService.createZone(cZone); + } + + private void createPod(String name) { + CreatePodCmd cPod = new CreatePodCmd(); + evaluateCmd(cPod, "netmask", "255.255.255.0"); + + } + + private void deploy100Hosts() { + createZone("test1"); + } + + public void testDeploy100Hosts() { + deploy100Hosts(); + } + + @Override + @After + public void tearDown() throws Exception { + } + +}