diff --git a/plugins/hypervisors/simulator/pom.xml b/plugins/hypervisors/simulator/pom.xml new file mode 100644 index 00000000000..15b37900590 --- /dev/null +++ b/plugins/hypervisors/simulator/pom.xml @@ -0,0 +1,45 @@ + + + 4.0.0 + + org.apache.cloudstack + cloudstack-plugins + 4.1.0-SNAPSHOT + ../../pom.xml + + org.apache.cloudstack + cloud-plugin-hypervisor-simulator + 4.1.0-SNAPSHOT + Apache CloudStack Plugin - Hypervisor Simulator + Simulator Hypervisor for Cloudstack + + install + src + test + + + + org.apache.cloudstack + cloud-utils + ${project.version} + + + \ No newline at end of file diff --git a/agent-simulator/src/com/cloud/agent/MetricsCollector.java b/plugins/hypervisors/simulator/src/com/cloud/agent/MetricsCollector.java similarity index 89% rename from agent-simulator/src/com/cloud/agent/MetricsCollector.java rename to plugins/hypervisors/simulator/src/com/cloud/agent/MetricsCollector.java index 7d86a0c8e3e..fd611f83b9f 100644 --- a/agent-simulator/src/com/cloud/agent/MetricsCollector.java +++ b/plugins/hypervisors/simulator/src/com/cloud/agent/MetricsCollector.java @@ -30,43 +30,43 @@ import com.cloud.utils.concurrency.NamedThreadFactory; public class MetricsCollector { private static final Logger s_logger = Logger.getLogger(MetricsCollector.class); - + private final Set vmNames = new HashSet(); private final Set newVMnames = new HashSet(); private final Map metricsMap = new HashMap(); - + private final transient ScheduledThreadPoolExecutor executor = new ScheduledThreadPoolExecutor(1, new NamedThreadFactory("Metrics")); private Set _currentVms; - + public MetricsCollector(Set currentVms) { _currentVms = currentVms; getAllVMNames(); } - + public MetricsCollector() { - + } - + public synchronized void getAllVMNames() { Set currentVMs = _currentVms; - + newVMnames.clear(); newVMnames.addAll(currentVMs); newVMnames.removeAll(vmNames); //leave only new vms - + vmNames.removeAll(currentVMs); //old vms - current vms --> leave non-running vms; for (String vm: vmNames) { - removeVM(vm); + removeVM(vm); } - + vmNames.clear(); vmNames.addAll(currentVMs); } - + public synchronized void submitMetricsJobs() { s_logger.debug("Submit Metric Jobs called"); - + for (String vm : newVMnames) { MockVmMetrics task = new MockVmMetrics(vm); if (!metricsMap.containsKey(vm)) { @@ -77,30 +77,30 @@ public class MetricsCollector { } newVMnames.clear(); } - + public synchronized void addVM(String vmName) { newVMnames.add(vmName); s_logger.debug("Added vm name= " + vmName); } - + public synchronized void removeVM(String vmName) { newVMnames.remove(vmName); vmNames.remove(vmName); MockVmMetrics task = metricsMap.get(vmName); - if (task != null) { - task.stop(); - boolean r1= task.getFuture().cancel(false); - metricsMap.remove(vmName); - s_logger.debug("removeVM: cancel returned " + r1 + " for VM " + vmName); - } else { - s_logger.warn("removeVM called for nonexistent VM " + vmName); - } + if (task != null) { + task.stop(); + boolean r1= task.getFuture().cancel(false); + metricsMap.remove(vmName); + s_logger.debug("removeVM: cancel returned " + r1 + " for VM " + vmName); + } else { + s_logger.warn("removeVM called for nonexistent VM " + vmName); } - + } + public synchronized Set getVMNames() { return vmNames; } - + public synchronized Map getMetricsMap() { return metricsMap; } diff --git a/agent-simulator/src/com/cloud/agent/MockVmMetrics.java b/plugins/hypervisors/simulator/src/com/cloud/agent/MockVmMetrics.java similarity index 96% rename from agent-simulator/src/com/cloud/agent/MockVmMetrics.java rename to plugins/hypervisors/simulator/src/com/cloud/agent/MockVmMetrics.java index f106f367a9c..30b99e753a1 100644 --- a/agent-simulator/src/com/cloud/agent/MockVmMetrics.java +++ b/plugins/hypervisors/simulator/src/com/cloud/agent/MockVmMetrics.java @@ -25,52 +25,52 @@ import org.apache.log4j.Logger; public class MockVmMetrics implements Runnable { private static final Logger s_logger = Logger.getLogger(MockVmMetrics.class); - + private String vmName; - + public final int MAX_INTERFACES=1; - + public final int MAX_DISKS=8; - + //the last calculated traffic speed (transmit) per interface private Map netTxKBps = new HashMap(); - + //the last calculated traffic speed (receive) per interface private Map netRxKBps = new HashMap(); - + //the last calculated disk write speed per disk (Bytes Per Second) private Map diskWriteKBytesPerSec = new HashMap(); - + //the last calculated disk read speed per disk (Bytes Per Second) private Map diskReadKBytesPerSec = new HashMap(); - + //Total Bytes Transmitted on network interfaces private Map netTxTotalBytes = new HashMap(); - + //Total Bytes Received on network interfaces private Map netRxTotalBytes = new HashMap(); - + //Total Bytes read per disk private Map diskReadTotalBytes = new HashMap(); //Total Bytes written per disk private Map diskWriteTotalBytes = new HashMap(); - + //CPU time in seconds private Double cpuSeconds = new Double(0.0); - + //CPU percentage private Float cpuPercent = new Float(0.0); - + private Map diskMap = new HashMap(); private Map vifMap = new HashMap(); - + private Map diskStatTimestamp = new HashMap(); private Map netStatTimestamp = new HashMap(); - + private long cpuStatTimestamp = 0L; - + private ScheduledFuture future; private boolean stopped = false; private Random randSeed = new Random(); @@ -80,44 +80,44 @@ public class MockVmMetrics implements Runnable { vifMap.put("eth0", "eth0"); vifMap.put("eth1", "eth1"); vifMap.put("eth2", "eth2"); - + Long networkStart = 0L; netTxTotalBytes.put("eth0", networkStart); netRxTotalBytes.put("eth0", networkStart); - + netTxTotalBytes.put("eth1", networkStart); netRxTotalBytes.put("eth1", networkStart); - + netTxTotalBytes.put("eth2", networkStart); - netRxTotalBytes.put("eth2", networkStart); + netRxTotalBytes.put("eth2", networkStart); } - + private int getIncrementor() { return randSeed.nextInt(100); } - + @Override public void run() { if(s_logger.isDebugEnabled()) { s_logger.debug("Generating MockVM metrics"); } for (Map.Entry entry : netRxTotalBytes.entrySet()) { - entry.setValue(entry.getValue() + getIncrementor()); + entry.setValue(entry.getValue() + getIncrementor()); } - + for (Map.Entry entry : netTxTotalBytes.entrySet()) { entry.setValue(entry.getValue() + getIncrementor()); } } - + public String getVmName() { return vmName; } - + public Map getNetTxKBps() { return netTxKBps; } - + public Map getNetRxKBps() { return netRxKBps; } @@ -125,11 +125,11 @@ public class MockVmMetrics implements Runnable { public Map getDiskWriteBytesPerSec() { return diskWriteKBytesPerSec; } - + public Map getDiskReadBytesPerSec() { return diskReadKBytesPerSec; } - + public Map getNetTxTotalBytes() { return netTxTotalBytes; } @@ -137,7 +137,7 @@ public class MockVmMetrics implements Runnable { public Map getNetRxTotalBytes() { return netRxTotalBytes; } - + public Map getDiskReadTotalBytes() { return diskReadTotalBytes; } @@ -145,7 +145,7 @@ public class MockVmMetrics implements Runnable { public Map getDiskWriteTotalBytes() { return diskWriteTotalBytes; } - + public Double getNetTxKBps(String intf) { return netTxKBps.get(intf); } @@ -153,7 +153,7 @@ public class MockVmMetrics implements Runnable { public Double getNetRxKBps(String intf) { return netRxKBps.get(intf); } - + public Double getDiskWriteKBytesPerSec(String disk) { return diskWriteKBytesPerSec.get(disk); } @@ -161,7 +161,7 @@ public class MockVmMetrics implements Runnable { public Double getDiskReadKBytesPerSec(String disk) { return diskReadKBytesPerSec.get(disk); } - + public Long getNetTxTotalBytes(String intf) { return netTxTotalBytes.get(intf); } @@ -169,7 +169,7 @@ public class MockVmMetrics implements Runnable { public Long getNetRxTotalBytes(String intf) { return netRxTotalBytes.get(intf); } - + public Long getDiskReadTotalBytes(String disk) { return diskReadTotalBytes.get(disk); } @@ -177,7 +177,7 @@ public class MockVmMetrics implements Runnable { public Long getDiskWriteTotalBytes(String disk) { return diskWriteTotalBytes.get(disk); } - + public Double getCpuSeconds() { return cpuSeconds; } @@ -189,7 +189,7 @@ public class MockVmMetrics implements Runnable { public Float getCpuPercent() { return cpuPercent; } - + public void setFuture(ScheduledFuture sf) { this.future = sf; } @@ -197,9 +197,8 @@ public class MockVmMetrics implements Runnable { public ScheduledFuture getFuture() { return future; } - + public void stop() { this.stopped = true; } } - diff --git a/agent-simulator/src/com/cloud/agent/MultiCaster.java b/plugins/hypervisors/simulator/src/com/cloud/agent/MultiCaster.java similarity index 94% rename from agent-simulator/src/com/cloud/agent/MultiCaster.java rename to plugins/hypervisors/simulator/src/com/cloud/agent/MultiCaster.java index 9c98ef651be..7d38baf0e68 100644 --- a/agent-simulator/src/com/cloud/agent/MultiCaster.java +++ b/plugins/hypervisors/simulator/src/com/cloud/agent/MultiCaster.java @@ -30,49 +30,49 @@ import org.apache.log4j.Logger; public class MultiCaster implements Runnable { private static final Logger s_logger = Logger.getLogger(MultiCaster.class); - + public final int MAX_PACKET_SIZE = 8096; - + private List listeners; private DatagramSocket socket; private byte[] recvBuffer; - + private Thread driver; private volatile boolean stopRequested = false; - + public MultiCaster() { listeners = new ArrayList(); recvBuffer = new byte[MAX_PACKET_SIZE]; } - + public void addListener(MultiCasterListener listener) { synchronized(listeners) { listeners.add(listener); } } - + public void removeListener(MultiCasterListener listener) { synchronized(listeners) { listeners.remove(listener); } } - - public void cast(byte[] buf, int off, int len, + + public void cast(byte[] buf, int off, int len, InetAddress toAddress, int nToPort) throws IOException { - + if(socket == null) throw new IOException("multi caster is not started"); - + if(len >= MAX_PACKET_SIZE) throw new IOException("packet size exceeds limit of " + MAX_PACKET_SIZE); - - DatagramPacket packet = new DatagramPacket(buf, off, + + DatagramPacket packet = new DatagramPacket(buf, off, len, toAddress, nToPort); socket.send(packet); } - - public void start(String strOutboundAddress, + + public void start(String strOutboundAddress, String strClusterAddress, int nPort) throws SocketException { assert(socket == null); @@ -82,22 +82,22 @@ public class MultiCaster implements Runnable { } catch(IOException e) { s_logger.error("Unexpected exception " , e); } - + if(addr != null && addr.isMulticastAddress()) { try { socket = new MulticastSocket(nPort); socket.setReuseAddress(true); - + if(s_logger.isInfoEnabled()) s_logger.info("Join multicast group : " + addr); - + ((MulticastSocket)socket).joinGroup(addr); ((MulticastSocket)socket).setTimeToLive(1); - + if(strOutboundAddress != null) { if(s_logger.isInfoEnabled()) s_logger.info("set outgoing interface to : " + strOutboundAddress); - + InetAddress ia = InetAddress.getByName(strOutboundAddress); NetworkInterface ni = NetworkInterface.getByInetAddress(ia); ((MulticastSocket)socket).setNetworkInterface(ni); @@ -109,16 +109,16 @@ public class MultiCaster implements Runnable { socket = new DatagramSocket(nPort); socket.setReuseAddress(true); } - + driver = new Thread(this, "Multi-caster"); driver.setDaemon(true); driver.start(); } - + public void stop() { if(socket != null) { stopRequested = true; - + socket.close(); if(driver != null) { try { @@ -128,17 +128,17 @@ public class MultiCaster implements Runnable { driver = null; } } - + socket = null; stopRequested = false; } - + public void run() { while(!stopRequested) { try { DatagramPacket packet = new DatagramPacket(recvBuffer, recvBuffer.length); socket.receive(packet); - + for(Object listener : listeners.toArray()) { ((MultiCasterListener)listener).onMultiCasting(packet.getData(), packet.getOffset(), packet.getLength(), packet.getAddress()); diff --git a/agent-simulator/src/com/cloud/agent/MultiCasterListener.java b/plugins/hypervisors/simulator/src/com/cloud/agent/MultiCasterListener.java similarity index 100% rename from agent-simulator/src/com/cloud/agent/MultiCasterListener.java rename to plugins/hypervisors/simulator/src/com/cloud/agent/MultiCasterListener.java diff --git a/agent-simulator/src/com/cloud/agent/SimulatorCmd.java b/plugins/hypervisors/simulator/src/com/cloud/agent/SimulatorCmd.java similarity index 96% rename from agent-simulator/src/com/cloud/agent/SimulatorCmd.java rename to plugins/hypervisors/simulator/src/com/cloud/agent/SimulatorCmd.java index 342bfd2491e..caed518dd78 100644 --- a/agent-simulator/src/com/cloud/agent/SimulatorCmd.java +++ b/plugins/hypervisors/simulator/src/com/cloud/agent/SimulatorCmd.java @@ -20,17 +20,17 @@ import java.io.Serializable; public class SimulatorCmd implements Serializable { private static final long serialVersionUID = 1L; - + private String testCase = "DEFAULT"; - + public SimulatorCmd(String testCase) { - this.testCase = testCase; + this.testCase = testCase; } - + public String getTestCase() { return testCase; } - + public void setTestCase(String testCase) { this.testCase = testCase; } diff --git a/agent-simulator/src/com/cloud/agent/SimulatorMigrateVmCmd.java b/plugins/hypervisors/simulator/src/com/cloud/agent/SimulatorMigrateVmCmd.java similarity index 99% rename from agent-simulator/src/com/cloud/agent/SimulatorMigrateVmCmd.java rename to plugins/hypervisors/simulator/src/com/cloud/agent/SimulatorMigrateVmCmd.java index f86b16ee7d4..6a2190d696a 100644 --- a/agent-simulator/src/com/cloud/agent/SimulatorMigrateVmCmd.java +++ b/plugins/hypervisors/simulator/src/com/cloud/agent/SimulatorMigrateVmCmd.java @@ -21,12 +21,12 @@ public class SimulatorMigrateVmCmd extends SimulatorCmd { private static final long serialVersionUID = 1L; private String destIp; - + private String vmName; private long ramSize; private int cpuCount; private int utilization; - + public SimulatorMigrateVmCmd(String testCase) { super(testCase); } @@ -38,7 +38,7 @@ public class SimulatorMigrateVmCmd extends SimulatorCmd { public void setDestIp(String destIp) { this.destIp = destIp; } - + public String getVmName() { return vmName; } @@ -70,14 +70,14 @@ public class SimulatorMigrateVmCmd extends SimulatorCmd { public void setUtilization(int utilization) { this.utilization = utilization; } - + public String toString() { StringBuffer sb = new StringBuffer(); sb.append("SimulatorMigrateVmCmd {").append("vm: ").append(getVmName()); sb.append(", destIp: ").append(getDestIp()).append(", ramSize: ").append(getRamSize()); sb.append(", cpuCount: ").append(getCpuCount()).append(", utilization: ").append(getUtilization()); sb.append("}"); - + return sb.toString(); } } diff --git a/agent-simulator/src/com/cloud/agent/manager/MockAgentManager.java b/plugins/hypervisors/simulator/src/com/cloud/agent/manager/MockAgentManager.java similarity index 100% rename from agent-simulator/src/com/cloud/agent/manager/MockAgentManager.java rename to plugins/hypervisors/simulator/src/com/cloud/agent/manager/MockAgentManager.java diff --git a/agent-simulator/src/com/cloud/agent/manager/MockAgentManagerImpl.java b/plugins/hypervisors/simulator/src/com/cloud/agent/manager/MockAgentManagerImpl.java similarity index 100% rename from agent-simulator/src/com/cloud/agent/manager/MockAgentManagerImpl.java rename to plugins/hypervisors/simulator/src/com/cloud/agent/manager/MockAgentManagerImpl.java diff --git a/agent-simulator/src/com/cloud/agent/manager/MockStorageManager.java b/plugins/hypervisors/simulator/src/com/cloud/agent/manager/MockStorageManager.java similarity index 99% rename from agent-simulator/src/com/cloud/agent/manager/MockStorageManager.java rename to plugins/hypervisors/simulator/src/com/cloud/agent/manager/MockStorageManager.java index 3b7a286c5e1..fc8aacc6ec3 100644 --- a/agent-simulator/src/com/cloud/agent/manager/MockStorageManager.java +++ b/plugins/hypervisors/simulator/src/com/cloud/agent/manager/MockStorageManager.java @@ -51,17 +51,17 @@ import com.cloud.utils.component.Manager; public interface MockStorageManager extends Manager { public static final long DEFAULT_HOST_STORAGE_SIZE = 1 * 1024 * 1024 * 1024 * 1024L; //1T public static final long DEFAULT_TEMPLATE_SIZE = 1 * 1000 * 1000 * 1000L; //1G - + public PrimaryStorageDownloadAnswer primaryStorageDownload(PrimaryStorageDownloadCommand cmd); - + public CreateAnswer createVolume(CreateCommand cmd); public AttachVolumeAnswer AttachVolume(AttachVolumeCommand cmd); public Answer AttachIso(AttachIsoCommand cmd); - + public Answer DeleteStoragePool(DeleteStoragePoolCommand cmd); public Answer ModifyStoragePool(ModifyStoragePoolCommand cmd); public Answer CreateStoragePool(CreateStoragePoolCommand cmd); - + public Answer SecStorageSetup(SecStorageSetupCommand cmd); public Answer ListTemplates(ListTemplateCommand cmd); public Answer Destroy(DestroyCommand cmd); @@ -74,7 +74,7 @@ public interface MockStorageManager extends Manager { public Answer CreateVolumeFromSnapshot(CreateVolumeFromSnapshotCommand cmd); public Answer DeleteTemplate(DeleteTemplateCommand cmd); public Answer SecStorageVMSetup(SecStorageVMSetupCommand cmd); - + public void preinstallTemplates(String url, long zoneId); StoragePoolInfo getLocalStorage(String hostGuid); diff --git a/agent-simulator/src/com/cloud/agent/manager/MockStorageManagerImpl.java b/plugins/hypervisors/simulator/src/com/cloud/agent/manager/MockStorageManagerImpl.java similarity index 99% rename from agent-simulator/src/com/cloud/agent/manager/MockStorageManagerImpl.java rename to plugins/hypervisors/simulator/src/com/cloud/agent/manager/MockStorageManagerImpl.java index cc15b206738..9bf4192c4bd 100644 --- a/agent-simulator/src/com/cloud/agent/manager/MockStorageManagerImpl.java +++ b/plugins/hypervisors/simulator/src/com/cloud/agent/manager/MockStorageManagerImpl.java @@ -703,7 +703,7 @@ public class MockStorageManagerImpl implements MockStorageManager { txn = Transaction.open(Transaction.CLOUD_DB); txn.close(); } - + MockVolumeVO newsnapshot = new MockVolumeVO(); String name = UUID.randomUUID().toString(); newsnapshot.setName(name); @@ -953,7 +953,7 @@ public class MockStorageManagerImpl implements MockStorageManager { @Override public StoragePoolInfo getLocalStorage(String hostGuid) { Transaction txn = Transaction.open(Transaction.SIMULATOR_DB); - MockHost host = null; + MockHost host = null; MockStoragePoolVO storagePool = null; try { txn.start(); @@ -968,7 +968,7 @@ public class MockStorageManagerImpl implements MockStorageManager { txn = Transaction.open(Transaction.CLOUD_DB); txn.close(); } - + if (storagePool == null) { String uuid = UUID.randomUUID().toString(); storagePool = new MockStoragePoolVO(); @@ -998,7 +998,7 @@ public class MockStorageManagerImpl implements MockStorageManager { @Override public StoragePoolInfo getLocalStorage(String hostGuid, Long storageSize) { Transaction txn = Transaction.open(Transaction.SIMULATOR_DB); - MockHost host = null; + MockHost host = null; try { txn.start(); host = _mockHostDao.findByGuid(hostGuid); diff --git a/agent-simulator/src/com/cloud/agent/manager/MockVmManager.java b/plugins/hypervisors/simulator/src/com/cloud/agent/manager/MockVmManager.java similarity index 98% rename from agent-simulator/src/com/cloud/agent/manager/MockVmManager.java rename to plugins/hypervisors/simulator/src/com/cloud/agent/manager/MockVmManager.java index 07cf584883e..82f600d04b3 100644 --- a/agent-simulator/src/com/cloud/agent/manager/MockVmManager.java +++ b/plugins/hypervisors/simulator/src/com/cloud/agent/manager/MockVmManager.java @@ -40,7 +40,7 @@ import com.cloud.vm.VirtualMachine.State; public interface MockVmManager extends Manager { public Answer stopVM(StopCommand cmd); public Answer rebootVM(RebootCommand cmd); - + public Answer checkVmState(CheckVirtualMachineCommand cmd); public Map getVmStates(String hostGuid); public Answer getVncPort(GetVncPortCommand cmd); @@ -49,27 +49,27 @@ public interface MockVmManager extends Manager { Answer getVmStats(GetVmStatsCommand cmd); public CheckSshAnswer checkSshCommand(CheckSshCommand cmd); - + Answer SetStaticNatRules(SetStaticNatRulesCommand cmd); - + Answer SetPortForwardingRules(SetPortForwardingRulesCommand cmd); Answer SetFirewallRules(SetFirewallRulesCommand cmd); - + Answer getNetworkUsage(NetworkUsageCommand cmd); - + Answer IpAssoc(IpAssocCommand cmd); Answer LoadBalancerConfig(LoadBalancerConfigCommand cmd); - + Answer AddDhcpEntry(DhcpEntryCommand cmd); - + Answer setVmData(VmDataCommand cmd); Answer CleanupNetworkRules(CleanupNetworkRulesCmd cmd, SimulatorInfo info); - + Answer CheckConsoleProxyLoad(CheckConsoleProxyLoadCommand cmd); Answer WatchConsoleProxyLoad(WatchConsoleProxyLoadCommand cmd); - + Answer SavePassword(SavePasswordCommand cmd); HashMap> syncNetworkGroups(SimulatorInfo info); SecurityGroupRuleAnswer AddSecurityGroupRules(SecurityGroupRulesCmd cmd, SimulatorInfo info); diff --git a/agent-simulator/src/com/cloud/agent/manager/MockVmManagerImpl.java b/plugins/hypervisors/simulator/src/com/cloud/agent/manager/MockVmManagerImpl.java similarity index 94% rename from agent-simulator/src/com/cloud/agent/manager/MockVmManagerImpl.java rename to plugins/hypervisors/simulator/src/com/cloud/agent/manager/MockVmManagerImpl.java index 78881f2fc3a..8177cda6b64 100644 --- a/agent-simulator/src/com/cloud/agent/manager/MockVmManagerImpl.java +++ b/plugins/hypervisors/simulator/src/com/cloud/agent/manager/MockVmManagerImpl.java @@ -60,20 +60,20 @@ public class MockVmManagerImpl implements MockVmManager { @Inject MockHostDao _mockHostDao = null; @Inject MockSecurityRulesDao _mockSecurityDao = null; private Map>> _securityRules = new ConcurrentHashMap>>(); - + public MockVmManagerImpl() { } - + @Override public boolean configure(String name, Map params) throws ConfigurationException { - + return true; } - + public String startVM(String vmName, NicTO[] nics, - int cpuHz, long ramSize, - String bootArgs, String hostGuid) { + int cpuHz, long ramSize, + String bootArgs, String hostGuid) { Transaction txn = Transaction.open(Transaction.SIMULATOR_DB); MockHost host = null; @@ -95,7 +95,7 @@ public class MockVmManagerImpl implements MockVmManager { txn = Transaction.open(Transaction.CLOUD_DB); txn.close(); } - + if(vm == null) { int vncPort = 0; if(vncPort < 0) @@ -108,13 +108,13 @@ public class MockVmManagerImpl implements MockVmManager { vm.setVncPort(vncPort); vm.setHostId(host.getId()); if(vmName.startsWith("s-")) { - vm.setType("SecondaryStorageVm"); + vm.setType("SecondaryStorageVm"); } else if (vmName.startsWith("v-")) { - vm.setType("ConsoleProxy"); + vm.setType("ConsoleProxy"); } else if (vmName.startsWith("r-")) { - vm.setType("DomainRouter"); + vm.setType("DomainRouter"); } else if (vmName.startsWith("i-")) { - vm.setType("User"); + vm.setType("User"); } txn = Transaction.open(Transaction.SIMULATOR_DB); try { @@ -133,18 +133,18 @@ public class MockVmManagerImpl implements MockVmManager { if(vm.getState() == State.Stopped) { vm.setState(State.Running); txn = Transaction.open(Transaction.SIMULATOR_DB); - try { - txn.start(); - _mockVmDao.update(vm.getId(), (MockVMVO)vm); - txn.commit(); - } catch (Exception ex) { - txn.rollback(); - throw new CloudRuntimeException("unable to update vm " + vm.getName(), ex); - } finally { - txn.close(); + try { + txn.start(); + _mockVmDao.update(vm.getId(), (MockVMVO)vm); + txn.commit(); + } catch (Exception ex) { + txn.rollback(); + throw new CloudRuntimeException("unable to update vm " + vm.getName(), ex); + } finally { + txn.close(); txn = Transaction.open(Transaction.CLOUD_DB); txn.close(); - } + } } } @@ -212,7 +212,7 @@ public class MockVmManagerImpl implements MockVmManager { } return true; } - + @Override public Map getVms(String hostGuid) { Transaction txn = Transaction.open(Transaction.SIMULATOR_DB); @@ -303,8 +303,8 @@ public class MockVmManagerImpl implements MockVmManager { @Override public String getName() { return this.getClass().getSimpleName(); - } - + } + @Override public Answer getVmStats(GetVmStatsCommand cmd) { HashMap vmStatsNameMap = new HashMap(); @@ -370,9 +370,9 @@ public class MockVmManagerImpl implements MockVmManager { @Override public Answer SetFirewallRules(SetFirewallRulesCommand cmd) { - return new Answer(cmd); + return new Answer(cmd); } - + @Override public NetworkUsageAnswer getNetworkUsage(NetworkUsageCommand cmd) { @@ -516,20 +516,20 @@ public class MockVmManagerImpl implements MockVmManager { public Answer WatchConsoleProxyLoad(WatchConsoleProxyLoadCommand cmd) { return Answer.createUnsupportedCommandAnswer(cmd); } - + @Override public GetDomRVersionAnswer getDomRVersion(GetDomRVersionCmd cmd) { - return new GetDomRVersionAnswer(cmd, null, null, null); + return new GetDomRVersionAnswer(cmd, null, null, null); } @Override public SecurityGroupRuleAnswer AddSecurityGroupRules(SecurityGroupRulesCmd cmd, SimulatorInfo info) { if (!info.isEnabled()) { - return new SecurityGroupRuleAnswer(cmd, false, "Disabled", SecurityGroupRuleAnswer.FailureReason.CANNOT_BRIDGE_FIREWALL); + return new SecurityGroupRuleAnswer(cmd, false, "Disabled", SecurityGroupRuleAnswer.FailureReason.CANNOT_BRIDGE_FIREWALL); } - + Map> rules = _securityRules.get(info.getHostUuid()); - + if (rules == null) { logSecurityGroupAction(cmd, null); rules = new ConcurrentHashMap>(); @@ -539,10 +539,10 @@ public class MockVmManagerImpl implements MockVmManager { logSecurityGroupAction(cmd, rules.get(cmd.getVmName())); rules.put(cmd.getVmName(), new Ternary(cmd.getSignature(), cmd.getVmId(), cmd.getSeqNum())); } - + return new SecurityGroupRuleAnswer(cmd); } - + private boolean logSecurityGroupAction(SecurityGroupRulesCmd cmd, Ternary rule) { String action = ", do nothing"; String reason = ", reason="; @@ -554,13 +554,13 @@ public class MockVmManagerImpl implements MockVmManager { s_logger.info("New seqno received: " + cmd.getSeqNum() + " curr=" + currSeqnum); updateSeqnoAndSig = true; if (!cmd.getSignature().equals(currSig)) { - s_logger.info("New seqno received: " + cmd.getSeqNum() + " curr=" + currSeqnum + s_logger.info("New seqno received: " + cmd.getSeqNum() + " curr=" + currSeqnum + " new signature received:" + cmd.getSignature() + " curr=" + currSig + ", updated iptables"); action = ", updated iptables"; reason = reason + "seqno_increased_sig_changed"; } else { - s_logger.info("New seqno received: " + cmd.getSeqNum() + " curr=" + currSeqnum - + " no change in signature:" + cmd.getSignature() + ", do nothing"); + s_logger.info("New seqno received: " + cmd.getSeqNum() + " curr=" + currSeqnum + + " no change in signature:" + cmd.getSignature() + ", do nothing"); reason = reason + "seqno_increased_sig_same"; } } else if (cmd.getSeqNum() < currSeqnum) { @@ -568,14 +568,14 @@ public class MockVmManagerImpl implements MockVmManager { reason = reason + "seqno_decreased"; } else { if (!cmd.getSignature().equals(currSig)) { - s_logger.info("Identical seqno received: " + cmd.getSeqNum() + s_logger.info("Identical seqno received: " + cmd.getSeqNum() + " new signature received:" + cmd.getSignature() + " curr=" + currSig + ", updated iptables"); action = ", updated iptables"; reason = reason + "seqno_same_sig_changed"; updateSeqnoAndSig = true; } else { - s_logger.info("Identical seqno received: " + cmd.getSeqNum() + " curr=" + currSeqnum - + " no change in signature:" + cmd.getSignature() + ", do nothing"); + s_logger.info("Identical seqno received: " + cmd.getSeqNum() + " curr=" + currSeqnum + + " no change in signature:" + cmd.getSignature() + ", do nothing"); reason = reason + "seqno_same_sig_same"; } } @@ -585,8 +585,8 @@ public class MockVmManagerImpl implements MockVmManager { action = ", updated iptables"; reason = ", seqno_new"; } - s_logger.info("Programmed network rules for vm " + cmd.getVmName() + " seqno=" + cmd.getSeqNum() - + " signature=" + cmd.getSignature() + s_logger.info("Programmed network rules for vm " + cmd.getVmName() + " seqno=" + cmd.getSeqNum() + + " signature=" + cmd.getSignature() + " guestIp=" + cmd.getGuestIp() + ", numIngressRules=" + cmd.getIngressRuleSet().length + ", numEgressRules=" + cmd.getEgressRuleSet().length + " total cidrs=" + cmd.getTotalNumCidrs() + action + reason); @@ -595,13 +595,13 @@ public class MockVmManagerImpl implements MockVmManager { @Override public Answer SavePassword(SavePasswordCommand cmd) { - return new Answer(cmd); + return new Answer(cmd); } - + @Override public HashMap> syncNetworkGroups(SimulatorInfo info) { HashMap> maps = new HashMap>(); - + Map> rules = _securityRules.get(info.getHostUuid()); if (rules == null) { return maps; diff --git a/agent-simulator/src/com/cloud/agent/manager/SimulatorInfo.java b/plugins/hypervisors/simulator/src/com/cloud/agent/manager/SimulatorInfo.java similarity index 98% rename from agent-simulator/src/com/cloud/agent/manager/SimulatorInfo.java rename to plugins/hypervisors/simulator/src/com/cloud/agent/manager/SimulatorInfo.java index dafd33abb51..c084730c6bb 100644 --- a/agent-simulator/src/com/cloud/agent/manager/SimulatorInfo.java +++ b/plugins/hypervisors/simulator/src/com/cloud/agent/manager/SimulatorInfo.java @@ -20,39 +20,39 @@ public class SimulatorInfo { private boolean enabled; private int timeout; private String hostUuid; - + public SimulatorInfo(boolean enabled, int timeout, String hostUuid) { this.enabled = enabled; this.timeout = timeout; this.hostUuid = hostUuid; } - + public SimulatorInfo() { this.enabled = true; this.timeout = -1; this.hostUuid = null; } - + public boolean isEnabled() { return this.enabled; } - + public int getTimeout() { return this.timeout; } - + public String getHostUuid() { return this.hostUuid; } - + public void setEnabled(boolean enabled) { this.enabled = enabled; } - + public void setTimeout(int timeout) { this.timeout = timeout; } - + public void setHostUuid(String hostUuid) { this.hostUuid = hostUuid; } diff --git a/agent-simulator/src/com/cloud/agent/manager/SimulatorManager.java b/plugins/hypervisors/simulator/src/com/cloud/agent/manager/SimulatorManager.java similarity index 97% rename from agent-simulator/src/com/cloud/agent/manager/SimulatorManager.java rename to plugins/hypervisors/simulator/src/com/cloud/agent/manager/SimulatorManager.java index 2b31b14d32f..ff8c32ce185 100755 --- a/agent-simulator/src/com/cloud/agent/manager/SimulatorManager.java +++ b/plugins/hypervisors/simulator/src/com/cloud/agent/manager/SimulatorManager.java @@ -23,7 +23,6 @@ import java.util.Map; import com.cloud.agent.api.Answer; import com.cloud.agent.api.Command; import com.cloud.agent.api.StoragePoolInfo; -import com.cloud.agent.mockvm.MockVm; import com.cloud.simulator.MockVMVO; import com.cloud.utils.Pair; import com.cloud.utils.component.Manager; @@ -31,10 +30,10 @@ import com.cloud.vm.VirtualMachine.State; public interface SimulatorManager extends Manager { public static final String Name = "simulator manager"; - + public enum AgentType { Computing(0), // not used anymore - Routing(1), + Routing(1), Storage(2); int value; @@ -56,7 +55,7 @@ public interface SimulatorManager extends Manager { Answer simulate(Command cmd, String hostGuid); StoragePoolInfo getLocalStorage(String hostGuid); - + boolean configureSimulator(Long zoneId, Long podId, Long clusterId, Long hostId, String command, String values); public HashMap> syncNetworkGroups(String hostGuid); diff --git a/agent-simulator/src/com/cloud/agent/manager/SimulatorManagerImpl.java b/plugins/hypervisors/simulator/src/com/cloud/agent/manager/SimulatorManagerImpl.java similarity index 88% rename from agent-simulator/src/com/cloud/agent/manager/SimulatorManagerImpl.java rename to plugins/hypervisors/simulator/src/com/cloud/agent/manager/SimulatorManagerImpl.java index 9a81ea6edaa..a32da34f0a9 100644 --- a/agent-simulator/src/com/cloud/agent/manager/SimulatorManagerImpl.java +++ b/plugins/hypervisors/simulator/src/com/cloud/agent/manager/SimulatorManagerImpl.java @@ -121,43 +121,43 @@ public class SimulatorManagerImpl implements SimulatorManager { public Answer simulate(Command cmd, String hostGuid) { Transaction txn = Transaction.open(Transaction.SIMULATOR_DB); // txn.transitToUserManagedConnection(_concierge.conn()); - + try { MockHost host = _mockHost.findByGuid(hostGuid); String cmdName = cmd.toString(); int index = cmdName.lastIndexOf("."); if (index != -1) { - cmdName = cmdName.substring(index + 1); + cmdName = cmdName.substring(index + 1); } MockConfigurationVO config = _mockConfigDao.findByNameBottomUP(host.getDataCenterId(), host.getPodId(), host.getClusterId(), host.getId(), cmdName); - + SimulatorInfo info = new SimulatorInfo(); info.setHostUuid(hostGuid); - + if (config != null) { Map configParameters = config.getParameters(); for (Map.Entry entry : configParameters.entrySet()) { - if (entry.getKey().equalsIgnoreCase("enabled")) { - info.setEnabled(Boolean.parseBoolean(entry.getValue())); - } else if (entry.getKey().equalsIgnoreCase("timeout")) { - try { - info.setTimeout(Integer.valueOf(entry.getValue())); - } catch (NumberFormatException e) { - s_logger.debug("invalid timeout parameter: " + e.toString()); - } - } else if (entry.getKey().equalsIgnoreCase("wait")) { - try { - int wait = Integer.valueOf(entry.getValue()); - Thread.sleep(wait * 1000); - } catch (NumberFormatException e) { - s_logger.debug("invalid timeout parameter: " + e.toString()); - } catch (InterruptedException e) { - s_logger.debug("thread is interrupted: " + e.toString()); - } - } + if (entry.getKey().equalsIgnoreCase("enabled")) { + info.setEnabled(Boolean.parseBoolean(entry.getValue())); + } else if (entry.getKey().equalsIgnoreCase("timeout")) { + try { + info.setTimeout(Integer.valueOf(entry.getValue())); + } catch (NumberFormatException e) { + s_logger.debug("invalid timeout parameter: " + e.toString()); + } + } else if (entry.getKey().equalsIgnoreCase("wait")) { + try { + int wait = Integer.valueOf(entry.getValue()); + Thread.sleep(wait * 1000); + } catch (NumberFormatException e) { + s_logger.debug("invalid timeout parameter: " + e.toString()); + } catch (InterruptedException e) { + s_logger.debug("thread is interrupted: " + e.toString()); + } + } } } - + if (cmd instanceof GetHostStatsCommand) { return _mockAgentMgr.getHostStatistic((GetHostStatsCommand)cmd); } else if (cmd instanceof CheckHealthCommand) { @@ -165,7 +165,7 @@ public class SimulatorManagerImpl implements SimulatorManager { } else if (cmd instanceof PingTestCommand) { return _mockAgentMgr.pingTest((PingTestCommand)cmd); } else if (cmd instanceof PrepareForMigrationCommand) { - return _mockAgentMgr.prepareForMigrate((PrepareForMigrationCommand)cmd); + return _mockAgentMgr.prepareForMigrate((PrepareForMigrationCommand)cmd); } else if (cmd instanceof MigrateCommand) { return _mockVmMgr.Migrate((MigrateCommand)cmd, info); } else if (cmd instanceof StartCommand) { @@ -173,11 +173,11 @@ public class SimulatorManagerImpl implements SimulatorManager { } else if (cmd instanceof CheckSshCommand) { return _mockVmMgr.checkSshCommand((CheckSshCommand)cmd); } else if (cmd instanceof CheckVirtualMachineCommand) { - return _mockVmMgr.checkVmState((CheckVirtualMachineCommand)cmd); + return _mockVmMgr.checkVmState((CheckVirtualMachineCommand)cmd); } else if (cmd instanceof SetStaticNatRulesCommand) { return _mockVmMgr.SetStaticNatRules((SetStaticNatRulesCommand)cmd); } else if (cmd instanceof SetFirewallRulesCommand) { - return _mockVmMgr.SetFirewallRules((SetFirewallRulesCommand)cmd); + return _mockVmMgr.SetFirewallRules((SetFirewallRulesCommand)cmd); } else if (cmd instanceof SetPortForwardingRulesCommand) { return _mockVmMgr.SetPortForwardingRules((SetPortForwardingRulesCommand)cmd); } else if (cmd instanceof NetworkUsageCommand) { @@ -193,7 +193,7 @@ public class SimulatorManagerImpl implements SimulatorManager { } else if (cmd instanceof CleanupNetworkRulesCmd) { return _mockVmMgr.CleanupNetworkRules((CleanupNetworkRulesCmd)cmd, info); } else if (cmd instanceof CheckNetworkCommand) { - return _mockAgentMgr.checkNetworkCommand((CheckNetworkCommand) cmd); + return _mockAgentMgr.checkNetworkCommand((CheckNetworkCommand) cmd); }else if (cmd instanceof StopCommand) { return _mockVmMgr.stopVM((StopCommand)cmd); } else if (cmd instanceof RebootCommand) { @@ -261,12 +261,12 @@ public class SimulatorManagerImpl implements SimulatorManager { } else if (cmd instanceof BumpUpPriorityCommand) { return _mockVmMgr.bumpPriority((BumpUpPriorityCommand) cmd); } else if (cmd instanceof GetDomRVersionCmd) { - return _mockVmMgr.getDomRVersion((GetDomRVersionCmd) cmd); + return _mockVmMgr.getDomRVersion((GetDomRVersionCmd) cmd); } else if (cmd instanceof ClusterSyncCommand) { - return new Answer(cmd); - //return new ClusterSyncAnswer(((ClusterSyncCommand) cmd).getClusterId(), this.getVmStates(hostGuid)); + return new Answer(cmd); + //return new ClusterSyncAnswer(((ClusterSyncCommand) cmd).getClusterId(), this.getVmStates(hostGuid)); } else if (cmd instanceof CopyVolumeCommand) { - return _mockStorageMgr.CopyVolume((CopyVolumeCommand) cmd); + return _mockStorageMgr.CopyVolume((CopyVolumeCommand) cmd); } else { return Answer.createUnsupportedCommandAnswer(cmd); } @@ -288,19 +288,19 @@ public class SimulatorManagerImpl implements SimulatorManager { @Override public Map getVmStates(String hostGuid) { - return _mockVmMgr.getVmStates(hostGuid); + return _mockVmMgr.getVmStates(hostGuid); } - + @Override public Map getVms(String hostGuid) { - return _mockVmMgr.getVms(hostGuid); + return _mockVmMgr.getVms(hostGuid); } - + @Override public HashMap> syncNetworkGroups(String hostGuid) { - SimulatorInfo info = new SimulatorInfo(); - info.setHostUuid(hostGuid); - return _mockVmMgr.syncNetworkGroups(info); + SimulatorInfo info = new SimulatorInfo(); + info.setHostUuid(hostGuid); + return _mockVmMgr.syncNetworkGroups(info); } @Override diff --git a/agent-simulator/src/com/cloud/api/commands/ConfigureSimulator.java b/plugins/hypervisors/simulator/src/com/cloud/api/commands/ConfigureSimulator.java similarity index 98% rename from agent-simulator/src/com/cloud/api/commands/ConfigureSimulator.java rename to plugins/hypervisors/simulator/src/com/cloud/api/commands/ConfigureSimulator.java index 4147e3aae1f..60ce82e2c05 100755 --- a/agent-simulator/src/com/cloud/api/commands/ConfigureSimulator.java +++ b/plugins/hypervisors/simulator/src/com/cloud/api/commands/ConfigureSimulator.java @@ -37,25 +37,25 @@ import com.cloud.utils.component.ComponentLocator; public class ConfigureSimulator extends BaseCmd { public static final Logger s_logger = Logger.getLogger(ConfigureSimulator.class.getName()); private static final String s_name = "configuresimulatorresponse"; - + @Parameter(name=ApiConstants.ZONE_ID, type=CommandType.LONG, description="configure range: in a zone") private Long zoneId; - + @Parameter(name=ApiConstants.POD_ID, type=CommandType.LONG, description="configure range: in a pod") private Long podId; - + @Parameter(name=ApiConstants.CLUSTER_ID, type=CommandType.LONG, description="configure range: in a cluster") private Long clusterId; - + @Parameter(name=ApiConstants.HOST_ID, type=CommandType.LONG, description="configure range: in a host") private Long hostId; - + @Parameter(name=ApiConstants.NAME, type=CommandType.STRING, required=true, description="which command needs to be configured") private String command; - + @Parameter(name=ApiConstants.VALUE, type=CommandType.STRING, required=true, description="configuration options for this command, which is seperated by ;") private String values; - + @Override public void execute() throws ResourceUnavailableException, InsufficientCapacityException, ServerApiException, ConcurrentOperationException, ResourceAllocationException { ComponentLocator locator = ComponentLocator.getLocator(ManagementService.Name); @@ -64,7 +64,7 @@ public class ConfigureSimulator extends BaseCmd { if (!result) { throw new ServerApiException(BaseCmd.INTERNAL_ERROR, "Failed to configure simulator"); } - + SuccessResponse response = new SuccessResponse(getCommandName()); this.setResponseObject(response); } diff --git a/agent-simulator/src/com/cloud/configuration/SimulatorComponentLibrary.java b/plugins/hypervisors/simulator/src/com/cloud/configuration/SimulatorComponentLibrary.java similarity index 100% rename from agent-simulator/src/com/cloud/configuration/SimulatorComponentLibrary.java rename to plugins/hypervisors/simulator/src/com/cloud/configuration/SimulatorComponentLibrary.java diff --git a/agent-simulator/src/com/cloud/resource/AgentResourceBase.java b/plugins/hypervisors/simulator/src/com/cloud/resource/AgentResourceBase.java similarity index 98% rename from agent-simulator/src/com/cloud/resource/AgentResourceBase.java rename to plugins/hypervisors/simulator/src/com/cloud/resource/AgentResourceBase.java index 6261158ee11..808ca070d4d 100644 --- a/agent-simulator/src/com/cloud/resource/AgentResourceBase.java +++ b/plugins/hypervisors/simulator/src/com/cloud/resource/AgentResourceBase.java @@ -52,7 +52,7 @@ public class AgentResourceBase implements ServerResource { protected String _name; private List _warnings = new LinkedList(); private List _errors = new LinkedList(); - + private transient IAgentControl _agentControl; protected long _instanceId; @@ -64,36 +64,36 @@ public class AgentResourceBase implements ServerResource { protected MockHost agentHost = null; protected boolean stopped = false; protected String hostGuid = null; - + public AgentResourceBase(long instanceId, AgentType agentType, SimulatorManager simMgr, String hostGuid) { - _instanceId = instanceId; - + _instanceId = instanceId; + if(s_logger.isDebugEnabled()) { s_logger.info("New Routing host instantiated with guid:" + hostGuid); } - + if (agentType == AgentType.Routing) { _type = Host.Type.Routing; } else { _type = Host.Type.Storage; } - + this.hostGuid = hostGuid; } - + protected MockVmManager getVmMgr() { return _simMgr.getVmMgr(); } - + protected MockStorageManager getStorageMgr() { return _simMgr.getStorageMgr(); } - + protected MockAgentManager getAgentMgr() { return _simMgr.getAgentMgr(); } - + protected long getInstanceId() { return _instanceId; } @@ -102,7 +102,7 @@ public class AgentResourceBase implements ServerResource { if(s_logger.isDebugEnabled()) { s_logger.debug("Deserializing simulated agent on reconnect"); } - + } @Override @@ -113,18 +113,18 @@ public class AgentResourceBase implements ServerResource { public void setName(String name) { _name = name; } - + @Override public boolean configure(String name, Map params) throws ConfigurationException { hostGuid = (String)params.get("guid"); _locator = ComponentLocator.getLocator("management-server"); _simMgr = _locator.getManager(SimulatorManager.class); - + agentHost = getAgentMgr().getHost(hostGuid); return true; } - + private void reconnect(MockHost host) { if(s_logger.isDebugEnabled()) { @@ -244,7 +244,7 @@ public class AgentResourceBase implements ServerResource { } return file.getAbsolutePath(); } - + @Override public Answer executeRequest(Command cmd) { @@ -264,20 +264,20 @@ public class AgentResourceBase implements ServerResource { public void setType(Host.Type _type) { this._type = _type; } - + @Override public StartupCommand[] initialize() { return null; } - + public SimulatorManager getSimulatorManager() { return _simMgr; - } - - public void setSimulatorManager(SimulatorManager simMgr) { - _simMgr = simMgr; } - + + public void setSimulatorManager(SimulatorManager simMgr) { + _simMgr = simMgr; + } + public boolean isStopped() { return this.stopped; } diff --git a/agent-simulator/src/com/cloud/resource/AgentRoutingResource.java b/plugins/hypervisors/simulator/src/com/cloud/resource/AgentRoutingResource.java similarity index 96% rename from agent-simulator/src/com/cloud/resource/AgentRoutingResource.java rename to plugins/hypervisors/simulator/src/com/cloud/resource/AgentRoutingResource.java index f10713d126c..f35e4325b38 100644 --- a/agent-simulator/src/com/cloud/resource/AgentRoutingResource.java +++ b/plugins/hypervisors/simulator/src/com/cloud/resource/AgentRoutingResource.java @@ -91,7 +91,7 @@ public class AgentRoutingResource extends AgentStorageResource { } else if (cmd instanceof ReadyCommand) { return new ReadyAnswer((ReadyCommand)cmd); } else if (cmd instanceof ShutdownCommand) { - return execute((ShutdownCommand)cmd); + return execute((ShutdownCommand)cmd); } else { return _simMgr.simulate(cmd, hostGuid); } @@ -99,7 +99,7 @@ public class AgentRoutingResource extends AgentStorageResource { return new Answer(cmd, false, e.getMessage()); } } - + @Override public Type getType() { return Host.Type.Routing; @@ -111,10 +111,10 @@ public class AgentRoutingResource extends AgentStorageResource { return null; } synchronized (_vms) { - if (_vms.size() == 0) { - //load vms state from database - _vms.putAll(_simMgr.getVmStates(hostGuid)); - } + if (_vms.size() == 0) { + //load vms state from database + _vms.putAll(_simMgr.getVmStates(hostGuid)); + } } final HashMap newStates = sync(); HashMap> nwGrpStates = _simMgr.syncNetworkGroups(hostGuid); @@ -131,18 +131,18 @@ public class AgentRoutingResource extends AgentStorageResource { totalCpu = agentHost.getCpuCount() * agentHost.getCpuSpeed(); totalMem = agentHost.getMemorySize(); for (Map.Entry entry : vmsMaps.entrySet()) { - MockVMVO vm = entry.getValue(); - usedCpu += vm.getCpu(); - usedMem += vm.getMemory(); - _runningVms.put(entry.getKey(), new Pair(Long.valueOf(vm.getCpu()), vm.getMemory())); + MockVMVO vm = entry.getValue(); + usedCpu += vm.getCpu(); + usedMem += vm.getMemory(); + _runningVms.put(entry.getKey(), new Pair(Long.valueOf(vm.getCpu()), vm.getMemory())); } - + List info = getHostInfo(); StartupRoutingCommand cmd = new StartupRoutingCommand((Integer) info.get(0), (Long) info.get(1), (Long) info.get(2), (Long) info.get(4), (String) info.get(3), HypervisorType.Simulator, RouterPrivateIpStrategy.HostLocal); cmd.setStateChanges(changes); - + Map hostDetails = new HashMap(); hostDetails.put(RouterPrivateIpStrategy.class.getCanonicalName(), RouterPrivateIpStrategy.DcGlobal.toString()); @@ -167,13 +167,13 @@ public class AgentRoutingResource extends AgentStorageResource { cmd.setCluster(String.valueOf(agentHost.getClusterId())); StartupStorageCommand ssCmd = initializeLocalSR(); - + return new StartupCommand[] { cmd, ssCmd }; } private StartupStorageCommand initializeLocalSR() { Map tInfo = new HashMap(); - + StoragePoolInfo poolInfo = _simMgr.getLocalStorage(hostGuid); StartupStorageCommand cmd = new StartupStorageCommand(poolInfo.getHostPath(), poolInfo.getPoolType(), poolInfo.getCapacityBytes(), tInfo); @@ -183,14 +183,14 @@ public class AgentRoutingResource extends AgentStorageResource { cmd.setResourceType(StorageResourceType.STORAGE_POOL); return cmd; } - + protected synchronized Answer execute(StartCommand cmd) throws IllegalArgumentException { VirtualMachineTO vmSpec = cmd.getVirtualMachine(); String vmName = vmSpec.getName(); if (this.totalCpu < (vmSpec.getCpus() * vmSpec.getSpeed() + this.usedCpu) || this.totalMem < (vmSpec.getMaxRam() + this.usedMem)) { - return new StartAnswer(cmd, "Not enough resource to start the vm"); + return new StartAnswer(cmd, "Not enough resource to start the vm"); } State state = State.Stopped; synchronized (_vms) { @@ -202,7 +202,7 @@ public class AgentRoutingResource extends AgentStorageResource { if (!result.getResult()) { return new StartAnswer(cmd, result.getDetails()); } - + this.usedCpu += vmSpec.getCpus() * vmSpec.getSpeed(); this.usedMem += vmSpec.getMaxRam(); _runningVms.put(vmName, new Pair(Long.valueOf(vmSpec.getCpus() * vmSpec.getSpeed()), vmSpec.getMaxRam())); @@ -217,7 +217,7 @@ public class AgentRoutingResource extends AgentStorageResource { return new StartAnswer(cmd); } - + protected synchronized StopAnswer execute(StopCommand cmd) { StopAnswer answer = null; @@ -230,11 +230,11 @@ public class AgentRoutingResource extends AgentStorageResource { } try { Answer result = _simMgr.simulate(cmd, hostGuid); - + if (!result.getResult()) { return new StopAnswer(cmd, result.getDetails(), false); } - + answer = new StopAnswer(cmd, null, 0, true); Pair data = _runningVms.get(vmName); if (data != null) { @@ -242,16 +242,16 @@ public class AgentRoutingResource extends AgentStorageResource { this.usedMem -= data.second(); } state = State.Stopped; - + } finally { synchronized (_vms) { _vms.put(vmName, state); } } - + return answer; } - + protected CheckVirtualMachineAnswer execute(final CheckVirtualMachineCommand cmd) { final String vmName = cmd.getVmName(); CheckVirtualMachineAnswer result = (CheckVirtualMachineAnswer)_simMgr.simulate(cmd, hostGuid); @@ -346,7 +346,7 @@ public class AgentRoutingResource extends AgentStorageResource { return changes; } - + private Answer execute(ShutdownCommand cmd) { this.stopped = true; return new Answer(cmd); diff --git a/agent-simulator/src/com/cloud/resource/AgentStorageResource.java b/plugins/hypervisors/simulator/src/com/cloud/resource/AgentStorageResource.java similarity index 93% rename from agent-simulator/src/com/cloud/resource/AgentStorageResource.java rename to plugins/hypervisors/simulator/src/com/cloud/resource/AgentStorageResource.java index 2751b875eb6..1125eeb7847 100644 --- a/agent-simulator/src/com/cloud/resource/AgentStorageResource.java +++ b/plugins/hypervisors/simulator/src/com/cloud/resource/AgentStorageResource.java @@ -62,7 +62,7 @@ public class AgentStorageResource extends AgentResourceBase implements Secondary return _simMgr.simulate(cmd, hostGuid); } } - + @Override public PingCommand getCurrentStatus(long id) { if (isStopped()) { @@ -73,14 +73,14 @@ public class AgentStorageResource extends AgentResourceBase implements Secondary @Override public Type getType() { - if(SecondaryStorageVm.Role.templateProcessor.toString().equals(_role)) - return Host.Type.SecondaryStorage; - return Host.Type.SecondaryStorageCmdExecutor; + if(SecondaryStorageVm.Role.templateProcessor.toString().equals(_role)) + return Host.Type.SecondaryStorage; + return Host.Type.SecondaryStorageCmdExecutor; } @Override public StartupCommand[] initialize() { - StartupSecondaryStorageCommand cmd = new StartupSecondaryStorageCommand(); + StartupSecondaryStorageCommand cmd = new StartupSecondaryStorageCommand(); cmd.setPrivateIpAddress(agentHost.getPrivateIpAddress()); cmd.setPrivateNetmask(agentHost.getPrivateNetMask()); @@ -97,15 +97,15 @@ public class AgentStorageResource extends AgentResourceBase implements Secondary cmd.setPod(String.valueOf(agentHost.getPodId())); cmd.setGuid(agentHost.getGuid()); return new StartupCommand[] { cmd }; - } - + } + @Override public boolean configure(String name, Map params) throws ConfigurationException { if (!super.configure(name, params)) { s_logger.warn("Base class was unable to configure"); return false; } - + return true; } diff --git a/agent-simulator/src/com/cloud/resource/SimulatorDiscoverer.java b/plugins/hypervisors/simulator/src/com/cloud/resource/SimulatorDiscoverer.java similarity index 94% rename from agent-simulator/src/com/cloud/resource/SimulatorDiscoverer.java rename to plugins/hypervisors/simulator/src/com/cloud/resource/SimulatorDiscoverer.java index 729d4b0fd23..b6d40d49589 100755 --- a/agent-simulator/src/com/cloud/resource/SimulatorDiscoverer.java +++ b/plugins/hypervisors/simulator/src/com/cloud/resource/SimulatorDiscoverer.java @@ -60,7 +60,7 @@ import com.cloud.utils.component.Inject; public class SimulatorDiscoverer extends DiscovererBase implements Discoverer, Listener, ResourceStateAdapter { private static final Logger s_logger = Logger .getLogger(SimulatorDiscoverer.class); - + @Inject HostDao _hostDao; @Inject VMTemplateDao _vmTemplateDao; @Inject VMTemplateHostDao _vmTemplateHostDao; @@ -70,10 +70,10 @@ public class SimulatorDiscoverer extends DiscovererBase implements Discoverer, L @Inject MockAgentManager _mockAgentMgr = null; @Inject MockStorageManager _mockStorageMgr = null; @Inject ResourceManager _resourceMgr; - + /** * Finds ServerResources of an in-process simulator - * + * * @see com.cloud.resource.Discoverer#find(long, java.lang.Long, * java.lang.Long, java.net.URI, java.lang.String, java.lang.String) */ @@ -88,7 +88,7 @@ public class SimulatorDiscoverer extends DiscovererBase implements Discoverer, L String scheme = uri.getScheme(); String host = uri.getAuthority(); String commands = URLDecoder.decode(uri.getPath()); - + long cpuSpeed = _mockAgentMgr.DEFAULT_HOST_SPEED_MHZ; long cpuCores = _mockAgentMgr.DEFAULT_HOST_CPU_CORES; long memory = _mockAgentMgr.DEFAULT_HOST_MEM_SIZE; @@ -145,7 +145,7 @@ public class SimulatorDiscoverer extends DiscovererBase implements Discoverer, L if (s_logger.isInfoEnabled()) s_logger.info("invalid cluster id or cluster is not for Simulator hypervisors"); return null; - } + } cluster = Long.toString(clusterId); if(clu.getGuid() == null) { clu.setGuid(UUID.randomUUID().toString()); @@ -205,23 +205,23 @@ public class SimulatorDiscoverer extends DiscovererBase implements Discoverer, L for (HostVO h : hosts) { associateTemplatesToZone(h.getId(), h.getDataCenterId()); } - } + } private void associateTemplatesToZone(long hostId, long dcId){ - VMTemplateZoneVO tmpltZone; + VMTemplateZoneVO tmpltZone; - List allTemplates = _vmTemplateDao.listAll(); - for (VMTemplateVO vt: allTemplates){ - if (vt.isCrossZones()) { - tmpltZone = _vmTemplateZoneDao.findByZoneTemplate(dcId, vt.getId()); - if (tmpltZone == null) { - VMTemplateZoneVO vmTemplateZone = new VMTemplateZoneVO(dcId, vt.getId(), new Date()); - _vmTemplateZoneDao.persist(vmTemplateZone); - } - } - } + List allTemplates = _vmTemplateDao.listAll(); + for (VMTemplateVO vt: allTemplates){ + if (vt.isCrossZones()) { + tmpltZone = _vmTemplateZoneDao.findByZoneTemplate(dcId, vt.getId()); + if (tmpltZone == null) { + VMTemplateZoneVO vmTemplateZone = new VMTemplateZoneVO(dcId, vt.getId(), new Date()); + _vmTemplateZoneDao.persist(vmTemplateZone); + } + } + } } - + @Override public HypervisorType getHypervisorType() { return HypervisorType.Simulator; @@ -231,7 +231,7 @@ public class SimulatorDiscoverer extends DiscovererBase implements Discoverer, L public boolean matchHypervisor(String hypervisor) { return hypervisor.equalsIgnoreCase(HypervisorType.Simulator.toString()); } - + @Override public boolean configure(String name, Map params) throws ConfigurationException { super.configure(name, params); @@ -257,9 +257,9 @@ public class SimulatorDiscoverer extends DiscovererBase implements Discoverer, L @Override public void processConnect(HostVO host, StartupCommand cmd, boolean forRebalance) throws ConnectionException { - + /*if(forRebalance) - return; + return; if ( Host.Type.SecondaryStorage == host.getType() ) { List tmplts = _vmTemplateDao.listAll(); for( VMTemplateVO tmplt : tmplts ) { @@ -275,7 +275,7 @@ public class SimulatorDiscoverer extends DiscovererBase implements Discoverer, L } } }*/ - + } @Override @@ -312,12 +312,12 @@ public class SimulatorDiscoverer extends DiscovererBase implements Discoverer, L if (!(firstCmd instanceof StartupRoutingCommand)) { return null; } - + StartupRoutingCommand ssCmd = ((StartupRoutingCommand) firstCmd); if (ssCmd.getHypervisorType() != HypervisorType.Simulator) { return null; } - + return _resourceMgr.fillRoutingHostVO(host, ssCmd, HypervisorType.Simulator, details, hostTags); } @@ -326,11 +326,11 @@ public class SimulatorDiscoverer extends DiscovererBase implements Discoverer, L boolean isForceDeleteStorage) throws UnableDeleteHostException { return null; } - + @Override public boolean stop() { - _resourceMgr.unregisterResourceStateAdapter(this.getClass().getSimpleName()); + _resourceMgr.unregisterResourceStateAdapter(this.getClass().getSimpleName()); return super.stop(); } - + } diff --git a/agent-simulator/src/com/cloud/resource/SimulatorSecondaryDiscoverer.java b/plugins/hypervisors/simulator/src/com/cloud/resource/SimulatorSecondaryDiscoverer.java similarity index 96% rename from agent-simulator/src/com/cloud/resource/SimulatorSecondaryDiscoverer.java rename to plugins/hypervisors/simulator/src/com/cloud/resource/SimulatorSecondaryDiscoverer.java index f828bc822ca..5d4d5b97c40 100644 --- a/agent-simulator/src/com/cloud/resource/SimulatorSecondaryDiscoverer.java +++ b/plugins/hypervisors/simulator/src/com/cloud/resource/SimulatorSecondaryDiscoverer.java @@ -45,14 +45,14 @@ public class SimulatorSecondaryDiscoverer extends SecondaryStorageDiscoverer imp @Inject AgentManager _agentMgr; @Inject ResourceManager _resourceMgr; @Inject SnapshotDao _snapshotDao; - + @Override public boolean configure(String name, Map params) throws ConfigurationException { - _agentMgr.registerForHostEvents(this, true, false, false); + _agentMgr.registerForHostEvents(this, true, false, false); _resourceMgr.registerResourceStateAdapter(this.getClass().getSimpleName(), this); return super.configure(name, params); } - + @Override public void postDiscovery(List hosts, long msId) { super.postDiscovery(hosts, msId); @@ -74,9 +74,9 @@ public class SimulatorSecondaryDiscoverer extends SecondaryStorageDiscoverer imp //for detecting SSVM dispatch StartupCommand firstCmd = startup[0]; if (!(firstCmd instanceof StartupSecondaryStorageCommand)) { - return null; + return null; } - + host.setType(com.cloud.host.Host.Type.SecondaryStorageVM); return host; } @@ -103,7 +103,7 @@ public class SimulatorSecondaryDiscoverer extends SecondaryStorageDiscoverer imp @Override public boolean stop() { - _resourceMgr.unregisterResourceStateAdapter(this.getClass().getSimpleName()); + _resourceMgr.unregisterResourceStateAdapter(this.getClass().getSimpleName()); return true; } @@ -130,7 +130,7 @@ public class SimulatorSecondaryDiscoverer extends SecondaryStorageDiscoverer imp @Override public void processConnect(HostVO host, StartupCommand cmd, boolean forRebalance) throws ConnectionException { - + } @Override diff --git a/agent-simulator/src/com/cloud/server/ManagementServerSimulatorImpl.java b/plugins/hypervisors/simulator/src/com/cloud/server/ManagementServerSimulatorImpl.java similarity index 99% rename from agent-simulator/src/com/cloud/server/ManagementServerSimulatorImpl.java rename to plugins/hypervisors/simulator/src/com/cloud/server/ManagementServerSimulatorImpl.java index 1c69b543aa8..35aa3010005 100644 --- a/agent-simulator/src/com/cloud/server/ManagementServerSimulatorImpl.java +++ b/plugins/hypervisors/simulator/src/com/cloud/server/ManagementServerSimulatorImpl.java @@ -25,7 +25,7 @@ public class ManagementServerSimulatorImpl extends ManagementServerExtImpl { for (int i = 0; i < apis.length; i++) { newapis[i] = apis[i]; } - + newapis[apis.length] = "commands-simulator.properties"; return newapis; } diff --git a/agent-simulator/src/com/cloud/simulator/MockConfigurationVO.java b/plugins/hypervisors/simulator/src/com/cloud/simulator/MockConfigurationVO.java similarity index 96% rename from agent-simulator/src/com/cloud/simulator/MockConfigurationVO.java rename to plugins/hypervisors/simulator/src/com/cloud/simulator/MockConfigurationVO.java index dfea2279e9e..3ed862bb69f 100644 --- a/agent-simulator/src/com/cloud/simulator/MockConfigurationVO.java +++ b/plugins/hypervisors/simulator/src/com/cloud/simulator/MockConfigurationVO.java @@ -33,79 +33,79 @@ public class MockConfigurationVO { @GeneratedValue(strategy=GenerationType.IDENTITY) @Column(name="id") private long id; - + @Column(name="data_center_id", nullable=false) private Long dataCenterId; - + @Column(name="pod_id") private Long podId; - + @Column(name="cluster_id") private Long clusterId; - + @Column(name="host_id") private Long hostId; - + @Column(name="name") private String name; - + @Column(name="values") private String values; - + public long getId() { return this.id; } - + public Long getDataCenterId() { return this.dataCenterId; } - + public void setDataCenterId(Long dcId) { this.dataCenterId = dcId; } - + public Long getPodId() { return this.podId; } - + public void setPodId(Long podId) { this.podId = podId; } - + public Long getClusterId() { return this.clusterId; } - + public void setClusterId(Long clusterId) { this.clusterId = clusterId; } - + public Long getHostId() { return this.hostId; } - + public void setHostId(Long hostId) { this.hostId = hostId; } - + public String getName() { return this.name; } - + public void setName(String name) { this.name = name; } - + public String getValues() { return this.values; } - + public Map getParameters() { Map maps = new HashMap(); if (this.values == null) { return maps; } - + String[] vals = this.values.split("\\|"); for (String val : vals) { String[] paras = val.split(":"); @@ -113,9 +113,8 @@ public class MockConfigurationVO { } return maps; } - + public void setValues(String values) { this.values = values; } } - diff --git a/agent-simulator/src/com/cloud/simulator/MockHost.java b/plugins/hypervisors/simulator/src/com/cloud/simulator/MockHost.java similarity index 93% rename from agent-simulator/src/com/cloud/simulator/MockHost.java rename to plugins/hypervisors/simulator/src/com/cloud/simulator/MockHost.java index d20e8259267..5ca90177189 100644 --- a/agent-simulator/src/com/cloud/simulator/MockHost.java +++ b/plugins/hypervisors/simulator/src/com/cloud/simulator/MockHost.java @@ -19,44 +19,44 @@ package com.cloud.simulator; public interface MockHost { public long getCpuSpeed(); public long getCpuCount(); - - + + public long getMemorySize(); - + public String getCapabilities(); - + public long getId(); - + public String getName(); - + public String getGuid(); - - + + public String getVersion(); - + public Long getDataCenterId(); - + public Long getPodId(); - + public Long getClusterId(); - + public String getPrivateIpAddress(); - + public String getPrivateNetMask(); - + public String getPrivateMacAddress(); - - + + public String getPublicIpAddress(); - + public String getPublicNetMask(); - + public String getPublicMacAddress(); - + public String getStorageIpAddress(); - + public String getStorageNetMask(); - + public String getStorageMacAddress(); - + } diff --git a/agent-simulator/src/com/cloud/simulator/MockHostVO.java b/plugins/hypervisors/simulator/src/com/cloud/simulator/MockHostVO.java similarity index 94% rename from agent-simulator/src/com/cloud/simulator/MockHostVO.java rename to plugins/hypervisors/simulator/src/com/cloud/simulator/MockHostVO.java index 59b7e8d0788..c86dfa6a2bf 100644 --- a/agent-simulator/src/com/cloud/simulator/MockHostVO.java +++ b/plugins/hypervisors/simulator/src/com/cloud/simulator/MockHostVO.java @@ -31,245 +31,245 @@ public class MockHostVO implements MockHost { @GeneratedValue(strategy=GenerationType.IDENTITY) @Column(name="id") private long id; - + @Column(name="name", nullable=false) private String name = null; - + @Column(name="private_ip_address", nullable=false) private String privateIpAddress; - + @Column(name="private_mac_address", nullable=false) private String privateMacAddress; - + @Column(name="private_netmask", nullable=false) private String privateNetmask; - + @Column(name="public_netmask") private String publicNetmask; - + @Column(name="public_ip_address") private String publicIpAddress; - + @Column(name="public_mac_address") private String publicMacAddress; - + @Column(name="storage_ip_address") private String storageIpAddress; - + @Column(name="storage_mac_address") private String storageMacAddress; - + @Column(name="storage_netmask") private String storageNetMask; - + @Column(name="guid") private String guid; - + @Column(name="version") private String version; - + @Column(name="data_center_id", nullable=false) private long dataCenterId; - + @Column(name="pod_id") private Long podId; - + @Column(name="cluster_id") private Long clusterId; - + @Column(name="speed") private long cpuSpeed; - + @Column(name="cpus") private long cpuCount; - + @Column(name="ram") private long memorySize; - + @Column(name="capabilities") private String capabilities; - + @Column(name="vm_id") private long vmId; - + @Column(name="resource") private String resource; - - - + + + public MockHostVO() { - + } - - + + public long getVmId() { return vmId; } - + public void setVmId(long vmId) { this.vmId = vmId; } - + public String getResource() { return this.resource; } - + public void setResource(String resource) { this.resource = resource; } - + public long getCpuSpeed() { return this.cpuSpeed; } - + public void setCpuSpeed(long cpuSpeed) { this.cpuSpeed = cpuSpeed; } - + public long getCpuCount() { return this.cpuCount; } - + public void setCpuCount(long cpuCount) { this.cpuCount = cpuCount; } - + public long getMemorySize() { return this.memorySize; } - + public void setMemorySize(long memorySize) { this.memorySize = memorySize; } - + public String getCapabilities() { return this.capabilities; } - + public void setCapabilities(String capabilities) { this.capabilities = capabilities; } - + public long getId() { return id; } - + public String getName() { return name; } - + public void setName(String name) { this.name = name; } - + public String getGuid() { return this.guid; } - + public void setGuid(String guid) { this.guid = guid; } - + public String getVersion() { return this.version; } - + public void setVersion(String version) { this.version = version; } - + public Long getDataCenterId() { return this.dataCenterId; } - + public void setDataCenterId(Long dataCenterId) { this.dataCenterId = dataCenterId; } - + public Long getPodId() { return this.podId; } - + public void setPodId(long podId) { this.podId = podId; } - + public Long getClusterId() { return this.clusterId; } - + public void setClusterId(Long clusterId) { this.clusterId = clusterId; } - + public String getPrivateIpAddress() { return privateIpAddress; } - + public void setPrivateIpAddress(String privateIpAddress) { this.privateIpAddress = privateIpAddress; } - + public String getPrivateNetMask() { return this.privateNetmask; } - + public void setPrivateNetMask(String privateNetmask) { this.privateNetmask = privateNetmask; } - + public String getPrivateMacAddress() { return this.privateMacAddress; } - + public void setPrivateMacAddress(String privateMacAddress) { this.privateMacAddress = privateMacAddress; } - + public String getPublicIpAddress() { return this.publicIpAddress; } - + public void setPublicIpAddress(String publicIpAddress) { this.publicIpAddress = publicIpAddress; } - + public String getPublicNetMask() { return this.publicNetmask; } - + public void setPublicNetMask(String publicNetMask) { this.publicNetmask = publicNetMask; } - + public String getPublicMacAddress() { return this.publicMacAddress; } - + public void setPublicMacAddress(String publicMacAddress) { this.publicMacAddress = publicMacAddress; } - + public String getStorageIpAddress() { return this.storageIpAddress; } - + public void setStorageIpAddress(String storageIpAddress) { this.storageIpAddress = storageIpAddress; } - + public String getStorageNetMask() { return this.storageNetMask; } - + public void setStorageNetMask(String storageNetMask) { this.storageNetMask = storageNetMask; } - + public String getStorageMacAddress() { return this.storageMacAddress; } - + public void setStorageMacAddress(String storageMacAddress) { this.storageMacAddress = storageMacAddress; } diff --git a/agent-simulator/src/com/cloud/simulator/MockSecStorageVO.java b/plugins/hypervisors/simulator/src/com/cloud/simulator/MockSecStorageVO.java similarity index 96% rename from agent-simulator/src/com/cloud/simulator/MockSecStorageVO.java rename to plugins/hypervisors/simulator/src/com/cloud/simulator/MockSecStorageVO.java index c503cc260be..59a81c79abe 100644 --- a/agent-simulator/src/com/cloud/simulator/MockSecStorageVO.java +++ b/plugins/hypervisors/simulator/src/com/cloud/simulator/MockSecStorageVO.java @@ -31,45 +31,45 @@ public class MockSecStorageVO { @GeneratedValue(strategy=GenerationType.IDENTITY) @Column(name="id") private long id; - + @Column(name="url") private String url; - + @Column(name="capacity") private long capacity; - + @Column(name="mount_point") private String mountPoint; - - + + public MockSecStorageVO() { - + } - + public long getId() { return this.id; } - + public String getMountPoint() { return this.mountPoint; } - + public void setMountPoint(String mountPoint) { this.mountPoint = mountPoint; } - + public String getUrl() { return url; } - + public void setUrl(String url) { this.url = url; } - + public long getCapacity() { return this.capacity; } - + public void setCapacity(long capacity) { this.capacity = capacity; } diff --git a/agent-simulator/src/com/cloud/simulator/MockSecurityRulesVO.java b/plugins/hypervisors/simulator/src/com/cloud/simulator/MockSecurityRulesVO.java similarity index 96% rename from agent-simulator/src/com/cloud/simulator/MockSecurityRulesVO.java rename to plugins/hypervisors/simulator/src/com/cloud/simulator/MockSecurityRulesVO.java index 3036ea98db2..df31fbf277b 100644 --- a/agent-simulator/src/com/cloud/simulator/MockSecurityRulesVO.java +++ b/plugins/hypervisors/simulator/src/com/cloud/simulator/MockSecurityRulesVO.java @@ -31,73 +31,73 @@ public class MockSecurityRulesVO { @GeneratedValue(strategy=GenerationType.IDENTITY) @Column(name="id") private long id; - + @Column(name="vmid") private Long vmId; - + @Column(name="signature") private String signature; - + @Column(name="seqnum") private Long seqNum; - + @Column(name="ruleset") private String ruleSet; - + @Column(name="hostid") private String hostId; - + @Column(name="vmname") public String vmName; - + public String getVmName() { return this.vmName; } - + public void setVmName(String vmName) { this.vmName = vmName; } - + public String getHostId() { return this.hostId; } - + public void setHostId(String hostId) { this.hostId = hostId; } - + public long getId() { return this.id; } - + public Long getVmId() { return this.vmId; } - + public void setVmId(Long vmId) { this.vmId = vmId; } - + public String getSignature() { return this.signature; } - + public void setSignature(String sig) { this.signature = sig; } - + public Long getSeqNum() { return this.seqNum; } - + public void setSeqNum(Long seqNum) { this.seqNum = seqNum; } - + public String getRuleSet() { return this.ruleSet; } - + public void setRuleSet(String ruleset) { this.ruleSet = ruleset; } diff --git a/agent-simulator/src/com/cloud/simulator/MockStoragePoolVO.java b/plugins/hypervisors/simulator/src/com/cloud/simulator/MockStoragePoolVO.java similarity index 96% rename from agent-simulator/src/com/cloud/simulator/MockStoragePoolVO.java rename to plugins/hypervisors/simulator/src/com/cloud/simulator/MockStoragePoolVO.java index 81f0432247d..9c6e84d2714 100644 --- a/agent-simulator/src/com/cloud/simulator/MockStoragePoolVO.java +++ b/plugins/hypervisors/simulator/src/com/cloud/simulator/MockStoragePoolVO.java @@ -35,67 +35,67 @@ public class MockStoragePoolVO { @GeneratedValue(strategy=GenerationType.IDENTITY) @Column(name="id") private long id; - + @Column(name="guid") private String uuid; - + @Column(name="mount_point") private String mountPoint; - + @Column(name="capacity") private long capacity; - + @Column(name="hostguid") private String hostGuid; - + @Column(name="pool_type") @Enumerated(value=EnumType.STRING) private StoragePoolType poolType; - + public MockStoragePoolVO() { - + } - + public String getHostGuid() { return this.hostGuid; } - + public void setHostGuid(String hostGuid) { this.hostGuid = hostGuid; } - + public long getId() { return this.id; } - + public StoragePoolType getPoolType() { return this.poolType; } - + public void setStorageType(StoragePoolType poolType) { this.poolType = poolType; } - + public String getUuid() { return this.uuid; } - + public void setUuid(String uuid) { this.uuid = uuid; } - + public String getMountPoint() { return this.mountPoint; } - + public void setMountPoint(String mountPoint) { this.mountPoint = mountPoint; } - + public long getCapacity() { return this.capacity; } - + public void setCapacity(long capacity) { this.capacity = capacity; } diff --git a/agent-simulator/src/com/cloud/simulator/MockVMVO.java b/plugins/hypervisors/simulator/src/com/cloud/simulator/MockVMVO.java similarity index 93% rename from agent-simulator/src/com/cloud/simulator/MockVMVO.java rename to plugins/hypervisors/simulator/src/com/cloud/simulator/MockVMVO.java index c1b391e37f6..4fb30850b63 100644 --- a/agent-simulator/src/com/cloud/simulator/MockVMVO.java +++ b/plugins/hypervisors/simulator/src/com/cloud/simulator/MockVMVO.java @@ -33,98 +33,98 @@ public class MockVMVO implements MockVm{ @GeneratedValue(strategy=GenerationType.IDENTITY) @Column(name="id") private long id; - + @Column(name="name") private String name; - + @Column(name="host_id") private long hostId; - + @Column(name="type") private String vmType; - + @Column(name="state") private State state; - + @Column(name="vnc_port") private int vncPort; - + @Column(name="memory") private long memory; - + @Column(name="cpu") private int cpu; - + public MockVMVO() { - + } - + public long getId() { return this.id; } - + public String getName() { return this.name; } - + public void setName(String name) { this.name = name; } - + public long getHostId() { return this.hostId; } - + public void setHostId(long hostId) { this.hostId = hostId; } - + public String getVmType() { return this.vmType; } - + public void setVmType(String vmType) { this.vmType = vmType; } - + public State getState() { return this.state; } - + public String getType() { - return this.vmType; + return this.vmType; } - + public void setState(State state) { this.state = state; } - + public int getVncPort() { return this.vncPort; } - + public void setVncPort(int vncPort) { this.vncPort = vncPort; } - + public long getMemory() { return this.memory; } - + public void setMemory(long memory) { this.memory = memory; } - + public int getCpu() { return this.cpu; } - + public void setCpu(int cpu) { this.cpu = cpu; } - + public void setType(String type) { - this.vmType = type; + this.vmType = type; } } diff --git a/agent-simulator/src/com/cloud/simulator/MockVm.java b/plugins/hypervisors/simulator/src/com/cloud/simulator/MockVm.java similarity index 99% rename from agent-simulator/src/com/cloud/simulator/MockVm.java rename to plugins/hypervisors/simulator/src/com/cloud/simulator/MockVm.java index 250ca7bedf4..2e1ba27c71c 100644 --- a/agent-simulator/src/com/cloud/simulator/MockVm.java +++ b/plugins/hypervisors/simulator/src/com/cloud/simulator/MockVm.java @@ -20,21 +20,21 @@ import com.cloud.vm.VirtualMachine.State; // As storage is mapped from storage device, can virtually treat that VM here does public interface MockVm { - - + + public String getName(); - + public State getState(); - + public void setState(State state); - + public void setHostId(long hostId); public long getMemory(); - + public int getCpu(); public String getType(); public int getVncPort(); - + public void setName(String name); public void setMemory(long memory); public void setCpu(int cpu); @@ -42,4 +42,3 @@ public interface MockVm { public void setVncPort(int vncPort); public long getId(); } - diff --git a/agent-simulator/src/com/cloud/simulator/MockVolumeVO.java b/plugins/hypervisors/simulator/src/com/cloud/simulator/MockVolumeVO.java similarity index 96% rename from agent-simulator/src/com/cloud/simulator/MockVolumeVO.java rename to plugins/hypervisors/simulator/src/com/cloud/simulator/MockVolumeVO.java index 94908d7efd4..48a12f8ee93 100644 --- a/agent-simulator/src/com/cloud/simulator/MockVolumeVO.java +++ b/plugins/hypervisors/simulator/src/com/cloud/simulator/MockVolumeVO.java @@ -43,76 +43,76 @@ public class MockVolumeVO { @GeneratedValue(strategy=GenerationType.IDENTITY) @Column(name="id") private long id; - + @Column(name="name") private String name; - + @Column(name="size") private long size; - + @Column(name="path") private String path; - + @Column(name="pool_id") private long poolId; - + @Column(name="type") @Enumerated(value=EnumType.STRING) private MockVolumeType type; - + @Column(name="status") @Enumerated(value=EnumType.STRING) private VMTemplateStorageResourceAssoc.Status status; - + public long getId() { return id; } public String getName() { return this.name; } - + public void setName(String name) { this.name = name; } - + public long getSize() { return this.size; } - + public void setSize(long size) { this.size = size; } - + public String getPath() { return this.path; } - + public void setPath(String path) { this.path = path; } - + public long getPoolId() { return this.poolId; } - + public void setPoolId(long poolId) { this.poolId = poolId; } - + public MockVolumeType getType() { return this.type; } - + public void setType(MockVolumeType type) { this.type = type; } - + public Status getStatus() { return this.status; } - + public void setStatus(Status status) { this.status = status; } - + } diff --git a/agent-simulator/src/com/cloud/simulator/SimulatorGuru.java b/plugins/hypervisors/simulator/src/com/cloud/simulator/SimulatorGuru.java similarity index 98% rename from agent-simulator/src/com/cloud/simulator/SimulatorGuru.java rename to plugins/hypervisors/simulator/src/com/cloud/simulator/SimulatorGuru.java index 20457e4db56..b9c404b66a1 100644 --- a/agent-simulator/src/com/cloud/simulator/SimulatorGuru.java +++ b/plugins/hypervisors/simulator/src/com/cloud/simulator/SimulatorGuru.java @@ -35,7 +35,7 @@ public class SimulatorGuru extends HypervisorGuruBase implements HypervisorGuru protected SimulatorGuru() { super(); } - + @Override public HypervisorType getHypervisorType() { return HypervisorType.Simulator; @@ -44,11 +44,11 @@ public class SimulatorGuru extends HypervisorGuruBase implements HypervisorGuru @Override public VirtualMachineTO implement(VirtualMachineProfile vm) { VirtualMachineTO to = toVirtualMachineTO(vm); - + // Determine the VM's OS description GuestOSVO guestOS = _guestOsDao.findById(vm.getVirtualMachine().getGuestOSId()); to.setOs(guestOS.getDisplayName()); - + return to; } diff --git a/agent-simulator/src/com/cloud/simulator/SimulatorRuntimeException.java b/plugins/hypervisors/simulator/src/com/cloud/simulator/SimulatorRuntimeException.java similarity index 98% rename from agent-simulator/src/com/cloud/simulator/SimulatorRuntimeException.java rename to plugins/hypervisors/simulator/src/com/cloud/simulator/SimulatorRuntimeException.java index ce962a2d296..9891bc82556 100644 --- a/agent-simulator/src/com/cloud/simulator/SimulatorRuntimeException.java +++ b/plugins/hypervisors/simulator/src/com/cloud/simulator/SimulatorRuntimeException.java @@ -26,15 +26,15 @@ import com.cloud.utils.exception.RuntimeCloudException; public class SimulatorRuntimeException extends RuntimeCloudException { private static final long serialVersionUID = SerialVersionUID.CloudRuntimeException; - + public SimulatorRuntimeException(String message) { super(message); } - + public SimulatorRuntimeException(String message, Throwable th) { super(message, th); } - + protected SimulatorRuntimeException() { super(); } diff --git a/agent-simulator/src/com/cloud/simulator/dao/MockConfigurationDao.java b/plugins/hypervisors/simulator/src/com/cloud/simulator/dao/MockConfigurationDao.java similarity index 100% rename from agent-simulator/src/com/cloud/simulator/dao/MockConfigurationDao.java rename to plugins/hypervisors/simulator/src/com/cloud/simulator/dao/MockConfigurationDao.java diff --git a/agent-simulator/src/com/cloud/simulator/dao/MockConfigurationDaoImpl.java b/plugins/hypervisors/simulator/src/com/cloud/simulator/dao/MockConfigurationDaoImpl.java similarity index 88% rename from agent-simulator/src/com/cloud/simulator/dao/MockConfigurationDaoImpl.java rename to plugins/hypervisors/simulator/src/com/cloud/simulator/dao/MockConfigurationDaoImpl.java index a65a4a77c55..bd1b48dfde8 100644 --- a/agent-simulator/src/com/cloud/simulator/dao/MockConfigurationDaoImpl.java +++ b/plugins/hypervisors/simulator/src/com/cloud/simulator/dao/MockConfigurationDaoImpl.java @@ -35,8 +35,8 @@ public class MockConfigurationDaoImpl extends GenericDaoBase _searchByDcIDPodIdClusterIdName; private SearchBuilder _searchByDcIDPodIdClusterIdHostIdName; private SearchBuilder _searchByGlobalName; - - + + public MockConfigurationDaoImpl() { _searchByGlobalName = createSearchBuilder(); _searchByGlobalName.and("dcId", _searchByGlobalName.entity().getDataCenterId(), SearchCriteria.Op.NULL); @@ -45,7 +45,7 @@ public class MockConfigurationDaoImpl extends GenericDaoBase sc = _searchByGlobalName.create(); sc.setParameters("name", name); @@ -113,19 +113,19 @@ public class MockConfigurationDaoImpl extends GenericDaoBase implements MockHostDao { - protected final SearchBuilder GuidSearch; + protected final SearchBuilder GuidSearch; public MockHostDaoImpl() { GuidSearch = createSearchBuilder(); GuidSearch.and("guid", GuidSearch.entity().getGuid(), SearchCriteria.Op.EQ); diff --git a/agent-simulator/src/com/cloud/simulator/dao/MockSecStorageDao.java b/plugins/hypervisors/simulator/src/com/cloud/simulator/dao/MockSecStorageDao.java similarity index 100% rename from agent-simulator/src/com/cloud/simulator/dao/MockSecStorageDao.java rename to plugins/hypervisors/simulator/src/com/cloud/simulator/dao/MockSecStorageDao.java diff --git a/agent-simulator/src/com/cloud/simulator/dao/MockSecStorageDaoImpl.java b/plugins/hypervisors/simulator/src/com/cloud/simulator/dao/MockSecStorageDaoImpl.java similarity index 95% rename from agent-simulator/src/com/cloud/simulator/dao/MockSecStorageDaoImpl.java rename to plugins/hypervisors/simulator/src/com/cloud/simulator/dao/MockSecStorageDaoImpl.java index fd8d1d3a90b..65a375f5843 100644 --- a/agent-simulator/src/com/cloud/simulator/dao/MockSecStorageDaoImpl.java +++ b/plugins/hypervisors/simulator/src/com/cloud/simulator/dao/MockSecStorageDaoImpl.java @@ -25,14 +25,14 @@ import com.cloud.utils.db.SearchCriteria; @Local(value={MockSecStorageDao.class}) public class MockSecStorageDaoImpl extends GenericDaoBase implements MockSecStorageDao { - protected final SearchBuilder urlSearch; + protected final SearchBuilder urlSearch; @Override public MockSecStorageVO findByUrl(String url) { SearchCriteria sc = urlSearch.create(); sc.setParameters("url", url); return findOneBy(sc); } - + public MockSecStorageDaoImpl() { urlSearch = createSearchBuilder(); urlSearch.and("url", urlSearch.entity().getUrl(), SearchCriteria.Op.EQ); diff --git a/agent-simulator/src/com/cloud/simulator/dao/MockSecurityRulesDao.java b/plugins/hypervisors/simulator/src/com/cloud/simulator/dao/MockSecurityRulesDao.java similarity index 100% rename from agent-simulator/src/com/cloud/simulator/dao/MockSecurityRulesDao.java rename to plugins/hypervisors/simulator/src/com/cloud/simulator/dao/MockSecurityRulesDao.java diff --git a/agent-simulator/src/com/cloud/simulator/dao/MockSecurityRulesDaoImpl.java b/plugins/hypervisors/simulator/src/com/cloud/simulator/dao/MockSecurityRulesDaoImpl.java similarity index 96% rename from agent-simulator/src/com/cloud/simulator/dao/MockSecurityRulesDaoImpl.java rename to plugins/hypervisors/simulator/src/com/cloud/simulator/dao/MockSecurityRulesDaoImpl.java index 43a1da6c8fb..8831efef2ec 100644 --- a/agent-simulator/src/com/cloud/simulator/dao/MockSecurityRulesDaoImpl.java +++ b/plugins/hypervisors/simulator/src/com/cloud/simulator/dao/MockSecurityRulesDaoImpl.java @@ -29,7 +29,7 @@ import com.cloud.utils.db.SearchCriteria; @Local(value={MockSecurityRulesDao.class}) public class MockSecurityRulesDaoImpl extends GenericDaoBase implements MockSecurityRulesDao { protected SearchBuilder vmIdSearch; - protected SearchBuilder hostSearch; + protected SearchBuilder hostSearch; @Override public MockSecurityRulesVO findByVmId(Long vmId) { SearchCriteria sc = vmIdSearch.create(); @@ -43,18 +43,18 @@ public class MockSecurityRulesDaoImpl extends GenericDaoBase params) throws ConfigurationException { vmIdSearch = createSearchBuilder(); vmIdSearch.and("vmId", vmIdSearch.entity().getVmId(), SearchCriteria.Op.EQ); vmIdSearch.done(); - + hostSearch = createSearchBuilder(); hostSearch.and("host", hostSearch.entity().getHostId(), SearchCriteria.Op.EQ); hostSearch.done(); - + return true; } - + } diff --git a/agent-simulator/src/com/cloud/simulator/dao/MockStoragePoolDao.java b/plugins/hypervisors/simulator/src/com/cloud/simulator/dao/MockStoragePoolDao.java similarity index 100% rename from agent-simulator/src/com/cloud/simulator/dao/MockStoragePoolDao.java rename to plugins/hypervisors/simulator/src/com/cloud/simulator/dao/MockStoragePoolDao.java diff --git a/agent-simulator/src/com/cloud/simulator/dao/MockStoragePoolDaoImpl.java b/plugins/hypervisors/simulator/src/com/cloud/simulator/dao/MockStoragePoolDaoImpl.java similarity index 99% rename from agent-simulator/src/com/cloud/simulator/dao/MockStoragePoolDaoImpl.java rename to plugins/hypervisors/simulator/src/com/cloud/simulator/dao/MockStoragePoolDaoImpl.java index e35b5372946..3a64d27e30d 100644 --- a/agent-simulator/src/com/cloud/simulator/dao/MockStoragePoolDaoImpl.java +++ b/plugins/hypervisors/simulator/src/com/cloud/simulator/dao/MockStoragePoolDaoImpl.java @@ -34,12 +34,12 @@ public class MockStoragePoolDaoImpl extends GenericDaoBase implements MockVMDao { - protected SearchBuilder GuidSearch; + protected SearchBuilder GuidSearch; protected SearchBuilder vmNameSearch; protected SearchBuilder vmhostSearch; @Inject MockHostDao _mockHostDao; @@ -57,7 +57,7 @@ public class MockVMDaoImpl extends GenericDaoBase implements Moc sc.setParameters("state", VirtualMachine.State.Running); return listBy(sc); } - + @Override public MockVMVO findByVmNameAndHost(String vmName, String hostGuid) { SearchCriteria sc = vmhostSearch.create(); @@ -65,28 +65,28 @@ public class MockVMDaoImpl extends GenericDaoBase implements Moc sc.setParameters("name", vmName); return findOneBy(sc); } - + @Override public boolean configure(String name, Map params) throws ConfigurationException { SearchBuilder host = _mockHostDao.createSearchBuilder(); host.and("guid", host.entity().getGuid(), SearchCriteria.Op.EQ); - + GuidSearch = createSearchBuilder(); GuidSearch.join("host", host, host.entity().getId(), GuidSearch.entity().getHostId(), JoinBuilder.JoinType.INNER); GuidSearch.and("state", GuidSearch.entity().getState(), SearchCriteria.Op.EQ); GuidSearch.done(); - + vmNameSearch = createSearchBuilder(); vmNameSearch.and("name", vmNameSearch.entity().getName(), SearchCriteria.Op.EQ); vmNameSearch.done(); - + SearchBuilder newhost = _mockHostDao.createSearchBuilder(); newhost.and("guid", newhost.entity().getGuid(), SearchCriteria.Op.EQ); vmhostSearch = createSearchBuilder(); vmhostSearch.and("name", vmhostSearch.entity().getName(), SearchCriteria.Op.EQ); vmhostSearch.join("host", newhost, newhost.entity().getId(), vmhostSearch.entity().getHostId(), JoinBuilder.JoinType.INNER); vmhostSearch.done(); - + return true; } } diff --git a/agent-simulator/src/com/cloud/simulator/dao/MockVolumeDao.java b/plugins/hypervisors/simulator/src/com/cloud/simulator/dao/MockVolumeDao.java similarity index 100% rename from agent-simulator/src/com/cloud/simulator/dao/MockVolumeDao.java rename to plugins/hypervisors/simulator/src/com/cloud/simulator/dao/MockVolumeDao.java diff --git a/agent-simulator/src/com/cloud/simulator/dao/MockVolumeDaoImpl.java b/plugins/hypervisors/simulator/src/com/cloud/simulator/dao/MockVolumeDaoImpl.java similarity index 96% rename from agent-simulator/src/com/cloud/simulator/dao/MockVolumeDaoImpl.java rename to plugins/hypervisors/simulator/src/com/cloud/simulator/dao/MockVolumeDaoImpl.java index 87b54f196c1..a3a35179337 100644 --- a/agent-simulator/src/com/cloud/simulator/dao/MockVolumeDaoImpl.java +++ b/plugins/hypervisors/simulator/src/com/cloud/simulator/dao/MockVolumeDaoImpl.java @@ -42,11 +42,11 @@ public class MockVolumeDaoImpl extends GenericDaoBase implem sc.setParameters("type", type); return listBy(sc); } - + @Override public Long findTotalStorageId(long id) { SearchCriteria sc = totalSearch.create(); - + sc.setParameters("poolId", id); return customSearch(sc, null).get(0); } @@ -57,20 +57,20 @@ public class MockVolumeDaoImpl extends GenericDaoBase implem sc.setParameters("path", "%" + path + "%"); return findOneBy(sc); } - + @Override public MockVolumeVO findByNameAndPool(String volumeName, String poolUUID) { SearchCriteria sc = namePoolSearch.create(); sc.setParameters("name", volumeName); sc.setParameters("poolUuid", poolUUID); - return findOneBy(sc); + return findOneBy(sc); } @Override public MockVolumeVO findByName(String volumeName) { SearchCriteria sc = nameSearch.create(); sc.setParameters("name", volumeName); - return findOneBy(sc); + return findOneBy(sc); } public MockVolumeDaoImpl() { @@ -78,24 +78,24 @@ public class MockVolumeDaoImpl extends GenericDaoBase implem idTypeSearch.and("storageId", idTypeSearch.entity().getPoolId(), SearchCriteria.Op.EQ); idTypeSearch.and("type", idTypeSearch.entity().getType(), SearchCriteria.Op.EQ); idTypeSearch.done(); - + pathTypeSearch = createSearchBuilder(); pathTypeSearch.and("path", pathTypeSearch.entity().getPath(), SearchCriteria.Op.LIKE); pathTypeSearch.done(); - + namePoolSearch = createSearchBuilder(); namePoolSearch.and("name", namePoolSearch.entity().getName(), SearchCriteria.Op.EQ); namePoolSearch.and("poolUuid", namePoolSearch.entity().getPoolId(), SearchCriteria.Op.EQ); namePoolSearch.done(); - + nameSearch = createSearchBuilder(); nameSearch.and("name", nameSearch.entity().getName(), SearchCriteria.Op.EQ); nameSearch.done(); - + totalSearch = createSearchBuilder(Long.class); totalSearch.select(null, Func.SUM, totalSearch.entity().getSize()); totalSearch.and("poolId", totalSearch.entity().getPoolId(), SearchCriteria.Op.EQ); totalSearch.done(); - - } + + } } diff --git a/plugins/pom.xml b/plugins/pom.xml index d71bd45aa29..65b5971a0e7 100644 --- a/plugins/pom.xml +++ b/plugins/pom.xml @@ -38,6 +38,7 @@ hypervisors/ovm hypervisors/xen hypervisors/kvm + hypervisors/simulator network-elements/elastic-loadbalancer network-elements/ovs network-elements/nicira-nvp @@ -124,6 +125,17 @@ hypervisors/vmware + + kvm + + + nonoss + + + + hypervisors/simulator + +