class OVH::Provisioner::CliDomain

Command line for domain (actually domain/zone)

Constants

SUBDOMAIN

options

TARGET
TTL
TYPE

Public Class Methods

exit_on_failure?() click to toggle source

Exit 1 on failure

# File lib/ovh/provisioner/cli_domain.rb, line 29
def self.exit_on_failure?
  true
end

Public Instance Methods

add(domain) click to toggle source
# File lib/ovh/provisioner/cli_domain.rb, line 77
def add(domain)
  spawner = Provisioner.init(options)
  zones = spawner.get('DomainZone', domain).list
  return unless check_zone_input(domain, zones, false)

  zone = zones.first
  add_record(zone, options)
end
add_record(zone, options) click to toggle source
# File lib/ovh/provisioner/cli_domain.rb, line 112
def add_record(zone, options)
  sub = options['subdomain']
  type = options['type'].upcase
  target = options['target']
  ttl = options['ttl']
  Cli.ask_validation(
    "You are going to add a record to #{zone.id}:",
    "  #{APIObject::Record.print(zone, sub, ttl, type, target)}"
  )
  puts zone.add_record(sub, type, target, ttl)
end
check_zone_input(search, zones, allow_many = true) click to toggle source
# File lib/ovh/provisioner/cli_domain.rb, line 99
def check_zone_input(search, zones, allow_many = true)
  ok = true
  if zones.empty?
    puts "No registered services of your account match #{search}"
    ok = false
  end
  if !allow_many && zones.size > 1
    puts "Need one zone, got many: #{zones.map(&:id)}"
    ok = false
  end
  ok
end
list(*targets) click to toggle source
# File lib/ovh/provisioner/cli_domain.rb, line 63
def list(*targets)
  spawner = Provisioner.init(options)
  puts spawner.get('DomainZone', *Cli.all(targets)).format
end
rm(domain) click to toggle source
# File lib/ovh/provisioner/cli_domain.rb, line 88
def rm(domain)
  spawner = Provisioner.init(options)
  zones = spawner.get('DomainZone', domain).list
  return unless check_zone_input(domain, zones, false)

  zone = zones.first
  matches = zone.filter_records(Provisioner.config)
  rm_records(zone, matches)
end
rm_records(zone, matches) click to toggle source
# File lib/ovh/provisioner/cli_domain.rb, line 124
def rm_records(zone, matches)
  if matches.list.empty?
    puts 'Nothing to do…'
  else
    Cli.ask_validation(
      "You are going to remove theses zones from #{zone.id}:",
      zone.details(matches).lines[1..-1].join('')
    )
    puts zone.rm_records(matches)
  end
end
show(domain) click to toggle source
# File lib/ovh/provisioner/cli_domain.rb, line 69
def show(domain)
  spawner = Provisioner.init(options)
  zones = spawner.get('DomainZone', domain).list
  zones.each { |z| puts z.details } if check_zone_input(domain, zones)
end