Skip to content

Commit

Permalink
ISSUE-2824 Adding user_data to rackspace provider
Browse files Browse the repository at this point in the history
  • Loading branch information
Yann Hamon authored and Yann Hamon committed Apr 15, 2014
1 parent a194336 commit ae7abdf
Show file tree
Hide file tree
Showing 2 changed files with 14 additions and 2 deletions.
10 changes: 10 additions & 0 deletions lib/fog/rackspace/models/compute_v2/server.rb
Expand Up @@ -117,6 +117,11 @@ class Server < Fog::Compute::Server
# @see http://docs.rackspace.com/servers/api/v2/cs-devguide/content/config_drive_ext.html
attribute :config_drive

# @!attribute [rw] user_data
# @return [Boolean] User-data
# @see http://docs.rackspace.com/servers/api/v2/cs-devguide/content/config_drive_ext.html
attribute :user_data

# @!attribute [r] bandwidth
# @return [Array] The amount of bandwidth used for the specified audit period.
# @see http://docs.rackspace.com/servers/api/v2/cs-devguide/content/ch_extensions.html#bandwidth_extension
Expand Down Expand Up @@ -246,6 +251,7 @@ def create(options)
modified_options[:metadata] = metadata.to_hash unless @metadata.nil?
modified_options[:personality] = personality unless personality.nil?
modified_options[:config_drive] = config_drive unless config_drive.nil?
modified_options[:user_data] = user_data_encoded unless user_data_encoded.nil?
modified_options[:key_name] ||= attributes[:key_name]

if modified_options[:networks]
Expand Down Expand Up @@ -594,6 +600,10 @@ def adminPass=(new_admin_pass)
def password_lock
"passwd -l #{username}" unless attributes[:no_passwd_lock]
end

def user_data_encoded
self.user_data.nil? ? nil : [self.user_data].pack('m')
end
end
end
end
Expand Down
6 changes: 4 additions & 2 deletions lib/fog/rackspace/requests/compute_v2/create_server.rb
Expand Up @@ -30,6 +30,8 @@ class Real
# * networks [Array]:
# * [Hash]:
# * uuid [String] - uuid of attached network
# * config_drive [Boolean]: Wether to use a config drive or not
# * user_data [String]: User data for cloud init
# @raise [Fog::Compute::RackspaceV2::NotFound] - HTTP 404
# @raise [Fog::Compute::RackspaceV2::BadRequest] - HTTP 400
# @raise [Fog::Compute::RackspaceV2::InternalServerError] - HTTP 500
Expand Down Expand Up @@ -57,8 +59,8 @@ def create_server(name, image_id, flavor_id, min_count, max_count, options = {})
data['server']['OS-DCF:diskConfig'] = options[:disk_config] unless options[:disk_config].nil?
data['server']['metadata'] = options[:metadata] unless options[:metadata].nil?
data['server']['personality'] = options[:personality] unless options[:personality].nil?
data['server']['config_drive'] = options[:config_drive] unless
options[:config_drive].nil?
data['server']['config_drive'] = options[:config_drive] unless options[:config_drive].nil?
data['server']['user_data'] = options[:user_data] unless options[:user_data].nil?
data['server']['networks'] = options[:networks] || [
{ :uuid => '00000000-0000-0000-0000-000000000000' },
{ :uuid => '11111111-1111-1111-1111-111111111111' }
Expand Down

0 comments on commit ae7abdf

Please sign in to comment.