Fixes personality support in Rackspace ASG resource

The Rackspace ASG API expects server personality to be defined
as an Array of dicts. It was being passed as a flat dict which
caused all creations of ASG resources to fail if a personality
was defined.

Change-Id: Idf0c1e8898a613f9b979312e080200dcc28cc7e9
Closes-Bug: #1322675
This commit is contained in:
Chris Roberts 2014-05-23 08:34:10 -07:00
parent 9ba541b9ee
commit df1aa8281d
2 changed files with 8 additions and 3 deletions
contrib/rackspace/rackspace

@ -282,8 +282,9 @@ class Group(resource.Resource):
disk_config=server_args.get(
self.LAUNCH_CONFIG_ARGS_SERVER_DISK_CONFIG),
metadata=server_args.get(self.GROUP_CONFIGURATION_METADATA),
personality=server_args.get(
self.LAUNCH_CONFIG_ARGS_SERVER_PERSONALITY),
personality=[
{'path': k, 'contents': v} for k, v in server_args.get(
self.LAUNCH_CONFIG_ARGS_SERVER_PERSONALITY).items()],
networks=server_args.get(self.LAUNCH_CONFIG_ARGS_SERVER_NETWORKS),
load_balancers=lbs,
key_name=server_args.get(self.LAUNCH_CONFIG_ARGS_SERVER_KEY_NAME),

@ -191,6 +191,8 @@ class ScalingGroupTest(HeatTestCase):
key_name: my-key
metadata:
server: metadata
personality:
/tmp/testfile: "dGVzdCBjb250ZW50"
networks:
- uuid: "00000000-0000-0000-0000-000000000000"
- uuid: "11111111-1111-1111-1111-111111111111"
@ -234,7 +236,9 @@ class ScalingGroupTest(HeatTestCase):
'name': 'My Group',
'networks': [{'uuid': '00000000-0000-0000-0000-000000000000'},
{'uuid': '11111111-1111-1111-1111-111111111111'}],
'personality': None,
'personality': [{
'path': u'/tmp/testfile',
'contents': u'dGVzdCBjb250ZW50'}],
'server_name': u'autoscaled-server'},
self.fake_auto_scale.groups['0'].kwargs)