summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMonty Taylor <mordred@inaugust.com>2016-04-05 10:38:46 -0400
committerMonty Taylor <mordred@inaugust.com>2016-04-06 19:18:52 -0400
commit5605034fc38862b19e6d2d96aa222dafc7762060 (patch)
treebbb4a6cc4fa29d2fff152837975b43177cfcaa64
parentfdb80ad04f5611ebc62b4c64f896448c9213a75c (diff)
downloados-client-config-5605034fc38862b19e6d2d96aa222dafc7762060.tar.gz
Pull the network settings from the actual dict1.17.0
Turns out self._openstack_config is not the config dict. self.config is. Also, return names. Change-Id: Ib2013e737b506b3a2acd7aa7b7884240c25384c5
-rw-r--r--os_client_config/cloud_config.py14
-rw-r--r--os_client_config/tests/base.py26
-rw-r--r--os_client_config/tests/test_config.py21
3 files changed, 55 insertions, 6 deletions
diff --git a/os_client_config/cloud_config.py b/os_client_config/cloud_config.py
index e63bd12..5dfbba9 100644
--- a/os_client_config/cloud_config.py
+++ b/os_client_config/cloud_config.py
@@ -442,23 +442,25 @@ class CloudConfig(object):
def get_external_networks(self):
"""Get list of network names for external networks."""
return [
- net['name'] for net in self._openstack_config['networks']
+ net['name'] for net in self.config['networks']
if net['routes_externally']]
def get_internal_networks(self):
"""Get list of network names for internal networks."""
return [
- net['name'] for net in self._openstack_config['networks']
+ net['name'] for net in self.config['networks']
if not net['routes_externally']]
def get_default_network(self):
"""Get network used for default interactions."""
- for net in self._openstack_config['networks']:
+ for net in self.config['networks']:
if net['default_interface']:
- return net
+ return net['name']
+ return None
def get_nat_destination(self):
"""Get network used for NAT destination."""
- for net in self._openstack_config['networks']:
+ for net in self.config['networks']:
if net['nat_destination']:
- return net
+ return net['name']
+ return None
diff --git a/os_client_config/tests/base.py b/os_client_config/tests/base.py
index 9b784b1..d046a94 100644
--- a/os_client_config/tests/base.py
+++ b/os_client_config/tests/base.py
@@ -90,6 +90,32 @@ USER_CONF = {
},
'region_name': 'test-region',
},
+ '_test-cloud-networks_': {
+ 'auth': {
+ 'username': 'testuser',
+ 'password': 'testpass',
+ 'project_id': 12345,
+ 'auth_url': 'http://example.com/v2',
+ 'domain_id': '6789',
+ 'project_domain_id': '123456789',
+ },
+ 'networks': [{
+ 'name': 'a-public',
+ 'routes_externally': True,
+ }, {
+ 'name': 'another-public',
+ 'routes_externally': True,
+ 'default_interface': True,
+ }, {
+ 'name': 'a-private',
+ 'routes_externally': False,
+ }, {
+ 'name': 'another-private',
+ 'routes_externally': False,
+ 'nat_destination': True,
+ }],
+ 'region_name': 'test-region',
+ },
'_test_cloud_regions': {
'auth': {
'username': 'testuser',
diff --git a/os_client_config/tests/test_config.py b/os_client_config/tests/test_config.py
index 7c2bec0..a0978f0 100644
--- a/os_client_config/tests/test_config.py
+++ b/os_client_config/tests/test_config.py
@@ -187,6 +187,26 @@ class TestConfig(base.TestCase):
self.assertEqual('user', cc.auth['username'])
self.assertEqual('testpass', cc.auth['password'])
+ def test_get_one_cloud_networks(self):
+ c = config.OpenStackConfig(config_files=[self.cloud_yaml],
+ vendor_files=[self.vendor_yaml])
+ cc = c.get_one_cloud('_test-cloud-networks_')
+ self.assertEqual(
+ ['a-public', 'another-public'], cc.get_external_networks())
+ self.assertEqual(
+ ['a-private', 'another-private'], cc.get_internal_networks())
+ self.assertEqual('another-private', cc.get_nat_destination())
+ self.assertEqual('another-public', cc.get_default_network())
+
+ def test_get_one_cloud_no_networks(self):
+ c = config.OpenStackConfig(config_files=[self.cloud_yaml],
+ vendor_files=[self.vendor_yaml])
+ cc = c.get_one_cloud('_test-cloud-domain-scoped_')
+ self.assertEqual([], cc.get_external_networks())
+ self.assertEqual([], cc.get_internal_networks())
+ self.assertIsNone(cc.get_nat_destination())
+ self.assertIsNone(cc.get_default_network())
+
def test_only_secure_yaml(self):
c = config.OpenStackConfig(config_files=['nonexistent'],
vendor_files=['nonexistent'],
@@ -201,6 +221,7 @@ class TestConfig(base.TestCase):
['_test-cloud-domain-id_',
'_test-cloud-domain-scoped_',
'_test-cloud-int-project_',
+ '_test-cloud-networks_',
'_test-cloud_',
'_test-cloud_no_region',
'_test_cloud_hyphenated',