Added Cloud Init user data parameter

* In the request object
* Added user_data to rebuild server domain
* Fixed PEP8 issues
* Behaviour user_data added
* Client user_data added
* Changed ordering of elements

Change-Id: I9aa63286d04dbc38b157575bf594e30101a5df70
This commit is contained in:
ivo5307
2013-09-13 13:24:48 -05:00
parent 6785a2c3e9
commit 9a0b45ed15
3 changed files with 31 additions and 12 deletions

View File

@@ -38,9 +38,10 @@ class ServerBehaviors(BaseBehavior):
self.flavors_config = flavors_config
def create_active_server(self, name=None, image_ref=None, flavor_ref=None,
personality=None, metadata=None, accessIPv4=None,
accessIPv6=None, disk_config=None, networks=None,
key_name=None, config_drive=None):
personality=None, user_data=None,
metadata=None, accessIPv4=None, accessIPv6=None,
disk_config=None, networks=None, key_name=None,
config_drive=None):
"""
@summary:Creates a server and waits for server to reach active status
@param name: The name of the server.
@@ -54,6 +55,8 @@ class ServerBehaviors(BaseBehavior):
@param personality: A list of dictionaries for files to be
injected into the server.
@type personality: List
@param user_data: Config Init User data
@type user_data: String
@param config_drive: Config Drive flag
@type config_drive: String
@param accessIPv4: IPv4 address for the server.
@@ -77,6 +80,7 @@ class ServerBehaviors(BaseBehavior):
resp = self.servers_client.create_server(name, image_ref,
flavor_ref,
personality=personality,
user_data=user_data,
config_drive=config_drive,
metadata=metadata,
accessIPv4=accessIPv4,

View File

@@ -160,9 +160,9 @@ class ServersClient(AutoMarshallingRestClient):
return resp
def create_server(self, name, image_ref, flavor_ref, personality=None,
metadata=None, accessIPv4=None, accessIPv6=None,
disk_config=None, networks=None, admin_pass=None,
key_name=None, config_drive=None,
user_data=None, metadata=None, accessIPv4=None,
accessIPv6=None, disk_config=None, networks=None,
admin_pass=None, key_name=None, config_drive=None,
requestslib_kwargs=None):
"""
@summary: Creates an instance of a server given the
@@ -178,6 +178,8 @@ class ServersClient(AutoMarshallingRestClient):
@param personality: A list of dictionaries for files to be
injected into the server.
@type personality: List
@param user_data: Config Init User data
@type user_data: String
@param accessIPv4: IPv4 address for the server.
@type accessIPv4: String
@param accessIPv6: IPv6 address for the server.
@@ -193,7 +195,8 @@ class ServersClient(AutoMarshallingRestClient):
server_request_object = CreateServer(
name=name, flavor_ref=flavor_ref, image_ref=image_ref,
personality=personality, metadata=metadata, accessIPv4=accessIPv4,
personality=personality, user_data=user_data,
metadata=metadata, accessIPv4=accessIPv4,
accessIPv6=accessIPv6, disk_config=disk_config, networks=networks,
admin_pass=admin_pass, key_name=key_name,
config_drive=config_drive)
@@ -310,7 +313,8 @@ class ServersClient(AutoMarshallingRestClient):
def rebuild(self, server_id, image_ref, name=None,
admin_pass=None, disk_config=None, metadata=None,
personality=None, accessIPv4=None, accessIPv6=None,
personality=None, user_data=None,
accessIPv4=None, accessIPv6=None,
key_name=None, requestslib_kwargs=None):
"""
@summary: Rebuilds the server
@@ -328,6 +332,8 @@ class ServersClient(AutoMarshallingRestClient):
@type metadata: Dictionary
@param personality:The file path and file contents
@type personality: String
@param user_data: Config Init User data
@type user_data: String
@param accessIPv4:The IP version 4 address.
@type accessIPv4: String
@param accessIPv6:The IP version 6 address
@@ -344,6 +350,7 @@ class ServersClient(AutoMarshallingRestClient):
disk_config=disk_config,
metadata=metadata,
personality=personality,
user_data=user_data,
accessIPv4=accessIPv4,
accessIPv6=accessIPv6,
key_name=key_name)

View File

@@ -26,8 +26,8 @@ class CreateServer(AutoMarshallingModel):
def __init__(self, name, image_ref, flavor_ref, admin_pass=None,
disk_config=None, metadata=None, personality=None,
accessIPv4=None, accessIPv6=None, networks=None,
key_name=None, config_drive=None):
user_data=None, accessIPv4=None, accessIPv6=None,
networks=None, key_name=None, config_drive=None):
super(CreateServer, self).__init__()
self.name = name
@@ -37,6 +37,7 @@ class CreateServer(AutoMarshallingModel):
self.admin_pass = admin_pass
self.metadata = metadata
self.personality = personality
self.user_data = user_data
self.accessIPv4 = accessIPv4
self.accessIPv6 = accessIPv6
self.networks = networks
@@ -54,6 +55,7 @@ class CreateServer(AutoMarshallingModel):
'accessIPv4': self.accessIPv4,
'accessIPv6': self.accessIPv6,
'personality': self.personality,
'user_data': self.user_data,
'networks': self.networks,
'key_name': self.key_name,
'config_drive': self.config_drive
@@ -91,6 +93,8 @@ class CreateServer(AutoMarshallingModel):
personality_ele = ET.Element('personality')
personality_ele.append(Personality._obj_to_xml(self.personality))
element.append(personality_ele)
if self.user_data is not None:
element.set('user_data', self.user_data)
if self.accessIPv4 is not None:
element.set('accessIPv4', self.accessIPv4)
if self.accessIPv6 is not None:
@@ -193,8 +197,8 @@ class Rebuild(AutoMarshallingModel):
def __init__(self, name, image_ref, admin_pass=None,
disk_config=None, metadata=None, personality=None,
accessIPv4=None, accessIPv6=None, networks=None,
key_name=None):
user_data=None, accessIPv4=None, accessIPv6=None,
networks=None, key_name=None):
super(Rebuild, self).__init__()
self.name = name
self.image_ref = image_ref
@@ -202,6 +206,7 @@ class Rebuild(AutoMarshallingModel):
self.admin_pass = admin_pass
self.metadata = metadata
self.personality = personality
self.user_data = user_data
self.accessIPv4 = accessIPv4
self.accessIPv6 = accessIPv6
self.networks = networks
@@ -217,6 +222,7 @@ class Rebuild(AutoMarshallingModel):
'accessIPv4': self.accessIPv4,
'accessIPv6': self.accessIPv6,
'personality': self.personality,
'user_data': self.user_data,
'networks': self.networks,
'key_name': self.key_name
}
@@ -252,6 +258,8 @@ class Rebuild(AutoMarshallingModel):
personality_ele = ET.Element('personality')
personality_ele.append(Personality._obj_to_xml(self.personality))
element.append(personality_ele)
if self.user_data is not None:
element.set('user_data', self.user_data)
if self.accessIPv4 is not None:
element.set('accessIPv4', self.accessIPv4)
if self.accessIPv6 is not None: