Skip to content

Commit 699f944

Browse files
Cocker Kochekohl
Cocker Koch
authored andcommitted
Accept Datatype Sensitive for all Secrets
- accept Datatype Sensitive for Puppet-Type foreman_config_entry - accept Datatype Sensitive for CLI-Password - accept Datatype Sensitive for initial Admin-Password - accept Datatype Sensitive for Database-Password - accept Datatype Sensitive for OAuth-Secrets - accept Datatype Sensitive for SMTP-Secrets
1 parent 75520d2 commit 699f944

File tree

9 files changed

+50
-20
lines changed

9 files changed

+50
-20
lines changed

lib/puppet/provider/foreman_config_entry/cli.rb

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -65,6 +65,8 @@ def value
6565

6666
def value=(value)
6767
return if resource[:dry]
68+
69+
value = value.unwrap if value.respond_to?(:unwrap)
6870
run_foreman_config("-k '#{name}' -v '#{value}'", :combine => true, :failonfail => true)
6971
@property_hash[:value] = value
7072
end

manifests/cli.pp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
String $version = $foreman::cli::params::version,
3131
Boolean $manage_root_config = $foreman::cli::params::manage_root_config,
3232
Optional[String] $username = $foreman::cli::params::username,
33-
Optional[String] $password = $foreman::cli::params::password,
33+
Optional[Variant[String, Sensitive[String]]] $password = $foreman::cli::params::password,
3434
Boolean $use_sessions = $foreman::cli::params::use_sessions,
3535
Boolean $refresh_cache = $foreman::cli::params::refresh_cache,
3636
Integer[-1] $request_timeout = $foreman::cli::params::request_timeout,

manifests/database.pp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
if $foreman::db_manage_rake {
1515
$seed_env = {
1616
'SEED_ADMIN_USER' => $foreman::initial_admin_username,
17-
'SEED_ADMIN_PASSWORD' => $foreman::initial_admin_password,
17+
'SEED_ADMIN_PASSWORD' => if $foreman::initial_admin_password =~ Sensitive {$foreman::initial_admin_password.unwrap} else {$foreman::initial_admin_password},
1818
'SEED_ADMIN_FIRST_NAME' => $foreman::initial_admin_first_name,
1919
'SEED_ADMIN_LAST_NAME' => $foreman::initial_admin_last_name,
2020
'SEED_ADMIN_EMAIL' => $foreman::initial_admin_email,

manifests/init.pp

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -215,7 +215,7 @@
215215
Variant[Undef, Enum['UNSET'], Stdlib::Port] $db_port = 'UNSET',
216216
Optional[String] $db_database = 'UNSET',
217217
Optional[String] $db_username = $foreman::params::db_username,
218-
Optional[String] $db_password = $foreman::params::db_password,
218+
Optional[Variant[String, Sensitive[String]]] $db_password = $foreman::params::db_password,
219219
Optional[String] $db_sslmode = 'UNSET',
220220
Optional[String] $db_root_cert = undef,
221221
Integer[0] $db_pool = $foreman::params::db_pool,
@@ -234,11 +234,11 @@
234234
Stdlib::Absolutepath $client_ssl_key = $foreman::params::client_ssl_key,
235235
Boolean $oauth_active = $foreman::params::oauth_active,
236236
Boolean $oauth_map_users = $foreman::params::oauth_map_users,
237-
String $oauth_consumer_key = $foreman::params::oauth_consumer_key,
238-
String $oauth_consumer_secret = $foreman::params::oauth_consumer_secret,
237+
Variant[String, Sensitive[String]] $oauth_consumer_key = $foreman::params::oauth_consumer_key,
238+
Variant[String, Sensitive[String]] $oauth_consumer_secret = $foreman::params::oauth_consumer_secret,
239239
String $oauth_effective_user = $foreman::params::oauth_effective_user,
240240
String $initial_admin_username = $foreman::params::initial_admin_username,
241-
String $initial_admin_password = $foreman::params::initial_admin_password,
241+
Variant[String, Sensitive[String]] $initial_admin_password = $foreman::params::initial_admin_password,
242242
Optional[String] $initial_admin_first_name = $foreman::params::initial_admin_first_name,
243243
Optional[String] $initial_admin_last_name = $foreman::params::initial_admin_last_name,
244244
Optional[String] $initial_admin_email = $foreman::params::initial_admin_email,
@@ -265,7 +265,7 @@
265265
Optional[Stdlib::Fqdn] $email_smtp_domain = $foreman::params::email_smtp_domain,
266266
Enum['none', 'plain', 'login', 'cram-md5'] $email_smtp_authentication = $foreman::params::email_smtp_authentication,
267267
Optional[String] $email_smtp_user_name = $foreman::params::email_smtp_user_name,
268-
Optional[String] $email_smtp_password = $foreman::params::email_smtp_password,
268+
Optional[Variant[String, Sensitive[String]]] $email_smtp_password = $foreman::params::email_smtp_password,
269269
Optional[String] $email_reply_address = $foreman::params::email_reply_address,
270270
Optional[String] $email_subject_prefix = $foreman::params::email_subject_prefix,
271271
String $telemetry_prefix = $foreman::params::telemetry_prefix,

manifests/plugin.pp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@
2727
String[1] $config_file_owner = 'root',
2828
String[1] $config_file_group = $foreman::group,
2929
Stdlib::Filemode $config_file_mode = '0640',
30-
Optional[String] $config = undef,
30+
Optional[Variant[String, Sensitive[String]]] $config = undef,
3131
) {
3232
# Debian gem2deb converts underscores to hyphens
3333
case $facts['os']['family'] {

manifests/plugin/supervisory_authority.pp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@
3030
#
3131
class foreman::plugin::supervisory_authority (
3232
Stdlib::HTTPUrl $server_url,
33-
String $secret_token,
33+
Variant[String, Sensitive[String]] $secret_token,
3434
Pattern[/^[a-zA-Z0-9 _-]+$/] $service_name,
3535
Integer[0,5] $log_level = 1,
3636
Integer[0] $pool_size = 1,

spec/classes/foreman_spec.rb

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -263,6 +263,20 @@
263263
end
264264
end
265265

266+
describe 'with all parameters and Sensitive for Secrets' do
267+
let :params do
268+
{
269+
db_password: sensitive('secret'),
270+
oauth_consumer_key: sensitive('random'),
271+
oauth_consumer_secret: sensitive('random'),
272+
initial_admin_password: sensitive('secret'),
273+
email_smtp_password: sensitive('secret'),
274+
}
275+
end
276+
277+
it { is_expected.to compile.with_all_deps }
278+
end
279+
266280
context 'with journald logging' do
267281
let(:params) { super().merge(logging_type: 'journald') }
268282
it { is_expected.to compile.with_all_deps }
Lines changed: 22 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,27 @@
11
require 'spec_helper'
22

33
describe 'foreman::plugin::supervisory_authority' do
4-
let(:params) do
5-
{
6-
'server_url' => 'https://example.com',
7-
'secret_token' => 'secret_example',
8-
'service_name' => 'foreman prod',
9-
}
4+
context 'with Standard-Parameters' do
5+
let(:params) do
6+
{
7+
'server_url' => 'https://example.com',
8+
'secret_token' => 'secret_example',
9+
'service_name' => 'foreman prod',
10+
}
11+
end
12+
include_examples 'basic foreman plugin tests', 'supervisory_authority'
13+
it { is_expected.to contain_foreman__plugin('supervisory_authority').with_config(%r{^---\n:foreman_supervisory_authority:\n server_url: https://example\.com\n}) }
14+
end
15+
16+
context 'with Sensitive secret_token' do
17+
let(:params) do
18+
{
19+
'server_url' => 'https://example.com',
20+
'secret_token' => sensitive('secret_example'),
21+
'service_name' => 'foreman prod',
22+
}
23+
end
24+
include_examples 'basic foreman plugin tests', 'supervisory_authority'
25+
it { is_expected.to contain_foreman__plugin('supervisory_authority').with_config(%r{^---\n:foreman_supervisory_authority:\n server_url: https://example\.com\n}) }
1026
end
11-
include_examples 'basic foreman plugin tests', 'supervisory_authority'
12-
it { is_expected.to contain_foreman__plugin('supervisory_authority').with_config(%r{^---\n:foreman_supervisory_authority:\n server_url: https://example\.com\n}) }
1327
end

templates/hammer_root.yml.epp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
<%- |
22
Optional[String] $username,
3-
Optional[String] $password,
3+
Optional[Variant[String, Sensitive[String]]] $password,
44
| -%>
55
:foreman:
66
# Credentials. You'll be asked for the interactively if you leave them blank here
7-
:username: '<%= $username %>'
8-
:password: '<%= $password %>'
7+
:username:<%= if $username { " '${username}'" } %>
8+
:password:<%= if $password { " '${password}'" } %>

0 commit comments

Comments
 (0)