gogetit 0.13.7 → 0.14.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6dda85aa5e421897de8d583ad71cdd238628da7c
4
- data.tar.gz: a3f6b5950092f68d97dfdaf4b80b4af21da1140e
3
+ metadata.gz: '0069b408c8ca685e130a7e0d999dcada0260cd6d'
4
+ data.tar.gz: 823609fa164ac340398640d288ea7a186d398641
5
5
  SHA512:
6
- metadata.gz: 40e6318c1fc413d2387c5acba16946c65b62a1cb061b0a9f4c99b673ec7fe07850bfebdeaa7358f9c1a0d3199dd203d60707de85153c84137d612e034a1d2fab
7
- data.tar.gz: 379e92b58a605b12e73ab502a37478628318fa969ad0238517752761bd8ddde532357172819294b54cd6da20b92f8aa2c3a86ef1897bec66f5d121dfa501a290
6
+ metadata.gz: 40df33d8170177b3404c0aba7eb180624dd4d4f9a61ec656b557cf40ce2b6c2666a05cc443066cdeaad4bf4a6e94dc001ddcc215f763016a9bf9a249cbcc1878
7
+ data.tar.gz: c7821587c326c9ff112efb1d3cccd6a56c0bfe17409df63b60ef8e87e599d73a6e1cc0c5b4fb891bd061574a7b2bd89f09fa05f593b438783efbbdaea02fa85c
data/README.md CHANGED
@@ -37,6 +37,9 @@ $ gem install gogetit --no-ri --no-rdoc
37
37
  ## Usage
38
38
  ```bash
39
39
  gogetit list
40
+ gogetit list -out all
41
+ gogetit list -o custom
42
+
40
43
  gogetit create lxd01
41
44
  gogetit create lxd01 --provider lxd
42
45
 
@@ -16,4 +16,62 @@ module Gogetit
16
16
  @lxd = Gogetit::GogetLXD.new(config, maas, logger)
17
17
  @libvirt = Gogetit::GogetLibvirt.new(config, maas, logger)
18
18
 
19
+ def self.list_all_types
20
+ logger.debug("Calling <#{__method__.to_s}>")
21
+
22
+ nodes = []
23
+
24
+ # for LXD
25
+ conn = lxd.conn
26
+ config[:lxd][:nodes].each do |node|
27
+ puts "Listing LXC containers on #{node[:url]}..."
28
+
29
+ conn.containers.each do |con|
30
+ row = {}
31
+ row[:name] = conn.container(con).to_hash[:name]
32
+ row[:status] = conn.container_state(con).to_hash[:status].upcase
33
+ if conn.container_state(con).to_hash[:network] && \
34
+ conn.container_state(con).to_hash[:network][:eth0] && \
35
+ conn.container_state(con).to_hash[:network][:eth0][:addresses] && \
36
+ conn.container_state(con).to_hash[:network][:eth0][:addresses][0] && \
37
+ conn.container_state(con).to_hash[:network][:eth0][:addresses][0][:address]
38
+ row[:ipv4] = \
39
+ # only print the first IP address on the first interface
40
+ conn.container_state(con).to_hash[:network][:eth0][:addresses][0][:address]
41
+ else
42
+ row[:ipv4] = "NA"
43
+ end
44
+ row[:host] = node[:name]
45
+ row[:type] = 'LXC(LXD)'
46
+ nodes << row
47
+ end
48
+ end
49
+
50
+ # for Libvirt(KVM), machines in pods controlled by MAAS
51
+ conn = maas.conn
52
+ machines = conn.request(:get, ['machines'])
53
+ config[:libvirt][:nodes].each do |node|
54
+ puts "Listing KVM instances on #{node[:url]}..."
55
+ machines.each do |machine|
56
+ if machine['pod']['name'] == node[:name]
57
+ row = {}
58
+ row[:name] = machine['hostname']
59
+ row[:status] = machine['status_name']
60
+ if machine['interface_set'][0]['links'][0]['ip_address']
61
+ row[:ipv4] = machine['interface_set'][0]['links'][0]['ip_address']
62
+ else
63
+ row[:ipv4] = 'NA'
64
+ end
65
+ row[:host] = node[:name]
66
+ row[:type] = 'KVM(Libvirt)'
67
+ nodes << row
68
+ end
69
+ end
70
+ end
71
+
72
+ puts '-------------------------------------------------------------------------'
73
+ tp nodes, :name, :status, :ipv4, :host, :type
74
+ puts
75
+ end
76
+
19
77
  end
@@ -33,21 +33,23 @@ module Gogetit
33
33
  def list
34
34
  case options[:out]
35
35
  when 'custom'
36
- lxd.list_all_containers
36
+ Gogetit.list_all_types
37
37
  when 'all'
38
38
  config[:lxd][:nodes].each do |node|
39
39
  puts "Listing LXD containers on #{node[:url]}.."
40
40
  system("lxc list #{node[:name]}:")
41
41
  end
42
+ puts "Listing KVM domains on #{config[:libvirt][:nodes][0][:url]}.."
43
+ system("virsh -c #{config[:libvirt][:nodes][0][:url]} list --all")
42
44
  when ''
43
45
  puts "Listing LXD containers on #{config[:lxd][:nodes][0][:url]}.."
44
46
  system("lxc list #{config[:lxd][:nodes][0][:name]}:")
45
47
  puts ''
48
+ puts "Listing KVM domains on #{config[:libvirt][:nodes][0][:url]}.."
49
+ system("virsh -c #{config[:libvirt][:nodes][0][:url]} list --all")
46
50
  else
47
51
  puts "Invalid option or command"
48
52
  end
49
- puts "Listing KVM domains on #{config[:libvirt][:nodes][0][:url]}.."
50
- system("virsh -c #{config[:libvirt][:nodes][0][:url]} list --all")
51
53
  end
52
54
 
53
55
  desc 'create NAME', 'Create either a container or KVM domain.'
@@ -1,3 +1,3 @@
1
1
  module Gogetit
2
- VERSION = "0.13.7"
2
+ VERSION = "0.14.0"
3
3
  end
@@ -20,42 +20,6 @@ module Gogetit
20
20
  @logger = logger
21
21
  end
22
22
 
23
- def list_all_containers
24
- logger.debug("Calling <#{__method__.to_s}>")
25
-
26
- nodes = []
27
- config[:lxd][:nodes].each do |node|
28
- puts "Listing LXC containers on #{node[:url]}..."
29
-
30
- conn = Hyperkit::Client.new(
31
- api_endpoint: node[:url],
32
- verify_ssl: false
33
- )
34
-
35
- conn.containers.each do |con|
36
- row = {}
37
- row[:name] = conn.container(con).to_hash[:name]
38
- row[:status] = conn.container_state(con).to_hash[:status].upcase
39
- if conn.container_state(con).to_hash[:network] && \
40
- conn.container_state(con).to_hash[:network][:eth0] && \
41
- conn.container_state(con).to_hash[:network][:eth0][:addresses] && \
42
- conn.container_state(con).to_hash[:network][:eth0][:addresses][0] && \
43
- conn.container_state(con).to_hash[:network][:eth0][:addresses][0][:address]
44
- row[:ipv4] = \
45
- # only print the first IP address on the first interface
46
- conn.container_state(con).to_hash[:network][:eth0][:addresses][0][:address]
47
- else
48
- row[:ipv4] = "NA"
49
- end
50
- row[:host] = node[:name]
51
- nodes << row
52
- end
53
- end
54
- puts '-----------------------------------------------------------'
55
- tp nodes, :name, :status, :ipv4, :host
56
- puts
57
- end
58
-
59
23
  def list
60
24
  logger.info("Calling <#{__method__.to_s}>")
61
25
  conn.containers
@@ -2,24 +2,6 @@ default:
2
2
  user: ubuntu
3
3
  root_bridge: $root_bridge
4
4
 
5
- cloud_init:
6
- users:
7
- - name: usera
8
- gecos: usera
9
- sudo: ALL=(ALL) NOPASSWD:ALL
10
- groups: users, admin
11
- shell: /bin/bash
12
- lock_passwd: true
13
- ca_certs:
14
- - http://pki.example.com/site/root_ca.crt
15
- ssh_ca_public_key:
16
- key_url: http://pki.example.com/site/ssh_ca.pub
17
- key_path: /etc/ssh/ca.pub
18
- revocation_url: http://pki.example.com/site/ssh-revoked-keys
19
- revocation_path: /etc/ssh/ca.pub
20
- owner: root:root
21
- permissions: '0640'
22
-
23
5
  maas:
24
6
  key: K:E:Y
25
7
  url: http://maas.example.com/MAAS/api/2.0
@@ -72,3 +54,21 @@ chef:
72
54
  install_script:
73
55
  libvirt: http://chef.example.com/install_chef_script.sh
74
56
  lxd: http://chef.example.com/install_chef_script_for_lxd.sh
57
+
58
+ cloud_init:
59
+ users:
60
+ - name: usera
61
+ gecos: usera
62
+ sudo: ALL=(ALL) NOPASSWD:ALL
63
+ groups: users, admin
64
+ shell: /bin/bash
65
+ lock_passwd: true
66
+ ca_certs:
67
+ - http://pki.example.com/site/root_ca.crt
68
+ ssh_ca_public_key:
69
+ key_url: http://pki.example.com/site/ssh_ca.pub
70
+ key_path: /etc/ssh/ca.pub
71
+ revocation_url: http://pki.example.com/site/ssh-revoked-keys
72
+ revocation_path: /etc/ssh/ca.pub
73
+ owner: root:root
74
+ permissions: '0640'
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: gogetit
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.13.7
4
+ version: 0.14.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Don Draper
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2018-02-01 00:00:00.000000000 Z
11
+ date: 2018-02-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler