You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@libcloud.apache.org by to...@apache.org on 2014/08/07 17:56:00 UTC
[1/2] git commit: Make get_regions work with v3 auth.
Repository: libcloud
Updated Branches:
refs/heads/trunk ebb8f098c -> 13fe413d7
Make get_regions work with v3 auth.
Project: http://git-wip-us.apache.org/repos/asf/libcloud/repo
Commit: http://git-wip-us.apache.org/repos/asf/libcloud/commit/1e28abe0
Tree: http://git-wip-us.apache.org/repos/asf/libcloud/tree/1e28abe0
Diff: http://git-wip-us.apache.org/repos/asf/libcloud/diff/1e28abe0
Branch: refs/heads/trunk
Commit: 1e28abe049e3466e03acfc048ef9d82c6505cbb2
Parents: ebb8f09
Author: Tomaz Muraus <to...@apache.org>
Authored: Thu Aug 7 17:39:15 2014 +0200
Committer: Tomaz Muraus <to...@apache.org>
Committed: Thu Aug 7 17:39:15 2014 +0200
----------------------------------------------------------------------
libcloud/common/openstack.py | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/libcloud/blob/1e28abe0/libcloud/common/openstack.py
----------------------------------------------------------------------
diff --git a/libcloud/common/openstack.py b/libcloud/common/openstack.py
index 65b4306..3d4786b 100644
--- a/libcloud/common/openstack.py
+++ b/libcloud/common/openstack.py
@@ -487,7 +487,11 @@ class OpenStackServiceCatalog(object):
catalog_items = self._service_catalog.items()
- if '2.0' in self._auth_version:
+ if '3.x' in self._auth_version:
+ for service_type, values in catalog_items:
+ for region in values.keys():
+ regions.add(region)
+ elif '2.0' in self._auth_version:
for service_type, services_by_name in catalog_items:
items = services_by_name.items()
for service_name, endpoints_by_region in items:
[2/2] git commit: Add utility get_service_types method to
OpenStackServiceCatalog class.
Posted by to...@apache.org.
Add utility get_service_types method to OpenStackServiceCatalog class.
Project: http://git-wip-us.apache.org/repos/asf/libcloud/repo
Commit: http://git-wip-us.apache.org/repos/asf/libcloud/commit/13fe413d
Tree: http://git-wip-us.apache.org/repos/asf/libcloud/tree/13fe413d
Diff: http://git-wip-us.apache.org/repos/asf/libcloud/diff/13fe413d
Branch: refs/heads/trunk
Commit: 13fe413d7af4c11b836cbda0a3aa2a2f94ee03d5
Parents: 1e28abe
Author: Tomaz Muraus <to...@apache.org>
Authored: Thu Aug 7 17:48:29 2014 +0200
Committer: Tomaz Muraus <to...@apache.org>
Committed: Thu Aug 7 17:49:15 2014 +0200
----------------------------------------------------------------------
libcloud/common/openstack.py | 21 +++++++++++++++++++++
libcloud/test/compute/test_openstack.py | 8 ++++++++
2 files changed, 29 insertions(+)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/libcloud/blob/13fe413d/libcloud/common/openstack.py
----------------------------------------------------------------------
diff --git a/libcloud/common/openstack.py b/libcloud/common/openstack.py
index 3d4786b..61d16c1 100644
--- a/libcloud/common/openstack.py
+++ b/libcloud/common/openstack.py
@@ -506,10 +506,31 @@ class OpenStackServiceCatalog(object):
return list(regions)
+ def get_service_types(self, region=None):
+ """
+ Retrieve all the available service types.
+
+ :param region: Optional region to retrieve service types for.
+ :type region: ``str``
+
+ :rtype: ``list`` of ``str``
+ """
+ service_types = set()
+
+ for service_type, values in self._service_catalog.items():
+ regions = values.keys()
+ if not region or region in regions:
+ service_types.add(service_type)
+
+ return list(service_types)
+
def get_service_names(self, service_type, region=None):
"""
Retrieve list of service names that match service type and region
+ :type service_type: ``str``
+ :type region: ``str``
+
:rtype: ``list`` of ``str``
"""
names = set()
http://git-wip-us.apache.org/repos/asf/libcloud/blob/13fe413d/libcloud/test/compute/test_openstack.py
----------------------------------------------------------------------
diff --git a/libcloud/test/compute/test_openstack.py b/libcloud/test/compute/test_openstack.py
index 06e79ba..77a38e9 100644
--- a/libcloud/test/compute/test_openstack.py
+++ b/libcloud/test/compute/test_openstack.py
@@ -117,6 +117,14 @@ class OpenStackServiceCatalogTests(unittest.TestCase):
regions = self.service_catalog.get_regions()
self.assertEqual(sorted(regions), ['LON', 'ORD'])
+ def test_get_service_types(self):
+ service_types = self.service_catalog.get_service_types()
+ self.assertEqual(sorted(service_types), ['compute', 'object-store',
+ 'rax:object-cdn'])
+
+ service_types = self.service_catalog.get_service_types(region='invalid')
+ self.assertEqual(sorted(service_types), [])
+
def test_get_service_names(self):
OpenStackBaseConnection.conn_classes = (OpenStack_2_0_MockHttp,
OpenStack_2_0_MockHttp)