foreman_salt 13.0.0 → 13.1.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.
Files changed (39) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/foreman_salt/api/v2/salt_variables_controller.rb +75 -0
  3. data/app/controllers/foreman_salt/concerns/salt_override_value.rb +28 -0
  4. data/app/controllers/foreman_salt/concerns/salt_variable_parameters.rb +29 -0
  5. data/app/controllers/foreman_salt/minions_controller.rb +2 -0
  6. data/app/controllers/foreman_salt/salt_variables_controller.rb +46 -0
  7. data/app/helpers/foreman_salt/salt_modules_helper.rb +14 -0
  8. data/app/helpers/foreman_salt/salt_plugin_helper.rb +13 -0
  9. data/app/models/foreman_salt/concerns/host_managed_extensions.rb +16 -1
  10. data/app/models/foreman_salt/salt_module.rb +5 -0
  11. data/app/models/foreman_salt/salt_variable.rb +29 -0
  12. data/app/services/foreman_salt/report_importer.rb +1 -1
  13. data/app/views/foreman_salt/api/v2/salt_variables/create.json.rabl +3 -0
  14. data/app/views/foreman_salt/api/v2/salt_variables/destroy.json.rabl +3 -0
  15. data/app/views/foreman_salt/api/v2/salt_variables/index.json.rabl +3 -0
  16. data/app/views/foreman_salt/api/v2/salt_variables/show.json.rabl +21 -0
  17. data/app/views/foreman_salt/salt_modules/index.html.erb +11 -3
  18. data/app/views/foreman_salt/salt_variables/_fields.erb +73 -0
  19. data/app/views/foreman_salt/salt_variables/edit.html.erb +17 -0
  20. data/app/views/foreman_salt/salt_variables/index.html.erb +46 -0
  21. data/app/views/foreman_salt/salt_variables/new.html.erb +17 -0
  22. data/config/routes.rb +9 -0
  23. data/db/migrate/20190515112233_add_salt_module_id_to_lookup_keys.rb +14 -0
  24. data/lib/foreman_salt/plugin.rb +44 -16
  25. data/lib/foreman_salt/version.rb +1 -1
  26. data/locale/de/foreman_salt.edit.po +68 -41
  27. data/locale/en/foreman_salt.edit.po +1 -1
  28. data/test/factories/foreman_salt_factories.rb +6 -0
  29. data/test/functional/api/v2/salt_states_controller_test.rb +1 -1
  30. data/test/functional/api/v2/salt_variables_controller_test.rb +35 -0
  31. data/test/functional/minions_controller_test.rb +65 -5
  32. data/test/functional/salt_modules_controller_test.rb +22 -0
  33. data/test/functional/salt_variables_controller_test.rb +33 -0
  34. data/test/integration/salt_autosign_test.rb +1 -1
  35. data/test/integration/salt_keys_test.rb +3 -3
  36. data/test/integration/salt_module_test.rb +1 -1
  37. data/test/integration/salt_variable_test.rb +24 -0
  38. data/test/unit/salt_variables_test.rb +32 -0
  39. metadata +27 -2
@@ -7,21 +7,22 @@ Foreman::Plugin.register :foreman_salt do
7
7
  apipie_documented_controllers ["#{ForemanSalt::Engine.root}/app/controllers/foreman_salt/api/v2/*.rb"]
8
8
 
9
9
  # Menus
10
+ divider :top_menu, :parent => :configure_menu, :caption => 'Salt'
10
11
  menu :top_menu, :salt_environments,
11
12
  :url_hash => { :controller => :'foreman_salt/salt_environments', :action => :index },
12
13
  :caption => 'Environments',
13
- :parent => :configure_menu,
14
- :after => :common_parameters
14
+ :parent => :configure_menu
15
15
 
16
16
  menu :top_menu, :salt_modules,
17
17
  :url_hash => { :controller => :'foreman_salt/salt_modules', :action => :index },
18
18
  :caption => 'States',
19
- :parent => :configure_menu,
20
- :after => :common_parameters
19
+ :parent => :configure_menu
20
+
21
+ menu :top_menu, :salt_variables,
22
+ :url_hash => { :controller => :'foreman_salt/salt_variables', :action => :index },
23
+ :caption => N_('Variables'),
24
+ :parent => :configure_menu
21
25
 
22
- divider :top_menu, :parent => :configure_menu,
23
- :caption => 'Salt',
24
- :after => :common_parameters
25
26
 
26
27
  # Permissions
27
28
  security_block :foreman_salt do
@@ -59,6 +60,33 @@ Foreman::Plugin.register :foreman_salt do
59
60
  :'foreman_salt/api/v2/salt_environments' => [:destroy] },
60
61
  :resource_type => 'ForemanSalt::SaltEnvironment'
61
62
 
63
+ permission :view_salt_variables,
64
+ {
65
+ :'foreman_salt/salt_variables' => [:index, :auto_complete_search],
66
+ :'foreman_salt/api/v2/salt_variables' => [:index, :show]
67
+ },
68
+ :resource_type => 'ForemanSalt::SaltVariable'
69
+
70
+ permission :edit_salt_variables,
71
+ { :'foreman_salt/salt_variables' => [:edit, :update],
72
+ :'foreman_salt/api/v2/salt_variables' => [:update],
73
+ :'foreman_salt/api/v2/salt_override_values' => [:create, :destroy] },
74
+ :resource_type => 'ForemanSalt::SaltVariable'
75
+
76
+ permission :destroy_salt_variables,
77
+ {
78
+ :'foreman_salt/salt_variables' => [:destroy],
79
+ :'foreman_salt/api/v2/salt_variables' => [:destroy]
80
+ },
81
+ :resource_type => 'ForemanSalt::SaltVariable'
82
+
83
+ permission :create_salt_variables,
84
+ {
85
+ :'foreman_salt/salt_variables' => [:new, :create],
86
+ :'foreman_salt/api/v2/salt_variables' => [:create]
87
+ },
88
+ :resource_type => 'ForemanSalt::SaltVariable'
89
+
62
90
  permission :create_reports,
63
91
  { :'foreman_salt/api/v2/jobs' => [:upload] },
64
92
  :resource_type => 'Report'
@@ -124,18 +152,18 @@ Foreman::Plugin.register :foreman_salt do
124
152
  end
125
153
 
126
154
  # Roles
127
- role 'Salt admin', [:saltrun_hosts, :create_salt_modules,
128
- :view_salt_modules, :edit_salt_modules,
129
- :destroy_salt_modules,
155
+ role 'Salt admin', [:saltrun_hosts,
156
+ :create_salt_modules, :view_salt_modules,
157
+ :edit_salt_modules, :destroy_salt_modules,
158
+ :import_salt_modules,
130
159
  :view_smart_proxies_salt_keys,
131
- :destroy_smart_proxies_salt_keys,
132
- :edit_smart_proxies_salt_keys,
133
- :create_smart_proxies_salt_autosign,
134
- :view_smart_proxies_salt_autosign,
160
+ :edit_smart_proxies_salt_keys, :destroy_smart_proxies_salt_keys,
161
+ :create_smart_proxies_salt_autosign, :view_smart_proxies_salt_autosign,
135
162
  :destroy_smart_proxies_salt_autosign,
136
163
  :create_salt_environments, :view_salt_environments,
137
- :edit_salt_environments,
138
- :destroy_salt_environments]
164
+ :edit_salt_environments, :destroy_salt_environments,
165
+ :create_salt_variables, :view_salt_variables,
166
+ :edit_salt_variables, :destroy_salt_variables]
139
167
 
140
168
 
141
169
  # Parameter filters
@@ -1,3 +1,3 @@
1
1
  module ForemanSalt
2
- VERSION = '13.0.0'
2
+ VERSION = '13.1.0'
3
3
  end
@@ -2,28 +2,30 @@
2
2
  # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER
3
3
  # This file is distributed under the same license as the foreman_salt package.
4
4
  # FIRST AUTHOR <EMAIL@ADDRESS>, YEAR.
5
- #
5
+ #
6
6
  # Translators:
7
7
  # Lukáš Zapletal, 2019
8
8
  # Ettore Atalan <atalanttore@googlemail.com>, 2019
9
- # Dominic Cleal <dominic@cleal.org>, 2019
10
- # Wiederoder <stefanwiederoder@googlemail.com>, 2019
9
+ # 0868a4d1af5275b3f70b0a6dac4c99a4, 2019
11
10
  # abf90805572190d649c59f7a021d76cb, 2019
12
11
  # Michael Moll, 2019
13
12
  # Hannes Schaller <admin@cyberkov.at>, 2019
14
- # Bryan Kearney <bryan.kearney@gmail.com>, 2019
15
13
  # Ulrich Habel <rhaen@pkgbox.de>, 2019
16
14
  # Arnold Bechtoldt <mail@arnoldbechtoldt.com>, 2019
17
15
  # simon11 <simon.stieger.98@live.de>, 2019
16
+ # Bryan Kearney <bryan.kearney@gmail.com>, 2019
17
+ # Crited <Alexander.Stoll@netways.de>, 2019
18
18
  # Bernhard Suttner <bernhard.suttner@atix.de>, 2019
19
- #
19
+ # Wiederoder <stefanwiederoder@googlemail.com>, 2019
20
+ #
21
+ #, fuzzy
20
22
  msgid ""
21
23
  msgstr ""
22
- "Project-Id-Version: foreman_salt 1.0.0\n"
24
+ "Project-Id-Version: foreman_salt 13.1.0\n"
23
25
  "Report-Msgid-Bugs-To: \n"
24
26
  "POT-Creation-Date: 2019-07-22 19:13+0000\n"
25
27
  "PO-Revision-Date: 2019-04-29 07:31+0000\n"
26
- "Last-Translator: Bernhard Suttner <bernhard.suttner@atix.de>, 2019\n"
28
+ "Last-Translator: Wiederoder <stefanwiederoder@googlemail.com>, 2019\n"
27
29
  "Language-Team: German (https://www.transifex.com/foreman/teams/114/de/)\n"
28
30
  "MIME-Version: 1.0\n"
29
31
  "Content-Type: text/plain; charset=UTF-8\n"
@@ -33,11 +35,11 @@ msgstr ""
33
35
 
34
36
  #: ../app/controllers/foreman_salt/api/v2/jobs_controller.rb:12
35
37
  msgid "JID"
36
- msgstr ""
38
+ msgstr "JID"
37
39
 
38
40
  #: ../app/controllers/foreman_salt/api/v2/jobs_controller.rb:13
39
41
  msgid "Function"
40
- msgstr ""
42
+ msgstr "Funktion"
41
43
 
42
44
  #: ../app/controllers/foreman_salt/api/v2/jobs_controller.rb:14
43
45
  msgid "Result"
@@ -55,7 +57,8 @@ msgstr "Alle Autosign-Einträge auflisten"
55
57
  msgid "Create an autosign record"
56
58
  msgstr "Autosign-Eintrag erstellen"
57
59
 
58
- #: ../app/controllers/foreman_salt/api/v2/salt_autosign_controller.rb:17 ../app/controllers/foreman_salt/api/v2/salt_autosign_controller.rb:25
60
+ #: ../app/controllers/foreman_salt/api/v2/salt_autosign_controller.rb:17
61
+ #: ../app/controllers/foreman_salt/api/v2/salt_autosign_controller.rb:25
59
62
  msgid "Autosign record"
60
63
  msgstr "Autosign-Einträge"
61
64
 
@@ -175,7 +178,8 @@ msgstr "Nur Probelauf"
175
178
  msgid "Could not find salt environment with id %s"
176
179
  msgstr "Salt Umgebung mit ID %s konnte nicht gefunden werden"
177
180
 
178
- #: ../app/controllers/foreman_salt/concerns/hosts_controller_extensions.rb:44 ../app/helpers/concerns/foreman_salt/hosts_helper_extensions.rb:38
181
+ #: ../app/controllers/foreman_salt/concerns/hosts_controller_extensions.rb:44
182
+ #: ../app/helpers/concerns/foreman_salt/hosts_helper_extensions.rb:38
179
183
  msgid "Salt Master"
180
184
  msgstr "Salt Master"
181
185
 
@@ -188,14 +192,14 @@ msgid "Updated hosts: changed salt environment"
188
192
  msgstr ""
189
193
 
190
194
  #: ../app/controllers/foreman_salt/minions_controller.rb:24
191
- msgid ""
192
- "Unable to generate output, Check log files\n"
193
- msgstr ""
194
- "Kann keine Ausgabe erzeugen, Bitte Logdateien prüfen\n"
195
+ msgid "Unable to generate output, Check log files\\n"
196
+ msgstr "Kann keine Ausgabe erzeugen, Bitte Logdateien prüfen\\n"
195
197
 
196
198
  #: ../app/controllers/foreman_salt/minions_controller.rb:29
197
199
  msgid "Successfully executed, check log files for more details"
198
- msgstr "Erfolgreich ausgeführt, für weitere Informationen bitte die Protokolldateien prüfen"
200
+ msgstr ""
201
+ "Erfolgreich ausgeführt, für weitere Informationen bitte die Protokolldateien"
202
+ " prüfen"
199
203
 
200
204
  #: ../app/controllers/foreman_salt/salt_autosign_controller.rb:17
201
205
  msgid "Autosign created for #{params[:id]}"
@@ -205,7 +209,8 @@ msgstr "Autosign-Eintrag erstellt für #{params[:id]}"
205
209
  msgid "Autosign deleted for #{params[:id]}"
206
210
  msgstr "Autosign-Eintrag entfernt für #{params[:id]}"
207
211
 
208
- #: ../app/controllers/foreman_salt/salt_environments_controller.rb:30 ../app/controllers/foreman_salt/salt_modules_controller.rb:34
212
+ #: ../app/controllers/foreman_salt/salt_environments_controller.rb:30
213
+ #: ../app/controllers/foreman_salt/salt_modules_controller.rb:34
209
214
  msgid "Successfully updated %s."
210
215
  msgstr "%s wurde aktualisiert."
211
216
 
@@ -221,7 +226,8 @@ msgstr "Schlüssel #{key} zurückgewiesen"
221
226
  msgid "Key deleted for #{key}"
222
227
  msgstr "Schlüssel #{key} entfernt"
223
228
 
224
- #: ../app/controllers/foreman_salt/salt_modules_controller.rb:66 ../app/controllers/foreman_salt/salt_modules_controller.rb:73
229
+ #: ../app/controllers/foreman_salt/salt_modules_controller.rb:66
230
+ #: ../app/controllers/foreman_salt/salt_modules_controller.rb:73
225
231
  msgid "No changes found"
226
232
  msgstr "Keine Änderungen festgestellt"
227
233
 
@@ -237,7 +243,8 @@ msgstr "Salt ENC"
237
243
  msgid "Salt external nodes YAML dump"
238
244
  msgstr "YAML-Ausgabe des externen Salt-Knotens"
239
245
 
240
- #: ../app/helpers/concerns/foreman_salt/hosts_helper_extensions.rb:17 ../lib/foreman_salt/plugin.rb:156
246
+ #: ../app/helpers/concerns/foreman_salt/hosts_helper_extensions.rb:17
247
+ #: ../lib/foreman_salt/plugin.rb:156
241
248
  msgid "Run Salt"
242
249
  msgstr "Salt starten"
243
250
 
@@ -253,7 +260,8 @@ msgstr ""
253
260
  msgid "Change Salt Environment"
254
261
  msgstr ""
255
262
 
256
- #: ../app/helpers/concerns/foreman_salt/hosts_helper_extensions.rb:39 ../app/views/hosts/select_multiple_salt_environment.html.erb:7
263
+ #: ../app/helpers/concerns/foreman_salt/hosts_helper_extensions.rb:39
264
+ #: ../app/views/hosts/select_multiple_salt_environment.html.erb:7
257
265
  msgid "Salt Environment"
258
266
  msgstr "Salt Umgebung"
259
267
 
@@ -277,7 +285,8 @@ msgstr "Zurückgewiesen"
277
285
  msgid "Unaccepted"
278
286
  msgstr "Abgelehnt"
279
287
 
280
- #: ../app/helpers/foreman_salt/salt_modules_helper.rb:5 ../app/views/foreman_salt/salt_modules/import.html.erb:1
288
+ #: ../app/helpers/foreman_salt/salt_modules_helper.rb:5
289
+ #: ../app/views/foreman_salt/salt_modules/import.html.erb:1
281
290
  msgid "Import from %s"
282
291
  msgstr "Importieren aus %s"
283
292
 
@@ -343,7 +352,9 @@ msgstr "Salt State muss in der Umgebung des Hosts sein"
343
352
 
344
353
  #: ../app/models/foreman_salt/concerns/host_managed_extensions.rb:79
345
354
  msgid "Host must have an environment in order to set salt states"
346
- msgstr "Host muss einer Salt Umgebung angehören bevor ein Salt State gesetzt werden kann"
355
+ msgstr ""
356
+ "Host muss einer Salt Umgebung angehören bevor ein Salt State gesetzt werden "
357
+ "kann"
347
358
 
348
359
  #: ../app/models/foreman_salt/salt_environment.rb:13
349
360
  msgid "is alphanumeric and cannot contain spaces"
@@ -354,8 +365,12 @@ msgid "Salt environment"
354
365
  msgstr "Salt Umgebung"
355
366
 
356
367
  #: ../app/models/foreman_salt/salt_module.rb:16
357
- msgid "must be alphanumeric, can contain periods, dashes, underscores and must not contain spaces"
358
- msgstr "muss alphanumerisch sein; kann Punkte, Striche, Unterstriche enthalten jedoch keine Leerzeichen"
368
+ msgid ""
369
+ "must be alphanumeric, can contain periods, dashes, underscores and must not "
370
+ "contain spaces"
371
+ msgstr ""
372
+ "muss alphanumerisch sein; kann Punkte, Striche, Unterstriche enthalten "
373
+ "jedoch keine Leerzeichen"
359
374
 
360
375
  #: ../app/models/foreman_salt/salt_module.rb:40
361
376
  msgid "Salt state"
@@ -377,7 +392,8 @@ msgstr "Ungültiger Bericht"
377
392
  msgid "Must specify a Smart Proxy to use"
378
393
  msgstr "Zu verwendender Smart Proxy muss angegeben werden"
379
394
 
380
- #: ../app/views/foreman_salt/salt_autosign/_form.html.erb:4 ../app/views/foreman_salt/salt_autosign/index.html.erb:7
395
+ #: ../app/views/foreman_salt/salt_autosign/_form.html.erb:4
396
+ #: ../app/views/foreman_salt/salt_autosign/index.html.erb:7
381
397
  msgid "Name"
382
398
  msgstr "Name"
383
399
 
@@ -401,7 +417,8 @@ msgstr "Neu"
401
417
  msgid "New Autosign Entry"
402
418
  msgstr "Neuer Autosign-Eintrag"
403
419
 
404
- #: ../app/views/foreman_salt/salt_environments/_form.html.erb:4 ../app/views/foreman_salt/salt_environments/index.html.erb:1
420
+ #: ../app/views/foreman_salt/salt_environments/_form.html.erb:4
421
+ #: ../app/views/foreman_salt/salt_environments/index.html.erb:1
405
422
  msgid "Salt Environments"
406
423
  msgstr "Salt Umgebungen"
407
424
 
@@ -409,27 +426,32 @@ msgstr "Salt Umgebungen"
409
426
  msgid "Edit Salt Environment %s"
410
427
  msgstr "Salt Umgebung %s bearbeiten"
411
428
 
412
- #: ../app/views/foreman_salt/salt_environments/index.html.erb:3 ../app/views/foreman_salt/salt_environments/new.html.erb:1
429
+ #: ../app/views/foreman_salt/salt_environments/index.html.erb:3
430
+ #: ../app/views/foreman_salt/salt_environments/new.html.erb:1
413
431
  msgid "New Salt Environment"
414
432
  msgstr "Neue Salt Umgebung"
415
433
 
416
434
  #: ../app/views/foreman_salt/salt_environments/index.html.erb:7
417
435
  msgid "SaltEnvironment|Name"
418
- msgstr ""
436
+ msgstr "Name"
419
437
 
420
- #: ../app/views/foreman_salt/salt_environments/index.html.erb:8 ../app/views/foreman_salt/salt_modules/import.html.erb:24
438
+ #: ../app/views/foreman_salt/salt_environments/index.html.erb:8
439
+ #: ../app/views/foreman_salt/salt_modules/import.html.erb:24
421
440
  msgid "States"
422
441
  msgstr "States"
423
442
 
424
- #: ../app/views/foreman_salt/salt_environments/index.html.erb:9 ../app/views/foreman_salt/salt_modules/index.html.erb:11
443
+ #: ../app/views/foreman_salt/salt_environments/index.html.erb:9
444
+ #: ../app/views/foreman_salt/salt_modules/index.html.erb:11
425
445
  msgid "Hosts"
426
446
  msgstr "Hosts"
427
447
 
428
- #: ../app/views/foreman_salt/salt_environments/index.html.erb:10 ../app/views/foreman_salt/salt_modules/index.html.erb:12
448
+ #: ../app/views/foreman_salt/salt_environments/index.html.erb:10
449
+ #: ../app/views/foreman_salt/salt_modules/index.html.erb:12
429
450
  msgid "Host groups"
430
451
  msgstr "Hostgruppen"
431
452
 
432
- #: ../app/views/foreman_salt/salt_environments/index.html.erb:21 ../app/views/foreman_salt/salt_modules/index.html.erb:28
453
+ #: ../app/views/foreman_salt/salt_environments/index.html.erb:21
454
+ #: ../app/views/foreman_salt/salt_modules/index.html.erb:28
433
455
  msgid "Delete %s?"
434
456
  msgstr "%s löschen?"
435
457
 
@@ -465,11 +487,15 @@ msgstr "Akzeptieren"
465
487
  msgid "Reject"
466
488
  msgstr "Zurückweisen"
467
489
 
468
- #: ../app/views/foreman_salt/salt_modules/_form.html.erb:4 ../app/views/foreman_salt/salt_modules/_host_tab.html.erb:1 ../app/views/foreman_salt/salt_modules/index.html.erb:1
490
+ #: ../app/views/foreman_salt/salt_modules/_form.html.erb:4
491
+ #: ../app/views/foreman_salt/salt_modules/_host_tab.html.erb:1
492
+ #: ../app/views/foreman_salt/salt_modules/index.html.erb:1
469
493
  msgid "Salt States"
470
494
  msgstr "Salt States"
471
495
 
472
- #: ../app/views/foreman_salt/salt_modules/_form.html.erb:5 ../app/views/foreman_salt/salt_modules/_form.html.erb:14 ../app/views/foreman_salt/salt_modules/index.html.erb:10
496
+ #: ../app/views/foreman_salt/salt_modules/_form.html.erb:5
497
+ #: ../app/views/foreman_salt/salt_modules/_form.html.erb:14
498
+ #: ../app/views/foreman_salt/salt_modules/index.html.erb:10
473
499
  msgid "Environments"
474
500
  msgstr "Umgebungen"
475
501
 
@@ -507,7 +533,7 @@ msgstr ""
507
533
 
508
534
  #: ../app/views/foreman_salt/salt_modules/import.html.erb:21
509
535
  msgid "Check/Uncheck All"
510
- msgstr ""
536
+ msgstr "Alle auswählen/abwählen"
511
537
 
512
538
  #: ../app/views/foreman_salt/salt_modules/import.html.erb:22
513
539
  msgid "Environment"
@@ -525,13 +551,14 @@ msgstr "Abbrechen"
525
551
  msgid "Update"
526
552
  msgstr "Aktualisieren"
527
553
 
528
- #: ../app/views/foreman_salt/salt_modules/index.html.erb:4 ../app/views/foreman_salt/salt_modules/new.html.erb:1
554
+ #: ../app/views/foreman_salt/salt_modules/index.html.erb:4
555
+ #: ../app/views/foreman_salt/salt_modules/new.html.erb:1
529
556
  msgid "New Salt State"
530
557
  msgstr "Neuen Salt State"
531
558
 
532
559
  #: ../app/views/foreman_salt/salt_modules/index.html.erb:9
533
560
  msgid "SaltModule|Name"
534
- msgstr ""
561
+ msgstr "Name"
535
562
 
536
563
  #: ../app/views/foreman_salt/salt_modules/index.html.erb:26
537
564
  msgid "Edit"
@@ -543,7 +570,7 @@ msgstr ""
543
570
 
544
571
  #: ../app/views/hosts/select_multiple_salt_environment.html.erb:5
545
572
  msgid "*Clear environment*"
546
- msgstr ""
573
+ msgstr "*Lösche Umgebung*"
547
574
 
548
575
  #: ../lib/foreman_salt/plugin.rb:152
549
576
  msgid "Run Salt state.highstate"
@@ -551,12 +578,12 @@ msgstr ""
551
578
 
552
579
  #: action_names.rb:2
553
580
  msgid "Action with sub plans"
554
- msgstr ""
581
+ msgstr "Aktion mit Unterplänen"
555
582
 
556
583
  #: action_names.rb:3
557
584
  msgid "Import facts"
558
- msgstr ""
585
+ msgstr "Fakten importieren"
559
586
 
560
587
  #: action_names.rb:4
561
588
  msgid "Import Puppet classes"
562
- msgstr ""
589
+ msgstr "Puppet-Klassen importieren"
@@ -5,7 +5,7 @@
5
5
  #
6
6
  msgid ""
7
7
  msgstr ""
8
- "Project-Id-Version: foreman_salt 1.0.0\n"
8
+ "Project-Id-Version: foreman_salt 13.1.0\n"
9
9
  "Report-Msgid-Bugs-To: \n"
10
10
  "POT-Creation-Date: 2019-07-22 19:13+0000\n"
11
11
  "PO-Revision-Date: 2019-04-25 22:19+0000\n"
@@ -6,6 +6,12 @@ FactoryBot.define do
6
6
  factory :salt_environment, :class => 'ForemanSalt::SaltEnvironment' do
7
7
  sequence(:name) { |n| "environment#{n}" }
8
8
  end
9
+
10
+ factory :salt_variable, :class => 'ForemanSalt::SaltVariable' do
11
+ sequence(:key) { |n| "salt_variable_#{n}" }
12
+ sequence(:default_value) { |n| "default_value_#{n}" }
13
+ salt_module
14
+ end
9
15
  end
10
16
 
11
17
  FactoryBot.modify do
@@ -35,7 +35,7 @@ class ::ForemanSalt::Api::V2::SaltStatesControllerTest < ActionController::TestC
35
35
  @states = { 'env1' => %w(state1 state2 state3),
36
36
  'env2' => %w(state1 state2) }
37
37
 
38
- ::ProxyAPI::Salt.any_instance.stubs(:states_list).returns(@states)
38
+ ProxyAPI::Salt.any_instance.stubs(:states_list).returns(@states)
39
39
  end
40
40
 
41
41
  test 'should import' do
@@ -0,0 +1,35 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'test_plugin_helper'
4
+
5
+ module ForemanSalt
6
+ module Api
7
+ module V2
8
+ # Tests for the controller to CRUD Salt Variables
9
+ class SaltVariablesControllerTest < ActionController::TestCase
10
+ setup do
11
+ @variable = FactoryBot.create(:salt_variable)
12
+ end
13
+
14
+ test 'should get index' do
15
+ get :index, :session => set_session_user
16
+ response = JSON.parse(@response.body)
17
+ assert_not_empty response['results']
18
+ assert_response :success
19
+ end
20
+
21
+ test 'should destroy' do
22
+ delete :destroy, :params => { :id => @variable.id }, :session => set_session_user
23
+ assert_response :ok
24
+ assert_not SaltVariable.exists?(@variable.id)
25
+ end
26
+
27
+ test 'should create' do
28
+ params = { :key => 'test name', :salt_state_id => FactoryBot.create(:salt_module).id }
29
+ post :create, :params => params, :session => set_session_user
30
+ assert_response :success
31
+ end
32
+ end
33
+ end
34
+ end
35
+ end
@@ -2,17 +2,77 @@ require 'test_plugin_helper'
2
2
 
3
3
  module ForemanSalt
4
4
  class MinionsControllerTest < ActionController::TestCase
5
- test 'salt smart proxy should get salt external node' do
5
+ setup do
6
6
  User.current = User.anonymous_admin
7
+ Setting::Salt.load_defaults
7
8
  Setting[:restrict_registered_smart_proxies] = true
8
9
  Setting[:require_ssl_smart_proxies] = false
9
10
 
10
- proxy = FactoryBot.create :smart_proxy, :with_salt_feature
11
- Resolv.any_instance.stubs(:getnames).returns([proxy.to_s])
11
+ @proxy = FactoryBot.create(:smart_proxy, :with_salt_feature)
12
+ Resolv.any_instance.stubs(:getnames).returns([@proxy.to_s])
13
+
14
+ @host = FactoryBot.create(:host, salt_environment: FactoryBot.create(:salt_environment), salt_proxy: @proxy)
15
+ FactoryBot.create(:host_parameter, name: "parameter1", value: "different", host: @host)
16
+ end
17
+
18
+ test 'salt smart proxy should get salt external node' do
19
+ get :node, params: { :id => @host, :format => 'yml' }
20
+ assert_response :success
21
+
22
+ res = YAML.safe_load(@response.body)
23
+ assert_equal res['parameters']['parameter1'], 'different'
24
+ end
25
+
26
+ test 'setting salt_namespace_pillars is considered' do
27
+ Setting['salt_namespace_pillars'] = true
28
+
29
+ get :node, params: { :id => @host, :format => 'yml' }
30
+ assert_response :success
31
+
32
+ res = YAML.safe_load(@response.body)
33
+ assert_equal res['parameters']['foreman']['parameter1'], 'different'
34
+ end
35
+
36
+ test 'salt variable is available' do
37
+ @var = FactoryBot.create(:salt_variable, override: true)
38
+ @var.salt_module.salt_environments << @host.salt_environment
39
+ @host.salt_modules << @var.salt_module
12
40
 
13
- host = FactoryBot.create :host
14
- get :node, params: { :id => host, :format => 'yml' }
41
+ get :node, params: { :id => @host, :format => 'yml' }
15
42
  assert_response :success
43
+
44
+ res = YAML.safe_load(@response.body)
45
+ assert_equal res['parameters'][@var.key], @var.value
46
+ end
47
+
48
+ test 'salt variable overrides host parameter' do
49
+ @var = FactoryBot.create(:salt_variable, key: 'parameter1', override: true)
50
+ @var.salt_module.salt_environments << @host.salt_environment
51
+ @host.salt_modules << @var.salt_module
52
+
53
+ get :node, params: { :id => @host, :format => 'yml' }
54
+ assert_response :success
55
+
56
+ res = YAML.safe_load(@response.body)
57
+ assert_equal res['parameters']['parameter1'], @var.value
58
+ end
59
+
60
+ test 'salt variable matching host' do
61
+ @var = FactoryBot.create(:salt_variable, key: 'parameter1', override: true)
62
+ # rubocop:disable Lint/UselessAssignment
63
+ value1 = LookupValue.create(:lookup_key => @var, :match => "os=debian", :value => "aaa")
64
+ value2 = LookupValue.create(:lookup_key => @var, :match => "fqdn=#{@host.fqdn}", :value => "myval")
65
+ value3 = LookupValue.create(:lookup_key => @var, :match => "hostgroup=Unusual", :value => "bbbb")
66
+ # rubocop:enable Lint/UselessAssignment
67
+
68
+ @var.salt_module.salt_environments << @host.salt_environment
69
+ @host.salt_modules << @var.salt_module
70
+
71
+ get :node, params: { :id => @host, :format => 'yml' }
72
+ assert_response :success
73
+
74
+ res = YAML.safe_load(@response.body)
75
+ assert_equal res['parameters']['parameter1'], value2.value
16
76
  end
17
77
  end
18
78
  end
@@ -0,0 +1,22 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'test_plugin_helper'
4
+ # functional tests for SaltModulesController
5
+ module ForemanSalt
6
+ class SaltModulesControllerTest < ActionController::TestCase
7
+ setup do
8
+ @model = FactoryBot.create(:salt_module)
9
+ end
10
+
11
+ basic_index_test "salt_modules"
12
+ basic_new_test
13
+ basic_edit_test "salt_module"
14
+
15
+ test 'should destroy module' do
16
+ assert_difference('SaltModule.count', -1) do
17
+ delete :destroy, :params => { :id => @model.id }, :session => set_session_user
18
+ end
19
+ assert_redirected_to salt_modules_url
20
+ end
21
+ end
22
+ end
@@ -0,0 +1,33 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'test_plugin_helper'
4
+ module ForemanSalt
5
+ # functional tests for SaltVariablesController
6
+ class SaltVariablesControllerTest < ActionController::TestCase
7
+ setup do
8
+ @model = FactoryBot.create(:salt_variable)
9
+ @proxy = FactoryBot.create(:smart_proxy, :with_salt_feature)
10
+ end
11
+
12
+ basic_index_test "salt_variables"
13
+ basic_new_test
14
+ basic_edit_test "salt_variable"
15
+ basic_pagination_per_page_test
16
+ basic_pagination_rendered_test
17
+
18
+ test 'should destroy variable' do
19
+ assert_difference('SaltVariable.count', -1) do
20
+ delete :destroy, :params => { :id => @model.id }, :session => set_session_user
21
+ end
22
+ assert_redirected_to salt_variables_url
23
+ end
24
+
25
+ test 'should create salt variable' do
26
+ params = { :foreman_salt_salt_variable => { :key => 'great name', :salt_module_id => FactoryBot.create(:salt_module).id } }
27
+ assert_difference('SaltVariable.count', 1) do
28
+ post :create, :params => params, :session => set_session_user
29
+ end
30
+ assert_redirected_to salt_variables_url
31
+ end
32
+ end
33
+ end
@@ -6,7 +6,7 @@ module ForemanSalt
6
6
  setup do
7
7
  @proxy = FactoryBot.create :smart_proxy, :with_salt_feature
8
8
 
9
- ::ProxyAPI::Salt.any_instance.stubs(:autosign_list).returns(
9
+ ProxyAPI::Salt.any_instance.stubs(:autosign_list).returns(
10
10
  ['foo.example.com']
11
11
  )
12
12
  end
@@ -6,7 +6,7 @@ module ForemanSalt
6
6
  setup do
7
7
  @proxy = FactoryBot.create :smart_proxy, :with_salt_feature
8
8
 
9
- ::ProxyAPI::Salt.any_instance.stubs(:key_list).returns(
9
+ ProxyAPI::Salt.any_instance.stubs(:key_list).returns(
10
10
  'saltstack.example.com' => { 'state' => 'accepted', 'fingerprint' => '98:c2:63:c1:57:59:bc:bd:f1:ef:5a:38:b2:e9:71:c0' },
11
11
  'saltclient01.example.com' => { 'state' => 'unaccepted', 'fingerprint' => '98:c2:63:c1:57:59:bc:bd:f1:ef:5a:38:b2:e9:71:c1' },
12
12
  'saltclient02.example.com' => { 'state' => 'unaccepted', 'fingerprint' => '98:c2:63:c1:57:59:bc:bd:f1:ef:5a:38:b2:e9:71:c2' },
@@ -39,12 +39,12 @@ module ForemanSalt
39
39
  end
40
40
 
41
41
  test 'has accept link' do
42
- ::ProxyAPI::Salt.any_instance.stubs(:key_accept).returns(true)
42
+ ProxyAPI::Salt.any_instance.stubs(:key_accept).returns(true)
43
43
  assert_row_button(smart_proxy_salt_keys_path(:smart_proxy_id => @proxy.id), 'saltclient01.example.com', 'Accept', true)
44
44
  end
45
45
 
46
46
  test 'has reject link' do
47
- ::ProxyAPI::Salt.any_instance.stubs(:key_reject).returns(true)
47
+ ProxyAPI::Salt.any_instance.stubs(:key_reject).returns(true)
48
48
  assert_row_button(smart_proxy_salt_keys_path(:smart_proxy_id => @proxy.id), 'saltclient01.example.com', 'Reject', true)
49
49
  end
50
50
  end
@@ -9,7 +9,7 @@ module ForemanSalt
9
9
  states = %w(state1 state2 state3 state4)
10
10
  state_list = { 'env1' => states, 'env2' => states }
11
11
 
12
- ::ProxyAPI::Salt.any_instance.stubs(:states_list).returns(state_list)
12
+ ProxyAPI::Salt.any_instance.stubs(:states_list).returns(state_list)
13
13
  end
14
14
 
15
15
  test 'index page' do