Skip to content

Commit 172b8a9

Browse files
committed
(CAT-1148) Conversion of ERB to EPP
1 parent b2bb9df commit 172b8a9

File tree

84 files changed

+819
-446
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

84 files changed

+819
-446
lines changed

.rubocop_todo.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,7 @@ RSpec/NamedSubject:
144144
- 'spec/defines/sp_configure_spec.rb'
145145
- 'spec/defines/user_spec.rb'
146146
- 'spec/unit/puppet_x/sql_connection_spec.rb'
147+
- 'spec/functions/partial_params_args_spec.rb'
147148

148149
# Offense count: 31
149150
# Configuration parameters: AllowedGroups.
Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
# frozen_string_literal: true
2+
3+
# @summary this function populates and returns the string of arguments which later gets injected in template.
4+
# arguments that return string holds is conditional and decided by the the input given to function.
5+
6+
Puppet::Functions.create_function(:'sqlserver::partial_params_args') do
7+
# @param args contains
8+
# Enum['ON', 'OFF'] $db_chaining
9+
# Enum['ON', 'OFF'] $trustworthy
10+
# String[1] $default_fulltext_language
11+
# String[1] $default_language
12+
# Optional[Enum['ON', 'OFF']] $nested_triggers
13+
# Optional[Enum['ON', 'OFF']] $transform_noise_words
14+
# Integer[1753, 9999] $two_digit_year_cutoff
15+
#
16+
# @return String
17+
# Generated on the basis of provided values.
18+
#
19+
# Sample Input Output
20+
#
21+
# Input
22+
# args = {
23+
# db_chaining: 'OFF',
24+
# trustworthy: 'OFF',
25+
# default_fulltext_language: 'English',
26+
# default_language: 'us_english',
27+
# two_digit_year_cutoff: 2049,
28+
# nested_triggers: 'OFF',
29+
# }
30+
#
31+
# Output
32+
# "DB_CHAINING OFF,TRUSTWORTHY OFF,DEFAULT_FULLTEXT_LANGUAGE=[English]\n,DEFAULT_LANGUAGE = [us_english]\n,NESTED_TRIGGERS = OFF,TWO_DIGIT_YEAR_CUTOFF = 2049"
33+
34+
dispatch :partial_params_args do
35+
param 'Hash', :args
36+
return_type 'Variant[String]'
37+
end
38+
39+
def partial_params_args(args)
40+
partial_params = []
41+
partial_params << "DB_CHAINING #{args['db_chaining']}" if args['db_chaining']
42+
partial_params << "TRUSTWORTHY #{args['trustworthy']}" if args['trustworthy']
43+
partial_params << "DEFAULT_FULLTEXT_LANGUAGE=[#{args['default_fulltext_language']}]\n" if args['default_fulltext_language']
44+
partial_params << "DEFAULT_LANGUAGE = [#{args['default_language']}]\n" if args['default_language']
45+
partial_params << "NESTED_TRIGGERS = #{args['nested_triggers']}" if args['nested_triggers']
46+
partial_params << "TRANSFORM_NOISE_WORDS = #{args['transform_noise_words']}" if args['transform_noise_words']
47+
partial_params << "TWO_DIGIT_YEAR_CUTOFF = #{args['two_digit_year_cutoff']}" if args['two_digit_year_cutoff']
48+
partial_params.join(',')
49+
end
50+
end

manifests/database.pp

Lines changed: 134 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -179,10 +179,142 @@
179179
'absent' => 'delete',
180180
}
181181

182+
$database_containment_exists_parameters = {
183+
'db_name' => $db_name,
184+
'containment' => $containment,
185+
}
186+
187+
$database_compatibility_exists_parameters = {
188+
'db_name' => $db_name,
189+
'compatibility' => $compatibility,
190+
}
191+
192+
$database_collation_exists_parameters = {
193+
'db_name' => $db_name,
194+
'collation_name' => $collation_name,
195+
}
196+
197+
$database_db_chaining_exists_parameters = {
198+
'db_name' => $db_name,
199+
'db_chaining' => $db_chaining,
200+
}
201+
202+
$database_default_fulltext_language_exists_parameters = {
203+
'default_fulltext_language' => $default_fulltext_language,
204+
'db_name' => $db_name,
205+
}
206+
207+
$database_default_language_exists_parameters = {
208+
'default_language' => $default_language,
209+
'db_name' => $db_name,
210+
}
211+
212+
$database_nested_triggers_exists_parameters = {
213+
'db_name' => $db_name,
214+
'nested_triggers' => $nested_triggers,
215+
}
216+
217+
$database_transform_noise_words_exists_parameters = {
218+
'db_name' => $db_name,
219+
'transform_noise_words' => $transform_noise_words,
220+
}
221+
222+
$database_trustworthy_exists_parameters = {
223+
'db_name' => $db_name,
224+
'trustworthy' => $trustworthy,
225+
}
226+
227+
$database_two_digit_year_cutoff_exists_parameters= {
228+
'db_name' => $db_name,
229+
'two_digit_year_cutoff' => $two_digit_year_cutoff,
230+
}
231+
232+
$partial_params_parameters = {
233+
'db_chaining' => $db_chaining,
234+
'trustworthy' => $trustworthy,
235+
'default_fulltext_language' => $default_fulltext_language,
236+
'default_language' => $default_language,
237+
'nested_triggers' => $nested_triggers,
238+
'transform_noise_words' => $transform_noise_words,
239+
'two_digit_year_cutoff' => $two_digit_year_cutoff,
240+
}
241+
242+
$partial_params = sqlserver::partial_params_args($partial_params_parameters)
243+
244+
if $create_delete == 'create' {
245+
$database_create_delete_parameters = {
246+
'db_name' => $db_name,
247+
'containment' => $containment,
248+
'filespec_name' => $filespec_name,
249+
'filespec_filename' => $filespec_filename,
250+
'filespec_size' => $filespec_size,
251+
'filespec_maxsize' => $filespec_maxsize,
252+
'filespec_filegrowth' => $filespec_filegrowth,
253+
'log_name' => $log_name,
254+
'log_filename' => $log_filename,
255+
'log_size' => $log_size,
256+
'log_maxsize' => $log_maxsize,
257+
'log_filegrowth' => $log_filegrowth,
258+
'filestream_directory_name' => $filestream_directory_name,
259+
'filestream_non_transacted_access' => $filestream_non_transacted_access,
260+
'db_chaining' => $db_chaining,
261+
'trustworthy' => $trustworthy,
262+
'default_fulltext_language' => $default_fulltext_language,
263+
'default_language' => $default_language,
264+
'nested_triggers' => $nested_triggers,
265+
'transform_noise_words' => $transform_noise_words,
266+
'two_digit_year_cutoff' => $two_digit_year_cutoff,
267+
'database_compatibility_exists_parameters' => $database_compatibility_exists_parameters,
268+
'compatibility' => $compatibility,
269+
'collation_name' => $collation_name,
270+
'database_collation_exists_parameters' => $database_collation_exists_parameters,
271+
'database_db_chaining_exists_parameters' => $database_db_chaining_exists_parameters,
272+
'database_default_fulltext_language_exists_parameters' => $database_default_fulltext_language_exists_parameters,
273+
'database_default_language_exists_parameters' => $database_default_language_exists_parameters,
274+
'database_nested_triggers_exists_parameters' => $database_nested_triggers_exists_parameters,
275+
'database_transform_noise_words_exists_parameters' => $database_transform_noise_words_exists_parameters,
276+
'database_trustworthy_exists_parameters' => $database_trustworthy_exists_parameters,
277+
'database_two_digit_year_cutoff_exists_parameters' => $database_two_digit_year_cutoff_exists_parameters,
278+
'partial_params' => $partial_params,
279+
}
280+
} else {
281+
$database_create_delete_parameters = {
282+
'db_name' => $db_name,
283+
}
284+
}
285+
286+
$database_check_exists_parameters = {
287+
'compatibility' => $database_compatibility_exists_parameters,
288+
'collation' => $database_collation_exists_parameters,
289+
'containment' => $database_containment_exists_parameters,
290+
'db_chaining' => $database_db_chaining_exists_parameters,
291+
'default_fulltext_language' => $database_default_fulltext_language_exists_parameters,
292+
'default_language' => $database_default_language_exists_parameters,
293+
'nested_triggers' => $database_nested_triggers_exists_parameters,
294+
'transform_noise_words' => $database_transform_noise_words_exists_parameters,
295+
'trustworthy' => $database_trustworthy_exists_parameters,
296+
'two_digit_year_cutoff' => $database_two_digit_year_cutoff_exists_parameters,
297+
}
298+
299+
$database_exists_parameters = {
300+
'ensure' => $ensure,
301+
'db_name' => $db_name,
302+
'collation_name' => $collation_name,
303+
'containment' => $containment,
304+
'default_fulltext_language' => $default_fulltext_language,
305+
'default_language' => $default_language,
306+
'db_chaining' => $db_chaining,
307+
'nested_triggers' => $nested_triggers,
308+
'transform_noise_words' => $transform_noise_words,
309+
'trustworthy' => $trustworthy,
310+
'two_digit_year_cutoff' => $two_digit_year_cutoff,
311+
'database_check_exists_parameters' => $database_check_exists_parameters,
312+
}
313+
182314
sqlserver_tsql { "database-${instance}-${db_name}":
183315
instance => $instance,
184-
command => template("sqlserver/${create_delete}/database.sql.erb"),
185-
onlyif => template('sqlserver/query/database_exists.sql.erb'),
316+
command => epp("sqlserver/${create_delete}/database.sql.epp", $database_create_delete_parameters),
317+
onlyif => epp('sqlserver/query/database_exists.sql.epp', $database_exists_parameters),
186318
require => Sqlserver::Config[$instance],
187319
}
188320
}

manifests/login.pp

Lines changed: 30 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -76,22 +76,40 @@
7676
'absent' => 'delete',
7777
}
7878

79-
$parameters = {
80-
'password' => Deferred('sqlserver::password', [$password]),
81-
'disabled' => $disabled,
82-
'login_type' => $login_type,
83-
'login' => $login,
84-
'default_language' => $default_language,
85-
'default_database' => $default_database,
86-
'check_policy' => $check_policy,
87-
'check_expiration' => $check_expiration,
88-
'svrroles' => $svrroles,
79+
if $_create_delete == 'create' {
80+
$create_delete_login_parameters = {
81+
'disabled' => $disabled,
82+
'login' => $login,
83+
'password' => Deferred('sqlserver::password', [$password]),
84+
'check_expiration' => $check_expiration,
85+
'check_policy' => $check_policy,
86+
'default_language' => $default_language,
87+
'default_database' => $default_database,
88+
'login_type' => $login_type,
89+
'svrroles' => $svrroles,
90+
}
91+
} else {
92+
$create_delete_login_parameters = {
93+
'login' => $login,
94+
}
95+
}
96+
97+
$query_login_exists_parameters = {
98+
'login' => $login,
99+
'disabled' => $disabled,
100+
'check_expiration' => $check_expiration,
101+
'check_policy' => $check_policy,
102+
'login_type' => $login_type,
103+
'default_database' => $default_database,
104+
'default_language' => $default_language,
105+
'ensure' => $ensure,
106+
'svrroles' => $svrroles,
89107
}
90108

91109
sqlserver_tsql { "login-${instance}-${login}":
92110
instance => $instance,
93-
command => stdlib::deferrable_epp("sqlserver/${_create_delete}/login.sql.epp", $parameters),
94-
onlyif => template('sqlserver/query/login_exists.sql.erb'),
111+
command => stdlib::deferrable_epp("sqlserver/${_create_delete}/login.sql.epp", $create_delete_login_parameters),
112+
onlyif => epp('sqlserver/query/login_exists.sql.epp', $query_login_exists_parameters),
95113
require => Sqlserver::Config[$instance],
96114
}
97115

manifests/login/permissions.pp

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,10 +38,29 @@
3838
true => '-WITH_GRANT_OPTION',
3939
default => ''
4040
}
41+
42+
$create_login_permission_parameters = {
43+
'permissions' => $permissions,
44+
'with_grant_option' => $with_grant_option,
45+
'login' => $login,
46+
'_state' => $_state,
47+
}
48+
49+
$login_permission_exists_parameters = {
50+
'login' => $login,
51+
'_state' => $_state,
52+
'with_grant_option' => $with_grant_option,
53+
}
54+
55+
$query_login_permission_exists_parameters = {
56+
'permissions' => $permissions,
57+
'login_permission_exists_parameters' => $login_permission_exists_parameters,
58+
}
59+
4160
sqlserver_tsql { "login-permission-${instance}-${login}-${_state}${_grant_option}":
4261
instance => $instance,
43-
command => template('sqlserver/create/login/permission.sql.erb'),
44-
onlyif => template('sqlserver/query/login/permission_exists.sql.erb'),
62+
command => epp('sqlserver/create/login/permission.sql.epp', $create_login_permission_parameters),
63+
onlyif => epp('sqlserver/query/login/permission_exists.sql.epp', $query_login_permission_exists_parameters),
4564
require => Sqlserver::Config[$instance],
4665
}
4766
}

manifests/role.pp

Lines changed: 62 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -63,9 +63,50 @@
6363
# users. see MODULES-3355
6464
$sqlserver_tsql_title = "role-${instance}-${database}-${role}"
6565

66+
$role_exists_parameters = {
67+
'ensure' => $ensure,
68+
'type' => $type,
69+
'role' => $role,
70+
}
71+
72+
$role_owner_check_parameters = {
73+
'type' => $type,
74+
'authorization' => $authorization,
75+
'role' => $role,
76+
}
77+
78+
$query_role_exists_parameters = {
79+
'database' => $database,
80+
'role_exists_parameters' => $role_exists_parameters,
81+
'type' => $type,
82+
'role' => $role,
83+
'ensure' => $ensure,
84+
'authorization' => $authorization,
85+
'role_owner_check_parameters' => $role_owner_check_parameters,
86+
}
87+
88+
if $_create_delete == 'create' {
89+
$role_create_delete_parameters = {
90+
'database' => $database,
91+
'role_exists_parameters' => $role_exists_parameters,
92+
'type' => $type,
93+
'role' => $role,
94+
'authorization' => $authorization,
95+
'role_owner_check_parameters' => $role_owner_check_parameters,
96+
'query_role_exists_parameters' => $query_role_exists_parameters,
97+
}
98+
} else {
99+
$role_create_delete_parameters = {
100+
'database' => $database,
101+
'type' => $type,
102+
'role' => $role,
103+
'query_role_exists_parameters' => $query_role_exists_parameters,
104+
}
105+
}
106+
66107
sqlserver_tsql { $sqlserver_tsql_title:
67-
command => template("sqlserver/${_create_delete}/role.sql.erb"),
68-
onlyif => template('sqlserver/query/role_exists.sql.erb'),
108+
command => epp("sqlserver/${_create_delete}/role.sql.epp", $role_create_delete_parameters),
109+
onlyif => epp('sqlserver/query/role_exists.sql.epp', $query_role_exists_parameters),
69110
instance => $instance,
70111
}
71112

@@ -105,10 +146,27 @@
105146
}
106147
}
107148

149+
$role_members_parameters = {
150+
'database' => $database,
151+
'role' => $role,
152+
'members' => $members,
153+
'type' => $type,
154+
'members_purge' => $members_purge,
155+
}
156+
157+
$query_role_member_exists_parameters = {
158+
'database' => $database,
159+
'role' => $role,
160+
'members' => $members,
161+
'ensure' => $ensure,
162+
'members_purge' => $members_purge,
163+
'type' => $type,
164+
}
165+
108166
if size($members) > 0 or $members_purge == true {
109167
sqlserver_tsql { "${sqlserver_tsql_title}-members":
110-
command => template('sqlserver/create/role/members.sql.erb'),
111-
onlyif => template('sqlserver/query/role/member_exists.sql.erb'),
168+
command => epp('sqlserver/create/role/members.sql.epp', $role_members_parameters),
169+
onlyif => epp('sqlserver/query/role/member_exists.sql.epp', $query_role_member_exists_parameters),
112170
instance => $instance,
113171
}
114172
}

0 commit comments

Comments
 (0)