CS-14605: OVS cleanup

Fix syntax errors in ConfigurationManager and Resource Manager test

Conflicts:

	server/src/com/cloud/network/ovs/OvsTunnelManagerImpl.java
	server/test/com/cloud/agent/manager/ResourceManagerTest.java
This commit is contained in:
Salvatore Orlando 2012-04-25 10:53:41 +01:00
parent 33a2b17972
commit 88131e5db6
7 changed files with 490 additions and 501 deletions

View File

@ -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);

View File

@ -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);

View File

@ -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<? extends VirtualMachine> 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<? extends VirtualMachine> 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<? extends VirtualMachine> vm, String reservationId) {
if (_ovsNetworkMgr.isOvsNetworkEnabled() || _tunnelMgr.isOvsTunnelEnabled()) {
if (_tunnelMgr.isOvsTunnelEnabled()) {
return true;
}

View File

@ -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);

View File

@ -22,7 +22,8 @@ public interface OvsTunnelManager extends Manager {
boolean isOvsTunnelEnabled();
public void VmCheckAndCreateTunnel(VirtualMachineProfile<? extends VirtualMachine> vm, Network nw, DeployDestination dest);
public void VmCheckAndCreateTunnel(VirtualMachineProfile<? extends VirtualMachine> vm,
Network nw, DeployDestination dest);
public void CheckAndDestroyTunnel(VirtualMachine vm, Network nw);

View File

@ -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<UserVmVO> 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<UserVmVO> vms = _userVmDao.listByNetworkIdAndStates(nw.getId(),
State.Running, State.Starting,
State.Stopping, State.Unknown, State.Migrating);
// Find routers for the network
List<DomainRouterVO> routers = _routerDao.findByNetwork(nw.getId());
List<VMInstanceVO>ins = new ArrayList<VMInstanceVO>();
@ -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<? extends VirtualMachine> vm, Network nw, DeployDestination dest) {
public void VmCheckAndCreateTunnel(
VirtualMachineProfile<? extends VirtualMachine> 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<UserVmVO> userVms = _userVmDao.listByAccountIdAndHostId(vm.getAccountId(), vm.getHostId());
List<UserVmVO> userVms = _userVmDao.listByAccountIdAndHostId(
vm.getAccountId(), vm.getHostId());
if (vm.getType() == VirtualMachine.Type.User) {
if (userVms.size() > 1) {
return;
}
List<DomainRouterVO> routers = _routerDao.findByNetwork(nw.getId());
List<DomainRouterVO> 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<OvsTunnelNetworkVO> peers = _tunnelNetworkDao.listByToNetwork(vm.getHostId(), nw.getId());
List<OvsTunnelNetworkVO> 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);
}
}
}

View File

@ -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<? extends GenericDao<?, ? extends Serializable>> 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<? extends Manager> 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 <T extends BaseCmd> 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<? extends GenericDao<?, ? extends Serializable>> 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<? extends Manager> 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 <T extends BaseCmd> 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 {
}
}