You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cloudstack.apache.org by bh...@apache.org on 2014/08/16 12:55:32 UTC
[01/50] git commit: updated refs/heads/saml2 to 09da909
Repository: cloudstack
Updated Branches:
refs/heads/saml2 5463fbb62 -> 09da909b6 (forced update)
CLOUDSTACK-7302: UI: Remove Hover Interaction from breadcrumbs at top page
Signed-off-by: Mihaela Stoica <mi...@citrix.com>
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/af377430
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/af377430
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/af377430
Branch: refs/heads/saml2
Commit: af377430453ecf1fb9b44ed3e29541b7f20ce5d5
Parents: 97ecd55
Author: Mihaela Stoica <mi...@citrix.com>
Authored: Mon Aug 11 08:58:04 2014 +0100
Committer: Brian Federle <bf...@gmail.com>
Committed: Tue Aug 12 11:36:45 2014 -0700
----------------------------------------------------------------------
ui/scripts/ui/widgets/cloudBrowser.js | 69 ------------------------------
1 file changed, 69 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/af377430/ui/scripts/ui/widgets/cloudBrowser.js
----------------------------------------------------------------------
diff --git a/ui/scripts/ui/widgets/cloudBrowser.js b/ui/scripts/ui/widgets/cloudBrowser.js
index 31ac533..007025b 100644
--- a/ui/scripts/ui/widgets/cloudBrowser.js
+++ b/ui/scripts/ui/widgets/cloudBrowser.js
@@ -346,73 +346,4 @@
}
}
));
-
- // Breadcrumb hovering
- $('#breadcrumbs li').live('mouseover', cloudStack.ui.event.bind(
- 'cloudBrowser', {
- 'breadcrumb': function($target, $browser, data) {
- var $hiddenPanels = data.panel.siblings().filter(function() {
- return $(this).index() > data.panel.index();
- });
- var $targetPanel = data.panel.filter(':first');
- var $targetBreadcrumb = _breadcrumb.filter($targetPanel);
- var $panelWrapper = $('<div>').addClass('panel panel-highlight-wrapper');
-
- $hiddenPanels.addClass('mouseover-hidden');
-
- $browser.data('browser-panel-highlight-timer', setTimeout(function() {
- $('#browser').addClass('panel-highlight');
- $('.overlay').remove();
-
- // Setup panel and wrapper positioning
- $panelWrapper
- .css({
- left: $targetPanel.position().left
- })
- .width($targetPanel.width());
- $targetPanel
- .wrap($panelWrapper);
- $panelWrapper
- .zIndex(10000)
- .overlay();
- $targetPanel.filter(':last').addClass('highlighted');
-
- // Setup breadcrumbs
- $targetBreadcrumb.each(function() {
- $(this).data('breadcrumb-original-zindex', $(this).zIndex());
- });
- $targetBreadcrumb.zIndex(10001);
-
- $hiddenPanels.hide();
- }, 1000));
- }
- }
- ));
-
- $('#breadcrumbs li').live('mouseout', cloudStack.ui.event.bind(
- 'cloudBrowser', {
- 'breadcrumb': function($target, $browser, data) {
- var $getHiddenPanels = $browser.find('.panel.mouseover-hidden');
- var $visiblePanels = $getHiddenPanels.siblings();
- var $visibleBreadcrumbs = _breadcrumb.filter($visiblePanels);
-
- clearTimeout($browser.data('browser-panel-highlight-timer'));
- $('#browser').removeClass('panel-highlight');
- $('#browser .panel').removeClass('highlighted');
- $('#browser .panel.panel-highlight-wrapper').each(function() {
- var $wrapper = $(this);
- var $panel = $wrapper.find('.panel');
-
- $wrapper.after($panel);
- $wrapper.remove();
- });
- $getHiddenPanels.removeClass('mouseover-hidden').show();
- $visibleBreadcrumbs.each(function() {
- $(this).zIndex($(this).data('breadcrumb-original-zindex'));
- });
- $('.overlay').remove();
- $('#browser .panel > .highlight-arrow').remove();
- }
- }
- ));
})(jQuery, cloudStack);
[40/50] git commit: updated refs/heads/saml2 to 09da909
Posted by bh...@apache.org.
sysctl improvements. 1. ip_nonlocal_bind for smooth transition in case of a keepalived failover. 2. panic settings so that a vm dies in a way that ACS understands it's down. 3. also up the nf_conntrack limits.
Signed-off-by: Daan Hoogland <da...@onecht.net>
(cherry picked from commit 45deade1df171d9ae5562111bf011ee913ff9dc0)
Conflicts:
systemvm/patches/debian/config/etc/sysctl.conf
(cherry picked from commit c4d1bf7f2426bfddd96ab9415fe793647e67a5a4)
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/c90bf123
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/c90bf123
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/c90bf123
Branch: refs/heads/saml2
Commit: c90bf1231f2baabff329f19bc195d1b626f9ce94
Parents: adf7de9
Author: Joris van Lieshout <jv...@schubergphilis.com>
Authored: Wed May 21 17:25:46 2014 +0200
Committer: Daan Hoogland <da...@onecht.net>
Committed: Thu Aug 14 14:11:33 2014 +0200
----------------------------------------------------------------------
systemvm/patches/debian/config/etc/sysctl.conf | 18 ++++++++++++++----
1 file changed, 14 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/c90bf123/systemvm/patches/debian/config/etc/sysctl.conf
----------------------------------------------------------------------
diff --git a/systemvm/patches/debian/config/etc/sysctl.conf b/systemvm/patches/debian/config/etc/sysctl.conf
index c8f4bfb..f5b1086 100644
--- a/systemvm/patches/debian/config/etc/sysctl.conf
+++ b/systemvm/patches/debian/config/etc/sysctl.conf
@@ -27,6 +27,9 @@ net.ipv4.conf.default.send_redirects = 0
net.ipv4.conf.all.secure_redirects = 0
net.ipv4.conf.default.secure_redirects = 0
+# For smooth transition of the vip address in case of a keepalived failover
+net.ipv4.ip_nonlocal_bind = 1
+
# Controls the System Request debugging functionality of the kernel
kernel.sysrq = 0
@@ -34,13 +37,20 @@ kernel.sysrq = 0
# Useful for debugging multi-threaded applications.
kernel.core_uses_pid = 1
+# A better way for the instance to die
+kernel.panic = 10
+kernel.panic_on_oops = 1
+vm.panic_on_oom = 1
+
# Controls the use of TCP syncookies
net.ipv4.tcp_syncookies = 1
-net.ipv4.netfilter.ip_conntrack_max=1000000
-net.ipv4.tcp_tw_reuse=1
-net.ipv4.tcp_max_tw_buckets=1000000
-net.core.somaxconn=1000000
+net.ipv4.netfilter.ip_conntrack_max = 1000000
+net.ipv4.tcp_tw_reuse = 1
+net.ipv4.tcp_max_tw_buckets = 1000000
+net.core.somaxconn = 1000000
+net.nf_conntrack_max = 1000000
+net.netfilter.nf_conntrack_max = 1000000
# Disable IPv6
net.ipv6.conf.all.disable_ipv6 = 1
[16/50] git commit: updated refs/heads/saml2 to 09da909
Posted by bh...@apache.org.
Merge branch 'bugfix/CID-1230585'
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/ae4d4981
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/ae4d4981
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/ae4d4981
Branch: refs/heads/saml2
Commit: ae4d49810e16081e65949a5bb959a139c92dacdd
Parents: 9d7b851 d2aa1c4
Author: Hugo Trippaers <ht...@schubergphilis.com>
Authored: Wed Aug 13 08:41:55 2014 +0200
Committer: Hugo Trippaers <ht...@schubergphilis.com>
Committed: Wed Aug 13 08:41:55 2014 +0200
----------------------------------------------------------------------
core/src/com/cloud/resource/ServerResourceBase.java | 15 ++++++++-------
1 file changed, 8 insertions(+), 7 deletions(-)
----------------------------------------------------------------------
[23/50] git commit: updated refs/heads/saml2 to 09da909
Posted by bh...@apache.org.
CLOUDSTACK-7329: Fixed issues in test_region_vpc.py
Signed-off-by: Santhosh Edukulla <sa...@gmail.com>
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/525ee4a4
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/525ee4a4
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/525ee4a4
Branch: refs/heads/saml2
Commit: 525ee4a4aada2aa90bf53b301151f20111788e65
Parents: 6a4a11e
Author: Gaurav Aradhye <ga...@clogeny.com>
Authored: Wed Aug 13 16:32:24 2014 +0530
Committer: Santhosh Edukulla <sa...@gmail.com>
Committed: Wed Aug 13 17:10:48 2014 +0530
----------------------------------------------------------------------
test/integration/component/test_region_vpc.py | 81 ++++++++++++++++------
1 file changed, 61 insertions(+), 20 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/525ee4a4/test/integration/component/test_region_vpc.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_region_vpc.py b/test/integration/component/test_region_vpc.py
index e348065..6866e48 100644
--- a/test/integration/component/test_region_vpc.py
+++ b/test/integration/component/test_region_vpc.py
@@ -19,15 +19,27 @@ import unittest
""" Component tests for region level VPC functionality
"""
#Import Local Modules
-import marvin
from nose.plugins.attrib import attr
-from marvin.cloudstackTestCase import *
-from marvin.cloudstackAPI import *
-from marvin.lib.utils import *
-from marvin.lib.base import *
-from marvin.lib.common import *
-from marvin.sshClient import SshClient
-import datetime
+from marvin.cloudstackTestCase import cloudstackTestCase
+from marvin.lib.utils import cleanup_resources, validateList
+from marvin.lib.base import (VPC,
+ VpcOffering,
+ ServiceOffering,
+ PhysicalNetwork,
+ Account,
+ NetworkOffering,
+ Network,
+ VirtualMachine,
+ NetworkServiceProvider,
+ PublicIPAddress,
+ LoadBalancerRule,
+ NATRule,
+ NetworkACL,
+ StaticNATRule)
+from marvin.lib.common import (get_domain,
+ get_zone,
+ get_template)
+from marvin.codes import FAILED, PASS
class Services:
@@ -161,7 +173,7 @@ class TestRegionVpcOffering(cloudstackTestCase):
def setUpClass(cls):
testClient = super(TestRegionVpcOffering, cls).getClsTestClient()
cls.apiclient = testClient.getApiClient()
- cls.services = testClient.getParsedTestDataConfig()
+ cls.services = Services().services
# Get Zone, Domain and templates
cls.domain = get_domain(cls.apiclient)
@@ -185,9 +197,30 @@ class TestRegionVpcOffering(cloudstackTestCase):
cls.apiclient,
cls.services["service_offering"]
)
- cls._cleanup = [
- cls.service_offering,
- ]
+ cls._cleanup = [cls.service_offering, ]
+
+ try:
+ list_physical_networks = PhysicalNetwork.list(
+ cls.apiclient,
+ zoneid=cls.zone.id
+ )
+ assert validateList(list_physical_networks)[0] == PASS,\
+ "physical networks list validation failed"
+
+ cls.isOvsPluginEnabled = False
+ for i in range(0, len(list_physical_networks)):
+ list_network_serviceprovider = NetworkServiceProvider.list(
+ cls.apiclient,
+ physicalnetworkid=list_physical_networks[i].id
+ )
+ for j in range(0, len(list_network_serviceprovider)):
+ if((str(list_network_serviceprovider[j].name).lower() == 'ovs') and
+ (str(list_network_serviceprovider[j].state).lower() == 'enabled')):
+ cls.isOvsPluginEnabled = True
+ break
+ except Exception as e:
+ cls.tearDownClass()
+ raise unittest.SkipTest(e)
return
@classmethod
@@ -243,7 +276,7 @@ class TestRegionVpcOffering(cloudstackTestCase):
"Name of the VPC offering should match with listVPCOff data"
)
self.assertEqual(
- vpc_offs[0].regionlevelvpc,True,
+ vpc_offs[0].supportsregionLevelvpc,True,
"VPC offering is not set up for region level VPC"
)
self.debug(
@@ -301,6 +334,9 @@ class TestRegionVpcOffering(cloudstackTestCase):
# 1. Create VPC Offering by specifying all supported Services
# 2. VPC offering should be created successfully.
+ if not self.isOvsPluginEnabled:
+ self.skipTest("OVS plugin should be enabled to run this test case")
+
self.debug("Creating inter VPC offering")
vpc_off = VpcOffering.create(
self.apiclient,
@@ -313,7 +349,8 @@ class TestRegionVpcOffering(cloudstackTestCase):
vpcofferingid=vpc_off.id,
zoneid=self.zone.id,
account=self.account.name,
- domainid=self.account.domainid
+ domainid=self.account.domainid,
+ networkDomain=self.account.domainid
)
self.assertEqual(vpc.distributedvpcrouter, True, "VPC created should have 'distributedvpcrouter' set to True")
@@ -340,6 +377,9 @@ class TestRegionVpcOffering(cloudstackTestCase):
# 9. Create Egress Network ACL for this network to access google.com.
# 10. Enable VPN services
+ if not self.isOvsPluginEnabled:
+ self.skipTest("OVS plugin should be enabled to run this test case")
+
self.debug("Creating a VPC offering..")
vpc_off = VpcOffering.create(
self.apiclient,
@@ -356,7 +396,8 @@ class TestRegionVpcOffering(cloudstackTestCase):
vpcofferingid=vpc_off.id,
zoneid=self.zone.id,
account=self.account.name,
- domainid=self.account.domainid
+ domainid=self.account.domainid,
+ networkDomain=self.account.domainid
)
self.validate_vpc_network(vpc)
@@ -415,7 +456,7 @@ class TestRegionVpcOffering(cloudstackTestCase):
self.debug("Creating LB rule for IP address: %s" %
public_ip.ipaddress.ipaddress)
- lb_rule = LoadBalancerRule.create(
+ LoadBalancerRule.create(
self.apiclient,
self.services["lbrule"],
ipaddressid=public_ip.ipaddress.id,
@@ -439,7 +480,7 @@ class TestRegionVpcOffering(cloudstackTestCase):
network.id
))
- nat_rule = NATRule.create(
+ NATRule.create(
self.apiclient,
virtual_machine,
self.services["natrule"],
@@ -450,14 +491,14 @@ class TestRegionVpcOffering(cloudstackTestCase):
)
self.debug("Adding NetwrokACl rules to make PF and LB accessible")
- networkacl_1 = NetworkACL.create(
+ NetworkACL.create(
self.apiclient,
networkid=network.id,
services=self.services["natrule"],
traffictype='Ingress'
)
- networkacl_2 = NetworkACL.create(
+ NetworkACL.create(
self.apiclient,
networkid=network.id,
services=self.services["lbrule"],
@@ -520,4 +561,4 @@ class TestRegionVpcOffering(cloudstackTestCase):
"List public Ip for network should list the Ip addr"
)
# TODO: Remote Access VPN is not yet supported in VPC
- return
\ No newline at end of file
+ return
[35/50] git commit: updated refs/heads/saml2 to 09da909
Posted by bh...@apache.org.
Moved vm sync test cases to misc folder
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/56071844
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/56071844
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/56071844
Branch: refs/heads/saml2
Commit: 56071844dab6bbdb26774cda806f3a73ed6a44b7
Parents: 7cf33f9
Author: Santhosh Edukulla <sa...@gmail.com>
Authored: Thu Aug 14 00:40:32 2014 +0530
Committer: Santhosh Edukulla <sa...@gmail.com>
Committed: Thu Aug 14 00:40:32 2014 +0530
----------------------------------------------------------------------
test/integration/smoke/misc/test_vm_sync.py | 151 +++++++++++++++++++++++
test/integration/smoke/test_vm_sync.py | 151 -----------------------
2 files changed, 151 insertions(+), 151 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/56071844/test/integration/smoke/misc/test_vm_sync.py
----------------------------------------------------------------------
diff --git a/test/integration/smoke/misc/test_vm_sync.py b/test/integration/smoke/misc/test_vm_sync.py
new file mode 100644
index 0000000..6f2f4e9
--- /dev/null
+++ b/test/integration/smoke/misc/test_vm_sync.py
@@ -0,0 +1,151 @@
+# 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 from the Marvin - Testing in Python wiki
+
+import time
+
+#All tests inherit from cloudstackTestCase
+from marvin.cloudstackTestCase import cloudstackTestCase
+
+#Import Integration Libraries
+
+#base - contains all resources as entities and defines create, delete, list operations on them
+from marvin.lib.base import Account, VirtualMachine, Cluster, Host, ServiceOffering, Configurations, SimulatorMock
+
+#utils - utility classes for common cleanup, external library wrappers etc
+from marvin.lib.utils import cleanup_resources
+
+#common - commonly used methods for all tests are listed here
+from marvin.lib.common import get_zone, get_domain, get_template
+
+from nose.plugins.attrib import attr
+
+class TestDeployVMSync(cloudstackTestCase):
+ """Test VM Sync
+ """
+
+ def setUp(self):
+ self.testdata = self.testClient.getParsedTestDataConfig()
+ self.apiclient = self.testClient.getApiClient()
+
+ # Get Zone, Domain and Default Built-in template
+ self.domain = get_domain(self.apiclient)
+ self.zone = get_zone(self.apiclient, self.testClient.getZoneForTests())
+
+ self.testdata["mode"] = self.zone.networktype
+ self.template = get_template(self.apiclient, self.zone.id, self.testdata["ostype"])
+
+ hosts = Host.list(self.apiclient, type='Routing')
+ self.assertTrue(isinstance(hosts, list) and len(hosts) > 0, msg = "No hosts found")
+ self.host = hosts[0]
+ #update host tags
+ Host.update(self.apiclient, id=self.host.id, hosttags=self.testdata["service_offerings"]["taggedsmall"]["hosttags"])
+
+ #create a user account
+ self.account = Account.create(
+ self.apiclient,
+ self.testdata["account"],
+ domainid=self.domain.id
+ )
+ #create a service offering
+ self.service_offering = ServiceOffering.create(
+ self.apiclient,
+ self.testdata["service_offerings"]["taggedsmall"]
+ )
+ #deploy vms
+ self.vm1 = VirtualMachine.create(
+ self.apiclient,
+ self.testdata["small"],
+ accountid=self.account.name,
+ zoneid=self.zone.id,
+ domainid=self.account.domainid,
+ serviceofferingid=self.service_offering.id,
+ templateid=self.template.id
+ )
+ self.vm2 = VirtualMachine.create(
+ self.apiclient,
+ self.testdata["small"],
+ accountid=self.account.name,
+ zoneid=self.zone.id,
+ domainid=self.account.domainid,
+ serviceofferingid=self.service_offering.id,
+ templateid=self.template.id
+ )
+ self.vm3 = VirtualMachine.create(
+ self.apiclient,
+ self.testdata["small"],
+ accountid=self.account.name,
+ zoneid=self.zone.id,
+ domainid=self.account.domainid,
+ serviceofferingid=self.service_offering.id,
+ templateid=self.template.id
+ )
+ list_vms = VirtualMachine.list(self.apiclient, ids=[self.vm1.id, self.vm2.id, self.vm3.id], listAll=True)
+ self.assertTrue(isinstance(list_vms, list) and len(list_vms) == 3, msg = "List VM response is empty")
+ clusters = Cluster.list(self.apiclient, id=self.host.clusterid)
+ self.assertTrue(isinstance(clusters, list) and len(clusters) > 0, msg = "Cluster not found")
+
+ json_response = '{"com.cloud.agent.api.PingRoutingWithNwGroupsCommand":{"newGroupStates":{},"newStates":{},"_hostVmStateReport":{"%s":{"state":"PowerOn","host":"%s"},"%s":{"state":"PowerOff","host":"%s"}},"_gatewayAccessible":true,"_vnetAccessible":true,"hostType":"Routing","hostId":0,"contextMap":{},"wait":0}}'
+ json_response = json_response%(self.vm1.instancename, self.host.name, self.vm2.instancename, self.host.name)
+
+ #create a mock to simulate vm1 as power-on, vm2 as power-off and vm3 as missing
+ self.mock_ping = SimulatorMock.create(
+ apiclient=self.apiclient,
+ command="PingRoutingWithNwGroupsCommand",
+ zoneid=self.zone.id,
+ podid=clusters[0].podid,
+ clusterid=clusters[0].id,
+ hostid=self.host.id,
+ value='',
+ jsonresponse=json_response,
+ method='POST')
+
+ #build cleanup list
+ self.cleanup = [
+ self.service_offering,
+ self.account,
+ self.mock_ping
+ ]
+
+ @attr(tags = ['advanced'], required_hardware="simulator only")
+ def test_vm_sync(self):
+ """Test VM Sync
+
+ # Validate the following:
+ # vm1 should be running, vm2 should be stopped as power report says PowerOff, vm3 should be stopped as missing from power report
+ """
+
+ #wait for vmsync to happen
+ ping_interval = Configurations.list(self.apiclient, name="ping.interval")
+ total_duration = int(float(ping_interval[0].value) * 3.2)
+ time.sleep(total_duration)
+
+ list_vms = VirtualMachine.list(self.apiclient, ids=[self.vm1.id, self.vm2.id, self.vm3.id], listAll=True)
+ self.assertTrue(isinstance(list_vms, list) and len(list_vms) == 3, msg = "List VM response is empty")
+ for vm in list_vms:
+ if vm.id == self.vm1.id:
+ self.assertTrue(vm.state == "Running", msg = "VM {0} is expected to be in running state".format(vm.name))
+ elif vm.id == self.vm2.id or vm.id == self.vm3.id:
+ self.assertTrue(vm.state == "Stopped", msg = "VM {0} is expected to be in stopped state".format(vm.name))
+
+ def tearDown(self):
+ try:
+ Host.update(self.apiclient, id=self.host.id, hosttags="")
+ cleanup_resources(self.apiclient, self.cleanup)
+ except Exception as e:
+ self.debug("Warning! Exception in tearDown: %s" % e)
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/56071844/test/integration/smoke/test_vm_sync.py
----------------------------------------------------------------------
diff --git a/test/integration/smoke/test_vm_sync.py b/test/integration/smoke/test_vm_sync.py
deleted file mode 100644
index 6d56945..0000000
--- a/test/integration/smoke/test_vm_sync.py
+++ /dev/null
@@ -1,151 +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.
-
-#Test from the Marvin - Testing in Python wiki
-
-import time
-
-#All tests inherit from cloudstackTestCase
-from marvin.cloudstackTestCase import cloudstackTestCase
-
-#Import Integration Libraries
-
-#base - contains all resources as entities and defines create, delete, list operations on them
-from marvin.lib.base import Account, VirtualMachine, Cluster, Host, ServiceOffering, Configurations, SimulatorMock
-
-#utils - utility classes for common cleanup, external library wrappers etc
-from marvin.lib.utils import cleanup_resources
-
-#common - commonly used methods for all tests are listed here
-from marvin.lib.common import get_zone, get_domain, get_template
-
-from nose.plugins.attrib import attr
-
-class TestDeployVMSync(cloudstackTestCase):
- """Test VM Sync
- """
-
- def setUp(self):
- self.testdata = self.testClient.getParsedTestDataConfig()
- self.apiclient = self.testClient.getApiClient()
-
- # Get Zone, Domain and Default Built-in template
- self.domain = get_domain(self.apiclient)
- self.zone = get_zone(self.apiclient, self.testClient.getZoneForTests())
-
- self.testdata["mode"] = self.zone.networktype
- self.template = get_template(self.apiclient, self.zone.id, self.testdata["ostype"])
-
- hosts = Host.list(self.apiclient, type='Routing')
- self.assertTrue(isinstance(hosts, list) and len(hosts) > 0, msg = "No hosts found")
- self.host = hosts[0]
- #update host tags
- Host.update(self.apiclient, id=self.host.id, hosttags=self.testdata["service_offerings"]["taggedsmall"]["hosttags"])
-
- #create a user account
- self.account = Account.create(
- self.apiclient,
- self.testdata["account"],
- domainid=self.domain.id
- )
- #create a service offering
- self.service_offering = ServiceOffering.create(
- self.apiclient,
- self.testdata["service_offerings"]["taggedsmall"]
- )
- #deploy vms
- self.vm1 = VirtualMachine.create(
- self.apiclient,
- self.testdata["small"],
- accountid=self.account.name,
- zoneid=self.zone.id,
- domainid=self.account.domainid,
- serviceofferingid=self.service_offering.id,
- templateid=self.template.id
- )
- self.vm2 = VirtualMachine.create(
- self.apiclient,
- self.testdata["small"],
- accountid=self.account.name,
- zoneid=self.zone.id,
- domainid=self.account.domainid,
- serviceofferingid=self.service_offering.id,
- templateid=self.template.id
- )
- self.vm3 = VirtualMachine.create(
- self.apiclient,
- self.testdata["small"],
- accountid=self.account.name,
- zoneid=self.zone.id,
- domainid=self.account.domainid,
- serviceofferingid=self.service_offering.id,
- templateid=self.template.id
- )
- list_vms = VirtualMachine.list(self.apiclient, ids=[self.vm1.id, self.vm2.id, self.vm3.id], listAll=True)
- self.assertTrue(isinstance(list_vms, list) and len(list_vms) == 3, msg = "List VM response is empty")
- clusters = Cluster.list(self.apiclient, id=self.host.clusterid)
- self.assertTrue(isinstance(clusters, list) and len(clusters) > 0, msg = "Cluster not found")
-
- json_response = '{"com.cloud.agent.api.PingRoutingWithNwGroupsCommand":{"newGroupStates":{},"newStates":{},"_hostVmStateReport":{"%s":{"state":"PowerOn","host":"%s"},"%s":{"state":"PowerOff","host":"%s"}},"_gatewayAccessible":true,"_vnetAccessible":true,"hostType":"Routing","hostId":0,"contextMap":{},"wait":0}}'
- json_response = json_response%(self.vm1.instancename, self.host.name, self.vm2.instancename, self.host.name)
-
- #create a mock to simulate vm1 as power-on, vm2 as power-off and vm3 as missing
- self.mock_ping = SimulatorMock.create(
- apiclient=self.apiclient,
- command="PingRoutingWithNwGroupsCommand",
- zoneid=self.zone.id,
- podid=clusters[0].podid,
- clusterid=clusters[0].id,
- hostid=self.host.id,
- value='',
- jsonresponse=json_response,
- method='POST')
-
- #build cleanup list
- self.cleanup = [
- self.service_offering,
- self.account,
- self.mock_ping
- ]
-
- @attr(tags = ['advanced'], required_hardware="false", BugId="CLOUDSTACK-6873")
- def test_vm_sync(self):
- """Test VM Sync
-
- # Validate the following:
- # vm1 should be running, vm2 should be stopped as power report says PowerOff, vm3 should be stopped as missing from power report
- """
-
- #wait for vmsync to happen
- ping_interval = Configurations.list(self.apiclient, name="ping.interval")
- total_duration = int(float(ping_interval[0].value) * 3.2)
- time.sleep(total_duration)
-
- list_vms = VirtualMachine.list(self.apiclient, ids=[self.vm1.id, self.vm2.id, self.vm3.id], listAll=True)
- self.assertTrue(isinstance(list_vms, list) and len(list_vms) == 3, msg = "List VM response is empty")
- for vm in list_vms:
- if vm.id == self.vm1.id:
- self.assertTrue(vm.state == "Running", msg = "VM {0} is expected to be in running state".format(vm.name))
- elif vm.id == self.vm2.id or vm.id == self.vm3.id:
- self.assertTrue(vm.state == "Stopped", msg = "VM {0} is expected to be in stopped state".format(vm.name))
-
- def tearDown(self):
- try:
- Host.update(self.apiclient, id=self.host.id, hosttags="")
- cleanup_resources(self.apiclient, self.cleanup)
- except Exception as e:
- self.debug("Warning! Exception in tearDown: %s" % e)
[47/50] git commit: updated refs/heads/saml2 to 09da909
Posted by bh...@apache.org.
CLOUDSTACK-7293: UI: Fixed localization issues on the login page
- Reverted the validator.messages to the original values (jquery.validator.js).
- Added a function to localize validator.messages which is called before login.
Signed-off-by: Brian Federle <br...@citrix.com>
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/f212aa57
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/f212aa57
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/f212aa57
Branch: refs/heads/saml2
Commit: f212aa57c32eb05d6a69730e37ac50bdb1f0a268
Parents: aac8b91
Author: Mihaela Stoica <mi...@citrix.com>
Authored: Fri Aug 8 15:19:50 2014 +0100
Committer: Brian Federle <br...@citrix.com>
Committed: Fri Aug 15 10:51:28 2014 -0700
----------------------------------------------------------------------
ui/lib/jquery.validate.js | 34 +++++++++++++++++-----------------
ui/scripts/cloudStack.js | 7 +++++--
ui/scripts/ui/utils.js | 25 +++++++++++++++++++++++++
3 files changed, 47 insertions(+), 19 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/f212aa57/ui/lib/jquery.validate.js
----------------------------------------------------------------------
diff --git a/ui/lib/jquery.validate.js b/ui/lib/jquery.validate.js
index 2ee3961..72296a6 100644
--- a/ui/lib/jquery.validate.js
+++ b/ui/lib/jquery.validate.js
@@ -260,23 +260,23 @@ $.extend($.validator, {
},
messages: {
- required: 'message.validate.fieldrequired',
- remote: 'message.validate.fixfield',
- email: 'message.validate.email.address',
- url: 'message.validate.URL',
- date: 'message.validate.date',
- dateISO: 'message.validate.date.ISO',
- number: 'message.validate.number',
- digits: 'message.validate.digits',
- creditcard: 'message.validate.creditcard',
- equalTo: 'message.validate.equalto',
- accept: 'message.validate.accept',
- maxlength: $.validator.format('message.validate.maxlength'),
- minlength: $.validator.format('message.validate.minlength'),
- rangelength: $.validator.format('message.validate.range.length'),
- range: $.validator.format('message.validate.range'),
- max: $.validator.format('message.validate.max'),
- min: $.validator.format('messgae.validate.min')
+ required: "This field is required.",
+ remote: "Please fix this field.",
+ email: "Please enter a valid email address.",
+ url: "Please enter a valid URL.",
+ date: "Please enter a valid date.",
+ dateISO: "Please enter a valid date (ISO).",
+ number: "Please enter a valid number.",
+ digits: "Please enter only digits.",
+ creditcard: "Please enter a valid credit card number.",
+ equalTo: "Please enter the same value again.",
+ accept: "Please enter a value with a valid extension.",
+ maxlength: $.validator.format("Please enter no more than {0} characters."),
+ minlength: $.validator.format("Please enter at least {0} characters."),
+ rangelength: $.validator.format("Please enter a value between {0} and {1} characters long."),
+ range: $.validator.format("Please enter a value between {0} and {1}."),
+ max: $.validator.format("Please enter a value less than or equal to {0}."),
+ min: $.validator.format("Please enter a value greater than or equal to {0}.")
},
autoCreateRanges: false,
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/f212aa57/ui/scripts/cloudStack.js
----------------------------------------------------------------------
diff --git a/ui/scripts/cloudStack.js b/ui/scripts/cloudStack.js
index 2285276..b6dd559 100644
--- a/ui/scripts/cloudStack.js
+++ b/ui/scripts/cloudStack.js
@@ -480,8 +480,6 @@
loginArgs.hideLoginScreen = true;
}
- cloudStack.uiCustom.login(loginArgs);
-
// Localization
if (!$.isFunction(cloudStack.localizationFn)) { // i.e., localize is overridden by a plugin/module
cloudStack.localizationFn = function(str) {
@@ -489,6 +487,11 @@
};
}
+ // Localize validation messages
+ cloudStack.localizeValidatorMessages();
+
+ cloudStack.uiCustom.login(loginArgs);
+
document.title = _l('label.app.name');
});
})(cloudStack, jQuery);
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/f212aa57/ui/scripts/ui/utils.js
----------------------------------------------------------------------
diff --git a/ui/scripts/ui/utils.js b/ui/scripts/ui/utils.js
index 769aea7..542365a 100644
--- a/ui/scripts/ui/utils.js
+++ b/ui/scripts/ui/utils.js
@@ -120,4 +120,29 @@
return str;
}
};
+
+ /**
+ * Localize validator messages
+ */
+ cloudStack.localizeValidatorMessages = function() {
+ $.extend($.validator.messages, {
+ required: _l('message.validate.fieldrequired'),
+ remote: _l('message.validate.fixfield'),
+ email: _l('message.validate.email.address'),
+ url: _l('message.validate.URL'),
+ date: _l('message.validate.date'),
+ dateISO: _l('message.validate.date.ISO'),
+ number: _l('message.validate.number'),
+ digits: _l('message.validate.digits'),
+ creditcard: _l('message.validate.creditcard'),
+ equalTo: _l('message.validate.equalto'),
+ accept: _l('message.validate.accept'),
+ maxlength: $.validator.format(_l('message.validate.maxlength')),
+ minlength: $.validator.format(_l('message.validate.minlength')),
+ rangelength: $.validator.format(_l('message.validate.range.length')),
+ range: $.validator.format(_l('message.validate.range')),
+ max: $.validator.format(_l('message.validate.max')),
+ min: $.validator.format(_l('messgae.validate.min'))
+ });
+ };
})(jQuery, cloudStack);
[41/50] git commit: updated refs/heads/saml2 to 09da909
Posted by bh...@apache.org.
Fixed coveirty defects for concurrency, variable comparison etc
Signed-off-by: Santhosh Edukulla <sa...@gmail.com>
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/4825017c
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/4825017c
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/4825017c
Branch: refs/heads/saml2
Commit: 4825017cc75c6a5b20e317b8036dfff1effec68f
Parents: c90bf12
Author: Santhosh Edukulla <sa...@gmail.com>
Authored: Thu Aug 14 18:31:11 2014 +0530
Committer: Santhosh Edukulla <sa...@gmail.com>
Committed: Thu Aug 14 21:54:46 2014 +0530
----------------------------------------------------------------------
agent/src/com/cloud/agent/Agent.java | 11 ++++++-----
.../cloudstack/api/command/user/iso/RegisterIsoCmd.java | 2 +-
awsapi/src/com/cloud/bridge/model/MHostVO.java | 2 +-
3 files changed, 8 insertions(+), 7 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/4825017c/agent/src/com/cloud/agent/Agent.java
----------------------------------------------------------------------
diff --git a/agent/src/com/cloud/agent/Agent.java b/agent/src/com/cloud/agent/Agent.java
index 2b33f5c..8a34333 100755
--- a/agent/src/com/cloud/agent/Agent.java
+++ b/agent/src/com/cloud/agent/Agent.java
@@ -294,6 +294,11 @@ public class Agent implements HandlerFactory, IAgentControl {
_watchList.clear();
}
}
+ public synchronized void lockStartupTask(Link link)
+ {
+ _startup = new StartupTask(link);
+ _timer.schedule(_startup, _startupWait);
+ }
public void sendStartup(Link link) {
final StartupCommand[] startup = _resource.initialize();
@@ -309,10 +314,7 @@ public class Agent implements HandlerFactory, IAgentControl {
if (s_logger.isDebugEnabled()) {
s_logger.debug("Sending Startup: " + request.toString());
}
- synchronized (this) {
- _startup = new StartupTask(link);
- _timer.schedule(_startup, _startupWait);
- }
+ lockStartupTask(link);
try {
link.send(request.toBytes());
} catch (final ClosedChannelException e) {
@@ -411,7 +413,6 @@ public class Agent implements HandlerFactory, IAgentControl {
cancelled = true;
}
}
-
final StartupAnswer startup = (StartupAnswer)answer;
if (!startup.getResult()) {
s_logger.error("Not allowed to connect to the server: " + answer.getDetails());
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/4825017c/api/src/org/apache/cloudstack/api/command/user/iso/RegisterIsoCmd.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/command/user/iso/RegisterIsoCmd.java b/api/src/org/apache/cloudstack/api/command/user/iso/RegisterIsoCmd.java
index 37f294c..453b4b6 100644
--- a/api/src/org/apache/cloudstack/api/command/user/iso/RegisterIsoCmd.java
+++ b/api/src/org/apache/cloudstack/api/command/user/iso/RegisterIsoCmd.java
@@ -165,7 +165,7 @@ public class RegisterIsoCmd extends BaseCmd {
}
public Boolean isDynamicallyScalable() {
- return isDynamicallyScalable == null ? false : isDynamicallyScalable;
+ return isDynamicallyScalable == null ? Boolean.FALSE : isDynamicallyScalable;
}
/////////////////////////////////////////////////////
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/4825017c/awsapi/src/com/cloud/bridge/model/MHostVO.java
----------------------------------------------------------------------
diff --git a/awsapi/src/com/cloud/bridge/model/MHostVO.java b/awsapi/src/com/cloud/bridge/model/MHostVO.java
index a15063d..9fdbde3 100644
--- a/awsapi/src/com/cloud/bridge/model/MHostVO.java
+++ b/awsapi/src/com/cloud/bridge/model/MHostVO.java
@@ -127,7 +127,7 @@ public class MHostVO implements Serializable {
if (!(other instanceof MHostVO))
return false;
- return hostKey == ((MHostVO)other).getHostKey();
+ return hostKey.equals(((MHostVO)other).getHostKey());
}
@Override
[44/50] git commit: updated refs/heads/saml2 to 09da909
Posted by bh...@apache.org.
Added the ability to show warning (exclamation mark) icon on confirmation dialogs.
Signed-off-by: Brian Federle <br...@citrix.com>
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/3bcd22bd
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/3bcd22bd
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/3bcd22bd
Branch: refs/heads/saml2
Commit: 3bcd22bdafe0b071e19417133a63170562e99408
Parents: d5c7167
Author: Mihaela Stoica <mi...@citrix.com>
Authored: Wed Mar 26 10:38:59 2014 +0000
Committer: Brian Federle <br...@citrix.com>
Committed: Thu Aug 14 14:04:22 2014 -0700
----------------------------------------------------------------------
ui/css/cloudstack3.css | 4 ++++
ui/scripts/instances.js | 1 +
ui/scripts/network.js | 1 +
ui/scripts/ui/dialog.js | 4 ++--
ui/scripts/ui/widgets/detailView.js | 1 +
5 files changed, 9 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/3bcd22bd/ui/css/cloudstack3.css
----------------------------------------------------------------------
diff --git a/ui/css/cloudstack3.css b/ui/css/cloudstack3.css
index 6e649f7..dea0a78 100644
--- a/ui/css/cloudstack3.css
+++ b/ui/css/cloudstack3.css
@@ -3986,6 +3986,10 @@ Dialogs*/
background: url(../images/icons.png) no-repeat 0px -255px;
}
+.ui-dialog.warning .ui-dialog-title {
+ background: url(../images/icons.png) no-repeat 0px -286px;
+}
+
.ui-dialog.confirm .ui-button {
/*+placement:shift 0px -8px;*/
position: relative;
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/3bcd22bd/ui/scripts/instances.js
----------------------------------------------------------------------
diff --git a/ui/scripts/instances.js b/ui/scripts/instances.js
index 93a40fc..4d250ef 100644
--- a/ui/scripts/instances.js
+++ b/ui/scripts/instances.js
@@ -574,6 +574,7 @@
createForm: {
title: 'label.action.destroy.instance',
desc: 'label.action.destroy.instance',
+ isWarning: true,
preFilter: function(args) {
if (isAdmin() || isDomainAdmin()) {
args.$form.find('.form-item[rel=expunge]').css('display', 'inline-block');
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/3bcd22bd/ui/scripts/network.js
----------------------------------------------------------------------
diff --git a/ui/scripts/network.js b/ui/scripts/network.js
index b3a003d..118b5d8 100755
--- a/ui/scripts/network.js
+++ b/ui/scripts/network.js
@@ -1084,6 +1084,7 @@
confirm: function(args) {
return 'message.action.delete.network';
},
+ isWarning: true,
notification: function(args) {
return 'label.action.delete.network';
}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/3bcd22bd/ui/scripts/ui/dialog.js
----------------------------------------------------------------------
diff --git a/ui/scripts/ui/dialog.js b/ui/scripts/ui/dialog.js
index 14ea4dd..f2ba5c1 100644
--- a/ui/scripts/ui/dialog.js
+++ b/ui/scripts/ui/dialog.js
@@ -79,7 +79,7 @@
$('.overlay').remove();
return $formContainer.dialog({
- dialogClass: 'create-form',
+ dialogClass: args.form.isWarning ? 'create-form warning' : 'create-form',
closeOnEscape: false,
draggable: false,
width: 400,
@@ -844,7 +844,7 @@
)
).dialog({
title: _l('label.confirmation'),
- dialogClass: 'confirm',
+ dialogClass: args.isWarning ? 'confirm warning': 'confirm',
closeOnEscape: false,
zIndex: 5000,
buttons: [{
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/3bcd22bd/ui/scripts/ui/widgets/detailView.js
----------------------------------------------------------------------
diff --git a/ui/scripts/ui/widgets/detailView.js b/ui/scripts/ui/widgets/detailView.js
index 681392f..ed51fad 100644
--- a/ui/scripts/ui/widgets/detailView.js
+++ b/ui/scripts/ui/widgets/detailView.js
@@ -311,6 +311,7 @@
if (messages && messages.confirm) {
cloudStack.dialog.confirm({
message: messages.confirm(messageArgs),
+ isWarning: messages.isWarning,
action: function() {
performAction({
id: id
[28/50] git commit: updated refs/heads/saml2 to 09da909
Posted by bh...@apache.org.
CLOUDSTACK-7284: Fixed string issue in test_snapshots.py
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/f6bde7b4
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/f6bde7b4
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/f6bde7b4
Branch: refs/heads/saml2
Commit: f6bde7b46bb09aa13cb35049716bd7e1fc5b7774
Parents: 31fbb20
Author: Girish Shilamkar <gi...@clogeny.com>
Authored: Wed Aug 13 17:37:54 2014 +0530
Committer: Girish Shilamkar <gi...@clogeny.com>
Committed: Wed Aug 13 17:39:26 2014 +0530
----------------------------------------------------------------------
test/integration/component/test_snapshots.py | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/f6bde7b4/test/integration/component/test_snapshots.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_snapshots.py b/test/integration/component/test_snapshots.py
index 81a067f..b601f9a 100644
--- a/test/integration/component/test_snapshots.py
+++ b/test/integration/component/test_snapshots.py
@@ -231,7 +231,7 @@ class TestSnapshots(cloudstackTestCase):
def setUp(self):
self.apiclient = self.testClient.getApiClient()
- self.hypervisor = self.testClient.getHypervisorInfo()
+ self.hypervisor = str(self.testClient.getHypervisorInfo()).lower()
self.dbclient = self.testClient.getDbConnection()
self.cleanup = []
return
@@ -1172,7 +1172,7 @@ class TestSnapshotEvents(cloudstackTestCase):
def setUp(self):
self.apiclient = self.testClient.getApiClient()
- self.hypervisor = self.testClient.getHypervisorInfo()
+ self.hypervisor = str(self.testClient.getHypervisorInfo()).lower()
self.dbclient = self.testClient.getDbConnection()
self.cleanup = []
return
[49/50] git commit: updated refs/heads/saml2 to 09da909
Posted by bh...@apache.org.
Added few change for test suite result location
Signed-off-by: Santhosh Edukulla <sa...@gmail.com>
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/34b698d4
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/34b698d4
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/34b698d4
Branch: refs/heads/saml2
Commit: 34b698d44d7cbb0512ace813176636fc0dd4259e
Parents: 2be02d1
Author: Santhosh Edukulla <sa...@gmail.com>
Authored: Sat Aug 16 01:03:12 2014 +0530
Committer: Santhosh Edukulla <sa...@gmail.com>
Committed: Sat Aug 16 01:06:41 2014 +0530
----------------------------------------------------------------------
tools/marvin/marvin/marvinPlugin.py | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/34b698d4/tools/marvin/marvin/marvinPlugin.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/marvinPlugin.py b/tools/marvin/marvin/marvinPlugin.py
index 52a2cde..dfba4c1 100644
--- a/tools/marvin/marvin/marvinPlugin.py
+++ b/tools/marvin/marvin/marvinPlugin.py
@@ -288,6 +288,7 @@ class MarvinPlugin(Plugin):
def finalize(self, result):
try:
src = self.__logFolderPath
+ tmp = ''
if not self.__userLogPath:
log_cfg = self.__parsedConfig.logger
tmp = log_cfg.__dict__.get('LogFolderPath') + "/MarvinLogs"
@@ -299,7 +300,7 @@ class MarvinPlugin(Plugin):
mod_name = self.__testModName.split(".")
if len(mod_name) > 2:
mod_name = mod_name[-2]
- if mod_name:
+ if mod_name and type(mod_name) is str:
dst = tmp + "/" + mod_name + "_" + random_gen()
cmd = "mv " + src + " " + dst
os.system(cmd)
[36/50] git commit: updated refs/heads/saml2 to 09da909
Posted by bh...@apache.org.
CLOUDSTACK-7344:VOLUME.DELETE usage event missing for VM's in ERROR
state.
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/fee2bfce
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/fee2bfce
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/fee2bfce
Branch: refs/heads/saml2
Commit: fee2bfce4935518880e7bb029eb28625c6f8dbf1
Parents: 5607184
Author: Min Chen <mi...@citrix.com>
Authored: Wed Aug 13 22:15:47 2014 -0700
Committer: Min Chen <mi...@citrix.com>
Committed: Wed Aug 13 22:15:47 2014 -0700
----------------------------------------------------------------------
.../cloudstack/engine/orchestration/VolumeOrchestrator.java | 3 +++
server/src/com/cloud/vm/UserVmManagerImpl.java | 7 +++----
2 files changed, 6 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/fee2bfce/engine/orchestration/src/org/apache/cloudstack/engine/orchestration/VolumeOrchestrator.java
----------------------------------------------------------------------
diff --git a/engine/orchestration/src/org/apache/cloudstack/engine/orchestration/VolumeOrchestrator.java b/engine/orchestration/src/org/apache/cloudstack/engine/orchestration/VolumeOrchestrator.java
index 098f976..e28da48 100644
--- a/engine/orchestration/src/org/apache/cloudstack/engine/orchestration/VolumeOrchestrator.java
+++ b/engine/orchestration/src/org/apache/cloudstack/engine/orchestration/VolumeOrchestrator.java
@@ -1373,6 +1373,9 @@ public class VolumeOrchestrator extends ManagerBase implements VolumeOrchestrati
} else {
volService.destroyVolume(volume.getId());
}
+ // publish usage event for the volume
+ UsageEventUtils.publishUsageEvent(EventTypes.EVENT_VOLUME_DELETE, volume.getAccountId(), volume.getDataCenterId(), volume.getId(), volume.getName(),
+ Volume.class.getName(), volume.getUuid(), volume.isDisplayVolume());
} catch (Exception e) {
s_logger.debug("Failed to destroy volume" + volume.getId(), e);
throw new CloudRuntimeException("Failed to destroy volume" + volume.getId(), e);
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/fee2bfce/server/src/com/cloud/vm/UserVmManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/vm/UserVmManagerImpl.java b/server/src/com/cloud/vm/UserVmManagerImpl.java
index 77e7f0a..e5de11f 100755
--- a/server/src/com/cloud/vm/UserVmManagerImpl.java
+++ b/server/src/com/cloud/vm/UserVmManagerImpl.java
@@ -35,6 +35,9 @@ import javax.ejb.Local;
import javax.inject.Inject;
import javax.naming.ConfigurationException;
+import org.apache.commons.codec.binary.Base64;
+import org.apache.log4j.Logger;
+
import org.apache.cloudstack.acl.ControlledEntity.ACLType;
import org.apache.cloudstack.acl.SecurityChecker.AccessType;
import org.apache.cloudstack.affinity.AffinityGroupService;
@@ -84,8 +87,6 @@ import org.apache.cloudstack.storage.command.DeleteCommand;
import org.apache.cloudstack.storage.command.DettachCommand;
import org.apache.cloudstack.storage.datastore.db.PrimaryDataStoreDao;
import org.apache.cloudstack.storage.datastore.db.StoragePoolVO;
-import org.apache.commons.codec.binary.Base64;
-import org.apache.log4j.Logger;
import com.cloud.agent.AgentManager;
import com.cloud.agent.api.Answer;
@@ -4747,8 +4748,6 @@ public class UserVmManagerImpl extends ManagerBase implements UserVmManager, Vir
// Detach, destroy and create the usage event for the old root volume.
_volsDao.detachVolume(root.getId());
volumeMgr.destroyVolume(root);
- UsageEventUtils.publishUsageEvent(EventTypes.EVENT_VOLUME_DELETE, root.getAccountId(), root.getDataCenterId(), root.getId(), root.getName(),
- Volume.class.getName(), root.getUuid(), root.isDisplayVolume());
// For VMware hypervisor since the old root volume is replaced by the new root volume, force expunge old root volume if it has been created in storage
if (vm.getHypervisorType() == HypervisorType.VMware) {
[39/50] git commit: updated refs/heads/saml2 to 09da909
Posted by bh...@apache.org.
CLOUDSTACK-5663 : Added the NULL CIDR check to avoid NPE for createNetwork and listNetwork
Signed-off-by: Daan Hoogland <da...@onecht.net>
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/adf7de9a
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/adf7de9a
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/adf7de9a
Branch: refs/heads/saml2
Commit: adf7de9a95fb5a9d08d4c091e85469605ae2074a
Parents: 7c92bac
Author: Girish Chaudhari <gi...@sungard.com>
Authored: Thu Jul 10 19:04:28 2014 +0530
Committer: Daan Hoogland <da...@onecht.net>
Committed: Thu Aug 14 10:34:45 2014 +0200
----------------------------------------------------------------------
server/src/com/cloud/network/NetworkModelImpl.java | 4 ++++
1 file changed, 4 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/adf7de9a/server/src/com/cloud/network/NetworkModelImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/network/NetworkModelImpl.java b/server/src/com/cloud/network/NetworkModelImpl.java
index 0ef5cb9..a838efb 100755
--- a/server/src/com/cloud/network/NetworkModelImpl.java
+++ b/server/src/com/cloud/network/NetworkModelImpl.java
@@ -590,6 +590,10 @@ public class NetworkModelImpl extends ManagerBase implements NetworkModel {
hasFreeIps = isIP6AddressAvailableInNetwork(network.getId());
}
} else {
+ if (network.getCidr() == null) {
+ s_logger.debug("Network - " + network.getId() + " has NULL CIDR.");
+ return false;
+ }
hasFreeIps = (getAvailableIps(network, null)).size() > 0;
}
[07/50] git commit: updated refs/heads/saml2 to 09da909
Posted by bh...@apache.org.
bugfix CLOUDSTACK-7309 using findProjectByProjectAccountIdIncludingRemoved
Signed-off-by: Rohit Yadav <ro...@shapeblue.com>
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/cb9319d3
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/cb9319d3
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/cb9319d3
Branch: refs/heads/saml2
Commit: cb9319d3d8a1269af786986d49df6c41c69833c1
Parents: 9d776f4
Author: Luis Henrique Okama <lo...@gmail.com>
Authored: Tue Aug 12 13:29:32 2014 -0300
Committer: Rohit Yadav <ro...@shapeblue.com>
Committed: Wed Aug 13 00:07:25 2014 +0200
----------------------------------------------------------------------
server/src/com/cloud/api/ApiResponseHelper.java | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/cb9319d3/server/src/com/cloud/api/ApiResponseHelper.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/api/ApiResponseHelper.java b/server/src/com/cloud/api/ApiResponseHelper.java
index 221e266..f4d0293 100755
--- a/server/src/com/cloud/api/ApiResponseHelper.java
+++ b/server/src/com/cloud/api/ApiResponseHelper.java
@@ -3010,9 +3010,11 @@ public class ApiResponseHelper implements ResponseGenerator {
Account account = ApiDBUtils.findAccountById(usageRecord.getAccountId());
if (account.getType() == Account.ACCOUNT_TYPE_PROJECT) {
//find the project
- Project project = ApiDBUtils.findProjectByProjectAccountId(account.getId());
- usageRecResponse.setProjectId(project.getUuid());
- usageRecResponse.setProjectName(project.getName());
+ Project project = ApiDBUtils.findProjectByProjectAccountIdIncludingRemoved(account.getId());
+ if (project != null) {
+ usageRecResponse.setProjectId(project.getUuid());
+ usageRecResponse.setProjectName(project.getName());
+ }
} else {
usageRecResponse.setAccountId(account.getUuid());
usageRecResponse.setAccountName(account.getAccountName());
[06/50] git commit: updated refs/heads/saml2 to 09da909
Posted by bh...@apache.org.
GUI changes to leverage a new control for storage tags
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/9d776f4f
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/9d776f4f
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/9d776f4f
Branch: refs/heads/saml2
Commit: 9d776f4f2ce5a5c0d8364eed0959683830428cd0
Parents: d9fcb87
Author: seif <se...@gmail.com>
Authored: Fri Aug 8 15:15:22 2014 -0600
Committer: Mike Tutkowski <mi...@solidfire.com>
Committed: Tue Aug 12 14:41:22 2014 -0600
----------------------------------------------------------------------
ui/css/token-input-facebook.css | 123 +++++
ui/index.jsp | 3 +
ui/lib/jquery.tokeninput.js | 927 +++++++++++++++++++++++++++++++++++
ui/scripts/system.js | 23 +
ui/scripts/ui/dialog.js | 54 ++
5 files changed, 1130 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/9d776f4f/ui/css/token-input-facebook.css
----------------------------------------------------------------------
diff --git a/ui/css/token-input-facebook.css b/ui/css/token-input-facebook.css
new file mode 100644
index 0000000..304a3bc
--- /dev/null
+++ b/ui/css/token-input-facebook.css
@@ -0,0 +1,123 @@
+/* Example tokeninput style #2: Facebook style */
+ul.token-input-list-facebook {
+ overflow: hidden;
+ height: auto !important;
+ height: 1%;
+ width: 233px;
+ border: 1px solid #AFAFAF;
+ cursor: text;
+ font-size: 12px;
+ font-family: Verdana;
+ min-height: 1px;
+ z-index: 1010;
+ margin: 0;
+ padding: 0;
+ background-color: #F6F6F6;
+ list-style-type: none;
+ clear: left;
+}
+
+ul.token-input-list-facebook li input {
+ border: 0;
+ width: 100px;
+ padding: 3px 8px;
+ background-color: white;
+ margin: 2px 0;
+ -webkit-appearance: caret;
+}
+
+li.token-input-token-facebook {
+ overflow: hidden;
+ height: auto !important;
+ height: 15px;
+ margin: 3px;
+ padding: 1px 3px;
+ background-color: #eff2f7;
+ color: #000;
+ cursor: default;
+ border: 1px solid #ccd5e4;
+ font-size: 11px;
+ border-radius: 5px;
+ -moz-border-radius: 5px;
+ -webkit-border-radius: 5px;
+ float: left;
+ white-space: nowrap;
+}
+
+li.token-input-token-facebook p {
+ display: inline;
+ padding: 0;
+ margin: 0;
+}
+
+li.token-input-token-facebook span {
+ color: #a6b3cf;
+ margin-left: 5px;
+ font-weight: bold;
+ cursor: pointer;
+}
+
+li.token-input-selected-token-facebook {
+ background-color: #5670a6;
+ border: 1px solid #3b5998;
+ color: #fff;
+}
+
+li.token-input-input-token-facebook {
+ float: left;
+ margin: 0;
+ padding: 0;
+ list-style-type: none;
+}
+
+div.token-input-dropdown-facebook {
+ position: absolute;
+ width: 233px;
+ background-color: #fff;
+ overflow: hidden;
+ border-left: 1px solid #ccc;
+ border-right: 1px solid #ccc;
+ border-bottom: 1px solid #ccc;
+ cursor: default;
+ font-size: 11px;
+ font-family: Verdana;
+ z-index: 1010;
+}
+
+div.token-input-dropdown-facebook p {
+ margin: 0;
+ width : 233px;
+ padding: 5px;
+ font-weight: bold;
+ color: #777;
+}
+
+div.token-input-dropdown-facebook ul {
+ margin: 0;
+ padding: 0;
+}
+
+div.token-input-dropdown-facebook ul li {
+ background-color: #fff;
+ padding: 3px;
+ margin: 0;
+ list-style-type: none;
+}
+
+div.token-input-dropdown-facebook ul li.token-input-dropdown-item-facebook {
+ background-color: #fff;
+}
+
+div.token-input-dropdown-facebook ul li.token-input-dropdown-item2-facebook {
+ background-color: #fff;
+}
+
+div.token-input-dropdown-facebook ul li em {
+ font-weight: bold;
+ font-style: normal;
+}
+
+div.token-input-dropdown-facebook ul li.token-input-selected-dropdown-item-facebook {
+ background-color: #3b5998;
+ color: #fff;
+}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/9d776f4f/ui/index.jsp
----------------------------------------------------------------------
diff --git a/ui/index.jsp b/ui/index.jsp
index 5840e71..48afa6a 100644
--- a/ui/index.jsp
+++ b/ui/index.jsp
@@ -32,6 +32,7 @@
<title></title>
<link type="text/css" rel="stylesheet" href="lib/reset.css"/>
<link type="text/css" rel="stylesheet" href="css/cloudstack3.css" />
+ <link type="text/css" rel="stylesheet" href="css/token-input-facebook.css" />
<c:if test="${!empty cookie.lang && cookie.lang.value != 'en'}">
<link type="text/css" rel="stylesheet" href="css/cloudstack3.${cookie.lang.value}.css" />
</c:if>
@@ -1688,6 +1689,8 @@
<script src="lib/flot/jquery.flot.stack.js" type="text/javascript"></script>
<script src="lib/flot/jquery.flot.symbol.js" type="text/javascript"></script>
<script src="lib/flot/jquery.flot.threshold.js" type="text/javascript"></script>
+ <!-- jquery.tokeninput.js -->
+ <script src="lib/jquery.tokeninput.js" type="text/javascript"></script>
<!-- CloudStack -->
<script type="text/javascript" src="scripts/ui/core.js?t=<%=now%>"></script>
<script type="text/javascript" src="scripts/ui/utils.js?t=<%=now%>"></script>
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/9d776f4f/ui/lib/jquery.tokeninput.js
----------------------------------------------------------------------
diff --git a/ui/lib/jquery.tokeninput.js b/ui/lib/jquery.tokeninput.js
new file mode 100644
index 0000000..1a684d2
--- /dev/null
+++ b/ui/lib/jquery.tokeninput.js
@@ -0,0 +1,927 @@
+/*
+ * jQuery Plugin: Tokenizing Autocomplete Text Entry
+ * Version 1.6.0
+ *
+ * Copyright (c) 2009 James Smith (http://loopj.com)
+ * Licensed jointly under the GPL and MIT licenses,
+ * choose which one suits your project best!
+ *
+ */
+
+(function ($) {
+// Default settings
+var DEFAULT_SETTINGS = {
+ // Search settings
+ method: "GET",
+ contentType: "json",
+ queryParam: "q",
+ searchDelay: 300,
+ minChars: 1,
+ propertyToSearch: "name",
+ jsonContainer: null,
+
+ // Display settings
+ hintText: "Type in part of a storage tag",
+ noResultsText: "No storage tags found",
+ searchingText: "Searching...",
+ deleteText: "×",
+ animateDropdown: true,
+
+ // Tokenization settings
+ tokenLimit: null,
+ tokenDelimiter: ",",
+ preventDuplicates: false,
+
+ // Output settings
+ tokenValue: "id",
+
+ // Prepopulation settings
+ prePopulate: null,
+ processPrePopulate: false,
+
+ // Manipulation settings
+ idPrefix: "token-input-",
+
+ // Formatters
+ resultsFormatter: function(item){ return "<li>" + item[this.propertyToSearch]+ "</li>" },
+ tokenFormatter: function(item) { return "<li><p>" + item[this.propertyToSearch] + "</p></li>" },
+
+ // Callbacks
+ onResult: null,
+ onAdd: null,
+ onDelete: null,
+ onReady: null
+};
+
+// Default classes to use when theming
+var DEFAULT_CLASSES = {
+ tokenList: "token-input-list",
+ token: "token-input-token",
+ tokenDelete: "token-input-delete-token",
+ selectedToken: "token-input-selected-token",
+ highlightedToken: "token-input-highlighted-token",
+ dropdown: "token-input-dropdown",
+ dropdownItem: "token-input-dropdown-item",
+ dropdownItem2: "token-input-dropdown-item2",
+ selectedDropdownItem: "token-input-selected-dropdown-item",
+ inputToken: "token-input-input-token"
+};
+
+// Input box position "enum"
+var POSITION = {
+ BEFORE: 0,
+ AFTER: 1,
+ END: 2
+};
+
+// Keys "enum"
+var KEY = {
+ BACKSPACE: 8,
+ TAB: 9,
+ ENTER: 13,
+ ESCAPE: 27,
+ SPACE: 32,
+ PAGE_UP: 33,
+ PAGE_DOWN: 34,
+ END: 35,
+ HOME: 36,
+ LEFT: 37,
+ UP: 38,
+ RIGHT: 39,
+ DOWN: 40,
+ NUMPAD_ENTER: 108,
+ COMMA: 188
+};
+
+// Additional public (exposed) methods
+var methods = {
+ init: function(url_or_data_or_function, options) {
+ var settings = $.extend({}, DEFAULT_SETTINGS, options || {});
+
+ return this.each(function () {
+ $(this).data("tokenInputObject", new $.TokenList(this, url_or_data_or_function, settings));
+ });
+ },
+ clear: function() {
+ this.data("tokenInputObject").clear();
+ return this;
+ },
+ add: function(item) {
+ this.data("tokenInputObject").add(item);
+ return this;
+ },
+ remove: function(item) {
+ this.data("tokenInputObject").remove(item);
+ return this;
+ },
+ get: function() {
+ return this.data("tokenInputObject").getTokens();
+ }
+}
+
+//jquery function that sets the position of the cursor inside a text input
+$.fn.selectRange = function(start, end) {
+ return this.each(function() {
+ if (this.setSelectionRange) {
+ this.focus();
+ this.setSelectionRange(start, end);
+ } else if (this.createTextRange) {
+ var range = this.createTextRange();
+ range.collapse(true);
+ range.moveEnd('character', end);
+ range.moveStart('character', start);
+ range.select();
+ }
+ });
+};
+
+// Expose the .tokenInput function to jQuery as a plugin
+$.fn.tokenInput = function (method) {
+ // Method calling and initialization logic
+ if(methods[method]) {
+ return methods[method].apply(this, Array.prototype.slice.call(arguments, 1));
+ } else {
+ return methods.init.apply(this, arguments);
+ }
+};
+
+// TokenList class for each input
+$.TokenList = function (input, url_or_data, settings) {
+ //
+ // Initialization
+ //
+
+ // Configure the data source
+ if($.type(url_or_data) === "string" || $.type(url_or_data) === "function") {
+ // Set the url to query against
+ settings.url = url_or_data;
+
+ // If the URL is a function, evaluate it here to do our initalization work
+ var url = computeURL();
+
+ // Make a smart guess about cross-domain if it wasn't explicitly specified
+ if(settings.crossDomain === undefined) {
+ if(url.indexOf("://") === -1) {
+ settings.crossDomain = false;
+ } else {
+ settings.crossDomain = (location.href.split(/\/+/g)[1] !== url.split(/\/+/g)[1]);
+ }
+ }
+ } else if(typeof(url_or_data) === "object") {
+ // Set the local data to search through
+ settings.local_data = url_or_data;
+ }
+
+ // Build class names
+ if(settings.classes) {
+ // Use custom class names
+ settings.classes = $.extend({}, DEFAULT_CLASSES, settings.classes);
+ } else if(settings.theme) {
+ // Use theme-suffixed default class names
+ settings.classes = {};
+ $.each(DEFAULT_CLASSES, function(key, value) {
+ settings.classes[key] = value + "-" + settings.theme;
+ });
+ } else {
+ settings.classes = DEFAULT_CLASSES;
+ }
+
+
+ // Save the tokens
+ var saved_tokens = [];
+
+ // Keep track of the number of tokens in the list
+ var token_count = 0;
+
+ // Basic cache to save on db hits
+ var cache = new $.TokenList.Cache();
+
+ // Keep track of the timeout, old vals
+ var timeout;
+ var input_val;
+
+ // Create a new text input an attach keyup events
+ var input_box = $("<input type=\"text\" autocomplete=\"off\">")
+ .css({
+ outline: "none"
+ })
+ .attr("id", settings.idPrefix + input.id)
+ .focus(function () {
+ if (settings.tokenLimit === null || settings.tokenLimit !== token_count) {
+ show_dropdown_hint();
+ }
+ })
+ .keyup(function() {
+ var contenu = $(this).val();
+ var longueur = contenu.length;
+ var lastChar = contenu.substr(contenu.length - 1);
+
+ if ((lastChar === ',' || lastChar === ' ') && ($.trim($(this).val()).length >= 1))
+ {
+ var custom_token = { id : $.trim($(this).val().substring(0, longueur - 1)), name : $(this).val().substring(0, longueur - 1) };
+
+ add_token(custom_token);
+ $(this).val("");
+ }
+ })
+ .blur(function() {
+ hide_dropdown();
+
+ if ($.trim($(this).val()) != '')
+ {
+ var custom_token = { id : $.trim($(this).val()), name : $.trim($(this).val()) };
+
+ add_token(custom_token);
+ $(this).val("");
+ }
+ })
+ .bind("keyup keydown blur update", resize_input)
+ .keydown(function (event) {
+ var previous_token;
+ var next_token;
+
+ switch(event.keyCode) {
+ case KEY.LEFT:
+ case KEY.RIGHT:
+ case KEY.UP:
+ case KEY.DOWN:
+ if(!$(this).val()) {
+ previous_token = input_token.prev();
+ next_token = input_token.next();
+
+ if((previous_token.length && previous_token.get(0) === selected_token) || (next_token.length && next_token.get(0) === selected_token)) {
+ // Check if there is a previous/next token and it is selected
+ if(event.keyCode === KEY.LEFT || event.keyCode === KEY.UP) {
+ deselect_token($(selected_token), POSITION.BEFORE);
+ } else {
+ deselect_token($(selected_token), POSITION.AFTER);
+ }
+ } else if((event.keyCode === KEY.LEFT || event.keyCode === KEY.UP) && previous_token.length) {
+ // We are moving left, select the previous token if it exists
+ select_token($(previous_token.get(0)));
+ } else if((event.keyCode === KEY.RIGHT || event.keyCode === KEY.DOWN) && next_token.length) {
+ // We are moving right, select the next token if it exists
+ select_token($(next_token.get(0)));
+ }
+ } else {
+ var dropdown_item = null;
+
+ if(event.keyCode === KEY.DOWN || event.keyCode === KEY.RIGHT) {
+ dropdown_item = $(selected_dropdown_item).next();
+ } else {
+ dropdown_item = $(selected_dropdown_item).prev();
+ }
+
+ if(dropdown_item.length) {
+ select_dropdown_item(dropdown_item);
+ }
+ return false;
+ }
+ break;
+
+ case KEY.BACKSPACE:
+ previous_token = input_token.prev();
+
+ if(!$(this).val().length) {
+ if(selected_token) {
+ delete_token($(selected_token));
+ hidden_input.change();
+ } else if(previous_token.length) {
+ select_token($(previous_token.get(0)));
+ }
+
+ return false;
+ } else if($(this).val().length === 1) {
+ hide_dropdown();
+ } else {
+ // set a timeout just long enough to let this function finish.
+ setTimeout(function(){do_search();}, 5);
+ }
+ break;
+
+ case KEY.TAB:
+ case KEY.ENTER: if(selected_dropdown_item) {
+ add_token($(selected_dropdown_item).data("tokeninput"));
+ hidden_input.change();
+ return false;
+ }
+ break;
+ case KEY.NUMPAD_ENTER: if(selected_dropdown_item) {
+ add_token($(selected_dropdown_item).data("tokeninput"));
+ hidden_input.change();
+ return false;
+ }
+ break;
+ case KEY.COMMA:
+
+ case KEY.ESCAPE:
+ hide_dropdown();
+ return true;
+
+ default:
+ if(String.fromCharCode(event.which)) {
+ // set a timeout just long enough to let this function finish.
+ setTimeout(function(){do_search();}, 5);
+ }
+ break;
+ }
+ })
+ .keyup(function(event) {
+ var previous_token;
+ var next_token;
+
+ switch(event.keyCode) {
+ case KEY.ENTER:
+ break;
+ }});
+
+ // Keep a reference to the original input box
+ var hidden_input = $(input)
+ .hide()
+ .val("")
+ .focus(function () {
+ input_box.focus();
+ })
+ .blur(function () {
+ input_box.blur();
+ });
+
+ // Keep a reference to the selected token and dropdown item
+ var selected_token = null;
+ var selected_token_index = 0;
+ var selected_dropdown_item = null;
+
+ // The list to store the token items in
+ var token_list = $("<ul />")
+ .addClass(settings.classes.tokenList)
+ .click(function (event) {
+ var li = $(event.target).closest("li");
+ if(li && li.get(0) && $.data(li.get(0), "tokeninput")) {
+ toggle_select_token(li);
+ } else {
+ // Deselect selected token
+ if(selected_token) {
+ deselect_token($(selected_token), POSITION.END);
+ }
+
+ // Focus input box
+ input_box.focus();
+ }
+ })
+ .mouseover(function (event) {
+ var li = $(event.target).closest("li");
+ if(li && selected_token !== this) {
+ li.addClass(settings.classes.highlightedToken);
+ }
+ })
+ .mouseout(function (event) {
+ var li = $(event.target).closest("li");
+ if(li && selected_token !== this) {
+ li.removeClass(settings.classes.highlightedToken);
+ }
+ })
+ .insertBefore(hidden_input);
+
+ // The token holding the input box
+ var input_token = $("<li />")
+ .addClass(settings.classes.inputToken)
+ .appendTo(token_list)
+ .append(input_box);
+
+ // The list to store the dropdown items in
+ var dropdown = $("<div>")
+ .addClass(settings.classes.dropdown)
+ .appendTo("body")
+ .hide();
+
+ // Magic element to help us resize the text input
+ var input_resizer = $("<tester/>")
+ .insertAfter(input_box)
+ .css({
+ position: "absolute",
+ top: -9999,
+ left: -9999,
+ width: "auto",
+ fontSize: input_box.css("fontSize"),
+ fontFamily: input_box.css("fontFamily"),
+ fontWeight: input_box.css("fontWeight"),
+ letterSpacing: input_box.css("letterSpacing"),
+ whiteSpace: "nowrap"
+ });
+
+ // Pre-populate list if items exist
+ hidden_input.val("");
+ var li_data = settings.prePopulate || hidden_input.data("pre");
+ if(settings.processPrePopulate && $.isFunction(settings.onResult)) {
+ li_data = settings.onResult.call(hidden_input, li_data);
+ }
+ if(li_data && li_data.length) {
+ $.each(li_data, function (index, value) {
+ insert_token(value);
+ checkTokenLimit();
+ });
+ }
+
+ // Initialization is done
+ if($.isFunction(settings.onReady)) {
+ settings.onReady.call();
+ }
+
+ //
+ // Public functions
+ //
+
+ this.clear = function() {
+ token_list.children("li").each(function() {
+ if ($(this).children("input").length === 0) {
+ delete_token($(this));
+ }
+ });
+ }
+
+ this.add = function(item) {
+ add_token(item);
+ }
+
+ this.remove = function(item) {
+ token_list.children("li").each(function() {
+ if ($(this).children("input").length === 0) {
+ var currToken = $(this).data("tokeninput");
+ var match = true;
+ for (var prop in item) {
+ if (item[prop] !== currToken[prop]) {
+ match = false;
+ break;
+ }
+ }
+ if (match) {
+ delete_token($(this));
+ }
+ }
+ });
+ }
+
+ this.getTokens = function() {
+ return saved_tokens;
+ }
+
+ //
+ // Private functions
+ //
+
+ function checkTokenLimit() {
+ if(settings.tokenLimit !== null && token_count >= settings.tokenLimit) {
+ input_box.hide();
+ hide_dropdown();
+ return;
+ }
+ }
+
+ function resize_input() {
+ if(input_val === (input_val = input_box.val())) {return;}
+
+ // Enter new content into resizer and resize input accordingly
+ var escaped = input_val.replace(/&/g, '&').replace(/\s/g,' ').replace(/</g, '<').replace(/>/g, '>');
+ input_resizer.html(escaped);
+ input_box.width(input_resizer.width() + 30);
+ }
+
+ function is_printable_character(keycode) {
+ return ((keycode >= 48 && keycode <= 90) || // 0-1a-z
+ (keycode >= 96 && keycode <= 111) || // numpad 0-9 + - / * .
+ (keycode >= 186 && keycode <= 192) || // ; = , - . / ^
+ (keycode >= 219 && keycode <= 222)); // ( \ ) '
+ }
+
+ // Inner function to a token to the list
+ function insert_token(item) {
+ var this_token = settings.tokenFormatter(item);
+ this_token = $(this_token)
+ .addClass(settings.classes.token)
+ .insertBefore(input_token);
+
+ // The 'delete token' button
+ $("<span>" + settings.deleteText + "</span>")
+ .addClass(settings.classes.tokenDelete)
+ .appendTo(this_token)
+ .click(function () {
+ delete_token($(this).parent());
+ hidden_input.change();
+ return false;
+ });
+
+ // Store data on the token
+ var token_data = {"id": item.id};
+ token_data[settings.propertyToSearch] = item[settings.propertyToSearch];
+ $.data(this_token.get(0), "tokeninput", item);
+
+ // Save this token for duplicate checking
+ saved_tokens = saved_tokens.slice(0,selected_token_index).concat([token_data]).concat(saved_tokens.slice(selected_token_index));
+ selected_token_index++;
+
+ // Update the hidden input
+ update_hidden_input(saved_tokens, hidden_input);
+
+ token_count += 1;
+
+ // Check the token limit
+ if(settings.tokenLimit !== null && token_count >= settings.tokenLimit) {
+ input_box.hide();
+ hide_dropdown();
+ }
+
+ return this_token;
+ }
+
+ // Add a token to the token list based on user input
+ function add_token (item) {
+ var callback = settings.onAdd;
+
+ // See if the token already exists and select it if we don't want duplicates
+ if(token_count > 0 && settings.preventDuplicates) {
+ var found_existing_token = null;
+ token_list.children().each(function () {
+ var existing_token = $(this);
+ var existing_data = $.data(existing_token.get(0), "tokeninput");
+ if(existing_data && existing_data.name === item.name) {
+ found_existing_token = existing_token;
+ return false;
+ }
+ });
+
+ if (found_existing_token) {
+ found_existing_token.addClass(settings.classes.selectedToken).delay(900).queue(function() {
+ $(this).removeClass(settings.classes.selectedToken);
+ $(this).dequeue();
+ });
+
+ input_box.val("");
+
+ return;
+ }
+ }
+
+ // Insert the new tokens
+ if(settings.tokenLimit == null || token_count < settings.tokenLimit) {
+ insert_token(item);
+ checkTokenLimit();
+ }
+
+ // Clear input box
+ input_box.val("");
+
+ // Don't show the help dropdown, they've got the idea
+ hide_dropdown();
+
+ // Execute the onAdd callback if defined
+ if($.isFunction(callback)) {
+ callback.call(hidden_input,item);
+ }
+ }
+
+ // Select a token in the token list
+ function select_token (token) {
+ token.addClass(settings.classes.selectedToken);
+ selected_token = token.get(0);
+
+ // Hide input box
+ input_box.val("");
+
+ // Hide dropdown if it is visible (eg if we clicked to select token)
+ hide_dropdown();
+ }
+
+ // Deselect a token in the token list
+ function deselect_token (token, position) {
+ token.removeClass(settings.classes.selectedToken);
+ selected_token = null;
+
+ if(position === POSITION.BEFORE) {
+ input_token.insertBefore(token);
+ selected_token_index--;
+ } else if(position === POSITION.AFTER) {
+ input_token.insertAfter(token);
+ selected_token_index++;
+ } else {
+ input_token.appendTo(token_list);
+ selected_token_index = token_count;
+ }
+
+ // Show the input box and give it focus again
+ input_box.focus();
+ }
+
+ // Toggle selection of a token in the token list
+ function toggle_select_token(token) {
+ var previous_selected_token = selected_token;
+
+ if(selected_token) {
+ deselect_token($(selected_token), POSITION.END);
+ }
+
+ if(previous_selected_token === token.get(0)) {
+ deselect_token(token, POSITION.END);
+ } else {
+ select_token(token);
+ }
+ }
+
+ // Delete a token from the token list
+ function delete_token (token) {
+ // Remove the id from the saved list
+ var token_data = $.data(token.get(0), "tokeninput");
+ var callback = settings.onDelete;
+
+ var index = token.prevAll().length;
+ if(index > selected_token_index) index--;
+
+ // Delete the token
+ token.remove();
+ selected_token = null;
+
+ // Show the input box and give it focus again
+ input_box.focus();
+
+ // Remove this token from the saved list
+ saved_tokens = saved_tokens.slice(0,index).concat(saved_tokens.slice(index+1));
+ if(index < selected_token_index) selected_token_index--;
+
+ // Update the hidden input
+ update_hidden_input(saved_tokens, hidden_input);
+
+ token_count -= 1;
+
+ if(settings.tokenLimit !== null) {
+ input_box
+ .show()
+ .val("")
+ .focus();
+ }
+
+ // Execute the onDelete callback if defined
+ if($.isFunction(callback)) {
+ callback.call(hidden_input,token_data);
+ }
+ }
+
+ // Update the hidden input box value
+ function update_hidden_input(saved_tokens, hidden_input) {
+ var token_values = $.map(saved_tokens, function (el) {
+ return el[settings.tokenValue];
+ });
+ hidden_input.val(token_values.join(settings.tokenDelimiter));
+
+ }
+
+ // Hide and clear the results dropdown
+ function hide_dropdown () {
+ dropdown.hide().empty();
+ selected_dropdown_item = null;
+ }
+
+ function show_dropdown() {
+ dropdown
+ .css({
+ position: "absolute",
+ top: $(token_list).offset().top + $(token_list).outerHeight(),
+ left: $(token_list).offset().left,
+ zindex: 1010
+ })
+ .show();
+ }
+
+ function show_dropdown_searching () {
+ if(settings.searchingText) {
+ dropdown.html("<p>"+settings.searchingText+"</p>");
+ show_dropdown();
+ }
+ }
+
+ function show_dropdown_hint () {
+ if(settings.hintText) {
+ dropdown.html("<p>"+settings.hintText+"</p>");
+ show_dropdown();
+ }
+ }
+
+ function regexSanitize(str) {
+ return str.replace(/([.+*?:\[\](){}|\\])/g, "\\$1");
+ }
+
+ // Highlight the query part of the search term
+ function highlight_term(value, term) {
+ return value.replace(new RegExp("(?![^&;]+;)(?!<[^<>]*)(" + regexSanitize(term) + ")(?![^<>]*>)(?![^&;]+;)", "gi"), "<b>$1</b>");
+ }
+
+ function find_value_and_highlight_term(template, value, term) {
+ try {
+ b = regexSanitize(value);
+ a = template.replace(new RegExp("(?![^&;]+;)(?!<[^<>]*)(" + regexSanitize(value) + ")(?![^<>]*>)(?![^&;]+;)", "g"), highlight_term(value, term));
+ }
+ catch (e)
+ {
+ alert(e);
+
+ return false;
+ }
+
+ return a;
+ }
+
+ // Populate the results dropdown with some results
+ function populate_dropdown (query, results) {
+ if(results && results.length) {
+ dropdown.empty();
+ var dropdown_ul = $("<ul>")
+ .appendTo(dropdown)
+ .mouseover(function (event) {
+ select_dropdown_item($(event.target).closest("li"));
+ })
+ .mousedown(function (event) {
+ add_token($(event.target).closest("li").data("tokeninput"));
+ hidden_input.change();
+ return false;
+ })
+ .hide();
+
+ $.each(results, function(index, value) {
+ var this_li = settings.resultsFormatter(value);
+
+ this_li = find_value_and_highlight_term(this_li ,value[settings.propertyToSearch], query);
+
+ this_li = $(this_li).appendTo(dropdown_ul);
+
+ if(index % 2) {
+ this_li.addClass(settings.classes.dropdownItem);
+ } else {
+ this_li.addClass(settings.classes.dropdownItem2);
+ }
+
+ if(index === 0) {
+ select_dropdown_item(this_li);
+ }
+
+ $.data(this_li.get(0), "tokeninput", value);
+ });
+
+ show_dropdown();
+
+ if(settings.animateDropdown) {
+ dropdown_ul.slideDown("fast");
+ } else {
+ dropdown_ul.show();
+ }
+ } else {
+ if(settings.noResultsText) {
+ dropdown.html("<p>"+settings.noResultsText+"</p>");
+ show_dropdown();
+ }
+ }
+ }
+
+ // Highlight an item in the results dropdown
+ function select_dropdown_item (item) {
+ if(item) {
+ if(selected_dropdown_item) {
+ deselect_dropdown_item($(selected_dropdown_item));
+ }
+
+ item.addClass(settings.classes.selectedDropdownItem);
+ selected_dropdown_item = item.get(0);
+ }
+ }
+
+ // Remove highlighting from an item in the results dropdown
+ function deselect_dropdown_item (item) {
+ item.removeClass(settings.classes.selectedDropdownItem);
+ selected_dropdown_item = null;
+ }
+
+ // Do a search and show the "searching" dropdown if the input is longer
+ // than settings.minChars
+ function do_search() {
+ var query = input_box.val().toLowerCase();
+
+ if(query && query.length) {
+ if(selected_token) {
+ deselect_token($(selected_token), POSITION.AFTER);
+ }
+
+ if(query.length >= settings.minChars) {
+ show_dropdown_searching();
+ clearTimeout(timeout);
+
+ timeout = setTimeout(function(){
+ run_search(query);
+ }, settings.searchDelay);
+ } else {
+ hide_dropdown();
+ }
+ }
+ }
+
+ // Do the actual search
+ function run_search(query) {
+ var cache_key = query + computeURL();
+ var cached_results = cache.get(cache_key);
+ if(cached_results) {
+ populate_dropdown(query, cached_results);
+ } else {
+ // Are we doing an ajax search or local data search?
+ if(settings.url) {
+ var url = computeURL();
+ // Extract exisiting get params
+ var ajax_params = {};
+ ajax_params.data = {};
+ if(url.indexOf("?") > -1) {
+ var parts = url.split("?");
+ ajax_params.url = parts[0];
+
+ var param_array = parts[1].split("&");
+ $.each(param_array, function (index, value) {
+ var kv = value.split("=");
+ ajax_params.data[kv[0]] = kv[1];
+ });
+ } else {
+ ajax_params.url = url;
+ }
+
+ // Prepare the request
+ ajax_params.data[settings.queryParam] = query;
+ ajax_params.type = settings.method;
+ ajax_params.dataType = settings.contentType;
+ if(settings.crossDomain) {
+ ajax_params.dataType = "jsonp";
+ }
+
+ // Attach the success callback
+ ajax_params.success = function(results) {
+ if($.isFunction(settings.onResult)) {
+ results = settings.onResult.call(hidden_input, results);
+ }
+ cache.add(cache_key, settings.jsonContainer ? results[settings.jsonContainer] : results);
+
+ // only populate the dropdown if the results are associated with the active search query
+ if(input_box.val().toLowerCase() === query) {
+ populate_dropdown(query, settings.jsonContainer ? results[settings.jsonContainer] : results);
+ }
+ };
+
+ // Make the request
+ $.ajax(ajax_params);
+ } else if(settings.local_data) {
+ // Do the search through local data
+ var results = $.grep(settings.local_data, function (row) {
+ return row[settings.propertyToSearch].toLowerCase().indexOf(query.toLowerCase()) > -1;
+ });
+
+ if($.isFunction(settings.onResult)) {
+ results = settings.onResult.call(hidden_input, results);
+ }
+ cache.add(cache_key, results);
+ populate_dropdown(query, results);
+ }
+ }
+ }
+
+ // compute the dynamic URL
+ function computeURL() {
+ var url = settings.url;
+ if(typeof settings.url == 'function') {
+ url = settings.url.call();
+ }
+ return url;
+ }
+};
+
+// Really basic cache for the results
+$.TokenList.Cache = function (options) {
+ var settings = $.extend({
+ max_size: 500
+ }, options);
+
+ var data = {};
+ var size = 0;
+
+ var flush = function () {
+ data = {};
+ size = 0;
+ };
+
+ this.add = function (query, results) {
+ if(size > settings.max_size) {
+ flush();
+ }
+
+ if(!data[query]) {
+ size += 1;
+ }
+
+ data[query] = results;
+ };
+
+ this.get = function (query) {
+ return data[query];
+ };
+};
+}(jQuery));
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/9d776f4f/ui/scripts/system.js
----------------------------------------------------------------------
diff --git a/ui/scripts/system.js b/ui/scripts/system.js
index 592ae1f..b658301 100644
--- a/ui/scripts/system.js
+++ b/ui/scripts/system.js
@@ -16887,8 +16887,31 @@
storageTags: {
label: 'label.storage.tags',
docID: 'helpPrimaryStorageTags',
+ isTokenInput: true,
validation: {
required: false
+ },
+ dataProvider: function(args) {
+ $.ajax({
+ url: createURL("listStorageTags"),
+ dataType: "json",
+ success: function (json) {
+ var item = json.liststoragetagsresponse.storagetag;
+ var tags = $.map(item, function (tag) {
+ return {
+ id: tag.name,
+ name: tag.name
+ };
+ });
+ args.response.success({
+ data: tags
+ });
+ },
+ error: function (XMLHttpResponse) {
+ var errorMsg = parseXMLHttpResponse(XMLHttpResponse);
+ args.response.error(errorMsg);
+ }
+ });
}
}
//always appear (end)
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/9d776f4f/ui/scripts/ui/dialog.js
----------------------------------------------------------------------
diff --git a/ui/scripts/ui/dialog.js b/ui/scripts/ui/dialog.js
index ff1353e..14ea4dd 100644
--- a/ui/scripts/ui/dialog.js
+++ b/ui/scripts/ui/dialog.js
@@ -464,6 +464,60 @@
if (field.defaultValue) {
$input.val(strOrFunc(field.defaultValue));
}
+ } else if (field.isTokenInput) { // jquery.tokeninput.js
+ isAsync = true;
+ selectArgs = {
+ context: args.context,
+ response: {
+ success: function(args) {
+ function equals(tag1, tag2) {
+ return (tag1.name == tag2.name) && (tag1.id == tag2.id);
+ }
+
+ function contains(tag, tags)
+ {
+ for (var i = 0; i < tags.length; i++)
+ {
+ if (equals(tags[i], tag)) return true;
+ }
+
+ return false;
+ }
+
+ function unique_tags(tags)
+ {
+ var unique = [];
+
+ if (tags != null)
+ {
+ for (var i = 0; i < tags.length; i++)
+ {
+ if (!contains(tags[i], unique))
+ {
+ unique.push(tags[i]);
+ }
+ }
+ }
+
+ return unique;
+ }
+
+ $input.tokenInput(unique_tags(args.data), { theme: "facebook", preventDuplicates: true });
+ }
+ }
+ };
+
+ $input = $('<input>').attr({
+ name: key,
+ type: 'text'
+ }).appendTo($value);
+
+ $.extend(selectArgs, {
+ $form: $form,
+ type: 'createForm'
+ });
+
+ field.dataProvider(selectArgs);
} else if (field.isDatepicker) { //jQuery datepicker
$input = $('<input>').attr({
name: key,
[34/50] git commit: updated refs/heads/saml2 to 09da909
Posted by bh...@apache.org.
Fixed few loggers according to new changes
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/7cf33f96
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/7cf33f96
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/7cf33f96
Branch: refs/heads/saml2
Commit: 7cf33f96aa113a389d8e75f64dca810f9f032065
Parents: 90fe6d8
Author: Santhosh Edukulla <sa...@gmail.com>
Authored: Thu Aug 14 00:25:53 2014 +0530
Committer: Santhosh Edukulla <sa...@gmail.com>
Committed: Thu Aug 14 00:25:53 2014 +0530
----------------------------------------------------------------------
setup/dev/local.cfg | 14 ++++----------
setup/dev/s3.cfg | 14 ++++----------
tools/devcloud/devcloud-advanced.cfg | 14 ++++----------
tools/devcloud/quickcloud.cfg | 16 +++++-----------
4 files changed, 17 insertions(+), 41 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/7cf33f96/setup/dev/local.cfg
----------------------------------------------------------------------
diff --git a/setup/dev/local.cfg b/setup/dev/local.cfg
index ce956a5..89d56a5 100644
--- a/setup/dev/local.cfg
+++ b/setup/dev/local.cfg
@@ -23,16 +23,10 @@
"port": 3306,
"user": "cloud"
},
- "logger": [
- {
- "name": "TestClient",
- "file": "/tmp/testclient.log"
- },
- {
- "name": "TestCase",
- "file": "/tmp/testcase.log"
- }
- ],
+ "logger":
+ {
+ "LogFolderPath": "/tmp/"
+ },
"mgtSvr": [
{
"mgtSvrIp": "localhost",
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/7cf33f96/setup/dev/s3.cfg
----------------------------------------------------------------------
diff --git a/setup/dev/s3.cfg b/setup/dev/s3.cfg
index fcc8665..a865e0d 100644
--- a/setup/dev/s3.cfg
+++ b/setup/dev/s3.cfg
@@ -113,16 +113,10 @@
]
}
],
- "logger": [
- {
- "name": "TestClient",
- "file": "/tmp/testclient.log"
- },
- {
- "name": "TestCase",
- "file": "/tmp/testcase.log"
- }
- ],
+ "logger":
+ {
+ "LogFolderPath": "/tmp/"
+ },
"mgtSvr": [
{
"mgtSvrIp": "127.0.0.1",
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/7cf33f96/tools/devcloud/devcloud-advanced.cfg
----------------------------------------------------------------------
diff --git a/tools/devcloud/devcloud-advanced.cfg b/tools/devcloud/devcloud-advanced.cfg
index 74b6366..229a325 100644
--- a/tools/devcloud/devcloud-advanced.cfg
+++ b/tools/devcloud/devcloud-advanced.cfg
@@ -117,17 +117,11 @@
"db": "cloud",
"port": 3306,
"user": "cloud"
- },
- "logger": [
+ },
+ "logger":
{
- "name": "TestClient",
- "file": "/var/log/testclient.log"
- },
- {
- "name": "TestCase",
- "file": "/var/log/testcase.log"
- }
- ],
+ "LogFolderPath": "/tmp/"
+ },
"mgtSvr": [
{
"mgtSvrIp": "192.168.56.10",
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/7cf33f96/tools/devcloud/quickcloud.cfg
----------------------------------------------------------------------
diff --git a/tools/devcloud/quickcloud.cfg b/tools/devcloud/quickcloud.cfg
index 77bc114..46a770f 100644
--- a/tools/devcloud/quickcloud.cfg
+++ b/tools/devcloud/quickcloud.cfg
@@ -93,17 +93,11 @@
}
]
}
- ],
- "logger": [
- {
- "name": "TestClient",
- "file": "testclient.log"
- },
- {
- "name": "TestCase",
- "file": "testcase.log"
- }
- ],
+ ],
+ "logger":
+ {
+ "LogFolderPath": "/tmp/"
+ },
"mgtSvr": [
{
"mgtSvrIp": "127.0.0.1",
[45/50] git commit: updated refs/heads/saml2 to 09da909
Posted by bh...@apache.org.
CLOUDSTACK-7308 - Adds tagging support for security group rules
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/6978c18c
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/6978c18c
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/6978c18c
Branch: refs/heads/saml2
Commit: 6978c18c3a2f13e0d2ec6feb24023d229bc7b9ee
Parents: 3bcd22b
Author: Stephen Hoogendijk <s....@tech.leaseweb.com>
Authored: Fri Aug 15 09:39:53 2014 +0200
Committer: Wei Zhou <w....@leaseweb.com>
Committed: Fri Aug 15 09:39:53 2014 +0200
----------------------------------------------------------------------
api/src/com/cloud/server/ResourceTag.java | 1 +
.../api/response/SecurityGroupRuleResponse.java | 14 ++++++++++++++
.../api/query/dao/SecurityGroupJoinDaoImpl.java | 17 +++++++++++++++++
.../com/cloud/tags/TaggedResourceManagerImpl.java | 12 ++++++++++++
4 files changed, 44 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/6978c18c/api/src/com/cloud/server/ResourceTag.java
----------------------------------------------------------------------
diff --git a/api/src/com/cloud/server/ResourceTag.java b/api/src/com/cloud/server/ResourceTag.java
index bf18d65..16d6dc2 100644
--- a/api/src/com/cloud/server/ResourceTag.java
+++ b/api/src/com/cloud/server/ResourceTag.java
@@ -35,6 +35,7 @@ public interface ResourceTag extends ControlledEntity, Identity, InternalIdentit
PortForwardingRule(true, true),
FirewallRule(true, true),
SecurityGroup(true, false),
+ SecurityGroupRule(true, false),
PublicIpAddress(true, true),
Project(true, false),
Vpc(true, true),
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/6978c18c/api/src/org/apache/cloudstack/api/response/SecurityGroupRuleResponse.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/response/SecurityGroupRuleResponse.java b/api/src/org/apache/cloudstack/api/response/SecurityGroupRuleResponse.java
index e2d525a..9e553aa 100644
--- a/api/src/org/apache/cloudstack/api/response/SecurityGroupRuleResponse.java
+++ b/api/src/org/apache/cloudstack/api/response/SecurityGroupRuleResponse.java
@@ -25,6 +25,8 @@ import org.apache.cloudstack.api.EntityReference;
import com.cloud.network.security.SecurityRule;
import com.cloud.serializer.Param;
+import java.util.Set;
+
@EntityReference(value = SecurityRule.class)
public class SecurityGroupRuleResponse extends BaseResponse {
@SerializedName("ruleid")
@@ -63,6 +65,10 @@ public class SecurityGroupRuleResponse extends BaseResponse {
@Param(description = "the CIDR notation for the base IP address of the security group rule")
private String cidr;
+ @SerializedName(ApiConstants.TAGS)
+ @Param(description = "the list of resource tags associated with the rule", responseObject = ResourceTagResponse.class)
+ private java.util.Set<ResourceTagResponse> tags;
+
public String getRuleId() {
return ruleId;
}
@@ -161,4 +167,12 @@ public class SecurityGroupRuleResponse extends BaseResponse {
return false;
return true;
}
+
+ public void setTags(Set<ResourceTagResponse> tags) {
+ this.tags = tags;
+ }
+
+ public void addTag(ResourceTagResponse tag) {
+ this.tags.add(tag);
+ }
}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/6978c18c/server/src/com/cloud/api/query/dao/SecurityGroupJoinDaoImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/api/query/dao/SecurityGroupJoinDaoImpl.java b/server/src/com/cloud/api/query/dao/SecurityGroupJoinDaoImpl.java
index 093709d..d284404 100644
--- a/server/src/com/cloud/api/query/dao/SecurityGroupJoinDaoImpl.java
+++ b/server/src/com/cloud/api/query/dao/SecurityGroupJoinDaoImpl.java
@@ -17,11 +17,15 @@
package com.cloud.api.query.dao;
import java.util.ArrayList;
+import java.util.HashSet;
import java.util.List;
+import java.util.Set;
import javax.ejb.Local;
import javax.inject.Inject;
+import com.cloud.server.ResourceTag;
+import org.apache.cloudstack.api.response.ResourceTagResponse;
import org.apache.log4j.Logger;
import org.springframework.stereotype.Component;
@@ -48,6 +52,9 @@ public class SecurityGroupJoinDaoImpl extends GenericDaoBase<SecurityGroupJoinVO
@Inject
private ConfigurationDao _configDao;
+ @Inject
+ private ResourceTagJoinDao _resourceTagJoinDao;
+
private final SearchBuilder<SecurityGroupJoinVO> sgSearch;
private final SearchBuilder<SecurityGroupJoinVO> sgIdSearch;
@@ -99,6 +106,16 @@ public class SecurityGroupJoinDaoImpl extends GenericDaoBase<SecurityGroupJoinVO
ruleData.setCidr(vsg.getRuleAllowedSourceIpCidr());
}
+ // list the tags by rule uuid
+ List<ResourceTagJoinVO> tags = _resourceTagJoinDao.listBy(vsg.getRuleUuid(), ResourceTag.ResourceObjectType.SecurityGroupRule);
+ Set<ResourceTagResponse> tagResponse = new HashSet<ResourceTagResponse>();
+ for (ResourceTagJoinVO tag: tags) {
+ tagResponse.add(ApiDBUtils.newResourceTagResponse(tag, false));
+ }
+
+ // add the tags to the rule data
+ ruleData.setTags(tagResponse);
+
if (vsg.getRuleType() == SecurityRuleType.IngressRule) {
ruleData.setObjectName("ingressrule");
sgResponse.addSecurityGroupIngressRule(ruleData);
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/6978c18c/server/src/com/cloud/tags/TaggedResourceManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/tags/TaggedResourceManagerImpl.java b/server/src/com/cloud/tags/TaggedResourceManagerImpl.java
index ea032ad..64474ec 100644
--- a/server/src/com/cloud/tags/TaggedResourceManagerImpl.java
+++ b/server/src/com/cloud/tags/TaggedResourceManagerImpl.java
@@ -55,6 +55,7 @@ import com.cloud.network.dao.Site2SiteVpnGatewayVO;
import com.cloud.network.rules.FirewallRuleVO;
import com.cloud.network.rules.PortForwardingRuleVO;
import com.cloud.network.security.SecurityGroupVO;
+import com.cloud.network.security.SecurityGroupRuleVO;
import com.cloud.network.vpc.NetworkACLItemVO;
import com.cloud.network.vpc.NetworkACLVO;
import com.cloud.network.vpc.StaticRouteVO;
@@ -103,6 +104,7 @@ public class TaggedResourceManagerImpl extends ManagerBase implements TaggedReso
s_typeMap.put(ResourceObjectType.PortForwardingRule, PortForwardingRuleVO.class);
s_typeMap.put(ResourceObjectType.FirewallRule, FirewallRuleVO.class);
s_typeMap.put(ResourceObjectType.SecurityGroup, SecurityGroupVO.class);
+ s_typeMap.put(ResourceObjectType.SecurityGroupRule, SecurityGroupRuleVO.class);
s_typeMap.put(ResourceObjectType.PublicIpAddress, IPAddressVO.class);
s_typeMap.put(ResourceObjectType.Project, ProjectVO.class);
s_typeMap.put(ResourceObjectType.Vpc, VpcVO.class);
@@ -178,6 +180,16 @@ public class TaggedResourceManagerImpl extends ManagerBase implements TaggedReso
Object entity = _entityMgr.findById(clazz, resourceId);
Long accountId = null;
Long domainId = null;
+
+ // if the resource type is a security group rule, get the accountId and domainId from the security group itself
+ if (resourceType == ResourceObjectType.SecurityGroupRule) {
+ SecurityGroupRuleVO rule = (SecurityGroupRuleVO)entity;
+ Object SecurityGroup = _entityMgr.findById(s_typeMap.get(ResourceObjectType.SecurityGroup), rule.getSecurityGroupId());
+
+ accountId = ((SecurityGroupVO)SecurityGroup).getAccountId();
+ domainId = ((SecurityGroupVO)SecurityGroup).getDomainId();
+ }
+
if (entity instanceof OwnedBy) {
accountId = ((OwnedBy)entity).getAccountId();
}
[03/50] git commit: updated refs/heads/saml2 to 09da909
Posted by bh...@apache.org.
Revert "CLOUDSTACK-7312:ISOs cannot be downloaded from URLs without matching"
This reverts commit 737f76df8c86666b47ba347ae46fc10d73b1fee6.
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/83bd4d60
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/83bd4d60
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/83bd4d60
Branch: refs/heads/saml2
Commit: 83bd4d60f118050840cf53e96369999c6e0582ad
Parents: a8316de
Author: Min Chen <mi...@citrix.com>
Authored: Mon Aug 11 17:04:06 2014 -0700
Committer: Min Chen <mi...@citrix.com>
Committed: Tue Aug 12 11:43:08 2014 -0700
----------------------------------------------------------------------
server/src/com/cloud/template/HypervisorTemplateAdapter.java | 6 ++++++
1 file changed, 6 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/83bd4d60/server/src/com/cloud/template/HypervisorTemplateAdapter.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/template/HypervisorTemplateAdapter.java b/server/src/com/cloud/template/HypervisorTemplateAdapter.java
index 419a501..51dedf7 100755
--- a/server/src/com/cloud/template/HypervisorTemplateAdapter.java
+++ b/server/src/com/cloud/template/HypervisorTemplateAdapter.java
@@ -113,6 +113,12 @@ public class HypervisorTemplateAdapter extends TemplateAdapterBase {
public TemplateProfile prepare(RegisterIsoCmd cmd) throws ResourceAllocationException {
TemplateProfile profile = super.prepare(cmd);
String url = profile.getUrl();
+
+ if ((!url.toLowerCase().endsWith("iso")) && (!url.toLowerCase().endsWith("iso.zip")) && (!url.toLowerCase().endsWith("iso.bz2")) &&
+ (!url.toLowerCase().endsWith("iso.gz"))) {
+ throw new InvalidParameterValueException("Please specify a valid iso");
+ }
+
UriUtils.validateUrl(url);
profile.setUrl(url);
// Check that the resource limit for secondary storage won't be exceeded
[26/50] git commit: updated refs/heads/saml2 to 09da909
Posted by bh...@apache.org.
apidoc: group login, logout, samlsso, samlslo under Authentication section
Signed-off-by: Rohit Yadav <ro...@shapeblue.com>
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/fed71ec5
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/fed71ec5
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/fed71ec5
Branch: refs/heads/saml2
Commit: fed71ec585cb65fe952c0caa1cff43cb64eda6a0
Parents: b7c4259
Author: Rohit Yadav <ro...@shapeblue.com>
Authored: Wed Aug 13 13:48:27 2014 +0200
Committer: Rohit Yadav <ro...@shapeblue.com>
Committed: Wed Aug 13 13:49:05 2014 +0200
----------------------------------------------------------------------
tools/apidoc/gen_toc.py | 6 +++---
1 file changed, 3 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/fed71ec5/tools/apidoc/gen_toc.py
----------------------------------------------------------------------
diff --git a/tools/apidoc/gen_toc.py b/tools/apidoc/gen_toc.py
index 00b51a9..31997a1 100644
--- a/tools/apidoc/gen_toc.py
+++ b/tools/apidoc/gen_toc.py
@@ -108,9 +108,9 @@ known_categories = {
'Hypervisor': 'Hypervisor',
'Alert': 'Alert',
'Event': 'Event',
- 'login': 'Login',
- 'logout': 'Logout',
- 'saml': 'SAML',
+ 'login': 'Authentication',
+ 'logout': 'Authentication',
+ 'saml': 'Authentication',
'Capacity': 'System Capacity',
'NetworkDevice': 'Network Device',
'ExternalLoadBalancer': 'Ext Load Balancer',
[14/50] git commit: updated refs/heads/saml2 to 09da909
Posted by bh...@apache.org.
CLOUDSTACK-7294: Passing listall=True for listUser api admin call
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/9d7b8515
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/9d7b8515
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/9d7b8515
Branch: refs/heads/saml2
Commit: 9d7b85153747dfe378031455fc1231bcd6088d08
Parents: 76cecc3
Author: Gaurav Aradhye <ga...@clogeny.com>
Authored: Mon Aug 11 02:47:34 2014 -0700
Committer: Girish Shilamkar <gi...@clogeny.com>
Committed: Wed Aug 13 11:49:24 2014 +0530
----------------------------------------------------------------------
tools/marvin/marvin/cloudstackTestClient.py | 2 ++
1 file changed, 2 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/9d7b8515/tools/marvin/marvin/cloudstackTestClient.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/cloudstackTestClient.py b/tools/marvin/marvin/cloudstackTestClient.py
index 1ca79ee..521d043 100644
--- a/tools/marvin/marvin/cloudstackTestClient.py
+++ b/tools/marvin/marvin/cloudstackTestClient.py
@@ -344,6 +344,8 @@ class CSTestClient(object):
listuser = listUsers.listUsersCmd()
listuser.username = UserName
+ listuser.domainid = domId
+ listuser.listall = True
listuserRes = self.__apiClient.listUsers(listuser)
userId = listuserRes[0].id
[04/50] git commit: updated refs/heads/saml2 to 09da909
Posted by bh...@apache.org.
Revert "CLOUDSTACK-6940:Templates cannot be downloaded from URLs without"
This reverts commit 569e94908b6fa471f2f72578e1ff21f3fa7c6a4e.
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/a8316de7
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/a8316de7
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/a8316de7
Branch: refs/heads/saml2
Commit: a8316de725db149aec8545bb5b0dfb7c71be2824
Parents: af37743
Author: Min Chen <mi...@citrix.com>
Authored: Mon Aug 11 17:03:53 2014 -0700
Committer: Min Chen <mi...@citrix.com>
Committed: Tue Aug 12 11:43:08 2014 -0700
----------------------------------------------------------------------
.../cloud/template/HypervisorTemplateAdapter.java | 16 ++++++++++++++++
1 file changed, 16 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/a8316de7/server/src/com/cloud/template/HypervisorTemplateAdapter.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/template/HypervisorTemplateAdapter.java b/server/src/com/cloud/template/HypervisorTemplateAdapter.java
index 9b17c30..419a501 100755
--- a/server/src/com/cloud/template/HypervisorTemplateAdapter.java
+++ b/server/src/com/cloud/template/HypervisorTemplateAdapter.java
@@ -16,6 +16,8 @@
// under the License.
package com.cloud.template;
+import java.net.MalformedURLException;
+import java.net.URL;
import java.util.Collections;
import java.util.HashSet;
import java.util.List;
@@ -122,6 +124,20 @@ public class HypervisorTemplateAdapter extends TemplateAdapterBase {
public TemplateProfile prepare(RegisterTemplateCmd cmd) throws ResourceAllocationException {
TemplateProfile profile = super.prepare(cmd);
String url = profile.getUrl();
+ String path = null;
+ try {
+ URL str = new URL(url);
+ path = str.getPath();
+ } catch (MalformedURLException ex) {
+ throw new InvalidParameterValueException("Please specify a valid URL. URL:" + url + " is invalid");
+ }
+
+ try {
+ checkFormat(cmd.getFormat(), url);
+ } catch (InvalidParameterValueException ex) {
+ checkFormat(cmd.getFormat(), path);
+ }
+
UriUtils.validateUrl(url);
profile.setUrl(url);
// Check that the resource limit for secondary storage won't be exceeded
[20/50] git commit: updated refs/heads/saml2 to 09da909
Posted by bh...@apache.org.
Fixed an issue failing in CI, where iscsi support is not available for kvm
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/ce622c0a
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/ce622c0a
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/ce622c0a
Branch: refs/heads/saml2
Commit: ce622c0a296c3c715398f31479eacbd7f89b05dd
Parents: 2279289
Author: Santhosh Edukulla <sa...@gmail.com>
Authored: Wed Aug 13 15:38:36 2014 +0530
Committer: Santhosh Edukulla <sa...@gmail.com>
Committed: Wed Aug 13 15:38:36 2014 +0530
----------------------------------------------------------------------
test/integration/smoke/test_primary_storage.py | 5 +++--
1 file changed, 3 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/ce622c0a/test/integration/smoke/test_primary_storage.py
----------------------------------------------------------------------
diff --git a/test/integration/smoke/test_primary_storage.py b/test/integration/smoke/test_primary_storage.py
index 8926a9e..d2d5b4f 100644
--- a/test/integration/smoke/test_primary_storage.py
+++ b/test/integration/smoke/test_primary_storage.py
@@ -39,6 +39,7 @@ class TestPrimaryStorageServices(cloudstackTestCase):
# Get Zone and pod
self.zone = get_zone(self.apiclient, self.testClient.getZoneForTests())
self.pod = get_pod(self.apiclient, self.zone.id)
+ self.hypervisor = self.testClient.getHypervisorInfo()
return
@@ -56,8 +57,8 @@ class TestPrimaryStorageServices(cloudstackTestCase):
"""Test primary storage pools - XEN, KVM, VMWare
"""
- if self.testClient.getHypervisorInfo().lower() == "hyperv":
- raise self.skipTest("NFS primary storage not supported on Hyper-V")
+ if self.hypervisor.lower() in ["kvm","hyperv"]:
+ raise self.skipTest("NFS primary storage not supported on kvm or Hyper-V")
# Validate the following:
[50/50] git commit: updated refs/heads/saml2 to 09da909
Posted by bh...@apache.org.
SAML2: add saml sso and slo apicmds skeleton, add classes to AuthManager
Signed-off-by: Rohit Yadav <ro...@shapeblue.com>
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/09da909b
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/09da909b
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/09da909b
Branch: refs/heads/saml2
Commit: 09da909b6983b631c2cc6e36058e70538a31fb73
Parents: 34b698d
Author: Rohit Yadav <ro...@shapeblue.com>
Authored: Tue Aug 12 13:10:05 2014 +0200
Committer: Rohit Yadav <ro...@shapeblue.com>
Committed: Sat Aug 16 12:53:59 2014 +0200
----------------------------------------------------------------------
.../org/apache/cloudstack/api/ApiConstants.java | 1 +
.../api/auth/APIAuthenticationManagerImpl.java | 2 +
.../api/auth/SAML2LoginAPIAuthenticatorCmd.java | 94 ++++++++++++++++++++
.../auth/SAML2LogoutAPIAuthenticatorCmd.java | 71 +++++++++++++++
4 files changed, 168 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/09da909b/api/src/org/apache/cloudstack/api/ApiConstants.java
----------------------------------------------------------------------
diff --git a/api/src/org/apache/cloudstack/api/ApiConstants.java b/api/src/org/apache/cloudstack/api/ApiConstants.java
index f89aa14..6baa95c 100755
--- a/api/src/org/apache/cloudstack/api/ApiConstants.java
+++ b/api/src/org/apache/cloudstack/api/ApiConstants.java
@@ -514,6 +514,7 @@ public class ApiConstants {
public static final String VMPROFILE_ID = "vmprofileid";
public static final String VMGROUP_ID = "vmgroupid";
public static final String CS_URL = "csurl";
+ public static final String IDP_URL = "idpurl";
public static final String SCALEUP_POLICY_IDS = "scaleuppolicyids";
public static final String SCALEDOWN_POLICY_IDS = "scaledownpolicyids";
public static final String SCALEUP_POLICIES = "scaleuppolicies";
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/09da909b/server/src/com/cloud/api/auth/APIAuthenticationManagerImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/api/auth/APIAuthenticationManagerImpl.java b/server/src/com/cloud/api/auth/APIAuthenticationManagerImpl.java
index 886d277..ece2e03 100644
--- a/server/src/com/cloud/api/auth/APIAuthenticationManagerImpl.java
+++ b/server/src/com/cloud/api/auth/APIAuthenticationManagerImpl.java
@@ -57,6 +57,8 @@ public class APIAuthenticationManagerImpl extends ManagerBase implements APIAuth
s_commandList = new ArrayList<Class<?>>();
s_commandList.add(DefaultLoginAPIAuthenticatorCmd.class);
s_commandList.add(DefaultLogoutAPIAuthenticatorCmd.class);
+ s_commandList.add(SAML2LoginAPIAuthenticatorCmd.class);
+ s_commandList.add(SAML2LogoutAPIAuthenticatorCmd.class);
}
return s_commandList;
}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/09da909b/server/src/com/cloud/api/auth/SAML2LoginAPIAuthenticatorCmd.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/api/auth/SAML2LoginAPIAuthenticatorCmd.java b/server/src/com/cloud/api/auth/SAML2LoginAPIAuthenticatorCmd.java
new file mode 100644
index 0000000..beba4f1
--- /dev/null
+++ b/server/src/com/cloud/api/auth/SAML2LoginAPIAuthenticatorCmd.java
@@ -0,0 +1,94 @@
+// 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.api.auth;
+
+import com.cloud.user.Account;
+import org.apache.cloudstack.api.APICommand;
+import org.apache.cloudstack.api.ApiConstants;
+import org.apache.cloudstack.api.ApiErrorCode;
+import org.apache.cloudstack.api.BaseCmd;
+import org.apache.cloudstack.api.Parameter;
+import org.apache.cloudstack.api.ServerApiException;
+import org.apache.cloudstack.api.response.LoginCmdResponse;
+import org.apache.log4j.Logger;
+
+import javax.servlet.http.HttpServletResponse;
+import javax.servlet.http.HttpSession;
+import java.io.IOException;
+import java.util.Map;
+
+@APICommand(name = "samlsso", description = "SP initiated SAML Single Sign On", requestHasSensitiveInfo = true, responseObject = LoginCmdResponse.class, entityType = {})
+public class SAML2LoginAPIAuthenticatorCmd extends BaseCmd implements APIAuthenticator {
+ public static final Logger s_logger = Logger.getLogger(SAML2LoginAPIAuthenticatorCmd.class.getName());
+ private static final String s_name = "loginresponse";
+
+ /////////////////////////////////////////////////////
+ //////////////// API parameters /////////////////////
+ /////////////////////////////////////////////////////
+ @Parameter(name = ApiConstants.IDP_URL, type = CommandType.STRING, description = "Identity Provider SSO HTTP-Redirect binding URL", required = true)
+ private String idpUrl;
+
+ /////////////////////////////////////////////////////
+ /////////////////// Accessors ///////////////////////
+ /////////////////////////////////////////////////////
+
+ public String getIdpUrl() {
+ return idpUrl;
+ }
+
+ /////////////////////////////////////////////////////
+ /////////////// API Implementation///////////////////
+ /////////////////////////////////////////////////////
+
+ @Override
+ public String getCommandName() {
+ return s_name;
+ }
+
+ @Override
+ public long getEntityOwnerId() {
+ return Account.ACCOUNT_TYPE_NORMAL;
+ }
+
+ @Override
+ public void execute() throws ServerApiException {
+ // We should never reach here
+ throw new ServerApiException(ApiErrorCode.METHOD_NOT_ALLOWED, "This is an authentication api, cannot be used directly");
+ }
+
+ @Override
+ public String authenticate(String command, Map<String, Object[]> params, HttpSession session, String remoteAddress, String responseType, StringBuilder auditTrailSb, final HttpServletResponse resp) throws ServerApiException {
+
+ String response = null;
+ try {
+ resp.sendRedirect(getIdpUrl());
+
+ // TODO: create and send assertion with the URL as GET params
+
+ } catch (IOException e) {
+ auditTrailSb.append("SP initiated SAML authentication using HTTP redirection failed:");
+ auditTrailSb.append(e.getMessage());
+ }
+ return response;
+ }
+
+ @Override
+ public APIAuthenticationType getAPIType() {
+ return APIAuthenticationType.LOGIN_API;
+ }
+}
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/09da909b/server/src/com/cloud/api/auth/SAML2LogoutAPIAuthenticatorCmd.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/api/auth/SAML2LogoutAPIAuthenticatorCmd.java b/server/src/com/cloud/api/auth/SAML2LogoutAPIAuthenticatorCmd.java
new file mode 100644
index 0000000..9119588
--- /dev/null
+++ b/server/src/com/cloud/api/auth/SAML2LogoutAPIAuthenticatorCmd.java
@@ -0,0 +1,71 @@
+// 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.api.auth;
+
+import com.cloud.api.response.ApiResponseSerializer;
+import com.cloud.user.Account;
+import org.apache.cloudstack.api.APICommand;
+import org.apache.cloudstack.api.ApiErrorCode;
+import org.apache.cloudstack.api.BaseCmd;
+import org.apache.cloudstack.api.ServerApiException;
+import org.apache.cloudstack.api.response.LogoutCmdResponse;
+import org.apache.log4j.Logger;
+
+import javax.servlet.http.HttpServletResponse;
+import javax.servlet.http.HttpSession;
+import java.util.Map;
+
+@APICommand(name = "samlslo", description = "SAML Single Log Out API", responseObject = LogoutCmdResponse.class, entityType = {})
+public class SAML2LogoutAPIAuthenticatorCmd extends BaseCmd implements APIAuthenticator {
+ public static final Logger s_logger = Logger.getLogger(SAML2LogoutAPIAuthenticatorCmd.class.getName());
+ private static final String s_name = "logoutresponse";
+
+ /////////////////////////////////////////////////////
+ /////////////// API Implementation///////////////////
+ /////////////////////////////////////////////////////
+
+ @Override
+ public String getCommandName() {
+ return s_name;
+ }
+
+ @Override
+ public long getEntityOwnerId() {
+ return Account.ACCOUNT_TYPE_NORMAL;
+ }
+
+ @Override
+ public void execute() throws ServerApiException {
+ // We should never reach here
+ throw new ServerApiException(ApiErrorCode.METHOD_NOT_ALLOWED, "This is an authentication api, cannot be used directly");
+ }
+
+ @Override
+ public String authenticate(String command, Map<String, Object[]> params, HttpSession session, String remoteAddress, String responseType, StringBuilder auditTrailSb, final HttpServletResponse resp) throws ServerApiException {
+ auditTrailSb.append("=== Logging out ===");
+ // TODO: check global config and do either local or global log out
+ LogoutCmdResponse response = new LogoutCmdResponse();
+ response.setDescription("success");
+ response.setResponseName(getCommandName());
+ return ApiResponseSerializer.toSerializedString(response, responseType);
+ }
+
+ @Override
+ public APIAuthenticationType getAPIType() {
+ return APIAuthenticationType.LOGOUT_API;
+ }
+}
[25/50] git commit: updated refs/heads/saml2 to 09da909
Posted by bh...@apache.org.
CLOUDSTACK-7330: Fixing ListNetworks issue in test_portable_ip.py
Signed-off-by: Santhosh Edukulla <sa...@gmail.com>
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/b7c4259d
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/b7c4259d
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/b7c4259d
Branch: refs/heads/saml2
Commit: b7c4259d9750cffe0cd0796b1434b39bff185b4d
Parents: 3c9d787
Author: Gaurav Aradhye <ga...@clogeny.com>
Authored: Wed Aug 13 16:12:17 2014 +0530
Committer: Santhosh Edukulla <sa...@gmail.com>
Committed: Wed Aug 13 17:14:47 2014 +0530
----------------------------------------------------------------------
test/integration/component/test_persistent_networks.py | 13 ++++---------
tools/marvin/marvin/lib/common.py | 4 ++--
2 files changed, 6 insertions(+), 11 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/b7c4259d/test/integration/component/test_persistent_networks.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_persistent_networks.py b/test/integration/component/test_persistent_networks.py
index b242579..24eb71d 100644
--- a/test/integration/component/test_persistent_networks.py
+++ b/test/integration/component/test_persistent_networks.py
@@ -1721,13 +1721,6 @@ class TestVPCNetworkOperations(cloudstackTestCase):
self.assertEqual(validateList(networks)[0], FAIL, "networks list should be empty, it is %s" % networks)
return
- def VerifyDomainCleanup(self, domainid):
- """Verify that domain is cleaned up"""
-
- domains=Domain.list(self.apiclient,id=domainid)
- self.assertEqual(validateList(domains)[0], FAIL, "domains list should be empty, it is %s" % domains)
- return
-
def VerifyVpcCleanup(self, vpcid):
"""Verify that VPC is cleaned up"""
vpcs = VPC.list(self.apiclient,id=vpcid)
@@ -1931,7 +1924,9 @@ class TestVPCNetworkOperations(cloudstackTestCase):
" to cleanup any remaining resouces")
# Sleep 3*account.gc to ensure that all resources are deleted
wait_for_cleanup(self.apiclient, ["account.cleanup.interval"]*3)
- self.VerifyDomainCleanup(child_domain.id)
+
+ with self.assertRaises(Exception):
+ Domain.list(self.apiclient,id=child_domain.id)
with self.assertRaises(Exception):
Account.list(
@@ -1947,7 +1942,7 @@ class TestVPCNetworkOperations(cloudstackTestCase):
self.VerifyVpcCleanup(vpc_1.id)
self.VerifyVpcCleanup(vpc_2.id)
- self.VerifyNetworkClenaup(persistent_network_1.id)
+ self.VerifyNetworkCleanup(persistent_network_1.id)
self.VerifyNetworkCleanup(persistent_network_2.id)
return
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/b7c4259d/tools/marvin/marvin/lib/common.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/lib/common.py b/tools/marvin/marvin/lib/common.py
index 62d409c..46291a9 100644
--- a/tools/marvin/marvin/lib/common.py
+++ b/tools/marvin/marvin/lib/common.py
@@ -1151,7 +1151,7 @@ def shouldTestBeSkipped(networkType, zoneType):
skipIt = True
return skipIt
-def verifyNetworkState(apiclient, networkid, state):
+def verifyNetworkState(apiclient, networkid, state, listall=True):
"""List networks and check if the network state matches the given state"""
retriesCount = 10
isNetworkInDesiredState = False
@@ -1159,7 +1159,7 @@ def verifyNetworkState(apiclient, networkid, state):
exceptionMessage = ""
try:
while retriesCount >= 0:
- networks = Network.list(apiclient, id=networkid)
+ networks = Network.list(apiclient, id=networkid, listall=listall)
assert validateList(
networks)[0] == PASS, "Networks list validation failed"
if str(networks[0].state).lower() == state:
[42/50] git commit: updated refs/heads/saml2 to 09da909
Posted by bh...@apache.org.
Removed a print statement
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/516895d4
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/516895d4
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/516895d4
Branch: refs/heads/saml2
Commit: 516895d48e5e150b630d06fae8d9f5d27ee06ff6
Parents: 4825017
Author: Santhosh Edukulla <sa...@gmail.com>
Authored: Thu Aug 14 21:57:20 2014 +0530
Committer: Santhosh Edukulla <sa...@gmail.com>
Committed: Thu Aug 14 21:57:20 2014 +0530
----------------------------------------------------------------------
test/integration/smoke/test_templates.py | 1 -
1 file changed, 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/516895d4/test/integration/smoke/test_templates.py
----------------------------------------------------------------------
diff --git a/test/integration/smoke/test_templates.py b/test/integration/smoke/test_templates.py
index a757c2a..943650e 100644
--- a/test/integration/smoke/test_templates.py
+++ b/test/integration/smoke/test_templates.py
@@ -246,7 +246,6 @@ class TestTemplates(cloudstackTestCase):
cls.services["template"]["ostypeid"] = template.ostypeid
cls.services["template_2"]["ostypeid"] = template.ostypeid
cls.services["ostypeid"] = template.ostypeid
- print "Before:",cls.services
cls.account = Account.create(
cls.apiclient,
cls.services["account"],
[10/50] git commit: updated refs/heads/saml2 to 09da909
Posted by bh...@apache.org.
Quickview: Fix action error handling not removing loading state
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/cf8a00cb
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/cf8a00cb
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/cf8a00cb
Branch: refs/heads/saml2
Commit: cf8a00cbfdbcfc1e3696800280273482fbb811ad
Parents: a1bee2c
Author: Brian Federle <br...@citrix.com>
Authored: Tue Aug 12 15:20:32 2014 -0700
Committer: Brian Federle <br...@citrix.com>
Committed: Tue Aug 12 15:20:56 2014 -0700
----------------------------------------------------------------------
ui/scripts/ui/widgets/detailView.js | 6 ++++++
1 file changed, 6 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/cf8a00cb/ui/scripts/ui/widgets/detailView.js
----------------------------------------------------------------------
diff --git a/ui/scripts/ui/widgets/detailView.js b/ui/scripts/ui/widgets/detailView.js
index 9c73911..681392f 100644
--- a/ui/scripts/ui/widgets/detailView.js
+++ b/ui/scripts/ui/widgets/detailView.js
@@ -269,6 +269,12 @@
message: args
});
}
+
+ // Quickview: Remove loading state on list row
+ if (viewArgs && viewArgs.$listViewRow) {
+ viewArgs.$listViewRow.removeClass('loading')
+ .find('.loading').removeClass('loading');
+ }
$loading.remove();
}
}
[32/50] git commit: updated refs/heads/saml2 to 09da909
Posted by bh...@apache.org.
Handle case where no storage tags exist yet
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/a698daaf
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/a698daaf
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/a698daaf
Branch: refs/heads/saml2
Commit: a698daafffd2358efbb12514d98fba82ebf8573d
Parents: 6115a90
Author: Mike Tutkowski <mi...@solidfire.com>
Authored: Wed Aug 13 10:53:37 2014 -0600
Committer: Mike Tutkowski <mi...@solidfire.com>
Committed: Wed Aug 13 10:54:10 2014 -0600
----------------------------------------------------------------------
ui/scripts/system.js | 19 +++++++++++++------
1 file changed, 13 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/a698daaf/ui/scripts/system.js
----------------------------------------------------------------------
diff --git a/ui/scripts/system.js b/ui/scripts/system.js
index b658301..5c49a1a 100644
--- a/ui/scripts/system.js
+++ b/ui/scripts/system.js
@@ -16897,18 +16897,25 @@
dataType: "json",
success: function (json) {
var item = json.liststoragetagsresponse.storagetag;
- var tags = $.map(item, function (tag) {
- return {
- id: tag.name,
- name: tag.name
- };
- });
+ var tags = [];
+
+ if (item != null)
+ {
+ tags = $.map(item, function (tag) {
+ return {
+ id: tag.name,
+ name: tag.name
+ };
+ });
+ }
+
args.response.success({
data: tags
});
},
error: function (XMLHttpResponse) {
var errorMsg = parseXMLHttpResponse(XMLHttpResponse);
+
args.response.error(errorMsg);
}
});
[11/50] git commit: updated refs/heads/saml2 to 09da909
Posted by bh...@apache.org.
CLOUDSTACK-7328:[Automation] Register ISO failing with invalid iso
format error.
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/a22abeb0
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/a22abeb0
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/a22abeb0
Branch: refs/heads/saml2
Commit: a22abeb0e7c8090f018b65e8a0594db589a13cd2
Parents: cf8a00c
Author: Min Chen <mi...@citrix.com>
Authored: Tue Aug 12 14:53:16 2014 -0700
Committer: Min Chen <mi...@citrix.com>
Committed: Tue Aug 12 15:26:50 2014 -0700
----------------------------------------------------------------------
utils/src/com/cloud/utils/UriUtils.java | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/a22abeb0/utils/src/com/cloud/utils/UriUtils.java
----------------------------------------------------------------------
diff --git a/utils/src/com/cloud/utils/UriUtils.java b/utils/src/com/cloud/utils/UriUtils.java
index 0657c74..9f6f037 100644
--- a/utils/src/com/cloud/utils/UriUtils.java
+++ b/utils/src/com/cloud/utils/UriUtils.java
@@ -337,7 +337,8 @@ public class UriUtils {
&& !uripath.toLowerCase().endsWith("vmdk.bz2")
&& !uripath.toLowerCase().endsWith("vmdk.gz")))
|| (format.equalsIgnoreCase("iso")
- && (!uripath.toLowerCase().endsWith("iso.zip")
+ && (!uripath.toLowerCase().endsWith("iso")
+ && !uripath.toLowerCase().endsWith("iso.zip")
&& !uripath.toLowerCase().endsWith("iso.bz2")
&& !uripath.toLowerCase().endsWith("iso.gz")))) {
throw new IllegalArgumentException("Please specify a valid URL. URL:" + uripath + " is an invalid for the format " + format.toLowerCase());
[17/50] git commit: updated refs/heads/saml2 to 09da909
Posted by bh...@apache.org.
Don't depend on static paths especially if we are already checking that
location using the getResource call.
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/328599ae
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/328599ae
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/328599ae
Branch: refs/heads/saml2
Commit: 328599ae0b2582d641e51c2922ecad2972e1f03a
Parents: ae4d498
Author: Hugo Trippaers <ht...@schubergphilis.com>
Authored: Wed Aug 13 09:02:04 2014 +0200
Committer: Hugo Trippaers <ht...@schubergphilis.com>
Committed: Wed Aug 13 09:02:04 2014 +0200
----------------------------------------------------------------------
.../BaremetalKickStartServiceImpl.java | 64 +++++++++-----------
1 file changed, 27 insertions(+), 37 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/328599ae/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/BaremetalKickStartServiceImpl.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/BaremetalKickStartServiceImpl.java b/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/BaremetalKickStartServiceImpl.java
index f7d82d3..bd363f6 100755
--- a/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/BaremetalKickStartServiceImpl.java
+++ b/plugins/hypervisors/baremetal/src/com/cloud/baremetal/networkservice/BaremetalKickStartServiceImpl.java
@@ -18,6 +18,25 @@
// Automatically generated by addcopyright.py at 01/29/2013
package com.cloud.baremetal.networkservice;
+import java.io.File;
+import java.net.URI;
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import javax.ejb.Local;
+import javax.inject.Inject;
+
+import org.apache.log4j.Logger;
+
+import org.apache.cloudstack.api.AddBaremetalKickStartPxeCmd;
+import org.apache.cloudstack.api.AddBaremetalPxeCmd;
+import org.apache.cloudstack.api.ListBaremetalPxeServersCmd;
+import org.apache.cloudstack.framework.config.dao.ConfigurationDao;
+
import com.cloud.agent.api.Answer;
import com.cloud.agent.api.baremetal.IpmISetBootDevCommand;
import com.cloud.agent.api.baremetal.IpmISetBootDevCommand.BootDev;
@@ -60,23 +79,6 @@ import com.cloud.vm.ReservationContext;
import com.cloud.vm.VirtualMachineProfile;
import com.cloud.vm.dao.DomainRouterDao;
import com.cloud.vm.dao.NicDao;
-import org.apache.cloudstack.api.AddBaremetalKickStartPxeCmd;
-import org.apache.cloudstack.api.AddBaremetalPxeCmd;
-import org.apache.cloudstack.api.ListBaremetalPxeServersCmd;
-import org.apache.cloudstack.framework.config.dao.ConfigurationDao;
-import org.apache.log4j.Logger;
-import org.springframework.web.util.UriComponentsBuilder;
-
-import javax.ejb.Local;
-import javax.inject.Inject;
-import java.io.File;
-import java.net.URI;
-import java.net.URL;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
@Local(value = BaremetalPxeService.class)
public class BaremetalKickStartServiceImpl extends BareMetalPxeServiceBase implements BaremetalPxeService {
@@ -163,12 +165,9 @@ public class BaremetalKickStartServiceImpl extends BareMetalPxeServiceBase imple
if (url != null) {
keyFile = new File(url.getPath());
}
- if (keyFile == null || !keyFile.exists()) {
- keyFile = new File("/usr/share/cloudstack-common/scripts/vm/systemvm/id_rsa.cloud");
- }
- assert (keyFile != null);
- if (!keyFile.exists()) {
- s_logger.error("Unable to locate id_rsa.cloud in your setup at " + keyFile.toString());
+ if (keyFile == null || !keyFile.canRead()) {
+ s_logger.error("Unable to locate id_rsa.cloud");
+ return null;
}
return keyFile;
}
@@ -204,15 +203,6 @@ public class BaremetalKickStartServiceImpl extends BareMetalPxeServiceBase imple
return true;
}
- private URI buildUrl(String mgmtIp, String subPath) {
- UriComponentsBuilder ub = UriComponentsBuilder.newInstance();
- ub.scheme("http");
- ub.scheme(mgmtIp);
- ub.port(10086);
- ub.path(subPath);
- return ub.build().toUri();
- }
-
private boolean preparePxeInAdvancedZone(VirtualMachineProfile profile, NicProfile nic, Network network, DeployDestination dest, ReservationContext context) throws Exception {
DomainRouterVO vr = getVirtualRouter(network);
List<NicVO> nics = _nicDao.listByVmId(vr.getId());
@@ -232,7 +222,7 @@ public class BaremetalKickStartServiceImpl extends BareMetalPxeServiceBase imple
Pair<Boolean, String> ret = SshHelper.sshExecute(mgmtNic.getIp4Address(), 3922, "root", getSystemVMKeyFile(), null,
String.format("/usr/bin/prepare_pxe.sh %s %s %s %s %s", tuple.get(1), tuple.get(2), profile.getTemplate().getUuid(),
String.format("01-%s", nic.getMacAddress().replaceAll(":", "-")), tuple.get(0))
- );
+ );
if (!ret.first()) {
throw new CloudRuntimeException(String.format("failed preparing PXE in virtual router[id:%s], because %s", vr.getId(), ret.second()));
}
@@ -241,7 +231,7 @@ public class BaremetalKickStartServiceImpl extends BareMetalPxeServiceBase imple
String internalServerIp = "10.223.110.231";
ret = SshHelper.sshExecute(mgmtNic.getIp4Address(), 3922, "root", getSystemVMKeyFile(), null,
String.format("/usr/bin/baremetal_snat.sh %s %s", mgmtNic.getIp4Address(), internalServerIp)
- );
+ );
if (!ret.first()) {
throw new CloudRuntimeException(String.format("failed preparing PXE in virtual router[id:%s], because %s", vr.getId(), ret.second()));
}
@@ -299,13 +289,13 @@ public class BaremetalKickStartServiceImpl extends BareMetalPxeServiceBase imple
zoneId = pNetwork.getDataCenterId();
PhysicalNetworkServiceProviderVO ntwkSvcProvider =
- _physicalNetworkServiceProviderDao.findByServiceProvider(pNetwork.getId(), BaremetalPxeManager.BAREMETAL_PXE_SERVICE_PROVIDER.getName());
+ _physicalNetworkServiceProviderDao.findByServiceProvider(pNetwork.getId(), BaremetalPxeManager.BAREMETAL_PXE_SERVICE_PROVIDER.getName());
if (ntwkSvcProvider == null) {
throw new CloudRuntimeException("Network Service Provider: " + BaremetalPxeManager.BAREMETAL_PXE_SERVICE_PROVIDER.getName() +
- " is not enabled in the physical network: " + cmd.getPhysicalNetworkId() + "to add this device");
+ " is not enabled in the physical network: " + cmd.getPhysicalNetworkId() + "to add this device");
} else if (ntwkSvcProvider.getState() == PhysicalNetworkServiceProvider.State.Shutdown) {
throw new CloudRuntimeException("Network Service Provider: " + ntwkSvcProvider.getProviderName() + " is in shutdown state in the physical network: " +
- cmd.getPhysicalNetworkId() + "to add this device");
+ cmd.getPhysicalNetworkId() + "to add this device");
}
List<HostVO> pxes = _resourceMgr.listAllHostsInOneZoneByType(Host.Type.BaremetalPxe, zoneId);
[37/50] git commit: updated refs/heads/saml2 to 09da909
Posted by bh...@apache.org.
CLOUDSTACK-7331: Fixed issue in test_persistent_networks.py
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/a38bb389
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/a38bb389
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/a38bb389
Branch: refs/heads/saml2
Commit: a38bb389b2026d9d6f71daf2c2ce2759264ddd30
Parents: fee2bfc
Author: Gaurav Aradhye <ga...@clogeny.com>
Authored: Wed Aug 13 13:17:42 2014 +0530
Committer: Girish Shilamkar <gi...@clogeny.com>
Committed: Thu Aug 14 11:35:58 2014 +0530
----------------------------------------------------------------------
test/integration/component/test_persistent_networks.py | 2 ++
1 file changed, 2 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/a38bb389/test/integration/component/test_persistent_networks.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_persistent_networks.py b/test/integration/component/test_persistent_networks.py
index 24eb71d..7364685 100644
--- a/test/integration/component/test_persistent_networks.py
+++ b/test/integration/component/test_persistent_networks.py
@@ -1816,6 +1816,8 @@ class TestVPCNetworkOperations(cloudstackTestCase):
self.fail(exceptionMessage)
elif value == "delete":
+ persistent_network_1.delete(self.apiclient)
+ persistent_network_2.delete(self.apiclient)
vpc.delete(self.apiclient)
vpcs = VPC.list(self.apiclient, id=vpc.id)
self.assertEqual(validateList(vpcs)[0], FAIL, "vpc list should be empty, list is %s" % vpcs)
[33/50] git commit: updated refs/heads/saml2 to 09da909
Posted by bh...@apache.org.
removed trailing space
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/90fe6d80
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/90fe6d80
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/90fe6d80
Branch: refs/heads/saml2
Commit: 90fe6d80876501a94f0d217db777af096212adf0
Parents: a698daa
Author: Anthony Xu <an...@citrix.com>
Authored: Tue Aug 12 18:29:52 2014 -0700
Committer: Anthony Xu <an...@citrix.com>
Committed: Wed Aug 13 11:09:38 2014 -0700
----------------------------------------------------------------------
engine/storage/snapshot/test/resources/db.properties | 4 ++--
framework/db/test/resources/db.properties | 4 ++--
framework/jobs/test/resources/log4j.properties | 4 ++--
.../src/test/resources/testfiles/all/defaults.properties | 4 ++--
.../module/src/test/resources/testfiles/all/module.properties | 4 ++--
.../src/test/resources/testfiles/all/test2-defaults.properties | 4 ++--
.../src/test/resources/testfiles/badname/module.properties | 4 ++--
.../src/test/resources/testfiles/blankname/module.properties | 6 +++---
.../module/src/test/resources/testfiles/good/module.properties | 4 ++--
.../src/test/resources/testfiles/missingname/module.properties | 4 ++--
.../src/test/resources/testfiles/wrongname/module.properties | 4 ++--
.../src/test/resources/testhierarchy/base/module.properties | 4 ++--
.../test/resources/testhierarchy/child1-1/module.properties | 4 ++--
.../src/test/resources/testhierarchy/child1/module.properties | 4 ++--
.../src/test/resources/testhierarchy/child2/module.properties | 4 ++--
.../test/resources/testhierarchy/excluded/module.properties | 4 ++--
.../test/resources/testhierarchy/excluded2/module.properties | 4 ++--
.../testhierarchy/orphan-of-excluded/defaults.properties | 4 ++--
.../testhierarchy/orphan-of-excluded/module.properties | 4 ++--
.../src/test/resources/testhierarchy/orphan1/module.properties | 4 ++--
plugins/hypervisors/hyperv/conf/developer.properties.template | 4 ++--
plugins/hypervisors/hyperv/conf/environment.properties.in | 4 ++--
.../juniper-contrail/test/resources/contrail.properties | 4 ++--
.../juniper-contrail/test/resources/log4j.properties | 4 ++--
server/test/resources/db.properties | 4 ++--
usage/test/resources/db.properties | 4 ++--
26 files changed, 53 insertions(+), 53 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/90fe6d80/engine/storage/snapshot/test/resources/db.properties
----------------------------------------------------------------------
diff --git a/engine/storage/snapshot/test/resources/db.properties b/engine/storage/snapshot/test/resources/db.properties
index 18bf54c..c30bf60 100644
--- a/engine/storage/snapshot/test/resources/db.properties
+++ b/engine/storage/snapshot/test/resources/db.properties
@@ -5,9 +5,9 @@
# 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
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/90fe6d80/framework/db/test/resources/db.properties
----------------------------------------------------------------------
diff --git a/framework/db/test/resources/db.properties b/framework/db/test/resources/db.properties
index cc1215f..e3a5d22 100644
--- a/framework/db/test/resources/db.properties
+++ b/framework/db/test/resources/db.properties
@@ -5,9 +5,9 @@
# 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
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/90fe6d80/framework/jobs/test/resources/log4j.properties
----------------------------------------------------------------------
diff --git a/framework/jobs/test/resources/log4j.properties b/framework/jobs/test/resources/log4j.properties
index 1119ecb..fdf675a 100644
--- a/framework/jobs/test/resources/log4j.properties
+++ b/framework/jobs/test/resources/log4j.properties
@@ -5,9 +5,9 @@
# 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
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/90fe6d80/framework/spring/module/src/test/resources/testfiles/all/defaults.properties
----------------------------------------------------------------------
diff --git a/framework/spring/module/src/test/resources/testfiles/all/defaults.properties b/framework/spring/module/src/test/resources/testfiles/all/defaults.properties
index c08d10b..0f5f194 100644
--- a/framework/spring/module/src/test/resources/testfiles/all/defaults.properties
+++ b/framework/spring/module/src/test/resources/testfiles/all/defaults.properties
@@ -5,9 +5,9 @@
# 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
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/90fe6d80/framework/spring/module/src/test/resources/testfiles/all/module.properties
----------------------------------------------------------------------
diff --git a/framework/spring/module/src/test/resources/testfiles/all/module.properties b/framework/spring/module/src/test/resources/testfiles/all/module.properties
index 3faaf94..7c54dc9 100644
--- a/framework/spring/module/src/test/resources/testfiles/all/module.properties
+++ b/framework/spring/module/src/test/resources/testfiles/all/module.properties
@@ -5,9 +5,9 @@
# 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
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/90fe6d80/framework/spring/module/src/test/resources/testfiles/all/test2-defaults.properties
----------------------------------------------------------------------
diff --git a/framework/spring/module/src/test/resources/testfiles/all/test2-defaults.properties b/framework/spring/module/src/test/resources/testfiles/all/test2-defaults.properties
index 00ae6c0..2456923 100644
--- a/framework/spring/module/src/test/resources/testfiles/all/test2-defaults.properties
+++ b/framework/spring/module/src/test/resources/testfiles/all/test2-defaults.properties
@@ -5,9 +5,9 @@
# 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
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/90fe6d80/framework/spring/module/src/test/resources/testfiles/badname/module.properties
----------------------------------------------------------------------
diff --git a/framework/spring/module/src/test/resources/testfiles/badname/module.properties b/framework/spring/module/src/test/resources/testfiles/badname/module.properties
index 354accf..517005f 100644
--- a/framework/spring/module/src/test/resources/testfiles/badname/module.properties
+++ b/framework/spring/module/src/test/resources/testfiles/badname/module.properties
@@ -5,9 +5,9 @@
# 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
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/90fe6d80/framework/spring/module/src/test/resources/testfiles/blankname/module.properties
----------------------------------------------------------------------
diff --git a/framework/spring/module/src/test/resources/testfiles/blankname/module.properties b/framework/spring/module/src/test/resources/testfiles/blankname/module.properties
index b11279b..e7c4640 100644
--- a/framework/spring/module/src/test/resources/testfiles/blankname/module.properties
+++ b/framework/spring/module/src/test/resources/testfiles/blankname/module.properties
@@ -5,9 +5,9 @@
# 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
@@ -15,4 +15,4 @@
# specific language governing permissions and limitations
# under the License.
# A bunch of whitespace is after name
-name=
+name=
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/90fe6d80/framework/spring/module/src/test/resources/testfiles/good/module.properties
----------------------------------------------------------------------
diff --git a/framework/spring/module/src/test/resources/testfiles/good/module.properties b/framework/spring/module/src/test/resources/testfiles/good/module.properties
index 47e60ec..3b96f80 100644
--- a/framework/spring/module/src/test/resources/testfiles/good/module.properties
+++ b/framework/spring/module/src/test/resources/testfiles/good/module.properties
@@ -5,9 +5,9 @@
# 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
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/90fe6d80/framework/spring/module/src/test/resources/testfiles/missingname/module.properties
----------------------------------------------------------------------
diff --git a/framework/spring/module/src/test/resources/testfiles/missingname/module.properties b/framework/spring/module/src/test/resources/testfiles/missingname/module.properties
index 00ae6c0..2456923 100644
--- a/framework/spring/module/src/test/resources/testfiles/missingname/module.properties
+++ b/framework/spring/module/src/test/resources/testfiles/missingname/module.properties
@@ -5,9 +5,9 @@
# 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
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/90fe6d80/framework/spring/module/src/test/resources/testfiles/wrongname/module.properties
----------------------------------------------------------------------
diff --git a/framework/spring/module/src/test/resources/testfiles/wrongname/module.properties b/framework/spring/module/src/test/resources/testfiles/wrongname/module.properties
index 47e60ec..3b96f80 100644
--- a/framework/spring/module/src/test/resources/testfiles/wrongname/module.properties
+++ b/framework/spring/module/src/test/resources/testfiles/wrongname/module.properties
@@ -5,9 +5,9 @@
# 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
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/90fe6d80/framework/spring/module/src/test/resources/testhierarchy/base/module.properties
----------------------------------------------------------------------
diff --git a/framework/spring/module/src/test/resources/testhierarchy/base/module.properties b/framework/spring/module/src/test/resources/testhierarchy/base/module.properties
index 955a32c..a44e5eb 100644
--- a/framework/spring/module/src/test/resources/testhierarchy/base/module.properties
+++ b/framework/spring/module/src/test/resources/testhierarchy/base/module.properties
@@ -5,9 +5,9 @@
# 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
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/90fe6d80/framework/spring/module/src/test/resources/testhierarchy/child1-1/module.properties
----------------------------------------------------------------------
diff --git a/framework/spring/module/src/test/resources/testhierarchy/child1-1/module.properties b/framework/spring/module/src/test/resources/testhierarchy/child1-1/module.properties
index 4abe53f..873b6bb 100644
--- a/framework/spring/module/src/test/resources/testhierarchy/child1-1/module.properties
+++ b/framework/spring/module/src/test/resources/testhierarchy/child1-1/module.properties
@@ -5,9 +5,9 @@
# 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
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/90fe6d80/framework/spring/module/src/test/resources/testhierarchy/child1/module.properties
----------------------------------------------------------------------
diff --git a/framework/spring/module/src/test/resources/testhierarchy/child1/module.properties b/framework/spring/module/src/test/resources/testhierarchy/child1/module.properties
index 9f4df48..42708c7 100644
--- a/framework/spring/module/src/test/resources/testhierarchy/child1/module.properties
+++ b/framework/spring/module/src/test/resources/testhierarchy/child1/module.properties
@@ -5,9 +5,9 @@
# 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
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/90fe6d80/framework/spring/module/src/test/resources/testhierarchy/child2/module.properties
----------------------------------------------------------------------
diff --git a/framework/spring/module/src/test/resources/testhierarchy/child2/module.properties b/framework/spring/module/src/test/resources/testhierarchy/child2/module.properties
index f03edfc..f0bfa74 100644
--- a/framework/spring/module/src/test/resources/testhierarchy/child2/module.properties
+++ b/framework/spring/module/src/test/resources/testhierarchy/child2/module.properties
@@ -5,9 +5,9 @@
# 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
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/90fe6d80/framework/spring/module/src/test/resources/testhierarchy/excluded/module.properties
----------------------------------------------------------------------
diff --git a/framework/spring/module/src/test/resources/testhierarchy/excluded/module.properties b/framework/spring/module/src/test/resources/testhierarchy/excluded/module.properties
index abd8368..0ea382a 100644
--- a/framework/spring/module/src/test/resources/testhierarchy/excluded/module.properties
+++ b/framework/spring/module/src/test/resources/testhierarchy/excluded/module.properties
@@ -5,9 +5,9 @@
# 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
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/90fe6d80/framework/spring/module/src/test/resources/testhierarchy/excluded2/module.properties
----------------------------------------------------------------------
diff --git a/framework/spring/module/src/test/resources/testhierarchy/excluded2/module.properties b/framework/spring/module/src/test/resources/testhierarchy/excluded2/module.properties
index 2d06f69..e3665ee 100644
--- a/framework/spring/module/src/test/resources/testhierarchy/excluded2/module.properties
+++ b/framework/spring/module/src/test/resources/testhierarchy/excluded2/module.properties
@@ -5,9 +5,9 @@
# 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
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/90fe6d80/framework/spring/module/src/test/resources/testhierarchy/orphan-of-excluded/defaults.properties
----------------------------------------------------------------------
diff --git a/framework/spring/module/src/test/resources/testhierarchy/orphan-of-excluded/defaults.properties b/framework/spring/module/src/test/resources/testhierarchy/orphan-of-excluded/defaults.properties
index b1f6ab9..811d442 100644
--- a/framework/spring/module/src/test/resources/testhierarchy/orphan-of-excluded/defaults.properties
+++ b/framework/spring/module/src/test/resources/testhierarchy/orphan-of-excluded/defaults.properties
@@ -5,9 +5,9 @@
# 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
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/90fe6d80/framework/spring/module/src/test/resources/testhierarchy/orphan-of-excluded/module.properties
----------------------------------------------------------------------
diff --git a/framework/spring/module/src/test/resources/testhierarchy/orphan-of-excluded/module.properties b/framework/spring/module/src/test/resources/testhierarchy/orphan-of-excluded/module.properties
index 7684deb..93b9186 100644
--- a/framework/spring/module/src/test/resources/testhierarchy/orphan-of-excluded/module.properties
+++ b/framework/spring/module/src/test/resources/testhierarchy/orphan-of-excluded/module.properties
@@ -5,9 +5,9 @@
# 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
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/90fe6d80/framework/spring/module/src/test/resources/testhierarchy/orphan1/module.properties
----------------------------------------------------------------------
diff --git a/framework/spring/module/src/test/resources/testhierarchy/orphan1/module.properties b/framework/spring/module/src/test/resources/testhierarchy/orphan1/module.properties
index d4a0e6c..dc42274 100644
--- a/framework/spring/module/src/test/resources/testhierarchy/orphan1/module.properties
+++ b/framework/spring/module/src/test/resources/testhierarchy/orphan1/module.properties
@@ -5,9 +5,9 @@
# 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
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/90fe6d80/plugins/hypervisors/hyperv/conf/developer.properties.template
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/hyperv/conf/developer.properties.template b/plugins/hypervisors/hyperv/conf/developer.properties.template
index a70a136..02f51aa 100644
--- a/plugins/hypervisors/hyperv/conf/developer.properties.template
+++ b/plugins/hypervisors/hyperv/conf/developer.properties.template
@@ -5,9 +5,9 @@
# 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
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/90fe6d80/plugins/hypervisors/hyperv/conf/environment.properties.in
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/hyperv/conf/environment.properties.in b/plugins/hypervisors/hyperv/conf/environment.properties.in
index 514161a..b6cc5bb 100644
--- a/plugins/hypervisors/hyperv/conf/environment.properties.in
+++ b/plugins/hypervisors/hyperv/conf/environment.properties.in
@@ -5,9 +5,9 @@
# 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
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/90fe6d80/plugins/network-elements/juniper-contrail/test/resources/contrail.properties
----------------------------------------------------------------------
diff --git a/plugins/network-elements/juniper-contrail/test/resources/contrail.properties b/plugins/network-elements/juniper-contrail/test/resources/contrail.properties
index 0c5207e..b38adb1 100644
--- a/plugins/network-elements/juniper-contrail/test/resources/contrail.properties
+++ b/plugins/network-elements/juniper-contrail/test/resources/contrail.properties
@@ -15,5 +15,5 @@
# specific language governing permissions and limitations
# under the License.
-api.hostname =
-api.port =
+api.hostname=
+api.port=
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/90fe6d80/plugins/network-elements/juniper-contrail/test/resources/log4j.properties
----------------------------------------------------------------------
diff --git a/plugins/network-elements/juniper-contrail/test/resources/log4j.properties b/plugins/network-elements/juniper-contrail/test/resources/log4j.properties
index 2e724f4..8c012b1 100644
--- a/plugins/network-elements/juniper-contrail/test/resources/log4j.properties
+++ b/plugins/network-elements/juniper-contrail/test/resources/log4j.properties
@@ -5,9 +5,9 @@
# 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
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/90fe6d80/server/test/resources/db.properties
----------------------------------------------------------------------
diff --git a/server/test/resources/db.properties b/server/test/resources/db.properties
index 79a3c1b..1422f42 100644
--- a/server/test/resources/db.properties
+++ b/server/test/resources/db.properties
@@ -5,9 +5,9 @@
# 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
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/90fe6d80/usage/test/resources/db.properties
----------------------------------------------------------------------
diff --git a/usage/test/resources/db.properties b/usage/test/resources/db.properties
index 18bf54c..c30bf60 100644
--- a/usage/test/resources/db.properties
+++ b/usage/test/resources/db.properties
@@ -5,9 +5,9 @@
# 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
[21/50] git commit: updated refs/heads/saml2 to 09da909
Posted by bh...@apache.org.
CLOUDSTACK-7334. [VMware] AddHost command fails if there is a space in the VMware DC/Cluster name.
URL decode vCenter path during cluster discovery.
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/6a4a11ed
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/6a4a11ed
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/6a4a11ed
Branch: refs/heads/saml2
Commit: 6a4a11ed71fe37e0b100303ceca897f33687a4d8
Parents: 4c4d89f
Author: Sateesh Chodapuneedi <sa...@apache.org>
Authored: Wed Feb 5 10:52:05 2014 +0530
Committer: Likitha Shetty <li...@citrix.com>
Committed: Wed Aug 13 16:24:14 2014 +0530
----------------------------------------------------------------------
.../vmware/VmwareServerDiscoverer.java | 22 ++++++++++++++------
1 file changed, 16 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/6a4a11ed/plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/VmwareServerDiscoverer.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/VmwareServerDiscoverer.java b/plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/VmwareServerDiscoverer.java
index e0c1931..0916813 100755
--- a/plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/VmwareServerDiscoverer.java
+++ b/plugins/hypervisors/vmware/src/com/cloud/hypervisor/vmware/VmwareServerDiscoverer.java
@@ -68,6 +68,7 @@ import org.apache.log4j.Logger;
import javax.ejb.Local;
import javax.inject.Inject;
import javax.naming.ConfigurationException;
+import java.io.UnsupportedEncodingException;
import java.net.URI;
import java.net.URLDecoder;
import java.util.HashMap;
@@ -150,10 +151,14 @@ public class VmwareServerDiscoverer extends DiscovererBase implements Discoverer
_clusterDetailsDao.persist(clusterId, clusterDetails);
}
String updatedInventoryPath = validateCluster(url, vmwareDc);
- if (!url.getPath().equals(updatedInventoryPath)) {
- // If url from API doesn't specify DC then update url in database with DC associated with this zone.
- clusterDetails.put("url", url.getScheme() + "://" + url.getHost() + updatedInventoryPath);
- _clusterDetailsDao.persist(clusterId, clusterDetails);
+ try {
+ if (!URLDecoder.decode(url.getPath(), "UTF-8").equals(updatedInventoryPath)) {
+ // If url from API doesn't specify DC then update url in database with DC associated with this zone.
+ clusterDetails.put("url", url.getScheme() + "://" + url.getHost() + updatedInventoryPath);
+ _clusterDetailsDao.persist(clusterId, clusterDetails);
+ }
+ } catch(UnsupportedEncodingException e) {
+ throw new DiscoveredWithErrorException("Unable to decode URL path, URL path : " + url.getPath(), e);
}
} else {
// For legacy zones insist on the old model of asking for credentials for each cluster being added.
@@ -455,12 +460,17 @@ public class VmwareServerDiscoverer extends DiscovererBase implements Discoverer
String vmwareDcNameFromDb;
String vmwareDcNameFromApi;
String vCenterHost;
- String updatedInventoryPath = url.getPath();
+ String updatedInventoryPath;
String clusterName = null;
+ String inventoryPath;
vmwareDcNameFromApi = vmwareDcNameFromDb = vmwareDc.getVmwareDatacenterName();
vCenterHost = vmwareDc.getVcenterHost();
- String inventoryPath = url.getPath();
+ try {
+ inventoryPath = updatedInventoryPath = URLDecoder.decode(url.getPath(), "UTF-8");
+ } catch(UnsupportedEncodingException e) {
+ throw new DiscoveredWithErrorException("Unable to decode URL path, URL path : " + url.getPath(), e);
+ }
assert (inventoryPath != null);
[22/50] git commit: updated refs/heads/saml2 to 09da909
Posted by bh...@apache.org.
Fixed an isci failure for kvm in ci
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/4c4d89f4
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/4c4d89f4
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/4c4d89f4
Branch: refs/heads/saml2
Commit: 4c4d89f4d93c25e551dc094ebce1bc4c5ee5b16d
Parents: ce622c0
Author: Santhosh Edukulla <sa...@gmail.com>
Authored: Wed Aug 13 16:28:09 2014 +0530
Committer: Santhosh Edukulla <sa...@gmail.com>
Committed: Wed Aug 13 16:28:09 2014 +0530
----------------------------------------------------------------------
test/integration/smoke/test_primary_storage.py | 12 ++++++------
1 file changed, 6 insertions(+), 6 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/4c4d89f4/test/integration/smoke/test_primary_storage.py
----------------------------------------------------------------------
diff --git a/test/integration/smoke/test_primary_storage.py b/test/integration/smoke/test_primary_storage.py
index d2d5b4f..c3fb4aa 100644
--- a/test/integration/smoke/test_primary_storage.py
+++ b/test/integration/smoke/test_primary_storage.py
@@ -54,11 +54,11 @@ class TestPrimaryStorageServices(cloudstackTestCase):
@attr(tags = ["advanced", "advancedns", "smoke", "basic", "sg"], required_hardware="false")
def test_01_primary_storage_nfs(self):
- """Test primary storage pools - XEN, KVM, VMWare
+ """Test primary storage pools - XEN, KVM, VMWare. Not Supported for hyperv
"""
- if self.hypervisor.lower() in ["kvm","hyperv"]:
- raise self.skipTest("NFS primary storage not supported on kvm or Hyper-V")
+ if self.hypervisor.lower() in ["hyperv"]:
+ raise self.skipTest("NFS primary storage not supported for Hyper-V")
# Validate the following:
@@ -151,11 +151,11 @@ class TestPrimaryStorageServices(cloudstackTestCase):
@attr(tags = ["advanced", "advancedns", "smoke", "basic", "sg"], required_hardware="true")
def test_01_primary_storage_iscsi(self):
- """Test primary storage pools - XEN, KVM, VMWare
+ """Test primary storage pools - XEN, VMWare. Not Supported for kvm,hyperv
"""
- if self.testClient.getHypervisorInfo().lower() == "hyperv":
- raise self.skipTest("iSCSI primary storage Not supported on Hyper-V")
+ if self.hypervisor.lower() in ["kvm","hyperv"]:
+ raise self.skipTest("iscsi primary storage not supported on kvm or Hyper-V")
# Validate the following:
# 1. List Clusters
[15/50] git commit: updated refs/heads/saml2 to 09da909
Posted by bh...@apache.org.
Fix concurrency issues CID-1230585 and CID-1230586
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/d2aa1c4a
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/d2aa1c4a
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/d2aa1c4a
Branch: refs/heads/saml2
Commit: d2aa1c4aa1c9c0993fb5e68af189d011c258e35d
Parents: 9d7b851
Author: Hugo Trippaers <ht...@schubergphilis.com>
Authored: Wed Aug 13 08:39:40 2014 +0200
Committer: Hugo Trippaers <ht...@schubergphilis.com>
Committed: Wed Aug 13 08:39:40 2014 +0200
----------------------------------------------------------------------
core/src/com/cloud/resource/ServerResourceBase.java | 15 ++++++++-------
1 file changed, 8 insertions(+), 7 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/d2aa1c4a/core/src/com/cloud/resource/ServerResourceBase.java
----------------------------------------------------------------------
diff --git a/core/src/com/cloud/resource/ServerResourceBase.java b/core/src/com/cloud/resource/ServerResourceBase.java
index 082067f..a24ea98 100755
--- a/core/src/com/cloud/resource/ServerResourceBase.java
+++ b/core/src/com/cloud/resource/ServerResourceBase.java
@@ -26,6 +26,7 @@ import java.net.SocketException;
import java.util.ArrayList;
import java.util.Date;
import java.util.Enumeration;
+import java.util.LinkedList;
import java.util.List;
import java.util.Map;
@@ -100,9 +101,9 @@ public abstract class ServerResourceBase implements ServerResource {
final String nicName = nic.getName();
// try {
if (//!nic.isLoopback() &&
- //nic.isUp() &&
- !nic.isVirtual() && !nicName.startsWith("vnif") && !nicName.startsWith("vnbr") && !nicName.startsWith("peth") && !nicName.startsWith("vif") &&
- !nicName.startsWith("virbr") && !nicName.contains(":")) {
+ //nic.isUp() &&
+ !nic.isVirtual() && !nicName.startsWith("vnif") && !nicName.startsWith("vnbr") && !nicName.startsWith("peth") && !nicName.startsWith("vif") &&
+ !nicName.startsWith("virbr") && !nicName.contains(":")) {
final String[] info = NetUtils.getNicParams(nicName);
if (info != null && info[0] != null) {
_privateNic = nic;
@@ -237,16 +238,16 @@ public abstract class ServerResourceBase implements ServerResource {
protected List<String> getWarnings() {
synchronized (_warnings) {
- final ArrayList<String> results = _warnings;
- _warnings = new ArrayList<String>();
+ final List<String> results = new LinkedList<String>(_warnings);
+ _warnings.clear();
return results;
}
}
protected List<String> getErrors() {
synchronized (_errors) {
- final ArrayList<String> result = _errors;
- _errors = new ArrayList<String>();
+ final List<String> result = new LinkedList<String>(_errors);
+ _errors.clear();
return result;
}
}
[02/50] git commit: updated refs/heads/saml2 to 09da909
Posted by bh...@apache.org.
CLOUDSTACK-6940, CLOUDSTACK-7312, CLOUDSTACK-5512: Template/ISO/Volume
upload rejects some valid URL formats. Also consolidate URL format check
into one util routine.
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/e3564658
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/e3564658
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/e3564658
Branch: refs/heads/saml2
Commit: e3564658befaa72cbe5fd510bea2a25b40f108f5
Parents: 83bd4d6
Author: Min Chen <mi...@citrix.com>
Authored: Tue Aug 12 11:42:17 2014 -0700
Committer: Min Chen <mi...@citrix.com>
Committed: Tue Aug 12 11:43:08 2014 -0700
----------------------------------------------------------------------
.../template/HttpTemplateDownloader.java | 10 ++-
.../com/cloud/storage/VolumeApiServiceImpl.java | 22 +----
.../template/HypervisorTemplateAdapter.java | 87 +-------------------
utils/src/com/cloud/utils/UriUtils.java | 83 ++++++++++++++++++-
.../utils/template/TemplateUtils.java | 28 +++----
5 files changed, 107 insertions(+), 123 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/e3564658/core/src/com/cloud/storage/template/HttpTemplateDownloader.java
----------------------------------------------------------------------
diff --git a/core/src/com/cloud/storage/template/HttpTemplateDownloader.java b/core/src/com/cloud/storage/template/HttpTemplateDownloader.java
index 5bfa1f7..ed6c9f0 100644
--- a/core/src/com/cloud/storage/template/HttpTemplateDownloader.java
+++ b/core/src/com/cloud/storage/template/HttpTemplateDownloader.java
@@ -24,6 +24,7 @@ import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.io.RandomAccessFile;
+import java.net.URI;
import java.net.URISyntaxException;
import java.util.Date;
@@ -251,7 +252,14 @@ public class HttpTemplateDownloader extends ManagedContextRunnable implements Te
out.seek(offset);
totalBytes += bytes;
if (!verifiedFormat && (offset >= 1048576 || offset >= remoteSize)) { //let's check format after we get 1MB or full file
- String unsupportedFormat = TemplateUtils.checkTemplateFormat(file.getAbsolutePath(), getDownloadUrl());
+ String uripath = null;
+ try {
+ URI str = new URI(getDownloadUrl());
+ uripath = str.getPath();
+ } catch (URISyntaxException e) {
+ s_logger.warn("Invalid download url: " + getDownloadUrl() + ", This should not happen since we have validated the url before!!");
+ }
+ String unsupportedFormat = TemplateUtils.checkTemplateFormat(file.getAbsolutePath(), uripath);
if (unsupportedFormat == null || !unsupportedFormat.isEmpty()) {
try {
request.abort();
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/e3564658/server/src/com/cloud/storage/VolumeApiServiceImpl.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/storage/VolumeApiServiceImpl.java b/server/src/com/cloud/storage/VolumeApiServiceImpl.java
index 5a83ac9..8d83225 100644
--- a/server/src/com/cloud/storage/VolumeApiServiceImpl.java
+++ b/server/src/com/cloud/storage/VolumeApiServiceImpl.java
@@ -295,26 +295,8 @@ public class VolumeApiServiceImpl extends ManagerBase implements VolumeApiServic
if (userSpecifiedName == null) {
userSpecifiedName = getRandomVolumeName();
}
- if ((!url.toLowerCase().endsWith("vhd")) && (!url.toLowerCase().endsWith("vhd.zip")) && (!url.toLowerCase().endsWith("vhd.bz2")) && (!url.toLowerCase().endsWith("vhdx"))
- && (!url.toLowerCase().endsWith("vhdx.zip")) && (!url.toLowerCase().endsWith("vhdx.gz")) && (!url.toLowerCase().endsWith("vhdx.bz2"))
- && (!url.toLowerCase().endsWith("vhd.gz")) && (!url.toLowerCase().endsWith("qcow2")) && (!url.toLowerCase().endsWith("qcow2.zip"))
- && (!url.toLowerCase().endsWith("qcow2.bz2")) && (!url.toLowerCase().endsWith("qcow2.gz")) && (!url.toLowerCase().endsWith("ova"))
- && (!url.toLowerCase().endsWith("ova.zip")) && (!url.toLowerCase().endsWith("ova.bz2")) && (!url.toLowerCase().endsWith("ova.gz"))
- && (!url.toLowerCase().endsWith("img")) && (!url.toLowerCase().endsWith("raw"))) {
- throw new InvalidParameterValueException("Please specify a valid " + format.toLowerCase());
- }
-
- if ((format.equalsIgnoreCase("vhd") && (!url.toLowerCase().endsWith(".vhd") && !url.toLowerCase().endsWith("vhd.zip") && !url.toLowerCase().endsWith("vhd.bz2") && !url
- .toLowerCase().endsWith("vhd.gz")))
- || (format.equalsIgnoreCase("vhdx") && (!url.toLowerCase().endsWith(".vhdx") && !url.toLowerCase().endsWith("vhdx.zip") && !url.toLowerCase().endsWith("vhdx.bz2") && !url
- .toLowerCase().endsWith("vhdx.gz")))
- || (format.equalsIgnoreCase("qcow2") && (!url.toLowerCase().endsWith(".qcow2") && !url.toLowerCase().endsWith("qcow2.zip")
- && !url.toLowerCase().endsWith("qcow2.bz2") && !url.toLowerCase().endsWith("qcow2.gz")))
- || (format.equalsIgnoreCase("ova") && (!url.toLowerCase().endsWith(".ova") && !url.toLowerCase().endsWith("ova.zip") && !url.toLowerCase().endsWith("ova.bz2") && !url
- .toLowerCase().endsWith("ova.gz"))) || (format.equalsIgnoreCase("raw") && (!url.toLowerCase().endsWith(".img") && !url.toLowerCase().endsWith("raw")))) {
- throw new InvalidParameterValueException("Please specify a valid URL. URL:" + url + " is an invalid for the format " + format.toLowerCase());
- }
- UriUtils.validateUrl(url);
+
+ UriUtils.validateUrl(format, url);
// Check that the resource limit for secondary storage won't be exceeded
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/e3564658/server/src/com/cloud/template/HypervisorTemplateAdapter.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/template/HypervisorTemplateAdapter.java b/server/src/com/cloud/template/HypervisorTemplateAdapter.java
index 51dedf7..72aaff5 100755
--- a/server/src/com/cloud/template/HypervisorTemplateAdapter.java
+++ b/server/src/com/cloud/template/HypervisorTemplateAdapter.java
@@ -16,8 +16,6 @@
// under the License.
package com.cloud.template;
-import java.net.MalformedURLException;
-import java.net.URL;
import java.util.Collections;
import java.util.HashSet;
import java.util.List;
@@ -113,13 +111,7 @@ public class HypervisorTemplateAdapter extends TemplateAdapterBase {
public TemplateProfile prepare(RegisterIsoCmd cmd) throws ResourceAllocationException {
TemplateProfile profile = super.prepare(cmd);
String url = profile.getUrl();
-
- if ((!url.toLowerCase().endsWith("iso")) && (!url.toLowerCase().endsWith("iso.zip")) && (!url.toLowerCase().endsWith("iso.bz2")) &&
- (!url.toLowerCase().endsWith("iso.gz"))) {
- throw new InvalidParameterValueException("Please specify a valid iso");
- }
-
- UriUtils.validateUrl(url);
+ UriUtils.validateUrl(ImageFormat.ISO.getFileExtension(), url);
profile.setUrl(url);
// Check that the resource limit for secondary storage won't be exceeded
_resourceLimitMgr.checkResourceLimit(_accountMgr.getAccount(cmd.getEntityOwnerId()), ResourceType.secondary_storage, UriUtils.getRemoteSize(url));
@@ -130,88 +122,13 @@ public class HypervisorTemplateAdapter extends TemplateAdapterBase {
public TemplateProfile prepare(RegisterTemplateCmd cmd) throws ResourceAllocationException {
TemplateProfile profile = super.prepare(cmd);
String url = profile.getUrl();
- String path = null;
- try {
- URL str = new URL(url);
- path = str.getPath();
- } catch (MalformedURLException ex) {
- throw new InvalidParameterValueException("Please specify a valid URL. URL:" + url + " is invalid");
- }
-
- try {
- checkFormat(cmd.getFormat(), url);
- } catch (InvalidParameterValueException ex) {
- checkFormat(cmd.getFormat(), path);
- }
-
- UriUtils.validateUrl(url);
+ UriUtils.validateUrl(cmd.getFormat(), url);
profile.setUrl(url);
// Check that the resource limit for secondary storage won't be exceeded
_resourceLimitMgr.checkResourceLimit(_accountMgr.getAccount(cmd.getEntityOwnerId()), ResourceType.secondary_storage, UriUtils.getRemoteSize(url));
return profile;
}
- private void checkFormat(String format, String url) {
- if ((!url.toLowerCase().endsWith("vhd")) && (!url.toLowerCase().endsWith("vhd.zip")) && (!url.toLowerCase().endsWith("vhd.bz2")) &&
- (!url.toLowerCase().endsWith("vhdx")) && (!url.toLowerCase().endsWith("vhdx.gz")) &&
- (!url.toLowerCase().endsWith("vhdx.bz2")) && (!url.toLowerCase().endsWith("vhdx.zip")) &&
- (!url.toLowerCase().endsWith("vhd.gz")) && (!url.toLowerCase().endsWith("qcow2")) && (!url.toLowerCase().endsWith("qcow2.zip")) &&
- (!url.toLowerCase().endsWith("qcow2.bz2")) && (!url.toLowerCase().endsWith("qcow2.gz")) && (!url.toLowerCase().endsWith("ova")) &&
- (!url.toLowerCase().endsWith("ova.zip")) && (!url.toLowerCase().endsWith("ova.bz2")) && (!url.toLowerCase().endsWith("ova.gz")) &&
- (!url.toLowerCase().endsWith("tar")) && (!url.toLowerCase().endsWith("tar.zip")) && (!url.toLowerCase().endsWith("tar.bz2")) &&
- (!url.toLowerCase().endsWith("tar.gz")) && (!url.toLowerCase().endsWith("vmdk")) && (!url.toLowerCase().endsWith("vmdk.gz")) &&
- (!url.toLowerCase().endsWith("vmdk.zip")) && (!url.toLowerCase().endsWith("vmdk.bz2")) && (!url.toLowerCase().endsWith("img")) &&
- (!url.toLowerCase().endsWith("img.gz")) && (!url.toLowerCase().endsWith("img.zip")) && (!url.toLowerCase().endsWith("img.bz2")) &&
- (!url.toLowerCase().endsWith("raw")) && (!url.toLowerCase().endsWith("raw.gz")) && (!url.toLowerCase().endsWith("raw.bz2")) &&
- (!url.toLowerCase().endsWith("raw.zip"))) {
- throw new InvalidParameterValueException("Please specify a valid " + format.toLowerCase());
- }
-
- if ((format.equalsIgnoreCase("vhd")
- && (!url.toLowerCase().endsWith("vhd")
- && !url.toLowerCase().endsWith("vhd.zip")
- && !url.toLowerCase().endsWith("vhd.bz2")
- && !url.toLowerCase().endsWith("vhd.gz")))
- || (format.equalsIgnoreCase("vhdx")
- && (!url.toLowerCase().endsWith("vhdx")
- && !url.toLowerCase().endsWith("vhdx.zip")
- && !url.toLowerCase().endsWith("vhdx.bz2")
- && !url.toLowerCase().endsWith("vhdx.gz")))
- || (format.equalsIgnoreCase("qcow2")
- && (!url.toLowerCase().endsWith("qcow2")
- && !url.toLowerCase().endsWith("qcow2.zip")
- && !url.toLowerCase().endsWith("qcow2.bz2")
- && !url.toLowerCase().endsWith("qcow2.gz")))
- || (format.equalsIgnoreCase("ova")
- && (!url.toLowerCase().endsWith("ova")
- && !url.toLowerCase().endsWith("ova.zip")
- && !url.toLowerCase().endsWith("ova.bz2")
- && !url.toLowerCase().endsWith("ova.gz")))
- || (format.equalsIgnoreCase("tar")
- && (!url.toLowerCase().endsWith("tar")
- && !url.toLowerCase().endsWith("tar.zip")
- && !url.toLowerCase().endsWith("tar.bz2")
- && !url.toLowerCase().endsWith("tar.gz")))
- || (format.equalsIgnoreCase("raw")
- && (!url.toLowerCase().endsWith("img")
- && !url.toLowerCase().endsWith("img.zip")
- && !url.toLowerCase().endsWith("img.bz2")
- && !url.toLowerCase().endsWith("img.gz")
- && !url.toLowerCase().endsWith("raw")
- && !url.toLowerCase().endsWith("raw.bz2")
- && !url.toLowerCase().endsWith("raw.zip")
- && !url.toLowerCase().endsWith("raw.gz")))
- || (format.equalsIgnoreCase("vmdk")
- && (!url.toLowerCase().endsWith("vmdk")
- && !url.toLowerCase().endsWith("vmdk.zip")
- && !url.toLowerCase().endsWith("vmdk.bz2")
- && !url.toLowerCase().endsWith("vmdk.gz")))
- ) {
- throw new InvalidParameterValueException("Please specify a valid URL. URL:" + url + " is an invalid for the format " + format.toLowerCase());
- }
-
- }
-
@Override
public VMTemplateVO create(TemplateProfile profile) {
// persist entry in vm_template, vm_template_details and template_zone_ref tables, not that entry at template_store_ref is not created here, and created in createTemplateAsync.
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/e3564658/utils/src/com/cloud/utils/UriUtils.java
----------------------------------------------------------------------
diff --git a/utils/src/com/cloud/utils/UriUtils.java b/utils/src/com/cloud/utils/UriUtils.java
index 6b28afb..0657c74 100644
--- a/utils/src/com/cloud/utils/UriUtils.java
+++ b/utils/src/com/cloud/utils/UriUtils.java
@@ -45,9 +45,9 @@ import org.apache.commons.httpclient.auth.AuthScope;
import org.apache.commons.httpclient.methods.GetMethod;
import org.apache.commons.httpclient.util.URIUtil;
import org.apache.http.NameValuePair;
-import org.apache.http.message.BasicNameValuePair;
import org.apache.http.client.utils.URIBuilder;
import org.apache.http.client.utils.URLEncodedUtils;
+import org.apache.http.message.BasicNameValuePair;
import org.apache.log4j.Logger;
import com.cloud.utils.crypt.DBEncryptionUtil;
@@ -233,10 +233,14 @@ public class UriUtils {
}
public static Pair<String, Integer> validateUrl(String url) throws IllegalArgumentException {
+ return validateUrl(null, url);
+ }
+
+ public static Pair<String, Integer> validateUrl(String format, String url) throws IllegalArgumentException {
try {
URI uri = new URI(url);
if ((uri.getScheme() == null) ||
- (!uri.getScheme().equalsIgnoreCase("http") && !uri.getScheme().equalsIgnoreCase("https") && !uri.getScheme().equalsIgnoreCase("file"))) {
+ (!uri.getScheme().equalsIgnoreCase("http") && !uri.getScheme().equalsIgnoreCase("https") && !uri.getScheme().equalsIgnoreCase("file"))) {
throw new IllegalArgumentException("Unsupported scheme for url: " + url);
}
int port = uri.getPort();
@@ -259,15 +263,88 @@ public class UriUtils {
if (hostAddr instanceof Inet6Address) {
throw new IllegalArgumentException("IPV6 addresses not supported (" + hostAddr.getHostAddress() + ")");
}
- return new Pair<String, Integer>(host, port);
} catch (UnknownHostException uhe) {
throw new IllegalArgumentException("Unable to resolve " + host);
}
+
+ // verify format
+ if (format != null) {
+ String uripath = uri.getPath();
+ checkFormat(format, uripath);
+ }
+ return new Pair<String, Integer>(host, port);
+
} catch (URISyntaxException use) {
throw new IllegalArgumentException("Invalid URL: " + url);
}
}
+ // verify if a URI path is compliance with the file format given
+ private static void checkFormat(String format, String uripath) {
+ if ((!uripath.toLowerCase().endsWith("vhd")) && (!uripath.toLowerCase().endsWith("vhd.zip")) && (!uripath.toLowerCase().endsWith("vhd.bz2")) &&
+ (!uripath.toLowerCase().endsWith("vhdx")) && (!uripath.toLowerCase().endsWith("vhdx.gz")) &&
+ (!uripath.toLowerCase().endsWith("vhdx.bz2")) && (!uripath.toLowerCase().endsWith("vhdx.zip")) &&
+ (!uripath.toLowerCase().endsWith("vhd.gz")) && (!uripath.toLowerCase().endsWith("qcow2")) && (!uripath.toLowerCase().endsWith("qcow2.zip")) &&
+ (!uripath.toLowerCase().endsWith("qcow2.bz2")) && (!uripath.toLowerCase().endsWith("qcow2.gz")) && (!uripath.toLowerCase().endsWith("ova")) &&
+ (!uripath.toLowerCase().endsWith("ova.zip")) && (!uripath.toLowerCase().endsWith("ova.bz2")) && (!uripath.toLowerCase().endsWith("ova.gz")) &&
+ (!uripath.toLowerCase().endsWith("tar")) && (!uripath.toLowerCase().endsWith("tar.zip")) && (!uripath.toLowerCase().endsWith("tar.bz2")) &&
+ (!uripath.toLowerCase().endsWith("tar.gz")) && (!uripath.toLowerCase().endsWith("vmdk")) && (!uripath.toLowerCase().endsWith("vmdk.gz")) &&
+ (!uripath.toLowerCase().endsWith("vmdk.zip")) && (!uripath.toLowerCase().endsWith("vmdk.bz2")) && (!uripath.toLowerCase().endsWith("img")) &&
+ (!uripath.toLowerCase().endsWith("img.gz")) && (!uripath.toLowerCase().endsWith("img.zip")) && (!uripath.toLowerCase().endsWith("img.bz2")) &&
+ (!uripath.toLowerCase().endsWith("raw")) && (!uripath.toLowerCase().endsWith("raw.gz")) && (!uripath.toLowerCase().endsWith("raw.bz2")) &&
+ (!uripath.toLowerCase().endsWith("raw.zip")) && (!uripath.toLowerCase().endsWith("iso")) && (!uripath.toLowerCase().endsWith("iso.zip"))
+ && (!uripath.toLowerCase().endsWith("iso.bz2")) && (!uripath.toLowerCase().endsWith("iso.gz"))) {
+ throw new IllegalArgumentException("Please specify a valid " + format.toLowerCase());
+ }
+
+ if ((format.equalsIgnoreCase("vhd")
+ && (!uripath.toLowerCase().endsWith("vhd")
+ && !uripath.toLowerCase().endsWith("vhd.zip")
+ && !uripath.toLowerCase().endsWith("vhd.bz2")
+ && !uripath.toLowerCase().endsWith("vhd.gz")))
+ || (format.equalsIgnoreCase("vhdx")
+ && (!uripath.toLowerCase().endsWith("vhdx")
+ && !uripath.toLowerCase().endsWith("vhdx.zip")
+ && !uripath.toLowerCase().endsWith("vhdx.bz2")
+ && !uripath.toLowerCase().endsWith("vhdx.gz")))
+ || (format.equalsIgnoreCase("qcow2")
+ && (!uripath.toLowerCase().endsWith("qcow2")
+ && !uripath.toLowerCase().endsWith("qcow2.zip")
+ && !uripath.toLowerCase().endsWith("qcow2.bz2")
+ && !uripath.toLowerCase().endsWith("qcow2.gz")))
+ || (format.equalsIgnoreCase("ova")
+ && (!uripath.toLowerCase().endsWith("ova")
+ && !uripath.toLowerCase().endsWith("ova.zip")
+ && !uripath.toLowerCase().endsWith("ova.bz2")
+ && !uripath.toLowerCase().endsWith("ova.gz")))
+ || (format.equalsIgnoreCase("tar")
+ && (!uripath.toLowerCase().endsWith("tar")
+ && !uripath.toLowerCase().endsWith("tar.zip")
+ && !uripath.toLowerCase().endsWith("tar.bz2")
+ && !uripath.toLowerCase().endsWith("tar.gz")))
+ || (format.equalsIgnoreCase("raw")
+ && (!uripath.toLowerCase().endsWith("img")
+ && !uripath.toLowerCase().endsWith("img.zip")
+ && !uripath.toLowerCase().endsWith("img.bz2")
+ && !uripath.toLowerCase().endsWith("img.gz")
+ && !uripath.toLowerCase().endsWith("raw")
+ && !uripath.toLowerCase().endsWith("raw.bz2")
+ && !uripath.toLowerCase().endsWith("raw.zip")
+ && !uripath.toLowerCase().endsWith("raw.gz")))
+ || (format.equalsIgnoreCase("vmdk")
+ && (!uripath.toLowerCase().endsWith("vmdk")
+ && !uripath.toLowerCase().endsWith("vmdk.zip")
+ && !uripath.toLowerCase().endsWith("vmdk.bz2")
+ && !uripath.toLowerCase().endsWith("vmdk.gz")))
+ || (format.equalsIgnoreCase("iso")
+ && (!uripath.toLowerCase().endsWith("iso.zip")
+ && !uripath.toLowerCase().endsWith("iso.bz2")
+ && !uripath.toLowerCase().endsWith("iso.gz")))) {
+ throw new IllegalArgumentException("Please specify a valid URL. URL:" + uripath + " is an invalid for the format " + format.toLowerCase());
+ }
+
+ }
+
public static InputStream getInputStreamFromUrl(String url, String user, String password) {
try {
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/e3564658/utils/src/org/apache/cloudstack/utils/template/TemplateUtils.java
----------------------------------------------------------------------
diff --git a/utils/src/org/apache/cloudstack/utils/template/TemplateUtils.java b/utils/src/org/apache/cloudstack/utils/template/TemplateUtils.java
index cf1e177..53aa911 100644
--- a/utils/src/org/apache/cloudstack/utils/template/TemplateUtils.java
+++ b/utils/src/org/apache/cloudstack/utils/template/TemplateUtils.java
@@ -28,58 +28,58 @@ public class TemplateUtils {
// given a path, returns empty if path is supported image, and the file type if unsupported
// this is meant to catch things like accidental upload of ASCII text .vmdk descriptor
- public static String checkTemplateFormat(String path, String url) {
+ public static String checkTemplateFormat(String path, String uripath) {
// note 'path' was generated by us so it should be safe on the cmdline, be wary of 'url'
String command = "file ";
- if (isCompressedExtension(url)) {
+ if (isCompressedExtension(uripath)) {
command = "file -z ";
}
String output = Script.runSimpleBashScript(command + path + " | cut -d: -f2", 60000);
// vmdk
- if ((output.contains("VMware") || output.contains("data")) && isCorrectExtension(url, "vmdk")) {
+ if ((output.contains("VMware") || output.contains("data")) && isCorrectExtension(uripath, "vmdk")) {
s_logger.debug("File at path " + path + " looks like a vmware image :" + output);
return "";
}
// raw
- if ((output.contains("x86 boot") || output.contains("data")) && (isCorrectExtension(url, "raw") || isCorrectExtension(url, "img"))) {
+ if ((output.contains("x86 boot") || output.contains("data")) && (isCorrectExtension(uripath, "raw") || isCorrectExtension(uripath, "img"))) {
s_logger.debug("File at path " + path + " looks like a raw image :" + output);
return "";
}
// qcow2
- if (output.contains("QEMU QCOW") && isCorrectExtension(url, "qcow2")) {
+ if (output.contains("QEMU QCOW") && isCorrectExtension(uripath, "qcow2")) {
s_logger.debug("File at path " + path + " looks like QCOW2 : " + output);
return "";
}
// vhd
- if (output.contains("Microsoft Disk Image") && (isCorrectExtension(url, "vhd") || isCorrectExtension(url, "vhdx"))) {
+ if (output.contains("Microsoft Disk Image") && (isCorrectExtension(uripath, "vhd") || isCorrectExtension(uripath, "vhdx"))) {
s_logger.debug("File at path " + path + " looks like vhd : " + output);
return "";
}
// ova
- if (output.contains("POSIX tar") && isCorrectExtension(url, "ova")) {
+ if (output.contains("POSIX tar") && isCorrectExtension(uripath, "ova")) {
s_logger.debug("File at path " + path + " looks like ova : " + output);
return "";
}
//lxc
- if (output.contains("POSIX tar") && isCorrectExtension(url, "tar")) {
+ if (output.contains("POSIX tar") && isCorrectExtension(uripath, "tar")) {
s_logger.debug("File at path " + path + " looks like just tar : " + output);
return "";
}
- if (output.contains("ISO 9660") && isCorrectExtension(url, "iso")) {
+ if (output.contains("ISO 9660") && isCorrectExtension(uripath, "iso")) {
s_logger.debug("File at path " + path + " looks like an iso : " + output);
return "";
}
return output;
}
- public static boolean isCorrectExtension(String url, String ext) {
- if (url.toLowerCase().endsWith(ext)
- || url.toLowerCase().endsWith(ext + ".gz")
- || url.toLowerCase().endsWith(ext + ".bz2")
- || url.toLowerCase().endsWith(ext + ".zip")) {
+ public static boolean isCorrectExtension(String path, String ext) {
+ if (path.toLowerCase().endsWith(ext)
+ || path.toLowerCase().endsWith(ext + ".gz")
+ || path.toLowerCase().endsWith(ext + ".bz2")
+ || path.toLowerCase().endsWith(ext + ".zip")) {
return true;
}
return false;
[30/50] git commit: updated refs/heads/saml2 to 09da909
Posted by bh...@apache.org.
CLOUDSTACK-7284: Fixed regression issue in test_escalations_instances.py
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/5f893daa
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/5f893daa
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/5f893daa
Branch: refs/heads/saml2
Commit: 5f893daa2cab381aef6ac59eeebe923373c4ea80
Parents: 3b5aa42
Author: Girish Shilamkar <gi...@clogeny.com>
Authored: Wed Aug 13 18:47:37 2014 +0530
Committer: Girish Shilamkar <gi...@clogeny.com>
Committed: Wed Aug 13 18:49:28 2014 +0530
----------------------------------------------------------------------
test/integration/component/test_escalations_instances.py | 8 +++++---
1 file changed, 5 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/5f893daa/test/integration/component/test_escalations_instances.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_escalations_instances.py b/test/integration/component/test_escalations_instances.py
index c75faea..1b72b2f 100644
--- a/test/integration/component/test_escalations_instances.py
+++ b/test/integration/component/test_escalations_instances.py
@@ -2635,9 +2635,11 @@ class TestInstances(cloudstackTestCase):
# stopping VM before detaching volumes
vm_created.stop(self.userapiclient)
- # Detaching all the volumes attached from VM
- for i in range(0, len(list_volumes_page1)):
- vm_created.detach_volume(
+ # Detaching root volume is allowed on XenServer only
+ if self.hypervisor.lower() == 'xenserver':
+ # Detaching all the volumes attached from VM
+ for i in range(0, len(list_volumes_page1)):
+ vm_created.detach_volume(
self.userapiclient,
list_volumes_page1[i]
)
[31/50] git commit: updated refs/heads/saml2 to 09da909
Posted by bh...@apache.org.
Adding explicit error message in verifyNetworkState function in case network is not in desired state
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/6115a90c
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/6115a90c
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/6115a90c
Branch: refs/heads/saml2
Commit: 6115a90c7083ff9b8c4d1801f409d7d8b1c67d22
Parents: 5f893da
Author: Girish Shilamkar <gi...@clogeny.com>
Authored: Wed Aug 13 20:19:26 2014 +0530
Committer: Girish Shilamkar <gi...@clogeny.com>
Committed: Wed Aug 13 20:19:26 2014 +0530
----------------------------------------------------------------------
tools/marvin/marvin/lib/common.py | 3 +++
1 file changed, 3 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/6115a90c/tools/marvin/marvin/lib/common.py
----------------------------------------------------------------------
diff --git a/tools/marvin/marvin/lib/common.py b/tools/marvin/marvin/lib/common.py
index 46291a9..3706456 100644
--- a/tools/marvin/marvin/lib/common.py
+++ b/tools/marvin/marvin/lib/common.py
@@ -1167,6 +1167,9 @@ def verifyNetworkState(apiclient, networkid, state, listall=True):
break
retriesCount -= 1
time.sleep(60)
+ if not isNetworkInDesiredState:
+ exceptionMessage = "Network state should be %s, it is %s" %\
+ (state, networks[0].state)
except Exception as e:
exceptionOccured = True
exceptionMessage = e
[24/50] git commit: updated refs/heads/saml2 to 09da909
Posted by bh...@apache.org.
apidoc: add entry in gen_toc for saml
Signed-off-by: Rohit Yadav <ro...@shapeblue.com>
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/3c9d7875
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/3c9d7875
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/3c9d7875
Branch: refs/heads/saml2
Commit: 3c9d78752d1f0841facf6882390ce07182bec8de
Parents: 525ee4a
Author: Rohit Yadav <ro...@shapeblue.com>
Authored: Wed Aug 13 13:43:11 2014 +0200
Committer: Rohit Yadav <ro...@shapeblue.com>
Committed: Wed Aug 13 13:43:36 2014 +0200
----------------------------------------------------------------------
tools/apidoc/gen_toc.py | 1 +
1 file changed, 1 insertion(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/3c9d7875/tools/apidoc/gen_toc.py
----------------------------------------------------------------------
diff --git a/tools/apidoc/gen_toc.py b/tools/apidoc/gen_toc.py
index 1ad493d..00b51a9 100644
--- a/tools/apidoc/gen_toc.py
+++ b/tools/apidoc/gen_toc.py
@@ -110,6 +110,7 @@ known_categories = {
'Event': 'Event',
'login': 'Login',
'logout': 'Logout',
+ 'saml': 'SAML',
'Capacity': 'System Capacity',
'NetworkDevice': 'Network Device',
'ExternalLoadBalancer': 'Ext Load Balancer',
[48/50] git commit: updated refs/heads/saml2 to 09da909
Posted by bh...@apache.org.
added XS 6.5 beta1 support, will change the version after XS 6.5 is released
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/2be02d1f
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/2be02d1f
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/2be02d1f
Branch: refs/heads/saml2
Commit: 2be02d1f515d8d089b6596127614fe6b8030d723
Parents: f212aa5
Author: Anthony Xu <an...@citrix.com>
Authored: Fri Aug 15 11:43:14 2014 -0700
Committer: Anthony Xu <an...@citrix.com>
Committed: Fri Aug 15 11:45:24 2014 -0700
----------------------------------------------------------------------
.../discoverer/XcpServerDiscoverer.java | 93 +++------
setup/db/db/schema-441to450.sql | 190 ++++++++++++++++++-
2 files changed, 219 insertions(+), 64 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/2be02d1f/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/discoverer/XcpServerDiscoverer.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/discoverer/XcpServerDiscoverer.java b/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/discoverer/XcpServerDiscoverer.java
index a01cbcb..0193d5e 100755
--- a/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/discoverer/XcpServerDiscoverer.java
+++ b/plugins/hypervisors/xenserver/src/com/cloud/hypervisor/xenserver/discoverer/XcpServerDiscoverer.java
@@ -397,22 +397,7 @@ public class XcpServerDiscoverer extends DiscovererBase implements Discoverer, L
}
}
-
- protected CitrixResourceBase createServerResource(long dcId, Long podId, Host.Record record, String hotfix) {
- String prodBrand = record.softwareVersion.get("product_brand");
- if (prodBrand == null) {
- prodBrand = record.softwareVersion.get("platform_name").trim();
- } else {
- prodBrand = prodBrand.trim();
- }
-
- String prodVersion = record.softwareVersion.get("product_version");
- if (prodVersion == null) {
- prodVersion = record.softwareVersion.get("platform_version").trim();
- } else {
- prodVersion = prodVersion.trim();
- }
-
+ protected CitrixResourceBase createServerResource(String prodBrand, String prodVersion, String prodVersionTextShort, String hotfix) {
// Xen Cloud Platform group of hypervisors
if (prodBrand.equals("XCP") && (prodVersion.equals("1.0.0") || prodVersion.equals("1.1.0") || prodVersion.equals("5.6.100") || prodVersion.startsWith("1.4"))) {
return new XcpServerResource();
@@ -427,33 +412,50 @@ public class XcpServerDiscoverer extends DiscovererBase implements Discoverer, L
return new XenServer602Resource();
else if (prodBrand.equals("XenServer") && prodVersion.equals("6.1.0"))
return new XenServer610Resource();
+ else if (prodBrand.equals("XenServer") && prodVersion.equals("6.4.94"))
+ return new Xenserver625Resource();
else if (prodBrand.equals("XenServer") && prodVersion.equals("6.2.0")) {
- if (hotfix.equals(XenserverConfigs.XSHotFix62ESP1004)) {
+ if (hotfix != null && hotfix.equals(XenserverConfigs.XSHotFix62ESP1004)) {
return new Xenserver625Resource();
- } else if (hotfix.equals(XenserverConfigs.XSHotFix62ESP1)) {
+ } else if (hotfix != null && hotfix.equals(XenserverConfigs.XSHotFix62ESP1)) {
return new XenServer620SP1Resource();
} else {
return new XenServer620Resource();
}
} else if (prodBrand.equals("XenServer") && prodVersion.equals("5.6.100")) {
- String prodVersionTextShort = record.softwareVersion.get("product_version_text_short").trim();
- if ("5.6 SP2".equals(prodVersionTextShort)) {
+ if ("5.6 SP2".equals(prodVersionTextShort.trim())) {
return new XenServer56SP2Resource();
- } else if ("5.6 FP1".equals(prodVersionTextShort)) {
+ } else if ("5.6 FP1".equals(prodVersionTextShort.trim())) {
return new XenServer56FP1Resource();
}
} else if (prodBrand.equals("XCP_Kronos")) {
return new XcpOssResource();
}
-
String msg =
"Only support XCP 1.0.0, 1.1.0, 1.4.x, 1.5 beta, 1.6.x; XenServer 5.6, XenServer 5.6 FP1, XenServer 5.6 SP2, Xenserver 6.0, 6.0.2, 6.1.0, 6.2.0 but this one is " +
prodBrand + " " + prodVersion;
- _alertMgr.sendAlert(AlertManager.AlertType.ALERT_TYPE_HOST, dcId, podId, msg, msg);
- s_logger.debug(msg);
+ s_logger.warn(msg);
throw new RuntimeException(msg);
}
+ protected CitrixResourceBase createServerResource(long dcId, Long podId, Host.Record record, String hotfix) {
+ String prodBrand = record.softwareVersion.get("product_brand");
+ if (prodBrand == null) {
+ prodBrand = record.softwareVersion.get("platform_name").trim();
+ } else {
+ prodBrand = prodBrand.trim();
+ }
+
+ String prodVersion = record.softwareVersion.get("product_version");
+ if (prodVersion == null) {
+ prodVersion = record.softwareVersion.get("platform_version").trim();
+ } else {
+ prodVersion = prodVersion.trim();
+ }
+ String prodVersionTextShort = record.softwareVersion.get("product_version_text_short");
+ return createServerResource(prodBrand, prodVersion, prodVersionTextShort, hotfix);
+ }
+
protected void serverConfig() {
String value = _params.get(Config.XenServerSetupMultipath.key());
_setupMultipath = Boolean.parseBoolean(value);
@@ -570,50 +572,15 @@ public class XcpServerDiscoverer extends DiscovererBase implements Discoverer, L
s_logger.warn(msg);
throw new CloudRuntimeException(msg);
}
- String resource = null;
+
Map<String, String> details = startup.getHostDetails();
String prodBrand = details.get("product_brand").trim();
String prodVersion = details.get("product_version").trim();
+ String hotfix = details.get(XenserverConfigs.XS620HotFix);
+ String prodVersionTextShort = details.get("product_version_text_short");
- if (prodBrand.equals("XCP") && (prodVersion.equals("1.0.0") || prodVersion.equals("1.1.0") || prodVersion.equals("5.6.100") || prodVersion.startsWith("1.4"))) {
- resource = XcpServerResource.class.getName();
- } else if (prodBrand.equals("XCP") && prodVersion.startsWith("1.6")) {
- resource = XcpServer16Resource.class.getName();
- } else if (prodBrand.equals("XenServer") && prodVersion.equals("5.6.0")) {
- resource = XenServer56Resource.class.getName();
- } else if (prodBrand.equals("XenServer") && prodVersion.equals("6.0.0")) {
- resource = XenServer600Resource.class.getName();
- } else if (prodBrand.equals("XenServer") && prodVersion.equals("6.0.2")) {
- resource = XenServer602Resource.class.getName();
- } else if (prodBrand.equals("XenServer") && prodVersion.equals("6.1.0")) {
- resource = XenServer610Resource.class.getName();
- } else if (prodBrand.equals("XenServer") && prodVersion.equals("6.2.0")) {
- String hotfix = details.get(XenserverConfigs.XS620HotFix);
- if (hotfix != null && hotfix.equalsIgnoreCase(XenserverConfigs.XSHotFix62ESP1004)) {
- resource = Xenserver625Resource.class.getName();
- } else if (hotfix != null && hotfix.equalsIgnoreCase(XenserverConfigs.XSHotFix62ESP1)){
- resource = XenServer620SP1Resource.class.getName();
- } else {
- resource = XenServer620Resource.class.getName();
- }
- } else if (prodBrand.equals("XenServer") && prodVersion.equals("5.6.100")) {
- String prodVersionTextShort = details.get("product_version_text_short").trim();
- if ("5.6 SP2".equals(prodVersionTextShort)) {
- resource = XenServer56SP2Resource.class.getName();
- } else if ("5.6 FP1".equals(prodVersionTextShort)) {
- resource = XenServer56FP1Resource.class.getName();
- }
- } else if (prodBrand.equals("XCP_Kronos")) {
- resource = XcpOssResource.class.getName();
- }
+ String resource = createServerResource(prodBrand, prodVersion, prodVersionTextShort, hotfix).getClass().getName();
- if (resource == null) {
- String msg =
- "Only support XCP 1.0.0, 1.1.0, 1.4.x, 1.5 beta, 1.6.x; XenServer 5.6, 5.6 FP1, 5.6 SP2 and Xenserver 6.0 , 6.0.2, 6.1.0, 6.2.0 but this one is " +
- prodBrand + " " + prodVersion;
- s_logger.debug(msg);
- throw new RuntimeException(msg);
- }
if (!resource.equals(host.getResource())) {
String msg = "host " + host.getPrivateIpAddress() + " changed from " + host.getResource() + " to " + resource;
s_logger.debug(msg);
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/2be02d1f/setup/db/db/schema-441to450.sql
----------------------------------------------------------------------
diff --git a/setup/db/db/schema-441to450.sql b/setup/db/db/schema-441to450.sql
index 34d5f88..e6aae8e 100644
--- a/setup/db/db/schema-441to450.sql
+++ b/setup/db/db/schema-441to450.sql
@@ -16,7 +16,7 @@
-- under the License.
--
--- Schema upgrade from 4.4.0 to 4.5.0
+-- Schema upgrade from 4.4.1 to 4.5.0
--
-- Disable foreign key checking
@@ -547,3 +547,191 @@ CREATE VIEW `cloud`.`domain_router_view` AS
and async_job.instance_type = 'DomainRouter'
and async_job.job_status = 0;
+
+INSERT IGNORE INTO `cloud`.`guest_os` (id, uuid, category_id, display_name) VALUES (231, UUID(), 1, 'CentOS 5.10 (32-bit)');
+INSERT IGNORE INTO `cloud`.`guest_os` (id, uuid, category_id, display_name) VALUES (232, UUID(), 1, 'CentOS 5.10 (32-bit)');
+INSERT IGNORE INTO `cloud`.`guest_os` (id, uuid, category_id, display_name) VALUES (233, UUID(), 3, 'Oracle Enterprise Linux 5.10 (32-bit)');
+INSERT IGNORE INTO `cloud`.`guest_os` (id, uuid, category_id, display_name) VALUES (234, UUID(), 3, 'Oracle Enterprise Linux 5.10 (64-bit)');
+INSERT IGNORE INTO `cloud`.`guest_os` (id, uuid, category_id, display_name) VALUES (235, UUID(), 3, 'Oracle Enterprise Linux 6.5 (32-bit)');
+INSERT IGNORE INTO `cloud`.`guest_os` (id, uuid, category_id, display_name) VALUES (236, UUID(), 3, 'Oracle Enterprise Linux 6.5 (64-bit)');
+INSERT IGNORE INTO `cloud`.`guest_os` (id, uuid, category_id, display_name) VALUES (237, UUID(), 4, 'Red Hat Enterprise Linux 5.10 (32-bit)');
+INSERT IGNORE INTO `cloud`.`guest_os` (id, uuid, category_id, display_name) VALUES (238, UUID(), 4, 'Red Hat Enterprise Linux 5.10 (64-bit)');
+INSERT IGNORE INTO `cloud`.`guest_os` (id, uuid, category_id, display_name) VALUES (239, UUID(), 4, 'Red Hat Enterprise Linux 6.5 (32-bit)');
+INSERT IGNORE INTO `cloud`.`guest_os` (id, uuid, category_id, display_name) VALUES (240, UUID(), 4, 'Red Hat Enterprise Linux 6.5 (64-bit)');
+
+INSERT IGNORE INTO `cloud`.`guest_os` (id, uuid, category_id, display_name) VALUES (241, UUID(), 10, 'Ubuntu 14.04 (32-bit)');
+INSERT IGNORE INTO `cloud`.`guest_os` (id, uuid, category_id, display_name) VALUES (242, UUID(), 10, 'Ubuntu 14.04 (64-bit)');
+INSERT IGNORE INTO `cloud`.`guest_os` (id, uuid, category_id, display_name) VALUES (243, UUID(), 5, 'SUSE Linux Enterprise Server 12 (32-bit)');
+INSERT IGNORE INTO `cloud`.`guest_os` (id, uuid, category_id, display_name) VALUES (244, UUID(), 5, 'SUSE Linux Enterprise Server 12 (64-bit)');
+
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'CentOS 4.5 (32-bit)', 1, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'CentOS 4.6 (32-bit)', 2, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'CentOS 4.7 (32-bit)', 3, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'CentOS 4.8 (32-bit)', 4, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'CentOS 5 (32-bit)', 5, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'CentOS 5 (64-bit)', 6, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'CentOS 5 (32-bit)', 7, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'CentOS 5 (64-bit)', 8, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'CentOS 5 (32-bit)', 9, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'CentOS 5 (64-bit)', 10, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'CentOS 5 (32-bit)', 11, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'CentOS 5 (64-bit)', 12, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'CentOS 5 (32-bit)', 13, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'CentOS 5 (64-bit)', 14, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'CentOS 5 (32-bit)', 111, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'CentOS 5 (64-bit)', 112, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'CentOS 5 (32-bit)', 141, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'CentOS 5 (64-bit)', 142, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'CentOS 5 (32-bit)', 161, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'CentOS 5 (64-bit)', 162, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'CentOS 5 (32-bit)', 173, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'CentOS 5 (64-bit)', 174, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'CentOS 5 (32-bit)', 175, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'CentOS 5 (64-bit)', 176, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'CentOS 5 (32-bit)', 231, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'CentOS 5 (64-bit)', 232, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'CentOS 5 (32-bit)', 139, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'CentOS 5 (64-bit)', 140, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'CentOS 6 (32-bit)', 143, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'CentOS 6 (64-bit)', 144, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'CentOS 6 (32-bit)', 177, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'CentOS 6 (64-bit)', 178, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'CentOS 6 (32-bit)', 179, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'CentOS 6 (64-bit)', 180, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'CentOS 6 (32-bit)', 171, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'CentOS 6 (64-bit)', 172, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'CentOS 6 (32-bit)', 181, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'CentOS 6 (64-bit)', 182, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'CentOS 6 (32-bit)', 227, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'CentOS 6 (64-bit)', 227, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'Debian Squeeze 6.0 (32-bit)', 132, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'Debian Squeeze 6.0 (64-bit)', 133, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'Debian Wheezy 7.0 (32-bit)', 183, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'Debian Wheezy 7.0 (64-bit)', 184, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'Oracle Enterprise Linux 5 (32-bit)', 16, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'Oracle Enterprise Linux 5 (64-bit)', 17, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'Oracle Enterprise Linux 5 (32-bit)', 18, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'Oracle Enterprise Linux 5 (64-bit)', 19, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'Oracle Enterprise Linux 5 (32-bit)', 20, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'Oracle Enterprise Linux 5 (64-bit)', 21, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'Oracle Enterprise Linux 5 (32-bit)', 22, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'Oracle Enterprise Linux 5 (64-bit)', 23, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'Oracle Enterprise Linux 5 (32-bit)', 24, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'Oracle Enterprise Linux 5 (64-bit)', 25, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'Oracle Enterprise Linux 5 (32-bit)', 134, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'Oracle Enterprise Linux 5 (64-bit)', 135, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'Oracle Enterprise Linux 5 (32-bit)', 145, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'Oracle Enterprise Linux 5 (64-bit)', 146, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'Oracle Enterprise Linux 5 (32-bit)', 207, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'Oracle Enterprise Linux 5 (64-bit)', 208, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'Oracle Enterprise Linux 5 (32-bit)', 209, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'Oracle Enterprise Linux 5 (64-bit)', 210, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'Oracle Enterprise Linux 5 (32-bit)', 211, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'Oracle Enterprise Linux 5 (64-bit)', 212, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'Oracle Enterprise Linux 5 (32-bit)', 233, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'Oracle Enterprise Linux 5 (64-bit)', 234, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'Oracle Enterprise Linux 6 (32-bit)', 147, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'Oracle Enterprise Linux 6 (64-bit)', 148, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'Oracle Enterprise Linux 6 (32-bit)', 213, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'Oracle Enterprise Linux 6 (64-bit)', 214, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'Oracle Enterprise Linux 6 (32-bit)', 215, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'Oracle Enterprise Linux 6 (64-bit)', 216, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'Oracle Enterprise Linux 6 (32-bit)', 217, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'Oracle Enterprise Linux 6 (64-bit)', 218, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'Oracle Enterprise Linux 6 (32-bit)', 219, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'Oracle Enterprise Linux 6 (64-bit)', 220, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'Oracle Enterprise Linux 6 (32-bit)', 219, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'Oracle Enterprise Linux 6 (64-bit)', 220, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'Red Hat Enterprise Linux 4.5 (32-bit)', 26, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'Red Hat Enterprise Linux 4.6 (32-bit)', 27, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'Red Hat Enterprise Linux 4.7 (32-bit)', 28, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'Red Hat Enterprise Linux 4.8 (32-bit)', 29, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'Red Hat Enterprise Linux 5 (32-bit)', 30, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'Red Hat Enterprise Linux 5 (64-bit)', 31, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'Red Hat Enterprise Linux 5 (32-bit)', 32, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'Red Hat Enterprise Linux 5 (64-bit)', 33, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'Red Hat Enterprise Linux 5 (32-bit)', 34, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'Red Hat Enterprise Linux 5 (64-bit)', 35, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'Red Hat Enterprise Linux 5 (32-bit)', 36, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'Red Hat Enterprise Linux 5 (64-bit)', 37, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'Red Hat Enterprise Linux 5 (32-bit)', 38, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'Red Hat Enterprise Linux 5 (64-bit)', 39, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'Red Hat Enterprise Linux 5 (32-bit)', 113, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'Red Hat Enterprise Linux 5 (64-bit)', 114, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'Red Hat Enterprise Linux 5 (32-bit)', 149, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'Red Hat Enterprise Linux 5 (64-bit)', 150, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'Red Hat Enterprise Linux 5 (32-bit)', 189, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'Red Hat Enterprise Linux 5 (64-bit)', 190, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'Red Hat Enterprise Linux 5 (32-bit)', 191, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'Red Hat Enterprise Linux 5 (64-bit)', 192, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'Red Hat Enterprise Linux 5 (32-bit)', 193, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'Red Hat Enterprise Linux 5 (64-bit)', 194, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'Red Hat Enterprise Linux 5 (32-bit)', 237, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'Red Hat Enterprise Linux 5 (64-bit)', 238, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'Red Hat Enterprise Linux 6 (32-bit)', 136, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'Red Hat Enterprise Linux 6 (64-bit)', 137, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'Red Hat Enterprise Linux 6 (32-bit)', 195, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'Red Hat Enterprise Linux 6 (64-bit)', 196, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'Red Hat Enterprise Linux 6 (32-bit)', 197, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'Red Hat Enterprise Linux 6 (64-bit)', 198, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'Red Hat Enterprise Linux 6 (32-bit)', 199, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'Red Hat Enterprise Linux 6 (64-bit)', 204, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'Red Hat Enterprise Linux 6 (32-bit)', 205, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'Red Hat Enterprise Linux 6 (64-bit)', 206, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'Red Hat Enterprise Linux 6 (32-bit)', 239, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'Red Hat Enterprise Linux 6 (64-bit)', 240, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'SUSE Linux Enterprise Server 10 SP1 (32-bit)', 41, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'SUSE Linux Enterprise Server 10 SP1 (64-bit)', 42, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'SUSE Linux Enterprise Server 10 SP2 (32-bit)', 43, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'SUSE Linux Enterprise Server 10 SP2 (64-bit)', 44, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'SUSE Linux Enterprise Server 10 SP3 (32-bit)', 151, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'SUSE Linux Enterprise Server 10 SP3 (64-bit)', 45, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'SUSE Linux Enterprise Server 10 SP4 (32-bit)', 153, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'SUSE Linux Enterprise Server 10 SP4 (64-bit)', 152, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'SUSE Linux Enterprise Server 11 (32-bit)', 46, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'SUSE Linux Enterprise Server 11 (64-bit)', 47, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'SUSE Linux Enterprise Server 11 SP1 (32-bit)', 155, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'SUSE Linux Enterprise Server 11 SP1 (64-bit)', 154, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'SUSE Linux Enterprise Server 11 SP2 (32-bit)', 186, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'SUSE Linux Enterprise Server 11 SP2 (64-bit)', 185, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'SUSE Linux Enterprise Server 11 SP3 (32-bit)', 188, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'SUSE Linux Enterprise Server 11 SP3 (32-bit)', 187, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'SUSE Linux Enterprise Server 12 (experimental)', 243, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'SUSE Linux Enterprise Server 12 (experimental)', 244, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'Windows 7 (32-bit)', 48, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'Windows 7 (64-bit)', 49, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'Windows 8 (32-bit)', 165, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'Windows 8 (64-bit)', 166, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'Windows Server 2003 (32-bit)', 50, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'Windows Server 2003 (64-bit)', 51, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'Windows Server 2003 (32-bit)', 87, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'Windows Server 2003 (64-bit)', 88, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'Windows Server 2003 (32-bit)', 89, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'Windows Server 2003 (64-bit)', 90, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'Windows Server 2008 (32-bit)', 52, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'Windows Server 2008 (64-bit)', 53, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'Windows Server 2008 R2 (64-bit)', 54, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'Windows Server 2012 (64-bit)', 167, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'Windows Server 2012 R2 (64-bit)', 168, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'Windows XP SP3 (32-bit)', 58, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'Ubuntu Lucid Lynx 10.04 (32-bit)', 121, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'Ubuntu Lucid Lynx 10.04 (64-bit)', 126, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'Ubuntu Maverick Meerkat 10.10 (32-bit) (experimental)', 156, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'Ubuntu Maverick Meerkat 10.10 (64-bit) (experimental)', 157, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'Ubuntu Precise Pangolin 12.04 (32-bit)', 163, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'Ubuntu Precise Pangolin 12.04 (64-bit)', 164, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'Ubuntu Trusty Tahr 14.04', 241, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'Ubuntu Trusty Tahr 14.04', 242, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'Other install media', 169, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'Other install media', 170, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'Other install media', 98, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'Other install media', 99, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'Other install media', 60, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'Other install media', 103, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'Other install media', 200, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'Other install media', 201, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'Other install media', 59, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'Other install media', 100, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'Other install media', 202, now(), 0);
+INSERT IGNORE INTO `cloud`.`guest_os_hypervisor` (uuid,hypervisor_type, hypervisor_version, guest_os_name, guest_os_id, created, is_user_defined) VALUES (UUID(),'Xenserver', '6.4.94', 'Other install media', 203, now(), 0);
+
[05/50] git commit: updated refs/heads/saml2 to 09da909
Posted by bh...@apache.org.
CLOUDSTACK-6590: Fix view all link for multi-item detail view
-- Specifically, this fixes issue where secondary IP 'view all' link was
not displaying, due to a change in the rows' CSS naming conventions
in the widget.
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/d9fcb877
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/d9fcb877
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/d9fcb877
Branch: refs/heads/saml2
Commit: d9fcb877309ce176d5458e63bfd1a174344b5fce
Parents: e356465
Author: Brian Federle <bf...@gmail.com>
Authored: Tue Aug 12 13:19:40 2014 -0700
Committer: Brian Federle <bf...@gmail.com>
Committed: Tue Aug 12 13:20:54 2014 -0700
----------------------------------------------------------------------
ui/scripts/ui/widgets/detailView.js | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/d9fcb877/ui/scripts/ui/widgets/detailView.js
----------------------------------------------------------------------
diff --git a/ui/scripts/ui/widgets/detailView.js b/ui/scripts/ui/widgets/detailView.js
index 0fa3fd0..9c73911 100644
--- a/ui/scripts/ui/widgets/detailView.js
+++ b/ui/scripts/ui/widgets/detailView.js
@@ -1241,7 +1241,7 @@
if (tabData.viewAll) {
$fieldContent.find('tr')
- .filter('.' + tabData.viewAll.attachTo).find('td.value')
+ .filter('.' + tabData.viewAll.attachTo + '-row').find('td.value')
.append(
$('<div>').addClass('view-all').append(
$('<span>').html(
[13/50] git commit: updated refs/heads/saml2 to 09da909
Posted by bh...@apache.org.
CLOUDSTACK-7284: Fixed test script related to expunge VM in test_add_remove_network.py
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/76cecc32
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/76cecc32
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/76cecc32
Branch: refs/heads/saml2
Commit: 76cecc325fca5ead8b610c49608cb8fe8a4395c5
Parents: f9a6665
Author: Gaurav Aradhye <ga...@clogeny.com>
Authored: Tue Aug 12 16:30:44 2014 +0530
Committer: Girish Shilamkar <gi...@clogeny.com>
Committed: Wed Aug 13 11:32:23 2014 +0530
----------------------------------------------------------------------
test/integration/component/test_add_remove_network.py | 13 +------------
1 file changed, 1 insertion(+), 12 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/76cecc32/test/integration/component/test_add_remove_network.py
----------------------------------------------------------------------
diff --git a/test/integration/component/test_add_remove_network.py b/test/integration/component/test_add_remove_network.py
index 2bd6ec2..34af7bc 100644
--- a/test/integration/component/test_add_remove_network.py
+++ b/test/integration/component/test_add_remove_network.py
@@ -1770,28 +1770,17 @@ class TestFailureScenariosUpdateVirtualMachineNIC(cloudstackTestCase):
% (defaultNicIdBeforeUpdate, nonDefaultNicIdBeforeUpdate))
self.debug("Destroying VM %s" % virtual_machine.id)
virtual_machine.delete(self.apiclient)
- vm_list = list_virtual_machines(self.apiclient, id=virtual_machine.id)
- vm_list_validation_result = validateList(vm_list)
-
- self.assertEqual(vm_list_validation_result[0], PASS, "vm list validation failed due to %s" %
- vm_list_validation_result[2])
- vm = vm_list_validation_result[1]
- vm_state = vm.state.lower()
- self.debug("VM state is: %s" % vm_state)
- if vm_state in ["running", "stopped"]:
- self.fail("failed to destroy the instance: %s" % vm.id)
self.debug("Making non default nic as default nic")
cmd = updateDefaultNicForVirtualMachine.updateDefaultNicForVirtualMachineCmd()
- cmd.virtualmachineid = vm.id
+ cmd.virtualmachineid = virtual_machine.id
cmd.nicid = nonDefaultNicIdBeforeUpdate
with self.assertRaises(Exception) as e:
self.apiclient.updateDefaultNicForVirtualMachine(cmd)
self.debug("updateDefaultNicForVirtualMachine API failed with exception: %s" %
e.exception)
-
return
@attr(tags = ["advanced"])
[46/50] git commit: updated refs/heads/saml2 to 09da909
Posted by bh...@apache.org.
debian: Depend on qemu-system-x86 or qemu-kvm
The qemu-kvm package has become deprecated in Ubuntu 14.04 and
the right package to install would be qemu-system-x86
To maintain backwards compatibility for older Ubuntu LTS releases
we depend on qemu-system-x86 or qemu-kvm
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/aac8b91c
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/aac8b91c
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/aac8b91c
Branch: refs/heads/saml2
Commit: aac8b91cbe519f7babaf34c5fd7acdf4fb87c861
Parents: 6978c18
Author: Wido den Hollander <wi...@42on.com>
Authored: Fri Aug 15 16:13:49 2014 +0200
Committer: Wido den Hollander <wi...@42on.com>
Committed: Fri Aug 15 16:13:49 2014 +0200
----------------------------------------------------------------------
debian/control | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/aac8b91c/debian/control
----------------------------------------------------------------------
diff --git a/debian/control b/debian/control
index 68aadc7..1e874a8 100644
--- a/debian/control
+++ b/debian/control
@@ -22,7 +22,7 @@ Description: CloudStack server library
Package: cloudstack-agent
Architecture: all
-Depends: openjdk-7-jre, cloudstack-common (= ${source:Version}), lsb-base (>= 3.2), libcommons-daemon-java, openssh-client, libvirt0, sysvinit-utils, qemu-kvm, libvirt-bin, uuid-runtime, rsync, grep, iproute, perl-base, perl-modules, ebtables, vlan, wget, jsvc, ipset, python-libvirt, ethtool, iptables
+Depends: openjdk-7-jre, cloudstack-common (= ${source:Version}), lsb-base (>= 3.2), libcommons-daemon-java, openssh-client, libvirt0, sysvinit-utils, qemu-system-x86 | qemu-kvm, libvirt-bin, uuid-runtime, rsync, grep, iproute, perl-base, perl-modules, ebtables, vlan, wget, jsvc, ipset, python-libvirt, ethtool, iptables
Conflicts: cloud-agent, cloud-agent-libs, cloud-agent-deps, cloud-agent-scripts
Description: CloudStack agent
The CloudStack agent is in charge of managing shared computing resources in
[09/50] git commit: updated refs/heads/saml2 to 09da909
Posted by bh...@apache.org.
need to check ccp-qemu-img
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/f30fc6b6
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/f30fc6b6
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/f30fc6b6
Branch: refs/heads/saml2
Commit: f30fc6b673aba05894be3a6075db16927cc1aa8c
Parents: cb9319d
Author: Edison Su <su...@gmail.com>
Authored: Tue Aug 12 14:47:02 2014 -0700
Committer: Edison Su <su...@gmail.com>
Committed: Tue Aug 12 15:13:42 2014 -0700
----------------------------------------------------------------------
scripts/storage/qcow2/managesnapshot.sh | 8 +++++++-
1 file changed, 7 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/f30fc6b6/scripts/storage/qcow2/managesnapshot.sh
----------------------------------------------------------------------
diff --git a/scripts/storage/qcow2/managesnapshot.sh b/scripts/storage/qcow2/managesnapshot.sh
index 42bd1eb..1ee69db 100755
--- a/scripts/storage/qcow2/managesnapshot.sh
+++ b/scripts/storage/qcow2/managesnapshot.sh
@@ -33,10 +33,16 @@ qemu_img="cloud-qemu-img"
which $qemu_img >& /dev/null
if [ $? -gt 0 ]
then
- which qemu-img >& /dev/null
+ which ccp-qemu-img >& /dev/null
if [ $? -eq 0 ]
then
+ qemu_img="ccp-qemu-img"
+ else
+ which qemu-img >& /dev/null
+ if [ $? -eq 0 ]
+ then
qemu_img="qemu-img"
+ fi
fi
fi
[43/50] git commit: updated refs/heads/saml2 to 09da909
Posted by bh...@apache.org.
License info related to a new GUI control
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/d5c71677
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/d5c71677
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/d5c71677
Branch: refs/heads/saml2
Commit: d5c71677dbd427bd2bff23f792deddccb70e7355
Parents: 516895d
Author: Mike Tutkowski <mi...@solidfire.com>
Authored: Thu Aug 14 11:10:35 2014 -0600
Committer: Mike Tutkowski <mi...@solidfire.com>
Committed: Thu Aug 14 11:11:32 2014 -0600
----------------------------------------------------------------------
pom.xml | 2 ++
ui/css/token-input-facebook.css | 10 ++++++++++
2 files changed, 12 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/d5c71677/pom.xml
----------------------------------------------------------------------
diff --git a/pom.xml b/pom.xml
index 2186f83..558aaba 100644
--- a/pom.xml
+++ b/pom.xml
@@ -759,6 +759,7 @@
<exclude>tools/devcloud/src/deps/boxes/basebox-build/definition.rb</exclude>
<exclude>tools/devcloud/src/deps/boxes/basebox-build/preseed.cfg</exclude>
<exclude>tools/marvin/Marvin.egg-info/*</exclude>
+ <exclude>ui/css/token-input-facebook.css</exclude>
<exclude>ui/lib/flot/jquery.colorhelpers.js</exclude>
<exclude>ui/lib/flot/jquery.flot.crosshair.js</exclude>
<exclude>ui/lib/flot/jquery.flot.fillbetween.js</exclude>
@@ -779,6 +780,7 @@
<exclude>ui/lib/jquery.js</exclude>
<exclude>ui/lib/jquery.md5.js</exclude>
<exclude>ui/lib/jquery.validate.js</exclude>
+ <exclude>ui/lib/jquery.tokeninput.js</exclude>
<exclude>ui/lib/qunit/qunit.css</exclude>
<exclude>ui/lib/qunit/qunit.js</exclude>
<exclude>ui/lib/reset.css</exclude>
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/d5c71677/ui/css/token-input-facebook.css
----------------------------------------------------------------------
diff --git a/ui/css/token-input-facebook.css b/ui/css/token-input-facebook.css
index 304a3bc..08fb4ea 100644
--- a/ui/css/token-input-facebook.css
+++ b/ui/css/token-input-facebook.css
@@ -1,3 +1,13 @@
+/*
+ * jQuery Plugin: Tokenizing Autocomplete Text Entry
+ * Version 1.6.0
+ *
+ * Copyright (c) 2009 James Smith (http://loopj.com)
+ * Licensed jointly under the GPL and MIT licenses,
+ * choose which one suits your project best!
+ *
+ */
+
/* Example tokeninput style #2: Facebook style */
ul.token-input-list-facebook {
overflow: hidden;
[29/50] git commit: updated refs/heads/saml2 to 09da909
Posted by bh...@apache.org.
CLOUDSTACK-4770: In MacAddress skip macAddress when parsed value is 0x00
In MacAddress class, we start by settig macAddress String as null and go through
the output of ifconfig -a and pick the one string that is a valid mac address
but is not 0x00 and 0xff. With each loop we set the macAddress to null so that
it does not pick the last one if everything fails.
Tested on Ubuntu where I had an interface called cloud0 whose mac id was 0x00
and it was skipped to get the next one:
$ java -classpath <path-to-cloud-utils.jar> com.cloud.utils.net.MacAddress
addr in integer is 5071953436
addr in bytes is 0 1 2e 4f de 1c
addr in char is 00:01:2e:4f:de:1c
Signed-off-by: Rohit Yadav <ro...@shapeblue.com>
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/3b5aa42c
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/3b5aa42c
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/3b5aa42c
Branch: refs/heads/saml2
Commit: 3b5aa42c6d87fb7e2573146efb8c7d2d0a4692b3
Parents: f6bde7b
Author: Rohit Yadav <ro...@shapeblue.com>
Authored: Wed Aug 13 14:54:26 2014 +0200
Committer: Rohit Yadav <ro...@shapeblue.com>
Committed: Wed Aug 13 15:04:04 2014 +0200
----------------------------------------------------------------------
utils/src/com/cloud/utils/net/MacAddress.java | 12 ++++++++----
1 file changed, 8 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/3b5aa42c/utils/src/com/cloud/utils/net/MacAddress.java
----------------------------------------------------------------------
diff --git a/utils/src/com/cloud/utils/net/MacAddress.java b/utils/src/com/cloud/utils/net/MacAddress.java
index 214ce68..dc53e4a 100755
--- a/utils/src/com/cloud/utils/net/MacAddress.java
+++ b/utils/src/com/cloud/utils/net/MacAddress.java
@@ -19,6 +19,8 @@
package com.cloud.utils.net;
+import com.cloud.utils.NumbersUtil;
+
import java.io.BufferedReader;
import java.io.File;
import java.io.IOException;
@@ -27,8 +29,6 @@ import java.net.InetAddress;
import java.net.UnknownHostException;
import java.util.Formatter;
-import com.cloud.utils.NumbersUtil;
-
/**
* copied from the public domain utility from John Burkard.
* @author <a href="mailto:jb@eaio.com">Johann Burkard</a>
@@ -114,8 +114,12 @@ public class MacAddress {
String l = null;
while ((l = in.readLine()) != null) {
macAddress = MacAddress.parse(l);
- if (macAddress != null && MacAddress.parseShort(macAddress) != 0xff)
- break;
+ if (macAddress != null) {
+ short parsedShortMacAddress = MacAddress.parseShort(macAddress);
+ if (parsedShortMacAddress != 0xff && parsedShortMacAddress != 0x00)
+ break;
+ }
+ macAddress = null;
}
}
[38/50] git commit: updated refs/heads/saml2 to 09da909
Posted by bh...@apache.org.
CLOUDSTACK-7345 changed dd blocksize to 128k when using NFS.
Signed-off-by: Daan Hoogland <da...@onecht.net>
(cherry picked from commit 8b7130fa65a3ce010a54015b3350b94b56414462)
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/7c92bac4
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/7c92bac4
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/7c92bac4
Branch: refs/heads/saml2
Commit: 7c92bac4a35dacba03883532ab6ebe638638b26c
Parents: a38bb38
Author: Brenn Oosterbaan <bo...@schubergphilis.com>
Authored: Thu Aug 14 09:35:14 2014 +0200
Committer: Daan Hoogland <da...@onecht.net>
Committed: Thu Aug 14 10:10:13 2014 +0200
----------------------------------------------------------------------
scripts/vm/hypervisor/xenserver/vmopsSnapshot | 7 ++++++-
1 file changed, 6 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/7c92bac4/scripts/vm/hypervisor/xenserver/vmopsSnapshot
----------------------------------------------------------------------
diff --git a/scripts/vm/hypervisor/xenserver/vmopsSnapshot b/scripts/vm/hypervisor/xenserver/vmopsSnapshot
index 85444dc..6b4693c 100755
--- a/scripts/vm/hypervisor/xenserver/vmopsSnapshot
+++ b/scripts/vm/hypervisor/xenserver/vmopsSnapshot
@@ -200,8 +200,13 @@ def isfile(path, isISCSI):
def copyfile(fromFile, toFile, isISCSI):
logging.debug("Starting to copy " + fromFile + " to " + toFile)
errMsg = ''
+ if isISCSI:
+ bs = "4M"
+ else:
+ bs = "128k"
+
try:
- cmd = ['dd', 'if=' + fromFile, 'iflag=direct', 'of=' + toFile, 'oflag=direct', 'bs=4M']
+ cmd = ['dd', 'if=' + fromFile, 'iflag=direct', 'of=' + toFile, 'oflag=direct', 'bs=' + bs]
txt = util.pread2(cmd)
except:
try:
[19/50] git commit: updated refs/heads/saml2 to 09da909
Posted by bh...@apache.org.
marvin: Fix marvin.sync profile, fixes regression from e10f8e8
Signed-off-by: Rohit Yadav <ro...@shapeblue.com>
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/22792894
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/22792894
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/22792894
Branch: refs/heads/saml2
Commit: 2279289465441447790bc64f38624e03fc0ec78b
Parents: 701b7a2
Author: Leo Simons <ls...@schubergphilis.com>
Authored: Wed Aug 13 11:15:41 2014 +0200
Committer: Rohit Yadav <ro...@shapeblue.com>
Committed: Wed Aug 13 11:15:41 2014 +0200
----------------------------------------------------------------------
tools/marvin/mvn-setup.py | 54 ++++++++++++++++++++++++++++++++++++++++++
tools/marvin/pom.xml | 9 ++++---
tools/marvin/setup.py | 8 +------
3 files changed, 61 insertions(+), 10 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/22792894/tools/marvin/mvn-setup.py
----------------------------------------------------------------------
diff --git a/tools/marvin/mvn-setup.py b/tools/marvin/mvn-setup.py
new file mode 100755
index 0000000..5aa251b
--- /dev/null
+++ b/tools/marvin/mvn-setup.py
@@ -0,0 +1,54 @@
+#!/usr/bin/env python
+# 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.
+
+# wrapper around setup.py which injects the version number provided as a
+# command line argument called from maven (see pom.xml)
+
+import sys
+import re
+import subprocess
+
+import os.path
+
+basedir = os.path.dirname(__file__)
+setupScript = os.path.join(basedir, 'setup.py')
+
+
+def replaceVersion(fname, version):
+ """replace VERSION in setup.py"""
+ with open(fname, 'r') as f:
+ content = f.read()
+ needle = '\nVERSION\s*=\s*[\'"][^\'"]*[\'"]'
+ replacement = '\nVERSION = "%s"' % version
+ content = re.sub(needle, replacement, content, 1)
+ with open(fname, 'w') as f:
+ f.write(content)
+
+
+def runSetupScript(args):
+ """Invoke setup.py with the provided arguments"""
+ cmd = ['python', setupScript] + args
+ exitCode = subprocess.call(cmd)
+ return exitCode
+
+
+if __name__ == "__main__":
+ version = sys.argv[1]
+ remainingArgs = sys.argv[2:]
+ replaceVersion(setupScript, version)
+ runSetupScript(remainingArgs)
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/22792894/tools/marvin/pom.xml
----------------------------------------------------------------------
diff --git a/tools/marvin/pom.xml b/tools/marvin/pom.xml
index 3bf70e0..381a22c 100644
--- a/tools/marvin/pom.xml
+++ b/tools/marvin/pom.xml
@@ -72,7 +72,8 @@
<workingDirectory>${exec.workingdir}</workingDirectory>
<executable>python</executable>
<arguments>
- <argument>setup.py</argument>
+ <argument>mvn-setup.py</argument>
+ <argument>${project.version}</argument>
<argument>sdist</argument>
</arguments>
</configuration>
@@ -125,7 +126,8 @@
<workingDirectory>${exec.workingdir}</workingDirectory>
<executable>python</executable>
<arguments>
- <argument>setup.py</argument>
+ <argument>mvn-setup.py</argument>
+ <argument>${project.version}</argument>
<argument>sdist</argument>
</arguments>
</configuration>
@@ -141,8 +143,9 @@
<executable>pip</executable>
<arguments>
<argument>install</argument>
+ <argument>--allow-external</argument>
<argument>--upgrade</argument>
- <argument>Marvin-0.1.0.tar.gz</argument>
+ <argument>Marvin-${project.version}.tar.gz</argument>
</arguments>
</configuration>
</execution>
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/22792894/tools/marvin/setup.py
----------------------------------------------------------------------
diff --git a/tools/marvin/setup.py b/tools/marvin/setup.py
index 555d67d..03e53c9 100644
--- a/tools/marvin/setup.py
+++ b/tools/marvin/setup.py
@@ -27,13 +27,7 @@ except ImportError:
raise RuntimeError("python setuptools is required to build Marvin")
-VERSION = '4.5.0'
-
-import os
-
-
-def read(fname):
- return open(os.path.join(os.path.dirname(__file__), fname)).read().strip()
+VERSION = "4.5.0-SNAPSHOT"
setup(name="Marvin",
version=VERSION,
[08/50] git commit: updated refs/heads/saml2 to 09da909
Posted by bh...@apache.org.
measure how long it takes to create a snaphsot
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/a1bee2cb
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/a1bee2cb
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/a1bee2cb
Branch: refs/heads/saml2
Commit: a1bee2cb615d29b7c7402d0f132f3dd3a568a0bb
Parents: f30fc6b
Author: Edison Su <su...@gmail.com>
Authored: Tue Aug 12 15:13:34 2014 -0700
Committer: Edison Su <su...@gmail.com>
Committed: Tue Aug 12 15:13:42 2014 -0700
----------------------------------------------------------------------
.../com/cloud/hypervisor/kvm/storage/KVMStorageProcessor.java | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/a1bee2cb/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStorageProcessor.java
----------------------------------------------------------------------
diff --git a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStorageProcessor.java b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStorageProcessor.java
index 5deb636..42a0204 100644
--- a/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStorageProcessor.java
+++ b/plugins/hypervisors/kvm/src/com/cloud/hypervisor/kvm/storage/KVMStorageProcessor.java
@@ -1118,9 +1118,12 @@ public class KVMStorageProcessor implements StorageProcessor {
String vmUuid = vm.getUUIDString();
Object[] args = new Object[] {snapshotName, vmUuid};
String snapshot = SnapshotXML.format(args);
- s_logger.debug(snapshot);
+ long start = System.currentTimeMillis();
vm.snapshotCreateXML(snapshot);
+ long total = (System.currentTimeMillis() - start)/1000;
+ s_logger.debug("snapshot takes " + total + " seconds to finish");
+
/*
* libvirt on RHEL6 doesn't handle resume event emitted from
* qemu
[18/50] git commit: updated refs/heads/saml2 to 09da909
Posted by bh...@apache.org.
Merge branch 'bugfix/CID-1230587'
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/701b7a2d
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/701b7a2d
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/701b7a2d
Branch: refs/heads/saml2
Commit: 701b7a2d0e1be2739bc32aec281c7e5b52076205
Parents: ae4d498 328599a
Author: Hugo Trippaers <ht...@schubergphilis.com>
Authored: Wed Aug 13 09:03:31 2014 +0200
Committer: Hugo Trippaers <ht...@schubergphilis.com>
Committed: Wed Aug 13 09:03:31 2014 +0200
----------------------------------------------------------------------
.../BaremetalKickStartServiceImpl.java | 64 +++++++++-----------
1 file changed, 27 insertions(+), 37 deletions(-)
----------------------------------------------------------------------
[27/50] git commit: updated refs/heads/saml2 to 09da909
Posted by bh...@apache.org.
ApiXmlDocWriter: Don't hardcode around login api or skip it based on key name
Signed-off-by: Rohit Yadav <ro...@shapeblue.com>
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/31fbb206
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/31fbb206
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/31fbb206
Branch: refs/heads/saml2
Commit: 31fbb2064899b40e42eeaf3d21c0222d725313e9
Parents: fed71ec
Author: Rohit Yadav <ro...@shapeblue.com>
Authored: Wed Aug 13 14:04:52 2014 +0200
Committer: Rohit Yadav <ro...@shapeblue.com>
Committed: Wed Aug 13 14:05:18 2014 +0200
----------------------------------------------------------------------
server/src/com/cloud/api/doc/ApiXmlDocWriter.java | 8 +++-----
1 file changed, 3 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/31fbb206/server/src/com/cloud/api/doc/ApiXmlDocWriter.java
----------------------------------------------------------------------
diff --git a/server/src/com/cloud/api/doc/ApiXmlDocWriter.java b/server/src/com/cloud/api/doc/ApiXmlDocWriter.java
index ee8a4bb..8ed786d 100644
--- a/server/src/com/cloud/api/doc/ApiXmlDocWriter.java
+++ b/server/src/com/cloud/api/doc/ApiXmlDocWriter.java
@@ -215,11 +215,9 @@ public class ApiXmlDocWriter {
writeCommand(rootAdmin, key);
// Write single commands to separate xml files
- if (!key.equals("login")) {
- ObjectOutputStream singleRootAdminCommandOs = xs.createObjectOutputStream(new FileWriter(rootAdminDirName + "/" + key + ".xml"), "command");
- writeCommand(singleRootAdminCommandOs, key);
- singleRootAdminCommandOs.close();
- }
+ ObjectOutputStream singleRootAdminCommandOs = xs.createObjectOutputStream(new FileWriter(rootAdminDirName + "/" + key + ".xml"), "command");
+ writeCommand(singleRootAdminCommandOs, key);
+ singleRootAdminCommandOs.close();
if (s_domainAdminApiCommands.containsKey(key)) {
writeCommand(domainAdmin, key);
[12/50] git commit: updated refs/heads/saml2 to 09da909
Posted by bh...@apache.org.
CLOUDSTACK-7321: Resolved cleanup issue in test_network.py
Signed-off-by: Santhosh Edukulla <sa...@gmail.com>
Project: http://git-wip-us.apache.org/repos/asf/cloudstack/repo
Commit: http://git-wip-us.apache.org/repos/asf/cloudstack/commit/f9a66655
Tree: http://git-wip-us.apache.org/repos/asf/cloudstack/tree/f9a66655
Diff: http://git-wip-us.apache.org/repos/asf/cloudstack/diff/f9a66655
Branch: refs/heads/saml2
Commit: f9a66655e353fa3ff25d4231cf6cd60f7e9500e6
Parents: a22abeb
Author: Gaurav Aradhye <ga...@clogeny.com>
Authored: Tue Aug 12 18:41:47 2014 +0530
Committer: Santhosh Edukulla <sa...@gmail.com>
Committed: Wed Aug 13 10:07:33 2014 +0530
----------------------------------------------------------------------
test/integration/smoke/test_network.py | 5 ++---
1 file changed, 2 insertions(+), 3 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/cloudstack/blob/f9a66655/test/integration/smoke/test_network.py
----------------------------------------------------------------------
diff --git a/test/integration/smoke/test_network.py b/test/integration/smoke/test_network.py
index 08ec0d3..cca1803 100644
--- a/test/integration/smoke/test_network.py
+++ b/test/integration/smoke/test_network.py
@@ -609,10 +609,9 @@ class TestRebootRouter(cloudstackTestCase):
self.services["natrule"],
ipaddressid=self.public_ip.ipaddress.id
)
- self.cleanup = [
- self.vm_1,
+ self.cleanup = [self.nat_rule,
lb_rule,
- self.nat_rule,
+ self.vm_1,
self.service_offering,
self.account,
]