You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by ts...@apache.org on 2012/12/22 22:03:04 UTC
[1/8] git commit: Simulator: moving hypervisor simulator into plugin
Updated Branches:
refs/heads/master 0b60dda1e -> d6083ce51
Simulator: moving hypervisor simulator into plugin
Simulator just like any hypervisor should be a plugin.
resurrecting it to aid api refactoring tests. WIP
Signed-off-by: Prasanna Santhanam <ts...@apache.org>
Project: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/commit/d6083ce5
Tree: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/tree/d6083ce5
Diff: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/diff/d6083ce5
Branch: refs/heads/master
Commit: d6083ce51dd53592073efd700186e9ac6a14fb7e
Parents: 0b60dda
Author: Prasanna Santhanam <ts...@apache.org>
Authored: Sat Dec 22 13:01:44 2012 -0800
Committer: Prasanna Santhanam <ts...@apache.org>
Committed: Sat Dec 22 13:02:57 2012 -0800
----------------------------------------------------------------------
.../src/com/cloud/agent/MetricsCollector.java | 107 --
.../src/com/cloud/agent/MockVmMetrics.java | 205 ---
.../src/com/cloud/agent/MultiCaster.java | 152 --
.../src/com/cloud/agent/MultiCasterListener.java | 22 -
.../src/com/cloud/agent/SimulatorCmd.java | 37 -
.../src/com/cloud/agent/SimulatorMigrateVmCmd.java | 83 -
.../com/cloud/agent/manager/MockAgentManager.java | 66 -
.../cloud/agent/manager/MockAgentManagerImpl.java | 468 ------
.../cloud/agent/manager/MockStorageManager.java | 91 -
.../agent/manager/MockStorageManagerImpl.java | 1298 ---------------
.../src/com/cloud/agent/manager/MockVmManager.java | 83 -
.../com/cloud/agent/manager/MockVmManagerImpl.java | 615 -------
.../src/com/cloud/agent/manager/SimulatorInfo.java | 59 -
.../com/cloud/agent/manager/SimulatorManager.java | 66 -
.../cloud/agent/manager/SimulatorManagerImpl.java | 336 ----
.../com/cloud/api/commands/ConfigureSimulator.java | 82 -
.../configuration/SimulatorComponentLibrary.java | 50 -
.../src/com/cloud/resource/AgentResourceBase.java | 284 ----
.../com/cloud/resource/AgentRoutingResource.java | 363 ----
.../com/cloud/resource/AgentStorageResource.java | 117 --
.../com/cloud/resource/SimulatorDiscoverer.java | 336 ----
.../resource/SimulatorSecondaryDiscoverer.java | 151 --
.../server/ManagementServerSimulatorImpl.java | 32 -
.../com/cloud/simulator/MockConfigurationVO.java | 121 --
.../src/com/cloud/simulator/MockHost.java | 62 -
.../src/com/cloud/simulator/MockHostVO.java | 276 ---
.../src/com/cloud/simulator/MockSecStorageVO.java | 76 -
.../com/cloud/simulator/MockSecurityRulesVO.java | 104 --
.../src/com/cloud/simulator/MockStoragePoolVO.java | 102 --
.../src/com/cloud/simulator/MockVMVO.java | 130 --
.../src/com/cloud/simulator/MockVm.java | 45 -
.../src/com/cloud/simulator/MockVolumeVO.java | 118 --
.../src/com/cloud/simulator/SimulatorGuru.java | 59 -
.../cloud/simulator/SimulatorRuntimeException.java | 41 -
.../cloud/simulator/dao/MockConfigurationDao.java | 27 -
.../simulator/dao/MockConfigurationDaoImpl.java | 142 --
.../src/com/cloud/simulator/dao/MockHostDao.java | 27 -
.../com/cloud/simulator/dao/MockHostDaoImpl.java | 55 -
.../com/cloud/simulator/dao/MockSecStorageDao.java | 24 -
.../cloud/simulator/dao/MockSecStorageDaoImpl.java | 42 -
.../cloud/simulator/dao/MockSecurityRulesDao.java | 27 -
.../simulator/dao/MockSecurityRulesDaoImpl.java | 60 -
.../cloud/simulator/dao/MockStoragePoolDao.java | 25 -
.../simulator/dao/MockStoragePoolDaoImpl.java | 57 -
.../src/com/cloud/simulator/dao/MockVMDao.java | 29 -
.../src/com/cloud/simulator/dao/MockVMDaoImpl.java | 92 -
.../src/com/cloud/simulator/dao/MockVolumeDao.java | 30 -
.../com/cloud/simulator/dao/MockVolumeDaoImpl.java | 101 --
plugins/hypervisors/simulator/pom.xml | 45 +
.../src/com/cloud/agent/MetricsCollector.java | 107 ++
.../src/com/cloud/agent/MockVmMetrics.java | 204 +++
.../simulator/src/com/cloud/agent/MultiCaster.java | 152 ++
.../src/com/cloud/agent/MultiCasterListener.java | 22 +
.../src/com/cloud/agent/SimulatorCmd.java | 37 +
.../src/com/cloud/agent/SimulatorMigrateVmCmd.java | 83 +
.../com/cloud/agent/manager/MockAgentManager.java | 66 +
.../cloud/agent/manager/MockAgentManagerImpl.java | 468 ++++++
.../cloud/agent/manager/MockStorageManager.java | 91 +
.../agent/manager/MockStorageManagerImpl.java | 1298 +++++++++++++++
.../src/com/cloud/agent/manager/MockVmManager.java | 83 +
.../com/cloud/agent/manager/MockVmManagerImpl.java | 615 +++++++
.../src/com/cloud/agent/manager/SimulatorInfo.java | 59 +
.../com/cloud/agent/manager/SimulatorManager.java | 65 +
.../cloud/agent/manager/SimulatorManagerImpl.java | 336 ++++
.../com/cloud/api/commands/ConfigureSimulator.java | 82 +
.../configuration/SimulatorComponentLibrary.java | 50 +
.../src/com/cloud/resource/AgentResourceBase.java | 284 ++++
.../com/cloud/resource/AgentRoutingResource.java | 363 ++++
.../com/cloud/resource/AgentStorageResource.java | 117 ++
.../com/cloud/resource/SimulatorDiscoverer.java | 336 ++++
.../resource/SimulatorSecondaryDiscoverer.java | 151 ++
.../server/ManagementServerSimulatorImpl.java | 32 +
.../com/cloud/simulator/MockConfigurationVO.java | 120 ++
.../src/com/cloud/simulator/MockHost.java | 62 +
.../src/com/cloud/simulator/MockHostVO.java | 276 +++
.../src/com/cloud/simulator/MockSecStorageVO.java | 76 +
.../com/cloud/simulator/MockSecurityRulesVO.java | 104 ++
.../src/com/cloud/simulator/MockStoragePoolVO.java | 102 ++
.../src/com/cloud/simulator/MockVMVO.java | 130 ++
.../simulator/src/com/cloud/simulator/MockVm.java | 44 +
.../src/com/cloud/simulator/MockVolumeVO.java | 118 ++
.../src/com/cloud/simulator/SimulatorGuru.java | 59 +
.../cloud/simulator/SimulatorRuntimeException.java | 41 +
.../cloud/simulator/dao/MockConfigurationDao.java | 27 +
.../simulator/dao/MockConfigurationDaoImpl.java | 142 ++
.../src/com/cloud/simulator/dao/MockHostDao.java | 27 +
.../com/cloud/simulator/dao/MockHostDaoImpl.java | 55 +
.../com/cloud/simulator/dao/MockSecStorageDao.java | 24 +
.../cloud/simulator/dao/MockSecStorageDaoImpl.java | 42 +
.../cloud/simulator/dao/MockSecurityRulesDao.java | 27 +
.../simulator/dao/MockSecurityRulesDaoImpl.java | 60 +
.../cloud/simulator/dao/MockStoragePoolDao.java | 25 +
.../simulator/dao/MockStoragePoolDaoImpl.java | 57 +
.../src/com/cloud/simulator/dao/MockVMDao.java | 29 +
.../src/com/cloud/simulator/dao/MockVMDaoImpl.java | 92 +
.../src/com/cloud/simulator/dao/MockVolumeDao.java | 30 +
.../com/cloud/simulator/dao/MockVolumeDaoImpl.java | 101 ++
plugins/pom.xml | 12 +
98 files changed, 7028 insertions(+), 6975 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/d6083ce5/agent-simulator/src/com/cloud/agent/MetricsCollector.java
----------------------------------------------------------------------
diff --git a/agent-simulator/src/com/cloud/agent/MetricsCollector.java b/agent-simulator/src/com/cloud/agent/MetricsCollector.java
deleted file mode 100644
index 7d86a0c..0000000
--- a/agent-simulator/src/com/cloud/agent/MetricsCollector.java
+++ /dev/null
@@ -1,107 +0,0 @@
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-package com.cloud.agent;
-
-import java.util.HashMap;
-import java.util.HashSet;
-import java.util.Map;
-import java.util.Set;
-import java.util.concurrent.ScheduledFuture;
-import java.util.concurrent.ScheduledThreadPoolExecutor;
-import java.util.concurrent.TimeUnit;
-
-import org.apache.log4j.Logger;
-
-import com.cloud.utils.concurrency.NamedThreadFactory;
-
-public class MetricsCollector {
- private static final Logger s_logger = Logger.getLogger(MetricsCollector.class);
-
- private final Set<String> vmNames = new HashSet<String>();
- private final Set<String> newVMnames = new HashSet<String>();
- private final Map<String, MockVmMetrics> metricsMap = new HashMap<String, MockVmMetrics>();
-
- private final transient ScheduledThreadPoolExecutor executor = new ScheduledThreadPoolExecutor(1, new NamedThreadFactory("Metrics"));
-
- private Set<String> _currentVms;
-
- public MetricsCollector(Set<String> currentVms) {
- _currentVms = currentVms;
- getAllVMNames();
- }
-
- public MetricsCollector() {
-
- }
-
- public synchronized void getAllVMNames() {
- Set<String> 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);
- }
-
- 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)) {
- metricsMap.put(vm, task);
- ScheduledFuture<?> sf = executor.scheduleWithFixedDelay(task, 2, 600, TimeUnit.SECONDS);
- task.setFuture(sf);
- }
- }
- 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);
- }
- }
-
- public synchronized Set<String> getVMNames() {
- return vmNames;
- }
-
- public synchronized Map<String, MockVmMetrics> getMetricsMap() {
- return metricsMap;
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/d6083ce5/agent-simulator/src/com/cloud/agent/MockVmMetrics.java
----------------------------------------------------------------------
diff --git a/agent-simulator/src/com/cloud/agent/MockVmMetrics.java b/agent-simulator/src/com/cloud/agent/MockVmMetrics.java
deleted file mode 100644
index f106f36..0000000
--- a/agent-simulator/src/com/cloud/agent/MockVmMetrics.java
+++ /dev/null
@@ -1,205 +0,0 @@
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-package com.cloud.agent;
-
-import java.util.HashMap;
-import java.util.Map;
-import java.util.Random;
-import java.util.concurrent.ScheduledFuture;
-
-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<String, Double> netTxKBps = new HashMap<String, Double>();
-
- //the last calculated traffic speed (receive) per interface
- private Map<String, Double> netRxKBps = new HashMap<String, Double>();
-
- //the last calculated disk write speed per disk (Bytes Per Second)
- private Map<String, Double> diskWriteKBytesPerSec = new HashMap<String, Double>();
-
- //the last calculated disk read speed per disk (Bytes Per Second)
- private Map<String, Double> diskReadKBytesPerSec = new HashMap<String, Double>();
-
- //Total Bytes Transmitted on network interfaces
- private Map<String, Long> netTxTotalBytes = new HashMap<String, Long>();
-
- //Total Bytes Received on network interfaces
- private Map<String, Long> netRxTotalBytes = new HashMap<String, Long>();
-
- //Total Bytes read per disk
- private Map<String, Long> diskReadTotalBytes = new HashMap<String, Long>();
-
- //Total Bytes written per disk
- private Map<String, Long> diskWriteTotalBytes = new HashMap<String, Long>();
-
- //CPU time in seconds
- private Double cpuSeconds = new Double(0.0);
-
- //CPU percentage
- private Float cpuPercent = new Float(0.0);
-
- private Map<String, String> diskMap = new HashMap<String, String>();
-
- private Map<String, String> vifMap = new HashMap<String, String>();
-
- private Map<String, Long> diskStatTimestamp = new HashMap<String, Long>();
- private Map<String, Long> netStatTimestamp = new HashMap<String, Long>();
-
- private long cpuStatTimestamp = 0L;
-
- private ScheduledFuture<?> future;
- private boolean stopped = false;
- private Random randSeed = new Random();
-
- public MockVmMetrics(String vmName) {
- this.vmName = vmName;
- 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);
- }
-
- private int getIncrementor() {
- return randSeed.nextInt(100);
- }
-
- @Override
- public void run() {
- if(s_logger.isDebugEnabled()) {
- s_logger.debug("Generating MockVM metrics");
- }
- for (Map.Entry<String, Long> entry : netRxTotalBytes.entrySet()) {
- entry.setValue(entry.getValue() + getIncrementor());
- }
-
- for (Map.Entry<String, Long> entry : netTxTotalBytes.entrySet()) {
- entry.setValue(entry.getValue() + getIncrementor());
- }
- }
-
- public String getVmName() {
- return vmName;
- }
-
- public Map<String, Double> getNetTxKBps() {
- return netTxKBps;
- }
-
- public Map<String, Double> getNetRxKBps() {
- return netRxKBps;
- }
-
- public Map<String, Double> getDiskWriteBytesPerSec() {
- return diskWriteKBytesPerSec;
- }
-
- public Map<String, Double> getDiskReadBytesPerSec() {
- return diskReadKBytesPerSec;
- }
-
- public Map<String, Long> getNetTxTotalBytes() {
- return netTxTotalBytes;
- }
-
- public Map<String, Long> getNetRxTotalBytes() {
- return netRxTotalBytes;
- }
-
- public Map<String, Long> getDiskReadTotalBytes() {
- return diskReadTotalBytes;
- }
-
- public Map<String, Long> getDiskWriteTotalBytes() {
- return diskWriteTotalBytes;
- }
-
- public Double getNetTxKBps(String intf) {
- return netTxKBps.get(intf);
- }
-
- public Double getNetRxKBps(String intf) {
- return netRxKBps.get(intf);
- }
-
- public Double getDiskWriteKBytesPerSec(String disk) {
- return diskWriteKBytesPerSec.get(disk);
- }
-
- public Double getDiskReadKBytesPerSec(String disk) {
- return diskReadKBytesPerSec.get(disk);
- }
-
- public Long getNetTxTotalBytes(String intf) {
- return netTxTotalBytes.get(intf);
- }
-
- public Long getNetRxTotalBytes(String intf) {
- return netRxTotalBytes.get(intf);
- }
-
- public Long getDiskReadTotalBytes(String disk) {
- return diskReadTotalBytes.get(disk);
- }
-
- public Long getDiskWriteTotalBytes(String disk) {
- return diskWriteTotalBytes.get(disk);
- }
-
- public Double getCpuSeconds() {
- return cpuSeconds;
- }
-
- public Map<String, String> getDiskMap() {
- return diskMap;
- }
-
- public Float getCpuPercent() {
- return cpuPercent;
- }
-
- public void setFuture(ScheduledFuture<?> sf) {
- this.future = sf;
- }
-
- public ScheduledFuture<?> getFuture() {
- return future;
- }
-
- public void stop() {
- this.stopped = true;
- }
-}
-
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/d6083ce5/agent-simulator/src/com/cloud/agent/MultiCaster.java
----------------------------------------------------------------------
diff --git a/agent-simulator/src/com/cloud/agent/MultiCaster.java b/agent-simulator/src/com/cloud/agent/MultiCaster.java
deleted file mode 100644
index 9c98ef6..0000000
--- a/agent-simulator/src/com/cloud/agent/MultiCaster.java
+++ /dev/null
@@ -1,152 +0,0 @@
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-package com.cloud.agent;
-
-import java.io.IOException;
-import java.net.DatagramPacket;
-import java.net.DatagramSocket;
-import java.net.InetAddress;
-import java.net.MulticastSocket;
-import java.net.NetworkInterface;
-import java.net.SocketException;
-import java.util.ArrayList;
-import java.util.List;
-
-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<MultiCasterListener> listeners;
- private DatagramSocket socket;
- private byte[] recvBuffer;
-
- private Thread driver;
- private volatile boolean stopRequested = false;
-
- public MultiCaster() {
- listeners = new ArrayList<MultiCasterListener>();
- 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,
- 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,
- len, toAddress, nToPort);
-
- socket.send(packet);
- }
-
- public void start(String strOutboundAddress,
- String strClusterAddress, int nPort) throws SocketException {
- assert(socket == null);
-
- InetAddress addr = null;
- try {
- addr = InetAddress.getByName(strClusterAddress);
- } 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);
- }
- } catch(IOException e) {
- s_logger.error("Unexpected exception " , e);
- }
- } else {
- 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 {
- driver.join();
- } catch(InterruptedException e) {
- }
- 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());
- }
- } catch(IOException e) {
- } catch(Throwable e) {
- s_logger.error("Unhandled exception : ", e);
- }
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/d6083ce5/agent-simulator/src/com/cloud/agent/MultiCasterListener.java
----------------------------------------------------------------------
diff --git a/agent-simulator/src/com/cloud/agent/MultiCasterListener.java b/agent-simulator/src/com/cloud/agent/MultiCasterListener.java
deleted file mode 100644
index fe4761b..0000000
--- a/agent-simulator/src/com/cloud/agent/MultiCasterListener.java
+++ /dev/null
@@ -1,22 +0,0 @@
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-package com.cloud.agent;
-import java.net.InetAddress;
-
-public interface MultiCasterListener {
- public void onMultiCasting(byte[] data, int off, int len, InetAddress addrFrom);
-}
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/d6083ce5/agent-simulator/src/com/cloud/agent/SimulatorCmd.java
----------------------------------------------------------------------
diff --git a/agent-simulator/src/com/cloud/agent/SimulatorCmd.java b/agent-simulator/src/com/cloud/agent/SimulatorCmd.java
deleted file mode 100644
index 342bfd2..0000000
--- a/agent-simulator/src/com/cloud/agent/SimulatorCmd.java
+++ /dev/null
@@ -1,37 +0,0 @@
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-package com.cloud.agent;
-
-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;
- }
-
- public String getTestCase() {
- return testCase;
- }
-
- public void setTestCase(String testCase) {
- this.testCase = testCase;
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/d6083ce5/agent-simulator/src/com/cloud/agent/SimulatorMigrateVmCmd.java
----------------------------------------------------------------------
diff --git a/agent-simulator/src/com/cloud/agent/SimulatorMigrateVmCmd.java b/agent-simulator/src/com/cloud/agent/SimulatorMigrateVmCmd.java
deleted file mode 100644
index f86b16e..0000000
--- a/agent-simulator/src/com/cloud/agent/SimulatorMigrateVmCmd.java
+++ /dev/null
@@ -1,83 +0,0 @@
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-package com.cloud.agent;
-
-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);
- }
-
- public String getDestIp() {
- return destIp;
- }
-
- public void setDestIp(String destIp) {
- this.destIp = destIp;
- }
-
- public String getVmName() {
- return vmName;
- }
-
- public void setVmName(String vmName) {
- this.vmName = vmName;
- }
-
- public long getRamSize() {
- return ramSize;
- }
-
- public void setRamSize(long ramSize) {
- this.ramSize = ramSize;
- }
-
- public int getCpuCount() {
- return cpuCount;
- }
-
- public void setCpuCount(int cpuCount) {
- this.cpuCount = cpuCount;
- }
-
- public int getUtilization() {
- return utilization;
- }
-
- 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();
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/d6083ce5/agent-simulator/src/com/cloud/agent/manager/MockAgentManager.java
----------------------------------------------------------------------
diff --git a/agent-simulator/src/com/cloud/agent/manager/MockAgentManager.java b/agent-simulator/src/com/cloud/agent/manager/MockAgentManager.java
deleted file mode 100644
index 7db5b20..0000000
--- a/agent-simulator/src/com/cloud/agent/manager/MockAgentManager.java
+++ /dev/null
@@ -1,66 +0,0 @@
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-package com.cloud.agent.manager;
-
-import java.util.Map;
-
-import javax.naming.ConfigurationException;
-
-import com.cloud.agent.api.Answer;
-import com.cloud.agent.api.CheckHealthCommand;
-import com.cloud.agent.api.CheckNetworkCommand;
-import com.cloud.agent.api.GetHostStatsAnswer;
-import com.cloud.agent.api.GetHostStatsCommand;
-import com.cloud.agent.api.MaintainCommand;
-import com.cloud.agent.api.PingTestCommand;
-import com.cloud.agent.api.PrepareForMigrationCommand;
-import com.cloud.resource.AgentResourceBase;
-import com.cloud.simulator.MockHost;
-import com.cloud.utils.component.Manager;
-
-public interface MockAgentManager extends Manager {
- public static final long DEFAULT_HOST_MEM_SIZE = 8 * 1024 * 1024 * 1024L; // 8G,
- // unit
- // of
- // Mbytes
- public static final int DEFAULT_HOST_CPU_CORES = 4; // 2 dual core CPUs (2 x
- // 2)
- public static final int DEFAULT_HOST_SPEED_MHZ = 8000; // 1 GHz CPUs
-
- boolean configure(String name, Map<String, Object> params) throws ConfigurationException;
-
- Map<AgentResourceBase, Map<String, String>> createServerResources(Map<String, Object> params);
-
- boolean handleSystemVMStart(long vmId, String privateIpAddress, String privateMacAddress, String privateNetMask,
- long dcId, long podId, String name, String vmType, String url);
-
- boolean handleSystemVMStop(long vmId);
-
- GetHostStatsAnswer getHostStatistic(GetHostStatsCommand cmd);
-
- Answer checkHealth(CheckHealthCommand cmd);
-
- Answer pingTest(PingTestCommand cmd);
-
- Answer prepareForMigrate(PrepareForMigrationCommand cmd);
-
- MockHost getHost(String guid);
-
- Answer maintain(MaintainCommand cmd);
-
- Answer checkNetworkCommand(CheckNetworkCommand cmd);
-}
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/d6083ce5/agent-simulator/src/com/cloud/agent/manager/MockAgentManagerImpl.java
----------------------------------------------------------------------
diff --git a/agent-simulator/src/com/cloud/agent/manager/MockAgentManagerImpl.java b/agent-simulator/src/com/cloud/agent/manager/MockAgentManagerImpl.java
deleted file mode 100755
index cb99297..0000000
--- a/agent-simulator/src/com/cloud/agent/manager/MockAgentManagerImpl.java
+++ /dev/null
@@ -1,468 +0,0 @@
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-package com.cloud.agent.manager;
-
-import java.security.NoSuchAlgorithmException;
-import java.security.SecureRandom;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-import java.util.UUID;
-import java.util.concurrent.ConcurrentHashMap;
-import java.util.concurrent.LinkedBlockingQueue;
-import java.util.concurrent.ThreadPoolExecutor;
-import java.util.concurrent.TimeUnit;
-import java.util.regex.PatternSyntaxException;
-
-import javax.ejb.Local;
-import javax.naming.ConfigurationException;
-
-import org.apache.log4j.Logger;
-
-import com.cloud.agent.AgentManager;
-import com.cloud.agent.api.Answer;
-import com.cloud.agent.api.CheckHealthCommand;
-import com.cloud.agent.api.CheckNetworkAnswer;
-import com.cloud.agent.api.CheckNetworkCommand;
-import com.cloud.agent.api.GetHostStatsAnswer;
-import com.cloud.agent.api.GetHostStatsCommand;
-import com.cloud.agent.api.HostStatsEntry;
-import com.cloud.agent.api.MaintainAnswer;
-import com.cloud.agent.api.PingTestCommand;
-import com.cloud.agent.api.PrepareForMigrationAnswer;
-import com.cloud.agent.api.PrepareForMigrationCommand;
-import com.cloud.agent.api.to.VirtualMachineTO;
-import com.cloud.dc.dao.HostPodDao;
-import com.cloud.host.Host;
-import com.cloud.resource.AgentResourceBase;
-import com.cloud.resource.AgentRoutingResource;
-import com.cloud.resource.AgentStorageResource;
-import com.cloud.resource.ResourceManager;
-import com.cloud.simulator.MockHost;
-import com.cloud.simulator.MockHostVO;
-import com.cloud.simulator.MockVMVO;
-import com.cloud.simulator.dao.MockHostDao;
-import com.cloud.simulator.dao.MockVMDao;
-import com.cloud.utils.Pair;
-import com.cloud.utils.component.Inject;
-import com.cloud.utils.concurrency.NamedThreadFactory;
-import com.cloud.utils.db.DB;
-import com.cloud.utils.db.Transaction;
-import com.cloud.utils.exception.CloudRuntimeException;
-import com.cloud.utils.net.NetUtils;
-
-@Local(value = { MockAgentManager.class })
-public class MockAgentManagerImpl implements MockAgentManager {
- private static final Logger s_logger = Logger.getLogger(MockAgentManagerImpl.class);
- @Inject
- HostPodDao _podDao = null;
- @Inject
- MockHostDao _mockHostDao = null;
- @Inject
- MockVMDao _mockVmDao = null;
- @Inject
- SimulatorManager _simulatorMgr = null;
- @Inject
- AgentManager _agentMgr = null;
- @Inject
- MockStorageManager _storageMgr = null;
- @Inject
- ResourceManager _resourceMgr;
- private SecureRandom random;
- private Map<String, AgentResourceBase> _resources = new ConcurrentHashMap<String, AgentResourceBase>();
- private ThreadPoolExecutor _executor;
-
- private Pair<String, Long> getPodCidr(long podId, long dcId) {
- try {
-
- HashMap<Long, List<Object>> podMap = _podDao.getCurrentPodCidrSubnets(dcId, 0);
- List<Object> cidrPair = podMap.get(podId);
- String cidrAddress = (String) cidrPair.get(0);
- Long cidrSize = (Long) cidrPair.get(1);
- return new Pair<String, Long>(cidrAddress, cidrSize);
- } catch (PatternSyntaxException e) {
- s_logger.error("Exception while splitting pod cidr");
- return null;
- } catch (IndexOutOfBoundsException e) {
- s_logger.error("Invalid pod cidr. Please check");
- return null;
- }
- }
-
- private String getIpAddress(long instanceId, long dcId, long podId) {
- Pair<String, Long> cidr = this.getPodCidr(podId, dcId);
- return NetUtils.long2Ip(NetUtils.ip2Long(cidr.first()) + instanceId);
- }
-
- private String getMacAddress(long dcId, long podId, long clusterId, int instanceId) {
- return NetUtils.long2Mac((dcId << 40 + podId << 32 + clusterId << 24 + instanceId));
- }
-
- public synchronized int getNextAgentId(long cidrSize) {
- return random.nextInt((int) cidrSize);
- }
-
- @Override
- @DB
- public Map<AgentResourceBase, Map<String, String>> createServerResources(Map<String, Object> params) {
-
- Map<String, String> args = new HashMap<String, String>();
- Map<AgentResourceBase, Map<String, String>> newResources = new HashMap<AgentResourceBase, Map<String, String>>();
- AgentResourceBase agentResource;
- long cpuCore = Long.parseLong((String) params.get("cpucore"));
- long cpuSpeed = Long.parseLong((String) params.get("cpuspeed"));
- long memory = Long.parseLong((String) params.get("memory"));
- long localStorageSize = Long.parseLong((String) params.get("localstorage"));
- synchronized (this) {
- long dataCenterId = Long.parseLong((String) params.get("zone"));
- long podId = Long.parseLong((String) params.get("pod"));
- long clusterId = Long.parseLong((String) params.get("cluster"));
- long cidrSize = getPodCidr(podId, dataCenterId).second();
-
- int agentId = getNextAgentId(cidrSize);
- String ipAddress = getIpAddress(agentId, dataCenterId, podId);
- String macAddress = getMacAddress(dataCenterId, podId, clusterId, agentId);
- MockHostVO mockHost = new MockHostVO();
- mockHost.setDataCenterId(dataCenterId);
- mockHost.setPodId(podId);
- mockHost.setClusterId(clusterId);
- mockHost.setCapabilities("hvm");
- mockHost.setCpuCount(cpuCore);
- mockHost.setCpuSpeed(cpuSpeed);
- mockHost.setMemorySize(memory);
- String guid = UUID.randomUUID().toString();
- mockHost.setGuid(guid);
- mockHost.setName("SimulatedAgent." + guid);
- mockHost.setPrivateIpAddress(ipAddress);
- mockHost.setPublicIpAddress(ipAddress);
- mockHost.setStorageIpAddress(ipAddress);
- mockHost.setPrivateMacAddress(macAddress);
- mockHost.setPublicMacAddress(macAddress);
- mockHost.setStorageMacAddress(macAddress);
- mockHost.setVersion(this.getClass().getPackage().getImplementationVersion());
- mockHost.setResource("com.cloud.agent.AgentRoutingResource");
-
- Transaction txn = Transaction.open(Transaction.SIMULATOR_DB);
- try {
- txn.start();
- mockHost = _mockHostDao.persist(mockHost);
- txn.commit();
- } catch (Exception ex) {
- txn.rollback();
- s_logger.error("Error while configuring mock agent " + ex.getMessage());
- throw new CloudRuntimeException("Error configuring agent", ex);
- } finally {
- txn.close();
- txn = Transaction.open(Transaction.CLOUD_DB);
- txn.close();
- }
-
- _storageMgr.getLocalStorage(guid, localStorageSize);
-
- agentResource = new AgentRoutingResource();
- if (agentResource != null) {
- try {
- params.put("guid", mockHost.getGuid());
- agentResource.start();
- agentResource.configure(mockHost.getName(), params);
-
- newResources.put(agentResource, args);
- } catch (ConfigurationException e) {
- s_logger.error("error while configuring server resource" + e.getMessage());
- }
- }
- }
- return newResources;
- }
-
- @Override
- public boolean configure(String name, Map<String, Object> params) throws ConfigurationException {
- try {
- random = SecureRandom.getInstance("SHA1PRNG");
- _executor = new ThreadPoolExecutor(1, 5, 1, TimeUnit.DAYS, new LinkedBlockingQueue<Runnable>(),
- new NamedThreadFactory("Simulator-Agent-Mgr"));
- // ComponentLocator locator = ComponentLocator.getCurrentLocator();
- // _simulatorMgr = (SimulatorManager)
- // locator.getComponent(SimulatorManager.Name);
- } catch (NoSuchAlgorithmException e) {
- s_logger.debug("Failed to initialize random:" + e.toString());
- return false;
- }
- return true;
- }
-
- @Override
- public boolean handleSystemVMStart(long vmId, String privateIpAddress, String privateMacAddress,
- String privateNetMask, long dcId, long podId, String name, String vmType, String url) {
- _executor.execute(new SystemVMHandler(vmId, privateIpAddress, privateMacAddress, privateNetMask, dcId, podId,
- name, vmType, _simulatorMgr, url));
- return true;
- }
-
- @Override
- public boolean handleSystemVMStop(long vmId) {
- _executor.execute(new SystemVMHandler(vmId));
- return true;
- }
-
- private class SystemVMHandler implements Runnable {
- private long vmId;
- private String privateIpAddress;
- private String privateMacAddress;
- private String privateNetMask;
- private long dcId;
- private long podId;
- private String guid;
- private String name;
- private String vmType;
- private SimulatorManager mgr;
- private String mode;
- private String url;
-
- public SystemVMHandler(long vmId, String privateIpAddress, String privateMacAddress, String privateNetMask,
- long dcId, long podId, String name, String vmType, SimulatorManager mgr, String url) {
- this.vmId = vmId;
- this.privateIpAddress = privateIpAddress;
- this.privateMacAddress = privateMacAddress;
- this.privateNetMask = privateNetMask;
- this.dcId = dcId;
- this.guid = "SystemVM-" + UUID.randomUUID().toString();
- this.name = name;
- this.vmType = vmType;
- this.mgr = mgr;
- this.mode = "Start";
- this.url = url;
- this.podId = podId;
- }
-
- public SystemVMHandler(long vmId) {
- this.vmId = vmId;
- this.mode = "Stop";
- }
-
- @Override
- @DB
- public void run() {
-
- Transaction txn = Transaction.open(Transaction.SIMULATOR_DB);
- try {
- if (this.mode.equalsIgnoreCase("Stop")) {
- txn.start();
- MockHost host = _mockHostDao.findByVmId(this.vmId);
- if (host != null) {
- String guid = host.getGuid();
- if (guid != null) {
- AgentResourceBase res = _resources.get(guid);
- if (res != null) {
- res.stop();
- _resources.remove(guid);
- }
- }
- }
- txn.commit();
- return;
- }
- } catch (Exception ex) {
- txn.rollback();
- throw new CloudRuntimeException("Unable to get host " + guid + " due to " + ex.getMessage(), ex);
- } finally {
- txn.close();
- txn = Transaction.open(Transaction.CLOUD_DB);
- txn.close();
- }
-
- String resource = null;
- if (vmType.equalsIgnoreCase("secstorage")) {
- resource = "com.cloud.agent.AgentStorageResource";
- }
- MockHostVO mockHost = new MockHostVO();
- mockHost.setDataCenterId(this.dcId);
- mockHost.setPodId(this.podId);
- mockHost.setCpuCount(DEFAULT_HOST_CPU_CORES);
- mockHost.setCpuSpeed(DEFAULT_HOST_SPEED_MHZ);
- mockHost.setMemorySize(DEFAULT_HOST_MEM_SIZE);
- mockHost.setGuid(this.guid);
- mockHost.setName(name);
- mockHost.setPrivateIpAddress(this.privateIpAddress);
- mockHost.setPublicIpAddress(this.privateIpAddress);
- mockHost.setStorageIpAddress(this.privateIpAddress);
- mockHost.setPrivateMacAddress(this.privateMacAddress);
- mockHost.setPublicMacAddress(this.privateMacAddress);
- mockHost.setStorageMacAddress(this.privateMacAddress);
- mockHost.setVersion(this.getClass().getPackage().getImplementationVersion());
- mockHost.setResource(resource);
- mockHost.setVmId(vmId);
- Transaction simtxn = Transaction.open(Transaction.SIMULATOR_DB);
- try {
- simtxn.start();
- mockHost = _mockHostDao.persist(mockHost);
- simtxn.commit();
- } catch (Exception ex) {
- simtxn.rollback();
- throw new CloudRuntimeException("Unable to persist host " + mockHost.getGuid() + " due to "
- + ex.getMessage(), ex);
- } finally {
- simtxn.close();
- simtxn = Transaction.open(Transaction.CLOUD_DB);
- simtxn.close();
- }
-
- if (vmType.equalsIgnoreCase("secstorage")) {
- AgentStorageResource storageResource = new AgentStorageResource();
- try {
- Map<String, Object> params = new HashMap<String, Object>();
- Map<String, String> details = new HashMap<String, String>();
- params.put("guid", this.guid);
- details.put("guid", this.guid);
- storageResource.configure("secondaryStorage", params);
- storageResource.start();
- // on the simulator the ssvm is as good as a direct
- // agent
- _resourceMgr.addHost(mockHost.getDataCenterId(), storageResource, Host.Type.SecondaryStorageVM,
- details);
- _resources.put(this.guid, storageResource);
- } catch (ConfigurationException e) {
- s_logger.debug("Failed to load secondary storage resource: " + e.toString());
- return;
- }
- }
- }
- }
-
- @Override
- public MockHost getHost(String guid) {
- Transaction txn = Transaction.open(Transaction.SIMULATOR_DB);
- try {
- txn.start();
- MockHost _host = _mockHostDao.findByGuid(guid);
- txn.commit();
- if (_host != null) {
- return _host;
- } else {
- s_logger.error("Host with guid " + guid + " was not found");
- return null;
- }
- } catch (Exception ex) {
- txn.rollback();
- throw new CloudRuntimeException("Unable to get host " + guid + " due to " + ex.getMessage(), ex);
- } finally {
- txn.close();
- txn = Transaction.open(Transaction.CLOUD_DB);
- txn.close();
- }
- }
-
- @Override
- public GetHostStatsAnswer getHostStatistic(GetHostStatsCommand cmd) {
- String hostGuid = cmd.getHostGuid();
- MockHost host = null;
- Transaction txn = Transaction.open(Transaction.SIMULATOR_DB);
- try {
- txn.start();
- host = _mockHostDao.findByGuid(hostGuid);
- txn.commit();
- if (host == null) {
- return null;
- }
- } catch (Exception ex) {
- txn.rollback();
- throw new CloudRuntimeException("Unable to get host " + hostGuid + " due to " + ex.getMessage(), ex);
- } finally {
- txn.close();
- txn = Transaction.open(Transaction.CLOUD_DB);
- txn.close();
- }
-
- Transaction vmtxn = Transaction.open(Transaction.SIMULATOR_DB);
- try {
- vmtxn.start();
- List<MockVMVO> vms = _mockVmDao.findByHostId(host.getId());
- vmtxn.commit();
- double usedMem = 0.0;
- double usedCpu = 0.0;
- for (MockVMVO vm : vms) {
- usedMem += vm.getMemory();
- usedCpu += vm.getCpu();
- }
-
- HostStatsEntry hostStats = new HostStatsEntry();
- hostStats.setTotalMemoryKBs(host.getMemorySize());
- hostStats.setFreeMemoryKBs(host.getMemorySize() - usedMem);
- hostStats.setNetworkReadKBs(32768);
- hostStats.setNetworkWriteKBs(16384);
- hostStats.setCpuUtilization(usedCpu / (host.getCpuCount() * host.getCpuSpeed()));
- hostStats.setEntityType("simulator-host");
- hostStats.setHostId(cmd.getHostId());
- return new GetHostStatsAnswer(cmd, hostStats);
- } catch (Exception ex) {
- vmtxn.rollback();
- throw new CloudRuntimeException("Unable to get Vms on host " + host.getGuid() + " due to "
- + ex.getMessage(), ex);
- } finally {
- vmtxn.close();
- vmtxn = Transaction.open(Transaction.CLOUD_DB);
- vmtxn.close();
- }
- }
-
- @Override
- public Answer checkHealth(CheckHealthCommand cmd) {
- return new Answer(cmd);
- }
-
- @Override
- public Answer pingTest(PingTestCommand cmd) {
- return new Answer(cmd);
- }
-
- @Override
- public PrepareForMigrationAnswer prepareForMigrate(PrepareForMigrationCommand cmd) {
- VirtualMachineTO vm = cmd.getVirtualMachine();
- if (s_logger.isDebugEnabled()) {
- s_logger.debug("Preparing host for migrating " + vm);
- }
- return new PrepareForMigrationAnswer(cmd);
- }
-
- @Override
- public boolean start() {
- return true;
- }
-
- @Override
- public boolean stop() {
- return true;
- }
-
- @Override
- public String getName() {
- return this.getClass().getSimpleName();
- }
-
- @Override
- public MaintainAnswer maintain(com.cloud.agent.api.MaintainCommand cmd) {
- return new MaintainAnswer(cmd);
- }
-
- @Override
- public Answer checkNetworkCommand(CheckNetworkCommand cmd) {
- if (s_logger.isDebugEnabled()) {
- s_logger.debug("Checking if network name setup is done on the resource");
- }
- return new CheckNetworkAnswer(cmd, true, "Network Setup check by names is done");
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/d6083ce5/agent-simulator/src/com/cloud/agent/manager/MockStorageManager.java
----------------------------------------------------------------------
diff --git a/agent-simulator/src/com/cloud/agent/manager/MockStorageManager.java b/agent-simulator/src/com/cloud/agent/manager/MockStorageManager.java
deleted file mode 100644
index 3b7a286..0000000
--- a/agent-simulator/src/com/cloud/agent/manager/MockStorageManager.java
+++ /dev/null
@@ -1,91 +0,0 @@
-// Licensed to the Apache Software Foundation (ASF) under one
-// or more contributor license agreements. See the NOTICE file
-// distributed with this work for additional information
-// regarding copyright ownership. The ASF licenses this file
-// to you under the Apache License, Version 2.0 (the
-// "License"); you may not use this file except in compliance
-// with the License. You may obtain a copy of the License at
-//
-// http://www.apache.org/licenses/LICENSE-2.0
-//
-// Unless required by applicable law or agreed to in writing,
-// software distributed under the License is distributed on an
-// "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
-// KIND, either express or implied. See the License for the
-// specific language governing permissions and limitations
-// under the License.
-package com.cloud.agent.manager;
-
-import com.cloud.agent.api.Answer;
-import com.cloud.agent.api.AttachIsoCommand;
-import com.cloud.agent.api.AttachVolumeAnswer;
-import com.cloud.agent.api.AttachVolumeCommand;
-import com.cloud.agent.api.BackupSnapshotCommand;
-import com.cloud.agent.api.ComputeChecksumCommand;
-import com.cloud.agent.api.CreatePrivateTemplateFromSnapshotCommand;
-import com.cloud.agent.api.CreatePrivateTemplateFromVolumeCommand;
-import com.cloud.agent.api.CreateStoragePoolCommand;
-import com.cloud.agent.api.CreateVolumeFromSnapshotCommand;
-import com.cloud.agent.api.DeleteSnapshotBackupCommand;
-import com.cloud.agent.api.DeleteStoragePoolCommand;
-import com.cloud.agent.api.GetStorageStatsAnswer;
-import com.cloud.agent.api.GetStorageStatsCommand;
-import com.cloud.agent.api.ManageSnapshotCommand;
-import com.cloud.agent.api.ModifyStoragePoolCommand;
-import com.cloud.agent.api.SecStorageSetupCommand;
-import com.cloud.agent.api.SecStorageVMSetupCommand;
-import com.cloud.agent.api.StoragePoolInfo;
-import com.cloud.agent.api.storage.CopyVolumeAnswer;
-import com.cloud.agent.api.storage.CopyVolumeCommand;
-import com.cloud.agent.api.storage.CreateAnswer;
-import com.cloud.agent.api.storage.CreateCommand;
-import com.cloud.agent.api.storage.DeleteTemplateCommand;
-import com.cloud.agent.api.storage.DestroyCommand;
-import com.cloud.agent.api.storage.DownloadCommand;
-import com.cloud.agent.api.storage.DownloadProgressCommand;
-import com.cloud.agent.api.storage.ListTemplateCommand;
-import com.cloud.agent.api.storage.PrimaryStorageDownloadAnswer;
-import com.cloud.agent.api.storage.PrimaryStorageDownloadCommand;
-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);
- public Answer Download(DownloadCommand cmd);
- public Answer DownloadProcess(DownloadProgressCommand cmd);
- public GetStorageStatsAnswer GetStorageStats(GetStorageStatsCommand cmd);
- public Answer ManageSnapshot(ManageSnapshotCommand cmd);
- public Answer BackupSnapshot(BackupSnapshotCommand cmd, SimulatorInfo info);
- public Answer DeleteSnapshotBackup(DeleteSnapshotBackupCommand cmd);
- 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);
-
- public Answer CreatePrivateTemplateFromSnapshot(CreatePrivateTemplateFromSnapshotCommand cmd);
-
- public Answer ComputeChecksum(ComputeChecksumCommand cmd);
-
- public Answer CreatePrivateTemplateFromVolume(CreatePrivateTemplateFromVolumeCommand cmd);
-
- StoragePoolInfo getLocalStorage(String hostGuid, Long storageSize);
-
- CopyVolumeAnswer CopyVolume(CopyVolumeCommand cmd);
-}