Class: AwsCli::CLI::EC2::Instances

Inherits:
Thor
  • Object
show all
Defined in:
lib/awscli/cli/ec2/instances.rb

Instance Method Summary collapse

Instance Method Details

#console_outputObject



288
289
290
291
# File 'lib/awscli/cli/ec2/instances.rb', line 288

def console_output
  create_ec2_object
  @ec2.get_console_output options[:instance_id]
end

#createObject



185
186
187
188
# File 'lib/awscli/cli/ec2/instances.rb', line 185

def create
  create_ec2_object
  @ec2.create_instance options
end

#create_centosObject



197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
# File 'lib/awscli/cli/ec2/instances.rb', line 197

def create_centos
  create_ec2_object
  centos_amis    = {
      'us-east-1'       => 'ami-a96b01c0',  #Virginia
      'us-west-1'       => 'ami-51351b14',  #Northern California
      'us-west-2'       => 'ami-bd58c98d',  #Oregon
      'eu-west-1'       => 'ami-050b1b71',  #Ireland
      'ap-southeast-1'  => 'ami-23682671',  #Singapore
      'ap-southeast-2'  => 'ami-ffcd5ec5',  #Sydney
      'ap-northeast-1'  => 'ami-3fe8603e',  #Tokyo
      'sa-east-1'       => 'ami-e2cd68ff',  #Sao Paulo
  }
  @ec2.create_instance  :image_id             => centos_amis[parent_options[:region]],
                        :block_device_mapping => %w(/dev/sda=:100:true::),
                        :groups               => options[:groups],
                        :flavor_id            => options[:flavor_id],
                        :key_name             => options[:key_name],
                        :tags                 => options[:tags],
                        :count                => options[:count],
                        :wait_for             => options[:wait_for]
end

#create_ubuntuObject



226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
# File 'lib/awscli/cli/ec2/instances.rb', line 226

def create_ubuntu
  create_ec2_object
  ubuntu_amis    = {
      'us-east-1'       => 'ami-9b85eef2',  #Virginia
      'us-west-1'       => 'ami-9b2d03de',  #Northern California
      'us-west-2'       => 'ami-77be2f47',  #Oregon
      'eu-west-1'       => 'ami-f5736381',  #Ireland
      'ap-southeast-1'  => 'ami-085b155a',  #Singapore
      'ap-southeast-2'  => 'ami-37c0530d',  #Sydney
      'ap-northeast-1'  => 'ami-57109956',  #Tokyo
      'sa-east-1'       => 'ami-a4fb5eb9',  #Sao Paulo
  }
  @ec2.create_instance  :image_id             => ubuntu_amis[parent_options[:region]],
                        :block_device_mapping => %w(/dev/sda1=:100:true::),
                        :groups               => options[:groups],
                        :flavor_id            => options[:flavor_id],
                        :key_name             => options[:key_name],
                        :tags                 => options[:tags],
                        :count                => options[:count],
                        :wait_for             => options[:wait_for]

end

#diattObject



55
56
57
58
# File 'lib/awscli/cli/ec2/instances.rb', line 55

def diatt
  create_ec2_object
  @ec2.describe_instance_attribute(options[:id], options[:attr])
end

#dinsObject



108
109
110
111
# File 'lib/awscli/cli/ec2/instances.rb', line 108

def dins
  create_ec2_object
  @ec2.describe_instance_status options[:instance_id]
end

#listObject



26
27
28
29
30
31
# File 'lib/awscli/cli/ec2/instances.rb', line 26

def list
  puts "Listing Instances for region: #{parent_options[:region]}"
  create_ec2_object
  # puts parent_options #access awscli/cli/ec2.rb class options
  @ec2.list_instances
end

#list_allObject



34
35
36
37
38
39
40
# File 'lib/awscli/cli/ec2/instances.rb', line 34

def list_all
  Awscli::Instances::REGIONS.each do |region|
    puts "Listing instances for region: #{region}"
    ec2 = Awscli::EC2::EC2.new(Awscli::Connection.new.request_ec2 region)
    ec2.list_instances
  end
end

#list_regionsObject



16
17
18
# File 'lib/awscli/cli/ec2/instances.rb', line 16

def list_regions
  puts Awscli::Instances::REGIONS
end

#list_sizesObject



11
12
13
# File 'lib/awscli/cli/ec2/instances.rb', line 11

def list_sizes
  puts Awscli::Instances::INSTANCE_SIZES
end

#miattObject



74
75
76
77
78
79
80
81
82
83
84
85
# File 'lib/awscli/cli/ec2/instances.rb', line 74

def miatt
  create_ec2_object
  opts = Marshal.load(Marshal.dump(options))  #create a copy of options, as original options hash cannot be modified
  opts.reject!{ |k| k == 'id' } #remove id from opts
  abort "Please pass an attribute by setting respective option" unless opts
  abort "You can only pass one attribute at a time" if opts.size != 1
  opts.each do |k,v|
    puts "calling modify_instance_attribute with: #{options[:id]}, #{k}, #{opts[k]}"
    @ec2.modify_instance_attribute(options[:id], k, opts[k])
  end

end

#rebootObject



129
130
131
132
# File 'lib/awscli/cli/ec2/instances.rb', line 129

def reboot
  create_ec2_object
  @ec2.reboot_instance options[:instance_id]
end

#riattObject



91
92
93
# File 'lib/awscli/cli/ec2/instances.rb', line 91

def riatt
  puts "Not yet Implemented"
end

#startObject



254
255
256
257
# File 'lib/awscli/cli/ec2/instances.rb', line 254

def start
  create_ec2_object
  @ec2.start_instance options[:instance_id]
end

#stopObject



264
265
266
267
# File 'lib/awscli/cli/ec2/instances.rb', line 264

def stop
  create_ec2_object
  @ec2.stop_instance options[:instance_id]
end

#terminateObject



274
275
276
277
# File 'lib/awscli/cli/ec2/instances.rb', line 274

def terminate
  create_ec2_object
  @ec2.terminate_instance options[:instance_id]
end

#terminate_allObject



281
282
283
284
# File 'lib/awscli/cli/ec2/instances.rb', line 281

def terminate_all
  create_ec2_object
  @ec2.terminate_instances options[:delete_volumes]
end