git commit: updated refs/heads/master to dce34ad
Repository: cloudstack Updated Branches: refs/heads/master 39e2590a7 -> dce34ad74 Skip snapshot tests since it is not supported on LXC This closes #314 Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/dce34ad7 Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/dce34ad7 Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/dce34ad7 Branch: refs/heads/master Commit: dce34ad7477f9f56ae3be3c07e4447a8ca4748bc Parents: 39e2590 Author: sanjeev Authored: Wed May 27 12:39:40 2015 +0530 Committer: sanjeev Committed: Wed May 27 12:45:31 2015 +0530 -- test/integration/component/test_escalations_snapshots.py | 8 ++-- 1 file changed, 6 insertions(+), 2 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cloudstack/blob/dce34ad7/test/integration/component/test_escalations_snapshots.py -- diff --git a/test/integration/component/test_escalations_snapshots.py b/test/integration/component/test_escalations_snapshots.py index 0645909..bad419a 100644 --- a/test/integration/component/test_escalations_snapshots.py +++ b/test/integration/component/test_escalations_snapshots.py @@ -40,9 +40,11 @@ class TestSnapshots(cloudstackTestCase): cls.testClient = super(TestSnapshots, cls).getClsTestClient() cls.api_client = cls.testClient.getApiClient() cls.services = cls.testClient.getParsedTestDataConfig() +cls.unsupportedHypervisor = False cls.hypervisor = cls.testClient.getHypervisorInfo() -if cls.hypervisor.lower() == 'lxc': -raise unittest.SkipTest("snapshots are not supported on %s" % cls.hypervisor.lower()) +if cls.hypervisor.lower() in ("lxc"): +cls.unsupportedHypervisor = True +return # Get Domain, Zone, Template cls.domain = get_domain(cls.api_client) cls.zone = get_zone(cls.api_client, cls.testClient.getZoneForTests()) @@ -102,6 +104,8 @@ class TestSnapshots(cloudstackTestCase): self.apiClient = self.testClient.getApiClient() self.cleanup = [] +if self.unsupportedHypervisor: +self.skipTest("Snapshots are not supported on %s" %self.hypervisor) def tearDown(self): # Clean up, terminate the created resources
[2/3] git commit: updated refs/heads/master to ace44f7
Merge branch 'feature_fix_pep8_2' of https://github.com/isoutham/cloudstack into fix/pep8_issues Testing PR #304 Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/6b415cb2 Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/6b415cb2 Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/6b415cb2 Branch: refs/heads/master Commit: 6b415cb26f65863268f5ca1b09e18cf82defe9bc Parents: dce34ad 5648343 Author: wilderrodrigues Authored: Wed May 27 09:34:07 2015 +0200 Committer: wilderrodrigues Committed: Wed May 27 09:34:07 2015 +0200 -- .../patches/debian/config/opt/cloud/bin/configure.py| 12 ++-- .../patches/debian/config/opt/cloud/bin/cs/CsHelper.py | 5 +++-- .../debian/config/opt/cloud/bin/cs/CsRedundant.py | 4 ++-- .../debian/config/opt/cloud/bin/cs_firewallrules.py | 1 + systemvm/test/python/TestCsCmdLine.py | 1 - systemvm/test/python/TestCsInterface.py | 3 --- systemvm/test/python/TestCsRule.py | 2 +- systemvm/test/python/runtests.sh| 2 +- 8 files changed, 14 insertions(+), 16 deletions(-) --
[3/3] git commit: updated refs/heads/master to ace44f7
Merge branch 'fix/pep8_issues' This closes #304 Signed-off by Wilder "Ekho" Rodrigues Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/ace44f7f Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/ace44f7f Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/ace44f7f Branch: refs/heads/master Commit: ace44f7f13ef670898781f23638c579ef0ca6bea Parents: dce34ad 6b415cb Author: wilderrodrigues Authored: Wed May 27 09:54:43 2015 +0200 Committer: wilderrodrigues Committed: Wed May 27 09:54:43 2015 +0200 -- .../patches/debian/config/opt/cloud/bin/configure.py| 12 ++-- .../patches/debian/config/opt/cloud/bin/cs/CsHelper.py | 5 +++-- .../debian/config/opt/cloud/bin/cs/CsRedundant.py | 4 ++-- .../debian/config/opt/cloud/bin/cs_firewallrules.py | 1 + systemvm/test/python/TestCsCmdLine.py | 1 - systemvm/test/python/TestCsInterface.py | 3 --- systemvm/test/python/TestCsRule.py | 2 +- systemvm/test/python/runtests.sh| 2 +- 8 files changed, 14 insertions(+), 16 deletions(-) --
[1/3] git commit: updated refs/heads/master to ace44f7
Repository: cloudstack Updated Branches: refs/heads/master dce34ad74 -> ace44f7f1 Pep8 changes that got lost with the strange double push request problem last time Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/56483436 Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/56483436 Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/56483436 Branch: refs/heads/master Commit: 56483436f028aaf0821ce3c1fad144d6cbd9f47c Parents: 7673051 Author: Ian Southam Authored: Tue May 26 07:07:43 2015 -0400 Committer: Ian Southam Committed: Tue May 26 07:07:43 2015 -0400 -- .../patches/debian/config/opt/cloud/bin/configure.py| 12 ++-- .../patches/debian/config/opt/cloud/bin/cs/CsHelper.py | 5 +++-- .../debian/config/opt/cloud/bin/cs/CsRedundant.py | 4 ++-- .../debian/config/opt/cloud/bin/cs_firewallrules.py | 1 + systemvm/test/python/TestCsCmdLine.py | 1 - systemvm/test/python/TestCsInterface.py | 3 --- systemvm/test/python/TestCsRule.py | 2 +- systemvm/test/python/runtests.sh| 2 +- 8 files changed, 14 insertions(+), 16 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cloudstack/blob/56483436/systemvm/patches/debian/config/opt/cloud/bin/configure.py -- diff --git a/systemvm/patches/debian/config/opt/cloud/bin/configure.py b/systemvm/patches/debian/config/opt/cloud/bin/configure.py index c0b2ad5..5e6bc83 100755 --- a/systemvm/patches/debian/config/opt/cloud/bin/configure.py +++ b/systemvm/patches/debian/config/opt/cloud/bin/configure.py @@ -609,7 +609,7 @@ class CsForwardingRules(CsDataBag): fw_prerout_rule += " -j DNAT --to-destination %s" % rule["internal_ip"] if not rule["internal_ports"] == "any": fw_prerout_rule += ":" + self.portsToString(rule["internal_ports"], "-") - + fw_postrout_rule = "-A POSTROUTING -d %s/32 " % rule["public_ip"] if not rule["protocol"] == "any": fw_postrout_rule += " -m %s -p %s" % (rule["protocol"], rule["protocol"]) @@ -618,7 +618,7 @@ class CsForwardingRules(CsDataBag): fw_postrout_rule += " -j SNAT --to-source %s" % rule["internal_ip"] if not rule["internal_ports"] == "any": fw_postrout_rule += ":" + self.portsToString(rule["internal_ports"], "-") - + fw_output_rule = "-A OUTPUT -d %s/32" % rule["public_ip"] if not rule["protocol"] == "any": fw_output_rule += " -m %s -p %s" % (rule["protocol"], rule["protocol"]) @@ -627,7 +627,7 @@ class CsForwardingRules(CsDataBag): fw_output_rule += " -j DNAT --to-destination %s" % rule["internal_ip"] if not rule["internal_ports"] == "any": fw_output_rule += ":" + self.portsToString(rule["internal_ports"], "-") - + self.fw.append(["nat", "", fw_prerout_rule]) self.fw.append(["nat", "", fw_postrout_rule]) self.fw.append(["nat", "", fw_output_rule]) @@ -691,10 +691,10 @@ def main(argv): mon = CsMonitor("monitorservice", config) mon.process() - -#Save iptables configuration - will be loaded on reboot by the iptables-restore that is configured on /etc/rc.local + +# Save iptables configuration - will be loaded on reboot by the iptables-restore that is configured on /etc/rc.local CsHelper.save_iptables("iptables-save", "/etc/iptables/router_rules.v4") CsHelper.save_iptables("ip6tables-save", "/etc/iptables/router_rules.v6") - + if __name__ == "__main__": main(sys.argv) http://git-wip-us.apache.org/repos/asf/cloudstack/blob/56483436/systemvm/patches/debian/config/opt/cloud/bin/cs/CsHelper.py -- diff --git a/systemvm/patches/debian/config/opt/cloud/bin/cs/CsHelper.py b/systemvm/patches/debian/config/opt/cloud/bin/cs/CsHelper.py index 708422c..3b2488b 100755 --- a/systemvm/patches/debian/config/opt/cloud/bin/cs/CsHelper.py +++ b/systemvm/patches/debian/config/opt/cloud/bin/cs/CsHelper.py @@ -27,6 +27,7 @@ import shutil from netaddr import * from pprint import pprint + def is_mounted(name): for i in execute("mount"): vals = i.lstrip().split() @@ -165,10 +166,10 @@ def execute(command): def save_iptables(command, iptables_file): """ Execute command """ logging.debug("Saving iptables for %s" % command) - + result = execute(command) fIptables = open(iptables_file, "w+") - + for line in result: fIptables.write(line) fIptables.write("\n") http://git-wip-us.apache.org/repos/asf/cloudstack/blob/56483436/systemvm/patches/debian/config/opt/cloud/bin/
git commit: updated refs/heads/master to 57e02f1
Repository: cloudstack Updated Branches: refs/heads/master ace44f7f1 -> 57e02f16e Snapshot tests are not supported on Hyper-v so skipping the tests Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/57e02f16 Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/57e02f16 Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/57e02f16 Branch: refs/heads/master Commit: 57e02f16ee190b98a1850d8258c2cc68d8b85a74 Parents: ace44f7 Author: sanjeev Authored: Wed May 27 14:18:11 2015 +0530 Committer: sanjeev Committed: Wed May 27 14:19:43 2015 +0530 -- test/integration/component/test_escalations_snapshots.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/cloudstack/blob/57e02f16/test/integration/component/test_escalations_snapshots.py -- diff --git a/test/integration/component/test_escalations_snapshots.py b/test/integration/component/test_escalations_snapshots.py index bad419a..1e2b445 100644 --- a/test/integration/component/test_escalations_snapshots.py +++ b/test/integration/component/test_escalations_snapshots.py @@ -42,7 +42,7 @@ class TestSnapshots(cloudstackTestCase): cls.services = cls.testClient.getParsedTestDataConfig() cls.unsupportedHypervisor = False cls.hypervisor = cls.testClient.getHypervisorInfo() -if cls.hypervisor.lower() in ("lxc"): +if cls.hypervisor.lower() in ("lxc", "hyperv"): cls.unsupportedHypervisor = True return # Get Domain, Zone, Template
git commit: updated refs/heads/master to c961f2f
Repository: cloudstack Updated Branches: refs/heads/master 57e02f16e -> c961f2f14 CLOUDSTACK-8476: Disable enable zone pod cluster and host: --Test cases for testing the behavior of resources running on zone, cluster, pod, host and admin/non-admin user after disabling the zone, cluster, pod, host respectively Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/c961f2f1 Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/c961f2f1 Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/c961f2f1 Branch: refs/heads/master Commit: c961f2f14dec480588c735753c96ca558de2303e Parents: 57e02f1 Author: Priti Sarap Authored: Wed May 27 14:19:07 2015 +0530 Committer: Gaurav Aradhye Committed: Wed May 27 14:25:11 2015 +0530 -- .../maint/testpath_disable_enable_zone.py | 1263 -- tools/marvin/marvin/codes.py|2 + 2 files changed, 1123 insertions(+), 142 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cloudstack/blob/c961f2f1/test/integration/component/maint/testpath_disable_enable_zone.py -- diff --git a/test/integration/component/maint/testpath_disable_enable_zone.py b/test/integration/component/maint/testpath_disable_enable_zone.py index 95e7c30..aff3ae9 100644 --- a/test/integration/component/maint/testpath_disable_enable_zone.py +++ b/test/integration/component/maint/testpath_disable_enable_zone.py @@ -14,7 +14,7 @@ # KIND, either express or implied. See the License for the # specific language governing permissions and limitations # under the License. -""" Test cases for Disable enable Zone Test Path +""" Test cases for Disable enable Zone, Pod, Cluster, Host Test Path """ from nose.plugins.attrib import attr @@ -24,6 +24,9 @@ from marvin.lib.base import (Account, VirtualMachine, ServiceOffering, Zone, + Cluster, + Host, + Pod, Template, Snapshot, Volume, @@ -32,17 +35,27 @@ from marvin.lib.base import (Account, ) from marvin.lib.common import (get_domain, get_zone, + get_pod, get_template, list_volumes, list_snapshots, get_builtin_template_info ) -from marvin.cloudstackAPI import updateZone +from marvin.cloudstackAPI import (updateZone, + updateHost, + reconnectHost, + updatePod, + updateCluster + ) + from marvin.codes import (ENABLED, DISABLED, - STOPPED, - RUNNING) + ENABLE, + DISABLE, + ) +import time +from marvin.sshClient import SshClient class TestDisableEnableZone(cloudstackTestCase): @@ -53,9 +66,6 @@ class TestDisableEnableZone(cloudstackTestCase): cls.apiclient = testClient.getApiClient() cls.testdata = testClient.getParsedTestDataConfig() cls.hypervisor = cls.testClient.getHypervisorInfo() -cls.snapshotSupported = True -if cls.hypervisor.lower() in ["hyperv", "lxc"]: -cls.snapshotSupported = False # Get Zone, Domain and templates cls.domain = get_domain(cls.apiclient) @@ -177,12 +187,12 @@ class TestDisableEnableZone(cloudstackTestCase): ) # Both user and admin vms shoul be running -self.assertEqual(vm_user.state, - RUNNING, +self.assertEqual(vm_user.state.lower(), + "running", "Verify that the user vm is running") -self.assertEqual(vm_root.state, - RUNNING, +self.assertEqual(vm_root.state.lower(), + "running", "Verify that the admin vm is running") vm_root.stop(self.apiclient) @@ -196,12 +206,12 @@ class TestDisableEnableZone(cloudstackTestCase): "select state from vm_instance where name='%s'" % vm_user.name)[0][0] -self.assertEqual(root_state, - STOPPED, +self.assertEqual(root_state.lower(), + "stopped",
git commit: updated refs/heads/master to a7ab794
Repository: cloudstack Updated Branches: refs/heads/master c961f2f14 -> a7ab79405 CLOUDSTACK-8308: Adding automation test cases for VM/Volume snapshot hardening Signed-off-by: Gaurav Aradhye This closes #301 Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/a7ab7940 Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/a7ab7940 Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/a7ab7940 Branch: refs/heads/master Commit: a7ab79405228e4894b1b2f68e2105b8d0cb5d34a Parents: c961f2f Author: pritisarap12 Authored: Tue May 26 12:58:18 2015 +0530 Committer: Gaurav Aradhye Committed: Wed May 27 14:35:47 2015 +0530 -- .../testpaths/testpath_snapshot_hadrning.py | 2100 ++ tools/marvin/marvin/codes.py| 13 + 2 files changed, 2113 insertions(+) -- http://git-wip-us.apache.org/repos/asf/cloudstack/blob/a7ab7940/test/integration/testpaths/testpath_snapshot_hadrning.py -- diff --git a/test/integration/testpaths/testpath_snapshot_hadrning.py b/test/integration/testpaths/testpath_snapshot_hadrning.py new file mode 100644 index 000..d2bacd5 --- /dev/null +++ b/test/integration/testpaths/testpath_snapshot_hadrning.py @@ -0,0 +1,2100 @@ +# 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. +""" Test cases for VM/Volume snapshot Test Path +""" + +from nose.plugins.attrib import attr +from marvin.cloudstackTestCase import cloudstackTestCase, unittest +from marvin.lib.utils import (cleanup_resources, + is_snapshot_on_nfs, + validateList) +from marvin.lib.base import (Account, + Cluster, + StoragePool, + DiskOffering, + ServiceOffering, + Host, + Configurations, + Template, + VirtualMachine, + Snapshot, + SnapshotPolicy, + Volume + ) +from marvin.lib.common import (get_domain, + get_zone, + get_template, + list_volumes, + list_snapshots, + list_virtual_machines, + createChecksum, + compareChecksum + ) +from marvin.sshClient import SshClient +import time + +from marvin.codes import ( +CLUSTERTAG1, +CLUSTERTAG2, +PASS, +BACKED_UP, +UP) + +from threading import Thread + + +def checkIntegrityOfSnapshot( +self, +snapshotsToRestore, +checksumToCompare, +disk_type="root"): + +if disk_type == "root": +# Create template from snapshot +template_from_snapshot = Template.create_from_snapshot( +self.apiclient, +snapshotsToRestore, +self.testdata["template_2"]) + +self.assertNotEqual( +template_from_snapshot, +None, +"Check if result exists in list item call" +) + +time.sleep(60) +# Deploy VM +vm_from_temp = VirtualMachine.create( +self.apiclient, +self.testdata["small"], +templateid=template_from_snapshot.id, +accountid=self.account.name, +domainid=self.account.domainid, +serviceofferingid=self.service_offering.id, +zoneid=self.zone.id, +mode=self.zone.networktype +) + +self.assertNotEqual( +vm_from_temp, +None, +"Check if result exists in list item call" +) +time.sleep(60) +# Verify contents of ROOT disk match with snapshot + +compareChecksum( +self.apiclient, +
git commit: updated refs/heads/master to ce9014d
Repository: cloudstack Updated Branches: refs/heads/master a7ab79405 -> ce9014d2e Fix the NPE tht was being caught by the executeRequest() method. - The LibvirtUtilitiesHelper should have been injected, but it did not work on the Agent side. Due to that, when sending a StartCommand we were experiencing NPE, which made impossible to get SSVM/CPVM started. - The LibvirtUtilitiesHelper class is now being instantiated withing the LibvirtComputingResource Signed-off-by: Daan Hoogland This closes #318 Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/ce9014d2 Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/ce9014d2 Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/ce9014d2 Branch: refs/heads/master Commit: ce9014d2ec8e7111ae8080b7d08cc167363acccb Parents: a7ab794 Author: wilderrodrigues Authored: Wed May 27 09:16:44 2015 +0200 Committer: Daan Hoogland Committed: Wed May 27 13:19:57 2015 +0200 -- .../kvm-compute/spring-kvm-compute-context.xml | 3 - .../kvm/resource/LibvirtComputingResource.java | 92 ++-- 2 files changed, 46 insertions(+), 49 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ce9014d2/plugins/hypervisors/kvm/resources/META-INF/cloudstack/kvm-compute/spring-kvm-compute-context.xml -- diff --git a/plugins/hypervisors/kvm/resources/META-INF/cloudstack/kvm-compute/spring-kvm-compute-context.xml b/plugins/hypervisors/kvm/resources/META-INF/cloudstack/kvm-compute/spring-kvm-compute-context.xml index 10f33ec..ce596f2 100644 --- a/plugins/hypervisors/kvm/resources/META-INF/cloudstack/kvm-compute/spring-kvm-compute-context.xml +++ b/plugins/hypervisors/kvm/resources/META-INF/cloudstack/kvm-compute/spring-kvm-compute-context.xml @@ -31,7 +31,4 @@ - - http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ce9014d2/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java -- diff --git a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java index df046da..7bd02d0 100644 --- a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java +++ b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/resource/LibvirtComputingResource.java @@ -16,6 +16,51 @@ // under the License. package com.cloud.hypervisor.kvm.resource; +import java.io.BufferedReader; +import java.io.File; +import java.io.FileNotFoundException; +import java.io.FileReader; +import java.io.IOException; +import java.io.Reader; +import java.net.InetAddress; +import java.net.URI; +import java.net.URISyntaxException; +import java.util.ArrayList; +import java.util.Arrays; +import java.util.Calendar; +import java.util.Collections; +import java.util.Comparator; +import java.util.HashMap; +import java.util.HashSet; +import java.util.List; +import java.util.Map; +import java.util.Properties; +import java.util.Set; +import java.util.UUID; +import java.util.concurrent.ConcurrentHashMap; +import java.util.regex.Matcher; +import java.util.regex.Pattern; + +import javax.ejb.Local; +import javax.naming.ConfigurationException; + +import org.apache.cloudstack.storage.to.PrimaryDataStoreTO; +import org.apache.cloudstack.storage.to.VolumeObjectTO; +import org.apache.cloudstack.utils.linux.CPUStat; +import org.apache.cloudstack.utils.linux.MemStat; +import org.apache.cloudstack.utils.qemu.QemuImg.PhysicalDiskFormat; +import org.apache.commons.io.FileUtils; +import org.apache.commons.io.IOUtils; +import org.apache.log4j.Logger; +import org.libvirt.Connect; +import org.libvirt.Domain; +import org.libvirt.DomainBlockStats; +import org.libvirt.DomainInfo; +import org.libvirt.DomainInfo.DomainState; +import org.libvirt.DomainInterfaceStats; +import org.libvirt.LibvirtException; +import org.libvirt.NodeInfo; + import com.cloud.agent.api.Answer; import com.cloud.agent.api.Command; import com.cloud.agent.api.HostVmStateReportEntry; @@ -95,50 +140,6 @@ import com.cloud.utils.script.Script; import com.cloud.utils.ssh.SshHelper; import com.cloud.vm.VirtualMachine; import com.cloud.vm.VirtualMachine.PowerState; -import org.apache.cloudstack.storage.to.PrimaryDataStoreTO; -import org.apache.cloudstack.storage.to.VolumeObjectTO; -import org.apache.cloudstack.utils.linux.CPUStat; -import org.apache.cloudstack.utils.linux.MemStat; -import org.apache.cloudstack.utils.qemu.QemuImg.PhysicalDiskFormat; -import org.apache.commons.io.FileUtils; -import org.apache.commons.io.IOUtils; -import org.apache.log4j.Logger; -im
git commit: updated refs/heads/master to 646e0d9
Repository: cloudstack Updated Branches: refs/heads/master ce9014d2e -> 646e0d99d Always enter chap-secrets as a quoted field. In the event of special characters it creates and deletes the entry properly, in the event there are not special characters there is no change behavior. Signed-off-by: Remi Bergsma This closes #307 Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/646e0d99 Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/646e0d99 Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/646e0d99 Branch: refs/heads/master Commit: 646e0d99dd8c2220ff6ea82283f7bd0890fc4b62 Parents: ce9014d Author: David Bierce Authored: Tue May 26 14:07:44 2015 -0500 Committer: Remi Bergsma Committed: Wed May 27 13:42:48 2015 +0200 -- systemvm/patches/debian/vpn/opt/cloud/bin/vpn_l2tp.sh | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cloudstack/blob/646e0d99/systemvm/patches/debian/vpn/opt/cloud/bin/vpn_l2tp.sh -- diff --git a/systemvm/patches/debian/vpn/opt/cloud/bin/vpn_l2tp.sh b/systemvm/patches/debian/vpn/opt/cloud/bin/vpn_l2tp.sh index 7fb44e6..83cf4de 100755 --- a/systemvm/patches/debian/vpn/opt/cloud/bin/vpn_l2tp.sh +++ b/systemvm/patches/debian/vpn/opt/cloud/bin/vpn_l2tp.sh @@ -170,11 +170,11 @@ add_l2tp_ipsec_user() { local u=$1 local passwd=$2 - uptodate=$(grep "^$u \* $passwd \*$" /etc/ppp/chap-secrets) + uptodate=$(grep "^$u \* \"$passwd\" \*$" /etc/ppp/chap-secrets) if [ "$uptodate" == "" ] then remove_l2tp_ipsec_user $u - echo "$u * $passwd *" >> /etc/ppp/chap-secrets + echo "$u * \"$passwd\" *" >> /etc/ppp/chap-secrets fi }
git commit: updated refs/heads/master to d406e5b
Repository: cloudstack Updated Branches: refs/heads/master 646e0d99d -> d406e5b83 CLOUDSTACK-8518: Fix issues in testpath_disable_enable_zone.py Signed-off-by: Gaurav Aradhye This closes #319 Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/d406e5b8 Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/d406e5b8 Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/d406e5b8 Branch: refs/heads/master Commit: d406e5b83e1886493750f9400f89bd9c753da3e5 Parents: 646e0d9 Author: Gaurav Aradhye Authored: Wed May 27 18:25:18 2015 +0530 Committer: Gaurav Aradhye Committed: Wed May 27 18:27:21 2015 +0530 -- .../maint/testpath_disable_enable_zone.py | 253 +++ 1 file changed, 145 insertions(+), 108 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cloudstack/blob/d406e5b8/test/integration/component/maint/testpath_disable_enable_zone.py -- diff --git a/test/integration/component/maint/testpath_disable_enable_zone.py b/test/integration/component/maint/testpath_disable_enable_zone.py index aff3ae9..91b31f0 100644 --- a/test/integration/component/maint/testpath_disable_enable_zone.py +++ b/test/integration/component/maint/testpath_disable_enable_zone.py @@ -19,7 +19,8 @@ from nose.plugins.attrib import attr from marvin.cloudstackTestCase import cloudstackTestCase -from marvin.lib.utils import (cleanup_resources) +from marvin.lib.utils import (cleanup_resources, + validateList) from marvin.lib.base import (Account, VirtualMachine, ServiceOffering, @@ -53,6 +54,7 @@ from marvin.codes import (ENABLED, DISABLED, ENABLE, DISABLE, + PASS ) import time from marvin.sshClient import SshClient @@ -66,6 +68,9 @@ class TestDisableEnableZone(cloudstackTestCase): cls.apiclient = testClient.getApiClient() cls.testdata = testClient.getParsedTestDataConfig() cls.hypervisor = cls.testClient.getHypervisorInfo() +cls.snapshotSupported = True +if cls.hypervisor.lower() in ["hyperv", "lxc"]: +cls.snapshotSupported = False # Get Zone, Domain and templates cls.domain = get_domain(cls.apiclient) @@ -114,7 +119,7 @@ class TestDisableEnableZone(cloudstackTestCase): def tearDownClass(cls): try: zoneList = Zone.list(cls.apiclient, id=cls.zone.id) -if zoneList[0].allocationstate == DISABLED: +if zoneList[0].allocationstate.lower() == DISABLED.lower(): cmd = updateZone.updateZoneCmd() cmd.id = zoneList[0].id cmd.allocationstate = ENABLED @@ -221,19 +226,20 @@ class TestDisableEnableZone(cloudstackTestCase): listall=True ) -Snapshot.create( -self.apiclient, -root_volume[0].id) +if self.snapshotSupported: +Snapshot.create( +self.apiclient, +root_volume[0].id) -snapshots = list_snapshots( -self.apiclient, -volumeid=root_volume[0].id, -listall=True) +snapshots = list_snapshots( +self.apiclient, +volumeid=root_volume[0].id, +listall=True) -Template.create_from_snapshot( -self.apiclient, -snapshots[0], -self.testdata["privatetemplate"]) +Template.create_from_snapshot( +self.apiclient, +snapshots[0], +self.testdata["privatetemplate"]) builtin_info = get_builtin_template_info(self.apiclient, self.zone.id) self.testdata["privatetemplate"]["url"] = builtin_info[0] @@ -280,10 +286,11 @@ class TestDisableEnableZone(cloudstackTestCase): listall=True ) -with self.assertRaises(Exception): -Snapshot.create( -self.userapiclient, -root_volume[0].id) +if self.snapshotSupported: +with self.assertRaises(Exception): +Snapshot.create( +self.userapiclient, +root_volume[0].id) with self.assertRaises(Exception): Template.register( @@ -331,19 +338,20 @@ class TestDisableEnableZone(cloudstackTestCase): "running", "Verify that admin should create new VM") -Snapshot.create( -self.apiclient, -root_volume[0].id) +if self.snapshotSupported: +
[1/2] git commit: updated refs/heads/master to 7563ed4
Repository: cloudstack Updated Branches: refs/heads/master d406e5b83 -> 7563ed46f CLOUDSTACK-8506 extra check on unknown vlan Signed-off-by: wilderrodrigues This closes #306 Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/bbebd2d3 Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/bbebd2d3 Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/bbebd2d3 Branch: refs/heads/master Commit: bbebd2d314edc429b4a2172cb5550782f959f7b3 Parents: 646e0d9 Author: Daan Hoogland Authored: Tue May 26 16:22:28 2015 +0200 Committer: wilderrodrigues Committed: Wed May 27 14:39:16 2015 +0200 -- .../com/cloud/configuration/ConfigurationManagerImpl.java | 9 ++--- 1 file changed, 6 insertions(+), 3 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cloudstack/blob/bbebd2d3/server/src/com/cloud/configuration/ConfigurationManagerImpl.java -- diff --git a/server/src/com/cloud/configuration/ConfigurationManagerImpl.java b/server/src/com/cloud/configuration/ConfigurationManagerImpl.java index 6c22ded..445ffde 100644 --- a/server/src/com/cloud/configuration/ConfigurationManagerImpl.java +++ b/server/src/com/cloud/configuration/ConfigurationManagerImpl.java @@ -37,6 +37,8 @@ import javax.ejb.Local; import javax.inject.Inject; import javax.naming.ConfigurationException; +import org.apache.log4j.Logger; + import org.apache.cloudstack.acl.SecurityChecker; import org.apache.cloudstack.affinity.AffinityGroup; import org.apache.cloudstack.affinity.AffinityGroupService; @@ -85,7 +87,6 @@ import org.apache.cloudstack.region.dao.RegionDao; import org.apache.cloudstack.storage.datastore.db.PrimaryDataStoreDao; import org.apache.cloudstack.storage.datastore.db.StoragePoolDetailsDao; import org.apache.cloudstack.storage.datastore.db.StoragePoolVO; -import org.apache.log4j.Logger; import com.cloud.alert.AlertManager; import com.cloud.api.ApiDBUtils; @@ -3178,9 +3179,11 @@ public class ConfigurationManagerImpl extends ManagerBase implements Configurati + otherVlanGateway + " ,and netmask " + otherVlanNetmask + ", Please specify the gateway/netmask if you want to extend ip range" ); } -if (NetUtils.ipRangesOverlap(startIP, endIP, otherVlanStartIP, otherVlanEndIP)) { -throw new InvalidParameterValueException("The IP range already has IPs that overlap with the new range." + +if (!NetUtils.is31PrefixCidr(newCidr)) { +if (NetUtils.ipRangesOverlap(startIP, endIP, otherVlanStartIP, otherVlanEndIP)) { +throw new InvalidParameterValueException("The IP range already has IPs that overlap with the new range." + " Please specify a different start IP/end IP."); +} } } }
[2/2] git commit: updated refs/heads/master to 7563ed4
Merge branch 'master' of https://git-wip-us.apache.org/repos/asf/cloudstack Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/7563ed46 Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/7563ed46 Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/7563ed46 Branch: refs/heads/master Commit: 7563ed46fe1367b2b6467c9e5b4988b6cdd2fb74 Parents: bbebd2d d406e5b Author: wilderrodrigues Authored: Wed May 27 14:59:27 2015 +0200 Committer: wilderrodrigues Committed: Wed May 27 14:59:27 2015 +0200 -- .../maint/testpath_disable_enable_zone.py | 253 +++ 1 file changed, 145 insertions(+), 108 deletions(-) --
git commit: updated refs/heads/master to fabbfe5
Repository: cloudstack Updated Branches: refs/heads/master 7563ed46f -> fabbfe5f9 If storage pool of type RBD is not found then skip the tests for LXC This closes #320 Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/fabbfe5f Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/fabbfe5f Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/fabbfe5f Branch: refs/heads/master Commit: fabbfe5f9a39bf350757a88aeddb06f413a6fb84 Parents: 7563ed4 Author: sanjeev Authored: Wed May 27 17:06:40 2015 +0530 Committer: sanjeev Committed: Wed May 27 18:48:29 2015 +0530 -- test/integration/component/test_escalations_volumes.py | 8 ++-- 1 file changed, 6 insertions(+), 2 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cloudstack/blob/fabbfe5f/test/integration/component/test_escalations_volumes.py -- diff --git a/test/integration/component/test_escalations_volumes.py b/test/integration/component/test_escalations_volumes.py index 58f5845..83e0e71 100644 --- a/test/integration/component/test_escalations_volumes.py +++ b/test/integration/component/test_escalations_volumes.py @@ -46,9 +46,11 @@ class TestVolumes(cloudstackTestCase): cls.api_client = cls.testClient.getApiClient() cls.services = cls.testClient.getParsedTestDataConfig() cls.hypervisor = cls.testClient.getHypervisorInfo() +cls.find_storage_pool = True if cls.hypervisor.lower() == 'lxc': -if not find_storage_pool_type(cls.apiclient, storagetype='rbd'): -raise unittest.SkipTest("RBD storage type is required for data volumes for LXC") +if not find_storage_pool_type(cls.api_client, storagetype='rbd'): +cls.find_storage_pool = False +return # Get Domain, Zone, Template cls.domain = get_domain(cls.api_client) cls.zone = get_zone( @@ -94,6 +96,8 @@ class TestVolumes(cloudstackTestCase): def setUp(self): +if not self.find_storage_pool: +self.skipTest("Skipping tests since RBD storage type is required for data volumes for LXC") self.apiClient = self.testClient.getApiClient() self.account = Account.create( self.apiClient,
[3/3] cloudstack-www git commit: build
build Project: http://git-wip-us.apache.org/repos/asf/cloudstack-www/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack-www/commit/b8cfa3c1 Tree: http://git-wip-us.apache.org/repos/asf/cloudstack-www/tree/b8cfa3c1 Diff: http://git-wip-us.apache.org/repos/asf/cloudstack-www/diff/b8cfa3c1 Branch: refs/heads/asf-site Commit: b8cfa3c154584972dac1539b72bb78d4c552d205 Parents: 4fb0642 Author: Erik Weber Authored: Wed May 27 16:07:54 2015 +0200 Committer: Erik Weber Committed: Wed May 27 16:07:54 2015 +0200 -- content/about.html| 2 +- content/api.html | 2 +- content/archives.html | 2 +- content/bylaws.html | 2 +- content/cloudstack-faq.html | 2 +- content/contribute.html | 2 +- content/developers.html | 2 +- content/downloads.html| 2 +- content/features.html | 4 ++-- content/history.html | 2 +- content/index.html| 4 ++-- content/mailing-lists.html| 2 +- content/security.html | 2 +- content/software.html | 2 +- content/survey.html | 2 +- content/trademark-guidelines.html | 2 +- content/users.html| 4 ++-- content/videos.html | 2 +- content/who.html | 2 +- 19 files changed, 22 insertions(+), 22 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cloudstack-www/blob/b8cfa3c1/content/about.html -- diff --git a/content/about.html b/content/about.html index ebea114..530be5b 100644 --- a/content/about.html +++ b/content/about.html @@ -67,7 +67,7 @@ https://blogs.apache.org/cloudstack/"; target="_blank">Blog http://planet.apache.org/cloudstack/"; target="_blank">Planet History -http://cloudstack.apache.org/software/features.html"; target="_blank">Features +Features FAQ Who We Are Security http://git-wip-us.apache.org/repos/asf/cloudstack-www/blob/b8cfa3c1/content/api.html -- diff --git a/content/api.html b/content/api.html index 7b4f053..f2f6a4d 100644 --- a/content/api.html +++ b/content/api.html @@ -67,7 +67,7 @@ https://blogs.apache.org/cloudstack/"; target="_blank">Blog http://planet.apache.org/cloudstack/"; target="_blank">Planet History -http://cloudstack.apache.org/software/features.html"; target="_blank">Features +Features FAQ Who We Are Security http://git-wip-us.apache.org/repos/asf/cloudstack-www/blob/b8cfa3c1/content/archives.html -- diff --git a/content/archives.html b/content/archives.html index 81af24e..04fe0de 100644 --- a/content/archives.html +++ b/content/archives.html @@ -67,7 +67,7 @@ https://blogs.apache.org/cloudstack/"; target="_blank">Blog http://planet.apache.org/cloudstack/"; target="_blank">Planet History -http://cloudstack.apache.org/software/features.html"; target="_blank">Features +Features FAQ Who We Are Security http://git-wip-us.apache.org/repos/asf/cloudstack-www/blob/b8cfa3c1/content/bylaws.html -- diff --git a/content/bylaws.html b/content/bylaws.html index 79ef1c4..fab929f 100644 --- a/content/bylaws.html +++ b/content/bylaws.html @@ -67,7 +67,7 @@ https://blogs.apache.org/cloudstack/"; target="_blank">Blog http://planet.apache.org/cloudstack/"; target="_blank">Planet History -http://cloudstack.apache.org/software/features.html"; target="_blank">Features +Features FAQ Who We Are Security http://git-wip-us.apache.org/repos/asf/cloudstack-www/blob/b8cfa3c1/content/cloudstack-faq.html -- diff --git a/content/cloudstack-faq.html b/content/cloudstack-faq.html index f4aec29..e71c34e 100644 --- a/content/cloudstack-faq.html +++ b/content/cloudstack-faq.html @@ -67,7 +67,7 @@ https://blogs.apache.org/cloudstack/"; target="_blank">Blog http://planet.apache.org/cloudstack/"; target="_blank">Planet History -http://cloudstack.apache.org/software/features.html"; target="_blank">Features +Features FAQ Who We Are
[1/3] cloudstack-www git commit: Changed name and URL for Dublin event
Repository: cloudstack-www Updated Branches: refs/heads/asf-site f2d49d5e8 -> b8cfa3c15 refs/heads/master f2d49d5e8 -> 4fb064237 Changed name and URL for Dublin event This closes #6 Signed-off-by: Erik Weber Project: http://git-wip-us.apache.org/repos/asf/cloudstack-www/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack-www/commit/4fb06423 Tree: http://git-wip-us.apache.org/repos/asf/cloudstack-www/tree/4fb06423 Diff: http://git-wip-us.apache.org/repos/asf/cloudstack-www/diff/4fb06423 Branch: refs/heads/asf-site Commit: 4fb0642378bc34f572a4edd17afae83d40e98d52 Parents: f2d49d5 Author: Jan-Arve Nygård Authored: Fri May 22 22:32:32 2015 +0200 Committer: Erik Weber Committed: Wed May 27 15:59:41 2015 +0200 -- source/index.html.erb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/cloudstack-www/blob/4fb06423/source/index.html.erb -- diff --git a/source/index.html.erb b/source/index.html.erb index 5b1d499..43ff543 100644 --- a/source/index.html.erb +++ b/source/index.html.erb @@ -124,7 +124,7 @@ Join Us CloudStack Days http://events.linuxfoundation.org/events/cloudstack-seattle";>Seattle 2015 CloudStack Days http://events.linuxfoundation.org/events/cloudstack-austin";>Austin 2015 CloudStack Days http://events.linuxfoundation.org/events/cloudstack-tokyo";>Tokyo 2015 - CloudStack Days http://events.linuxfoundation.org/events/cloudstack-dublin";>Dublin 2015 + CloudStack Collaboration Conference Europe http://events.linuxfoundation.org/events/cloudstack-collaboration-conference-europe";>Dublin 2015
[2/3] cloudstack-www git commit: Changed name and URL for Dublin event
Changed name and URL for Dublin event This closes #6 Signed-off-by: Erik Weber Project: http://git-wip-us.apache.org/repos/asf/cloudstack-www/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack-www/commit/4fb06423 Tree: http://git-wip-us.apache.org/repos/asf/cloudstack-www/tree/4fb06423 Diff: http://git-wip-us.apache.org/repos/asf/cloudstack-www/diff/4fb06423 Branch: refs/heads/master Commit: 4fb0642378bc34f572a4edd17afae83d40e98d52 Parents: f2d49d5 Author: Jan-Arve Nygård Authored: Fri May 22 22:32:32 2015 +0200 Committer: Erik Weber Committed: Wed May 27 15:59:41 2015 +0200 -- source/index.html.erb | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) -- http://git-wip-us.apache.org/repos/asf/cloudstack-www/blob/4fb06423/source/index.html.erb -- diff --git a/source/index.html.erb b/source/index.html.erb index 5b1d499..43ff543 100644 --- a/source/index.html.erb +++ b/source/index.html.erb @@ -124,7 +124,7 @@ Join Us CloudStack Days http://events.linuxfoundation.org/events/cloudstack-seattle";>Seattle 2015 CloudStack Days http://events.linuxfoundation.org/events/cloudstack-austin";>Austin 2015 CloudStack Days http://events.linuxfoundation.org/events/cloudstack-tokyo";>Tokyo 2015 - CloudStack Days http://events.linuxfoundation.org/events/cloudstack-dublin";>Dublin 2015 + CloudStack Collaboration Conference Europe http://events.linuxfoundation.org/events/cloudstack-collaboration-conference-europe";>Dublin 2015
[10/10] git commit: updated refs/heads/master to b155129
Fixing the packaging of the Xen resource tests - The package declaration of all Test classes was point to a package that was not represented as a directory - For example: Class A had "package b.c.d;" as declaration, but the class A was under directory "c" Maven was bulding the project and executing the tests just fine because it uses "-sourcepath". However, with IDEs and javac it would fail. Signed-off-by: wilderrodrigues This closes #317 Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/b155129a Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/b155129a Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/b155129a Branch: refs/heads/master Commit: b155129ae8fb9e9fe17dc558cd1b292f097d527e Parents: fabbfe5 Author: wilderrodrigues Authored: Tue May 26 10:43:38 2015 +0200 Committer: wilderrodrigues Committed: Wed May 27 16:06:33 2015 +0200 -- .../xenserver/resource/CitrixResourceBase.java |2 +- .../citrix/CitrixAttachIsoCommandWrapper.java | 136 -- .../CitrixAttachVolumeCommandWrapper.java | 146 -- ...trixCheckConsoleProxyLoadCommandWrapper.java | 43 - .../citrix/CitrixCheckHealthCommandWrapper.java | 37 - .../CitrixCheckNetworkCommandWrapper.java | 96 - .../citrix/CitrixCheckOnHostCommandWrapper.java | 36 - .../citrix/CitrixCheckSshCommandWrapper.java| 65 - ...CitrixCheckVirtualMachineCommandWrapper.java | 50 - .../CitrixCleanupNetworkRulesCmdWrapper.java| 56 - ...trixClusterVMMetaDataSyncCommandWrapper.java | 59 - .../CitrixConsoleProxyLoadCommandWrapper.java | 83 - .../citrix/CitrixCreateCommandWrapper.java | 84 - .../CitrixCreateStoragePoolCommandWrapper.java | 59 - .../CitrixCreateVMSnapshotCommandWrapper.java | 190 -- .../CitrixDeleteStoragePoolCommandWrapper.java | 54 - .../CitrixDeleteVMSnapshotCommandWrapper.java | 92 - .../citrix/CitrixDestroyCommandWrapper.java | 85 - .../CitrixGetHostStatsCommandWrapper.java | 50 - .../CitrixGetStorageStatsCommandWrapper.java| 71 - .../CitrixGetVmDiskStatsCommandWrapper.java | 36 - .../citrix/CitrixGetVmStatsCommandWrapper.java | 84 - .../citrix/CitrixGetVncPortCommandWrapper.java | 58 - .../citrix/CitrixMaintainCommandWrapper.java| 77 - .../citrix/CitrixMigrateCommandWrapper.java | 86 - .../CitrixModifySshKeysCommandWrapper.java | 35 - .../CitrixModifyStoragePoolCommandWrapper.java | 98 - .../CitrixNetworkElementCommandWrapper.java | 37 - ...itrixNetworkRulesSystemVmCommandWrapper.java | 47 - ...NetworkRulesVmSecondaryIpCommandWrapper.java | 46 - .../CitrixOvsCreateGreTunnelCommandWrapper.java | 69 - .../CitrixOvsCreateTunnelCommandWrapper.java| 69 - .../CitrixOvsDeleteFlowCommandWrapper.java | 64 - .../CitrixOvsDestroyBridgeCommandWrapper.java | 55 - .../CitrixOvsDestroyTunnelCommandWrapper.java | 60 - .../CitrixOvsFetchInterfaceCommandWrapper.java | 73 - .../CitrixOvsSetTagAndFlowCommandWrapper.java | 74 - .../CitrixOvsSetupBridgeCommandWrapper.java | 47 - ...VpcPhysicalTopologyConfigCommandWrapper.java | 59 - ...OvsVpcRoutingPolicyConfigCommandWrapper.java | 59 - .../CitrixPerformanceMonitorCommandWrapper.java | 43 - .../citrix/CitrixPingTestCommandWrapper.java| 49 - .../citrix/CitrixPlugNicCommandWrapper.java | 94 - ...CitrixPrepareForMigrationCommandWrapper.java | 63 - ...rixPrimaryStorageDownloadCommandWrapper.java | 85 - .../citrix/CitrixPvlanSetupCommandWrapper.java | 94 - .../citrix/CitrixReadyCommandWrapper.java | 77 - .../citrix/CitrixRebootCommandWrapper.java | 70 - .../CitrixRebootRouterCommandWrapper.java | 54 - .../wrapper/citrix/CitrixRequestWrapper.java| 124 -- .../CitrixResizeVolumeCommandWrapper.java | 54 - .../CitrixRevertToVMSnapshotCommandWrapper.java | 112 -- .../citrix/CitrixScaleVmCommandWrapper.java | 108 - .../CitrixSecurityGroupRulesCommandWrapper.java | 63 - .../citrix/CitrixSetupCommandWrapper.java | 202 -- .../citrix/CitrixStartCommandWrapper.java | 212 -- .../citrix/CitrixStopCommandWrapper.java| 175 -- .../CitrixStorageSubSystemCommandWrapper.java | 38 - .../citrix/CitrixUnPlugNicCommandWrapper.java | 74 - .../CitrixUpdateHostPasswordCommandWrapper.java | 36 - .../CitrixUpgradeSnapshotCommandWrapper.java| 66 - ...trixWatchConsoleProxyLoadCommandWrapper.java | 43 - .../xenbase/CitrixAttachIsoCommandWrapper.java | 136 ++ .../CitrixAttachVolumeCommandWrapper.java | 146 ++ ...trixCheckConsoleProxyLoadCommandWrapper.java | 43 + .../CitrixCheckHealthCommandWrapper.java| 37 + .../CitrixCheckNetworkCommandWrapper.java | 96 + .../CitrixCheckOnHostCommandWrapper.java| 36 + .../xenbase
[03/10] git commit: updated refs/heads/master to b155129
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/b155129a/plugins/hypervisors/xenserver/test/com/cloud/hypervisor/xenserver/resource/wrapper/XenServer56FP1WrapperTest.java -- diff --git a/plugins/hypervisors/xenserver/test/com/cloud/hypervisor/xenserver/resource/wrapper/XenServer56FP1WrapperTest.java b/plugins/hypervisors/xenserver/test/com/cloud/hypervisor/xenserver/resource/wrapper/XenServer56FP1WrapperTest.java deleted file mode 100644 index 8333f3c..000 --- a/plugins/hypervisors/xenserver/test/com/cloud/hypervisor/xenserver/resource/wrapper/XenServer56FP1WrapperTest.java +++ /dev/null @@ -1,65 +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.xenserver.resource.wrapper.citrix; - -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotNull; -import static org.mockito.Mockito.times; -import static org.mockito.Mockito.verify; -import static org.mockito.Mockito.when; - -import org.junit.Test; -import org.junit.runner.RunWith; -import org.mockito.Mock; -import org.mockito.Mockito; -import org.powermock.modules.junit4.PowerMockRunner; - -import com.cloud.agent.api.Answer; -import com.cloud.agent.api.FenceCommand; -import com.cloud.host.Host; -import com.cloud.hypervisor.xenserver.resource.XenServer56FP1Resource; -import com.cloud.vm.VMInstanceVO; -import com.xensource.xenapi.Connection; - -@RunWith(PowerMockRunner.class) -public class XenServer56FP1WrapperTest { - -@Mock -private XenServer56FP1Resource xenServer56Resource; - -@Test -public void testFenceCommand() { -final VMInstanceVO vm = Mockito.mock(VMInstanceVO.class); -final Host host = Mockito.mock(Host.class); - -final Connection conn = Mockito.mock(Connection.class); - -final FenceCommand fenceCommand = new FenceCommand(vm, host); - -final CitrixRequestWrapper wrapper = CitrixRequestWrapper.getInstance(); -assertNotNull(wrapper); - -when(xenServer56Resource.getConnection()).thenReturn(conn); - -final Answer answer = wrapper.execute(fenceCommand, xenServer56Resource); - -verify(xenServer56Resource, times(1)).getConnection(); -verify(xenServer56Resource, times(1)).checkHeartbeat(fenceCommand.getHostGuid()); - -assertFalse(answer.getResult()); -} -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/cloudstack/blob/b155129a/plugins/hypervisors/xenserver/test/com/cloud/hypervisor/xenserver/resource/wrapper/XenServer56WrapperTest.java -- diff --git a/plugins/hypervisors/xenserver/test/com/cloud/hypervisor/xenserver/resource/wrapper/XenServer56WrapperTest.java b/plugins/hypervisors/xenserver/test/com/cloud/hypervisor/xenserver/resource/wrapper/XenServer56WrapperTest.java deleted file mode 100644 index 57f4d82..000 --- a/plugins/hypervisors/xenserver/test/com/cloud/hypervisor/xenserver/resource/wrapper/XenServer56WrapperTest.java +++ /dev/null @@ -1,177 +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.xenserver.resource.wrapper.citrix; - -import static org.junit.Assert.assertFalse; -import static org.junit.Assert.assertNotNull; -import static org.junit.Assert.assertTrue; -import static org.mockito.Mockito.times; -import static org.mockito.Mockito.verify; -import stati
[06/10] git commit: updated refs/heads/master to b155129
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/b155129a/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/wrapper/xenbase/CitrixGetVmDiskStatsCommandWrapper.java -- diff --git a/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/wrapper/xenbase/CitrixGetVmDiskStatsCommandWrapper.java b/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/wrapper/xenbase/CitrixGetVmDiskStatsCommandWrapper.java new file mode 100644 index 000..04090ce --- /dev/null +++ b/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/wrapper/xenbase/CitrixGetVmDiskStatsCommandWrapper.java @@ -0,0 +1,36 @@ +// +// 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.xenserver.resource.wrapper.xenbase; + +import com.cloud.agent.api.Answer; +import com.cloud.agent.api.GetVmDiskStatsAnswer; +import com.cloud.agent.api.GetVmDiskStatsCommand; +import com.cloud.hypervisor.xenserver.resource.CitrixResourceBase; +import com.cloud.resource.CommandWrapper; +import com.cloud.resource.ResourceWrapper; + +@ResourceWrapper(handles = GetVmDiskStatsCommand.class) +public final class CitrixGetVmDiskStatsCommandWrapper extends CommandWrapper { + +@Override +public Answer execute(final GetVmDiskStatsCommand command, final CitrixResourceBase citrixResourceBase) { +return new GetVmDiskStatsAnswer(command, null, null, null); +} +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/cloudstack/blob/b155129a/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/wrapper/xenbase/CitrixGetVmStatsCommandWrapper.java -- diff --git a/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/wrapper/xenbase/CitrixGetVmStatsCommandWrapper.java b/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/wrapper/xenbase/CitrixGetVmStatsCommandWrapper.java new file mode 100644 index 000..700c04a --- /dev/null +++ b/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/wrapper/xenbase/CitrixGetVmStatsCommandWrapper.java @@ -0,0 +1,84 @@ +// +// 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.xenserver.resource.wrapper.xenbase; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import org.apache.log4j.Logger; +import org.apache.xmlrpc.XmlRpcException; + +import com.cloud.agent.api.Answer; +import com.cloud.agent.api.GetVmStatsAnswer; +import com.cloud.agent.api.GetVmStatsCommand; +import com.cloud.agent.api.VmStatsEntry; +import com.cloud.hypervisor.xenserver.resource.CitrixResourceBase; +import com.cloud.resource.CommandWrapper; +import com.cloud.resource.ResourceWrapper; +import com.xensource.xenapi.Connection; +import com.xensource.xenapi.Types.XenAPIException; +import com.xensource.xenapi.VM; + +@ResourceWrapper(handles = GetVmStatsCommand.class) +public final class CitrixGetVmStatsCommandWrapper extends CommandWrapper { + +private static final Logger s_logger = Logger.getLogger(CitrixGetVmStatsCommandWrapper.class); + +@Override +public Answer execute(final GetVmStatsCommand command, final CitrixResourceBase citrixResourceBase) { +final Connection conn = citrixResourceBa
[01/10] git commit: updated refs/heads/master to b155129
Repository: cloudstack Updated Branches: refs/heads/master fabbfe5f9 -> b155129ae http://git-wip-us.apache.org/repos/asf/cloudstack/blob/b155129a/plugins/hypervisors/xenserver/test/com/cloud/hypervisor/xenserver/resource/wrapper/xenbase/XenServer56WrapperTest.java -- diff --git a/plugins/hypervisors/xenserver/test/com/cloud/hypervisor/xenserver/resource/wrapper/xenbase/XenServer56WrapperTest.java b/plugins/hypervisors/xenserver/test/com/cloud/hypervisor/xenserver/resource/wrapper/xenbase/XenServer56WrapperTest.java new file mode 100644 index 000..d69e265 --- /dev/null +++ b/plugins/hypervisors/xenserver/test/com/cloud/hypervisor/xenserver/resource/wrapper/xenbase/XenServer56WrapperTest.java @@ -0,0 +1,177 @@ +// 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.xenserver.resource.wrapper.xenbase; + +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertTrue; +import static org.mockito.Mockito.times; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.Mock; +import org.mockito.Mockito; +import org.powermock.modules.junit4.PowerMockRunner; + +import com.cloud.agent.api.Answer; +import com.cloud.agent.api.CheckOnHostCommand; +import com.cloud.agent.api.FenceCommand; +import com.cloud.agent.api.NetworkUsageCommand; +import com.cloud.agent.api.SetupCommand; +import com.cloud.host.Host; +import com.cloud.host.HostEnvironment; +import com.cloud.hypervisor.xenserver.resource.XenServer56Resource; +import com.cloud.hypervisor.xenserver.resource.XsHost; +import com.cloud.utils.ExecutionResult; +import com.cloud.vm.VMInstanceVO; +import com.xensource.xenapi.Connection; + +@RunWith(PowerMockRunner.class) +public class XenServer56WrapperTest { + +@Mock +private XenServer56Resource xenServer56Resource; + +@Test +public void testCheckOnHostCommand() { +final com.cloud.host.Host host = Mockito.mock(com.cloud.host.Host.class); +final CheckOnHostCommand onHostCommand = new CheckOnHostCommand(host); + +final CitrixRequestWrapper wrapper = CitrixRequestWrapper.getInstance(); +assertNotNull(wrapper); + +final Answer answer = wrapper.execute(onHostCommand, xenServer56Resource); + +assertTrue(answer.getResult()); +} + +@Test +public void testFenceCommand() { +final VMInstanceVO vm = Mockito.mock(VMInstanceVO.class); +final Host host = Mockito.mock(Host.class); + +final Connection conn = Mockito.mock(Connection.class); + +final FenceCommand fenceCommand = new FenceCommand(vm, host); + +final CitrixRequestWrapper wrapper = CitrixRequestWrapper.getInstance(); +assertNotNull(wrapper); + +when(xenServer56Resource.getConnection()).thenReturn(conn); + +final Answer answer = wrapper.execute(fenceCommand, xenServer56Resource); + +verify(xenServer56Resource, times(1)).getConnection(); +verify(xenServer56Resource, times(1)).checkHeartbeat(fenceCommand.getHostGuid()); + +assertFalse(answer.getResult()); +} + +@Test +public void testNetworkUsageCommandSuccess() { +final Connection conn = Mockito.mock(Connection.class); + +final NetworkUsageCommand networkCommand = new NetworkUsageCommand("192.168.10.10", "domRName", false, "192.168.10.1"); + +final CitrixRequestWrapper wrapper = CitrixRequestWrapper.getInstance(); +assertNotNull(wrapper); + +when(xenServer56Resource.getConnection()).thenReturn(conn); +when(xenServer56Resource.getNetworkStats(conn, networkCommand.getPrivateIP())).thenReturn(new long[]{1, 1}); + +final Answer answer = wrapper.execute(networkCommand, xenServer56Resource); + +verify(xenServer56Resource, times(1)).getConnection(); + +assertTrue(answer.getResult()); +} + +@Test +public void testNetworkUsageCommandFailure() { +final Connection conn = Mockito.mock(Connection.class); + +final NetworkUsageCommand ne
[04/10] git commit: updated refs/heads/master to b155129
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/b155129a/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/wrapper/xenbase/CitrixUpgradeSnapshotCommandWrapper.java -- diff --git a/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/wrapper/xenbase/CitrixUpgradeSnapshotCommandWrapper.java b/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/wrapper/xenbase/CitrixUpgradeSnapshotCommandWrapper.java new file mode 100644 index 000..370cfcf --- /dev/null +++ b/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/wrapper/xenbase/CitrixUpgradeSnapshotCommandWrapper.java @@ -0,0 +1,66 @@ +// +// 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.xenserver.resource.wrapper.xenbase; + +import java.net.URI; + +import org.apache.log4j.Logger; + +import com.cloud.agent.api.Answer; +import com.cloud.agent.api.UpgradeSnapshotCommand; +import com.cloud.hypervisor.xenserver.resource.CitrixResourceBase; +import com.cloud.resource.CommandWrapper; +import com.cloud.resource.ResourceWrapper; +import com.xensource.xenapi.Connection; + +@ResourceWrapper(handles = UpgradeSnapshotCommand.class) +public final class CitrixUpgradeSnapshotCommandWrapper extends CommandWrapper { + +private static final Logger s_logger = Logger.getLogger(CitrixUpgradeSnapshotCommandWrapper.class); + +@Override +public Answer execute(final UpgradeSnapshotCommand command, final CitrixResourceBase citrixResourceBase) { +final String secondaryStorageUrl = command.getSecondaryStorageUrl(); +final String backedUpSnapshotUuid = command.getSnapshotUuid(); +final Long volumeId = command.getVolumeId(); +final Long accountId = command.getAccountId(); +final Long templateId = command.getTemplateId(); +final Long tmpltAcountId = command.getTmpltAccountId(); +final String version = command.getVersion(); + +if (!version.equals("2.1")) { +return new Answer(command, true, "success"); +} +try { +final Connection conn = citrixResourceBase.getConnection(); +final URI uri = new URI(secondaryStorageUrl); +final String secondaryStorageMountPath = uri.getHost() + ":" + uri.getPath(); +final String snapshotPath = secondaryStorageMountPath + "/snapshots/" + accountId + "/" + volumeId + "/" + backedUpSnapshotUuid + ".vhd"; +final String templatePath = secondaryStorageMountPath + "/template/tmpl/" + tmpltAcountId + "/" + templateId; +citrixResourceBase.upgradeSnapshot(conn, templatePath, snapshotPath); +return new Answer(command, true, "success"); +} catch (final Exception e) { +final String details = "upgrading snapshot " + backedUpSnapshotUuid + " failed due to " + e.toString(); +s_logger.error(details, e); + +} +return new Answer(command, false, "failure"); +} +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/cloudstack/blob/b155129a/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/wrapper/xenbase/CitrixWatchConsoleProxyLoadCommandWrapper.java -- diff --git a/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/wrapper/xenbase/CitrixWatchConsoleProxyLoadCommandWrapper.java b/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/wrapper/xenbase/CitrixWatchConsoleProxyLoadCommandWrapper.java new file mode 100644 index 000..32a76d6 --- /dev/null +++ b/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/wrapper/xenbase/CitrixWatchConsoleProxyLoadCommandWrapper.java @@ -0,0 +1,43 @@ +// +// 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 m
[09/10] git commit: updated refs/heads/master to b155129
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/b155129a/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/wrapper/citrix/CitrixGetStorageStatsCommandWrapper.java -- diff --git a/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/wrapper/citrix/CitrixGetStorageStatsCommandWrapper.java b/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/wrapper/citrix/CitrixGetStorageStatsCommandWrapper.java deleted file mode 100644 index 404531a..000 --- a/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/wrapper/citrix/CitrixGetStorageStatsCommandWrapper.java +++ /dev/null @@ -1,71 +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.xenserver.resource.wrapper.citrix; - -import java.util.Set; - -import org.apache.log4j.Logger; -import org.apache.xmlrpc.XmlRpcException; - -import com.cloud.agent.api.Answer; -import com.cloud.agent.api.GetStorageStatsAnswer; -import com.cloud.agent.api.GetStorageStatsCommand; -import com.cloud.hypervisor.xenserver.resource.CitrixResourceBase; -import com.cloud.resource.CommandWrapper; -import com.cloud.resource.ResourceWrapper; -import com.xensource.xenapi.Connection; -import com.xensource.xenapi.SR; -import com.xensource.xenapi.Types.XenAPIException; - -@ResourceWrapper(handles = GetStorageStatsCommand.class) -public final class CitrixGetStorageStatsCommandWrapper extends CommandWrapper { - -private static final Logger s_logger = Logger.getLogger(CitrixGetStorageStatsCommandWrapper.class); - -@Override -public Answer execute(final GetStorageStatsCommand command, final CitrixResourceBase citrixResourceBase) { -final Connection conn = citrixResourceBase.getConnection(); -try { -final Set srs = SR.getByNameLabel(conn, command.getStorageId()); -if (srs.size() != 1) { -final String msg = "There are " + srs.size() + " storageid: " + command.getStorageId(); -s_logger.warn(msg); -return new GetStorageStatsAnswer(command, msg); -} -final SR sr = srs.iterator().next(); -sr.scan(conn); -final long capacity = sr.getPhysicalSize(conn); -final long used = sr.getPhysicalUtilisation(conn); -return new GetStorageStatsAnswer(command, capacity, used); -} catch (final XenAPIException e) { -final String msg = "GetStorageStats Exception:" + e.toString() + "host:" + citrixResourceBase.getHost().getUuid() + "storageid: " + command.getStorageId(); -s_logger.warn(msg); -return new GetStorageStatsAnswer(command, msg); -} catch (final XmlRpcException e) { -final String msg = "GetStorageStats Exception:" + e.getMessage() + "host:" + citrixResourceBase.getHost().getUuid() + "storageid: " + command.getStorageId(); -s_logger.warn(msg); -return new GetStorageStatsAnswer(command, msg); -} catch (final Exception e) { -final String msg = "GetStorageStats Exception:" + e.getMessage() + "host:" + citrixResourceBase.getHost().getUuid() + "storageid: " + command.getStorageId(); -s_logger.warn(msg); -return new GetStorageStatsAnswer(command, msg); -} -} -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/cloudstack/blob/b155129a/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/wrapper/citrix/CitrixGetVmDiskStatsCommandWrapper.java -- diff --git a/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/wrapper/citrix/CitrixGetVmDiskStatsCommandWrapper.java b/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/wrapper/citrix/CitrixGetVmDiskStatsCommandWrapper.java deleted file mode 100644 index 958d48f..000 --- a/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/wrapper/citrix/CitrixGetVmDiskStatsCommandWrapper.java +++ /dev/null @@ -1,36 +0,0 @@ -// -// Lic
[02/10] git commit: updated refs/heads/master to b155129
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/b155129a/plugins/hypervisors/xenserver/test/com/cloud/hypervisor/xenserver/resource/wrapper/xenbase/CitrixRequestWrapperTest.java -- diff --git a/plugins/hypervisors/xenserver/test/com/cloud/hypervisor/xenserver/resource/wrapper/xenbase/CitrixRequestWrapperTest.java b/plugins/hypervisors/xenserver/test/com/cloud/hypervisor/xenserver/resource/wrapper/xenbase/CitrixRequestWrapperTest.java new file mode 100644 index 000..1071485 --- /dev/null +++ b/plugins/hypervisors/xenserver/test/com/cloud/hypervisor/xenserver/resource/wrapper/xenbase/CitrixRequestWrapperTest.java @@ -0,0 +1,1842 @@ +// 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.xenserver.resource.wrapper.xenbase; + +import static org.junit.Assert.assertEquals; +import static org.junit.Assert.assertFalse; +import static org.junit.Assert.assertNotNull; +import static org.junit.Assert.assertNull; +import static org.junit.Assert.assertTrue; +import static org.junit.Assert.fail; +import static org.mockito.Mockito.spy; +import static org.mockito.Mockito.times; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +import java.net.URI; +import java.util.ArrayList; +import java.util.Hashtable; +import java.util.List; +import java.util.Map; + +import org.apache.cloudstack.storage.command.AttachAnswer; +import org.apache.cloudstack.storage.command.AttachCommand; +import org.apache.cloudstack.storage.datastore.db.StoragePoolVO; +import org.apache.cloudstack.storage.to.VolumeObjectTO; +import org.apache.xmlrpc.XmlRpcException; +import org.apache.xmlrpc.client.XmlRpcClient; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.Mock; +import org.mockito.Mockito; +import org.mockito.runners.MockitoJUnitRunner; +import org.powermock.api.mockito.PowerMockito; + +import com.cloud.agent.api.Answer; +import com.cloud.agent.api.AttachIsoCommand; +import com.cloud.agent.api.AttachVolumeCommand; +import com.cloud.agent.api.CheckHealthCommand; +import com.cloud.agent.api.CheckNetworkCommand; +import com.cloud.agent.api.CheckOnHostCommand; +import com.cloud.agent.api.CheckVirtualMachineCommand; +import com.cloud.agent.api.CleanupNetworkRulesCmd; +import com.cloud.agent.api.ClusterVMMetaDataSyncCommand; +import com.cloud.agent.api.Command; +import com.cloud.agent.api.CreateStoragePoolCommand; +import com.cloud.agent.api.CreateVMSnapshotCommand; +import com.cloud.agent.api.DeleteStoragePoolCommand; +import com.cloud.agent.api.DeleteVMSnapshotCommand; +import com.cloud.agent.api.GetHostStatsCommand; +import com.cloud.agent.api.GetStorageStatsCommand; +import com.cloud.agent.api.GetVmDiskStatsCommand; +import com.cloud.agent.api.GetVmStatsCommand; +import com.cloud.agent.api.GetVncPortCommand; +import com.cloud.agent.api.MaintainCommand; +import com.cloud.agent.api.MigrateCommand; +import com.cloud.agent.api.ModifySshKeysCommand; +import com.cloud.agent.api.ModifyStoragePoolCommand; +import com.cloud.agent.api.NetworkRulesSystemVmCommand; +import com.cloud.agent.api.NetworkRulesVmSecondaryIpCommand; +import com.cloud.agent.api.OvsCreateGreTunnelCommand; +import com.cloud.agent.api.OvsCreateTunnelCommand; +import com.cloud.agent.api.OvsDeleteFlowCommand; +import com.cloud.agent.api.OvsDestroyBridgeCommand; +import com.cloud.agent.api.OvsDestroyTunnelCommand; +import com.cloud.agent.api.OvsFetchInterfaceCommand; +import com.cloud.agent.api.OvsSetTagAndFlowCommand; +import com.cloud.agent.api.OvsSetupBridgeCommand; +import com.cloud.agent.api.OvsVpcPhysicalTopologyConfigCommand; +import com.cloud.agent.api.OvsVpcRoutingPolicyConfigCommand; +import com.cloud.agent.api.PerformanceMonitorCommand; +import com.cloud.agent.api.PingTestCommand; +import com.cloud.agent.api.PlugNicCommand; +import com.cloud.agent.api.PrepareForMigrationCommand; +import com.cloud.agent.api.PvlanSetupCommand; +import com.cloud.agent.api.ReadyCommand; +import com.cloud.agent.api.RebootAnswer; +import com.cloud.agent.api.RebootCommand; +import com.cloud.agent.api.RebootRouterCommand; +import com.cloud.agent.api.RevertToVMSnapshotCommand; +import co
[08/10] git commit: updated refs/heads/master to b155129
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/b155129a/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/wrapper/citrix/CitrixPrepareForMigrationCommandWrapper.java -- diff --git a/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/wrapper/citrix/CitrixPrepareForMigrationCommandWrapper.java b/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/wrapper/citrix/CitrixPrepareForMigrationCommandWrapper.java deleted file mode 100644 index eb89c11..000 --- a/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/wrapper/citrix/CitrixPrepareForMigrationCommandWrapper.java +++ /dev/null @@ -1,63 +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.xenserver.resource.wrapper.citrix; - -import org.apache.log4j.Logger; - -import com.cloud.agent.api.Answer; -import com.cloud.agent.api.PrepareForMigrationAnswer; -import com.cloud.agent.api.PrepareForMigrationCommand; -import com.cloud.agent.api.to.NicTO; -import com.cloud.agent.api.to.VirtualMachineTO; -import com.cloud.hypervisor.xenserver.resource.CitrixResourceBase; -import com.cloud.resource.CommandWrapper; -import com.cloud.resource.ResourceWrapper; -import com.xensource.xenapi.Connection; - -@ResourceWrapper(handles = PrepareForMigrationCommand.class) -public final class CitrixPrepareForMigrationCommandWrapper extends CommandWrapper { - -private static final Logger s_logger = Logger.getLogger(CitrixPrepareForMigrationCommandWrapper.class); - -@Override -public Answer execute(final PrepareForMigrationCommand command, final CitrixResourceBase citrixResourceBase) { -final Connection conn = citrixResourceBase.getConnection(); - -final VirtualMachineTO vm = command.getVirtualMachine(); -if (s_logger.isDebugEnabled()) { -s_logger.debug("Preparing host for migrating " + vm); -} - -final NicTO[] nics = vm.getNics(); -try { -citrixResourceBase.prepareISO(conn, vm.getName()); - -for (final NicTO nic : nics) { -citrixResourceBase.getNetwork(conn, nic); -} -s_logger.debug("4. The VM " + vm.getName() + " is in Migrating state"); - -return new PrepareForMigrationAnswer(command); -} catch (final Exception e) { -s_logger.warn("Catch Exception " + e.getClass().getName() + " prepare for migration failed due to " + e.toString(), e); -return new PrepareForMigrationAnswer(command, e); -} -} -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/cloudstack/blob/b155129a/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/wrapper/citrix/CitrixPrimaryStorageDownloadCommandWrapper.java -- diff --git a/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/wrapper/citrix/CitrixPrimaryStorageDownloadCommandWrapper.java b/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/wrapper/citrix/CitrixPrimaryStorageDownloadCommandWrapper.java deleted file mode 100644 index 39ea92c..000 --- a/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/wrapper/citrix/CitrixPrimaryStorageDownloadCommandWrapper.java +++ /dev/null @@ -1,85 +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 -// spe
[07/10] git commit: updated refs/heads/master to b155129
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/b155129a/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/wrapper/citrix/CitrixUpdateHostPasswordCommandWrapper.java -- diff --git a/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/wrapper/citrix/CitrixUpdateHostPasswordCommandWrapper.java b/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/wrapper/citrix/CitrixUpdateHostPasswordCommandWrapper.java deleted file mode 100644 index 6c11a18..000 --- a/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/wrapper/citrix/CitrixUpdateHostPasswordCommandWrapper.java +++ /dev/null @@ -1,36 +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.xenserver.resource.wrapper.citrix; - -import com.cloud.agent.api.Answer; -import com.cloud.agent.api.UpdateHostPasswordCommand; -import com.cloud.hypervisor.xenserver.resource.CitrixResourceBase; -import com.cloud.resource.CommandWrapper; -import com.cloud.resource.ResourceWrapper; - -@ResourceWrapper(handles = UpdateHostPasswordCommand.class) -public final class CitrixUpdateHostPasswordCommandWrapper extends CommandWrapper { - -@Override -public Answer execute(final UpdateHostPasswordCommand command, final CitrixResourceBase citrixResourceBase) { -citrixResourceBase.addToPwdQueue(command.getNewPassword()); -return new Answer(command, true, null); -} -} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/cloudstack/blob/b155129a/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/wrapper/citrix/CitrixUpgradeSnapshotCommandWrapper.java -- diff --git a/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/wrapper/citrix/CitrixUpgradeSnapshotCommandWrapper.java b/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/wrapper/citrix/CitrixUpgradeSnapshotCommandWrapper.java deleted file mode 100644 index a158938..000 --- a/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/wrapper/citrix/CitrixUpgradeSnapshotCommandWrapper.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.hypervisor.xenserver.resource.wrapper.citrix; - -import java.net.URI; - -import org.apache.log4j.Logger; - -import com.cloud.agent.api.Answer; -import com.cloud.agent.api.UpgradeSnapshotCommand; -import com.cloud.hypervisor.xenserver.resource.CitrixResourceBase; -import com.cloud.resource.CommandWrapper; -import com.cloud.resource.ResourceWrapper; -import com.xensource.xenapi.Connection; - -@ResourceWrapper(handles = UpgradeSnapshotCommand.class) -public final class CitrixUpgradeSnapshotCommandWrapper extends CommandWrapper { - -private static final Logger s_logger = Logger.getLogger(CitrixUpgradeSnapshotCommandWrapper.class); - -@Override -public Answer execute(final UpgradeSnapshotCommand command, final CitrixResourceBase citrixResourceBase) { -final String secondaryStorageUrl = command.getSecondaryStorageUrl(); -final String backedUpSnapshotUuid = command.getSnapshotUuid(); -final Long volumeId = command.getVolumeId(); -final Long accountId = command.getAccountId(); -fin
[05/10] git commit: updated refs/heads/master to b155129
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/b155129a/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/wrapper/xenbase/CitrixPrimaryStorageDownloadCommandWrapper.java -- diff --git a/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/wrapper/xenbase/CitrixPrimaryStorageDownloadCommandWrapper.java b/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/wrapper/xenbase/CitrixPrimaryStorageDownloadCommandWrapper.java new file mode 100644 index 000..07c50aa --- /dev/null +++ b/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/resource/wrapper/xenbase/CitrixPrimaryStorageDownloadCommandWrapper.java @@ -0,0 +1,85 @@ +// +// 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.xenserver.resource.wrapper.xenbase; + +import java.net.URI; +import java.util.HashMap; +import java.util.Set; + +import org.apache.log4j.Logger; + +import com.cloud.agent.api.Answer; +import com.cloud.agent.api.storage.PrimaryStorageDownloadAnswer; +import com.cloud.agent.api.storage.PrimaryStorageDownloadCommand; +import com.cloud.hypervisor.xenserver.resource.CitrixResourceBase; +import com.cloud.resource.CommandWrapper; +import com.cloud.resource.ResourceWrapper; +import com.xensource.xenapi.Connection; +import com.xensource.xenapi.SR; +import com.xensource.xenapi.VDI; + +@ResourceWrapper(handles = PrimaryStorageDownloadCommand.class) +public final class CitrixPrimaryStorageDownloadCommandWrapper extends CommandWrapper { + +private static final Logger s_logger = Logger.getLogger(CitrixPrimaryStorageDownloadCommandWrapper.class); + +@Override +public Answer execute(final PrimaryStorageDownloadCommand command, final CitrixResourceBase citrixResourceBase) { +final String tmplturl = command.getUrl(); +final String poolName = command.getPoolUuid(); +final int wait = command.getWait(); +try { +final URI uri = new URI(tmplturl); +final String tmplpath = uri.getHost() + ":" + uri.getPath(); +final Connection conn = citrixResourceBase.getConnection(); +SR poolsr = null; +final Set srs = SR.getByNameLabel(conn, poolName); +if (srs.size() != 1) { +final String msg = "There are " + srs.size() + " SRs with same name: " + poolName; +s_logger.warn(msg); +return new PrimaryStorageDownloadAnswer(msg); +} else { +poolsr = srs.iterator().next(); +} +final String pUuid = poolsr.getUuid(conn); +final boolean isISCSI = citrixResourceBase.IsISCSI(poolsr.getType(conn)); +final String uuid = citrixResourceBase.copyVhdFromSecondaryStorage(conn, tmplpath, pUuid, wait); +final VDI tmpl = citrixResourceBase.getVDIbyUuid(conn, uuid); +final VDI snapshotvdi = tmpl.snapshot(conn, new HashMap()); +final String snapshotUuid = snapshotvdi.getUuid(conn); +snapshotvdi.setNameLabel(conn, "Template " + command.getName()); +final String parentuuid = citrixResourceBase.getVhdParent(conn, pUuid, snapshotUuid, isISCSI); +final VDI parent = citrixResourceBase.getVDIbyUuid(conn, parentuuid); +final Long phySize = parent.getPhysicalUtilisation(conn); +tmpl.destroy(conn); +poolsr.scan(conn); +try { +Thread.sleep(5000); +} catch (final Exception e) { +} +return new PrimaryStorageDownloadAnswer(snapshotvdi.getUuid(conn), phySize); +} catch (final Exception e) { +final String msg = "Catch Exception " + e.getClass().getName() + " on host:" + citrixResourceBase.getHost().getUuid() + " for template: " + tmplturl + " due to " ++ e.toString(); +s_logger.warn(msg, e); +return new PrimaryStorageDownloadAnswer(msg); +} +} +} \ No newline at end of file http://git-wip-us.apache.org/repos/asf/cloudstack/blob/b155129a/plugins/hypervisors/xenserver/src/com/clou
Git Push Summary
Repository: cloudstack Updated Tags: refs/tags/4.4.4 [deleted] 56856cf7e
cloudstack-www git commit: Merge build from asf-site branch
Repository: cloudstack-www Updated Branches: refs/heads/master 4fb064237 -> 9122c7339 Merge build from asf-site branch Project: http://git-wip-us.apache.org/repos/asf/cloudstack-www/repo Commit: http://git-wip-us.apache.org/repos/asf/cloudstack-www/commit/9122c733 Tree: http://git-wip-us.apache.org/repos/asf/cloudstack-www/tree/9122c733 Diff: http://git-wip-us.apache.org/repos/asf/cloudstack-www/diff/9122c733 Branch: refs/heads/master Commit: 9122c7339540299cad908e6acbfbd27faac4c7be Parents: 4fb0642 Author: Erik Weber Authored: Wed May 27 16:07:54 2015 +0200 Committer: Erik Weber Committed: Wed May 27 22:41:29 2015 +0200 -- content/about.html| 2 +- content/api.html | 2 +- content/archives.html | 2 +- content/bylaws.html | 2 +- content/cloudstack-faq.html | 2 +- content/contribute.html | 2 +- content/developers.html | 2 +- content/downloads.html| 2 +- content/features.html | 4 ++-- content/history.html | 2 +- content/index.html| 4 ++-- content/mailing-lists.html| 2 +- content/security.html | 2 +- content/software.html | 2 +- content/survey.html | 2 +- content/trademark-guidelines.html | 2 +- content/users.html| 4 ++-- content/videos.html | 2 +- content/who.html | 2 +- 19 files changed, 22 insertions(+), 22 deletions(-) -- http://git-wip-us.apache.org/repos/asf/cloudstack-www/blob/9122c733/content/about.html -- diff --git a/content/about.html b/content/about.html index ebea114..530be5b 100644 --- a/content/about.html +++ b/content/about.html @@ -67,7 +67,7 @@ https://blogs.apache.org/cloudstack/"; target="_blank">Blog http://planet.apache.org/cloudstack/"; target="_blank">Planet History -http://cloudstack.apache.org/software/features.html"; target="_blank">Features +Features FAQ Who We Are Security http://git-wip-us.apache.org/repos/asf/cloudstack-www/blob/9122c733/content/api.html -- diff --git a/content/api.html b/content/api.html index 7b4f053..f2f6a4d 100644 --- a/content/api.html +++ b/content/api.html @@ -67,7 +67,7 @@ https://blogs.apache.org/cloudstack/"; target="_blank">Blog http://planet.apache.org/cloudstack/"; target="_blank">Planet History -http://cloudstack.apache.org/software/features.html"; target="_blank">Features +Features FAQ Who We Are Security http://git-wip-us.apache.org/repos/asf/cloudstack-www/blob/9122c733/content/archives.html -- diff --git a/content/archives.html b/content/archives.html index 81af24e..04fe0de 100644 --- a/content/archives.html +++ b/content/archives.html @@ -67,7 +67,7 @@ https://blogs.apache.org/cloudstack/"; target="_blank">Blog http://planet.apache.org/cloudstack/"; target="_blank">Planet History -http://cloudstack.apache.org/software/features.html"; target="_blank">Features +Features FAQ Who We Are Security http://git-wip-us.apache.org/repos/asf/cloudstack-www/blob/9122c733/content/bylaws.html -- diff --git a/content/bylaws.html b/content/bylaws.html index 79ef1c4..fab929f 100644 --- a/content/bylaws.html +++ b/content/bylaws.html @@ -67,7 +67,7 @@ https://blogs.apache.org/cloudstack/"; target="_blank">Blog http://planet.apache.org/cloudstack/"; target="_blank">Planet History -http://cloudstack.apache.org/software/features.html"; target="_blank">Features +Features FAQ Who We Are Security http://git-wip-us.apache.org/repos/asf/cloudstack-www/blob/9122c733/content/cloudstack-faq.html -- diff --git a/content/cloudstack-faq.html b/content/cloudstack-faq.html index f4aec29..e71c34e 100644 --- a/content/cloudstack-faq.html +++ b/content/cloudstack-faq.html @@ -67,7 +67,7 @@ https://blogs.apache.org/cloudstack/"; target="_blank">Blog http://planet.apache.org/cloudstack/"; target="_blank">Planet History -http://cloudstack.apache.org/software/fea