class Cmd::NewDroplets
Public Class Methods
create_new_droplets(options)
click to toggle source
# File lib/cmd/create_new_droplets.rb, line 6 def self.create_new_droplets options @client = Cmd::Authen.client table = [] if options[:file_config] != nil if options[:name] != nil puts "Please specify the name of droplets into YAML config files, do not use both." exit end context = YAML.load(File.open(options[:file_config])) resource_first_key = context.keys[0] context[resource_first_key].reject!{ |k| k == "resource_type"}.each do |key, value| if value['specs']['user_data'].nil? || value['specs']['user_data']['files'].nil? && value['specs']['user_data']['scripts'].nil? user_data = nil else user_data = value['specs']['user_data']['files'].nil? ? value['specs']['user_data']['scripts'] : File.read(value['specs']['user_data']['files']) end if value['specs']['name'].length > 1 new_droplet = DropletKit::Droplet.new( names: value['specs']['name'], region: options[:region].nil? ? value['specs']['region'] : options[:region], size: options[:size].nil? ? value['specs']['size'] : options[:size], image: options[:image].nil? ? value['specs']['image'] : options[:image], ipv6: options[:ipv6].nil? ? value['specs']['ipv6'] : options[:ipv6], tags: options[:tags].nil? ? value['specs']['tags'] : options[:tags], backups: options[:backups].nil? ? value['specs']['backups'] : options[:backups], ssh_keys: options[:ssh_keys].nil? ? value['specs']['ssh_keys'] : options[:ssh_keys], private_networking: options[:private_networking].nil? ? value['specs']['private_networking'] : options[:private_networking], user_data: options[:user_data].nil? ? user_data : options[:user_data], volumes: options[:volumes].nil? ? value['specs']['volumes'] : options[:volumes] ) create_new_droplet = @client.droplets.create_multiple(new_droplet) create_new_droplet.each do |droplet| table << { :id => droplet.id, :name => droplet.name, :region => droplet.region.name, :size => droplet.size, :status => droplet.status } end else new_droplet = DropletKit::Droplet.new( name: value['specs']['name'][0], region: options[:region].nil? ? value['specs']['region'] : options[:region], size: options[:size].nil? ? value['specs']['size'] : options[:size], image: options[:image].nil? ? value['specs']['image'] : options[:image], ipv6: options[:ipv6].nil? ? value['specs']['ipv6'] : options[:ipv6], tags: options[:tags].nil? ? value['specs']['tags'] : options[:tags], backups: options[:backups].nil? ? value['specs']['backups'] : options[:backups], ssh_keys: options[:ssh_keys].nil? ? value['specs']['ssh_keys'] : options[:ssh_keys], private_networking: options[:private_networking].nil? ? value['specs']['private_networking'] : options[:private_networking], user_data: options[:user_data].nil? ? user_data : options[:user_data], volumes: options[:volumes].nil? ? value['specs']['volumes'] : options[:volumes] ) create_new_droplet = @client.droplets.create(new_droplet) table << { :id => create_new_droplet.id, :name => create_new_droplet.name, :region => create_new_droplet.region.name, :size => create_new_droplet.size, :status => create_new_droplet.status } end end else new_droplet = DropletKit::Droplet.new( name: options[:name], region: options[:region].nil? ? "nyc1" : options[:region], size: options[:size].nil? ? "512mb" : options[:size], image: options[:image].nil? ? "21669205" : options[:image], ipv6: options[:ipv6].nil? ? true : options[:ipv6], tags: options[:tags], backups: options[:backups].nil? ? true : options[:backups], ssh_keys: options[:ssh_keys], private_networking: options[:private_networking].nil? ? false : options[:private_networking], user_data: options[:user_data], volumes: options[:volumes] ) create_new_droplet = @client.droplets.create(new_droplet) table << { :id => create_new_droplet.id, :name => create_new_droplet.name, :region => create_new_droplet.region.name, :size => create_new_droplet.size, :status => create_new_droplet.status } end puts "Droplets create successfully".red if !table[0][:id].nil? tp table end
create_new_droplets_from_file(value)
click to toggle source
# File lib/cmd/create_new_droplets.rb, line 102 def self.create_new_droplets_from_file value @client = Cmd::Authen.client table = [] value.reject!{ |k| k == "resource_type"}.each do |key, value| if value['specs']['user_data'].nil? || value['specs']['user_data']['files'].nil? && value['specs']['user_data']['scripts'].nil? user_data = nil else user_data = value['specs']['user_data']['files'].nil? ? value['specs']['user_data']['scripts'] : File.read(value['specs']['user_data']['files']) end if value['specs']['name'].length > 1 new_droplet = DropletKit::Droplet.new( names: value['specs']['name'], region: value['specs']['region'], size: value['specs']['size'], image: value['specs']['image'], ipv6: value['specs']['ipv6'], tags: value['specs']['tags'], backups: value['specs']['backups'], ssh_keys: value['specs']['ssh_keys'], private_networking: value['specs']['private_networking'], user_data: user_data, volumes: value['specs']['volumes'] ) create_new_droplet = @client.droplets.create_multiple(new_droplet) create_new_droplet.each do |droplet| table << { :id => droplet.id, :name => droplet.name, :region => droplet.region.name, :size => droplet.size, :status => droplet.status } end else new_droplet = DropletKit::Droplet.new( name: value['specs']['name'][0], region: value['specs']['region'], size: value['specs']['size'], image: value['specs']['image'], ipv6: value['specs']['ipv6'], tags: value['specs']['tags'], backups: value['specs']['backups'], ssh_keys: value['specs']['ssh_keys'], private_networking: value['specs']['private_networking'], user_data: user_data, volumes: value['specs']['volumes'] ) create_new_droplet = @client.droplets.create(new_droplet) table << { :id => create_new_droplet.id, :name => create_new_droplet.name, :region => create_new_droplet.region.name, :size => create_new_droplet.size, :status => create_new_droplet.status } end end puts "Droplets create successfully".red if !table[0][:id].nil? tp table end