foreman_rh_cloud 1.0.6 → 2.0.5

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.
Files changed (59) hide show
  1. checksums.yaml +4 -4
  2. data/lib/foreman_inventory_upload/async/shell_process.rb +1 -3
  3. data/lib/foreman_inventory_upload/async/upload_report_job.rb +1 -5
  4. data/lib/foreman_inventory_upload/generators/fact_helpers.rb +0 -13
  5. data/lib/foreman_inventory_upload/generators/queries.rb +0 -1
  6. data/lib/foreman_inventory_upload/generators/slice.rb +8 -12
  7. data/lib/foreman_rh_cloud/engine.rb +1 -1
  8. data/lib/foreman_rh_cloud/version.rb +1 -1
  9. data/package.json +20 -100
  10. data/test/factories/inventory_upload_factories.rb +13 -13
  11. data/test/unit/archived_report_generator_test.rb +0 -1
  12. data/test/unit/slice_generator_test.rb +20 -74
  13. data/webpack/ForemanInventoryUpload/Components/AccountList/AccountList.stories.js +5 -14
  14. data/webpack/ForemanInventoryUpload/Components/AccountList/Components/EmptyState/__tests__/EmptyState.test.js +1 -1
  15. data/webpack/ForemanInventoryUpload/Components/AccountList/Components/ErrorState/__tests__/ErrorState.test.js +1 -1
  16. data/webpack/ForemanInventoryUpload/Components/AccountList/Components/ListItem/__tests__/ListItem.test.js +1 -1
  17. data/webpack/ForemanInventoryUpload/Components/AccountList/Components/ListItemStatus/__tests__/ListItemStatus.test.js +1 -1
  18. data/webpack/ForemanInventoryUpload/Components/AccountList/__tests__/AccountList.test.js +1 -1
  19. data/webpack/ForemanInventoryUpload/Components/AccountList/__tests__/AccountListActions.test.js +1 -1
  20. data/webpack/ForemanInventoryUpload/Components/AccountList/__tests__/AccountListIntegration.test.js +1 -1
  21. data/webpack/ForemanInventoryUpload/Components/AccountList/__tests__/AccountListReducer.test.js +1 -1
  22. data/webpack/ForemanInventoryUpload/Components/AccountList/__tests__/AccountListSelectors.test.js +1 -1
  23. data/webpack/ForemanInventoryUpload/Components/AutoUploadSwitcher/__tests__/AutoUploadSwitcher.test.js +1 -1
  24. data/webpack/ForemanInventoryUpload/Components/AutoUploadSwitcher/__tests__/AutoUploadSwitcherActions.test.js +1 -1
  25. data/webpack/ForemanInventoryUpload/Components/Dashboard/Dashboard.fixtures.js +13 -9
  26. data/webpack/ForemanInventoryUpload/Components/Dashboard/Dashboard.stories.js +5 -15
  27. data/webpack/ForemanInventoryUpload/Components/Dashboard/__tests__/Dashboard.test.js +1 -2
  28. data/webpack/ForemanInventoryUpload/Components/Dashboard/__tests__/DashboardActions.test.js +15 -2
  29. data/webpack/ForemanInventoryUpload/Components/Dashboard/__tests__/DashboardIntegration.test.js +1 -1
  30. data/webpack/ForemanInventoryUpload/Components/Dashboard/__tests__/DashboardReducer.test.js +1 -1
  31. data/webpack/ForemanInventoryUpload/Components/Dashboard/__tests__/DashboardSelectors.test.js +1 -1
  32. data/webpack/ForemanInventoryUpload/Components/FileDownload/__tests__/FileDownload.test.js +1 -1
  33. data/webpack/ForemanInventoryUpload/Components/FullScreenModal/__tests__/FullScreenModal.test.js +1 -1
  34. data/webpack/ForemanInventoryUpload/Components/NavContainer/NavContainer.fixtures.js +5 -2
  35. data/webpack/ForemanInventoryUpload/Components/NavContainer/__tests__/NavContainer.test.js +1 -2
  36. data/webpack/ForemanInventoryUpload/Components/NavContainer/__tests__/__snapshots__/NavContainer.test.js.snap +1 -1
  37. data/webpack/ForemanInventoryUpload/Components/PageHeader/__tests__/PageHeader.test.js +1 -1
  38. data/webpack/ForemanInventoryUpload/Components/ReportGenerate/__tests__/ReportGenerate.test.js +1 -1
  39. data/webpack/ForemanInventoryUpload/Components/ReportUpload/__tests__/ReportUpload.test.js +1 -1
  40. data/webpack/ForemanInventoryUpload/Components/ScheduledRun/__tests__/ScheduledRun.test.js +1 -1
  41. data/webpack/ForemanInventoryUpload/Components/StatusChart/__tests__/StatusChart.test.js +1 -1
  42. data/webpack/ForemanInventoryUpload/Components/TabBody/__tests__/TabBody.test.js +1 -1
  43. data/webpack/ForemanInventoryUpload/Components/TabContainer/__tests__/TabContainer.test.js +1 -1
  44. data/webpack/ForemanInventoryUpload/Components/TabFooter/__tests__/TabFooter.test.js +1 -1
  45. data/webpack/ForemanInventoryUpload/Components/TabHeader/__tests__/TabHeader.test.js +1 -1
  46. data/webpack/ForemanInventoryUpload/Components/Terminal/Terminal.js +1 -1
  47. data/webpack/ForemanInventoryUpload/Components/Terminal/__tests__/Terminal.test.js +1 -2
  48. data/webpack/ForemanInventoryUpload/ForemanInventoryUpload.test.js +1 -1
  49. metadata +2 -14
  50. data/lib/foreman_inventory_upload/async/async_helpers.rb +0 -13
  51. data/test/unit/fact_helpers_test.rb +0 -29
  52. data/test/unit/slice_generator_test.rb.orig +0 -280
  53. data/webpack/stories/ForemanInventoryUploadReducers.js +0 -3
  54. data/webpack/stories/configureStore.js +0 -15
  55. data/webpack/stories/decorators/index.js +0 -1
  56. data/webpack/stories/decorators/withCardsDecorator.js +0 -14
  57. data/webpack/stories/index.js +0 -10
  58. data/webpack/stories/index.scss +0 -7
  59. data/webpack/test_setup.js +0 -6
@@ -1,280 +0,0 @@
1
- require 'test_plugin_helper'
2
-
3
- class ReportGeneratorTest < ActiveSupport::TestCase
4
- setup do
5
- User.current = User.find_by(login: 'secret_admin')
6
-
7
- env = FactoryBot.create(:katello_k_t_environment)
8
- cv = env.content_views << FactoryBot.create(:katello_content_view, organization: env.organization)
9
-
10
- @host = FactoryBot.create(
11
- :host,
12
- :with_subscription,
13
- :with_content,
14
- content_view: cv.first,
15
- lifecycle_environment: env,
16
- organization: env.organization
17
- )
18
-
19
- @host.organization.pools << FactoryBot.create(:katello_pool, account_number: '1234', cp_id: 1)
20
-
21
- ForemanInventoryUpload::Generators::Queries.instance_variable_set(:@fact_names, nil)
22
- end
23
-
24
- def interesting_facts
25
- [
26
- 'dmi::system::uuid',
27
- 'virt::uuid',
28
- 'cpu::cpu(s)',
29
- 'cpu::cpu_socket(s)',
30
- 'cpu::core(s)_per_socket',
31
- 'memory::memtotal',
32
- 'dmi::bios::vendor',
33
- 'dmi::bios::version',
34
- 'dmi::bios::relase_date',
35
- 'uname::release',
36
- 'lscpu::flags',
37
- 'distribution::name',
38
- 'distribution::version',
39
- 'distribution::id',
40
- 'virt::is_guest',
41
- ]
42
- end
43
-
44
- def fact_names
45
- @fact_names ||= Hash[
46
- interesting_facts.map do |fact|
47
- [fact, FactoryBot.create(:fact_name, name: fact, type: 'Katello::RhsmFactName')]
48
- end
49
- ]
50
- end
51
-
52
- test 'generates a report for a single host' do
53
- batch = Host.where(id: @host.id).in_batches.first
54
- generator = create_generator(batch)
55
-
56
- json_str = generator.render
57
- actual = JSON.parse(json_str.join("\n"))
58
-
59
- assert_equal 'slice_123', actual['report_slice_id']
60
- assert_not_nil(actual_host = actual['hosts'].first)
61
- assert_equal @host.name, actual_host['display_name']
62
- assert_equal @host.fqdn, actual_host['fqdn']
63
- assert_equal '1234', actual_host['account']
64
- assert_equal 1, generator.hosts_count
65
- end
66
-
67
- test 'generates a report with satellite facts' do
68
- Foreman.expects(:instance_id).twice.returns('satellite-id')
69
- batch = Host.where(id: @host.id).in_batches.first
70
- generator = create_generator(batch)
71
-
72
- json_str = generator.render
73
- actual = JSON.parse(json_str.join("\n"))
74
-
75
- facts = actual['hosts'].first['facts'].first
76
- assert_equal 'satellite', facts['namespace']
77
- satellite_facts = facts['facts']
78
- assert_equal 'satellite-id', satellite_facts['satellite_instance_id']
79
- assert_equal @host.organization_id, satellite_facts['organization_id']
80
-
81
- instance_id_tag = actual['hosts'].first['tags'].find { |tag| tag['namespace'] == 'satellite' && tag['key'] == 'satellite_instance_id' }
82
- assert_not_nil instance_id_tag
83
- assert_equal 'satellite-id', instance_id_tag['value']
84
-
85
- org_id_tag = actual['hosts'].first['tags'].find { |tag| tag['namespace'] == 'satellite' && tag['key'] == 'organization_id' }
86
- assert_not_nil org_id_tag
87
- assert_equal @host.organization_id.to_s, org_id_tag['value']
88
-
89
- version = satellite_facts['satellite_version']
90
- if defined?(ForemanThemeSatellite)
91
- assert_equal ForemanThemeSatellite::SATELLITE_VERSION, version
92
- else
93
- assert_nil version
94
- end
95
- end
96
-
97
- test 'generates a report for a host with hypervisor' do
98
- hypervisor_host = FactoryBot.create(
99
- :host,
100
- :with_subscription,
101
- :with_content,
102
- content_view: @host.content_view,
103
- lifecycle_environment: @host.lifecycle_environment,
104
- organization: @host.organization
105
- )
106
-
107
- @host.subscription_facet.hypervisor_host = hypervisor_host
108
- @host.save!
109
-
110
- batch = Host.where(id: @host.id).in_batches.first
111
- generator = create_generator(batch)
112
-
113
- json_str = generator.render
114
- actual = JSON.parse(json_str.join("\n"))
115
-
116
- assert_equal 'slice_123', actual['report_slice_id']
117
- assert_not_nil(actual_host = actual['hosts'].first)
118
- assert_equal @host.name, actual_host['display_name']
119
- assert_equal @host.fqdn, actual_host['fqdn']
120
- assert_not_nil(host_facts = actual_host['facts']&.first)
121
- assert_equal 'satellite', host_facts['namespace']
122
- assert_not_nil(fact_values = host_facts['facts'])
123
- assert_equal hypervisor_host.name, fact_values['virtual_host_name']
124
- assert_equal hypervisor_host.subscription_facet.uuid, fact_values['virtual_host_uuid']
125
- end
126
-
127
- test 'generates a report with system purpose' do
128
- @host.subscription_facet.purpose_usage = 'test_usage'
129
- @host.subscription_facet.purpose_role = 'test_role'
130
- @host.subscription_facet.save!
131
-
132
- batch = Host.where(id: @host.id).in_batches.first
133
- generator = create_generator(batch)
134
-
135
- json_str = generator.render
136
- actual = JSON.parse(json_str.join("\n"))
137
-
138
- assert_equal 'slice_123', actual['report_slice_id']
139
- assert_not_nil(actual_host = actual['hosts'].first)
140
- assert_equal @host.name, actual_host['display_name']
141
- assert_equal @host.fqdn, actual_host['fqdn']
142
- assert_not_nil(host_facts = actual_host['facts']&.first)
143
- assert_equal 'satellite', host_facts['namespace']
144
- assert_not_nil(fact_values = host_facts['facts'])
145
- assert_equal 'test_usage', fact_values['system_purpose_usage']
146
- assert_equal 'test_role', fact_values['system_purpose_role']
147
- end
148
-
149
- test 'generates a report for a golden ticket' do
150
- batch = Host.where(id: @host.id).in_batches.first
151
- generator = create_generator(batch) do |generator|
152
- generator.stubs(:golden_ticket?).returns(true)
153
- end
154
-
155
- json_str = generator.render
156
- actual = JSON.parse(json_str.join("\n"))
157
-
158
- assert_equal 'slice_123', actual['report_slice_id']
159
- assert_not_nil(actual_host = actual['hosts'].first)
160
- assert_equal @host.name, actual_host['display_name']
161
- assert_equal @host.fqdn, actual_host['fqdn']
162
- assert_equal '1234', actual_host['account']
163
- assert_equal 1, generator.hosts_count
164
- end
165
-
166
- test 'skips hosts without subscription' do
167
- a_host = FactoryBot.create(
168
- :host,
169
- organization: @host.organization
170
- )
171
-
172
- # make a_host last
173
- batch = Host.where(id: [@host.id, a_host.id]).order(:name).in_batches.first
174
- generator = create_generator(batch)
175
-
176
- json_str = generator.render
177
- actual = JSON.parse(json_str.join("\n"))
178
-
179
- assert_equal 'slice_123', actual['report_slice_id']
180
- assert_not_nil(actual_host = actual['hosts'].first)
181
- assert_equal @host.name, actual_host['display_name']
182
- assert_equal @host.fqdn, actual_host['fqdn']
183
- assert_equal '1234', actual_host['account']
184
- assert_equal 1, generator.hosts_count
185
- end
186
-
187
- test 'shows system_memory_bytes in bytes' do
188
- FactoryBot.create(:fact_value, fact_name: fact_names['memory::memtotal'], value: '1', host: @host)
189
-
190
- batch = Host.where(id: @host.id).in_batches.first
191
- generator = create_generator(batch)
192
-
193
- json_str = generator.render
194
- actual = JSON.parse(json_str.join("\n"))
195
-
196
- assert_equal 'slice_123', actual['report_slice_id']
197
- assert_not_nil(actual_host = actual['hosts'].first)
198
- assert_not_nil(actual_profile = actual_host['system_profile'])
199
- assert_equal 1024, actual_profile['system_memory_bytes']
200
- end
201
-
202
- test 'reports an account for hosts with multiple pools' do
203
- first_pool = @host.organization.pools.first
204
- second_pool = FactoryBot.create(:katello_pool, account_number: nil, cp_id: 2)
205
- new_org = FactoryBot.create(:organization, pools: [first_pool, second_pool])
206
- @host.organization = new_org
207
- @host.save!
208
-
209
- batch = Host.where(id: @host.id).in_batches.first
210
- generator = create_generator(batch)
211
-
212
- json_str = generator.render
213
- actual = JSON.parse(json_str.join("\n"))
214
-
215
- assert_equal 'slice_123', actual['report_slice_id']
216
- assert_not_nil(actual_host = actual['hosts'].first)
217
- assert_not_nil(actual_host['account'])
218
- assert_not_empty(actual_host['account'])
219
- end
220
-
221
- test 'Generates os_release with version and id' do
222
- FactoryBot.create(:fact_value, fact_name: fact_names['distribution::name'], value: 'Red Hat Test Linux', host: @host)
223
- FactoryBot.create(:fact_value, fact_name: fact_names['distribution::version'], value: '7.1', host: @host)
224
- FactoryBot.create(:fact_value, fact_name: fact_names['distribution::id'], value: 'TestId', host: @host)
225
-
226
- batch = Host.where(id: @host.id).in_batches.first
227
- generator = create_generator(batch)
228
-
229
- json_str = generator.render
230
- actual = JSON.parse(json_str.join("\n"))
231
-
232
- assert_equal 'slice_123', actual['report_slice_id']
233
- assert_not_nil(actual_host = actual['hosts'].first)
234
- assert_not_nil(actual_profile = actual_host['system_profile'])
235
- assert_equal 'Red Hat Test Linux 7.1 (TestId)', actual_profile['os_release']
236
- end
237
-
238
- <<<<<<< HEAD
239
- test 'sets infrastructure_type to "virtual" based on virt.is_guest fact' do
240
- FactoryBot.create(:fact_value, fact_name: fact_names['virt::is_guest'], value: true, host: @host)
241
-
242
- batch = Host.where(id: @host.id).in_batches.first
243
- generator = ForemanInventoryUpload::Generators::Slice.new(batch, [], 'slice_123')
244
-
245
- json_str = generator.render
246
- actual = JSON.parse(json_str.join("\n"))
247
-
248
- assert_equal 'slice_123', actual['report_slice_id']
249
- assert_not_nil(actual_host = actual['hosts'].first)
250
- assert_not_nil(actual_profile = actual_host['system_profile'])
251
- assert_equal 'virtual', actual_profile['infrastructure_type']
252
- end
253
-
254
- test 'sets infrastructure_type to "physical" based on virt.is_guest fact' do
255
- FactoryBot.create(:fact_value, fact_name: fact_names['virt::is_guest'], value: false, host: @host)
256
-
257
- batch = Host.where(id: @host.id).in_batches.first
258
- generator = ForemanInventoryUpload::Generators::Slice.new(batch, [], 'slice_123')
259
-
260
- json_str = generator.render
261
- actual = JSON.parse(json_str.join("\n"))
262
-
263
- assert_equal 'slice_123', actual['report_slice_id']
264
- assert_not_nil(actual_host = actual['hosts'].first)
265
- assert_not_nil(actual_profile = actual_host['system_profile'])
266
- assert_equal 'physical', actual_profile['infrastructure_type']
267
- =======
268
- private
269
-
270
- def create_generator(batch, name = 'slice_123')
271
- generator = ForemanInventoryUpload::Generators::Slice.new(batch, [], name)
272
- if block_given?
273
- yield(generator)
274
- else
275
- generator.stubs(:golden_ticket?).returns(false)
276
- end
277
- generator
278
- >>>>>>> Add support fo golden ticket
279
- end
280
- end
@@ -1,3 +0,0 @@
1
- import reducers from '../ForemanInventoryUpload/ForemanInventoryUploadReducers';
2
-
3
- export default reducers.ForemanInventoryUpload;
@@ -1,15 +0,0 @@
1
- import { applyMiddleware, compose, createStore } from 'redux';
2
- import thunkMiddleware from 'redux-thunk';
3
- import rootReducer from './ForemanInventoryUploadReducers';
4
-
5
- export default function configureStore(preloadedState) {
6
- const middlewares = [thunkMiddleware];
7
- const middlewareEnhancer = applyMiddleware(...middlewares);
8
-
9
- const enhancers = [middlewareEnhancer];
10
- const composedEnhancers = compose(...enhancers);
11
-
12
- const store = createStore(rootReducer, preloadedState, composedEnhancers);
13
-
14
- return store;
15
- }
@@ -1 +0,0 @@
1
- export * from './withCardsDecorator';
@@ -1,14 +0,0 @@
1
- import React from 'react';
2
-
3
- export const withCardsDecorator = storyFn => (
4
- <div
5
- style={{
6
- width: '100%',
7
- height: '100vh',
8
- backgroundColor: '#F5F5F5',
9
- padding: '50px',
10
- }}
11
- >
12
- <div style={{ width: '300px', margin: 'auto' }}>{storyFn()}</div>
13
- </div>
14
- );
@@ -1,10 +0,0 @@
1
- import { configure } from '@storybook/react';
2
- import './index.scss';
3
-
4
- const req = require.context('../', true, /.stories.js$/);
5
-
6
- function loadStories() {
7
- req.keys().forEach(filename => req(filename));
8
- }
9
-
10
- configure(loadStories, module);
@@ -1,7 +0,0 @@
1
- $img-path: '~patternfly/dist/img/';
2
- $font-path: '~patternfly/dist/fonts/';
3
- $icon-font-path: '~patternfly/dist/fonts/';
4
-
5
- @import '~patternfly/dist/sass/patternfly';
6
- @import '~patternfly-react/dist/sass/patternfly-react';
7
- @import '~font-awesome-sass/assets/stylesheets/_font-awesome';
@@ -1,6 +0,0 @@
1
- import 'babel-polyfill';
2
-
3
- import { configure } from 'enzyme';
4
- import Adapter from 'enzyme-adapter-react-16';
5
-
6
- configure({ adapter: new Adapter() });