foreman_osc 0.3.0 → 0.3.1

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6f8bb15df38ccfcefdef7d948c883bfddcb5af21
4
- data.tar.gz: 2470f847ad9d566defd8e3667961cbf7bc7372b2
3
+ metadata.gz: ec9d24873a21e45a7fa9df7f109e935698f9cd0b
4
+ data.tar.gz: 3571576c186a4932f9db9b0a44e5f0b4a9699f7c
5
5
  SHA512:
6
- metadata.gz: 6d48e449ec474b80ca413d23994c19c34cd4f180c573c37fee186d31165c64cc9b074cb4cf0f72abfc1b5ecf019814c71015e381ad3a4ffd0ba1c279740e9af3
7
- data.tar.gz: a9432eee24cd03162259c4eb23582a5f678d74a2e0a7b158c3580c3537136ea44df693f5150bfe26daf8fa27f111fec14e5c5f4f4a2d38a0e7b8ed5fd33df7c4
6
+ metadata.gz: 43fc88df8054b96a28fcae7b9d506cb36d8083fbfc1ea33d62ec76a38eab218e852996406ca58c6cb0c5aeb22d76b9e389183176adb896b522de88c47b3afef7
7
+ data.tar.gz: 5be375d10c724a43f42966b8d4d2f612d1202ef13f41e020cc9dfae1d35c0db13f5a0b09e27d15417d2dba762dba00a24caafa6446dcef63760b5a3880344cb3
@@ -0,0 +1,22 @@
1
+ module ForemanOsc
2
+ module HostParameterExtensions
3
+ extend ActiveSupport::Concern
4
+
5
+ included do
6
+ validate :rw_nfsroot_path_unique, if: :rw_host_nfsroot_path?
7
+ end
8
+
9
+ def rw_nfsroot_path_unique
10
+ rw_hosts = self.host.hostgroup.hosts
11
+ other_params = self.class.where.not(id: self.id).where(name: 'nfsroot_path', value: value, host: rw_hosts)
12
+ if ! other_params.empty?
13
+ errors.add(:value, "should be unique for RW hosts")
14
+ end
15
+ end
16
+
17
+ def rw_host_nfsroot_path?
18
+ self.name == 'nfsroot_path' && self.host.hostgroup.present? && self.host.hostgroup.name == 'rw'
19
+ end
20
+
21
+ end
22
+ end
@@ -18,14 +18,13 @@ module ForemanOsc
18
18
  load 'osc.rake'
19
19
  end
20
20
 
21
- =begin
22
21
  config.to_prepare do
23
22
  begin
24
- Parameter.send(:include, ForemanOsc::ParameterExtensions)
23
+ #Parameter.send(:include, ForemanOsc::ParameterExtensions)
24
+ #HostParameter.send(:include, ForemanOsc::HostParameterExtensions)
25
25
  rescue => e
26
26
  Rails.logger.warn "ForemanOsc: skipping engine hook (#{e})"
27
27
  end
28
28
  end
29
- =end
30
29
  end
31
30
  end
@@ -1,3 +1,3 @@
1
1
  module ForemanOsc
2
- VERSION = '0.3.0'.freeze
2
+ VERSION = '0.3.1'.freeze
3
3
  end
@@ -24,6 +24,8 @@ Example:
24
24
  exit 1
25
25
  end
26
26
 
27
+ User.current = User.find_by_login('admin')
28
+
27
29
  Host.search_for(search).each do |host|
28
30
  next unless host.provision_interface.present?
29
31
  next unless host.tftp?
@@ -61,6 +63,8 @@ Example:
61
63
  exit 1
62
64
  end
63
65
 
66
+ User.current = User.find_by_login('admin')
67
+
64
68
  Host.search_for(search).each do |host|
65
69
  next unless host.dns?
66
70
  host.interfaces.each do |interface|
@@ -100,6 +104,8 @@ Example:
100
104
  exit 1
101
105
  end
102
106
 
107
+ User.current = User.find_by_login('admin')
108
+
103
109
  Host.search_for(search).each do |host|
104
110
  next unless host.dhcp?
105
111
 
@@ -1,5 +1,5 @@
1
- FactoryGirl.define do
2
- factory :host do
3
- name 'foreman_osc'
4
- end
5
- end
1
+ #FactoryGirl.define do
2
+ # factory :host do
3
+ # name 'foreman_osc'
4
+ # end
5
+ #end
@@ -2,5 +2,5 @@
2
2
  require 'test_helper'
3
3
 
4
4
  # Add plugin to FactoryGirl's paths
5
- FactoryGirl.definition_file_paths << File.join(File.dirname(__FILE__), 'factories')
6
- FactoryGirl.reload
5
+ #FactoryGirl.definition_file_paths << File.join(File.dirname(__FILE__), 'factories')
6
+ #FactoryGirl.reload
@@ -3,9 +3,64 @@ require 'test_plugin_helper'
3
3
  class ForemanOscTest < ActiveSupport::TestCase
4
4
  setup do
5
5
  User.current = User.find_by_login 'admin'
6
+ disable_orchestration
6
7
  end
7
8
 
8
- test 'the truth' do
9
- assert true
9
+ context 'HostParameterExtensions' do
10
+ setup do
11
+ @parent_hostgroup = FactoryGirl.create(:hostgroup, name: 'owens')
12
+ @normal_hostgroup = FactoryGirl.create(:hostgroup, name: 'compute', parent: @parent_hostgroup)
13
+ @rw_hostgroup = FactoryGirl.create(:hostgroup, name: 'rw', parent: @parent_hostgroup)
14
+ @normal_host1 = FactoryGirl.create(:host, hostgroup: @normal_hostgroup)
15
+ @normal_host2 = FactoryGirl.create(:host, hostgroup: @normal_hostgroup)
16
+ @rw_host1 = FactoryGirl.create(:host, hostgroup: @rw_hostgroup)
17
+ @rw_host2 = FactoryGirl.create(:host, hostgroup: @rw_hostgroup)
18
+ @normal_parameter1 = FactoryGirl.create(:host_parameter, name: 'nfsroot_path', value: '/foo1', host: @normal_host1)
19
+ @normal_parameter2 = FactoryGirl.create(:host_parameter, name: 'nfsroot_path', value: '/foo2', host: @normal_host2)
20
+ @rw_parameter1 = FactoryGirl.create(:host_parameter, name: 'nfsroot_path', value: '/foo1', host: @rw_host1)
21
+ @rw_parameter2 = FactoryGirl.create(:host_parameter, name: 'nfsroot_path', value: '/foo2', host: @rw_host2)
22
+ end
23
+
24
+ test 'verify fixtures' do
25
+ assert_equal false, @normal_parameter1.rw_host_nfsroot_path?
26
+ assert_equal false, @normal_parameter2.rw_host_nfsroot_path?
27
+ assert_equal true, @rw_parameter1.rw_host_nfsroot_path?
28
+ assert_equal true, @rw_parameter2.rw_host_nfsroot_path?
29
+ end
30
+
31
+ test 'rw_host_nfsroot_path? - false if not nfsroot_path' do
32
+ param = FactoryGirl.build(:host_parameter, name: 'nfsroot_kernel_version', value: '2.6.32')
33
+ assert_equal false, param.rw_host_nfsroot_path?
34
+ end
35
+
36
+ test 'rw_host_nfsroot_path? - false if not RW host' do
37
+ host = FactoryGirl.create(:host, hostgroup: FactoryGirl.create(:hostgroup, name: 'foo'))
38
+ param = FactoryGirl.build(:host_parameter, name: 'nfsroot_path', value: '/foo1', host: host)
39
+ assert_equal false, param.rw_host_nfsroot_path?
40
+ end
41
+
42
+ test 'rw hosts valid when nfsroot_path is different' do
43
+ assert_valid @rw_parameter1
44
+ assert_valid @rw_parameter2
45
+ end
46
+
47
+ test 'rw hosts invalid when nfsroot_path is the same' do
48
+ @rw_parameter1.value = '/foo1'
49
+ @rw_parameter2.value = '/foo1'
50
+ #puts "DEBUG"
51
+ #puts @rw_parameter2.valid?
52
+ refute_valid @rw_parameter2
53
+ assert_includes @rw_parameter2.errors[:value], "should be unique for RW hosts"
54
+ end
55
+
56
+ test 'non-rw hosts are valid when nfsroot_path is different and the same' do
57
+ assert_valid @normal_parameter1
58
+ assert_valid @normal_parameter2
59
+ @normal_parameter1.value = '/foo1'
60
+ @normal_parameter2.value = '/foo1'
61
+ assert_valid @normal_parameter1
62
+ assert_valid @normal_parameter2
63
+ end
10
64
  end
65
+
11
66
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: foreman_osc
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Trey Dockendorf
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-12-09 00:00:00.000000000 Z
11
+ date: 2017-04-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: deface
@@ -59,15 +59,16 @@ executables: []
59
59
  extensions: []
60
60
  extra_rdoc_files: []
61
61
  files:
62
- - LICENSE
63
- - README.md
64
- - Rakefile
62
+ - app/models/concerns/foreman_osc/host_parameter_extensions.rb
65
63
  - app/models/concerns/foreman_osc/parameter_extensions.rb
66
- - lib/foreman_osc.rb
67
- - lib/foreman_osc/engine.rb
68
- - lib/foreman_osc/version.rb
69
64
  - lib/osc.rake
70
65
  - lib/tasks/foreman_osc_tasks.rake
66
+ - lib/foreman_osc/engine.rb
67
+ - lib/foreman_osc/version.rb
68
+ - lib/foreman_osc.rb
69
+ - LICENSE
70
+ - Rakefile
71
+ - README.md
71
72
  - test/factories/foreman_osc_factories.rb
72
73
  - test/test_plugin_helper.rb
73
74
  - test/unit/foreman_osc_test.rb
@@ -91,7 +92,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
91
92
  version: '0'
92
93
  requirements: []
93
94
  rubyforge_project:
94
- rubygems_version: 2.4.8
95
+ rubygems_version: 2.0.14.1
95
96
  signing_key:
96
97
  specification_version: 4
97
98
  summary: OSC Foreman Plugin