foreman_discovery 12.0.1 → 12.0.2
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.
- checksums.yaml +4 -4
- data/app/controllers/api/v2/discovery_rules_controller.rb +1 -0
- data/app/controllers/discovery_rules_controller.rb +1 -1
- data/app/models/discovery_rule.rb +5 -0
- data/app/views/discovery_rules/_form.html.erb +1 -1
- data/lib/foreman_discovery/version.rb +1 -1
- data/test/functional/api/v2/discovery_rules_controller_test.rb +0 -8
- data/test/functional/api/v2/settings_controller_test.rb +0 -2
- data/test/functional/discovered_hosts_controller_test.rb +3 -0
- data/test/unit/discovery_rule_test.rb +8 -3
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c74650551a3323dcaa112a06e384b8bd5038df5622b71e327585cfa134efeb86
|
4
|
+
data.tar.gz: 3e5dacb7e4c536048b38156ec69b265d79724424ab0917d239ec9144a52802f5
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2d6770e0543989dfa2270ece14eb165d45f2a6ccf82795247c372fc14dc81bff5efe87b3abf4964ce366fe1032b96d95e56777b6986fe61f1ce86851d734ce22
|
7
|
+
data.tar.gz: 0f7262e88dbe6e92ebd3aff9bb888ede73744d250d7b308b99b3a39d6a992a9652ca422be8032e0a6c6090c2adcf6f5dd7ef62763a5e0fcb796f71e25d8aed36
|
@@ -1,4 +1,5 @@
|
|
1
1
|
class DiscoveryRule < ApplicationRecord
|
2
|
+
STEP = 100
|
2
3
|
audited :associated_with => :hostgroup
|
3
4
|
include Authorizable
|
4
5
|
extend FriendlyId
|
@@ -40,6 +41,10 @@ class DiscoveryRule < ApplicationRecord
|
|
40
41
|
self.priority ||= 0
|
41
42
|
end
|
42
43
|
|
44
|
+
def self.suggest_priority
|
45
|
+
self.unscoped.maximum(:priority).to_i + STEP
|
46
|
+
end
|
47
|
+
|
43
48
|
def enforce_taxonomy
|
44
49
|
return if hostgroup.nil?
|
45
50
|
if SETTINGS[:organizations_enabled]
|
@@ -24,7 +24,7 @@
|
|
24
24
|
:label_help => render('discovery_rules/template_inline').html_safe,
|
25
25
|
:label_help_options => {:title => _("Hostname for provisioned hosts"), :'data-placement' => 'bottom' } %>
|
26
26
|
<%= counter_f f, :max_count, :label => _('Hosts Limit'), :help_inline => _('Maximum hosts provisioned with this rule (0 = unlimited)'), :min => 0 %>
|
27
|
-
<%= counter_f f, :priority, :help_inline => _('Rule priority (lower integer means higher priority)'), step:
|
27
|
+
<%= counter_f f, :priority, :help_inline => _('Rule priority (lower integer means higher priority)'), step: DiscoveryRule::STEP %>
|
28
28
|
<%= checkbox_f f, :enabled %>
|
29
29
|
</div>
|
30
30
|
<%= render 'taxonomies/loc_org_tabs', :f => f, :obj => @discovery_rule %>
|
@@ -31,7 +31,6 @@ class Api::V2::DiscoveryRulesControllerTest < ActionController::TestCase
|
|
31
31
|
assert_equal "Location 1", discovery_rule['locations'].first['name']
|
32
32
|
end
|
33
33
|
|
34
|
-
test_attributes :pid => '121e0a30-8a24-47d7-974d-998886ed1ea7'
|
35
34
|
test "should create discovery rule with taxonomy" do
|
36
35
|
hostgroup = FactoryBot.create(:hostgroup, :with_os, :with_rootpass, :organizations => [organization_one], :locations => [location_one])
|
37
36
|
valid_attributes = {
|
@@ -65,7 +64,6 @@ class Api::V2::DiscoveryRulesControllerTest < ActionController::TestCase
|
|
65
64
|
assert_response :success
|
66
65
|
end
|
67
66
|
|
68
|
-
test_attributes :pid => '769c0739-538b-4451-af7b-deb2ecd3dc0d'
|
69
67
|
test "should update discovery rule name" do
|
70
68
|
rule = FactoryBot.create(:discovery_rule)
|
71
69
|
new_name = 'new_rule_name'
|
@@ -81,7 +79,6 @@ class Api::V2::DiscoveryRulesControllerTest < ActionController::TestCase
|
|
81
79
|
assert_response :success
|
82
80
|
end
|
83
81
|
|
84
|
-
test_attributes :pid => '0f8ec302-f9de-4713-87b7-0f1aca515149'
|
85
82
|
test "should update taxonomies for discovery rule" do
|
86
83
|
min_required_attr = { :name => 'new_rule', :search => 'CPU_Count = 1', :hostgroup_id => hostgroups(:unusual).id }
|
87
84
|
rule = DiscoveryRule.new(min_required_attr)
|
@@ -100,7 +97,6 @@ class Api::V2::DiscoveryRulesControllerTest < ActionController::TestCase
|
|
100
97
|
assert_equal [location_one.id], rule.locations.map {|loc| loc.id}
|
101
98
|
end
|
102
99
|
|
103
|
-
test_attributes :pid => '2c5ecb7e-87bc-4980-9620-7ae00e3f360e'
|
104
100
|
test "should update search rule" do
|
105
101
|
rule = FactoryBot.create(:discovery_rule)
|
106
102
|
new_search = 'Location = Default_Location'
|
@@ -110,7 +106,6 @@ class Api::V2::DiscoveryRulesControllerTest < ActionController::TestCase
|
|
110
106
|
assert_equal new_search, rule.search
|
111
107
|
end
|
112
108
|
|
113
|
-
test_attributes :pid => '33084060-2866-46b9-bfab-23d91aea73d8'
|
114
109
|
test "should update host limit" do
|
115
110
|
rule = FactoryBot.create(:discovery_rule)
|
116
111
|
new_max_count = 150
|
@@ -121,7 +116,6 @@ class Api::V2::DiscoveryRulesControllerTest < ActionController::TestCase
|
|
121
116
|
assert_equal new_max_count, rule.max_count
|
122
117
|
end
|
123
118
|
|
124
|
-
test_attributes :pid => '330aa943-167b-46dd-b434-1a6e5fe8f283'
|
125
119
|
test "test_positive_disable" do
|
126
120
|
rule = FactoryBot.create(:discovery_rule)
|
127
121
|
assert rule.enabled
|
@@ -131,7 +125,6 @@ class Api::V2::DiscoveryRulesControllerTest < ActionController::TestCase
|
|
131
125
|
refute rule.enabled
|
132
126
|
end
|
133
127
|
|
134
|
-
test_attributes :pid => '9fdba953-dcc7-4532-9204-17a45b0d9e05'
|
135
128
|
test "should destroy discovery rule" do
|
136
129
|
rule = FactoryBot.create(:discovery_rule)
|
137
130
|
assert_difference('DiscoveryRule.unscoped.count', -1) do
|
@@ -141,7 +134,6 @@ class Api::V2::DiscoveryRulesControllerTest < ActionController::TestCase
|
|
141
134
|
refute DiscoveryRule.unscoped.exists?(rule.id)
|
142
135
|
end
|
143
136
|
|
144
|
-
test_attributes :pid => '415379b7-0134-40b9-adb1-2fe0adb1ac36'
|
145
137
|
test "should not create with too long name" do
|
146
138
|
assert_difference('DiscoveryRule.unscoped.count', 0) do
|
147
139
|
post :create, params: {:discovery_rule => {
|
@@ -5,14 +5,12 @@ class Api::V2::SettingsControllerTest < ActionController::TestCase
|
|
5
5
|
FactoryBot.create(:setting, :name => 'discovery_prefix', :value => 'mac', :category => 'Setting::Discovered')
|
6
6
|
end
|
7
7
|
|
8
|
-
test_attributes :pid => '2c5ecb7e-87bc-4980-9620-7ae00e3f360e'
|
9
8
|
test "should update hostname prefix without value" do
|
10
9
|
setting = Setting.find_by_name("discovery_prefix")
|
11
10
|
put :update, params: { :id => setting.id, :setting => { :value => '' } }
|
12
11
|
assert_equal JSON.parse(@response.body)['value'], '', "Can't update discovery_prefix setting with empty value"
|
13
12
|
end
|
14
13
|
|
15
|
-
test_attributes :pid => '4969994d-f934-4f0e-9a98-476b87eb0527'
|
16
14
|
test "should update hostname prefix" do
|
17
15
|
value = RFauxFactory.gen_alpha
|
18
16
|
setting = Setting.find_by_name("discovery_prefix")
|
@@ -294,6 +294,9 @@ class DiscoveredHostsControllerTest < ActionController::TestCase
|
|
294
294
|
hostgroup = prepare_hostgroup_for_dns_rebuild(host)
|
295
295
|
Nic::Managed.any_instance.expects(:rebuild_dns).never
|
296
296
|
Host::Managed.any_instance.stubs(:skip_orchestration?).returns(false)
|
297
|
+
Host::Managed.any_instance.stubs(:queue_puppetca_create).returns(true)
|
298
|
+
Host::Managed.any_instance.stubs(:queue_puppetca_certname_reset).returns(true)
|
299
|
+
Host::Managed.any_instance.stubs(:queue_puppetca_autosign_destroy).returns(true)
|
297
300
|
put :update, params: {:commit => "Update", :id => host.id,
|
298
301
|
:host => {
|
299
302
|
:name => 'mytest',
|
@@ -55,7 +55,6 @@ class DiscoveryRuleTest < ActiveSupport::TestCase
|
|
55
55
|
end
|
56
56
|
end
|
57
57
|
|
58
|
-
test_attributes :pid => 'b8ae7a80-b9a8-4924-808c-482a2b4102c4'
|
59
58
|
test "should create discovery rule with name and minimum required attributes" do
|
60
59
|
rule = DiscoveryRule.new(:name => 'new_rule', :search => 'cpu_count = 1', :hostgroup_id => hostgroups(:unusual).id)
|
61
60
|
assert_valid rule
|
@@ -101,7 +100,6 @@ class DiscoveryRuleTest < ActiveSupport::TestCase
|
|
101
100
|
assert_equal "must be present.", rule.errors[:hostgroup].first
|
102
101
|
end
|
103
102
|
|
104
|
-
test_attributes :pid => '4ec7d76a-22ba-4c3e-952c-667a6f0a5728'
|
105
103
|
test "should not create with invalid priority type" do
|
106
104
|
rule = DiscoveryRule.new(
|
107
105
|
:name => 'new_rule',
|
@@ -125,7 +123,6 @@ class DiscoveryRuleTest < ActiveSupport::TestCase
|
|
125
123
|
assert_equal "must be less than 2147483648", rule.errors[:priority].first
|
126
124
|
end
|
127
125
|
|
128
|
-
test_attributes :pid => '84503d8d-86f6-49bf-ab97-eff418d3e3d0'
|
129
126
|
test "should not create with invalid max count type" do
|
130
127
|
rule = DiscoveryRule.new(
|
131
128
|
:name => 'new_rule',
|
@@ -210,5 +207,13 @@ class DiscoveryRuleTest < ActiveSupport::TestCase
|
|
210
207
|
hostgroup_one.save!
|
211
208
|
end
|
212
209
|
end
|
210
|
+
|
211
|
+
test 'should be able to suggest next priority' do
|
212
|
+
existing = FactoryBot.create(:discovery_rule)
|
213
|
+
first_new = FactoryBot.create(:discovery_rule, :priority => DiscoveryRule.suggest_priority)
|
214
|
+
assert first_new.priority > 0
|
215
|
+
second_new = FactoryBot.create(:discovery_rule, :priority => DiscoveryRule.suggest_priority)
|
216
|
+
assert_equal DiscoveryRule::STEP, second_new.priority - first_new.priority
|
217
|
+
end
|
213
218
|
end
|
214
219
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: foreman_discovery
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 12.0.
|
4
|
+
version: 12.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- alongoldboim
|
@@ -64,7 +64,7 @@ authors:
|
|
64
64
|
autorequire:
|
65
65
|
bindir: bin
|
66
66
|
cert_chain: []
|
67
|
-
date: 2018-
|
67
|
+
date: 2018-07-13 00:00:00.000000000 Z
|
68
68
|
dependencies: []
|
69
69
|
description: MaaS Discovery Plugin engine for Foreman
|
70
70
|
email: gsutclif@redhat.com
|