foreman_discovery 16.3.6 → 17.0.3

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 (94) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/api/v2/discovered_hosts_controller.rb +1 -0
  3. data/app/controllers/discovered_hosts_controller.rb +24 -35
  4. data/app/controllers/discovery_rules_controller.rb +12 -1
  5. data/app/helpers/discovered_hosts_helper.rb +3 -4
  6. data/app/helpers/discovery_rules_helper.rb +1 -0
  7. data/app/models/discovery_rule.rb +10 -5
  8. data/app/services/foreman_discovery/fact_to_category_resolver.rb +106 -0
  9. data/app/services/foreman_discovery/ui_notifications/failed_discovery.rb +34 -0
  10. data/app/services/foreman_discovery/ui_notifications/new_host.rb +2 -1
  11. data/app/views/discovered_hosts/_discovered_hosts_list.html.erb +44 -40
  12. data/app/views/discovered_hosts/welcome.html.erb +1 -1
  13. data/app/views/discovery_rules/clone.erb +3 -0
  14. data/app/views/discovery_rules/index.html.erb +4 -0
  15. data/app/views/discovery_rules/welcome.html.erb +15 -0
  16. data/config/routes.rb +2 -0
  17. data/db/seeds.d/80_discovery_ui_notification.rb +11 -5
  18. data/lib/foreman_discovery/engine.rb +3 -7
  19. data/lib/foreman_discovery/version.rb +1 -1
  20. data/locale/ca/LC_MESSAGES/foreman_discovery.mo +0 -0
  21. data/locale/ca/foreman_discovery.edit.po +44 -40
  22. data/locale/ca/foreman_discovery.po +36 -9
  23. data/locale/de/LC_MESSAGES/foreman_discovery.mo +0 -0
  24. data/locale/de/foreman_discovery.edit.po +42 -38
  25. data/locale/de/foreman_discovery.po +45 -18
  26. data/locale/en/LC_MESSAGES/foreman_discovery.mo +0 -0
  27. data/locale/en/foreman_discovery.edit.po +37 -29
  28. data/locale/en/foreman_discovery.po +31 -4
  29. data/locale/en_GB/LC_MESSAGES/foreman_discovery.mo +0 -0
  30. data/locale/en_GB/foreman_discovery.edit.po +39 -35
  31. data/locale/en_GB/foreman_discovery.po +36 -9
  32. data/locale/es/LC_MESSAGES/foreman_discovery.mo +0 -0
  33. data/locale/es/foreman_discovery.edit.po +42 -38
  34. data/locale/es/foreman_discovery.po +70 -41
  35. data/locale/foreman_discovery.pot +142 -97
  36. data/locale/fr/LC_MESSAGES/foreman_discovery.mo +0 -0
  37. data/locale/fr/foreman_discovery.edit.po +88 -84
  38. data/locale/fr/foreman_discovery.po +76 -49
  39. data/locale/gl/LC_MESSAGES/foreman_discovery.mo +0 -0
  40. data/locale/gl/foreman_discovery.edit.po +42 -38
  41. data/locale/gl/foreman_discovery.po +32 -5
  42. data/locale/it/LC_MESSAGES/foreman_discovery.mo +0 -0
  43. data/locale/it/foreman_discovery.edit.po +42 -38
  44. data/locale/it/foreman_discovery.po +44 -17
  45. data/locale/ja/LC_MESSAGES/foreman_discovery.mo +0 -0
  46. data/locale/ja/foreman_discovery.edit.po +74 -70
  47. data/locale/ja/foreman_discovery.po +79 -54
  48. data/locale/ko/LC_MESSAGES/foreman_discovery.mo +0 -0
  49. data/locale/ko/foreman_discovery.edit.po +42 -38
  50. data/locale/ko/foreman_discovery.po +43 -16
  51. data/locale/pt_BR/LC_MESSAGES/foreman_discovery.mo +0 -0
  52. data/locale/pt_BR/foreman_discovery.edit.po +42 -38
  53. data/locale/pt_BR/foreman_discovery.po +69 -39
  54. data/locale/ru/LC_MESSAGES/foreman_discovery.mo +0 -0
  55. data/locale/ru/foreman_discovery.edit.po +46 -42
  56. data/locale/ru/foreman_discovery.po +43 -16
  57. data/locale/sv_SE/LC_MESSAGES/foreman_discovery.mo +0 -0
  58. data/locale/sv_SE/foreman_discovery.edit.po +42 -38
  59. data/locale/sv_SE/foreman_discovery.po +34 -7
  60. data/locale/zh_CN/LC_MESSAGES/foreman_discovery.mo +0 -0
  61. data/locale/zh_CN/foreman_discovery.edit.po +90 -86
  62. data/locale/zh_CN/foreman_discovery.po +114 -90
  63. data/locale/zh_TW/LC_MESSAGES/foreman_discovery.mo +0 -0
  64. data/locale/zh_TW/foreman_discovery.edit.po +42 -38
  65. data/locale/zh_TW/foreman_discovery.po +43 -16
  66. data/package.json +6 -6
  67. data/test/functional/api/v2/discovered_hosts_controller_test.rb +9 -0
  68. data/test/functional/discovery_rules_controller_test.rb +6 -1
  69. data/test/integration/discovered_hosts_test.rb +53 -5
  70. data/test/test_helper_discovery.rb +5 -0
  71. data/test/unit/discovery_rule_test.rb +24 -2
  72. data/test/unit/fact_to_category_resolver_test.rb +41 -0
  73. data/test/unit/ui_notifications/destroy_host_test.rb +2 -9
  74. data/test/unit/ui_notifications/new_host_test.rb +3 -3
  75. data/webpack/__mocks__/foremanReact/common/I18n.js +3 -0
  76. data/webpack/__mocks__/foremanReact/common/helpers.js +1 -0
  77. data/webpack/__mocks__/foremanReact/common/index.js +5 -0
  78. data/webpack/__mocks__/foremanReact/components/common/EmptyState/DefaultEmptyState.js +69 -0
  79. data/webpack/__mocks__/foremanReact/components/common/EmptyState/EmptyStatePattern.js +77 -0
  80. data/webpack/__mocks__/foremanReact/components/common/EmptyState/EmptyStatePropTypes.js +29 -0
  81. data/webpack/__mocks__/foremanReact/components/common/EmptyState/index.js +5 -0
  82. data/webpack/index.js +9 -8
  83. data/webpack/src/ForemanDiscovery/DiscoveredHosts/Components/EmptyState/EmptyState.js +7 -7
  84. data/webpack/src/ForemanDiscovery/DiscoveredHosts/Components/EmptyState/__test__/EmptyState.test.js +12 -0
  85. data/webpack/src/ForemanDiscovery/DiscoveredHosts/Components/EmptyState/__test__/__snapshots__/EmptyState.test.js.snap +16 -0
  86. data/webpack/src/ForemanDiscovery/DiscoveredHosts/Components/EmptyState/index.js +1 -1
  87. data/webpack/src/ForemanDiscovery/DiscoveredHosts/index.js +3 -3
  88. data/webpack/src/ForemanDiscovery/DiscoveryRules/Components/EmptyState/EmptyState.js +34 -0
  89. data/webpack/src/ForemanDiscovery/DiscoveryRules/Components/EmptyState/index.js +1 -0
  90. data/webpack/src/ForemanDiscovery/DiscoveryRules/Components/__test__/EmptyState.test.js +19 -0
  91. data/webpack/src/ForemanDiscovery/DiscoveryRules/Components/__test__/__snapshots__/EmptyState.test.js.snap +22 -0
  92. data/webpack/src/ForemanDiscovery/DiscoveryRules/index.js +6 -0
  93. data/webpack/src/reducers.js +0 -2
  94. metadata +31 -9
@@ -5,11 +5,11 @@
5
5
  # Translators:
6
6
  msgid ""
7
7
  msgstr ""
8
- "Project-Id-Version: foreman_discovery 16.3.4\n"
8
+ "Project-Id-Version: foreman_discovery 17.1.0\n"
9
9
  "Report-Msgid-Bugs-To: \n"
10
- "POT-Creation-Date: 2021-05-03 08:46+0200\n"
11
- "PO-Revision-Date: 2021-01-25 08:35+0000\n"
12
- "Last-Translator: Transifex Bot <>\n"
10
+ "POT-Creation-Date: 2021-09-20 17:25+0200\n"
11
+ "PO-Revision-Date: 2021-05-03 08:29+0000\n"
12
+ "Last-Translator: 0868a4d1af5275b3f70b0a6dac4c99a4\n"
13
13
  "Language-Team: Chinese (Taiwan) (http://www.transifex.com/foreman/foreman/lang"
14
14
  "uage/zh_TW/)\n"
15
15
  "MIME-Version: 1.0\n"
@@ -118,7 +118,7 @@ msgstr ""
118
118
  msgid "Execute rules against a discovered host"
119
119
  msgstr ""
120
120
 
121
- #: ../app/controllers/api/v2/discovered_hosts_controller.rb:136 ../app/controllers/discovered_hosts_controller.rb:157
121
+ #: ../app/controllers/api/v2/discovered_hosts_controller.rb:136 ../app/controllers/discovered_hosts_controller.rb:160
122
122
  msgid "Host %{host} was provisioned with rule %{rule}"
123
123
  msgstr ""
124
124
 
@@ -126,7 +126,7 @@ msgstr ""
126
126
  msgid "Unable to provision %{host}: %{errors}"
127
127
  msgstr ""
128
128
 
129
- #: ../app/controllers/api/v2/discovered_hosts_controller.rb:145 ../app/controllers/discovered_hosts_controller.rb:164
129
+ #: ../app/controllers/api/v2/discovered_hosts_controller.rb:145 ../app/controllers/discovered_hosts_controller.rb:167
130
130
  msgid "No rule found for host %s"
131
131
  msgstr ""
132
132
 
@@ -134,11 +134,11 @@ msgstr ""
134
134
  msgid "Execute rules against all currently discovered hosts"
135
135
  msgstr ""
136
136
 
137
- #: ../app/controllers/api/v2/discovered_hosts_controller.rb:156 ../app/controllers/discovered_hosts_controller.rb:170
137
+ #: ../app/controllers/api/v2/discovered_hosts_controller.rb:156 ../app/controllers/discovered_hosts_controller.rb:173
138
138
  msgid "Errors during auto provisioning: %s"
139
139
  msgstr ""
140
140
 
141
- #: ../app/controllers/api/v2/discovered_hosts_controller.rb:159 ../app/controllers/discovered_hosts_controller.rb:173
141
+ #: ../app/controllers/api/v2/discovered_hosts_controller.rb:159 ../app/controllers/discovered_hosts_controller.rb:176
142
142
  msgid "No discovered hosts to provision"
143
143
  msgstr ""
144
144
 
@@ -158,7 +158,7 @@ msgstr ""
158
158
  msgid "Rebooting all discovered hosts"
159
159
  msgstr ""
160
160
 
161
- #: ../app/controllers/api/v2/discovered_hosts_controller.rb:221 ../app/controllers/discovered_hosts_controller.rb:126
161
+ #: ../app/controllers/api/v2/discovered_hosts_controller.rb:221 ../app/controllers/discovered_hosts_controller.rb:129
162
162
  msgid "Discovered hosts are rebooting now"
163
163
  msgstr ""
164
164
 
@@ -238,75 +238,75 @@ msgstr ""
238
238
  msgid "No discovered hosts to reboot"
239
239
  msgstr ""
240
240
 
241
- #: ../app/controllers/discovered_hosts_controller.rb:60
241
+ #: ../app/controllers/discovered_hosts_controller.rb:63
242
242
  msgid "Successfully provisioned %s"
243
243
  msgstr ""
244
244
 
245
- #: ../app/controllers/discovered_hosts_controller.rb:94
245
+ #: ../app/controllers/discovered_hosts_controller.rb:97
246
246
  msgid "Facts refreshed for %s"
247
247
  msgstr "%s 的詳情已刷新"
248
248
 
249
- #: ../app/controllers/discovered_hosts_controller.rb:96
249
+ #: ../app/controllers/discovered_hosts_controller.rb:99
250
250
  msgid "Failed to refresh facts for %s"
251
251
  msgstr "刷新 %s 的詳情失敗"
252
252
 
253
- #: ../app/controllers/discovered_hosts_controller.rb:99
253
+ #: ../app/controllers/discovered_hosts_controller.rb:102
254
254
  msgid "Failed to refresh facts for %{hostname} with error %{error_message}"
255
255
  msgstr ""
256
256
 
257
- #: ../app/controllers/discovered_hosts_controller.rb:106
257
+ #: ../app/controllers/discovered_hosts_controller.rb:109
258
258
  msgid "Host of type %s can not be rebooted"
259
259
  msgstr ""
260
260
 
261
- #: ../app/controllers/discovered_hosts_controller.rb:110
261
+ #: ../app/controllers/discovered_hosts_controller.rb:113
262
262
  msgid "Rebooting host %s"
263
263
  msgstr ""
264
264
 
265
- #: ../app/controllers/discovered_hosts_controller.rb:112
265
+ #: ../app/controllers/discovered_hosts_controller.rb:115
266
266
  msgid "Failed to reboot host %s"
267
267
  msgstr ""
268
268
 
269
- #: ../app/controllers/discovered_hosts_controller.rb:115
269
+ #: ../app/controllers/discovered_hosts_controller.rb:118
270
270
  msgid "Failed to reboot host %{hostname} with error %{error_message}"
271
271
  msgstr ""
272
272
 
273
- #: ../app/controllers/discovered_hosts_controller.rb:129
273
+ #: ../app/controllers/discovered_hosts_controller.rb:132
274
274
  msgid "Failed to reboot hosts with error %s"
275
275
  msgstr ""
276
276
 
277
- #: ../app/controllers/discovered_hosts_controller.rb:147
277
+ #: ../app/controllers/discovered_hosts_controller.rb:150
278
278
  msgid "Destroyed selected hosts"
279
279
  msgstr "刪除選擇的主機"
280
280
 
281
- #: ../app/controllers/discovered_hosts_controller.rb:149
281
+ #: ../app/controllers/discovered_hosts_controller.rb:152
282
282
  msgid "The following hosts were not deleted: %s"
283
283
  msgstr "下列主機尚未刪除:%s"
284
284
 
285
- #: ../app/controllers/discovered_hosts_controller.rb:161
285
+ #: ../app/controllers/discovered_hosts_controller.rb:164
286
286
  msgid "Failed to auto provision host %s: %s"
287
287
  msgstr ""
288
288
 
289
- #: ../app/controllers/discovered_hosts_controller.rb:189
289
+ #: ../app/controllers/discovered_hosts_controller.rb:192
290
290
  msgid "Discovered hosts are provisioning now"
291
291
  msgstr ""
292
292
 
293
- #: ../app/controllers/discovered_hosts_controller.rb:270
293
+ #: ../app/controllers/discovered_hosts_controller.rb:277
294
294
  msgid "Discovered host reported from unknown subnet, communication will not be proxied."
295
295
  msgstr ""
296
296
 
297
- #: ../app/controllers/discovered_hosts_controller.rb:275
297
+ #: ../app/controllers/discovered_hosts_controller.rb:282
298
298
  msgid "Discovered hosts reported from unknown subnet are %s, communication will not be proxied."
299
299
  msgstr ""
300
300
 
301
- #: ../app/controllers/discovered_hosts_controller.rb:289
301
+ #: ../app/controllers/discovered_hosts_controller.rb:296
302
302
  msgid "No hosts were found with that id or name"
303
303
  msgstr "沒有找到擁有此 ID 或名稱的主機"
304
304
 
305
- #: ../app/controllers/discovered_hosts_controller.rb:293
305
+ #: ../app/controllers/discovered_hosts_controller.rb:300
306
306
  msgid "No hosts selected"
307
307
  msgstr "未選擇主機"
308
308
 
309
- #: ../app/controllers/discovered_hosts_controller.rb:299
309
+ #: ../app/controllers/discovered_hosts_controller.rb:306
310
310
  msgid "Something went wrong while selecting hosts - %s"
311
311
  msgstr "選擇主機時發生了錯誤 - %s"
312
312
 
@@ -404,7 +404,7 @@ msgstr ""
404
404
 
405
405
  #: ../app/helpers/discovery_rules_helper.rb:33
406
406
  msgid "Clone"
407
- msgstr ""
407
+ msgstr "複製"
408
408
 
409
409
  #: ../app/helpers/discovery_rules_helper.rb:34
410
410
  msgid "Delete rule '%s'?"
@@ -470,23 +470,23 @@ msgstr ""
470
470
  msgid "Facts could not be imported"
471
471
  msgstr ""
472
472
 
473
- #: ../app/models/host/discovered.rb:146
473
+ #: ../app/models/host/discovered.rb:155
474
474
  msgid "Could not get facts from proxy %{url}: %{error}"
475
475
  msgstr ""
476
476
 
477
- #: ../app/models/host/discovered.rb:160
477
+ #: ../app/models/host/discovered.rb:173
478
478
  msgid "Unable to perform reboot on %{name} (%{url}): %{msg}"
479
479
  msgstr ""
480
480
 
481
- #: ../app/models/host/discovered.rb:164 ../app/models/host/discovered.rb:183
481
+ #: ../app/models/host/discovered.rb:177 ../app/models/host/discovered.rb:200
482
482
  msgid "Unable to perform %{action} on %{ips}"
483
483
  msgstr ""
484
484
 
485
- #: ../app/models/host/discovered.rb:179
485
+ #: ../app/models/host/discovered.rb:196
486
486
  msgid "Unable to perform kexec on %{name} (%{url}): %{msg}"
487
487
  msgstr ""
488
488
 
489
- #: ../app/models/host/discovered.rb:203
489
+ #: ../app/models/host/discovered.rb:220
490
490
  msgid "Invalid hostname: Could not normalize the hostname"
491
491
  msgstr ""
492
492
 
@@ -694,6 +694,14 @@ msgstr ""
694
694
  msgid "Type of name generator"
695
695
  msgstr ""
696
696
 
697
+ #: ../app/models/setting/discovered.rb:40
698
+ msgid "Prefer IPv6 to IPv4 when calling discovered nodes"
699
+ msgstr ""
700
+
701
+ #: ../app/models/setting/discovered.rb:40
702
+ msgid "Prefer IPv6"
703
+ msgstr ""
704
+
697
705
  #: ../app/services/foreman_discovery/fact_parser.rb:4
698
706
  msgid "Discovery fact parser does not work with non-discovery host '%{host}'"
699
707
  msgstr ""
@@ -974,7 +982,7 @@ msgstr ""
974
982
 
975
983
  #: ../app/views/discovery_rules/clone.erb:1
976
984
  msgid "Clone %s"
977
- msgstr ""
985
+ msgstr "複製 %s"
978
986
 
979
987
  #: ../app/views/discovery_rules/edit.html.erb:1
980
988
  msgid "Edit %s"
@@ -1087,7 +1095,3 @@ msgstr "匯入詳情"
1087
1095
  #: action_names.rb:5
1088
1096
  msgid "Action with sub plans"
1089
1097
  msgstr "有子計畫的動作"
1090
-
1091
- #: ../app/helpers/discovered_hosts_helper.rb:10
1092
- #~ msgid "%s ago"
1093
- #~ msgstr "%s 之前"
@@ -5,9 +5,9 @@
5
5
  # Translators:
6
6
  msgid ""
7
7
  msgstr ""
8
- "Project-Id-Version: foreman_discovery 16.2.0\n"
8
+ "Project-Id-Version: foreman_discovery 16.3.4\n"
9
9
  "Report-Msgid-Bugs-To: \n"
10
- "PO-Revision-Date: 2020-05-26 17:21+0000\n"
10
+ "PO-Revision-Date: 2021-01-25 08:35+0000\n"
11
11
  "Last-Translator: Transifex Bot <>\n"
12
12
  "Language-Team: Chinese (Taiwan) (http://www.transifex.com/foreman/foreman/lang"
13
13
  "uage/zh_TW/)\n"
@@ -20,9 +20,6 @@ msgstr ""
20
20
  msgid "%s - The following hosts are about to be changed"
21
21
  msgstr "%s - 以下主機即將受到更改"
22
22
 
23
- msgid "%s ago"
24
- msgstr "%s 之前"
25
-
26
23
  msgid "%s discovered hosts were provisioned"
27
24
  msgstr ""
28
25
 
@@ -33,7 +30,7 @@ msgid "A summary of discovered hosts"
33
30
  msgstr ""
34
31
 
35
32
  msgid "Action with sub plans"
36
- msgstr ""
33
+ msgstr "有子計畫的動作"
37
34
 
38
35
  msgid "Actions"
39
36
  msgstr "動作"
@@ -80,6 +77,12 @@ msgstr ""
80
77
  msgid "Clean all reported facts during provisioning (except discovery facts)"
81
78
  msgstr ""
82
79
 
80
+ msgid "Clone"
81
+ msgstr ""
82
+
83
+ msgid "Clone %s"
84
+ msgstr ""
85
+
83
86
  msgid "Collapse All"
84
87
  msgstr "全部收回"
85
88
 
@@ -145,9 +148,15 @@ msgstr[1] ""
145
148
  msgid "Discovered Hosts"
146
149
  msgstr ""
147
150
 
151
+ msgid "Discovered Rules"
152
+ msgstr ""
153
+
148
154
  msgid "Discovered host '%{host}' has all NICs filtered out, filter: %{filter}"
149
155
  msgstr ""
150
156
 
157
+ msgid "Discovered host reported from unknown subnet, communication will not be proxied."
158
+ msgstr ""
159
+
151
160
  msgid "Discovered host: %s"
152
161
  msgstr "發現的主機:%s"
153
162
 
@@ -160,6 +169,9 @@ msgstr ""
160
169
  msgid "Discovered hosts from Foreman server at %{foreman_url}"
161
170
  msgstr ""
162
171
 
172
+ msgid "Discovered hosts reported from unknown subnet are %s, communication will not be proxied."
173
+ msgstr ""
174
+
163
175
  msgid "Discovered hosts summary"
164
176
  msgstr ""
165
177
 
@@ -226,6 +238,9 @@ msgstr "啟用"
226
238
  msgid "Enable rule '%s'?"
227
239
  msgstr ""
228
240
 
241
+ msgid "Error message goes here"
242
+ msgstr ""
243
+
229
244
  msgid "Error on existing NIC"
230
245
  msgstr ""
231
246
 
@@ -280,6 +295,9 @@ msgstr "刷新 %s 的詳情失敗"
280
295
  msgid "Failed to refresh facts for %{hostname} with error %{error_message}"
281
296
  msgstr ""
282
297
 
298
+ msgid "For more information please see "
299
+ msgstr ""
300
+
283
301
  msgid "Force DNS"
284
302
  msgstr ""
285
303
 
@@ -304,6 +322,9 @@ msgstr ""
304
322
  msgid "Host"
305
323
  msgstr "主機"
306
324
 
325
+ msgid "Host %s has been dicovered"
326
+ msgstr ""
327
+
307
328
  msgid "Host %{host} was provisioned with rule %{rule}"
308
329
  msgstr ""
309
330
 
@@ -324,10 +345,10 @@ msgid "Host of type %s can not be rebooted"
324
345
  msgstr ""
325
346
 
326
347
  msgid "Host's owner type"
327
- msgstr ""
348
+ msgstr "主機的擁有者類型"
328
349
 
329
350
  msgid "Host's parameters (array or indexed hash)"
330
- msgstr ""
351
+ msgstr "主機參數(陣列或索引過的雜湊)"
331
352
 
332
353
  msgid "Hostname facts"
333
354
  msgstr ""
@@ -378,10 +399,10 @@ msgid "Image API returned HTTP/%{code} with '%{body}"
378
399
  msgstr ""
379
400
 
380
401
  msgid "Import Puppet classes"
381
- msgstr ""
402
+ msgstr "匯入 Puppet 類別"
382
403
 
383
404
  msgid "Import facts"
384
- msgstr ""
405
+ msgstr "匯入詳情"
385
406
 
386
407
  msgid "In addition to @host attribute function rand for random integers is available. Examples:"
387
408
  msgstr ""
@@ -471,7 +492,7 @@ msgid "Name"
471
492
  msgstr "名稱"
472
493
 
473
494
  msgid "Name of the parameter"
474
- msgstr ""
495
+ msgstr "參數名稱"
475
496
 
476
497
  msgid "Network"
477
498
  msgstr "網路"
@@ -482,6 +503,9 @@ msgstr ""
482
503
  msgid "New Discovery Rule"
483
504
  msgstr ""
484
505
 
506
+ msgid "New hosts"
507
+ msgstr ""
508
+
485
509
  msgid "New in the last 24 hours"
486
510
  msgstr ""
487
511
 
@@ -534,7 +558,7 @@ msgid "PXELinux template to be used when pinning a host to discovery"
534
558
  msgstr ""
535
559
 
536
560
  msgid "Parameter value"
537
- msgstr ""
561
+ msgstr "參數值"
538
562
 
539
563
  msgid "Please Confirm"
540
564
  msgstr "請確認"
@@ -600,7 +624,7 @@ msgid "Reloading kernel on %s"
600
624
  msgstr ""
601
625
 
602
626
  msgid "Remote action:"
603
- msgstr ""
627
+ msgstr "遠端動作:"
604
628
 
605
629
  msgid "Reported in the last 7 days"
606
630
  msgstr ""
@@ -728,6 +752,9 @@ msgstr ""
728
752
  msgid "defines a pattern to assign human-readable hostnames to the matching hosts"
729
753
  msgstr ""
730
754
 
755
+ msgid "documentation"
756
+ msgstr ""
757
+
731
758
  msgid "enables to limit maximum amount of provisioned hosts per rule"
732
759
  msgstr ""
733
760
 
@@ -777,13 +804,13 @@ msgid "represents rule name shown to the users"
777
804
  msgstr ""
778
805
 
779
806
  msgid "required if host is managed and custom partition has not been defined"
780
- msgstr ""
807
+ msgstr "若主機是個受管理的主機,並且尚未定義自訂分割區的話便需要"
781
808
 
782
809
  msgid "required if host is managed and value is not inherited from host group"
783
- msgstr ""
810
+ msgstr "若主機是個受管理的主機,並且值不是由主機群組所繼承的話便需要"
784
811
 
785
812
  msgid "required if not imaged based provisioning and host is managed and value is not inherited from host group"
786
- msgstr ""
813
+ msgstr "若不是基於映像檔的佈建,而主機受管理並且值並非由主機群組所繼承的話便需要"
787
814
 
788
815
  msgid "required if value is not inherited from host group or default password in settings"
789
816
  msgstr ""
data/package.json CHANGED
@@ -21,15 +21,15 @@
21
21
  "url": "http://projects.theforeman.org/projects/foreman_discovery/issues"
22
22
  },
23
23
  "peerDependencies": {
24
- "@theforeman/vendor": ">= 4.14.0"
24
+ "@theforeman/vendor": "^6.0.0"
25
25
  },
26
26
  "devDependencies": {
27
27
  "@babel/core": "^7.7.0",
28
- "@theforeman/builder": "^4.14.0",
29
- "@theforeman/eslint-plugin-foreman": "4.14.0",
30
- "@theforeman/stories": "^4.14.0",
31
- "@theforeman/test": "^4.14.0",
32
- "@theforeman/vendor-dev": "^4.14.0",
28
+ "@theforeman/builder": "^6.0.0",
29
+ "@theforeman/eslint-plugin-foreman": "^6.0.0",
30
+ "@theforeman/stories": "^6.0.0",
31
+ "@theforeman/test": "^8.0.0",
32
+ "@theforeman/vendor-dev": "^6.0.0",
33
33
  "babel-eslint": "^10.0.3",
34
34
  "eslint": "^6.7.2",
35
35
  "prettier": "^1.19.1",
@@ -4,6 +4,8 @@ class Api::V2::DiscoveredHostsControllerTest < ActionController::TestCase
4
4
  include FactImporterIsolation
5
5
  allow_transactions_for_any_importer
6
6
 
7
+ alias_method :blueprint, :failed_discovery_blueprint
8
+
7
9
  def switch_controller(klass)
8
10
  old_controller = @controller
9
11
  @controller = klass.new
@@ -26,6 +28,8 @@ class Api::V2::DiscoveredHostsControllerTest < ActionController::TestCase
26
28
  set_default_settings
27
29
  ::ForemanDiscovery::NodeAPI::PowerService.any_instance.stubs(:reboot).returns(true)
28
30
  ::ForemanDiscovery::HostConverter.stubs(:unused_ip_for_host)
31
+
32
+ assert blueprint
29
33
  end
30
34
 
31
35
  def test_get_index
@@ -206,4 +210,9 @@ class Api::V2::DiscoveredHostsControllerTest < ActionController::TestCase
206
210
  assert_response :success
207
211
  end
208
212
 
213
+ def test_failed_discovery_notification
214
+ bad_facts = { this_is: 'bad' }
215
+ post :facts, params: { facts: bad_facts }
216
+ assert_equal 1, Notification.all.count
217
+ end
209
218
  end
@@ -12,7 +12,6 @@ class DiscoveryRulesControllerTest < ActionController::TestCase
12
12
  test "reader role should get index" do
13
13
  get :index, params: {}, session: set_session_user_default_reader
14
14
  assert_response :success
15
- assert_not_nil assigns(:discovery_rules)
16
15
  end
17
16
 
18
17
  test "should get new" do
@@ -72,6 +71,12 @@ class DiscoveryRulesControllerTest < ActionController::TestCase
72
71
  assert_redirected_to discovery_rules_path
73
72
  end
74
73
 
74
+ test 'clone' do
75
+ rule = FactoryBot.create(:discovery_rule)
76
+ get :clone, params: { :id => rule.id }, session: set_session_user
77
+ assert_template 'clone'
78
+ end
79
+
75
80
  private
76
81
 
77
82
  def initialize_host
@@ -3,6 +3,7 @@ require 'integration_test_helper'
3
3
 
4
4
  class DiscoveredHostsTest < IntegrationTestWithJavascript
5
5
  let(:discovered_host) { FactoryBot.create(:discovered_host, :with_facts) }
6
+ let(:subnet) { FactoryBot.create(:subnet_ipv4, :network => "192.168.100.0") }
6
7
  let(:discovered_hosts) { Host::Discovered.all }
7
8
 
8
9
  setup do
@@ -17,8 +18,9 @@ class DiscoveredHostsTest < IntegrationTestWithJavascript
17
18
  Host::Discovered.destroy_all
18
19
  end
19
20
 
20
- describe 'Multiple host Reboot' do
21
- test 'triggers reboot on all discovered_hosts' do
21
+ describe 'Perform host Reboot' do
22
+ test 'triggers reboot on a single discovered_host' do
23
+ Host::Discovered.any_instance.stubs(:subnet).returns(subnet)
22
24
  Host::Discovered.any_instance
23
25
  .expects(:reboot)
24
26
  .at_least(discovered_hosts.count)
@@ -29,24 +31,70 @@ class DiscoveredHostsTest < IntegrationTestWithJavascript
29
31
  assert page.has_text?('The following hosts are about to be changed')
30
32
  page.find_button('Submit').click
31
33
  end
34
+
35
+ test 'triggers reboot on all discovered_hosts' do
36
+ Host::Discovered.any_instance.stubs(:subnet).returns(subnet)
37
+ Host::Discovered.any_instance
38
+ .expects(:reboot)
39
+ .at_least(discovered_hosts.count)
40
+ select_all_hosts
41
+ page.find_link('Select Action').click
42
+ page.find_link('Reboot').click
43
+ wait_for_ajax
44
+ assert page.has_text?('The following hosts are about to be changed')
45
+ page.find_button('Submit').click
46
+ end
47
+
48
+ test 'shows warning for all hosts with missing subnet' do
49
+ select_all_hosts
50
+ page.find_link('Select Action').click
51
+ page.find_link('Auto Provision').click
52
+ wait_for_ajax
53
+ assert page.has_text?('The following hosts are about to be changed')
54
+ page.find_button('Submit').click
55
+ wait_for_ajax
56
+ assert page.has_text?("Discovered hosts reported from unknown subnet")
57
+ end
32
58
  end
33
59
 
34
- describe 'Multiple host Autoprovision' do
35
- test 'converts all discovered to managed hosts' do
60
+ describe 'Perform host Autoprovision' do
61
+ test 'converts single discovered to managed host' do
62
+ Host::Discovered.any_instance.stubs(:subnet).returns(subnet)
36
63
  select_host_checkbox(discovered_host.id)
37
64
  page.find_link('Select Action').click
38
65
  page.find_link('Auto Provision').click
39
66
  wait_for_ajax
40
67
  assert page.has_text?('The following hosts are about to be changed')
41
68
  page.find_button('Submit').click
69
+ end
70
+
71
+ test 'converts all discovered to managed hosts' do
72
+ Host::Discovered.any_instance.stubs(:subnet).returns(subnet)
73
+ select_all_hosts
74
+ page.find_link('Select Action').click
75
+ page.find_link('Auto Provision').click
76
+ wait_for_ajax
77
+ assert page.has_text?('The following hosts are about to be changed')
78
+ page.find_button('Submit').click
42
79
  wait_for_ajax
43
80
  assert page.has_text?('Discovered hosts are provisioning now')
44
81
  end
82
+
83
+ test 'shows warning for all hosts with missing subnet' do
84
+ select_all_hosts
85
+ page.find_link('Select Action').click
86
+ page.find_link('Auto Provision').click
87
+ wait_for_ajax
88
+ assert page.has_text?('The following hosts are about to be changed')
89
+ page.find_button('Submit').click
90
+ wait_for_ajax
91
+ assert page.has_text?("Discovered hosts reported from unknown subnet")
92
+ end
45
93
  end
46
94
 
47
95
  describe 'Delete hosts' do
48
96
  test 'it removes all hosts' do
49
- select_host_checkbox(discovered_host.id)
97
+ select_all_hosts
50
98
  page.find_link('Select Action').click
51
99
  page.find_link('Delete').click
52
100
  wait_for_ajax
@@ -172,6 +172,11 @@ def discovered_notification_blueprint
172
172
  name: 'new_discovered_host')
173
173
  end
174
174
 
175
+ def failed_discovery_blueprint
176
+ @blueprint ||= FactoryBot.create(:notification_blueprint,
177
+ name: 'failed_discovery')
178
+ end
179
+
175
180
  def parse_json_fixture(filename, remove_root_element = false)
176
181
  raw = JSON.parse(File.read(File.expand_path(File.dirname(__FILE__) + "/facts/#{filename}.json")))
177
182
  remove_root_element ? raw['facts'] : raw
@@ -155,7 +155,7 @@ class DiscoveryRuleTest < ActiveSupport::TestCase
155
155
  :search => "cpu_count > 1",
156
156
  :hostgroup_id => @hostgroup.id
157
157
  refute_valid rule
158
- assert_equal "Host group organization #{organization_one.name} must also be associated to the discovery rule", rule.errors[:organizations].first
158
+ assert_equal "Host group organization #{organization_one.name} must also be associated to the discovery rule", rule.errors[:base].first
159
159
  end
160
160
 
161
161
  test "should enforce hostgroup organizations and locations" do
@@ -168,7 +168,7 @@ class DiscoveryRuleTest < ActiveSupport::TestCase
168
168
  :organization_ids => [organization_one.id],
169
169
  :location_ids => [location_one.id]
170
170
  refute_valid rule
171
- assert_equal "Host group location #{loc.name} must also be associated to the discovery rule", rule.errors[:locations].first
171
+ assert_equal "Host group location #{loc.name} must also be associated to the discovery rule", rule.errors[:base].first
172
172
  end
173
173
 
174
174
  context 'auditing related to discovery rule' do
@@ -218,4 +218,26 @@ class DiscoveryRuleTest < ActiveSupport::TestCase
218
218
  assert_equal DiscoveryRule::STEP, second_new.priority - first_new.priority
219
219
  end
220
220
  end
221
+
222
+ context 'suggest next priority' do
223
+ setup do
224
+ @organization = FactoryBot.create(:organization)
225
+ @location = FactoryBot.create(:location)
226
+ end
227
+
228
+ test 'when there exists a discovery_rule of the given organization' do
229
+ hostgroup = FactoryBot.create(:hostgroup, organizations: [@organization], locations: [@location] )
230
+ discovery_rule = FactoryBot.create(:discovery_rule,
231
+ priority: rand(100),
232
+ hostgroup: hostgroup,
233
+ organizations: [@organization],
234
+ locations: [@location])
235
+
236
+ assert_equal DiscoveryRule.suggest_priority(@organization), (discovery_rule.priority + DiscoveryRule::STEP)
237
+ end
238
+
239
+ test 'when there is no discovery_rule of the given organization' do
240
+ assert_equal DiscoveryRule.suggest_priority(@organization), DiscoveryRule::STEP
241
+ end
242
+ end
221
243
  end
@@ -0,0 +1,41 @@
1
+ require_relative '../test_plugin_helper'
2
+
3
+ class FactToCategoryResolverTest < ActiveSupport::TestCase
4
+ class FakePrimaryInterface < OpenStruct
5
+ def subnet
6
+ nil
7
+ end
8
+ end
9
+
10
+ setup do
11
+ interfaces = [{
12
+ identifier: 'eth0',
13
+ mac: 'aa:bb:cc:dd:ee:f1',
14
+ ip: '192.168.1.1',
15
+ }.with_indifferent_access]
16
+ facts = {
17
+ :macaddress_eth0 => 'aa:bb:cc:dd:ee:f1',
18
+ :ipaddress_eth0 => '192.168.1.1',
19
+ manufacturer: 'TEST-Creator',
20
+ hardwaremodel: 'TEST_X64',
21
+ bios_vendor: 'TEST_BIOS',
22
+ }.with_indifferent_access
23
+
24
+ @host = Host::Discovered.new(name: 'dummy')
25
+ @host.stubs(:facts_hash).returns(facts)
26
+ @host.stubs(:interfaces).returns(interfaces)
27
+ @host.stubs(:primary_interface).returns(FakePrimaryInterface.new)
28
+ @resolver = ForemanDiscovery::FactToCategoryResolver.new(@host)
29
+ end
30
+
31
+ test 'resolve facts to right category' do
32
+ categories = @resolver.categories
33
+ hardware_category = categories[2]
34
+ network_category = categories[3]
35
+ software_category = categories[4]
36
+
37
+ assert_equal hardware_category['hardwaremodel'], 'TEST_X64'
38
+ assert_equal network_category['ipaddress_eth0'], '192.168.1.1'
39
+ assert_equal software_category['bios_vendor'], 'TEST_BIOS'
40
+ end
41
+ end