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