Add user data and config drive properties
Added these missing properties and upgraded the client library requirements to support them. This upgrade breaks Swift compatability, but we don't need to override that client any more anyway, so client registration for Swift-via-pyrax is also removed. Change-Id: I8e07092adf58da2a39330789fb170986176f47e3 Closes-Bug: 1336498
This commit is contained in:
@@ -89,6 +89,8 @@ class Group(resource.Resource):
|
||||
LAUNCH_CONFIG_ARGS_SERVER_NETWORKS,
|
||||
LAUNCH_CONFIG_ARGS_SERVER_DISK_CONFIG,
|
||||
LAUNCH_CONFIG_ARGS_SERVER_KEY_NAME,
|
||||
LAUNCH_CONFIG_ARGS_SERVER_USER_DATA,
|
||||
LAUNCH_CONFIG_ARGS_SERVER_CDRIVE
|
||||
) = (
|
||||
'name', 'flavorRef',
|
||||
'imageRef',
|
||||
@@ -97,6 +99,8 @@ class Group(resource.Resource):
|
||||
'networks',
|
||||
'diskConfig', # technically maps to OS-DCF:diskConfig
|
||||
'key_name',
|
||||
'user_data',
|
||||
'config_drive'
|
||||
)
|
||||
|
||||
_LAUNCH_CONFIG_ARGS_SERVER_NETWORK_KEYS = (
|
||||
@@ -155,6 +159,14 @@ class Group(resource.Resource):
|
||||
properties.Schema.MAP,
|
||||
_('File path and contents.')
|
||||
),
|
||||
LAUNCH_CONFIG_ARGS_SERVER_CDRIVE: properties.Schema(
|
||||
properties.Schema.BOOLEAN,
|
||||
_('Enable config drive on the instance.')
|
||||
),
|
||||
LAUNCH_CONFIG_ARGS_SERVER_USER_DATA: properties.Schema(
|
||||
properties.Schema.STRING,
|
||||
_('User data for bootstrapping the instance.')
|
||||
),
|
||||
LAUNCH_CONFIG_ARGS_SERVER_NETWORKS: properties.Schema(
|
||||
properties.Schema.LIST,
|
||||
_('Networks to attach to. If unspecified, the instance '
|
||||
@@ -278,6 +290,10 @@ class Group(resource.Resource):
|
||||
if personality:
|
||||
personality = [{'path': k, 'contents': v} for k, v in
|
||||
personality.items()]
|
||||
user_data = server_args.get(self.LAUNCH_CONFIG_ARGS_SERVER_USER_DATA)
|
||||
cdrive = (server_args.get(self.LAUNCH_CONFIG_ARGS_SERVER_CDRIVE) or
|
||||
bool(user_data is not None and len(user_data.strip())))
|
||||
|
||||
return dict(
|
||||
launch_config_type=launchconf[self.LAUNCH_CONFIG_TYPE],
|
||||
server_name=server_args[self.GROUP_CONFIGURATION_NAME],
|
||||
@@ -286,6 +302,8 @@ class Group(resource.Resource):
|
||||
disk_config=server_args.get(
|
||||
self.LAUNCH_CONFIG_ARGS_SERVER_DISK_CONFIG),
|
||||
metadata=server_args.get(self.GROUP_CONFIGURATION_METADATA),
|
||||
config_drive=cdrive,
|
||||
user_data=user_data,
|
||||
personality=personality,
|
||||
networks=server_args.get(self.LAUNCH_CONFIG_ARGS_SERVER_NETWORKS),
|
||||
load_balancers=lbs,
|
||||
|
||||
@@ -99,7 +99,7 @@ class FakeAutoScale(object):
|
||||
"""Update the launch configuration on a scaling group."""
|
||||
allowed = ['launch_config_type', 'server_name', 'image', 'flavor',
|
||||
'disk_config', 'metadata', 'personality', 'networks',
|
||||
'load_balancers', 'key_name']
|
||||
'load_balancers', 'key_name', 'user_data', 'config_drive']
|
||||
self._check_args(kwargs, allowed)
|
||||
self._get_group(group_id).kwargs = kwargs
|
||||
|
||||
@@ -223,6 +223,8 @@ class ScalingGroupTest(common.HeatTestCase):
|
||||
self.assertEqual(
|
||||
{
|
||||
'cooldown': 60,
|
||||
'config_drive': False,
|
||||
'user_data': None,
|
||||
'disk_config': None,
|
||||
'flavor': 'flavor-ref',
|
||||
'image': 'image-ref',
|
||||
@@ -287,6 +289,8 @@ Resources:
|
||||
self.assertEqual(
|
||||
{
|
||||
'cooldown': 60,
|
||||
'config_drive': False,
|
||||
'user_data': None,
|
||||
'disk_config': None,
|
||||
'flavor': 'flavor-ref',
|
||||
'image': 'image-ref',
|
||||
|
||||
@@ -1 +1 @@
|
||||
pyrax>=1.8.2
|
||||
pyrax>=1.9.2
|
||||
|
||||
@@ -36,7 +36,6 @@ heat.clients =
|
||||
glance = rackspace.clients:RackspaceGlanceClient
|
||||
nova = rackspace.clients:RackspaceNovaClient
|
||||
trove = rackspace.clients:RackspaceTroveClient
|
||||
swift = rackspace.clients:RackspaceSwiftClient
|
||||
|
||||
[global]
|
||||
setup-hooks =
|
||||
|
||||
Reference in New Issue
Block a user