foreman_salt 13.0.0 → 13.1.0

Sign up to get free protection for your applications and to get access to all the features.
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