foreman_rh_cloud 2.0.16 → 2.0.17

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: a7230451a1045df7986bd01f42f32d66ccf3d16efc6858c7eb40bd001cc5d40a
4
- data.tar.gz: 0675fa4485a9cd91579cf35d4df110b0d1bd7aa8c422183b4c0e58ce5cf11f1a
3
+ metadata.gz: 2b34803af6696737993eb885384efd806b443d28668c96734e175f2595ce4829
4
+ data.tar.gz: e936612e09f71e9e3b351be01862763a4fae2f7caa29f6161547456416e8675f
5
5
  SHA512:
6
- metadata.gz: ca8d9900c62c798990eb72dd5224b5341caf9120a3cd4e2c1c02cf53d7928d6edaca21901f0de47a604cbaa791f91accce79c70a0d00301b5f9fb221e79cec25
7
- data.tar.gz: c612e9dcc3d1662f41552c23a585148f659f2fd2d3a059a831b189f6b53c26b5189ec95d59fad7cfff97d3aa6f604cc882051d4ee694a7fffdf48903f06b34de
6
+ metadata.gz: bb8e4f801f862736c5a4a93b3fe4b259067a1f7d44d1c81b5b11432e61b6047614c7ba7ec4e9d97af352fe85ee6a972ce1c7bcc5ac97b8602526750b0ff7018b
7
+ data.tar.gz: 59c87465077fbc67aac9e71076cc7f70ede3a577aa3cb37af8e257e78ee12f9955a77f2dfdf4a11fe84c76be073c6f84503e3a2b4178dda1bbe13bad458abf1d
@@ -103,10 +103,10 @@ module ForemanInventoryUpload
103
103
  @stream.simple_field('cores_per_socket', fact_value(host, 'cpu::core(s)_per_socket')) { |v| v.to_i }
104
104
  @stream.simple_field('system_memory_bytes', fact_value(host, 'memory::memtotal')) { |v| kilobytes_to_bytes(v.to_i) }
105
105
  @stream.array_field('network_interfaces') do
106
- @stream.raw(host.interfaces.map do |nic|
106
+ @stream.raw(host.interfaces.reject { |nic| nic.identifier.empty? }.map do |nic|
107
107
  {
108
- 'ipv4_addresses': [host_ips_cache[nic.ip]].compact,
109
- 'ipv6_addresses': [nic.ip6].compact,
108
+ 'ipv4_addresses': [host_ips_cache[nic.ip]].reject(&:empty?),
109
+ 'ipv6_addresses': [nic.ip6].reject(&:empty?),
110
110
  'mtu': nic.try(:mtu) && nic.mtu.to_i,
111
111
  'mac_address': nic.mac,
112
112
  'name': nic.identifier,
@@ -1,3 +1,3 @@
1
1
  module ForemanRhCloud
2
- VERSION = '2.0.16'.freeze
2
+ VERSION = '2.0.17'.freeze
3
3
  end
data/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "foreman_rh_cloud",
3
- "version": "2.0.14",
3
+ "version": "2.0.17",
4
4
  "description": "Inventory Upload =============",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -18,6 +18,8 @@ class SliceGeneratorTest < ActiveSupport::TestCase
18
18
  )
19
19
 
20
20
  @host.organization.pools << FactoryBot.create(:katello_pool, account_number: '1234', cp_id: 1)
21
+ @host.interfaces.first.identifier = 'test_nic1'
22
+ @host.save!
21
23
 
22
24
  ForemanInventoryUpload::Generators::Queries.instance_variable_set(:@fact_names, nil)
23
25
  end
@@ -81,7 +83,7 @@ class SliceGeneratorTest < ActiveSupport::TestCase
81
83
  assert_not_nil(actual_nic = actual_network_interfaces.first)
82
84
  refute actual_nic.key?('mtu')
83
85
  refute actual_nic.key?('mac_address')
84
- refute actual_nic.key?('name')
86
+ assert_equal 'test_nic1', actual_nic['name']
85
87
  end
86
88
 
87
89
  test 'hosts report fields should be present if fact exist' do
@@ -123,8 +125,10 @@ class SliceGeneratorTest < ActiveSupport::TestCase
123
125
  end
124
126
 
125
127
  test 'generates nic fields' do
128
+ empty_nic = FactoryBot.build(:nic_managed, ip6: '', identifier: 'empty_nic')
129
+ @host.interfaces << empty_nic
126
130
  ip6 = Array.new(4) { '%x' % rand(16**4) }.join(':') + '::' + '5'
127
- nic = FactoryBot.build(:nic_managed, ip6: ip6)
131
+ nic = FactoryBot.build(:nic_managed, ip6: ip6, identifier: 'good_nic')
128
132
  nic.attrs['mtu'] = '1500'
129
133
  @host.interfaces << nic
130
134
  batch = Host.where(id: @host.id).in_batches.first
@@ -139,7 +143,9 @@ class SliceGeneratorTest < ActiveSupport::TestCase
139
143
  assert_equal @host.interfaces.where.not(mac: nil).first.mac, actual_host['mac_addresses'].first
140
144
  assert_not_nil(actual_system_profile = actual_host['system_profile'])
141
145
  assert_not_nil(actual_network_interfaces = actual_system_profile['network_interfaces'])
142
- assert_not_nil(actual_nic = actual_network_interfaces.first)
146
+ assert_not_nil(actual_empty_nic = actual_network_interfaces.find { |actual_nic| actual_nic['name'] == 'empty_nic' })
147
+ assert actual_empty_nic['ipv6_addresses'].empty?
148
+ assert_not_nil(actual_nic = actual_network_interfaces.find { |actual_nic| actual_nic['name'] == 'good_nic' })
143
149
  assert_equal nic.ip, actual_nic['ipv4_addresses'].first
144
150
  assert_equal nic.ip6, actual_nic['ipv6_addresses'].first
145
151
  assert_equal 1500, actual_nic['mtu']
@@ -150,6 +156,26 @@ class SliceGeneratorTest < ActiveSupport::TestCase
150
156
  assert_equal 1, generator.hosts_count
151
157
  end
152
158
 
159
+ test 'skips nameless nics' do
160
+ ip6 = Array.new(4) { '%x' % rand(16**4) }.join(':') + '::' + '5'
161
+ nic = FactoryBot.build(:nic_managed, ip6: ip6, identifier: '')
162
+ nic.attrs['mtu'] = '1500'
163
+ @host.interfaces << nic
164
+ batch = Host.where(id: @host.id).in_batches.first
165
+ generator = create_generator(batch)
166
+
167
+ json_str = generator.render
168
+ actual = JSON.parse(json_str.join("\n"))
169
+
170
+ assert_equal 'slice_123', actual['report_slice_id']
171
+ assert_not_nil(actual_host = actual['hosts'].first)
172
+ assert_equal @host.interfaces.where.not(ip: nil).first.ip, actual_host['ip_addresses'].first
173
+ assert_equal @host.interfaces.where.not(mac: nil).first.mac, actual_host['mac_addresses'].first
174
+ assert_not_nil(actual_system_profile = actual_host['system_profile'])
175
+ assert_not_nil(actual_network_interfaces = actual_system_profile['network_interfaces'])
176
+ assert_nil actual_network_interfaces.find { |actual_nic| actual_nic['name'].empty? }
177
+ end
178
+
153
179
  test 'generates obfuscated ip_address fields without inisghts-client' do
154
180
  FactoryBot.create(:setting, :name => 'obfuscate_inventory_ips', :value => true)
155
181
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: foreman_rh_cloud
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.16
4
+ version: 2.0.17
5
5
  platform: ruby
6
6
  authors:
7
7
  - Foreman Red Hat Cloud team
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-02-09 00:00:00.000000000 Z
11
+ date: 2021-02-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: katello