foreman_discovery 16.3.6 → 17.0.3

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