class OVH::Provisioner::Cli
The command line runner
The command line runner
Constants
- NAME_DOMAIN
- NAME_SCHEME
Public Class Methods
all(targets)
click to toggle source
# File lib/ovh/provisioner/self_cli.rb, line 49 def self.all(targets) targets.empty? ? [''] : targets end
ask_validation(question, what = nil)
click to toggle source
# File lib/ovh/provisioner/self_cli.rb, line 30 def self.ask_validation(question, what = nil) say question say what unless what.nil? exit unless HighLine.agree('Do you want to proceed?') end
check_service_input(search, services, allow_many = true)
click to toggle source
# File lib/ovh/provisioner/self_cli.rb, line 36 def self.check_service_input(search, services, allow_many = true) ok = true if services.empty? puts "No registered services of your account match #{search}" ok = false end if !allow_many && services.size > 1 puts "Need one service, got many: #{services.map(&:id)}" ok = false end ok end
exit_on_failure?()
click to toggle source
Exit 1 on failure
# File lib/ovh/provisioner/self_cli.rb, line 26 def self.exit_on_failure? true end
Public Instance Methods
get(url)
click to toggle source
# File lib/ovh/provisioner/cli.rb, line 148 def get(url) Provisioner.init(options) puts Provisioner.client.get url end
init_rename(targets)
click to toggle source
# File lib/ovh/provisioner/cli.rb, line 163 def init_rename(targets) spawner = Provisioner.init(options) servers = spawner.get('DedicatedServer', *self.class.all(targets)) name_domain = Provisioner.config['name_domain'] domain = spawner.get('DomainZone', id: name_domain) [servers, domain] end
install(*targets)
click to toggle source
# File lib/ovh/provisioner/cli.rb, line 88 def install(*targets) spawner = Provisioner.init(options) servers = spawner.get('DedicatedServer', *self.class.all(targets)) self.class.ask_validation( 'You are going to (re)install those servers:', servers.format('install_status', 'flavor') ) servers.puts_each(:install) end
ipmi(*targets)
click to toggle source
# File lib/ovh/provisioner/cli.rb, line 135 def ipmi(*targets) spawner = Provisioner.init(options) servers = spawner.get('DedicatedServer', *self.class.all(targets)) list = servers.list unless list.size == 1 puts 'Please select one and only one target! You have targeted:' puts servers.format('flavor') exit 1 end list.first.ipmi end
list(*targets)
click to toggle source
# File lib/ovh/provisioner/cli.rb, line 52 def list(*targets) spawner = Provisioner.init(options) puts spawner .get('DedicatedServer', *self.class.all(targets)) .format('vrack', 'flavor') end
rename(*targets)
click to toggle source
# File lib/ovh/provisioner/cli.rb, line 112 def rename(*targets) servers, domain = init_rename(targets) # Add check on duplication? self.class.ask_validation( 'You are going to rename those servers:', servers.list.map do |s| " #{s.reverse} => #{s.newname}.#{domain.id}" end.join("\n") ) servers.puts_each(:rename, [domain]) puts 'To complete renaming, call "set_reverse" in a few minute' end
set_reverse(*targets)
click to toggle source
# File lib/ovh/provisioner/cli.rb, line 128 def set_reverse(*targets) # rubocop:disable Style/AccessorMethodName servers, domain = init_rename(targets) servers.puts_each(:define_reverse, [domain]) end
version()
click to toggle source
# File lib/ovh/provisioner/cli.rb, line 46 def version say "OVH Provisioner version #{OVH::Provisioner::VERSION}" end