class Maas::Client::CLI
Attributes
conn[R]
DO NOT DUPLICATE EXISTING 'maas' COMMAND.
Public Class Methods
new(*args)
click to toggle source
Calls superclass method
# File lib/maas/client/cli.rb, line 12 def initialize(*args) super @conn = init_rbmaas end
Public Instance Methods
clear(resource)
click to toggle source
# File lib/maas/client/cli.rb, line 32 def clear(resource) case resource when 'dns' domains = [] conn.request(:get, ['dnsresources']).each do |d| if d['ip_addresses'] == [] or d['ip_addresses'][0]['ip'] == nil domains << {id: d['id'], fqdn: d['fqdn']} end end if domains == [] puts "There is no dnsresource to clear." return nil end domains.each do |d| puts "Deleting #{d[:fqdn]}..." # use Thor basic functions such as 'ask' or 'say' answer = ask( 'Do you really want to delete this?', :echo => true, :limited_to => ['y', 'n'] ) case answer when 'y' conn.request(:delete, ['dnsresources', d[:id].to_s]) when 'n' puts "Canceling to delete #{d[:fqdn]}..." end end else puts "To clear #{resource} is not available." end end
generate(resource)
click to toggle source
# File lib/maas/client/cli.rb, line 68 def generate(resource) # clear dnsresources before generation invoke :clear, ['dns'] case resource when 'hosts' records = [] conn.request(:get, ['dnsresources']).each do |d| records << { ip: d['ip_addresses'][0]['ip'], fqdn: d['fqdn'] } end conn.request(:get, ['machines']).each do |m| if m['ip_addresses'] != [] records << { ip: m['ip_addresses'][0], fqdn: m['fqdn'] } end end records.sort_by! { |h| h[:fqdn] } domain = conn.request(:get, ['domains'])[0]['name'] to_slice = ".#{domain}" records.each do |r| hostname = r[:fqdn].gsub(to_slice, '') # to except the records for physical interfaces # such as eth0.10.foo.example.com if hostname.split('.').length < 3 printf "%-20s %-20s %s\n", r[:ip], hostname, r[:fqdn] end end puts "# Updated date: #{Time.now.to_s}" else puts "To generate #{resource} is not available." end end
init_rbmaas()
click to toggle source
# File lib/maas/client/cli.rb, line 18 def init_rbmaas if File.exists?(Maas::Client::Config.config[:conf_file]) Maas::Client::Config.set_config Maas::Client::MaasClient.new( Maas::Client::Config.config[:maas][:key], Maas::Client::Config.config[:maas][:url] ) else Maas::Client::Config.init_config end end