puppetdb_foreman 1.0.4 → 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/models/puppetdb_foreman/host_extensions.rb +31 -6
- data/app/models/setting/puppetdb.rb +26 -2
- data/lib/puppetdb_foreman/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 4442df53231ba6c0098bfa2bc9773fada6549e61
|
4
|
+
data.tar.gz: 5fec4a311d6e1878d8c6a56bc33b9b84166bae15
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: beb7c7e7ae56a366877ef6db40c4ca3863aabc1c429d8b38a7b312cd0690fbe01d19f85457b56bd23cb73501b8126658f66cff521ea3b2d1cbf0ed5da1905b32
|
7
|
+
data.tar.gz: 61744f43af61f238a8c6eb039c6816e82d11d7a998ccf81af79016ab4ed6a621cb40f640f9cabdf3f9e7ff73ba74ff12b99445bd521440cddfd06a30114910f0
|
@@ -14,22 +14,47 @@ module PuppetdbForeman
|
|
14
14
|
uri = URI.parse(Setting[:puppetdb_address])
|
15
15
|
req = Net::HTTP::Post.new(uri.path)
|
16
16
|
req['Accept'] = 'application/json'
|
17
|
-
req.
|
17
|
+
req.content_type = 'application/json'
|
18
|
+
|
18
19
|
res = Net::HTTP.new(uri.host, uri.port)
|
19
20
|
res.use_ssl = uri.scheme == 'https'
|
20
21
|
if res.use_ssl?
|
21
|
-
if Setting[:
|
22
|
-
res.ca_file = Setting[:
|
22
|
+
if Setting[:puppetdb_ssl_ca_file]
|
23
|
+
res.ca_file = Setting[:puppetdb_ssl_ca_file]
|
23
24
|
res.verify_mode = OpenSSL::SSL::VERIFY_PEER
|
24
25
|
else
|
25
26
|
res.verify_mode = OpenSSL::SSL::VERIFY_NONE
|
26
27
|
end
|
27
|
-
if Setting[:
|
28
|
-
|
29
|
-
res.
|
28
|
+
if Setting[:puppetdb_ssl_certificate] &&
|
29
|
+
Setting[:puppetdb_ssl_private_key]
|
30
|
+
res.cert = OpenSSL::X509::Certificate.new(
|
31
|
+
File.read(Setting[:puppetdb_ssl_certificate]))
|
32
|
+
res.key = OpenSSL::PKey::RSA.new(
|
33
|
+
File.read(Setting[:puppetdb_ssl_private_key]), nil)
|
30
34
|
end
|
35
|
+
|
36
|
+
end
|
37
|
+
|
38
|
+
if uri.path.start_with?("/pdb")
|
39
|
+
logger.debug "Using PuppetDB API v3"
|
40
|
+
req.body = {
|
41
|
+
"command" => "deactivate node",
|
42
|
+
"version" => 3,
|
43
|
+
"payload" => {
|
44
|
+
"certname" => name,
|
45
|
+
"producer_timestamp" => "#{Time.now.iso8601}"
|
46
|
+
}
|
47
|
+
}.to_json
|
48
|
+
else
|
49
|
+
logger.debug "Using PuppetDB API v1"
|
50
|
+
req.body = {
|
51
|
+
"command" => "deactivate node",
|
52
|
+
"version" => 1,
|
53
|
+
"payload" => name
|
54
|
+
}.to_json
|
31
55
|
end
|
32
56
|
res.start { |http| http.request(req) }
|
57
|
+
|
33
58
|
rescue => e
|
34
59
|
errors.add(:base, _("Could not deactivate host on PuppetDB: #{e}"))
|
35
60
|
end
|
@@ -6,11 +6,17 @@ class Setting::Puppetdb < ::Setting
|
|
6
6
|
default_enabled = SETTINGS[:puppetdb][:enabled]
|
7
7
|
default_address = SETTINGS[:puppetdb][:address]
|
8
8
|
default_dashboard_address = SETTINGS[:puppetdb][:dashboard_address]
|
9
|
+
default_ssl_ca_file= SETTINGS[:puppetdb][:ssl_ca_file]
|
10
|
+
default_ssl_certificate = SETTINGS[:puppetdb][:ssl_certificate]
|
11
|
+
default_ssl_private_key = SETTINGS[:puppetdb][:ssl_private_key]
|
9
12
|
end
|
10
13
|
|
11
14
|
default_enabled = false if default_enabled.nil?
|
12
|
-
default_address ||= 'https://puppetdb:8081/
|
13
|
-
default_dashboard_address ||= 'http://puppetdb:8080/dashboard'
|
15
|
+
default_address ||= 'https://puppetdb:8081/pdb/cmd/v1'
|
16
|
+
default_dashboard_address ||= 'http://puppetdb:8080/pdb/dashboard'
|
17
|
+
default_ssl_ca_file ||= "#{SETTINGS[:ssl_ca_file]}"
|
18
|
+
default_ssl_certificate ||= "#{SETTINGS[:ssl_certificate]}"
|
19
|
+
default_ssl_private_key ||= "#{SETTINGS[:ssl_priv_key]}"
|
14
20
|
|
15
21
|
Setting.transaction do
|
16
22
|
[
|
@@ -29,5 +35,23 @@ class Setting::Puppetdb < ::Setting
|
|
29
35
|
self.set('puppetdb_dashboard_address', _('Foreman will proxy PuppetDB Performance Dashboard requests to this address'), default_dashboard_address)
|
30
36
|
].compact.each { |s| self.create s.update(:category => 'Setting::Puppetdb')}
|
31
37
|
end
|
38
|
+
|
39
|
+
Setting.transaction do
|
40
|
+
[
|
41
|
+
self.set('puppetdb_ssl_ca_file', _('Foreman will send PuppetDB requests with this CA file'), default_ssl_ca_file)
|
42
|
+
].compact.each { |s| self.create s.update(:category => 'Setting::Puppetdb')}
|
43
|
+
end
|
44
|
+
|
45
|
+
Setting.transaction do
|
46
|
+
[
|
47
|
+
self.set('puppetdb_ssl_certificate', _('Foreman will send PuppetDB requests with this certificate file'), default_ssl_certificate)
|
48
|
+
].compact.each { |s| self.create s.update(:category => 'Setting::Puppetdb')}
|
49
|
+
end
|
50
|
+
|
51
|
+
Setting.transaction do
|
52
|
+
[
|
53
|
+
self.set('puppetdb_ssl_private_key', _('Foreman will send PuppetDB requests with this key file'), default_ssl_private_key)
|
54
|
+
].compact.each { |s| self.create s.update(:category => 'Setting::Puppetdb')}
|
55
|
+
end
|
32
56
|
end
|
33
57
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: puppetdb_foreman
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 2.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Daniel Lobato Garcia
|
@@ -47,7 +47,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
47
47
|
version: '0'
|
48
48
|
requirements: []
|
49
49
|
rubyforge_project:
|
50
|
-
rubygems_version: 2.5.
|
50
|
+
rubygems_version: 2.4.5.1
|
51
51
|
signing_key:
|
52
52
|
specification_version: 4
|
53
53
|
summary: This is a Foreman plugin to interact with PuppetDB.
|