puppetserver-ca 2.5.0 → 2.6.0
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 +4 -4
- data/.travis.yml +2 -0
- data/lib/puppetserver/ca/utils/http_client.rb +28 -16
- data/lib/puppetserver/ca/version.rb +1 -1
- metadata +3 -3
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 78b8703a01de06ec5c4a6202f8341662452f4d33d37c1390b558556ce817253d
|
4
|
+
data.tar.gz: eea0c603eee53c14a82de6b80f263014ca76261eb39fa2b679031ad6ecc69b1f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 64ff93865e33b2dccd3f4308580278315d007b450611acdbb36631aabc9794d82b5f8973aa5872384f05146abe62dfa3290b5e3774f8816bafa4b70db7bf3fbc
|
7
|
+
data.tar.gz: 734dc57fa4e9f8ce390a966502ea8104cb7640aec4564759ca39c377fdaeb06ed8992fbab88dfa3ef5a2c24921e6400223e4bee2c902d0f4f92f676537f779c5
|
data/.travis.yml
CHANGED
@@ -10,17 +10,12 @@ module Puppetserver
|
|
10
10
|
# Utilities for doing HTTPS against the CA that wraps Net::HTTP constructs
|
11
11
|
class HttpClient
|
12
12
|
|
13
|
-
DEFAULT_HEADERS = {
|
14
|
-
'User-Agent' => 'PuppetserverCaCli',
|
15
|
-
'Content-Type' => 'application/json',
|
16
|
-
'Accept' => 'application/json'
|
17
|
-
}
|
18
|
-
|
19
13
|
attr_reader :store
|
20
14
|
|
21
15
|
# Not all connections require a client cert to be present.
|
22
16
|
# For example, when querying the status endpoint.
|
23
17
|
def initialize(logger, settings, with_client_cert: true)
|
18
|
+
@default_headers = make_headers(ENV['HOME'])
|
24
19
|
@logger = logger
|
25
20
|
@store = make_store(settings[:localcacert],
|
26
21
|
settings[:certificate_revocation],
|
@@ -52,7 +47,7 @@ module Puppetserver
|
|
52
47
|
# The Connection object should have HTTP verbs defined on it that take
|
53
48
|
# a body (and optional overrides). Returns whatever the block given returned.
|
54
49
|
def with_connection(url, &block)
|
55
|
-
request = ->(conn) { block.call(Connection.new(conn, url, @logger)) }
|
50
|
+
request = ->(conn) { block.call(Connection.new(conn, url, @logger, @default_headers)) }
|
56
51
|
|
57
52
|
begin
|
58
53
|
Net::HTTP.start(url.host, url.port,
|
@@ -68,7 +63,22 @@ module Puppetserver
|
|
68
63
|
|
69
64
|
private
|
70
65
|
|
71
|
-
|
66
|
+
def make_headers(home)
|
67
|
+
headers = {
|
68
|
+
'User-Agent' => 'PuppetserverCaCli',
|
69
|
+
'Content-Type' => 'application/json',
|
70
|
+
'Accept' => 'application/json'
|
71
|
+
}
|
72
|
+
|
73
|
+
token_path = "#{home}/.puppetlabs/token"
|
74
|
+
if File.exist?(token_path)
|
75
|
+
headers['X-Authentication'] = File.read(token_path)
|
76
|
+
end
|
77
|
+
|
78
|
+
headers
|
79
|
+
end
|
80
|
+
|
81
|
+
def load_with_errors(path, setting, &block)
|
72
82
|
begin
|
73
83
|
content = File.read(path)
|
74
84
|
block.call(content)
|
@@ -81,21 +91,23 @@ module Puppetserver
|
|
81
91
|
"Could not parse '#{setting}' at '#{path}'.\n" +
|
82
92
|
" OpenSSL returned: #{e.message}")
|
83
93
|
end
|
84
|
-
|
94
|
+
end
|
85
95
|
|
86
96
|
# Helper class that wraps a Net::HTTP connection, a HttpClient::URL
|
87
97
|
# and defines methods named after HTTP verbs that are called on the
|
88
98
|
# saved connection, returning a Result.
|
89
99
|
class Connection
|
90
|
-
|
100
|
+
|
101
|
+
def initialize(net_http_connection, url_struct, logger, default_headers)
|
91
102
|
@conn = net_http_connection
|
92
103
|
@url = url_struct
|
93
104
|
@logger = logger
|
105
|
+
@default_headers = default_headers
|
94
106
|
end
|
95
107
|
|
96
|
-
def get(url_overide = nil,
|
108
|
+
def get(url_overide = nil, header_overrides = {})
|
97
109
|
url = url_overide || @url
|
98
|
-
headers =
|
110
|
+
headers = @default_headers.merge(header_overrides)
|
99
111
|
|
100
112
|
@logger.debug("Making a GET request at #{url.full_url}")
|
101
113
|
|
@@ -105,9 +117,9 @@ module Puppetserver
|
|
105
117
|
|
106
118
|
end
|
107
119
|
|
108
|
-
def put(body, url_override = nil,
|
120
|
+
def put(body, url_override = nil, header_overrides = {})
|
109
121
|
url = url_override || @url
|
110
|
-
headers =
|
122
|
+
headers = @default_headers.merge(header_overrides)
|
111
123
|
|
112
124
|
@logger.debug("Making a PUT request at #{url.full_url}")
|
113
125
|
|
@@ -118,9 +130,9 @@ module Puppetserver
|
|
118
130
|
Result.new(result.code, result.body)
|
119
131
|
end
|
120
132
|
|
121
|
-
def delete(url_override = nil,
|
133
|
+
def delete(url_override = nil, header_overrides = {})
|
122
134
|
url = url_override || @url
|
123
|
-
headers =
|
135
|
+
headers = @default_headers.merge(header_overrides)
|
124
136
|
|
125
137
|
@logger.debug("Making a DELETE request at #{url.full_url}")
|
126
138
|
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: puppetserver-ca
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.
|
4
|
+
version: 2.6.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Puppet, Inc.
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2023-
|
11
|
+
date: 2023-05-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: facter
|
@@ -143,7 +143,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
143
143
|
- !ruby/object:Gem::Version
|
144
144
|
version: '0'
|
145
145
|
requirements: []
|
146
|
-
rubygems_version: 3.
|
146
|
+
rubygems_version: 3.4.12
|
147
147
|
signing_key:
|
148
148
|
specification_version: 4
|
149
149
|
summary: A simple CLI tool for interacting with Puppet Server's Certificate Authority
|