foreman_rh_cloud 3.0.29 → 3.0.32

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.
@@ -104,7 +104,9 @@ module ForemanInventoryUpload
104
104
  end
105
105
 
106
106
  def obfuscate_ip(ip, ips_dict)
107
- "10.230.230.#{ips_dict.count + 1}"
107
+ max_obfuscated = ips_dict.values.map { |v| IPAddr.new(v).to_i }.max || IPAddr.new('10.230.230.0').to_i
108
+
109
+ IPAddr.new(max_obfuscated + 1, Socket::AF_INET).to_s
108
110
  end
109
111
 
110
112
  def bios_uuid(host)
@@ -13,7 +13,7 @@ module ForemanInventoryUpload
13
13
  organizations +
14
14
  content_data +
15
15
  satellite_server_data
16
- ).reject { |key, value| value.empty? }
16
+ ).reject { |key, value| value.empty? }.map { |key, value| [key, truncated_value(value)] }
17
17
  end
18
18
 
19
19
  def generate_parameters
@@ -22,6 +22,7 @@ module ForemanInventoryUpload
22
22
  (@host.host_inherited_params_objects || [])
23
23
  .map { |item| [item.name, item.value] }
24
24
  .select { |_name, value| value.present? || value.is_a?(FalseClass) }
25
+ .map { |key, value| [key, truncated_value(value)] }
25
26
  end
26
27
 
27
28
  private
@@ -58,6 +59,12 @@ module ForemanInventoryUpload
58
59
  ['organization_id', @host.organization_id.to_s],
59
60
  ]
60
61
  end
62
+
63
+ def truncated_value(value)
64
+ return 'Original value exceeds 250 characters' if value.to_s.length > 250
65
+
66
+ value
67
+ end
61
68
  end
62
69
  end
63
70
  end
@@ -1,3 +1,3 @@
1
1
  module ForemanRhCloud
2
- VERSION = '3.0.29'.freeze
2
+ VERSION = '3.0.32'.freeze
3
3
  end
data/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "foreman_rh_cloud",
3
- "version": "3.0.29",
3
+ "version": "3.0.32",
4
4
  "description": "Inventory Upload =============",
5
5
  "main": "index.js",
6
6
  "scripts": {
@@ -30,13 +30,13 @@ class FactHelpersTest < ActiveSupport::TestCase
30
30
  test 'obfuscates ips with insights-client data' do
31
31
  host = mock('host')
32
32
  @instance.expects(:fact_value).with(host, 'insights_client::ips').returns(
33
- '[{"obfuscated": "10.230.230.1", "original": "224.0.0.1"}, {"obfuscated": "10.230.230.2", "original": "224.0.0.251"}]'
33
+ '[{"obfuscated": "10.230.230.1", "original": "224.0.0.1"}, {"obfuscated": "10.230.230.255", "original": "224.0.0.251"}]'
34
34
  )
35
35
 
36
36
  actual = @instance.obfuscated_ips(host)
37
37
 
38
38
  assert_equal '10.230.230.1', actual['224.0.0.1']
39
- assert_equal '10.230.230.3', actual['224.0.0.2']
39
+ assert_equal '10.230.231.0', actual['224.0.0.2']
40
40
  end
41
41
 
42
42
  test 'obfuscates ips without insights-client data' do
@@ -139,4 +139,21 @@ class CloudRequestForwarderTest < ActiveSupport::TestCase
139
139
  )
140
140
  assert_equal params.merge(:branch_id => 74), @forwarder.prepare_forward_params(req, 74)
141
141
  end
142
+
143
+ test 'should forward content type correctly' do
144
+ user_agent = { :foo => :bar }
145
+ params = { :page => 5, :per_page => 42 }
146
+
147
+ req = ActionDispatch::Request.new(
148
+ 'REQUEST_URI' => '/foo/bar',
149
+ 'REQUEST_METHOD' => 'GET',
150
+ 'HTTP_USER_AGENT' => user_agent,
151
+ 'rack.input' => ::Puma::NullIO.new,
152
+ 'action_dispatch.request.query_parameters' => params
153
+ )
154
+
155
+ actual = @forwarder.prepare_request_opts(req, 'TEST PAYLOAD', params, { cert: @cert1, key: OpenSSL::PKey::RSA.new(1024).to_pem })
156
+
157
+ assert_match /text\/html/, actual[:headers][:content_type]
158
+ end
142
159
  end
@@ -103,6 +103,21 @@ class TagsGeneratorTest < ActiveSupport::TestCase
103
103
  assert_equal 0, actual.count
104
104
  end
105
105
 
106
+ test 'truncates parameter tags' do
107
+ FactoryBot.create(:setting, :name => 'include_parameter_tags', :settings_type => "boolean", :category => "Setting::RhCloud", :default => false, :value => true)
108
+
109
+ @host.stubs(:host_inherited_params_objects).returns(
110
+ [
111
+ OpenStruct.new(name: 'str_param', value: 'a' * 251),
112
+ ]
113
+ )
114
+
115
+ generator = create_generator
116
+ actual = Hash[generator.generate_parameters]
117
+
118
+ assert_equal 'Original value exceeds 250 characters', actual['str_param']
119
+ end
120
+
106
121
  private
107
122
 
108
123
  def create_generator
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: 3.0.29
4
+ version: 3.0.32
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-11-29 00:00:00.000000000 Z
11
+ date: 2022-03-10 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: katello
@@ -188,6 +188,7 @@ files:
188
188
  - app/views/layouts/foreman_rh_cloud/application.html.erb
189
189
  - config/Gemfile.lock.gh_test
190
190
  - config/database.yml.example
191
+ - config/package-lock.json
191
192
  - config/package-lock.json.gh_test
192
193
  - config/package-lock.json.plugin
193
194
  - config/routes.rb