class Deployment
API 1.0
Public Class Methods
create(opts)
click to toggle source
# File lib/rest_connection/rightscale/deployment.rb, line 44 def self.create(opts) location = connection.post(self.resource_plural_name, self.resource_singular_name.to_sym => opts) newrecord = self.new('href' => location) newrecord.reload newrecord end
filters()
click to toggle source
# File lib/rest_connection/rightscale/deployment.rb, line 33 def self.filters [:description, :nickname] end
Public Instance Methods
clone()
click to toggle source
# File lib/rest_connection/rightscale/deployment.rb, line 104 def clone deploy_href = URI.parse(self.href) Deployment.new(:href => connection.post(deploy_href.path + "/duplicate")) end
destroy(wait_for_servers = nil)
click to toggle source
# File lib/rest_connection/rightscale/deployment.rb, line 109 def destroy(wait_for_servers = nil) deploy_href = URI.parse(self.href) if wait_for_servers servers_no_reload.each { |s| s.wait_for_state("stopped") } end connection.delete(deploy_href.path) end
duplicate()
click to toggle source
# File lib/rest_connection/rightscale/deployment.rb, line 100 def duplicate clone end
reload()
click to toggle source
# File lib/rest_connection/rightscale/deployment.rb, line 37 def reload uri = URI.parse(self.href) @params ? @params.merge!(connection.get(uri.path)) : @params = connection.get(uri.path) @params['cloud_id'] = cloud_id @params end
servers()
click to toggle source
# File lib/rest_connection/rightscale/deployment.rb, line 93 def servers # this populates extra information about the servers servers_no_reload.each do |s| s.reload end end
servers_no_reload()
click to toggle source
Function iterates over each server in hash and calls for appropiate object creation, (Server
or McServer
), from ServerInteraface.
@return [Hash] servers
# File lib/rest_connection/rightscale/deployment.rb, line 66 def servers_no_reload connection.logger("WARNING: No Servers in the Deployment!") if @params['servers'].empty? unless @params['servers'].reduce(true) { |bool,s| bool && s.is_a?(ServerInterface) } @params['servers'].map! do |s| # Create a temporary, legacy type server for each server in deployment. id = s['href'].match(/(\d{6,})$/)[0] serv = Server[id.to_i] # Query for settings. AWS servers will return valid details, Generics won't. cloud_id = nil begin settings = serv.first.settings cloud_id = settings['cloud_id'] puts "Cloud id #{cloud_id} found for server #{id.to_s}, assuming AWS server" rescue puts "Settings not returned from server #{id.to_s}, using API 1.0 call, assuming Generic server" end # Now we pass on cloud_id, it will be nil for generic servers, of a valid number for AWS servers ServerInterface.new(cloud_id, s, self.rs_id) end end @params['servers'] end
set_input(name, value)
click to toggle source
# File lib/rest_connection/rightscale/deployment.rb, line 56 def set_input(name, value) deploy_href = URI.parse(self.href) connection.put(deploy_href.path, :deployment => {:parameters => {name => value} }) end
set_inputs(hash = {})
click to toggle source
# File lib/rest_connection/rightscale/deployment.rb, line 51 def set_inputs(hash = {}) deploy_href = URI.parse(self.href) connection.put(deploy_href.path, :deployment => {:parameters => hash }) end
start_all()
click to toggle source
# File lib/rest_connection/rightscale/deployment.rb, line 117 def start_all deploy_href = URI.parse(self.href) connection.post(deploy_href.path + "/start_all") end
stop_all()
click to toggle source
# File lib/rest_connection/rightscale/deployment.rb, line 122 def stop_all deploy_href = URI.parse(self.href) connection.post(deploy_href.path + "/stop_all") end