foreman_rh_cloud 2.0.13.1 → 3.0.16

Sign up to get free protection for your applications and to get access to all the features.
Files changed (176) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +13 -0
  3. data/app/controllers/foreman_inventory_upload/accounts_controller.rb +8 -0
  4. data/app/controllers/foreman_inventory_upload/uploads_controller.rb +5 -0
  5. data/app/controllers/insights_cloud/hits_controller.rb +24 -0
  6. data/app/controllers/insights_cloud/settings_controller.rb +8 -0
  7. data/app/helpers/foreman_inventory_upload_host_helper.rb +1 -8
  8. data/app/models/insights_hit.rb +5 -1
  9. data/app/models/setting/rh_cloud.rb +8 -6
  10. data/app/overrides/layouts/base/styles.html.erb.deface +2 -0
  11. data/app/services/foreman_rh_cloud/cloud_connector.rb +60 -0
  12. data/app/views/layouts/foreman_rh_cloud/application.html.erb +0 -4
  13. data/config/Gemfile.lock.gh_test +845 -0
  14. data/config/database.yml.example +17 -0
  15. data/config/package-lock.json.gh_test +35459 -0
  16. data/config/routes.rb +11 -3
  17. data/lib/foreman_inventory_upload.rb +1 -1
  18. data/lib/foreman_inventory_upload/generators/archived_report.rb +1 -1
  19. data/lib/foreman_inventory_upload/generators/slice.rb +1 -1
  20. data/lib/foreman_rh_cloud/engine.rb +18 -7
  21. data/lib/foreman_rh_cloud/version.rb +1 -1
  22. data/lib/tasks/rh_cloud_inventory.rake +23 -0
  23. data/package.json +19 -18
  24. data/test/unit/slice_generator_test.rb +36 -1
  25. data/webpack/ForemanInventoryUpload/Components/AccountList/AccountList.fixtures.js +6 -0
  26. data/webpack/ForemanInventoryUpload/Components/AccountList/AccountList.js +3 -2
  27. data/webpack/ForemanInventoryUpload/Components/AccountList/AccountListActions.js +1 -1
  28. data/webpack/ForemanInventoryUpload/Components/AccountList/AccountListReducer.js +2 -0
  29. data/webpack/ForemanInventoryUpload/Components/AccountList/Components/ListItem/ListItem.js +33 -15
  30. data/webpack/ForemanInventoryUpload/Components/AccountList/Components/ListItem/__tests__/__snapshots__/ListItem.test.js.snap +43 -43
  31. data/webpack/ForemanInventoryUpload/Components/AccountList/Components/ListItemStatus/ListItemStatus.js +6 -7
  32. data/webpack/ForemanInventoryUpload/Components/AccountList/Components/ListItemStatus/ListItemStatusHelper.js +5 -4
  33. data/webpack/ForemanInventoryUpload/Components/AccountList/Components/ListItemStatus/__tests__/__snapshots__/ListItemStatus.test.js.snap +19 -34
  34. data/webpack/ForemanInventoryUpload/Components/AccountList/__tests__/AccountListActions.test.js +2 -2
  35. data/webpack/ForemanInventoryUpload/Components/AccountList/__tests__/__snapshots__/AccountList.test.js.snap +3 -3
  36. data/webpack/ForemanInventoryUpload/Components/AccountList/__tests__/__snapshots__/AccountListActions.test.js.snap +6 -0
  37. data/webpack/ForemanInventoryUpload/Components/AccountList/__tests__/__snapshots__/AccountListReducer.test.js.snap +6 -0
  38. data/webpack/ForemanInventoryUpload/Components/AccountList/accountList.scss +28 -5
  39. data/webpack/ForemanInventoryUpload/Components/AutoUploadSwitcher/AutoUploadSwitcher.js +7 -10
  40. data/webpack/ForemanInventoryUpload/Components/AutoUploadSwitcher/AutoUploadSwitcherActions.js +1 -1
  41. data/webpack/ForemanInventoryUpload/Components/AutoUploadSwitcher/__tests__/AutoUploadSwitcherActions.test.js +2 -2
  42. data/webpack/ForemanInventoryUpload/Components/AutoUploadSwitcher/__tests__/__snapshots__/AutoUploadSwitcher.test.js.snap +5 -28
  43. data/webpack/ForemanInventoryUpload/Components/Dashboard/DashboardActions.js +1 -1
  44. data/webpack/ForemanInventoryUpload/Components/Dashboard/__tests__/DashboardActions.test.js +2 -2
  45. data/webpack/ForemanInventoryUpload/Components/ExcludePackagesSwitcher/ExcludePackagesSwitcher.js +6 -9
  46. data/webpack/ForemanInventoryUpload/Components/ExcludePackagesSwitcher/ExcludePackagesSwitcherActions.js +1 -1
  47. data/webpack/ForemanInventoryUpload/Components/ExcludePackagesSwitcher/__tests__/ExcludePackagesSwitcherActions.test.js +2 -2
  48. data/webpack/ForemanInventoryUpload/Components/ExcludePackagesSwitcher/__tests__/__snapshots__/ExcludePackagesSwitcher.test.js.snap +5 -28
  49. data/webpack/ForemanInventoryUpload/Components/ExcludePackagesSwitcher/__tests__/__snapshots__/integration.test.js.snap +5 -0
  50. data/webpack/ForemanInventoryUpload/Components/ExcludePackagesSwitcher/__tests__/integration.test.js +2 -2
  51. data/webpack/ForemanInventoryUpload/Components/HostObfuscationSwitcher/HostObfuscationSwitcher.js +6 -9
  52. data/webpack/ForemanInventoryUpload/Components/HostObfuscationSwitcher/HostObfuscationSwitcherActions.js +1 -1
  53. data/webpack/ForemanInventoryUpload/Components/HostObfuscationSwitcher/__tests__/HostObfuscationSwitcherActions.test.js +2 -2
  54. data/webpack/ForemanInventoryUpload/Components/HostObfuscationSwitcher/__tests__/__snapshots__/HostObfuscationSwitcher.test.js.snap +5 -28
  55. data/webpack/ForemanInventoryUpload/Components/InventoryFilter/InventoryFilterReducer.js +6 -3
  56. data/webpack/ForemanInventoryUpload/Components/InventoryFilter/__tests__/__snapshots__/integration.test.js.snap +5 -0
  57. data/webpack/ForemanInventoryUpload/Components/InventorySettings/InventorySettings.js +2 -2
  58. data/webpack/ForemanInventoryUpload/Components/InventorySettings/{inventorySettings.scss → InventorySettings.scss} +2 -5
  59. data/webpack/ForemanInventoryUpload/Components/InventorySettings/__tests__/__snapshots__/InventorySettings.test.js.snap +1 -1
  60. data/webpack/ForemanInventoryUpload/Components/IpsObfuscationSwitcher/IpsObfuscationSwitcher.js +6 -8
  61. data/webpack/ForemanInventoryUpload/Components/IpsObfuscationSwitcher/IpsObfuscationSwitcherActions.js +1 -1
  62. data/webpack/ForemanInventoryUpload/Components/IpsObfuscationSwitcher/__tests__/IpsObfuscationSwitcherActions.test.js +2 -2
  63. data/webpack/ForemanInventoryUpload/Components/IpsObfuscationSwitcher/__tests__/__snapshots__/IpsObfuscationSwitcher.test.js.snap +5 -28
  64. data/webpack/ForemanInventoryUpload/Components/PageHeader/PageHeader.js +10 -18
  65. data/webpack/ForemanInventoryUpload/Components/PageHeader/PageHeader.scss +19 -0
  66. data/webpack/ForemanInventoryUpload/Components/PageHeader/PageTitle.js +53 -0
  67. data/webpack/ForemanInventoryUpload/Components/PageHeader/{components/DocsButton/__tests__/DocsButton.test.js → __tests__/PageTitle.test.js} +3 -3
  68. data/webpack/ForemanInventoryUpload/Components/PageHeader/__tests__/__snapshots__/PageHeader.test.js.snap +12 -38
  69. data/webpack/ForemanInventoryUpload/Components/PageHeader/__tests__/__snapshots__/PageTitle.test.js.snap +43 -0
  70. data/webpack/ForemanInventoryUpload/Components/PageHeader/components/CloudConnectorButton/CloudConnectorActions.js +21 -0
  71. data/webpack/ForemanInventoryUpload/Components/PageHeader/components/CloudConnectorButton/CloudConnectorButton.js +59 -0
  72. data/webpack/ForemanInventoryUpload/Components/PageHeader/components/CloudConnectorButton/CloudConnectorConstants.js +6 -0
  73. data/webpack/ForemanInventoryUpload/Components/PageHeader/components/CloudConnectorButton/CloudConnectorSelectors.js +19 -0
  74. data/webpack/ForemanInventoryUpload/Components/PageHeader/components/CloudConnectorButton/__tests__/CloudConnectorActions.test.js +9 -0
  75. data/webpack/ForemanInventoryUpload/Components/PageHeader/components/CloudConnectorButton/__tests__/CloudConnectorButton.test.js +22 -0
  76. data/webpack/ForemanInventoryUpload/Components/PageHeader/components/CloudConnectorButton/__tests__/__snapshots__/CloudConnectorActions.test.js.snap +11 -0
  77. data/webpack/ForemanInventoryUpload/Components/PageHeader/components/CloudConnectorButton/__tests__/__snapshots__/CloudConnectorButton.test.js.snap +56 -0
  78. data/webpack/ForemanInventoryUpload/Components/PageHeader/components/CloudConnectorButton/index.js +21 -0
  79. data/webpack/ForemanInventoryUpload/Components/PageHeader/components/SyncButton/SyncButton.js +7 -9
  80. data/webpack/ForemanInventoryUpload/Components/PageHeader/components/SyncButton/SyncButtonActions.js +1 -1
  81. data/webpack/ForemanInventoryUpload/Components/PageHeader/components/SyncButton/__tests__/SyncButtonActions.test.js +2 -2
  82. data/webpack/ForemanInventoryUpload/Components/PageHeader/components/SyncButton/__tests__/__snapshots__/SyncButton.test.js.snap +7 -9
  83. data/webpack/ForemanInventoryUpload/Components/PageHeader/components/SyncButton/components/Modal.js +2 -2
  84. data/webpack/ForemanInventoryUpload/Components/PageHeader/components/ToolbarButtons/ToolbarButtons.js +2 -4
  85. data/webpack/ForemanInventoryUpload/Components/PageHeader/components/ToolbarButtons/__tests__/__snapshots__/ToolbarButtons.test.js.snap +1 -2
  86. data/webpack/ForemanInventoryUpload/Components/PageHeader/components/ToolbarButtons/toolbarButtons.scss +5 -2
  87. data/webpack/ForemanInventoryUpload/Components/Terminal/terminal.scss +1 -0
  88. data/webpack/ForemanInventoryUpload/ForemanInventoryConstants.js +2 -2
  89. data/webpack/ForemanInventoryUpload/ForemanInventoryUpload.js +8 -14
  90. data/webpack/ForemanInventoryUpload/SubscriptionsPageExtension/InventoryAutoUpload/InventoryAutoUpload.js +92 -0
  91. data/webpack/ForemanInventoryUpload/SubscriptionsPageExtension/InventoryAutoUpload/__tests__/InventoryAutoUpload.test.js +17 -0
  92. data/webpack/ForemanInventoryUpload/SubscriptionsPageExtension/InventoryAutoUpload/__tests__/__snapshots__/InventoryAutoUpload.test.js.snap +106 -0
  93. data/webpack/ForemanInventoryUpload/SubscriptionsPageExtension/InventoryAutoUpload/components/AdvancedSettings/AdvancedSettings.js +60 -0
  94. data/webpack/ForemanInventoryUpload/SubscriptionsPageExtension/InventoryAutoUpload/components/AdvancedSettings/index.js +28 -0
  95. data/webpack/ForemanInventoryUpload/SubscriptionsPageExtension/InventoryAutoUpload/index.js +22 -0
  96. data/webpack/ForemanInventoryUpload/__tests__/__snapshots__/ForemanInventoryUpload.test.js.snap +7 -10
  97. data/webpack/ForemanRhCloudFills.js +23 -0
  98. data/webpack/ForemanRhCloudPages.js +25 -1
  99. data/webpack/ForemanRhCloudReducers.js +10 -1
  100. data/webpack/InsightsCloudSync/Components/InsightsHeader/InsightsHeader.scss +4 -0
  101. data/webpack/InsightsCloudSync/Components/InsightsHeader/index.js +16 -0
  102. data/webpack/InsightsCloudSync/Components/InsightsSettings/InsightsSettingsActions.js +1 -1
  103. data/webpack/InsightsCloudSync/Components/InsightsSettings/__tests__/InsightsSettingsActions.test.js +2 -2
  104. data/webpack/InsightsCloudSync/Components/InsightsSettings/insightsSettings.scss +1 -0
  105. data/webpack/InsightsCloudSync/Components/InsightsTable/InsightsTable.js +121 -0
  106. data/webpack/InsightsCloudSync/Components/InsightsTable/InsightsTableActions.js +129 -0
  107. data/webpack/InsightsCloudSync/Components/InsightsTable/InsightsTableConstants.js +55 -0
  108. data/webpack/InsightsCloudSync/Components/InsightsTable/InsightsTableHelpers.js +31 -0
  109. data/webpack/InsightsCloudSync/Components/InsightsTable/InsightsTableReducer.js +28 -0
  110. data/webpack/InsightsCloudSync/Components/InsightsTable/InsightsTableSelectors.js +74 -0
  111. data/webpack/InsightsCloudSync/Components/InsightsTable/SelectAllAlert.js +65 -0
  112. data/webpack/InsightsCloudSync/Components/InsightsTable/__tests__/InsightsTable.test.js +13 -0
  113. data/webpack/InsightsCloudSync/Components/InsightsTable/__tests__/InsightsTableSelectors.test.js +58 -0
  114. data/webpack/InsightsCloudSync/Components/InsightsTable/__tests__/__snapshots__/InsightsTable.test.js.snap +168 -0
  115. data/webpack/InsightsCloudSync/Components/InsightsTable/__tests__/__snapshots__/InsightsTableSelectors.test.js.snap +88 -0
  116. data/webpack/InsightsCloudSync/Components/InsightsTable/__tests__/fixtures.js +104 -0
  117. data/webpack/InsightsCloudSync/Components/InsightsTable/components/EmptyState.js +53 -0
  118. data/webpack/InsightsCloudSync/Components/InsightsTable/index.js +45 -0
  119. data/webpack/InsightsCloudSync/Components/InsightsTable/table.scss +1 -0
  120. data/webpack/InsightsCloudSync/Components/NoTokenEmptyState.js +79 -0
  121. data/webpack/InsightsCloudSync/Components/__tests__/InsightsHeader.test.js +10 -0
  122. data/webpack/InsightsCloudSync/Components/__tests__/NoTokenEmptyState.test.js +19 -0
  123. data/webpack/InsightsCloudSync/Components/__tests__/__snapshots__/InsightsHeader.test.js.snap +13 -0
  124. data/webpack/InsightsCloudSync/Components/__tests__/__snapshots__/NoTokenEmptyState.test.js.snap +214 -0
  125. data/webpack/InsightsCloudSync/InsightsCloudSync.js +45 -44
  126. data/webpack/InsightsCloudSync/InsightsCloudSync.test.js +10 -2
  127. data/webpack/InsightsCloudSync/InsightsCloudSyncActions.js +1 -1
  128. data/webpack/InsightsCloudSync/InsightsCloudSyncConstants.js +15 -1
  129. data/webpack/InsightsCloudSync/InsightsCloudSyncHelpers.js +7 -0
  130. data/webpack/InsightsCloudSync/InsightsCloudSyncReducers.js +2 -0
  131. data/webpack/InsightsCloudSync/__snapshots__/InsightsCloudSync.test.js.snap +45 -62
  132. data/webpack/InsightsCloudSync/index.js +11 -3
  133. data/webpack/InsightsHostDetailsTab/InsightsTab.js +5 -7
  134. data/webpack/InsightsHostDetailsTab/InsightsTabActions.js +1 -1
  135. data/webpack/InsightsHostDetailsTab/__tests__/InsightsTab.fixtures.js +12 -14
  136. data/webpack/InsightsHostDetailsTab/__tests__/InsightsTabActions.test.js +2 -2
  137. data/webpack/InsightsHostDetailsTab/__tests__/__snapshots__/InsightsTabActions.test.js.snap +10 -12
  138. data/webpack/InsightsHostDetailsTab/__tests__/__snapshots__/InsightsTabReducer.test.js.snap +10 -12
  139. data/webpack/InsightsHostDetailsTab/__tests__/__snapshots__/InsightsTabSelectors.test.js.snap +10 -12
  140. data/webpack/__mocks__/foremanReact/Root/Context/ForemanContext.js +1 -0
  141. data/webpack/__mocks__/foremanReact/common/MountingService.js +1 -0
  142. data/webpack/__mocks__/foremanReact/constants.js +19 -0
  143. data/webpack/__mocks__/foremanReact/redux/API/APISelectors.js +24 -0
  144. data/webpack/__mocks__/foremanReact/redux/API/index.js +11 -0
  145. data/webpack/__mocks__/foremanReact/routes/RouterSelector.js +2 -0
  146. data/webpack/__mocks__/foremanReact/routes/common/PageLayout/PageLayout.js +10 -0
  147. data/webpack/common/Switcher/HelpLabel.js +30 -0
  148. data/webpack/common/Switcher/SwitcherPF4.js +36 -0
  149. data/webpack/common/Switcher/SwitcherPF4.scss +10 -0
  150. data/webpack/common/Switcher/__tests__/HelpLabel.test.js +13 -0
  151. data/webpack/common/Switcher/__tests__/SwitcherPF4.test.js +14 -0
  152. data/webpack/common/Switcher/__tests__/__snapshots__/HelpLabel.test.js.snap +20 -0
  153. data/webpack/common/Switcher/__tests__/__snapshots__/SwitcherPF4.test.js.snap +22 -0
  154. data/webpack/common/Switcher/index.js +79 -0
  155. data/webpack/global_index.js +7 -0
  156. data/webpack/index.js +4 -14
  157. metadata +105 -35
  158. data/app/controllers/foreman_rh_cloud/react_controller.rb +0 -11
  159. data/app/views/foreman_rh_cloud/react/insights_cloud.html.erb +0 -1
  160. data/app/views/foreman_rh_cloud/react/inventory_upload.html.erb +0 -1
  161. data/webpack/ForemanInventoryUpload/Components/AccountList/Components/ListItem/listItem.scss +0 -0
  162. data/webpack/ForemanInventoryUpload/Components/AccountList/Components/ListItemStatus/listItemStatus.scss +0 -16
  163. data/webpack/ForemanInventoryUpload/Components/AutoUploadSwitcher/autoUploadSwitcher.scss +0 -3
  164. data/webpack/ForemanInventoryUpload/Components/ExcludePackagesSwitcher/excludePackagesSwitcher.scss +0 -3
  165. data/webpack/ForemanInventoryUpload/Components/HostObfuscationSwitcher/HostObfuscationSwitcher.scss +0 -3
  166. data/webpack/ForemanInventoryUpload/Components/PageHeader/components/DocsButton/DocsButton.js +0 -18
  167. data/webpack/ForemanInventoryUpload/Components/PageHeader/components/DocsButton/__tests__/__snapshots__/DocsButton.test.js.snap +0 -21
  168. data/webpack/ForemanInventoryUpload/Components/PageHeader/components/DocsButton/index.js +0 -1
  169. data/webpack/ForemanInventoryUpload/Components/PageHeader/components/HistoryButton/HistoryButton.js +0 -19
  170. data/webpack/ForemanInventoryUpload/Components/PageHeader/components/HistoryButton/__tests__/HistoryButton.test.js +0 -12
  171. data/webpack/ForemanInventoryUpload/Components/PageHeader/components/HistoryButton/__tests__/__snapshots__/HistoryButton.test.js.snap +0 -22
  172. data/webpack/ForemanInventoryUpload/Components/PageHeader/components/HistoryButton/index.js +0 -1
  173. data/webpack/ForemanInventoryUpload/Components/PageHeader/pageHeader.scss +0 -3
  174. data/webpack/ForemanInventoryUpload/SubscriptionsPageExtension/SubscriptionsPageExtensionActions.js +0 -34
  175. data/webpack/__mocks__/foremanReact/API.js +0 -7
  176. data/webpack/subscriptions_extension_index.js +0 -8
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: aef13982f858bea42312ee1495b628b86c789e54d81ad939853f0657dbd0d5ad
4
- data.tar.gz: 0e9e278c013651e9407d56cc0a85d3c923e28718b91d40a626cb395de572c702
3
+ metadata.gz: 40911c61287fcace17eb79713f616515ca463a0c671f2a663b5dca8c4587c0ca
4
+ data.tar.gz: 5db731e3f022086fc55b9f6dded6917ff4d459c0565aa48fb4742cdcb2adbb0a
5
5
  SHA512:
6
- metadata.gz: c923cf6e37a14a608601f343dfed4184b8d22a4356372a65bfd3b94fc6aa451848d50952b54adad6cada51af4a7452af3554b9f2ccd325f6b530b51f2fa3b272
7
- data.tar.gz: 28b1eb1031ce920dfe66e379c52f0ea7c4799114b6d84104df47b005d722caa08b5ae930fed87de0762ac0fe9a25a83c1fc40c7abc1147ed0da36723ce4eed76
6
+ metadata.gz: 06c1ac8778b2c119f3594cfec3afec6662b4ab6925a7b591d88cfa3fb80b76f390d38e5e152249f253095a71ca7484e8fe715906294729d71045bcc5d35022d0
7
+ data.tar.gz: c629a9b8b860600b1c0a180ebf2d057cc3201a3596fa32bbcf650661e4612fdd5612dba787b32ba70cf8b546662af68d49e98e4edd4e77f49deb22b9d681a408
data/README.md CHANGED
@@ -19,10 +19,23 @@ In UI: Configure -> Inventory Upload -> Restart
19
19
 
20
20
  From command-line:
21
21
 
22
+ # generate and upload report for all organizations
23
+ /usr/sbin/foreman-rake rh_cloud_inventory:report:generate_upload
24
+
25
+ # generate and upload report for specific organization
26
+ export organization_id=1
27
+ /usr/sbin/foreman-rake rh_cloud_inventory:report:generate_upload
28
+
29
+ # generate report for specific organization (don't upload)
22
30
  export organization_id=1
23
31
  export target=/var/lib/foreman/red_hat_inventory/generated_reports/
24
32
  /usr/sbin/foreman-rake rh_cloud_inventory:report:generate
25
33
 
34
+ # upload previously generated report (needs to be named 'report_for_#{organization_id}.tar.gz')
35
+ export organization_id=1
36
+ export target=/var/lib/foreman/red_hat_inventory/generated_reports/
37
+ /usr/sbin/foreman-rake rh_cloud_inventory:report:upload
38
+
26
39
  #### Fetch hosts remediation data
27
40
 
28
41
  In UI: Configure -> Insights -> Sync now
@@ -27,11 +27,19 @@ module ForemanInventoryUpload
27
27
  cloudToken: Setting[:rh_cloud_token],
28
28
  excludePackages: Setting[:exclude_installed_packages],
29
29
  accounts: accounts,
30
+ CloudConnectorStatus: cloud_connector_status,
30
31
  }, status: :ok
31
32
  end
32
33
 
33
34
  private
34
35
 
36
+ def cloud_connector_status
37
+ cloud_connector = ForemanRhCloud::CloudConnector.new
38
+ job = cloud_connector&.latest_job
39
+ return nil unless job
40
+ { id: job.id, task: ForemanTasks::Task.where(:id => job.task_id).first }
41
+ end
42
+
35
43
  def status_for(label, job_class)
36
44
  label = job_class.output_label(label)
37
45
  ForemanInventoryUpload::Async::ProgressOutput.get(label)&.status
@@ -24,6 +24,11 @@ module ForemanInventoryUpload
24
24
  )
25
25
  end
26
26
 
27
+ def enable_cloud_connector
28
+ cloud_connector = ForemanRhCloud::CloudConnector.new
29
+ render json: cloud_connector.install.to_json
30
+ end
31
+
27
32
  def auto_upload
28
33
  Setting[:allow_auto_inventory_upload] = auto_upload_params
29
34
  render_setting(:autoUploadEnabled, :allow_auto_inventory_upload)
@@ -1,6 +1,18 @@
1
1
  module InsightsCloud
2
2
  class HitsController < ::ApplicationController
3
+ include Foreman::Controller::AutoCompleteSearch
4
+
3
5
  def index
6
+ hits = resource_base_search_and_page.preload(:host)
7
+
8
+ render json: {
9
+ hasToken: Setting[:rh_cloud_token].length > 1,
10
+ hits: hits.map { |hit| hit.attributes.merge(hostname: hit.host&.name) },
11
+ itemCount: hits.count,
12
+ }, status: :ok
13
+ end
14
+
15
+ def show
4
16
  host = Host.where(id: host_id_param).first
5
17
 
6
18
  render json: {
@@ -8,6 +20,18 @@ module InsightsCloud
8
20
  }, status: :ok
9
21
  end
10
22
 
23
+ def model_of_controller
24
+ ::InsightsHit
25
+ end
26
+
27
+ def resource_class
28
+ ::InsightsHit
29
+ end
30
+
31
+ def controller_permission
32
+ :insights_hits
33
+ end
34
+
11
35
  private
12
36
 
13
37
  def host_id_param
@@ -9,6 +9,14 @@ module InsightsCloud
9
9
  render_setting(:insightsSyncEnabled, :allow_auto_insights_sync)
10
10
  end
11
11
 
12
+ def save_token_and_sync
13
+ token = Setting::RhCloud.find_by_name("rh_cloud_token")
14
+ token.value = params.require(:value)
15
+ token.save!
16
+ InsightsCloud::Async::InsightsFullSync.perform_now
17
+ redirect_to(:controller => "hits", :action => 'index')
18
+ end
19
+
12
20
  private
13
21
 
14
22
  def render_setting(node_name, setting)
@@ -6,14 +6,7 @@ module ForemanInventoryUploadHostHelper
6
6
  def hits_counts_cell(host)
7
7
  host_hits = hits_counts[host.id]
8
8
  tag.td class: ['hidden-xs', 'ellipsis', 'text-center'] do
9
- if host_hits
10
- link_to(
11
- host_hits,
12
- InsightsCloud::WebUi.system_url(InsightsCloud::WebUi::ADVISOR, host.insights.uuid),
13
- :rel => 'external noopener noreferrer',
14
- :target => '_blank'
15
- )
16
- end
9
+ link_to(host_hits, "#{host_path(host)}#insights") if host_hits
17
10
  end
18
11
  end
19
12
  end
@@ -1,6 +1,10 @@
1
1
  class InsightsHit < ApplicationRecord
2
- has_one :host
2
+ include ::Authorizable
3
+ belongs_to :host
3
4
  # since the facet is one-to-one association with a host, we can connect
4
5
  # through host_id column on both this model and facet.
5
6
  belongs_to :insights_facet, foreign_key: 'host_id', primary_key: 'host_id', counter_cache: :hits_count
7
+ scoped_search on: :title, complete_value: true
8
+ scoped_search on: :total_risk, complete_value: :true
9
+ scoped_search relation: :host, on: :name, rename: :hostname, complete_value: true
6
10
  end
@@ -1,14 +1,16 @@
1
1
  class Setting::RhCloud < Setting
2
+ ::Setting::BLANK_ATTRS.concat %w{rh_cloud_token}
3
+
2
4
  def self.default_settings
3
5
  return unless ActiveRecord::Base.connection.table_exists?('settings')
4
6
  return unless super
5
7
  [
6
- set('allow_auto_inventory_upload', N_('Allow automatic upload of the host inventory to the Red Hat cloud'), false),
7
- set('allow_auto_insights_sync', N_('Allow recommendations synchronization from Red Hat cloud'), false),
8
- set('obfuscate_inventory_hostnames', N_('Obfuscate host names sent to Red Hat cloud'), false),
9
- set('obfuscate_inventory_ips', N_('Obfuscate ip addresses sent to Red Hat cloud'), false),
10
- set('rh_cloud_token', N_('Authentication token to Red Hat cloud services. Used to authenticate requests to cloud APIs'), 'DEFAULT', N_('Red Hat Cloud token'), nil, encrypted: true),
11
- set('exclude_installed_packages', N_('Exclude installed packages from Red Hat cloud inventory report'), false),
8
+ set('allow_auto_inventory_upload', N_('Allow automatic upload of the host inventory to the Red Hat cloud'), false, N_('Allow automatic inventory uploads')),
9
+ set('allow_auto_insights_sync', N_('Allow recommendations synchronization from Red Hat cloud'), false, N_('Allow recommendations synchronization')),
10
+ set('obfuscate_inventory_hostnames', N_('Obfuscate host names sent to Red Hat cloud'), false, N_('Obfuscate host names')),
11
+ set('obfuscate_inventory_ips', N_('Obfuscate ip addresses sent to Red Hat cloud'), false, N_('Obfuscate IPs')),
12
+ set('rh_cloud_token', N_('Authentication token to Red Hat cloud services. Used to authenticate requests to cloud APIs'), nil, N_('Red Hat Cloud token'), nil, encrypted: true),
13
+ set('exclude_installed_packages', N_('Exclude installed packages from Red Hat cloud inventory report'), false, N_("Don't upload installed packages")),
12
14
  ]
13
15
  end
14
16
 
@@ -0,0 +1,2 @@
1
+ <!-- insert_top 'head' -->
2
+ <%= css_tags_for([:foreman_rh_cloud]).first %>
@@ -0,0 +1,60 @@
1
+ require 'securerandom'
2
+
3
+ module ForemanRhCloud
4
+ class CloudConnector
5
+ CLOUD_CONNECTOR_USER = 'cloud_connector_user'.freeze
6
+ CLOUD_CONNECTOR_TOKEN_NAME = 'Cloud connector access token'.freeze
7
+ CLOUD_CONNECTOR_FEATURE = 'ansible_configure_cloud_connector'.freeze
8
+
9
+ def install
10
+ user = service_user
11
+ token_value = personal_access_token(user)
12
+
13
+ composer = ::JobInvocationComposer.for_feature(
14
+ CLOUD_CONNECTOR_FEATURE,
15
+ [foreman_host.id],
16
+ {:satellite_user => service_user.login, :satellite_password => token_value}
17
+ )
18
+ composer.trigger!
19
+ composer.job_invocation
20
+ end
21
+
22
+ def latest_job
23
+ feature_id = RemoteExecutionFeature.find_by_label(CLOUD_CONNECTOR_FEATURE)&.id
24
+ return nil unless feature_id
25
+ JobInvocation.where(:remote_execution_feature_id => feature_id).includes(:task).reorder('foreman_tasks_tasks.started_at DESC').first
26
+ end
27
+
28
+ def personal_access_token(user)
29
+ access_token = PersonalAccessToken.find_by_name(CLOUD_CONNECTOR_TOKEN_NAME)
30
+
31
+ access_token&.destroy! # destroy the old token if exists
32
+
33
+ personal_access_token = PersonalAccessToken.new(:name => CLOUD_CONNECTOR_TOKEN_NAME, :user => user)
34
+ token_value = personal_access_token.generate_token
35
+ personal_access_token.save!
36
+
37
+ token_value
38
+ end
39
+
40
+ def service_user
41
+ user = User.find_by_login(CLOUD_CONNECTOR_USER)
42
+
43
+ if user.nil?
44
+ user = User.create!(
45
+ :login => CLOUD_CONNECTOR_USER,
46
+ :password => SecureRandom.base64(255),
47
+ :description => "This is a service user used by cloud connector to talk to the Satellite API",
48
+ :auth_source => AuthSourceInternal.first,
49
+ :admin => true
50
+ )
51
+ end
52
+
53
+ user
54
+ end
55
+
56
+ def foreman_host
57
+ ::Host.friendly.find(::SmartProxy.default_capsule.name)
58
+ end
59
+ end
60
+ end
@@ -2,10 +2,6 @@
2
2
  <%= webpacked_plugins_js_for :'foreman_rh_cloud' %>
3
3
  <% end %>
4
4
 
5
- <% content_for(:stylesheets) do %>
6
- <%= webpacked_plugins_css_for :'foreman_rh_cloud' %>
7
- <% end %>
8
-
9
5
  <% content_for(:content) do %>
10
6
  <%= notifications %>
11
7
  <div id="organization-id" data-id="<%= Organization.current.id if Organization.current %>" ></div>
@@ -0,0 +1,845 @@
1
+ PATH
2
+ remote: ../foreman_rh_cloud
3
+ specs:
4
+ foreman_rh_cloud (3.0.15)
5
+ foreman_ansible
6
+ katello
7
+ redhat_access
8
+
9
+ PATH
10
+ remote: ../katello
11
+ specs:
12
+ katello (3.18.0.rc1)
13
+ activerecord-import
14
+ anemone
15
+ angular-rails-templates (~> 1.1.0)
16
+ apipie-rails (>= 0.5.14)
17
+ deface (>= 1.0.2, < 2.0.0)
18
+ dynflow (>= 1.2.0)
19
+ foreman-tasks (>= 0.14.1)
20
+ foreman_remote_execution (>= 3.0)
21
+ fx (< 1.0)
22
+ gettext_i18n_rails
23
+ json
24
+ oauth
25
+ pg
26
+ pulp_2to3_migration_client (>= 0.3.0, < 0.6.0, != 0.4.0)
27
+ pulp_ansible_client (>= 0.2, < 0.5)
28
+ pulp_certguard_client (< 2.0)
29
+ pulp_container_client (>= 2.0.0, < 2.2.0)
30
+ pulp_deb_client (>= 2.6.0, < 2.8.0)
31
+ pulp_file_client (>= 1.2.0, < 1.4.0)
32
+ pulp_rpm_client (>= 3.6.2, < 3.8.0)
33
+ pulpcore_client (>= 3.6.0, < 3.8.0)
34
+ rabl
35
+ rails
36
+ rest-client
37
+ runcible (>= 2.13.0, < 3.0.0)
38
+ scoped_search (>= 4.1.9)
39
+ stomp
40
+
41
+ GEM
42
+ remote: https://rubygems.org/
43
+ specs:
44
+ actioncable (6.0.3.4)
45
+ actionpack (= 6.0.3.4)
46
+ nio4r (~> 2.0)
47
+ websocket-driver (>= 0.6.1)
48
+ actionmailbox (6.0.3.4)
49
+ actionpack (= 6.0.3.4)
50
+ activejob (= 6.0.3.4)
51
+ activerecord (= 6.0.3.4)
52
+ activestorage (= 6.0.3.4)
53
+ activesupport (= 6.0.3.4)
54
+ mail (>= 2.7.1)
55
+ actionmailer (6.0.3.4)
56
+ actionpack (= 6.0.3.4)
57
+ actionview (= 6.0.3.4)
58
+ activejob (= 6.0.3.4)
59
+ mail (~> 2.5, >= 2.5.4)
60
+ rails-dom-testing (~> 2.0)
61
+ actionpack (6.0.3.4)
62
+ actionview (= 6.0.3.4)
63
+ activesupport (= 6.0.3.4)
64
+ rack (~> 2.0, >= 2.0.8)
65
+ rack-test (>= 0.6.3)
66
+ rails-dom-testing (~> 2.0)
67
+ rails-html-sanitizer (~> 1.0, >= 1.2.0)
68
+ actiontext (6.0.3.4)
69
+ actionpack (= 6.0.3.4)
70
+ activerecord (= 6.0.3.4)
71
+ activestorage (= 6.0.3.4)
72
+ activesupport (= 6.0.3.4)
73
+ nokogiri (>= 1.8.5)
74
+ actionview (6.0.3.4)
75
+ activesupport (= 6.0.3.4)
76
+ builder (~> 3.1)
77
+ erubi (~> 1.4)
78
+ rails-dom-testing (~> 2.0)
79
+ rails-html-sanitizer (~> 1.1, >= 1.2.0)
80
+ activejob (6.0.3.4)
81
+ activesupport (= 6.0.3.4)
82
+ globalid (>= 0.3.6)
83
+ activemodel (6.0.3.4)
84
+ activesupport (= 6.0.3.4)
85
+ activerecord (6.0.3.4)
86
+ activemodel (= 6.0.3.4)
87
+ activesupport (= 6.0.3.4)
88
+ activerecord-import (1.0.7)
89
+ activerecord (>= 3.2)
90
+ activerecord-nulldb-adapter (0.7.0)
91
+ activerecord (>= 5.2.0, < 6.3)
92
+ activerecord-session_store (1.1.3)
93
+ actionpack (>= 4.0)
94
+ activerecord (>= 4.0)
95
+ multi_json (~> 1.11, >= 1.11.2)
96
+ rack (>= 1.5.2, < 3)
97
+ railties (>= 4.0)
98
+ activestorage (6.0.3.4)
99
+ actionpack (= 6.0.3.4)
100
+ activejob (= 6.0.3.4)
101
+ activerecord (= 6.0.3.4)
102
+ marcel (~> 0.3.1)
103
+ activesupport (6.0.3.4)
104
+ concurrent-ruby (~> 1.0, >= 1.0.2)
105
+ i18n (>= 0.7, < 2)
106
+ minitest (~> 5.1)
107
+ tzinfo (~> 1.1)
108
+ zeitwerk (~> 2.2, >= 2.2.2)
109
+ addressable (2.7.0)
110
+ public_suffix (>= 2.0.2, < 5.0)
111
+ algebrick (0.7.5)
112
+ amazing_print (1.2.2)
113
+ ancestry (3.2.1)
114
+ activerecord (>= 4.2.0)
115
+ anemone (0.7.2)
116
+ nokogiri (>= 1.3.0)
117
+ robotex (>= 1.0.0)
118
+ angular-rails-templates (1.1.0)
119
+ railties (>= 4.2, < 7)
120
+ sprockets (>= 3.0, < 5)
121
+ tilt
122
+ ansi (1.5.0)
123
+ apipie-dsl (2.3.0)
124
+ apipie-params (0.0.5)
125
+ apipie-rails (0.5.18)
126
+ rails (>= 4.1)
127
+ as_deprecation_tracker (1.5.0)
128
+ activesupport (>= 4.2)
129
+ railties (>= 4.2)
130
+ ast (2.4.2)
131
+ audited (4.10.0)
132
+ activerecord (>= 4.2, < 6.2)
133
+ autoprefixer-rails (10.2.4.0)
134
+ execjs
135
+ bcrypt (3.1.16)
136
+ benchmark-ips (2.8.4)
137
+ binding_of_caller (1.0.0)
138
+ debug_inspector (>= 0.0.1)
139
+ bootsnap (1.7.1)
140
+ msgpack (~> 1.0)
141
+ bootstrap-sass (3.4.1)
142
+ autoprefixer-rails (>= 5.2.1)
143
+ sassc (>= 2.0.0)
144
+ builder (3.2.4)
145
+ bullet (6.1.3)
146
+ activesupport (>= 3.0.0)
147
+ uniform_notifier (~> 1.11)
148
+ byebug (11.1.3)
149
+ capybara (3.32.0)
150
+ addressable
151
+ mini_mime (>= 0.1.3)
152
+ nokogiri (~> 1.8)
153
+ rack (>= 1.6.0)
154
+ rack-test (>= 0.6.3)
155
+ regexp_parser (~> 1.5)
156
+ xpath (~> 3.2)
157
+ childprocess (3.0.0)
158
+ ci_reporter (2.0.0)
159
+ builder (>= 2.1.2)
160
+ ci_reporter_minitest (1.0.0)
161
+ ci_reporter (~> 2.0)
162
+ minitest (~> 5.0)
163
+ coderay (1.1.3)
164
+ coffee-rails (5.0.0)
165
+ coffee-script (>= 2.2.0)
166
+ railties (>= 5.2.0)
167
+ coffee-script (2.4.1)
168
+ coffee-script-source
169
+ execjs
170
+ coffee-script-source (1.12.2)
171
+ concurrent-ruby (1.1.8)
172
+ concurrent-ruby-edge (0.6.0)
173
+ concurrent-ruby (~> 1.1.6)
174
+ connection_pool (2.2.3)
175
+ crack (0.4.5)
176
+ rexml
177
+ crass (1.0.6)
178
+ css_parser (1.9.0)
179
+ addressable
180
+ daemons (1.3.1)
181
+ database_cleaner (1.99.0)
182
+ deacon (1.0.0)
183
+ debug_inspector (1.0.0)
184
+ declarative (0.0.20)
185
+ declarative-option (0.1.0)
186
+ deep_cloneable (3.0.0)
187
+ activerecord (>= 3.1.0, < 7)
188
+ deface (1.6.1)
189
+ nokogiri (>= 1.6)
190
+ polyglot
191
+ rails (>= 5.2)
192
+ rainbow (>= 2.1.0)
193
+ docile (1.3.5)
194
+ domain_name (0.5.20190701)
195
+ unf (>= 0.0.5, < 1.0.0)
196
+ dynflow (1.4.7)
197
+ algebrick (~> 0.7.0)
198
+ apipie-params
199
+ concurrent-ruby (~> 1.1.3)
200
+ concurrent-ruby-edge (~> 0.6.0)
201
+ multi_json
202
+ sequel (>= 4.0.0)
203
+ erubi (1.10.0)
204
+ excon (0.79.0)
205
+ execjs (2.7.0)
206
+ facter (4.0.50)
207
+ hocon (~> 1.3)
208
+ thor (>= 1.0.1, < 2.0)
209
+ factory_bot (5.2.0)
210
+ activesupport (>= 4.2.0)
211
+ factory_bot_rails (5.2.0)
212
+ factory_bot (~> 5.2.0)
213
+ railties (>= 4.2.0)
214
+ faraday (1.3.0)
215
+ faraday-net_http (~> 1.0)
216
+ multipart-post (>= 1.2, < 3)
217
+ ruby2_keywords
218
+ faraday-net_http (1.0.1)
219
+ fast_gettext (1.8.0)
220
+ ffi (1.14.2)
221
+ fog-aws (3.8.0)
222
+ fog-core (~> 2.1)
223
+ fog-json (~> 1.1)
224
+ fog-xml (~> 0.1)
225
+ ipaddress (~> 0.8)
226
+ fog-core (2.1.0)
227
+ builder
228
+ excon (~> 0.58)
229
+ formatador (~> 0.2)
230
+ mime-types
231
+ fog-google (1.11.0)
232
+ fog-core (<= 2.1.0)
233
+ fog-json (~> 1.2)
234
+ fog-xml (~> 0.1.0)
235
+ google-api-client (>= 0.32, < 0.34)
236
+ google-cloud-env (~> 1.2)
237
+ fog-json (1.2.0)
238
+ fog-core
239
+ multi_json (~> 1.10)
240
+ fog-libvirt (0.8.0)
241
+ fog-core (>= 1.27.4)
242
+ fog-json
243
+ fog-xml (~> 0.1.1)
244
+ json
245
+ ruby-libvirt (>= 0.7.0)
246
+ fog-openstack (1.0.11)
247
+ fog-core (~> 2.1)
248
+ fog-json (>= 1.0)
249
+ ipaddress (>= 0.8)
250
+ fog-ovirt (1.2.5)
251
+ fog-core
252
+ fog-json
253
+ fog-xml
254
+ ovirt-engine-sdk (>= 4.1.3)
255
+ rbovirt (~> 0.1.5)
256
+ fog-vsphere (3.5.0)
257
+ fog-core
258
+ rbvmomi (>= 1.9, < 3)
259
+ fog-xml (0.1.3)
260
+ fog-core
261
+ nokogiri (>= 1.5.11, < 2.0.0)
262
+ font-awesome-sass (4.6.2)
263
+ sass (>= 3.2)
264
+ foreman (0.87.2)
265
+ foreman-tasks (3.0.3)
266
+ dynflow (>= 1.2.3)
267
+ foreman-tasks-core
268
+ get_process_mem
269
+ parse-cron (~> 0.1.4)
270
+ sinatra
271
+ foreman-tasks-core (0.3.4)
272
+ dynflow (>= 1.2.0)
273
+ foreman_ansible (6.1.1)
274
+ deface (< 2.0)
275
+ foreman_remote_execution (>= 4.2.0)
276
+ ipaddress (>= 0.8.0, < 1.0)
277
+ foreman_ansible_core (4.0.0)
278
+ foreman-tasks-core (~> 0.3.2)
279
+ foreman_remote_execution_core (~> 1.1)
280
+ net-ssh
281
+ foreman_remote_execution (4.2.2)
282
+ deface
283
+ dynflow (>= 1.0.2, < 2.0.0)
284
+ foreman-tasks (>= 0.15.1)
285
+ foreman_remote_execution_core
286
+ foreman_remote_execution_core (1.4.0)
287
+ foreman-tasks-core (>= 0.3.1)
288
+ net-ssh
289
+ formatador (0.2.5)
290
+ friendly_id (5.3.0)
291
+ activerecord (>= 4.0.0)
292
+ fx (0.6.2)
293
+ activerecord (>= 4.0.0)
294
+ railties (>= 4.0.0)
295
+ get_process_mem (0.2.7)
296
+ ffi (~> 1.0)
297
+ gettext (3.3.7)
298
+ locale (>= 2.0.5)
299
+ text (>= 1.3.0)
300
+ gettext_i18n_rails (1.8.1)
301
+ fast_gettext (>= 0.9.0)
302
+ gettext_i18n_rails_js (1.3.0)
303
+ gettext (>= 3.0.2)
304
+ gettext_i18n_rails (>= 0.7.1)
305
+ po_to_json (>= 1.0.0)
306
+ rails (>= 3.2.0)
307
+ gitlab-sidekiq-fetcher (0.6.1)
308
+ sidekiq (>= 5, < 6.1)
309
+ globalid (0.4.2)
310
+ activesupport (>= 4.2.0)
311
+ google-api-client (0.33.2)
312
+ addressable (~> 2.5, >= 2.5.1)
313
+ googleauth (~> 0.9)
314
+ httpclient (>= 2.8.1, < 3.0)
315
+ mini_mime (~> 1.0)
316
+ representable (~> 3.0)
317
+ retriable (>= 2.0, < 4.0)
318
+ signet (~> 0.12)
319
+ google-cloud-env (1.4.0)
320
+ faraday (>= 0.17.3, < 2.0)
321
+ googleauth (0.15.0)
322
+ faraday (>= 0.17.3, < 2.0)
323
+ jwt (>= 1.4, < 3.0)
324
+ memoist (~> 0.16)
325
+ multi_json (~> 1.11)
326
+ os (>= 0.9, < 2.0)
327
+ signet (~> 0.14)
328
+ graphiql-rails (1.7.0)
329
+ railties
330
+ sprockets-rails
331
+ graphql (1.8.18)
332
+ graphql-batch (0.4.3)
333
+ graphql (>= 1.3, < 2)
334
+ promise.rb (~> 0.7.2)
335
+ hashdiff (1.0.1)
336
+ hocon (1.3.1)
337
+ http-accept (1.7.0)
338
+ http-cookie (1.0.3)
339
+ domain_name (~> 0.5)
340
+ httpclient (2.8.3)
341
+ i18n (1.8.8)
342
+ concurrent-ruby (~> 1.0)
343
+ immigrant (0.3.6)
344
+ activerecord (>= 3.0)
345
+ ipaddress (0.8.3)
346
+ jaro_winkler (1.5.4)
347
+ journald-logger (3.0.1)
348
+ journald-native (~> 1.0)
349
+ journald-native (1.0.12)
350
+ jquery-ui-rails (6.0.1)
351
+ railties (>= 3.2.16)
352
+ json (2.5.1)
353
+ jwt (2.2.2)
354
+ launchy (2.5.0)
355
+ addressable (~> 2.7)
356
+ ldap_fluff (0.5.0)
357
+ activesupport
358
+ net-ldap (>= 0.11)
359
+ little-plugger (1.1.4)
360
+ locale (2.1.3)
361
+ logging (2.3.0)
362
+ little-plugger (~> 1.1)
363
+ multi_json (~> 1.14)
364
+ logging-journald (2.1.0)
365
+ journald-logger (~> 3.0)
366
+ logging
367
+ loofah (2.9.0)
368
+ crass (~> 1.0.2)
369
+ nokogiri (>= 1.5.9)
370
+ mail (2.7.1)
371
+ mini_mime (>= 0.1.1)
372
+ marcel (0.3.3)
373
+ mimemagic (~> 0.3.2)
374
+ maruku (0.7.3)
375
+ memoist (0.16.2)
376
+ method_source (1.0.0)
377
+ mime-types (3.3.1)
378
+ mime-types-data (~> 3.2015)
379
+ mime-types-data (3.2020.1104)
380
+ mimemagic (0.3.5)
381
+ mini_mime (1.0.2)
382
+ mini_portile2 (2.5.0)
383
+ minitest (5.10.3)
384
+ minitest-reporters (1.4.3)
385
+ ansi
386
+ builder
387
+ minitest (>= 5.0)
388
+ ruby-progressbar
389
+ minitest-retry (0.2.1)
390
+ minitest (>= 5.0)
391
+ minitest-spec-rails (6.0.3)
392
+ minitest (>= 5.0)
393
+ railties (>= 4.1)
394
+ minitest-tags (0.0.5)
395
+ mocha (1.12.0)
396
+ msgpack (1.4.2)
397
+ multi_json (1.15.0)
398
+ multipart-post (2.1.1)
399
+ mustermann (1.1.1)
400
+ ruby2_keywords (~> 0.0.1)
401
+ net-ldap (0.17.0)
402
+ net-ping (2.0.8)
403
+ net-scp (3.0.0)
404
+ net-ssh (>= 2.6.5, < 7.0.0)
405
+ net-ssh (4.2.0)
406
+ netrc (0.11.0)
407
+ nio4r (2.5.5)
408
+ nokogiri (1.11.1)
409
+ mini_portile2 (~> 2.5.0)
410
+ racc (~> 1.4)
411
+ oauth (0.5.5)
412
+ optimist (3.0.1)
413
+ os (1.1.1)
414
+ ovirt-engine-sdk (4.4.0)
415
+ json (>= 1, < 3)
416
+ paint (2.2.1)
417
+ parallel (1.20.1)
418
+ parallel_tests (3.4.0)
419
+ parallel
420
+ parse-cron (0.1.4)
421
+ parser (3.0.0.0)
422
+ ast (~> 2.4.1)
423
+ patternfly-sass (3.59.5)
424
+ bootstrap-sass (~> 3.4.0)
425
+ font-awesome-sass (~> 4.6.2)
426
+ sassc (> 2.0.1, < 3.0)
427
+ pg (1.2.3)
428
+ po_to_json (1.0.1)
429
+ json (>= 1.6.0)
430
+ polyglot (0.3.5)
431
+ prometheus-client (1.0.0)
432
+ promise.rb (0.7.4)
433
+ pry (0.13.1)
434
+ coderay (~> 1.1)
435
+ method_source (~> 1.0)
436
+ pry-byebug (3.9.0)
437
+ byebug (~> 11.0)
438
+ pry (~> 0.13.0)
439
+ pry-doc (1.1.0)
440
+ pry (~> 0.11)
441
+ yard (~> 0.9.11)
442
+ pry-rails (0.3.9)
443
+ pry (>= 0.10.4)
444
+ pry-remote (0.1.8)
445
+ pry (~> 0.9)
446
+ slop (~> 3.0)
447
+ pry-stack_explorer (0.6.0)
448
+ binding_of_caller (~> 1.0)
449
+ pry (~> 0.13)
450
+ public_suffix (4.0.6)
451
+ pulp_2to3_migration_client (0.5.1)
452
+ faraday (>= 0.14.0)
453
+ json (~> 2.1, >= 2.1.0)
454
+ pulp_ansible_client (0.4.3)
455
+ faraday (>= 0.14.0)
456
+ json (~> 2.1, >= 2.1.0)
457
+ pulp_certguard_client (1.1.0)
458
+ faraday (>= 0.14.0)
459
+ json (~> 2.1, >= 2.1.0)
460
+ pulp_container_client (2.1.0)
461
+ faraday (>= 0.14.0)
462
+ json (~> 2.1, >= 2.1.0)
463
+ pulp_deb_client (2.7.0)
464
+ faraday (>= 0.14.0)
465
+ json (~> 2.1, >= 2.1.0)
466
+ pulp_file_client (1.3.0)
467
+ faraday (>= 0.14.0)
468
+ json (~> 2.1, >= 2.1.0)
469
+ pulp_rpm_client (3.7.0)
470
+ faraday (>= 0.14.0)
471
+ json (~> 2.1, >= 2.1.0)
472
+ pulpcore_client (3.7.3)
473
+ faraday (>= 0.14.0)
474
+ json (~> 2.1, >= 2.1.0)
475
+ puma (4.3.7)
476
+ nio4r (~> 2.0)
477
+ puma-plugin-systemd (0.1.5)
478
+ json
479
+ puma (>= 3.6, < 5)
480
+ rabl (0.14.3)
481
+ activesupport (>= 2.3.14)
482
+ racc (1.5.2)
483
+ rack (2.2.3)
484
+ rack-cors (1.0.6)
485
+ rack (>= 1.6.0)
486
+ rack-jsonp (1.3.1)
487
+ rack
488
+ rack-openid (1.4.2)
489
+ rack (>= 1.1.0)
490
+ ruby-openid (>= 2.1.8)
491
+ rack-protection (2.1.0)
492
+ rack
493
+ rack-test (1.1.0)
494
+ rack (>= 1.0, < 3)
495
+ rails (6.0.3.4)
496
+ actioncable (= 6.0.3.4)
497
+ actionmailbox (= 6.0.3.4)
498
+ actionmailer (= 6.0.3.4)
499
+ actionpack (= 6.0.3.4)
500
+ actiontext (= 6.0.3.4)
501
+ actionview (= 6.0.3.4)
502
+ activejob (= 6.0.3.4)
503
+ activemodel (= 6.0.3.4)
504
+ activerecord (= 6.0.3.4)
505
+ activestorage (= 6.0.3.4)
506
+ activesupport (= 6.0.3.4)
507
+ bundler (>= 1.3.0)
508
+ railties (= 6.0.3.4)
509
+ sprockets-rails (>= 2.0.0)
510
+ rails-controller-testing (1.0.5)
511
+ actionpack (>= 5.0.1.rc1)
512
+ actionview (>= 5.0.1.rc1)
513
+ activesupport (>= 5.0.1.rc1)
514
+ rails-dom-testing (2.0.3)
515
+ activesupport (>= 4.2.0)
516
+ nokogiri (>= 1.6)
517
+ rails-html-sanitizer (1.3.0)
518
+ loofah (~> 2.3)
519
+ rails-i18n (6.0.0)
520
+ i18n (>= 0.7, < 2)
521
+ railties (>= 6.0.0, < 7)
522
+ railties (6.0.3.4)
523
+ actionpack (= 6.0.3.4)
524
+ activesupport (= 6.0.3.4)
525
+ method_source
526
+ rake (>= 0.8.7)
527
+ thor (>= 0.20.3, < 2.0)
528
+ rainbow (3.0.0)
529
+ rake (13.0.3)
530
+ rb-fsevent (0.10.4)
531
+ rb-inotify (0.10.1)
532
+ ffi (~> 1.0)
533
+ rbovirt (0.1.7)
534
+ nokogiri
535
+ rest-client (> 1.7.0)
536
+ rbvmomi (2.4.1)
537
+ builder (~> 3.0)
538
+ json (>= 1.8)
539
+ nokogiri (~> 1.5)
540
+ optimist (~> 3.0)
541
+ rdoc (6.3.0)
542
+ record_tag_helper (1.0.1)
543
+ actionview (>= 5)
544
+ redhat_access (2.2.18)
545
+ angular-rails-templates (>= 0.0.4)
546
+ foreman-tasks
547
+ katello
548
+ redhat_access_lib (>= 1.1.5)
549
+ redhat_access_lib (1.1.5)
550
+ rest-client (>= 1.6.3)
551
+ redis (4.1.4)
552
+ regexp_parser (1.8.2)
553
+ representable (3.0.4)
554
+ declarative (< 0.1.0)
555
+ declarative-option (< 0.2.0)
556
+ uber (< 0.2.0)
557
+ responders (3.0.1)
558
+ actionpack (>= 5.0)
559
+ railties (>= 5.0)
560
+ rest-client (2.1.0)
561
+ http-accept (>= 1.7.0, < 2.0)
562
+ http-cookie (>= 1.0.2, < 2.0)
563
+ mime-types (>= 1.16, < 4.0)
564
+ netrc (~> 0.8)
565
+ retriable (3.1.2)
566
+ rexml (3.2.4)
567
+ rfauxfactory (0.1.5)
568
+ roadie (4.0.0)
569
+ css_parser (~> 1.4)
570
+ nokogiri (~> 1.8)
571
+ roadie-rails (2.2.0)
572
+ railties (>= 5.1, < 6.2)
573
+ roadie (>= 3.1, < 5.0)
574
+ robotex (1.0.0)
575
+ robottelo_reporter (0.1.1)
576
+ builder (>= 2.1.2)
577
+ rubocop (0.80.1)
578
+ jaro_winkler (~> 1.5.1)
579
+ parallel (~> 1.10)
580
+ parser (>= 2.7.0.1)
581
+ rainbow (>= 2.2.2, < 4.0)
582
+ rexml
583
+ ruby-progressbar (~> 1.7)
584
+ unicode-display_width (>= 1.4.0, < 1.7)
585
+ rubocop-checkstyle_formatter (0.4.0)
586
+ rubocop (>= 0.35.1)
587
+ rubocop-minitest (0.7.0)
588
+ rubocop (>= 0.74)
589
+ rubocop-performance (1.5.2)
590
+ rubocop (>= 0.71.0)
591
+ rubocop-rails (2.4.2)
592
+ rack (>= 1.1)
593
+ rubocop (>= 0.72.0)
594
+ ruby-libvirt (0.7.1)
595
+ ruby-openid (2.9.2)
596
+ ruby-progressbar (1.11.0)
597
+ ruby2_keywords (0.0.4)
598
+ ruby2ruby (2.4.4)
599
+ ruby_parser (~> 3.1)
600
+ sexp_processor (~> 4.6)
601
+ ruby_parser (3.15.1)
602
+ sexp_processor (~> 4.9)
603
+ rubyzip (2.3.0)
604
+ runcible (2.13.1)
605
+ activesupport (>= 3.0.10)
606
+ i18n (>= 0.5.0)
607
+ json
608
+ oauth
609
+ rest-client (>= 1.6.1, < 3.0.0)
610
+ safemode (1.3.6)
611
+ ruby2ruby (>= 2.4.0)
612
+ ruby_parser (>= 3.10.1)
613
+ sexp_processor (>= 4.10.0)
614
+ sass (3.7.4)
615
+ sass-listen (~> 4.0.0)
616
+ sass-listen (4.0.0)
617
+ rb-fsevent (~> 0.9, >= 0.9.4)
618
+ rb-inotify (~> 0.9, >= 0.9.7)
619
+ sass-rails (6.0.0)
620
+ sassc-rails (~> 2.1, >= 2.1.1)
621
+ sassc (2.4.0)
622
+ ffi (~> 1.9)
623
+ sassc-rails (2.1.2)
624
+ railties (>= 4.0.0)
625
+ sassc (>= 2.0)
626
+ sprockets (> 3.0)
627
+ sprockets-rails
628
+ tilt
629
+ scoped_search (4.1.9)
630
+ activerecord (>= 4.2.0)
631
+ sd_notify (0.1.0)
632
+ secure_headers (6.3.1)
633
+ selenium-webdriver (3.142.7)
634
+ childprocess (>= 0.5, < 4.0)
635
+ rubyzip (>= 1.2.2)
636
+ sequel (5.41.0)
637
+ sexp_processor (4.15.2)
638
+ shoulda-context (1.2.2)
639
+ shoulda-matchers (4.3.0)
640
+ activesupport (>= 4.2.0)
641
+ show_me_the_cookies (5.0.1)
642
+ capybara (>= 2, < 4)
643
+ sidekiq (5.2.9)
644
+ connection_pool (~> 2.2, >= 2.2.2)
645
+ rack (~> 2.0)
646
+ rack-protection (>= 1.5.0)
647
+ redis (>= 3.3.5, < 4.2)
648
+ signet (0.14.1)
649
+ addressable (~> 2.3)
650
+ faraday (>= 0.17.3, < 2.0)
651
+ jwt (>= 1.5, < 3.0)
652
+ multi_json (~> 1.10)
653
+ simplecov (0.21.2)
654
+ docile (~> 1.1)
655
+ simplecov-html (~> 0.11)
656
+ simplecov_json_formatter (~> 0.1)
657
+ simplecov-html (0.12.3)
658
+ simplecov-rcov (0.2.3)
659
+ simplecov (>= 0.4.1)
660
+ simplecov_json_formatter (0.1.2)
661
+ sinatra (2.1.0)
662
+ mustermann (~> 1.0)
663
+ rack (~> 2.2)
664
+ rack-protection (= 2.1.0)
665
+ tilt (~> 2.0)
666
+ single_test (0.6.0)
667
+ rake
668
+ slop (3.6.0)
669
+ spring (2.1.1)
670
+ sprockets (4.0.2)
671
+ concurrent-ruby (~> 1.0)
672
+ rack (> 1, < 3)
673
+ sprockets-rails (3.2.2)
674
+ actionpack (>= 4.0)
675
+ activesupport (>= 4.0)
676
+ sprockets (>= 3.0.0)
677
+ sshkey (1.9.0)
678
+ statsd-instrument (2.9.2)
679
+ stomp (1.4.10)
680
+ text (1.3.1)
681
+ thor (1.1.0)
682
+ thread_safe (0.3.6)
683
+ tilt (2.0.10)
684
+ tzinfo (1.2.9)
685
+ thread_safe (~> 0.1)
686
+ uber (0.1.0)
687
+ uglifier (4.2.0)
688
+ execjs (>= 0.3.0, < 3)
689
+ unf (0.1.4)
690
+ unf_ext
691
+ unf_ext (0.0.7.7)
692
+ unicode-display_width (1.6.1)
693
+ uniform_notifier (1.13.2)
694
+ validates_lengths_from_database (0.8.0)
695
+ activerecord (>= 4)
696
+ vcr (3.0.3)
697
+ webmock (3.11.2)
698
+ addressable (>= 2.3.6)
699
+ crack (>= 0.3.2)
700
+ hashdiff (>= 0.4.0, < 2.0.0)
701
+ webpack-rails (0.9.11)
702
+ railties (>= 3.2.0)
703
+ websocket-driver (0.7.3)
704
+ websocket-extensions (>= 0.1.0)
705
+ websocket-extensions (0.1.5)
706
+ will_paginate (3.3.0)
707
+ wirb (2.2.2)
708
+ paint (>= 0.9, < 3.0)
709
+ xpath (3.2.0)
710
+ nokogiri (~> 1.8)
711
+ yard (0.9.26)
712
+ zeitwerk (2.4.2)
713
+
714
+ PLATFORMS
715
+ ruby
716
+
717
+ DEPENDENCIES
718
+ activerecord-nulldb-adapter
719
+ activerecord-session_store (>= 1.1.0, < 2)
720
+ amazing_print (~> 1.1)
721
+ ancestry (>= 3.0.7, < 4, != 3.2.0)
722
+ apipie-dsl (>= 2.2.6)
723
+ apipie-rails (>= 0.5.17, < 0.6.0)
724
+ as_deprecation_tracker (~> 1.4)
725
+ audited (>= 4.9.0, < 5)
726
+ bcrypt (~> 3.1)
727
+ benchmark-ips (>= 2.8.2)
728
+ bootsnap
729
+ bullet (>= 6.1.0)
730
+ capybara (~> 3.0, < 3.32.1)
731
+ ci_reporter_minitest
732
+ coffee-rails (~> 5.0.0)
733
+ daemons
734
+ database_cleaner (~> 1.3)
735
+ deacon (~> 1.0)
736
+ deep_cloneable (>= 3, < 4)
737
+ dynflow (>= 1.4.4, < 2.0.0)
738
+ execjs (>= 1.4.0, < 3.0)
739
+ facter
740
+ factory_bot_rails (~> 5.0)
741
+ fast_gettext (~> 1.4)
742
+ fog-aws (>= 3.6.2, < 4)
743
+ fog-core (= 2.1.0)
744
+ fog-google (~> 1.11.0)
745
+ fog-libvirt (>= 0.7.0)
746
+ fog-openstack (>= 1.0.8, < 2.0.0)
747
+ fog-ovirt (~> 1.2.5)
748
+ fog-vsphere (>= 3.3.1, < 4.0)
749
+ foreman
750
+ foreman_ansible_core
751
+ foreman_rh_cloud!
752
+ friendly_id (>= 5.3.0, < 5.4)
753
+ get_process_mem
754
+ gettext (>= 3.2.1, < 4.0.0)
755
+ gettext_i18n_rails (~> 1.8)
756
+ gettext_i18n_rails_js (~> 1.0)
757
+ gitlab-sidekiq-fetcher
758
+ graphiql-rails (~> 1.7)
759
+ graphql (~> 1.8.0)
760
+ graphql-batch
761
+ i18n (~> 1.1)
762
+ immigrant (~> 0.1)
763
+ jquery-ui-rails (~> 6.0)
764
+ jwt (~> 2.2.1)
765
+ katello!
766
+ launchy (~> 2.4)
767
+ ldap_fluff (>= 0.4.7, < 1.0)
768
+ logging (>= 1.8.0, < 3.0.0)
769
+ logging-journald (~> 2.0)
770
+ mail (~> 2.7)
771
+ maruku (~> 0.7)
772
+ minitest (~> 5.1, < 5.11)
773
+ minitest-reporters
774
+ minitest-retry (~> 0.0)
775
+ minitest-spec-rails (~> 6.0)
776
+ minitest-tags
777
+ mocha (~> 1.11)
778
+ net-ldap (>= 0.16.0)
779
+ net-ping
780
+ net-scp
781
+ net-ssh (= 4.2.0)
782
+ oauth (>= 0.5.4, < 1)
783
+ parallel_tests
784
+ patternfly-sass (~> 3.59.4)
785
+ pg (>= 0.18, < 2.0)
786
+ prometheus-client (~> 1.0)
787
+ pry
788
+ pry-byebug
789
+ pry-doc
790
+ pry-rails
791
+ pry-remote
792
+ pry-stack_explorer
793
+ puma (< 5.0)
794
+ puma-plugin-systemd
795
+ rabl (~> 0.14.2)
796
+ rack-cors (~> 1.0.2)
797
+ rack-jsonp
798
+ rack-openid (~> 1.3)
799
+ rails (~> 6.0.3.1)
800
+ rails-controller-testing (~> 1.0)
801
+ rails-i18n (~> 6.0)
802
+ rainbow (>= 2.2.1)
803
+ rbvmomi (~> 2.0)
804
+ rdoc
805
+ record_tag_helper (~> 1.0)
806
+ redis (~> 4.0)
807
+ responders (~> 3.0)
808
+ rest-client (>= 2.0.0, < 3)
809
+ rfauxfactory (~> 0.1, >= 0.1.5)
810
+ roadie-rails (~> 2.0)
811
+ robottelo_reporter (~> 0.1)
812
+ rubocop (~> 0.80.0)
813
+ rubocop-checkstyle_formatter (~> 0.2)
814
+ rubocop-minitest (~> 0.7.0)
815
+ rubocop-performance (~> 1.5.2)
816
+ rubocop-rails (~> 2.4.2)
817
+ ruby-libvirt (~> 0.5)
818
+ safemode (>= 1.3.5, < 2)
819
+ sass-rails (~> 6.0)
820
+ scoped_search (>= 4.1.8, < 5)
821
+ sd_notify (~> 0.1)
822
+ secure_headers (~> 6.3)
823
+ selenium-webdriver
824
+ shoulda-context (~> 1.2)
825
+ shoulda-matchers (>= 4.0, < 4.4)
826
+ show_me_the_cookies (~> 5.0)
827
+ sidekiq (~> 5.0)
828
+ simplecov
829
+ simplecov-rcov
830
+ single_test (~> 0.6)
831
+ spring (>= 1.0, < 3)
832
+ sprockets (~> 4.0)
833
+ sprockets-rails (~> 3.0)
834
+ sshkey (~> 1.9)
835
+ statsd-instrument (< 3)
836
+ uglifier (>= 1.0.3)
837
+ validates_lengths_from_database (~> 0.5)
838
+ vcr (< 4.0.0)
839
+ webmock
840
+ webpack-rails (~> 0.9.8)
841
+ will_paginate (>= 3.1.7, < 4)
842
+ wirb (>= 1.0, < 3.0)
843
+
844
+ BUNDLED WITH
845
+ 1.17.3