module Docli class Create < SubcommandBase def self.help(*args) super puts <<-INSTRUCTION Examples: docli create -f resources.yaml # Create resources from YAML file INSTRUCTION end method_option :filename, aliases: '-f', desc: 'Filename to use to create the resource' def initialize(args = [], local_options = {}, config = {}) puts "`create droplet` called with options: #{options}" if Docli.debug? super if options[:filename] puts "create -f called with options: #{options}" if Docli.debug? config = YAML.load(File.open(options[:filename])) puts "YAML Loaded:" puts config exit end end desc 'droplet', 'Create a droplet' method_option :name , aliases: '-n', desc: 'droplet name (require for the hostname of droplets', required: true method_option :region , aliases: '-r', desc: 'droplet region', default: 'NYC1' method_option :size , aliases: '-s', desc: 'size of droplet, ex: 512mb, 1gb ...', default: '512mb' method_option :image , aliases: '-i', desc: 'mage name or image id', default: 'Ubuntu 16x04' method_option :user_data , aliases: '-u', desc: 'add command or cloud config on first boot' method_option :ipv6 , desc: 'turn on or off ipv6', type: :boolean, default: true method_option :private_networking, aliases: '-p', desc: 'turn on or off private networking', type: :boolean, lazy_default: true method_option :monitoring , aliases: '-m', desc: 'turn on or off monitoring', type: :boolean, lazy_default: true method_option :backups , aliases: '-b', desc: 'turn on or off auto backup', type: :boolean, lazy_default: true method_option :tags , aliases: '-t', desc: 'add tags', type: :array # method_options :volumes, :ssh_keys .... # TODO: consider to enable these options def droplet droplet_obj = DropletKit::Droplet.new(options) Docli.client.droplets.create(droplet_obj) tp( :id => droplet_obj.id, :name => droplet_obj.name, :region => droplet_obj.region.name, :size => droplet_obj.size, :status => droplet_obj.status ) end end end