Sha256: 278260a47561f6c69fb33bc89e21f17f6e8fb64ef0060781dcf75e095c638c0d

Contents?: true

Size: 1.76 KB

Versions: 16

Compression:

Stored size: 1.76 KB

Contents

#!/usr/bin/env ruby

# Very basic example of how to terminate a given instance in a given environment.
# For more info visit http://developer.engineyard.com

require 'ey-core'
require 'optparse'
require 'yaml'

options = {}
OptionParser.new do |opts|
  opts.banner = "Usage: terminate_instance.rb [options]"

  opts.on('-a', '--account NAME', 'Account name') { |v| options[:account_name] = v }
  opts.on('-e', '--environment NAME', 'Environment name') { |v| options[:environment_name] = v }
  opts.on('-n', '--iname NAME', 'Instance name') { |v| options[:instance_name] = v }

end.parse!

# Token comes from '~/.eyrc'
eyrc = YAML.load_file(File.expand_path("~/.eyrc"))

client = Ey::Core::Client.new(token: eyrc['api_token'])

# Account name as shown in cloud.engineyard.com
account = client.accounts.first(name: options[:account_name])

# Environment's name
environment = account.environments.first(name: options[:environment_name])

# Instance's name
instance_name = options[:instance_name]

puts "Terminating instance #{instance_name} on environment #{environment.name}...."

servers = environment.servers.select{|s| s.name == instance_name}
if !servers then
  puts "Couldn't find instance #{instance_name} on environment #{environment.name}!!!!"
  puts "Check cloud.engineyard.com for more details"
  exit
end

server = servers[0]
deprovision_request = server.destroy
if !deprovision_request then
  puts "Termination of instance #{instance_name} FAILED!!!!"
  puts "Check cloud.engineyard.com for more details"
  exit
end

# Terminating the instance with a timeout of 1200sec (20min) as a ballpark figure.
# Adjust as necessary depending of the size/role of the instance.
deprovision_request.ready!(1200)

puts "*"
puts "Instance #{instance_name} terminated successfully"
puts "-------------------"

Version data entries

16 entries across 16 versions & 1 rubygems

Version Path
ey-core-3.2.6 examples/terminate_instance.rb
ey-core-3.2.5 examples/terminate_instance.rb
ey-core-3.2.4 examples/terminate_instance.rb
ey-core-3.2.3 examples/terminate_instance.rb
ey-core-3.2.2 examples/terminate_instance.rb
ey-core-3.2.1 examples/terminate_instance.rb
ey-core-3.2.0 examples/terminate_instance.rb
ey-core-3.1.11 examples/terminate_instance.rb
ey-core-3.1.10 examples/terminate_instance.rb
ey-core-3.1.9 examples/terminate_instance.rb
ey-core-3.1.8 examples/terminate_instance.rb
ey-core-3.1.7 examples/terminate_instance.rb
ey-core-3.1.6 examples/terminate_instance.rb
ey-core-3.1.5 examples/terminate_instance.rb
ey-core-3.1.4 examples/terminate_instance.rb
ey-core-3.1.3 examples/terminate_instance.rb