class Docli::Droplets

Public Class Methods

create_new_droplets(argv) click to toggle source
# File lib/docli/create_new_droplets.rb, line 3
def self.create_new_droplets argv

        options = {}

        opt_parser = OptionParser.new do |opt|
                opt.banner = "Usage: docli droplets create [OPTIONS]"
                opt.separator  ""
                opt.separator  "Commands"
                opt.separator  "     create: create new droplets on DigitalOcean"
                opt.separator  ""
                opt.separator  "Options"
                opt.on("-f", "--file ", "create from YAML config file") do |file|
                        options[:file_config] = file
                end
                opt.on( "-n ", "--name ", "droplets name (require for the hostname of droplets" ) do |name|
                        options[:name] = name
                end
                opt.on("-r ", "--region ", "define region, default NYC1") do |region|
                        options[:region] = region
                end
                opt.on("-s ", "--size ", "define size of droplets, exp: 512mb, 1gb... default 512mb") do |s|
                        options[:size] = s
                end
                opt.on("-i ", "--image ", "define image name or image id on DO, default 21669205 - Ubuntu 16x04") do |i|
                        options[:image] = i
                end
                opt.on("--ipv6 ", "turn on or off ipv6 on droplets [true or false], default true") do |ipv6|
                        options[:ipv6] = ipv6
                end
                opt.on("-v ", "--volumes ", "define block storage will attach to droplets support one per one") do |volumes|
                        options[:volumes] = volumes
                end
                opt.on("-m ", "--monitoring ", "true or false: enable monitoring in new droplets") do |monitoring|
                        options[:monitoring] = monitoring
                end
                opt.on("-u ", "--user-data ", "Add command or cloud config on first boot droplets") do |user_data|
                        options[:user_data] = user_data
                end
                opt.on("-p", "--private-networking", "true or false: enable private network eth") do |priv_network|
                        options[:private_networing] = priv_network
                end
                opt.on("-b", "--backups", "true or false: enabled auto backup") do |backups|
                        options[:backups] = backups
                end
                opt.on("-t ", "--tags ", Array, "Add tags to droplets") do |tags|
                        options[:tags] = tags
                end
                opt.on("-h", "--help", "show help message") do
                        puts opt_parser
                        exit
                end
        end

        opt_parser.parse!
        if options[:name].nil? && options[:file_config].nil?
                puts "Please specify the name of droplet".red
                puts opt_parser
                exit
        elsif options[:name].nil? && !File.exists?(options[:file_config])
                puts "Please specify file that you want to use for creation".red
                puts opt_parser
                exit
        end
        Cmd::NewDroplets.create_new_droplets options
end