foreman_discovery 6.0.0 → 7.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (81) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +1 -1
  3. data/app/controllers/api/v2/discovered_hosts_controller.rb +6 -4
  4. data/app/controllers/api/v2/discovery_rules_controller.rb +3 -2
  5. data/app/controllers/concerns/foreman/controller/parameters/discovered_host.rb +24 -0
  6. data/app/controllers/concerns/foreman/controller/parameters/discovery_rule.rb +17 -0
  7. data/app/controllers/discovered_hosts_controller.rb +3 -2
  8. data/app/controllers/discovery_rules_controller.rb +4 -2
  9. data/app/helpers/discovered_hosts_helper.rb +7 -10
  10. data/app/models/concerns/discovery_subnet.rb +0 -2
  11. data/app/models/concerns/fact_value_extensions.rb +5 -0
  12. data/app/models/discovery_attribute_set.rb +0 -1
  13. data/app/models/discovery_rule.rb +0 -2
  14. data/app/models/host/discovered.rb +0 -2
  15. data/app/models/host/managed_extensions.rb +1 -3
  16. data/app/models/hostgroup_extensions.rb +0 -1
  17. data/app/models/nic/managed_extensions.rb +26 -0
  18. data/app/models/setting/discovered.rb +1 -0
  19. data/app/views/discovered_hosts/_discovered_host_modal.html.erb +30 -0
  20. data/app/views/discovered_hosts/_discovered_hosts_list.html.erb +1 -29
  21. data/app/views/discovered_hosts/show.html.erb +20 -12
  22. data/app/views/discovery_rules/_form.html.erb +1 -1
  23. data/app/views/foreman_discovery/debian_kexec.erb +2 -3
  24. data/app/views/foreman_discovery/redhat_kexec.erb +2 -3
  25. data/lib/foreman_discovery/engine.rb +8 -1
  26. data/lib/foreman_discovery/version.rb +1 -1
  27. data/locale/ca/LC_MESSAGES/foreman_discovery.mo +0 -0
  28. data/locale/ca/foreman_discovery.edit.po +1 -1
  29. data/locale/ca/foreman_discovery.po +2 -2
  30. data/locale/de/LC_MESSAGES/foreman_discovery.mo +0 -0
  31. data/locale/de/foreman_discovery.edit.po +33 -33
  32. data/locale/de/foreman_discovery.po +67 -67
  33. data/locale/en/LC_MESSAGES/foreman_discovery.mo +0 -0
  34. data/locale/en/foreman_discovery.edit.po +138 -130
  35. data/locale/en/foreman_discovery.po +13 -7
  36. data/locale/en_GB/LC_MESSAGES/foreman_discovery.mo +0 -0
  37. data/locale/en_GB/foreman_discovery.edit.po +34 -33
  38. data/locale/en_GB/foreman_discovery.po +33 -32
  39. data/locale/es/LC_MESSAGES/foreman_discovery.mo +0 -0
  40. data/locale/es/foreman_discovery.edit.po +51 -51
  41. data/locale/es/foreman_discovery.po +51 -51
  42. data/locale/foreman_discovery.pot +151 -144
  43. data/locale/fr/LC_MESSAGES/foreman_discovery.mo +0 -0
  44. data/locale/fr/foreman_discovery.edit.po +1 -1
  45. data/locale/fr/foreman_discovery.po +33 -33
  46. data/locale/gl/LC_MESSAGES/foreman_discovery.mo +0 -0
  47. data/locale/gl/foreman_discovery.edit.po +1 -1
  48. data/locale/gl/foreman_discovery.po +2 -2
  49. data/locale/it/LC_MESSAGES/foreman_discovery.mo +0 -0
  50. data/locale/it/foreman_discovery.edit.po +5 -5
  51. data/locale/it/foreman_discovery.po +5 -5
  52. data/locale/ja/LC_MESSAGES/foreman_discovery.mo +0 -0
  53. data/locale/ja/foreman_discovery.edit.po +37 -37
  54. data/locale/ja/foreman_discovery.po +36 -36
  55. data/locale/ko/LC_MESSAGES/foreman_discovery.mo +0 -0
  56. data/locale/ko/foreman_discovery.edit.po +36 -36
  57. data/locale/ko/foreman_discovery.po +35 -35
  58. data/locale/pt_BR/LC_MESSAGES/foreman_discovery.mo +0 -0
  59. data/locale/pt_BR/foreman_discovery.edit.po +40 -40
  60. data/locale/pt_BR/foreman_discovery.po +39 -39
  61. data/locale/ru/LC_MESSAGES/foreman_discovery.mo +0 -0
  62. data/locale/ru/foreman_discovery.edit.po +8 -8
  63. data/locale/ru/foreman_discovery.po +8 -8
  64. data/locale/sv_SE/LC_MESSAGES/foreman_discovery.mo +0 -0
  65. data/locale/sv_SE/foreman_discovery.edit.po +1 -1
  66. data/locale/sv_SE/foreman_discovery.po +2 -2
  67. data/locale/zh_CN/LC_MESSAGES/foreman_discovery.mo +0 -0
  68. data/locale/zh_CN/foreman_discovery.edit.po +37 -37
  69. data/locale/zh_CN/foreman_discovery.po +36 -36
  70. data/locale/zh_TW/LC_MESSAGES/foreman_discovery.mo +0 -0
  71. data/locale/zh_TW/foreman_discovery.edit.po +36 -36
  72. data/locale/zh_TW/foreman_discovery.po +35 -35
  73. data/test/factories/discovery_rule_related.rb +19 -2
  74. data/test/functional/api/v2/discovered_hosts_controller_test.rb +1 -0
  75. data/test/functional/api/v2/discovery_rules_controller_test.rb +13 -5
  76. data/test/functional/discovered_hosts_controller_test.rb +71 -3
  77. data/test/functional/discovery_rules_controller_test.rb +23 -6
  78. data/test/test_helper_discovery.rb +4 -0
  79. data/test/unit/discovered_extensions_test.rb +2 -0
  80. data/test/unit/fact_value_extensions_test.rb +11 -0
  81. metadata +9 -3
@@ -5,9 +5,9 @@
5
5
  # Translators:
6
6
  msgid ""
7
7
  msgstr ""
8
- "Project-Id-Version: foreman_discovery 5.0.2\n"
8
+ "Project-Id-Version: foreman_discovery 7.0.0\n"
9
9
  "Report-Msgid-Bugs-To: \n"
10
- "PO-Revision-Date: 2016-03-23 18:49+0000\n"
10
+ "PO-Revision-Date: 2016-08-12 16:28+0000\n"
11
11
  "Last-Translator: Bryan Kearney <bryan.kearney@gmail.com>\n"
12
12
  "Language-Team: Chinese (Taiwan) (http://www.transifex.com/foreman/foreman/lang"
13
13
  "uage/zh_TW/)\n"
@@ -24,7 +24,7 @@ msgid "%s ago"
24
24
  msgstr "%s 之前"
25
25
 
26
26
  msgid "%s discovered hosts were provisioned"
27
- msgstr ""
27
+ msgstr "%s 已發現的主機已供給"
28
28
 
29
29
  msgid "<b>Foreman</b> Discovered hosts summary"
30
30
  msgstr ""
@@ -78,7 +78,7 @@ msgid "Could not get facts from proxy %{url}: %{error}"
78
78
  msgstr "無法由協定 %{url} 取得詳細資料:%{error}"
79
79
 
80
80
  msgid "Create a discovered host for testing (use /facts to create new hosts)"
81
- msgstr ""
81
+ msgstr "建立測試用的搜尋主機(使用 /facts 來建立新主機)"
82
82
 
83
83
  msgid "Create a discovery rule"
84
84
  msgstr "建立一項搜尋規則"
@@ -123,7 +123,7 @@ msgid "Discovered hosts are provisioning now"
123
123
  msgstr "發現的主機現在正在佈建"
124
124
 
125
125
  msgid "Discovered hosts are rebooting now"
126
- msgstr ""
126
+ msgstr "發現的主機正在重新啟動"
127
127
 
128
128
  msgid "Discovered hosts from Foreman server at %{foreman_url}"
129
129
  msgstr ""
@@ -180,7 +180,7 @@ msgid "Errors during auto provisioning: %s"
180
180
  msgstr "進行自動佈建時發生了錯誤:%s"
181
181
 
182
182
  msgid "Errors during reboot: %s"
183
- msgstr ""
183
+ msgstr "重新開機時發生了錯誤:%s"
184
184
 
185
185
  msgid "Execute rules against a discovered host"
186
186
  msgstr "針對於一部發現的主機執行規則"
@@ -192,10 +192,10 @@ msgid "Expand All"
192
192
  msgstr "全部展開"
193
193
 
194
194
  msgid "Expected discovery_fact '%s' is missing, unable to detect primary interface and set hostname"
195
- msgstr ""
195
+ msgstr "沒有預期的 discovery_fact '%s',無法偵測主介面並設定主機名稱"
196
196
 
197
197
  msgid "Extra facter columns to show in host lists (separate by comma)"
198
- msgstr ""
198
+ msgstr "要在主機清單中顯示的額外事實欄(以逗號隔開)"
199
199
 
200
200
  msgid "Fact columns"
201
201
  msgstr ""
@@ -219,13 +219,13 @@ msgid "Failed to reboot host %{hostname} with error %{error_message}"
219
219
  msgstr "重新啟動主機 %{hostname} 失敗,錯誤訊息為 %{error_message}"
220
220
 
221
221
  msgid "Failed to reboot hosts with error %s"
222
- msgstr ""
222
+ msgstr "重新啟動主機失敗,錯誤訊息為 %s"
223
223
 
224
224
  msgid "Failed to refresh facts for %s"
225
225
  msgstr "刷新 %s 的詳情失敗"
226
226
 
227
227
  msgid "Failed to refresh facts for %{hostname} with error %{error_message}"
228
- msgstr ""
228
+ msgstr "重新刷新主機 %{hostname} 的事實失敗,錯誤訊息為 %{error_message}"
229
229
 
230
230
  msgid "Foreman discovered hosts summary"
231
231
  msgstr ""
@@ -298,10 +298,10 @@ msgid "Identifier"
298
298
  msgstr "辨識碼"
299
299
 
300
300
  msgid "Image API processing error: %{msg} (HTTP/%{code}, body: %{body})"
301
- msgstr ""
301
+ msgstr "映像檔 API 處理錯誤:%{msg} (HTTP/%{code}, body: %{body})"
302
302
 
303
303
  msgid "Image API returned HTTP/%{code} with '%{body}"
304
- msgstr ""
304
+ msgstr "映像檔 API 傳回 HTTP/%{code} 與 '%{body}"
305
305
 
306
306
  msgid "In addition to @host attribute function rand for random integers is available. Examples:"
307
307
  msgstr ""
@@ -322,7 +322,7 @@ msgid "Invalid hostname: Could not normalize the hostname"
322
322
  msgstr ""
323
323
 
324
324
  msgid "Kexec template not associated with operating system"
325
- msgstr ""
325
+ msgstr "kexec 範本並不與作業系統相關連"
326
326
 
327
327
  msgid "Last facts upload"
328
328
  msgstr "最後上傳的詳情"
@@ -358,7 +358,7 @@ msgid "Maximum hosts provisioned with this rule (0 = unlimited)"
358
358
  msgstr "以此規則佈建的主機已達到最大限制(0 = 無限制)"
359
359
 
360
360
  msgid "Medium not set for host/hostgroup"
361
- msgstr ""
361
+ msgstr "媒體並未設定給主機/主機群組使用"
362
362
 
363
363
  msgid "Memory"
364
364
  msgstr "記憶體"
@@ -391,7 +391,7 @@ msgid "New Rule"
391
391
  msgstr "新規則"
392
392
 
393
393
  msgid "New in the last 24 hours"
394
- msgstr ""
394
+ msgstr "過去 24 小時的新項目"
395
395
 
396
396
  msgid "No discovered hosts available"
397
397
  msgstr "未發現可用的主機"
@@ -403,10 +403,10 @@ msgid "No discovered hosts to provision"
403
403
  msgstr "未發現可佈建的主機"
404
404
 
405
405
  msgid "No discovered hosts to reboot"
406
- msgstr ""
406
+ msgstr "未發現可重新啟動的主機"
407
407
 
408
408
  msgid "No hostgroup associated with rule '%s'"
409
- msgstr ""
409
+ msgstr "沒有主機群組與規則 '%s' 相關連"
410
410
 
411
411
  msgid "No hosts selected"
412
412
  msgstr "未選擇主機"
@@ -421,10 +421,10 @@ msgid "No rule found for host %s"
421
421
  msgstr "未找到主機 %s 的規則"
422
422
 
423
423
  msgid "Not reported in more than 7 days"
424
- msgstr ""
424
+ msgstr "七天內未回報"
425
425
 
426
426
  msgid "Operating system not set for host/hostgroup"
427
- msgstr ""
427
+ msgstr "作業系統並未設定給主機/主機群組使用"
428
428
 
429
429
  msgid "Organization"
430
430
  msgstr "組織"
@@ -454,7 +454,7 @@ msgid "Reboot"
454
454
  msgstr "重新開機"
455
455
 
456
456
  msgid "Reboot All"
457
- msgstr ""
457
+ msgstr "全部重新開機"
458
458
 
459
459
  msgid "Rebooting %s"
460
460
  msgstr "重新啟動 %s"
@@ -463,7 +463,7 @@ msgid "Rebooting a discovered host"
463
463
  msgstr "重新啟動一部已發現的主機"
464
464
 
465
465
  msgid "Rebooting all discovered hosts"
466
- msgstr ""
466
+ msgstr "重新啟動所有已發現的主機"
467
467
 
468
468
  msgid "Rebooting host %s"
469
469
  msgstr "重新啟動主機 %s"
@@ -475,28 +475,28 @@ msgid "Refreshing the facts of a discovered host"
475
475
  msgstr "刷新一部已發現之主機的詳情"
476
476
 
477
477
  msgid "Regex to organize facts for hardware section"
478
- msgstr ""
478
+ msgstr "用來為 hardware 一節組織事實時使用的正規表示式"
479
479
 
480
480
  msgid "Regex to organize facts for highlights section - e.g. ^(abc|cde)$"
481
481
  msgstr ""
482
482
 
483
483
  msgid "Regex to organize facts for ipmi section"
484
- msgstr ""
484
+ msgstr "用來為 ipmi 一節組織事實時使用的正規表示式"
485
485
 
486
486
  msgid "Regex to organize facts for network section"
487
- msgstr ""
487
+ msgstr "用來為 network 一節組織事實時使用的正規表示式"
488
488
 
489
489
  msgid "Regex to organize facts for software section"
490
- msgstr ""
490
+ msgstr "用來為 software 一節組織事實時使用的正規表示式"
491
491
 
492
492
  msgid "Regex to organize facts for storage section"
493
- msgstr ""
493
+ msgstr "用來為 storage 一節組織事實時使用的正規表示式"
494
494
 
495
495
  msgid "Reloading kernel on %s"
496
- msgstr ""
496
+ msgstr "在 %s 上重新載入 kernel"
497
497
 
498
498
  msgid "Reported in the last 7 days"
499
- msgstr ""
499
+ msgstr "過去七天內已回報"
500
500
 
501
501
  msgid "Rule disabled"
502
502
  msgstr "規則已停用"
@@ -586,22 +586,22 @@ msgid "UUID to track orchestration tasks status, GET /api/orchestration/:UUID/ta
586
586
  msgstr "用來追蹤協調流程任務狀態的 UUID,GET /api/orchestration/:UUID/tasks"
587
587
 
588
588
  msgid "Unable to assign subnet, primary interface is missing IP address"
589
- msgstr ""
589
+ msgstr "無法指定子網路,主介面沒有 IP 位址"
590
590
 
591
591
  msgid "Unable to detect primary interface using MAC '%{mac}' specified by discovery_fact '%{fact}'"
592
- msgstr ""
592
+ msgstr "無法偵測使用 MAC '%{mac}' 的主介面,由 discovery_fact '%{fact}' 所指定"
593
593
 
594
594
  msgid "Unable to find a discovery rule, no host provided (check permissions)"
595
- msgstr ""
595
+ msgstr "找不到探索規則,未提供主機(檢查權限)"
596
596
 
597
597
  msgid "Unable to perform kexec on %{name} via %{url}: %{msg}"
598
- msgstr ""
598
+ msgstr "無法透過 %{url} 在 %{name} 上執行 kexec:%{msg}"
599
599
 
600
600
  msgid "Unable to provision %{host}: %{errors}"
601
- msgstr ""
601
+ msgstr "無法供給 %{host}:%{errors}"
602
602
 
603
603
  msgid "Unable to reboot %{name} via %{url}: %{msg}"
604
- msgstr ""
604
+ msgstr "無法透過 %{url} 重新啟動 %{name}:%{msg}"
605
605
 
606
606
  msgid "Update a rule"
607
607
  msgstr "更新規則"
@@ -631,7 +631,7 @@ msgid "flag is used for temporary shutdown of rules"
631
631
  msgstr "旗標可用來暫時性關閉規則"
632
632
 
633
633
  msgid "hash containing facts for the host with minimum set of facts: discovery_bootif, macaddress_eth0, ipaddress, ipaddress_eth0, interfaces: eth0 (example in case primary interface is named eth0)"
634
- msgstr ""
634
+ msgstr "包含主機詳情的雜湊,其中有最基本的詳情:discovery_bootif、macaddress_eth0、ipaddress、ipaddress_eth0、interfaces:eth0(大部分範例中,主介面的名稱都是 eth0)"
635
635
 
636
636
  msgid "items selected. Uncheck to Clear"
637
637
  msgstr "已選取項目。反選以清除"
@@ -10,12 +10,29 @@ FactoryGirl.define do
10
10
  end
11
11
  end
12
12
 
13
- # Not used yet, we need to refactor core first
14
13
  FactoryGirl.define do
15
14
  factory :discovered_host, class: 'Host::Discovered' do
16
15
  sequence(:name) { |n| "host#{n}" }
17
16
  sequence(:ip) { |n| IPAddr.new(n, Socket::AF_INET).to_s }
18
17
  sequence(:mac) { |n| "02:23:45:67:" + n.to_s(16).rjust(4, '0').insert(2, ':') }
19
- fact_values
18
+
19
+ after(:build) do |discovered_host|
20
+ attribute_set = DiscoveryAttributeSet.new(:host => discovered_host,
21
+ :memory => '1',
22
+ :cpu_count => '4')
23
+ discovered_host.discovery_attribute_set = attribute_set
24
+ end
25
+
26
+ trait :with_facts do
27
+ transient do
28
+ fact_count 20
29
+ end
30
+
31
+ after(:create) do |discovered_host, evaluator|
32
+ evaluator.fact_count.times do
33
+ FactoryGirl.create(:fact_value, :discovered_host => discovered_host)
34
+ end
35
+ end
36
+ end
20
37
  end
21
38
  end
@@ -83,6 +83,7 @@ class Api::V2::DiscoveredHostsControllerTest < ActionController::TestCase
83
83
  :hostgroup => FactoryGirl.create(:hostgroup, :with_os, :with_rootpass), :organizations => [Organization.first],
84
84
  :locations => [Location.first])
85
85
  post :facts, { :facts => facts }
86
+ assert_match /created_at/, response.body
86
87
  assert_response :success
87
88
  assert_equal "Auto-discovered and provisioned via rule 'rule'", Host.first.comment
88
89
  end
@@ -1,7 +1,6 @@
1
1
  require 'test_helper'
2
2
 
3
3
  class Api::V2::DiscoveryRulesControllerTest < ActionController::TestCase
4
-
5
4
  setup do
6
5
  User.current = User.find_by_login "admin"
7
6
 
@@ -24,18 +23,29 @@ class Api::V2::DiscoveryRulesControllerTest < ActionController::TestCase
24
23
  assert !discovery_rules.empty?
25
24
  end
26
25
 
26
+ test "should search discovery rule" do
27
+ FactoryGirl.create(:discovery_rule, :name => "test")
28
+ get :index, { :search => "name = test"}
29
+ assert_response :success
30
+ discovery_rules = ActiveSupport::JSON.decode(@response.body)
31
+ assert_equal 1, discovery_rules['total']
32
+ end
33
+
27
34
  test "should show discovery rule" do
28
35
  rule = FactoryGirl.create(:discovery_rule)
29
36
  get :show, { :id => rule.to_param }
30
37
  assert_response :success
31
38
  end
32
39
 
33
- test "should create discovery rule" do
40
+ test "should create discovery rule with taxonomy" do
34
41
  assert_difference('DiscoveryRule.count') do
42
+ hostgroup = FactoryGirl.create(:hostgroup, :with_os, :with_rootpass, :organizations => [Organization.first], :locations => [Location.first])
35
43
  post :create, {:discovery_rule => {
36
44
  :name => "foo",
37
45
  :search => "bar",
38
- :hostgroup_id => 1,
46
+ :hostgroup_id => hostgroup.id,
47
+ :organization_ids => [Organization.first],
48
+ :location_ids => [Location.first.id],
39
49
  :hostname => "",
40
50
  :priority => 1}}
41
51
  end
@@ -62,6 +72,4 @@ class Api::V2::DiscoveryRulesControllerTest < ActionController::TestCase
62
72
  end
63
73
  assert_response :success
64
74
  end
65
-
66
75
  end
67
-
@@ -15,6 +15,10 @@ class DiscoveredHostsControllerTest < ActionController::TestCase
15
15
  "physicalprocessorcount" => "42",
16
16
  "discovery_version" => "3.0.0",
17
17
  }
18
+ FactoryGirl.create(:setting,
19
+ :name => 'discovery_always_rebuild_dns',
20
+ :value => true,
21
+ :category => 'Setting::Discovered')
18
22
  FactoryGirl.create(:setting,
19
23
  :name => 'discovery_reboot',
20
24
  :value => true,
@@ -95,8 +99,7 @@ class DiscoveredHostsControllerTest < ActionController::TestCase
95
99
  end
96
100
  end
97
101
 
98
- def test_edit_form_submit_parameters
99
- host = Host::Discovered.import_host(@facts)
102
+ def setup_hostgroup(host)
100
103
  domain = FactoryGirl.create(:domain)
101
104
  hostgroup = FactoryGirl.create(:hostgroup, :with_subnet, :with_environment, :with_rootpass, :with_os, :domain => domain, :organizations => [host.organization], :locations => [host.location])
102
105
  hostgroup.medium.organizations << host.organization
@@ -108,6 +111,12 @@ class DiscoveredHostsControllerTest < ActionController::TestCase
108
111
  hostgroup.subnet.organizations << host.organization
109
112
  hostgroup.subnet.locations << host.location
110
113
  domain.subnets << hostgroup.subnet
114
+ hostgroup
115
+ end
116
+
117
+ def test_edit_form_submit_parameters
118
+ host = Host::Discovered.import_host(@facts)
119
+ hostgroup = setup_hostgroup(host)
111
120
  get :edit, {
112
121
  :id => host.id,
113
122
  :host => {
@@ -190,10 +199,14 @@ class DiscoveredHostsControllerTest < ActionController::TestCase
190
199
  disable_orchestration
191
200
  facts = @facts.merge({"somefact" => "abc"})
192
201
  host = Host::Discovered.import_host(facts)
193
- FactoryGirl.create(:discovery_rule, :priority => 1, :search => "facts.somefact = abc", :hostgroup => hostgroups(:common))
202
+ hostgroup = setup_hostgroup(host)
203
+ FactoryGirl.create(:discovery_rule, :priority => 1, :search => "facts.somefact = abc", :hostgroup => hostgroup, :organizations => [host.organization], :locations => [host.location])
194
204
  post :auto_provision, { :id => host.id }, set_session_user_default_manager
195
205
  assert_response :redirect
196
206
  assert_nil flash[:error]
207
+ assert_match /^Host macaabbccddeeff.* was provisioned/, flash[:notice]
208
+ managed_host = Host.find(host.id)
209
+ assert managed_host.build
197
210
  end
198
211
 
199
212
  def test_auto_provision_no_rule_success
@@ -203,6 +216,7 @@ class DiscoveredHostsControllerTest < ActionController::TestCase
203
216
  post :auto_provision, { :id => host.id }, set_session_user_default_manager
204
217
  assert_response :redirect
205
218
  assert_nil flash[:error]
219
+ assert_equal "No rule found for host macaabbccddeeff", flash[:notice]
206
220
  end
207
221
 
208
222
  def test_auto_provision_all_success
@@ -213,6 +227,7 @@ class DiscoveredHostsControllerTest < ActionController::TestCase
213
227
  post :auto_provision_all, {}, set_session_user_default_manager
214
228
  assert_response :redirect
215
229
  assert_nil flash[:error]
230
+ assert_equal "Discovered hosts are provisioning now", flash[:notice]
216
231
  end
217
232
 
218
233
  def test_auto_provision_all_no_rule_success
@@ -223,6 +238,7 @@ class DiscoveredHostsControllerTest < ActionController::TestCase
223
238
  post :auto_provision_all, {}, set_session_user_default_manager
224
239
  assert_response :redirect
225
240
  assert_nil flash[:error]
241
+ assert_equal "Discovered hosts are provisioning now", flash[:notice]
226
242
  end
227
243
 
228
244
  def test_reboot_all_success
@@ -232,6 +248,8 @@ class DiscoveredHostsControllerTest < ActionController::TestCase
232
248
  post "reboot", { :id => host.id }, set_session_user_default_manager
233
249
  assert_redirected_to discovered_hosts_url
234
250
  assert_equal "Rebooting host #{host.name}", flash[:notice]
251
+ assert_nil flash[:error]
252
+ assert_equal "Rebooting host macaabbccddeeff", flash[:notice]
235
253
  end
236
254
 
237
255
  def test_reboot_all_failure
@@ -241,6 +259,7 @@ class DiscoveredHostsControllerTest < ActionController::TestCase
241
259
  post "reboot_all", { }, set_session_user_default_manager
242
260
  assert_redirected_to discovered_hosts_url
243
261
  assert_equal "Errors during reboot: #{host.name}: failed to reboot", flash[:error]
262
+ assert_nil flash[:notice]
244
263
  end
245
264
 
246
265
  def test_reboot_all_error
@@ -250,6 +269,42 @@ class DiscoveredHostsControllerTest < ActionController::TestCase
250
269
  post "reboot_all", { }, set_session_user_default_manager
251
270
  assert_redirected_to discovered_hosts_url
252
271
  assert_match(/ERF50-4973/, flash[:error])
272
+ assert_nil flash[:notice]
273
+ end
274
+
275
+ def test_no_dns_rebuild_if_dns_pending
276
+ host = Host::Discovered.import_host(@facts)
277
+ hostgroup = prepare_hostgroup_for_dns_rebuild(host)
278
+ Nic::Managed.any_instance.expects(:rebuild_dns).never
279
+ Host::Managed.any_instance.stubs(:skip_orchestration?).returns(false)
280
+ put :update, {:commit => "Update", :id => host.id,
281
+ :host => {
282
+ :name => 'mytest',
283
+ :hostgroup_id => hostgroup.id,
284
+ }
285
+ }, set_session_user_default_manager
286
+ end
287
+
288
+ def test_dns_rebuild
289
+ host = prepare_host_for_dns_rebuild
290
+ hostgroup = prepare_hostgroup_for_dns_rebuild(host)
291
+ Nic::Managed.any_instance.expects(:rebuild_dns)
292
+ Host::Managed.any_instance.stubs(:skip_orchestration?).returns(false)
293
+ put :update, {:commit => "Update", :id => host.id,
294
+ :host => {
295
+ :name => 'mytest',
296
+ :hostgroup_id => hostgroup.id,
297
+ }
298
+ }, set_session_user_default_manager
299
+ end
300
+
301
+ def test_dns_rebuild_with_auto_provision
302
+ host = prepare_host_for_dns_rebuild
303
+ hostgroup = prepare_hostgroup_for_dns_rebuild(host)
304
+ Nic::Managed.any_instance.expects(:rebuild_dns)
305
+ Host::Managed.any_instance.stubs(:skip_orchestration?).returns(false)
306
+ FactoryGirl.create(:discovery_rule, :priority => 1, :search => "name = mytest.myorchdomain.net", :hostgroup_id => hostgroup.id, :organizations => [host.organization], :locations => [host.location])
307
+ post :auto_provision, { :id => host.id }, set_session_user_default_manager
253
308
  end
254
309
 
255
310
  private
@@ -257,4 +312,17 @@ class DiscoveredHostsControllerTest < ActionController::TestCase
257
312
  def initialize_host
258
313
  User.current = users(:admin)
259
314
  end
315
+
316
+ def prepare_host_for_dns_rebuild
317
+ host = Host::Discovered.import_host(@facts)
318
+ host.name = 'mytest.myorchdomain.net'
319
+ host.save
320
+ host
321
+ end
322
+
323
+ def prepare_hostgroup_for_dns_rebuild(host)
324
+ hostgroup = setup_hostgroup(host)
325
+ hostgroup.domain = FactoryGirl.create(:domain, :name => 'myorchdomain.net', :dns => FactoryGirl.create(:smart_proxy, :features => [FactoryGirl.create(:feature, :dns)]))
326
+ hostgroup
327
+ end
260
328
  end