mirror of
https://github.com/fog/fog.git
synced 2022-11-09 13:51:43 -05:00
Implemented bootstrap method for Rackspace Compute v2.
Added ability to set "metadata" and "personality" fields when creating a server on Rackspace Compute v2. Improved response parsing when dealing with Rackspace DNS service.
This commit is contained in:
parent
dc28c7be85
commit
ea179666a4
4 changed files with 17 additions and 2 deletions
|
@ -54,7 +54,7 @@ module Fog
|
|||
|
||||
def create
|
||||
requires :name, :image_id, :flavor_id
|
||||
data = connection.create_server(name, image_id, flavor_id, 1, 1)
|
||||
data = connection.create_server(name, image_id, flavor_id, 1, 1, attributes)
|
||||
merge_attributes(data.body['server'])
|
||||
true
|
||||
end
|
||||
|
|
|
@ -13,6 +13,13 @@ module Fog
|
|||
load(data)
|
||||
end
|
||||
|
||||
def bootstrap(new_attributes = {})
|
||||
server = create(new_attributes)
|
||||
server.wait_for { ready? }
|
||||
#server.setup(:password => server.password)
|
||||
server
|
||||
end
|
||||
|
||||
def get(server_id)
|
||||
data = connection.get_server(server_id).body['server']
|
||||
new(data)
|
||||
|
|
|
@ -1,5 +1,6 @@
|
|||
require 'fog/core/model'
|
||||
require 'fog/rackspace/models/dns/callback'
|
||||
require 'ipaddr'
|
||||
|
||||
module Fog
|
||||
module DNS
|
||||
|
@ -55,7 +56,12 @@ module Fog
|
|||
end
|
||||
|
||||
response = wait_for_job connection.add_records(@zone.identity, [options]).body['jobId']
|
||||
merge_attributes(response.body['response']['records'].select {|record| record['name'] == self.name && record['type'] == self.type && record['data'] == self.value}.first)
|
||||
|
||||
if ['A', 'AAAA'].include?(self.type.upcase)
|
||||
merge_attributes(response.body['response']['records'].select {|record| record['name'] == self.name && record['type'] == self.type && IPAddr.new(record['data']) == IPAddr.new(self.value)}.first)
|
||||
else
|
||||
merge_attributes(response.body['response']['records'].select {|record| record['name'] == self.name && record['type'] == self.type && record['data'] == self.value}.first)
|
||||
end
|
||||
true
|
||||
end
|
||||
|
||||
|
|
|
@ -14,6 +14,8 @@ module Fog
|
|||
}
|
||||
|
||||
data['server']['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?
|
||||
|
||||
request(
|
||||
:body => Fog::JSON.encode(data),
|
||||
|
|
Loading…
Reference in a new issue