fluke/devops-client/lib/devops-client/options/stack_options.rb
2015-08-28 17:09:08 +03:00

46 lines
1.4 KiB
Ruby

require "devops-client/options/common_options"
class StackOptions < CommonOptions
commands :create, :delete, :list, :show, :sync, :resources
def initialize args, def_options
super(args, def_options)
self.header = I18n.t("headers.stack")
self.banner_header = "stack"
self.list_params = ["[provider]", "[ec2|openstack]"]
self.show_params = ["STACK"]
self.delete_params = ["STACK"]
self.sync_params = ["STACK"]
self.resources_params = ["STACK"]
end
def create_options
self.options do |parser, options|
parser.banner << self.create_banner
parser.recognize_option_value(:provider, 'stack')
parser.recognize_option_value(:id, 'stack')
parser.recognize_option_value(:project, 'stack')
parser.recognize_option_value(:deploy_env, 'stack')
parser.recognize_option_value(:stack_template, 'stack')
parser.recognize_option_value(:parameters_file, 'stack')
parser.recognize_option_value(:run_list, 'stack')
parser.recognize_option_value(:without_bootstrap, 'stack', type: :switch, switch_value: true)
end
end
# QUESTION:
# Should we check options logic here, or in Handler, or in separate class?
extend_options_method :list_options do |options|
if args[2] == "provider" and args[3]
options[:given_provider] = args[3]
elsif args[2]
options[:given_provider] = args[2]
end
end
end