class RightScaleCLI::Instances

Public Class Methods

banner(task, namespace = true, subcommand = false) click to toggle source
new(*args) click to toggle source
Calls superclass method
# File lib/rightscale_cli/instances.rb, line 25
def initialize(*args)
  super
  @client = RightScaleCLI::Client.new(options)
  @logger = RightScaleCLI::Logger.new()
end

Public Instance Methods

list() click to toggle source
# File lib/rightscale_cli/instances.rb, line 50
def list()
  filter = []
  filter.push("datacenter_href==#{options[:datacenter]}") if options[:datacenter]
  filter.push("deployment_href==#{options[:deployment]}") if options[:deployment]
  filter.push("name==#{options[:private_ip]}") if options[:name]
  filter.push("os_platform==#{options[:os]}") if options[:os]
  filter.push("parent_href==#{options[:parent]}") if options[:parent]
  filter.push("private_dns_name==#{options[:private_dns]}") if options[:private_dns]
  filter.push("private_ip_address==#{options[:private_ip]}") if options[:private_ip]
  filter.push("public_dns==#{options[:public_dns]}") if options[:public_dns]
  filter.push("public_ip_address==#{options[:public_ip]}") if options[:public_ip]
  filter.push("resource_uid==#{options[:resource_uid]}") if options[:resource_uid]
  filter.push("server_template_href==#{options[:server_template]}") if options[:server_template]
  filter.push("state==#{options[:state]}") if options[:state]

  @logger.debug "filter: #{filter}" if options[:debug]

  instances = []
  @client.client.clouds(:id => options[:cloud]).show.instances(:filter => filter).index.each do |instance|
    instance_href = instance.href
    instance = instance.raw
    instance['href'] = instance_href
    instances.push(instance)
  end
  @client.render(instances, 'instances')
end
run_exec(exec_type, exec_identifier) click to toggle source
# File lib/rightscale_cli/instances.rb, line 98
def run_exec(exec_type, exec_identifier)
  params = {}
  filter = []

  if exec_type == 'recipe'
    params['recipe_name'] = exec_identifier
  elsif exec_type == 'rightscript'
    params['right_script_href'] = "/api/right_scripts/#{exec_identifier}"
  end

  filter.push("datacenter_href==#{options[:datacenter]}") if options[:datacenter]
  filter.push("deployment_href==#{options[:deployment]}") if options[:deployment]
  filter.push("name==#{options[:private_ip]}") if options[:name]
  filter.push("os_platform==#{options[:os]}") if options[:os]
  filter.push("parent_href==#{options[:parent]}") if options[:parent]
  filter.push("private_dns_name==#{options[:private_dns]}") if options[:private_dns]
  filter.push("private_ip_address==#{options[:private_ip]}") if options[:private_ip]
  filter.push("public_dns==#{options[:public_dns]}") if options[:public_dns]
  filter.push("public_ip_address==#{options[:public_ip]}") if options[:public_ip]
  filter.push("resource_uid==#{options[:resource_uid]}") if options[:resource_uid]
  filter.push("server_template_href==#{options[:server_template]}") if options[:server_template]
  filter.push("state==#{options[:state]}") if options[:state]

  params['filter'] = filter
  @logger.debug "filter: #{filter}" if options[:debug]
  @logger.debug "params: #{params}" if options[:debug]
  
  @client.client.clouds(:id => options[:cloud]).show.instances.multi_run_executable(params)
end
show(instance_id) click to toggle source
# File lib/rightscale_cli/instances.rb, line 79
def show(instance_id)
  filter = []
  @client.render(@client.client.clouds(:id => options[:cloud]).show.instances.index(:id => instance_id).show.raw, 'instance')
end