gogetit 0.1.17 → 0.1.18

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: ca859fe7f0c344a0ad35f1399333d27f3f3b11cb
4
- data.tar.gz: 4d0757c1c6f19b488bf6157489a1a957c0a74556
3
+ metadata.gz: 82fb5713fad52b472d154eab5830a5696a2ac5d3
4
+ data.tar.gz: 63bb2a42d787401965222e72c09eeac25b3aeabd
5
5
  SHA512:
6
- metadata.gz: a680c6c19100699ce2bc19fd1a044feda8dd1c5a603f6edda604bee59c24e8592bfed2f96ce943f112d34358a16a6a94657d52df00db1bd667ac55a54e490606
7
- data.tar.gz: 1e97fab0260788dde245d94080eebf5de13384a27aaa752c9f7ea0649fdb28d3eb183fdc5eb30e5e541b78ada7de6ab21d8e9419a64a48fd0fcc4be268bfe653
6
+ metadata.gz: d2e43782f172ee97bdf3b8fe0d3c0bd65b2fe4fb1a93818a162698b950bb31b5a5b4f9ad8329651648e24b71c5c3541c4b8c8a546c666644ff26ee1034a09ce8
7
+ data.tar.gz: ff932ec49672bcb2a828a4337df3daf052be6aa5c274fa4849a6caba224c96f6027d31e27fa9540ee05ef895ae9571b4277a002825ef728ed65eb98354acb20e
data/Gemfile CHANGED
@@ -5,3 +5,5 @@ gemspec
5
5
 
6
6
  #gem 'etcd-rb', :path => '../etcd-rb'
7
7
  #gem 'maas-client', :path => '../maas-client'
8
+
9
+ gem 'faraday', '~> 0.9.0'
@@ -0,0 +1,4 @@
1
+ #!/bin/bash
2
+
3
+ git config --global user.name "Don Draper"
4
+ git config --global user.email "donoldfashioned@gmail.com"
@@ -1,8 +1,10 @@
1
1
  require 'thor'
2
2
  require 'gogetit'
3
+ require 'util'
3
4
 
4
5
  module Gogetit
5
6
  class CLI < Thor
7
+ include Gogetit::Util
6
8
  package_name 'Gogetit'
7
9
 
8
10
  desc 'list', 'List containers and instances, running currently.'
@@ -15,15 +17,17 @@ module Gogetit
15
17
  end
16
18
 
17
19
  desc 'create (TYPE) NAME', 'Create either a container or KVM domain.'
18
- def create(type=nil, name)
20
+ def create(type='lxd', name)
19
21
  case type
20
- when 'lxd', nil
22
+ when 'lxd'
21
23
  Gogetit.lxd.create(name)
22
24
  when 'libvirt'
23
25
  Gogetit.libvirt.create(name)
24
26
  else
25
- puts 'Invalid argument entered'
27
+ abort('Invalid argument entered.')
26
28
  end
29
+ # post-tasks
30
+ knife_bootstrap(name, type, Gogetit.config)
27
31
  Gogetit.config[:default][:user] ||= ENV['USER']
28
32
  puts "ssh #{Gogetit.config[:default][:user]}@#{name}"
29
33
  end
@@ -33,12 +37,16 @@ module Gogetit
33
37
  type = Gogetit.get_provider_of(name)
34
38
  if type
35
39
  case type
36
- when 'lxd', nil
40
+ when 'lxd'
37
41
  Gogetit.lxd.destroy(name)
38
42
  when 'libvirt'
39
43
  Gogetit.libvirt.destroy(name)
44
+ else
45
+ abort('Invalid argument entered.')
40
46
  end
41
47
  end
48
+ # post-tasks
49
+ knife_remove(name)
42
50
  end
43
51
 
44
52
  desc 'rebuild NAME', 'Destroy and create either a container or KVM domain again.'
@@ -1,3 +1,3 @@
1
1
  module Gogetit
2
- VERSION = "0.1.17"
2
+ VERSION = "0.1.18"
3
3
  end
@@ -13,6 +13,11 @@ lxd:
13
13
  - my_favorite_bridge
14
14
  libvirt:
15
15
  url: qemu+ssh://WHOAMI@kvm.example.com/system
16
+ chef:
17
+ bootstrap:
18
+ install_script:
19
+ libvirt: http://chef.example.com/install_chef_script.sh
20
+ lxd: http://chef.example.com/install_chef_script_for_lxd.sh
16
21
 
17
22
  # To configure LXD remote
18
23
  # lxc remote add host_name host_fqdn --accept-certificate
@@ -1,8 +1,36 @@
1
+ require 'mkmf'
1
2
  require 'net/ssh'
2
3
  require 'active_support/core_ext/hash'
3
4
 
4
5
  module Gogetit
5
6
  module Util
7
+ def knife_bootstrap(name, type, config)
8
+ if find_executable 'knife'
9
+ if system('knife ssl check')
10
+ install_cmd = "curl \
11
+ -l #{config[:chef][:bootstrap][:install_script][type.to_sym]} \
12
+ | sudo bash -s --"
13
+ knife_cmd = "knife bootstrap -y #{name} \
14
+ --node-name #{name} \
15
+ --ssh-user ubuntu \
16
+ --sudo \
17
+ --bootstrap-install-command \"#{install_cmd}\""
18
+ system(knife_cmd)
19
+ end
20
+ end
21
+ end
22
+
23
+ def knife_remove(name)
24
+ if find_executable 'knife'
25
+ if system('knife ssl check')
26
+ puts "Deleting node #{name}.."
27
+ system("knife node delete -y #{name}")
28
+ puts "Deleting client #{name}.."
29
+ system("knife client delete -y #{name}")
30
+ end
31
+ end
32
+ end
33
+
6
34
  def recognize_env
7
35
  thedir = 'lib/env'
8
36
  gateway = get_gateway(4)
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.1.17
4
+ version: 0.1.18
5
5
  platform: ruby
6
6
  authors:
7
7
  - Don Draper
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-07-24 00:00:00.000000000 Z
11
+ date: 2017-07-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -200,6 +200,7 @@ files:
200
200
  - README.md
201
201
  - Rakefile
202
202
  - bin/console
203
+ - bin/git_autoconfig.sh
203
204
  - bin/gogetit
204
205
  - bin/setup
205
206
  - gogetit.gemspec
@@ -240,7 +241,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
240
241
  version: '0'
241
242
  requirements: []
242
243
  rubyforge_project:
243
- rubygems_version: 2.6.12
244
+ rubygems_version: 2.6.11
244
245
  signing_key:
245
246
  specification_version: 4
246
247
  summary: Libraries with a CLI tool for dealing with things like MAAS, LXD and Libvirt.