Add name attribute to Nova server.
This patch add a 'name' attribute to OS::Nova::Server resource for convenience. It also avoids additional calls to Nova API. Change-Id: I67943563268ae0c1c7381ca8b472c7d41190f28b Closes-Bug: #1327922
This commit is contained in:
parent
d85bbc9a4d
commit
06898f79ad
|
@ -87,11 +87,11 @@ class Server(stack_user.StackUser):
|
|||
)
|
||||
|
||||
ATTRIBUTES = (
|
||||
SHOW, ADDRESSES, NETWORKS_ATTR, FIRST_ADDRESS, INSTANCE_NAME,
|
||||
ACCESSIPV4, ACCESSIPV6,
|
||||
NAME_ATTR, SHOW, ADDRESSES, NETWORKS_ATTR, FIRST_ADDRESS,
|
||||
INSTANCE_NAME, ACCESSIPV4, ACCESSIPV6,
|
||||
) = (
|
||||
'show', 'addresses', 'networks', 'first_address', 'instance_name',
|
||||
'accessIPv4', 'accessIPv6',
|
||||
'name', 'show', 'addresses', 'networks', 'first_address',
|
||||
'instance_name', 'accessIPv4', 'accessIPv6',
|
||||
)
|
||||
|
||||
properties_schema = {
|
||||
|
@ -308,6 +308,9 @@ class Server(stack_user.StackUser):
|
|||
}
|
||||
|
||||
attributes_schema = {
|
||||
NAME_ATTR: attributes.Schema(
|
||||
_('Name of the server.')
|
||||
),
|
||||
SHOW: attributes.Schema(
|
||||
_('A dict of all server details as returned by the API.')
|
||||
),
|
||||
|
@ -625,6 +628,8 @@ class Server(stack_user.StackUser):
|
|||
LOG.warn(_('Instance (%(server)s) not found: %(ex)s')
|
||||
% {'server': self.resource_id, 'ex': ex})
|
||||
return ''
|
||||
if name == self.NAME_ATTR:
|
||||
return self._server_name()
|
||||
if name == self.ADDRESSES:
|
||||
return self._add_port_for_address(server)
|
||||
if name == self.NETWORKS_ATTR:
|
||||
|
|
|
@ -188,8 +188,10 @@ class ServersTest(HeatTestCase):
|
|||
def test_server_create(self):
|
||||
return_server = self.fc.servers.list()[1]
|
||||
return_server.id = '5678'
|
||||
server = self._create_test_server(return_server,
|
||||
'test_server_create')
|
||||
server_name = 'test_server_create'
|
||||
stack_name = '%s_s' % server_name
|
||||
server = self._create_test_server(return_server, server_name)
|
||||
|
||||
# this makes sure the auto increment worked on server creation
|
||||
self.assertTrue(server.id > 0)
|
||||
|
||||
|
@ -230,6 +232,10 @@ class ServersTest(HeatTestCase):
|
|||
self.assertEqual('sample-server2', server.FnGetAtt('instance_name'))
|
||||
self.assertEqual('192.0.2.0', server.FnGetAtt('accessIPv4'))
|
||||
self.assertEqual('::babe:4317:0A83', server.FnGetAtt('accessIPv6'))
|
||||
|
||||
expected_name = utils.PhysName(stack_name, server.name)
|
||||
self.assertEqual(expected_name, server.FnGetAtt('name'))
|
||||
|
||||
self.m.VerifyAll()
|
||||
|
||||
def test_server_create_metadata(self):
|
||||
|
@ -267,8 +273,9 @@ class ServersTest(HeatTestCase):
|
|||
def test_server_create_with_image_id(self):
|
||||
return_server = self.fc.servers.list()[1]
|
||||
return_server.id = '5678'
|
||||
server_name = 'test_server_create_image_id'
|
||||
server = self._setup_test_server(return_server,
|
||||
'test_server_create_image_id',
|
||||
server_name,
|
||||
image_id='1',
|
||||
override_name=True)
|
||||
|
||||
|
@ -309,6 +316,8 @@ class ServersTest(HeatTestCase):
|
|||
self.assertIn(
|
||||
server.FnGetAtt('first_address'), (private_ip, public_ip))
|
||||
|
||||
self.assertEqual(server_name, server.FnGetAtt('name'))
|
||||
|
||||
self.m.VerifyAll()
|
||||
|
||||
def test_server_create_image_name_err(self):
|
||||
|
|
Loading…
Reference in New Issue