Class: Maas::Client::CLI
- Inherits:
-
Thor
- Object
- Thor
- Maas::Client::CLI
- Includes:
- Util
- Defined in:
- lib/maas/client/cli.rb
Instance Attribute Summary collapse
-
#conn ⇒ Object
readonly
Returns the value of attribute conn.
Instance Method Summary collapse
- #clear(resource) ⇒ Object
- #generate(resource) ⇒ Object
-
#initialize(*args) ⇒ CLI
constructor
A new instance of CLI.
Methods included from Util
Constructor Details
#initialize(*args) ⇒ CLI
Returns a new instance of CLI.
16 17 18 19 |
# File 'lib/maas/client/cli.rb', line 16 def initialize(*args) super @conn = init_rbmaas end |
Instance Attribute Details
#conn ⇒ Object (readonly)
Returns the value of attribute conn.
14 15 16 |
# File 'lib/maas/client/cli.rb', line 14 def conn @conn end |
Instance Method Details
#clear(resource) ⇒ Object
51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 |
# File 'lib/maas/client/cli.rb', line 51 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 == [] abort("There is no dnsresource to clear.") end domains.each do |d| puts "Deleting #{d[:fqdn]}..." conn.request(:delete, ['dnsresources', d[:id].to_s]) end else puts "To clear #{resource} is not available." end end |
#generate(resource) ⇒ Object
75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 |
# File 'lib/maas/client/cli.rb', line 75 def generate(resource) case resource when 'hosts' records = [] conn.request(:get, ['dnsresources']).each do |d| records << { ip: d['ip_addresses'][0]['ip'], fqdn: d['fqdn'] } 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 |