Merge "Fix validation of server personality property"

This commit is contained in:
Jenkins 2016-01-12 12:54:20 +00:00 committed by Gerrit Code Review
commit a3fd611536
2 changed files with 37 additions and 1 deletions

View File

@ -1288,7 +1288,8 @@ class Server(stack_user.StackUser, sh.SchedulerHintsMixin,
"file size (%(max_size)s bytes).") %
{'path': path,
'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)
def _delete_temp_url(self):

View File

@ -123,6 +123,23 @@ resources:
- 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):
def setUp(self):
@ -3000,6 +3017,24 @@ class ServersTest(common.HeatTestCase):
'file size (10240 bytes).', six.text_type(exc))
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):
return_server = self.fc.servers.list()[1]
server = self._create_test_server(return_server,