chef-provisioner 0.1.4 → 0.1.5

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: cdbca2477c98ef6259c33f2d8e7b7046340e655e
4
- data.tar.gz: 4d0065c4ef99661341f375aab2c2881ce944e9fe
3
+ metadata.gz: ade17022da3a8becf1b3138e2a5ea7ba531cd744
4
+ data.tar.gz: 86982d7f331dbaaff77ed1adcf800cee7a8d502a
5
5
  SHA512:
6
- metadata.gz: d1a60f82a92143ffead765827837723235c978ca4e3afcc981b735ffaa192bbfd25f4c8a2482417203bc0e251b9ee4a06f78ecfad979b65e5ba0f119f7e58a51
7
- data.tar.gz: 3094c6f7102704a21ffc19174063252b941e7d96dd079e200aa4b74ee4b1ec100fe7ef99ca3cace7a2a8126c6f871484eb14ab0b2088dd01a10da706956f8b65
6
+ metadata.gz: ac71c3996744f8d12bac476566719029e9e6e6a061bb2fcab8e22f604be47265a54eceb66fb8e12309b1cb1df71726ac7e95a3f622bf811ed8696989b9794441
7
+ data.tar.gz: 9fbc07de9aaca5d8a8a851976eb7de21cd5ac4c20cc01d9d6802e5b9d3e90008845324f8bce09d6c5e23792075ea2e5aab786e623b71bdd35ae881a5f59707a0
@@ -9,13 +9,13 @@ module ChefProvisioner
9
9
  extend self
10
10
  BOOTSTRAP_TEMPLATE = File.read(File.expand_path('../templates/bootstrap.erb', __FILE__)).freeze
11
11
 
12
- def generate(node_name: '', chef_version: '12.4.1', environment: nil, server: '', first_boot: {}, reinstall: false, audit: false)
12
+ def generate(node_name: '', chef_version: '12.4.1', environment: nil, server: '', first_boot: {}, reinstall: false, audit: false, force: false, retries: 0)
13
13
  node_name = node_name.strip
14
14
  server = ChefAPI.endpoint if server.empty?
15
15
  run_list = first_boot[:run_list] if first_boot[:run_list] # FIXME - symbolize keys instead of the dup here
16
16
  run_list = first_boot['run_list'] if first_boot['run_list']
17
- client_pem = ChefProvisioner::Chef.init_server(node_name, run_list: (run_list || []))
18
17
  first_boot.merge!( fqdn: node_name, chef_client: {config: {chef_server_url: server}} )
18
+ client_pem = get_client_key(node_name, run_list, force, retries)
19
19
  render(node_name: node_name, client_pem: client_pem, chef_version: chef_version, environment: environment, server: server, first_boot: first_boot, reinstall: reinstall, audit: audit)
20
20
  end
21
21
 
@@ -24,5 +24,16 @@ module ChefProvisioner
24
24
  def render(**kwargs)
25
25
  ERB.new(BOOTSTRAP_TEMPLATE).result(OpenStruct.new(**kwargs).instance_eval { binding })
26
26
  end
27
+
28
+ def get_client_key(node_name, run_list, force, retries)
29
+ client_pem = ''
30
+ attempts = 0
31
+ while client_pem.empty? && attempts < retries
32
+ client_pem = ChefProvisioner::Chef.init_server(node_name, run_list: (run_list || []), force: force)
33
+ attempts += 1
34
+ sleep(5)
35
+ end
36
+ client_pem
37
+ end
27
38
  end
28
39
  end
@@ -16,9 +16,10 @@ module ChefProvisioner
16
16
  end
17
17
  end
18
18
 
19
- def init_server(name, attributes:{}, run_list:[])
20
- key = create_client(name)
21
- create_node(name, attributes: attributes, run_list: run_list)
19
+ def init_server(name, attributes:{}, run_list:[], force: false)
20
+ nuke(name) if force
21
+ key = create_client(name) || ''
22
+ create_node(name, attributes: attributes, run_list: run_list, force: force) unless key.empty?
22
23
  key
23
24
  end
24
25
 
@@ -1,4 +1,4 @@
1
1
  # Namespace for our gem
2
2
  module ChefProvisioner
3
- VERSION = '0.1.4'
3
+ VERSION = '0.1.5'
4
4
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: chef-provisioner
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 0.1.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dale Hamel
@@ -112,9 +112,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
112
112
  version: '0'
113
113
  requirements: []
114
114
  rubyforge_project:
115
- rubygems_version: 2.4.6
115
+ rubygems_version: 2.4.8
116
116
  signing_key:
117
117
  specification_version: 4
118
118
  summary: Bootstrap against a chef-zero server
119
119
  test_files: []
120
- has_rdoc: