Skip to content

Commit a8b7eb4

Browse files
committed
add possibility to manage permissions for dhparam
1 parent 1ccd6e6 commit a8b7eb4

File tree

3 files changed

+50
-1
lines changed

3 files changed

+50
-1
lines changed

lib/puppet/provider/dhparam/openssl.rb

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,12 @@
11
# frozen_string_literal: true
22

33
require 'pathname'
4-
Puppet::Type.type(:dhparam).provide(:openssl) do
4+
require File.join(File.dirname(__FILE__), '..', '..', '..', 'puppet/provider/openssl')
5+
6+
Puppet::Type.type(:dhparam).provide(
7+
:openssl,
8+
parent: Puppet::Provider::Openssl,
9+
) do
510
desc 'Manages dhparam files with OpenSSL'
611

712
commands openssl: 'openssl'
@@ -19,6 +24,7 @@ def create
1924
options.insert(1, '-dsaparam') if resource[:fastmode]
2025

2126
openssl options
27+
set_file_perm(resource[:path], resource[:owner], resource[:group], resource[:mode])
2228
end
2329

2430
def destroy

lib/puppet/type/dhparam.rb

Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -35,4 +35,31 @@
3535
autorequire(:file) do
3636
Pathname.new(self[:path]).parent.to_s
3737
end
38+
39+
newproperty(:owner) do
40+
desc 'owner of the file'
41+
validate do |value|
42+
unless value =~ %r{^\w+}
43+
raise ArgumentError, '%s is not a valid user name' % value
44+
end
45+
end
46+
end
47+
48+
newproperty(:group) do
49+
desc 'group of the file'
50+
validate do |value|
51+
unless value =~ %r{^\w+}
52+
raise ArgumentError, '%s is not a valid group name' % value
53+
end
54+
end
55+
end
56+
57+
newproperty(:mode) do
58+
desc 'mode of the file'
59+
validate do |value|
60+
unless value =~ %r{^0\d\d\d$}
61+
raise ArgumentError, '%s is not a valid file mode' % value
62+
end
63+
end
64+
end
3865
end

spec/unit/puppet/type/dhparam_spec.rb

Lines changed: 16 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,4 +38,20 @@
3838
resource[:size] = 1.5
3939
end.to raise_error(Puppet::Error, %r{Size must be a positive integer: 1.5})
4040
end
41+
42+
it 'accepts mode' do
43+
resource[:mode] = '0700'
44+
expect(resource[:mode]).to eq('0700')
45+
end
46+
47+
it 'accepts owner' do
48+
resource[:owner] = 'someone'
49+
expect(resource[:owner]).to eq('someone')
50+
end
51+
52+
it 'accepts group' do
53+
resource[:group] = 'party'
54+
expect(resource[:group]).to eq('party')
55+
end
56+
4157
end

0 commit comments

Comments
 (0)