Merge "Fix validation of server personality property"
This commit is contained in:
commit
a3fd611536
|
@ -1288,7 +1288,8 @@ class Server(stack_user.StackUser, sh.SchedulerHintsMixin,
|
||||||
"file size (%(max_size)s bytes).") %
|
"file size (%(max_size)s bytes).") %
|
||||||
{'path': path,
|
{'path': path,
|
||||||
'max_size': limits['maxPersonalitySize']})
|
'max_size': limits['maxPersonalitySize']})
|
||||||
self._check_maximum(len(bytes(contents.encode('utf-8'))),
|
self._check_maximum(len(bytes(contents.encode('utf-8'))
|
||||||
|
) if contents is not None else 0,
|
||||||
limits['maxPersonalitySize'], msg)
|
limits['maxPersonalitySize'], msg)
|
||||||
|
|
||||||
def _delete_temp_url(self):
|
def _delete_temp_url(self):
|
||||||
|
|
|
@ -123,6 +123,23 @@ resources:
|
||||||
- network: 4321
|
- network: 4321
|
||||||
"""
|
"""
|
||||||
|
|
||||||
|
server_with_sw_config_personality = """
|
||||||
|
heat_template_version: 2014-10-16
|
||||||
|
resources:
|
||||||
|
swconfig:
|
||||||
|
type: OS::Heat::SoftwareConfig
|
||||||
|
properties:
|
||||||
|
config: |
|
||||||
|
#!/bin/bash
|
||||||
|
echo -e "test"
|
||||||
|
server:
|
||||||
|
type: OS::Nova::Server
|
||||||
|
properties:
|
||||||
|
image: F17-x86_64-gold
|
||||||
|
flavor: m1.small
|
||||||
|
personality: { /tmp/test: { get_attr: [swconfig, config]}}
|
||||||
|
"""
|
||||||
|
|
||||||
|
|
||||||
class ServersTest(common.HeatTestCase):
|
class ServersTest(common.HeatTestCase):
|
||||||
def setUp(self):
|
def setUp(self):
|
||||||
|
@ -3000,6 +3017,24 @@ class ServersTest(common.HeatTestCase):
|
||||||
'file size (10240 bytes).', six.text_type(exc))
|
'file size (10240 bytes).', six.text_type(exc))
|
||||||
self.m.VerifyAll()
|
self.m.VerifyAll()
|
||||||
|
|
||||||
|
def test_server_validate_personality_get_attr_return_none(self):
|
||||||
|
stack_name = 'srv_val'
|
||||||
|
(tmpl, stack) = self._setup_test_stack(
|
||||||
|
stack_name, server_with_sw_config_personality)
|
||||||
|
resource_defns = tmpl.resource_definitions(stack)
|
||||||
|
server = servers.Server('server_create_image_err',
|
||||||
|
resource_defns['server'], stack)
|
||||||
|
self.m.StubOutWithMock(self.fc.limits, 'get')
|
||||||
|
self.fc.limits.get().MultipleTimes().AndReturn(self.limits)
|
||||||
|
|
||||||
|
self.m.StubOutWithMock(nova.NovaClientPlugin, '_create')
|
||||||
|
nova.NovaClientPlugin._create().AndReturn(self.fc)
|
||||||
|
self._mock_get_image_id_success('F17-x86_64-gold', 'image_id')
|
||||||
|
self.m.ReplayAll()
|
||||||
|
|
||||||
|
self.assertIsNone(server.validate())
|
||||||
|
self.m.VerifyAll()
|
||||||
|
|
||||||
def test_resolve_attribute_server_not_found(self):
|
def test_resolve_attribute_server_not_found(self):
|
||||||
return_server = self.fc.servers.list()[1]
|
return_server = self.fc.servers.list()[1]
|
||||||
server = self._create_test_server(return_server,
|
server = self._create_test_server(return_server,
|
||||||
|
|
Loading…
Reference in New Issue