Return-Path: X-Original-To: apmail-incubator-cloudstack-commits-archive@minotaur.apache.org Delivered-To: apmail-incubator-cloudstack-commits-archive@minotaur.apache.org Received: from mail.apache.org (hermes.apache.org [140.211.11.3]) by minotaur.apache.org (Postfix) with SMTP id 65564D167 for ; Thu, 6 Sep 2012 21:25:55 +0000 (UTC) Received: (qmail 16756 invoked by uid 500); 6 Sep 2012 21:25:53 -0000 Delivered-To: apmail-incubator-cloudstack-commits-archive@incubator.apache.org Received: (qmail 16647 invoked by uid 500); 6 Sep 2012 21:25:52 -0000 Mailing-List: contact cloudstack-commits-help@incubator.apache.org; run by ezmlm Precedence: bulk List-Help: List-Unsubscribe: List-Post: List-Id: Reply-To: cloudstack-dev@incubator.apache.org Delivered-To: mailing list cloudstack-commits@incubator.apache.org Received: (qmail 16301 invoked by uid 99); 6 Sep 2012 21:25:52 -0000 Received: from tyr.zones.apache.org (HELO tyr.zones.apache.org) (140.211.11.114) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 06 Sep 2012 21:25:52 +0000 Received: by tyr.zones.apache.org (Postfix, from userid 65534) id 310EE1BC59; Thu, 6 Sep 2012 21:25:52 +0000 (UTC) Content-Type: text/plain; charset="us-ascii" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit From: edison@apache.org To: cloudstack-commits@incubator.apache.org X-Mailer: ASF-Git Admin Mailer Subject: [12/15] git commit: first OSS build Message-Id: <20120906212552.310EE1BC59@tyr.zones.apache.org> Date: Thu, 6 Sep 2012 21:25:52 +0000 (UTC) first OSS build Project: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/commit/5ae15f8b Tree: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/tree/5ae15f8b Diff: http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/diff/5ae15f8b Branch: refs/heads/4.0 Commit: 5ae15f8bbf9a8ffdd07dda3008e6c239b1d1e621 Parents: 8642755 Author: Edison Su Authored: Wed Sep 5 16:40:13 2012 -0700 Committer: Edison Su Committed: Wed Sep 5 17:45:25 2012 -0700 ---------------------------------------------------------------------- .../com/cloud/agent/vmdata/JettyVmDataServer.java | 370 --------- build/build-cloud-plugins.xml | 12 +- build/build-cloud.xml | 2 +- client/pom.xml | 37 - client/tomcatconf/components.xml.in | 21 +- cloud.spec | 17 +- console-proxy/pom.xml | 5 - deps/pom.xml | 30 - patches/pom.xml | 5 - .../kvm/resource/FakeComputingResource.java | 641 --------------- pom.xml | 1 - wscript | 1 + wscript_build | 2 +- 13 files changed, 12 insertions(+), 1132 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/5ae15f8b/agent/src/com/cloud/agent/vmdata/JettyVmDataServer.java ---------------------------------------------------------------------- diff --git a/agent/src/com/cloud/agent/vmdata/JettyVmDataServer.java b/agent/src/com/cloud/agent/vmdata/JettyVmDataServer.java deleted file mode 100644 index 6882b3e..0000000 --- a/agent/src/com/cloud/agent/vmdata/JettyVmDataServer.java +++ /dev/null @@ -1,370 +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.vmdata; - -import java.io.BufferedReader; -import java.io.BufferedWriter; -import java.io.FileNotFoundException; -import java.io.FileOutputStream; -import java.io.FileReader; -import java.io.FileWriter; -import java.io.IOException; -import java.io.File; -import java.net.InetAddress; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; - -import javax.ejb.Local; -import javax.naming.ConfigurationException; -import javax.servlet.ServletException; -import javax.servlet.http.HttpServlet; -import javax.servlet.http.HttpServletRequest; -import javax.servlet.http.HttpServletResponse; - -import org.apache.commons.codec.binary.Base64; -import org.apache.log4j.Logger; -import org.mortbay.jetty.Connector; -import org.mortbay.jetty.Handler; -import org.mortbay.jetty.Server; -import org.mortbay.jetty.handler.DefaultHandler; -import org.mortbay.jetty.handler.HandlerList; -import org.mortbay.jetty.handler.ResourceHandler; -import org.mortbay.jetty.nio.SelectChannelConnector; -import org.mortbay.jetty.servlet.Context; -import org.mortbay.jetty.servlet.ServletHolder; -import org.mortbay.thread.QueuedThreadPool; - -import com.cloud.agent.api.Answer; -import com.cloud.agent.api.routing.VmDataCommand; -import com.cloud.agent.api.to.NicTO; -import com.cloud.agent.api.to.VirtualMachineTO; -import com.cloud.network.Networks.TrafficType; -import com.cloud.storage.JavaStorageLayer; -import com.cloud.storage.StorageLayer; -import com.cloud.utils.net.NetUtils; -import com.cloud.utils.script.Script; - -/** - * Serves vm data using embedded Jetty server - * - */ -@Local(value = { VmDataServer.class }) -public class JettyVmDataServer implements VmDataServer { - private static final Logger s_logger = Logger - .getLogger(JettyVmDataServer.class); - - public static final String USER_DATA = "user-data"; - public static final String META_DATA = "meta-data"; - protected String _vmDataDir; - protected Server _jetty; - protected String _hostIp; - protected Map _ipVmMap = new HashMap(); - protected StorageLayer _fs = new JavaStorageLayer(); - - public class VmDataServlet extends HttpServlet { - - private static final long serialVersionUID = -1640031398971742349L; - - JettyVmDataServer _vmDataServer; - String _dataType; // userdata or meta-data - - public VmDataServlet(JettyVmDataServer dataServer, String dataType) { - this._vmDataServer = dataServer; - this._dataType = dataType; - } - - @Override - protected void doGet(HttpServletRequest req, HttpServletResponse resp) - throws ServletException, IOException { - int port = req.getServerPort(); - if (port != 80 && port != 8000) { - resp.sendError(HttpServletResponse.SC_NOT_FOUND, - "Request not understood"); - return; - } - if (_dataType.equalsIgnoreCase(USER_DATA)) { - handleUserData(req, resp); - } else if (_dataType.equalsIgnoreCase(META_DATA)) { - handleMetaData(req, resp); - } - } - - protected void handleUserData(HttpServletRequest req, - HttpServletResponse resp) throws ServletException, IOException { - String metadataItem = req.getPathInfo(); - String requester = req.getRemoteAddr(); - resp.setContentType("text/html"); - resp.setStatus(HttpServletResponse.SC_OK); - String data = null; - if (metadataItem != null) { - String[] path = metadataItem.split("/"); - if (path.length > 1) { - metadataItem = path[1]; - } - } - - if (metadataItem != null) - data = _vmDataServer.getVmDataItem(requester, metadataItem); - - if (data != null) { - resp.getWriter().print(data); - } else { - resp.setStatus(HttpServletResponse.SC_NOT_FOUND); - resp.sendError(HttpServletResponse.SC_NOT_FOUND, - "Request not found"); - } - - } - - protected void handleMetaData(HttpServletRequest req, - HttpServletResponse resp) throws ServletException, IOException { - String metadataItem = req.getPathInfo(); - String requester = req.getRemoteAddr(); - resp.setContentType("text/html"); - resp.setStatus(HttpServletResponse.SC_OK); - String metaData = _vmDataServer.getVmDataItem(requester, - metadataItem); - if (metaData != null) { - resp.getWriter().print( - _vmDataServer.getVmDataItem(requester, metadataItem)); - } else { - resp.sendError(HttpServletResponse.SC_NOT_FOUND, - "Request not found"); - } - } - - } - - @Override - public boolean configure(String name, Map params) - throws ConfigurationException { - boolean success = true; - try { - int vmDataPort = 80; - int fileservingPort = 8000; - _vmDataDir = (String) params.get("vm.data.dir"); - String port = (String) params.get("vm.data.port"); - if (port != null) { - vmDataPort = Integer.parseInt(port); - } - port = (String) params.get("file.server.port"); - if (port != null) { - fileservingPort = Integer.parseInt(port); - } - _hostIp = (String) params.get("host.ip"); - - if (_vmDataDir == null) { - _vmDataDir = "/var/www/html"; - } - success = _fs.mkdirs(_vmDataDir); - success = success && buildIpVmMap(); - if (success) { - setupJetty(vmDataPort, fileservingPort); - } - } catch (Exception e) { - s_logger.warn("Failed to configure jetty", e); - throw new ConfigurationException("Failed to configure jetty!!"); - } - return success; - } - - protected boolean buildIpVmMap() { - String[] dirs = _fs.listFiles(_vmDataDir); - for (String dir : dirs) { - String[] path = dir.split("/"); - String vm = path[path.length - 1]; - if (vm.startsWith("i-")) { - String[] dataFiles = _fs.listFiles(dir); - for (String dfile : dataFiles) { - String path2[] = dfile.split("/"); - String ipv4file = path2[path2.length - 1]; - if (ipv4file.equalsIgnoreCase("local-ipv4")) { - try { - BufferedReader input = new BufferedReader( - new FileReader(dfile)); - String line = null; - while ((line = input.readLine()) != null) { - if (NetUtils.isValidIp(line)) { - _ipVmMap.put(line, vm); - s_logger.info("Found ip " + line - + " for vm " + vm); - } else { - s_logger.info("Invalid ip " + line - + " for vm " + vm); - } - } - } catch (FileNotFoundException e) { - s_logger.warn("Failed to find file " + dfile); - } catch (IOException e) { - s_logger.warn("Failed to get ip address of " + vm); - } - - } - } - } - } - return true; - } - - public String getVmDataItem(String requester, String dataItem) { - String vmName = _ipVmMap.get(requester); - if (vmName == null) { - return null; - } - String vmDataFile = _vmDataDir + File.separator + vmName - + File.separator + dataItem; - try { - BufferedReader input = new BufferedReader( - new FileReader(vmDataFile)); - StringBuilder result = new StringBuilder(); - String line = null; - while ((line = input.readLine()) != null) { - result.append(line); - } - input.close(); - return result.toString(); - } catch (FileNotFoundException e) { - s_logger.warn("Failed to find requested file " + vmDataFile); - return null; - } catch (IOException e) { - s_logger.warn("Failed to read requested file " + vmDataFile); - return null; - } - } - - private void setupJetty(int vmDataPort, int fileservingPort) - throws Exception { - _jetty = new Server(); - - SelectChannelConnector connector0 = new SelectChannelConnector(); - connector0.setHost(_hostIp); - connector0.setPort(fileservingPort); - connector0.setMaxIdleTime(30000); - connector0.setRequestBufferSize(8192); - - SelectChannelConnector connector1 = new SelectChannelConnector(); - connector1.setHost(_hostIp); - connector1.setPort(vmDataPort); - connector1.setThreadPool(new QueuedThreadPool(5)); - connector1.setMaxIdleTime(30000); - connector1.setRequestBufferSize(8192); - - _jetty.setConnectors(new Connector[] { connector0, connector1 }); - - Context root = new Context(_jetty, "/latest", Context.SESSIONS); - root.setResourceBase(_vmDataDir); - root.addServlet(new ServletHolder(new VmDataServlet(this, USER_DATA)), - "/*"); - - ResourceHandler resource_handler = new ResourceHandler(); - resource_handler.setResourceBase("/var/lib/images/"); - - HandlerList handlers = new HandlerList(); - handlers.setHandlers(new Handler[] { root, resource_handler, - new DefaultHandler() }); - _jetty.setHandler(handlers); - - _jetty.start(); - // _jetty.join(); - } - - @Override - public boolean start() { - // TODO Auto-generated method stub - return false; - } - - @Override - public boolean stop() { - return true; - } - - @Override - public String getName() { - return "JettyVmDataServer"; - } - - @Override - public Answer handleVmDataCommand(VmDataCommand cmd) { - String vmDataDir = _vmDataDir + File.separator + cmd.getVmName(); - - Script.runSimpleBashScript("rm -rf " + vmDataDir); - _fs.mkdirs(vmDataDir); - - for (String[] item : cmd.getVmData()) { - try { - _fs.create(vmDataDir, item[1]); - String vmDataFile = vmDataDir + File.separator + item[1]; - byte[] data; - if (item[2] != null) { - if (item[1].equals("user-data")) { - data = Base64.decodeBase64(item[2]); - } else { - data = item[2].getBytes(); - } - if (data != null && data.length > 0) { - FileOutputStream writer = new FileOutputStream( - vmDataFile); - writer.write(data); - writer.close(); - } - } - } catch (IOException e) { - s_logger.warn("Failed to write vm data item " + item[1], e); - return new Answer(cmd, false, "Failed to write vm data item " - + item[1]); - } - } - return new Answer(cmd); - - } - - @Override - public void handleVmStarted(VirtualMachineTO vm) { - for (NicTO nic : vm.getNics()) { - if (nic.getType() == TrafficType.Guest) { - if (nic.getIp() != null) { - String ipv4File = _vmDataDir + File.separator - + vm.getName() + File.separator + "local-ipv4"; - try { - _fs.create(_vmDataDir + File.separator + vm.getName(), - "local-ipv4"); - BufferedWriter writer = new BufferedWriter( - new FileWriter(ipv4File)); - writer.write(nic.getIp()); - _ipVmMap.put(nic.getIp(), vm.getName()); - writer.close(); - } catch (IOException e) { - s_logger.warn( - "Failed to create or write to local-ipv4 file " - + ipv4File, e); - } - - } - - } - } - } - - @Override - public void handleVmStopped(String vmName) { - String vmDataDir = _vmDataDir + File.separator + vmName; - Script.runSimpleBashScript("rm -rf " + vmDataDir); - } -} http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/5ae15f8b/build/build-cloud-plugins.xml ---------------------------------------------------------------------- diff --git a/build/build-cloud-plugins.xml b/build/build-cloud-plugins.xml index b73289e..5a705b9 100755 --- a/build/build-cloud-plugins.xml +++ b/build/build-cloud-plugins.xml @@ -180,9 +180,9 @@ - + - + @@ -194,8 +194,8 @@ - - + + @@ -280,8 +280,8 @@ - - + + http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/5ae15f8b/build/build-cloud.xml ---------------------------------------------------------------------- diff --git a/build/build-cloud.xml b/build/build-cloud.xml index fce3e17..10f4809 100755 --- a/build/build-cloud.xml +++ b/build/build-cloud.xml @@ -204,7 +204,7 @@ - + http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/5ae15f8b/client/pom.xml ---------------------------------------------------------------------- diff --git a/client/pom.xml b/client/pom.xml index 502d023..8439652 100644 --- a/client/pom.xml +++ b/client/pom.xml @@ -99,43 +99,6 @@ 5.1.21 runtime - - - org.apache.cloudstack - cloud-plugin-hypervisor-vmware - ${project.version} - - - org.apache.cloudstack - cloud-plugin-network-srx - ${project.version} - - - org.apache.cloudstack - cloud-plugin-hypervisor-kvm - ${project.version} - - - org.mortbay.jetty - jetty - - - - - org.apache.cloudstack - cloud-plugin-netapp - ${project.version} - - - org.apache.cloudstack - cloud-plugin-network-f5 - ${project.version} - - - org.apache.cloudstack - cloud-plugin-network-netscaler - ${project.version} - install http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/5ae15f8b/client/tomcatconf/components.xml.in ---------------------------------------------------------------------- diff --git a/client/tomcatconf/components.xml.in b/client/tomcatconf/components.xml.in index 3c4b9fd..5730b83 100755 --- a/client/tomcatconf/components.xml.in +++ b/client/tomcatconf/components.xml.in @@ -114,7 +114,6 @@ under the License. - @@ -122,7 +121,6 @@ under the License. - @@ -133,7 +131,6 @@ under the License. - @@ -153,15 +150,11 @@ under the License. - - - - @@ -171,7 +164,6 @@ under the License. - @@ -179,25 +171,14 @@ under the License. - - - - - - - - - - - @@ -253,4 +234,4 @@ under the License. - \ No newline at end of file + http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/5ae15f8b/cloud.spec ---------------------------------------------------------------------- diff --git a/cloud.spec b/cloud.spec index be29ae4..b22bd8c 100644 --- a/cloud.spec +++ b/cloud.spec @@ -433,24 +433,18 @@ fi %files server %defattr(0644,root,root,0755) %{_javadir}/%{name}-server.jar -%{_javadir}/%{name}-vmware-base.jar %{_javadir}/%{name}-ovm.jar %{_javadir}/%{name}-dp-user-concentrated-pod.jar %{_javadir}/%{name}-dp-user-dispersing.jar %{_javadir}/%{name}-host-allocator-random.jar -%{_javadir}/%{name}-plugin-f5.jar -%{_javadir}/%{name}-plugin-netscaler.jar %{_javadir}/%{name}-plugin-ovs.jar -%{_javadir}/%{name}-plugin-srx.jar %{_javadir}/%{name}-storage-allocator-random.jar %{_javadir}/%{name}-user-authenticator-ldap.jar %{_javadir}/%{name}-user-authenticator-md5.jar %{_javadir}/%{name}-user-authenticator-plaintext.jar -%{_javadir}/%{name}-vmware.jar %{_javadir}/%{name}-xen.jar -%{_javadir}/%{name}-plugin-nicira-nvp.jar %{_javadir}/%{name}-plugin-elb.jar -%{_javadir}/%{name}-plugin-netapp.jar +%{_javadir}/%{name}-plugin-nicira-nvp.jar %config(noreplace) %{_sysconfdir}/%{name}/server/* %files agent-scripts @@ -467,8 +461,6 @@ fi %{_javadir}/commons-dbcp-1.4.jar %{_javadir}/commons-pool-1.6.jar %{_javadir}/gson-1.7.1.jar -%{_javadir}/netscaler-1.0.jar -%{_javadir}/netscaler-sdx-1.0.jar %{_javadir}/backport-util-concurrent-3.1.jar %{_javadir}/ehcache-1.5.0.jar %{_javadir}/httpcore-4.0.jar @@ -481,19 +473,15 @@ fi %{_javadir}/hibernate-commons-annotations-3.2.0.Final.jar %{_javadir}/hibernate-annotations-3.5.1-Final.jar %{_javadir}/asm-3.1.jar -%{_javadir}/xapi-5.6.100-1-20120825.123319-1.jar +%{_javadir}/xapi-5.6.100-1-SNAPSHOT.jar %{_javadir}/log4j-*.jar %{_javadir}/trilead-ssh2-build213-svnkit-1.3-patch.jar %{_javadir}/cglib-2.2.jar %{_javadir}/xmlrpc-common-3.*.jar %{_javadir}/xmlrpc-client-3.*.jar -%{_javadir}/axis-1.4.jar %{_javadir}/wsdl4j-1.6.2.jar %{_javadir}/bcprov-jdk16-1.46.jar %{_javadir}/jsch-0.1.42.jar -%{_javadir}/icontrol-1.0.jar -%{_javadir}/manageontap-1.0.jar -%{_javadir}/vmware*.jar %{_javadir}/jasypt-1.*.jar %{_javadir}/commons-configuration-1.8.jar %{_javadir}/commons-lang-2.6.jar @@ -550,7 +538,6 @@ fi %files agent-libs %defattr(0644,root,root,0755) %{_javadir}/%{name}-agent.jar -%{_javadir}/%{name}-plugin-hypervisor-kvm.jar %files agent %defattr(0644,root,root,0755) http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/5ae15f8b/console-proxy/pom.xml ---------------------------------------------------------------------- diff --git a/console-proxy/pom.xml b/console-proxy/pom.xml index 070beb8..1bf4efe 100644 --- a/console-proxy/pom.xml +++ b/console-proxy/pom.xml @@ -50,11 +50,6 @@ org.apache.cloudstack - cloud-vmware-base - ${project.version} - - - org.apache.cloudstack cloud-agent ${project.version} http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/5ae15f8b/deps/pom.xml ---------------------------------------------------------------------- diff --git a/deps/pom.xml b/deps/pom.xml index cb31eeb..5a0d6c3 100644 --- a/deps/pom.xml +++ b/deps/pom.xml @@ -105,36 +105,6 @@ runtime - - org.apache.cloudstack - cloud-plugin-hypervisor-vmware - ${project.version} - - - org.apache.cloudstack - cloud-plugin-network-srx - ${project.version} - - - org.apache.cloudstack - cloud-plugin-hypervisor-kvm - ${project.version} - - - org.apache.cloudstack - cloud-plugin-netapp - ${project.version} - - - org.apache.cloudstack - cloud-plugin-network-f5 - ${project.version} - - - org.apache.cloudstack - cloud-plugin-network-netscaler - ${project.version} - org.apache.axis2 http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/5ae15f8b/patches/pom.xml ---------------------------------------------------------------------- diff --git a/patches/pom.xml b/patches/pom.xml index efe61af..d62fc86 100644 --- a/patches/pom.xml +++ b/patches/pom.xml @@ -50,11 +50,6 @@ org.apache.cloudstack - cloud-vmware-base - ${project.version} - - - org.apache.cloudstack cloud-agent ${project.version} http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/5ae15f8b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/FakeComputingResource.java ---------------------------------------------------------------------- diff --git a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/FakeComputingResource.java b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/FakeComputingResource.java deleted file mode 100644 index 83f6976..0000000 --- a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/FakeComputingResource.java +++ /dev/null @@ -1,641 +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.hypervisor.kvm.resource; - -import java.io.File; -import java.io.FileInputStream; -import java.io.FileNotFoundException; -import java.io.IOException; -import java.net.InetAddress; -import java.util.ArrayList; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Properties; -import java.util.UUID; - -import javax.ejb.Local; -import javax.naming.ConfigurationException; - -import org.apache.log4j.Logger; - -import com.cloud.agent.api.Answer; -import com.cloud.agent.api.AttachIsoCommand; -import com.cloud.agent.api.AttachVolumeCommand; -import com.cloud.agent.api.CheckHealthAnswer; -import com.cloud.agent.api.CheckHealthCommand; -import com.cloud.agent.api.CheckStateAnswer; -import com.cloud.agent.api.CheckStateCommand; -import com.cloud.agent.api.CheckVirtualMachineAnswer; -import com.cloud.agent.api.CheckVirtualMachineCommand; -import com.cloud.agent.api.CleanupNetworkRulesCmd; -import com.cloud.agent.api.Command; -import com.cloud.agent.api.GetHostStatsAnswer; -import com.cloud.agent.api.GetHostStatsCommand; -import com.cloud.agent.api.GetStorageStatsAnswer; -import com.cloud.agent.api.GetStorageStatsCommand; -import com.cloud.agent.api.GetVmStatsAnswer; -import com.cloud.agent.api.GetVmStatsCommand; -import com.cloud.agent.api.ModifySshKeysCommand; -import com.cloud.agent.api.ModifyStoragePoolAnswer; -import com.cloud.agent.api.ModifyStoragePoolCommand; -import com.cloud.agent.api.PingCommand; -import com.cloud.agent.api.PingRoutingCommand; -import com.cloud.agent.api.PingTestCommand; -import com.cloud.agent.api.ReadyAnswer; -import com.cloud.agent.api.ReadyCommand; -import com.cloud.agent.api.RebootAnswer; -import com.cloud.agent.api.RebootCommand; -import com.cloud.agent.api.SecurityGroupRuleAnswer; -import com.cloud.agent.api.SecurityGroupRulesCmd; -import com.cloud.agent.api.StartAnswer; -import com.cloud.agent.api.StartCommand; -import com.cloud.agent.api.StartupCommand; -import com.cloud.agent.api.StartupRoutingCommand; -import com.cloud.agent.api.StartupRoutingCommand.VmState; -import com.cloud.agent.api.StartupStorageCommand; -import com.cloud.agent.api.StopAnswer; -import com.cloud.agent.api.StopCommand; -import com.cloud.agent.api.StoragePoolInfo; -import com.cloud.agent.api.routing.SavePasswordCommand; -import com.cloud.agent.api.routing.VmDataCommand; -import com.cloud.agent.api.storage.CreateAnswer; -import com.cloud.agent.api.storage.CreateCommand; -import com.cloud.agent.api.storage.DestroyCommand; -import com.cloud.agent.api.storage.PrimaryStorageDownloadAnswer; -import com.cloud.agent.api.storage.PrimaryStorageDownloadCommand; -import com.cloud.agent.api.to.NicTO; -import com.cloud.agent.api.to.VirtualMachineTO; -import com.cloud.agent.api.to.VolumeTO; -import com.cloud.agent.dhcp.DhcpSnooper; -import com.cloud.agent.dhcp.FakeDhcpSnooper; -import com.cloud.agent.mockvm.MockVm; -import com.cloud.agent.mockvm.MockVmMgr; -import com.cloud.agent.mockvm.VmMgr; -import com.cloud.agent.vmdata.JettyVmDataServer; -import com.cloud.agent.vmdata.VmDataServer; -import com.cloud.host.Host.Type; -import com.cloud.hypervisor.Hypervisor.HypervisorType; -import com.cloud.network.Networks.RouterPrivateIpStrategy; -import com.cloud.network.Networks.TrafficType; -import com.cloud.resource.ServerResource; -import com.cloud.resource.ServerResourceBase; -import com.cloud.storage.Storage; -import com.cloud.storage.Storage.StoragePoolType; -import com.cloud.storage.Volume; -import com.cloud.storage.template.TemplateInfo; -import com.cloud.utils.PropertiesUtil; -import com.cloud.utils.exception.CloudRuntimeException; -import com.cloud.utils.script.Script; -import com.cloud.vm.VirtualMachine.State; - -/** - * Pretends to be a computing resource - * - */ -@Local(value = { ServerResource.class }) -public class FakeComputingResource extends ServerResourceBase implements - ServerResource { - private static final Logger s_logger = Logger - .getLogger(FakeComputingResource.class); - private Map _params; - private VmMgr _vmManager = new MockVmMgr(); - protected HashMap _vms = new HashMap(20); - protected DhcpSnooper _dhcpSnooper = new FakeDhcpSnooper(); - protected VmDataServer _vmDataServer = new JettyVmDataServer(); - - @Override - public Type getType() { - return Type.Routing; - } - - @Override - public StartupCommand[] initialize() { - Map changes = null; - - final List info = getHostInfo(); - - final 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.KVM, - RouterPrivateIpStrategy.HostLocal, changes); - fillNetworkInformation(cmd); - cmd.getHostDetails().putAll(getVersionStrings()); - cmd.setCluster(getConfiguredProperty("cluster", "1")); - StoragePoolInfo pi = initializeLocalStorage(); - StartupStorageCommand sscmd = new StartupStorageCommand(); - sscmd.setPoolInfo(pi); - sscmd.setGuid(pi.getUuid()); - sscmd.setDataCenter((String) _params.get("zone")); - sscmd.setResourceType(Storage.StorageResourceType.STORAGE_POOL); - - return new StartupCommand[] { cmd, sscmd }; - - } - - private Map getVersionStrings() { - Map result = new HashMap(); - String hostOs = (String) _params.get("Host.OS"); - String hostOsVer = (String) _params.get("Host.OS.Version"); - String hostOsKernVer = (String) _params.get("Host.OS.Kernel.Version"); - result.put("Host.OS", hostOs == null ? "Fedora" : hostOs); - result.put("Host.OS.Version", hostOsVer == null ? "14" : hostOsVer); - result.put("Host.OS.Kernel.Version", - hostOsKernVer == null ? "2.6.35.6-45.fc14.x86_64" - : hostOsKernVer); - return result; - } - - protected void fillNetworkInformation(final StartupCommand cmd) { - - cmd.setPrivateIpAddress((String) _params.get("private.ip.address")); - cmd.setPrivateMacAddress((String) _params.get("private.mac.address")); - cmd.setPrivateNetmask((String) _params.get("private.ip.netmask")); - - cmd.setStorageIpAddress((String) _params.get("private.ip.address")); - cmd.setStorageMacAddress((String) _params.get("private.mac.address")); - cmd.setStorageNetmask((String) _params.get("private.ip.netmask")); - cmd.setGatewayIpAddress((String) _params.get("gateway.ip.address")); - - } - - protected StoragePoolInfo initializeLocalStorage() { - String hostIp = (String) _params.get("private.ip.address"); - String localStoragePath = (String) _params.get("local.storage.path"); - String lh = hostIp + localStoragePath; - String uuid = UUID.nameUUIDFromBytes(lh.getBytes()).toString(); - - String capacity = (String) _params.get("local.storage.capacity"); - String available = (String) _params.get("local.storage.avail"); - - return new StoragePoolInfo(uuid, hostIp, localStoragePath, - localStoragePath, StoragePoolType.Filesystem, - Long.parseLong(capacity), Long.parseLong(available)); - - } - - @Override - public PingCommand getCurrentStatus(long id) { - final HashMap newStates = new HashMap(); - _dhcpSnooper.syncIpAddr(); - return new PingRoutingCommand(com.cloud.host.Host.Type.Routing, id, - newStates); - } - - @Override - public Answer executeRequest(Command cmd) { - try { - if (cmd instanceof ReadyCommand) { - return execute((ReadyCommand) cmd); - } else if (cmd instanceof ModifySshKeysCommand) { - return execute((ModifySshKeysCommand) cmd);// TODO: remove - } else if (cmd instanceof GetHostStatsCommand) { - return execute((GetHostStatsCommand) cmd); - } else if (cmd instanceof PrimaryStorageDownloadCommand) { - return execute((PrimaryStorageDownloadCommand) cmd); - - } else if (cmd instanceof StopCommand) { - return execute((StopCommand) cmd); - } else if (cmd instanceof GetVmStatsCommand) { - return execute((GetVmStatsCommand) cmd); - } else if (cmd instanceof RebootCommand) { - return execute((RebootCommand) cmd); - } else if (cmd instanceof CheckStateCommand) { - return executeRequest(cmd); - } else if (cmd instanceof CheckHealthCommand) { - return execute((CheckHealthCommand) cmd); - } else if (cmd instanceof PingTestCommand) { - return execute((PingTestCommand) cmd); - } else if (cmd instanceof CheckVirtualMachineCommand) { - return execute((CheckVirtualMachineCommand) cmd); - } else if (cmd instanceof ReadyCommand) { - return execute((ReadyCommand) cmd); - } else if (cmd instanceof StopCommand) { - return execute((StopCommand) cmd); - } else if (cmd instanceof CreateCommand) { - return execute((CreateCommand) cmd); - } else if (cmd instanceof DestroyCommand) { - return execute((DestroyCommand) cmd); - } else if (cmd instanceof PrimaryStorageDownloadCommand) { - return execute((PrimaryStorageDownloadCommand) cmd); - } else if (cmd instanceof GetStorageStatsCommand) { - return execute((GetStorageStatsCommand) cmd); - } else if (cmd instanceof ModifyStoragePoolCommand) { - return execute((ModifyStoragePoolCommand) cmd); - } else if (cmd instanceof SecurityGroupRulesCmd) { - return execute((SecurityGroupRulesCmd) cmd); - } else if (cmd instanceof StartCommand) { - return execute((StartCommand) cmd); - } else if (cmd instanceof CleanupNetworkRulesCmd) { - return execute((CleanupNetworkRulesCmd) cmd); - } else if (cmd instanceof SavePasswordCommand) { - return execute((SavePasswordCommand) cmd); - } else if (cmd instanceof VmDataCommand) { - return execute((VmDataCommand) cmd); - } else { - s_logger.warn("Unsupported command "); - return Answer.createUnsupportedCommandAnswer(cmd); - } - } catch (final IllegalArgumentException e) { - return new Answer(cmd, false, e.getMessage()); - } - } - - private Answer execute(CleanupNetworkRulesCmd cmd) { - return new Answer(cmd); - } - - private Answer execute(SecurityGroupRulesCmd cmd) { - s_logger.info("Programmed network rules for vm " + cmd.getVmName() - + " guestIp=" + cmd.getGuestIp() + ",ingress numrules=" - + cmd.getIngressRuleSet().length + ",egress numrules=" - + cmd.getEgressRuleSet().length); - return new SecurityGroupRuleAnswer(cmd); - } - - private Answer execute(ModifyStoragePoolCommand cmd) { - long capacity = getConfiguredProperty("local.storage.capacity", - 10000000000L); - long used = 10000000L; - long available = capacity - used; - if (cmd.getAdd()) { - - ModifyStoragePoolAnswer answer = new ModifyStoragePoolAnswer(cmd, - capacity, used, new HashMap()); - - if (s_logger.isInfoEnabled()) - s_logger.info("Sending ModifyStoragePoolCommand answer with capacity: " - + capacity - + ", used: " - + used - + ", available: " - + available); - return answer; - } else { - if (s_logger.isInfoEnabled()) - s_logger.info("ModifyNetfsStoragePoolCmd is not add command, cmd: " - + cmd.toString()); - return new Answer(cmd); - } - } - - private Answer execute(GetStorageStatsCommand cmd) { - return new GetStorageStatsAnswer(cmd, getConfiguredProperty( - "local.storage.capacity", 100000000000L), 0L); - } - - protected synchronized ReadyAnswer execute(ReadyCommand cmd) { - return new ReadyAnswer(cmd); - } - - private Answer execute(PrimaryStorageDownloadCommand cmd) { - return new PrimaryStorageDownloadAnswer(cmd.getLocalPath(), 16000000L); - } - - private Answer execute(ModifySshKeysCommand cmd) { - return new Answer(cmd, true, null); - } - - @Override - protected String getDefaultScriptsDir() { - return null; - } - - protected String getConfiguredProperty(String key, String defaultValue) { - String val = (String) _params.get(key); - return val == null ? defaultValue : val; - } - - protected Long getConfiguredProperty(String key, Long defaultValue) { - String val = (String) _params.get(key); - - if (val != null) { - Long result = Long.parseLong(val); - return result; - } - return defaultValue; - } - - protected List getHostInfo() { - final ArrayList info = new ArrayList(); - long speed = getConfiguredProperty("cpuspeed", 4000L); - long cpus = getConfiguredProperty("cpus", 4L); - long ram = getConfiguredProperty("memory", 16000L * 1024L * 1024L); - long dom0ram = Math.min(ram / 10, 768 * 1024 * 1024L); - - String cap = getConfiguredProperty("capabilities", "hvm"); - info.add((int) cpus); - info.add(speed); - info.add(ram); - info.add(cap); - info.add(dom0ram); - return info; - - } - - private Map getSimulatorProperties() - throws ConfigurationException { - final File file = PropertiesUtil.findConfigFile("simulator.properties"); - if (file == null) { - throw new ConfigurationException( - "Unable to find simulator.properties."); - } - - s_logger.info("simulator.properties found at " + file.getAbsolutePath()); - Properties properties = new Properties(); - try { - properties.load(new FileInputStream(file)); - - final Map params = PropertiesUtil.toMap(properties); - - return params; - } catch (final FileNotFoundException ex) { - throw new CloudRuntimeException("Cannot find the file: " - + file.getAbsolutePath(), ex); - } catch (final IOException ex) { - throw new CloudRuntimeException("IOException in reading " - + file.getAbsolutePath(), ex); - } - } - - @Override - public boolean configure(String name, Map params) - throws ConfigurationException { - Map simProps = getSimulatorProperties(); - params.putAll(simProps); - setParams(params); - _vmManager.configure(params); - _dhcpSnooper.configure(name, params); - _vmDataServer.configure(name, params); - return true; - } - - public void setParams(Map _params) { - this._params = _params; - } - - public Map getParams() { - return _params; - } - - protected synchronized StartAnswer execute(StartCommand cmd) { - VmMgr vmMgr = getVmManager(); - - VirtualMachineTO vmSpec = cmd.getVirtualMachine(); - String vmName = vmSpec.getName(); - State state = State.Stopped; - - try { - if (!_vms.containsKey(vmName)) { - synchronized (_vms) { - _vms.put(vmName, State.Starting); - } - - MockVm vm = vmMgr.createVmFromSpec(vmSpec); - vmMgr.createVbd(vmSpec, vmName, vm); - vmMgr.createVif(vmSpec, vmName, vm); - - state = State.Running; - for (NicTO nic : cmd.getVirtualMachine().getNics()) { - if (nic.getType() == TrafficType.Guest) { - InetAddress addr = _dhcpSnooper.getIPAddr(nic.getMac(), - vmName); - nic.setIp(addr.getHostAddress()); - } - } - _vmDataServer.handleVmStarted(cmd.getVirtualMachine()); - return new StartAnswer(cmd); - } else { - String msg = "There is already a VM having the same name " - + vmName; - s_logger.warn(msg); - return new StartAnswer(cmd, msg); - } - } catch (Exception ex) { - - } finally { - synchronized (_vms) { - _vms.put(vmName, state); - } - } - return new StartAnswer(cmd); - } - - protected synchronized StopAnswer execute(StopCommand cmd) { - VmMgr vmMgr = getVmManager(); - - StopAnswer answer = null; - String vmName = cmd.getVmName(); - - Integer port = vmMgr.getVncPort(vmName); - - State state = null; - synchronized (_vms) { - state = _vms.get(vmName); - _vms.put(vmName, State.Stopping); - } - try { - String result = vmMgr.stopVM(vmName, false); - if (result != null) { - s_logger.info("Trying destroy on " + vmName); - if (result == Script.ERR_TIMEOUT) { - result = vmMgr.stopVM(vmName, true); - } - - s_logger.warn("Couldn't stop " + vmName); - - if (result != null) { - return new StopAnswer(cmd, result, false); - } - } - - answer = new StopAnswer(cmd, null, port, true); - - String result2 = vmMgr.cleanupVnet(cmd.getVnet()); - if (result2 != null) { - result = result2 + (result != null ? ("\n" + result) : ""); - answer = new StopAnswer(cmd, result, port, true); - } - - _dhcpSnooper.cleanup(vmName, null); - - return answer; - } finally { - if (answer == null || !answer.getResult()) { - synchronized (_vms) { - _vms.put(vmName, state); - } - } - } - } - - protected Answer execute(final VmDataCommand cmd) { - return _vmDataServer.handleVmDataCommand(cmd); - } - - protected Answer execute(final SavePasswordCommand cmd) { - return new Answer(cmd); - } - - protected Answer execute(RebootCommand cmd) { - VmMgr vmMgr = getVmManager(); - vmMgr.rebootVM(cmd.getVmName()); - return new RebootAnswer(cmd, "success", true); - } - - private Answer execute(PingTestCommand cmd) { - return new Answer(cmd); - } - - protected GetVmStatsAnswer execute(GetVmStatsCommand cmd) { - return null; - } - - private VmMgr getVmManager() { - return _vmManager; - } - - protected Answer execute(GetHostStatsCommand cmd) { - VmMgr vmMgr = getVmManager(); - return new GetHostStatsAnswer(cmd, vmMgr.getHostCpuUtilization(), - vmMgr.getHostFreeMemory(), vmMgr.getHostTotalMemory(), 0, 0, - "SimulatedHost"); - } - - protected CheckStateAnswer execute(CheckStateCommand cmd) { - State state = getVmManager().checkVmState(cmd.getVmName()); - return new CheckStateAnswer(cmd, state); - } - - protected CheckHealthAnswer execute(CheckHealthCommand cmd) { - return new CheckHealthAnswer(cmd, true); - } - - protected CheckVirtualMachineAnswer execute( - final CheckVirtualMachineCommand cmd) { - VmMgr vmMgr = getVmManager(); - final String vmName = cmd.getVmName(); - - final State state = vmMgr.checkVmState(vmName); - Integer vncPort = null; - if (state == State.Running) { - vncPort = vmMgr.getVncPort(vmName); - synchronized (_vms) { - _vms.put(vmName, State.Running); - } - } - return new CheckVirtualMachineAnswer(cmd, state, vncPort); - } - - protected Answer execute(final AttachVolumeCommand cmd) { - return new Answer(cmd); - } - - protected Answer execute(final AttachIsoCommand cmd) { - return new Answer(cmd); - } - - protected CreateAnswer execute(final CreateCommand cmd) { - try { - - VolumeTO vol = new VolumeTO(cmd.getVolumeId(), Volume.Type.ROOT, - com.cloud.storage.Storage.StoragePoolType.LVM, cmd - .getPool().getUuid(), "dummy", "/mountpoint", - "dummyPath", 1000L, null); - return new CreateAnswer(cmd, vol); - } catch (Throwable th) { - return new CreateAnswer(cmd, new Exception("Unexpected exception")); - } - } - - protected HashMap sync() { - Map newStates; - Map oldStates = null; - - HashMap changes = new HashMap(); - - synchronized (_vms) { - newStates = getVmManager().getVmStates(); - oldStates = new HashMap(_vms.size()); - oldStates.putAll(_vms); - - for (Map.Entry entry : newStates.entrySet()) { - String vm = entry.getKey(); - - State newState = entry.getValue(); - State oldState = oldStates.remove(vm); - - if (s_logger.isTraceEnabled()) { - s_logger.trace("VM " + vm + ": xen has state " + newState - + " and we have state " - + (oldState != null ? oldState.toString() : "null")); - } - - if (oldState == null) { - _vms.put(vm, newState); - changes.put(vm, newState); - } else if (oldState == State.Starting) { - if (newState == State.Running) { - _vms.put(vm, newState); - } else if (newState == State.Stopped) { - s_logger.debug("Ignoring vm " + vm - + " because of a lag in starting the vm."); - } - } else if (oldState == State.Stopping) { - if (newState == State.Stopped) { - _vms.put(vm, newState); - } else if (newState == State.Running) { - s_logger.debug("Ignoring vm " + vm - + " because of a lag in stopping the vm. "); - } - } else if (oldState != newState) { - _vms.put(vm, newState); - changes.put(vm, newState); - } - } - - for (Map.Entry entry : oldStates.entrySet()) { - String vm = entry.getKey(); - State oldState = entry.getValue(); - - if (s_logger.isTraceEnabled()) { - s_logger.trace("VM " + vm - + " is now missing from xen so reporting stopped"); - } - - if (oldState == State.Stopping) { - s_logger.debug("Ignoring VM " + vm - + " in transition state stopping."); - _vms.remove(vm); - } else if (oldState == State.Starting) { - s_logger.debug("Ignoring VM " + vm - + " in transition state starting."); - } else if (oldState == State.Stopped) { - _vms.remove(vm); - } else { - changes.put(entry.getKey(), State.Stopped); - } - } - } - - return changes; - } - - protected Answer execute(DestroyCommand cmd) { - return new Answer(cmd, true, null); - } -} http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/5ae15f8b/pom.xml ---------------------------------------------------------------------- diff --git a/pom.xml b/pom.xml index 99b1177..bc41967 100644 --- a/pom.xml +++ b/pom.xml @@ -154,7 +154,6 @@ usage utils deps/XenServerJava - vmware-base plugins awsapi patches http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/5ae15f8b/wscript ---------------------------------------------------------------------- diff --git a/wscript b/wscript index 561c770..66852e0 100644 --- a/wscript +++ b/wscript @@ -636,6 +636,7 @@ def rpm(context): shutil.move(tarball,_join(sourcedir,tarball)) specfile = "%s.spec"%APPNAME + Utils.exec_command("mvn install -P deps") checkdeps = lambda: c(["rpmbuild","--define","_topdir %s"%outputdir,"--nobuild",specfile]+packagever+releasever) dorpm = lambda: c(["rpmbuild","--define","_topdir %s"%outputdir,"-bb",specfile]+buildnumber+prerelease+packagever+releasever) try: checkdeps() http://git-wip-us.apache.org/repos/asf/incubator-cloudstack/blob/5ae15f8b/wscript_build ---------------------------------------------------------------------- diff --git a/wscript_build b/wscript_build index d25fb06..92f1fe9 100644 --- a/wscript_build +++ b/wscript_build @@ -164,7 +164,7 @@ def build_dependences (): bld.install_files('${JAVADIR}',start_path.ant_glob(["commons-codec-1.6.jar", "ejb-api-3.0.jar", "xmlrpc-client-3.1.3.jar", "commons-dbcp-1.4.jar", "commons-pool-1.6.jar", "gson-1.7.1.jar", "netscaler-1.0.jar", "netscaler-sdx-1.0.jar", "backport-util-concurrent-3.1.jar", "ehcache-1.5.0.jar", "httpcore-4.0.jar", "log4j-1.2.16.jar", "trilead-ssh2-build213-svnkit-1.3-patch.jar", "cglib-2.2.jar", "xmlrpc-common-3.*.jar", - "xmlrpc-client-3.*.jar", "axis-1.4.jar", "wsdl4j-1.6.2.jar", "bcprov-jdk16-1.46.jar", "jsch-0.1.42.jar", "icontrol-1.0.jar", "manageontap-1.0.jar", "vmware-vim-1.0.jar", "vmware-vim25-1.0.jar", "jasypt-1.9.0.jar", "commons-configuration-1.8.jar", "commons-lang-2.6.jar", "mail-1.4.jar", "activation-1.1.jar", "mysql-connector-java-5.1.21.jar", "hibernate-jpa-2.0-api-1.0.0.Final.jar", "hibernate-entitymanager-3.5.1-Final.jar", "hibernate-core-3.5.1-Final.jar", "hibernate-commons-annotations-3.2.0.Final.jar", "hibernate-annotations-3.5.1-Final.jar", "asm-3.1.jar", "xapi-5.6.100-1-20120825.123319-1.jar"], excl = excludes), cwd=start_path) + "xmlrpc-client-3.*.jar", "axis-1.4.jar", "wsdl4j-1.6.2.jar", "bcprov-jdk16-1.46.jar", "jsch-0.1.42.jar", "jasypt-1.9.0.jar", "commons-configuration-1.8.jar", "commons-lang-2.6.jar", "mail-1.4.jar", "activation-1.1.jar", "mysql-connector-java-5.1.21.jar", "hibernate-jpa-2.0-api-1.0.0.Final.jar", "hibernate-entitymanager-3.5.1-Final.jar", "hibernate-core-3.5.1-Final.jar", "hibernate-commons-annotations-3.2.0.Final.jar", "hibernate-annotations-3.5.1-Final.jar", "asm-3.1.jar", "xapi-5.6.100-1-SNAPSHOT.jar"], excl = excludes), cwd=start_path) #def build_console_proxy (): # binary unsubstitutable files: