Added region_name attribute to OSCreds
Added region_name to neutron, nova, glance, heat, and keystone
client retrieval
Fixed false positive heat connection test.
JIRA: SNAPS-50 & SNAPS-146
Change-Id: If3471ed7a2bdd0e6bfc281455c996386d031235d
Signed-off-by: spisarski <s.pisarski@cablelabs.com>
is specified for https verification, or set to be False
to disable server certificate verification without cert
file
is specified for https verification, or set to be False
to disable server certificate verification without cert
file
+ :param region_name: the region (optional default = None)
"""
self.username = kwargs.get('username')
self.password = kwargs.get('password')
"""
self.username = kwargs.get('username')
self.password = kwargs.get('password')
else:
self.interface = kwargs['interface']
else:
self.interface = kwargs['interface']
+ self.region_name = kwargs.get('region_name', None)
+
self.cacert = False
if kwargs.get('cacert') is not None:
if isinstance(kwargs.get('cacert'), str):
self.cacert = False
if kwargs.get('cacert') is not None:
if isinstance(kwargs.get('cacert'), str):
self.assertEqual('admin', os_creds.interface)
self.assertFalse(os_creds.cacert)
self.assertIsNone(os_creds.proxy_settings)
self.assertEqual('admin', os_creds.interface)
self.assertFalse(os_creds.cacert)
self.assertIsNone(os_creds.proxy_settings)
+ self.assertIsNone(os_creds.region_name)
def test_minimal_kwargs(self):
os_creds = OSCreds(**{'username': 'foo', 'password': 'bar',
def test_minimal_kwargs(self):
os_creds = OSCreds(**{'username': 'foo', 'password': 'bar',
self.assertEqual('admin', os_creds.interface)
self.assertFalse(os_creds.cacert)
self.assertIsNone(os_creds.proxy_settings)
self.assertEqual('admin', os_creds.interface)
self.assertFalse(os_creds.cacert)
self.assertIsNone(os_creds.proxy_settings)
+ self.assertIsNone(os_creds.region_name)
def test_all_kwargs_versions_str(self):
os_creds = OSCreds(
def test_all_kwargs_versions_str(self):
os_creds = OSCreds(
'auth_url': 'http://foo.bar:5000/v2', 'project_name': 'hello',
'identity_api_version': '5', 'image_api_version': '6',
'compute_api_version': '7', 'heat_api_version': '8.0',
'auth_url': 'http://foo.bar:5000/v2', 'project_name': 'hello',
'identity_api_version': '5', 'image_api_version': '6',
'compute_api_version': '7', 'heat_api_version': '8.0',
+ 'cacert': 'true', 'region_name': 'test_region'})
self.assertEqual('foo', os_creds.username)
self.assertEqual('bar', os_creds.password)
self.assertEqual('http://foo.bar:5000/v2', os_creds.auth_url)
self.assertEqual('foo', os_creds.username)
self.assertEqual('bar', os_creds.password)
self.assertEqual('http://foo.bar:5000/v2', os_creds.auth_url)
self.assertEqual('admin', os_creds.interface)
self.assertTrue(os_creds.cacert)
self.assertIsNone(os_creds.proxy_settings)
self.assertEqual('admin', os_creds.interface)
self.assertTrue(os_creds.cacert)
self.assertIsNone(os_creds.proxy_settings)
+ self.assertEqual('test_region', os_creds.region_name)
def test_all_kwargs_versions_num(self):
os_creds = OSCreds(
def test_all_kwargs_versions_num(self):
os_creds = OSCreds(
'auth_url': 'http://foo.bar:5000/v2', 'project_name': 'hello',
'identity_api_version': 5, 'image_api_version': 6,
'compute_api_version': 7, 'heat_api_version': 8.0,
'auth_url': 'http://foo.bar:5000/v2', 'project_name': 'hello',
'identity_api_version': 5, 'image_api_version': 6,
'compute_api_version': 7, 'heat_api_version': 8.0,
+ 'cacert': True, 'region_name': 'test_region'})
self.assertEqual('foo', os_creds.username)
self.assertEqual('bar', os_creds.password)
self.assertEqual('http://foo.bar:5000/v2', os_creds.auth_url)
self.assertEqual('foo', os_creds.username)
self.assertEqual('bar', os_creds.password)
self.assertEqual('http://foo.bar:5000/v2', os_creds.auth_url)
self.assertEqual('admin', os_creds.interface)
self.assertTrue(os_creds.cacert)
self.assertIsNone(os_creds.proxy_settings)
self.assertEqual('admin', os_creds.interface)
self.assertTrue(os_creds.cacert)
self.assertIsNone(os_creds.proxy_settings)
+ self.assertEqual('test_region', os_creds.region_name)
def test_proxy_settings_obj(self):
proxy_settings = ProxySettings(host='foo', port=1234)
def test_proxy_settings_obj(self):
proxy_settings = ProxySettings(host='foo', port=1234)
self.assertEqual('foo', os_creds.proxy_settings.host)
self.assertEqual(1234, os_creds.proxy_settings.port)
self.assertIsNone(os_creds.proxy_settings.ssh_proxy_cmd)
self.assertEqual('foo', os_creds.proxy_settings.host)
self.assertEqual(1234, os_creds.proxy_settings.port)
self.assertIsNone(os_creds.proxy_settings.ssh_proxy_cmd)
+ self.assertIsNone(os_creds.region_name)
def test_proxy_settings_obj_kwargs(self):
proxy_settings = ProxySettings(host='foo', port=1234)
os_creds = OSCreds(**{'username': 'foo', 'password': 'bar',
'auth_url': 'http://foo.bar:5000/v2',
'project_name': 'hello',
def test_proxy_settings_obj_kwargs(self):
proxy_settings = ProxySettings(host='foo', port=1234)
os_creds = OSCreds(**{'username': 'foo', 'password': 'bar',
'auth_url': 'http://foo.bar:5000/v2',
'project_name': 'hello',
- 'proxy_settings': proxy_settings})
+ 'proxy_settings': proxy_settings,
+ 'region_name': 'test_region'})
self.assertEqual('foo', os_creds.username)
self.assertEqual('bar', os_creds.password)
self.assertEqual('http://foo.bar:5000/v2', os_creds.auth_url)
self.assertEqual('foo', os_creds.username)
self.assertEqual('bar', os_creds.password)
self.assertEqual('http://foo.bar:5000/v2', os_creds.auth_url)
self.assertEqual('foo', os_creds.proxy_settings.host)
self.assertEqual(1234, os_creds.proxy_settings.port)
self.assertIsNone(os_creds.proxy_settings.ssh_proxy_cmd)
self.assertEqual('foo', os_creds.proxy_settings.host)
self.assertEqual(1234, os_creds.proxy_settings.port)
self.assertIsNone(os_creds.proxy_settings.ssh_proxy_cmd)
+ self.assertEqual('test_region', os_creds.region_name)
def test_proxy_settings_dict(self):
os_creds = OSCreds(
def test_proxy_settings_dict(self):
os_creds = OSCreds(
os_creds = OSCreds(**{'username': 'foo', 'password': 'bar',
'auth_url': 'http://foo.bar:5000/v2',
'project_name': 'hello',
os_creds = OSCreds(**{'username': 'foo', 'password': 'bar',
'auth_url': 'http://foo.bar:5000/v2',
'project_name': 'hello',
- 'proxy_settings': {'host': 'foo', 'port': 1234}})
+ 'proxy_settings': {'host': 'foo', 'port': 1234},
+ 'region_name': 'test_region'})
self.assertEqual('foo', os_creds.username)
self.assertEqual('bar', os_creds.password)
self.assertEqual('http://foo.bar:5000/v2', os_creds.auth_url)
self.assertEqual('foo', os_creds.username)
self.assertEqual('bar', os_creds.password)
self.assertEqual('http://foo.bar:5000/v2', os_creds.auth_url)
self.assertEqual('foo', os_creds.proxy_settings.host)
self.assertEqual(1234, os_creds.proxy_settings.port)
self.assertIsNone(os_creds.proxy_settings.ssh_proxy_cmd)
self.assertEqual('foo', os_creds.proxy_settings.host)
self.assertEqual(1234, os_creds.proxy_settings.port)
self.assertIsNone(os_creds.proxy_settings.ssh_proxy_cmd)
+ self.assertEqual('test_region', os_creds.region_name)
'network_api_version': config.get('OS_NETWORK_API_VERSION'),
'compute_api_version': config.get('OS_COMPUTE_API_VERSION'),
'heat_api_version': config.get('OS_HEAT_API_VERSION'),
'network_api_version': config.get('OS_NETWORK_API_VERSION'),
'compute_api_version': config.get('OS_COMPUTE_API_VERSION'),
'heat_api_version': config.get('OS_HEAT_API_VERSION'),
- 'user_domain_id': config.get('OS_USER_DOMAIN_ID'),
- 'project_domain_id': config.get('OS_PROJECT_DOMAIN_ID'),
+ 'user_domain_id': config.get(
+ 'OS_USER_DOMAIN_ID', config.get('OS_USER_DOMAIN_NAME')),
+ 'project_domain_id': config.get(
+ 'OS_PROJECT_DOMAIN_ID', config.get('OS_PROJECT_DOMAIN_NAME')),
'interface': interface,
'proxy_settings': proxy_settings,
'interface': interface,
'proxy_settings': proxy_settings,
- 'cacert': https_cacert}
+ 'cacert': https_cacert,
+ 'region_name': config.get('OS_REGION_NAME')}
else:
logger.info('Reading development os_env file - ' + dev_os_env_file)
config = file_utils.read_yaml(dev_os_env_file)
else:
logger.info('Reading development os_env file - ' + dev_os_env_file)
config = file_utils.read_yaml(dev_os_env_file)
'user_domain_id': config.get('user_domain_id'),
'project_domain_id': config.get('project_domain_id'),
'interface': config.get('interface'),
'user_domain_id': config.get('user_domain_id'),
'project_domain_id': config.get('project_domain_id'),
'interface': config.get('interface'),
- 'proxy_settings': proxy_settings, 'cacert': config.get('cacert')}
+ 'proxy_settings': proxy_settings,
+ 'cacert': config.get('cacert'),
+ 'region_name': config.get('region_name')}
os_creds = OSCreds(**creds_dict)
logger.info('OS Credentials = %s', os_creds)
os_creds = OSCreds(**creds_dict)
logger.info('OS Credentials = %s', os_creds)
:return: the glance client
"""
return Client(version=os_creds.image_api_version,
:return: the glance client
"""
return Client(version=os_creds.image_api_version,
- session=keystone_utils.keystone_session(os_creds))
+ session=keystone_utils.keystone_session(os_creds),
+ region_name=os_creds.region_name)
def get_image(glance, image_name=None):
def get_image(glance, image_name=None):
"""
logger.debug('Retrieving Nova Client')
return Client(os_creds.heat_api_version,
"""
logger.debug('Retrieving Nova Client')
return Client(os_creds.heat_api_version,
- session=keystone_utils.keystone_session(os_creds))
+ session=keystone_utils.keystone_session(os_creds),
+ region_name=os_creds.region_name)
def get_stack_by_name(heat_cli, stack_name):
def get_stack_by_name(heat_cli, stack_name):
"""
return Client(
version=os_creds.identity_api_version,
"""
return Client(
version=os_creds.identity_api_version,
- session=keystone_session(os_creds), interface=os_creds.interface)
+ session=keystone_session(os_creds),
+ interface=os_creds.interface,
+ region_name=os_creds.region_name)
def get_endpoint(os_creds, service_type, interface='public'):
def get_endpoint(os_creds, service_type, interface='public'):
:return: the client object
"""
return Client(api_version=os_creds.network_api_version,
:return: the client object
"""
return Client(api_version=os_creds.network_api_version,
- session=keystone_utils.keystone_session(os_creds))
+ session=keystone_utils.keystone_session(os_creds),
+ region_name=os_creds.region_name)
def create_network(neutron, os_creds, network_settings):
def create_network(neutron, os_creds, network_settings):
"""
logger.debug('Retrieving Nova Client')
return Client(os_creds.compute_api_version,
"""
logger.debug('Retrieving Nova Client')
return Client(os_creds.compute_api_version,
- session=keystone_utils.keystone_session(os_creds))
+ session=keystone_utils.keystone_session(os_creds),
+ region_name=os_creds.region_name)
def create_server(nova, neutron, glance, instance_settings, image_settings,
def create_server(nova, neutron, glance, instance_settings, image_settings,
heat = heat_utils.heat_client(self.os_creds)
# This should not throw an exception
heat = heat_utils.heat_client(self.os_creds)
# This should not throw an exception
+ stacks = heat.stacks.list()
+ for stack in stacks:
+ print stack
def test_nova_connect_fail(self):
"""
def test_nova_connect_fail(self):
"""
"""
from snaps.openstack.os_credentials import OSCreds
"""
from snaps.openstack.os_credentials import OSCreds
- nova = heat_utils.heat_client(
- OSCreds(username='user', password='pass', auth_url=self.os_creds.auth_url,
- project_name=self.os_creds.project_name, proxy_settings=self.os_creds.proxy_settings))
+ heat = heat_utils.heat_client(
+ OSCreds(username='user', password='pass',
+ auth_url=self.os_creds.auth_url,
+ project_name=self.os_creds.project_name,
+ proxy_settings=self.os_creds.proxy_settings))
+ stacks = heat.stacks.list()
# This should throw an exception
with self.assertRaises(Exception):
# This should throw an exception
with self.assertRaises(Exception):
+ for stack in stacks:
+ print stack
class HeatUtilsCreateStackTests(OSComponentTestCase):
class HeatUtilsCreateStackTests(OSComponentTestCase):
- Instantiates the CreateImage object that is responsible for downloading and creating an OS image file
- within OpenStack
+ Instantiates the CreateImage object that is responsible for downloading
+ and creating an OS image file within OpenStack
"""
guid = self.__class__.__name__ + '-' + str(uuid.uuid4())
stack_name = self.__class__.__name__ + '-' + str(guid) + '-stack'
self.image_creator = OpenStackImage(
self.os_creds, openstack_tests.cirros_image_settings(
"""
guid = self.__class__.__name__ + '-' + str(uuid.uuid4())
stack_name = self.__class__.__name__ + '-' + str(guid) + '-stack'
self.image_creator = OpenStackImage(
self.os_creds, openstack_tests.cirros_image_settings(
- name=self.__class__.__name__ + '-' + str(guid) + '-image', image_metadata=self.image_metadata))
+ name=self.__class__.__name__ + '-' + str(guid) + '-image',
+ image_metadata=self.image_metadata))
self.image_creator.create()
# Create Flavor
self.image_creator.create()
# Create Flavor
'flavor_name': self.flavor_creator.flavor_settings.name}
heat_tmplt_path = pkg_resources.resource_filename(
'snaps.openstack.tests.heat', 'test_heat_template.yaml')
'flavor_name': self.flavor_creator.flavor_settings.name}
heat_tmplt_path = pkg_resources.resource_filename(
'snaps.openstack.tests.heat', 'test_heat_template.yaml')
- self.stack_settings = StackSettings(name=stack_name, template_path=heat_tmplt_path, env_values=env_values)
+ self.stack_settings = StackSettings(
+ name=stack_name, template_path=heat_tmplt_path,
+ env_values=env_values)
self.stack = None
self.heat_client = heat_utils.heat_client(self.os_creds)
self.stack = None
self.heat_client = heat_utils.heat_client(self.os_creds)
"""
Tests the creation of an OpenStack keypair that does not exist.
"""
"""
Tests the creation of an OpenStack keypair that does not exist.
"""
- self.stack = heat_utils.create_stack(self.heat_client, self.stack_settings)
+ self.stack = heat_utils.create_stack(self.heat_client,
+ self.stack_settings)
- stack_query_1 = heat_utils.get_stack_by_name(self.heat_client, self.stack_settings.name)
+ stack_query_1 = heat_utils.get_stack_by_name(self.heat_client,
+ self.stack_settings.name)
self.assertEqual(self.stack.id, stack_query_1.id)
self.assertEqual(self.stack.id, stack_query_1.id)
- stack_query_2 = heat_utils.get_stack_by_id(self.heat_client, self.stack.id)
+ stack_query_2 = heat_utils.get_stack_by_id(self.heat_client,
+ self.stack.id)
self.assertEqual(self.stack.id, stack_query_2.id)
outputs = heat_utils.get_stack_outputs(self.heat_client, self.stack.id)
self.assertEqual(self.stack.id, stack_query_2.id)
outputs = heat_utils.get_stack_outputs(self.heat_client, self.stack.id)
is_active = False
while time.time() < end_time:
is_active = False
while time.time() < end_time:
- status = heat_utils.get_stack_status(self.heat_client, self.stack.id)
+ status = heat_utils.get_stack_status(self.heat_client,
+ self.stack.id)
if status == create_stack.STATUS_CREATE_COMPLETE:
is_active = True
break
if status == create_stack.STATUS_CREATE_COMPLETE:
is_active = True
break