katello 4.11.0 → 4.12.0.rc1

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of katello might be problematic. Click here for more details.

Files changed (329) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/katello/common/katello.global.js +1 -1
  3. data/app/assets/javascripts/katello/locale/bn/katello.js +93 -99
  4. data/app/assets/javascripts/katello/locale/bn_IN/katello.js +93 -99
  5. data/app/assets/javascripts/katello/locale/ca/katello.js +97 -100
  6. data/app/assets/javascripts/katello/locale/cs/katello.js +96 -99
  7. data/app/assets/javascripts/katello/locale/cs_CZ/katello.js +109 -100
  8. data/app/assets/javascripts/katello/locale/de/katello.js +120 -102
  9. data/app/assets/javascripts/katello/locale/de_AT/katello.js +93 -99
  10. data/app/assets/javascripts/katello/locale/de_DE/katello.js +93 -99
  11. data/app/assets/javascripts/katello/locale/el/katello.js +103 -100
  12. data/app/assets/javascripts/katello/locale/en/katello.js +93 -99
  13. data/app/assets/javascripts/katello/locale/en_GB/katello.js +105 -99
  14. data/app/assets/javascripts/katello/locale/en_US/katello.js +93 -99
  15. data/app/assets/javascripts/katello/locale/es/katello.js +117 -102
  16. data/app/assets/javascripts/katello/locale/et_EE/katello.js +93 -99
  17. data/app/assets/javascripts/katello/locale/fr/katello.js +120 -102
  18. data/app/assets/javascripts/katello/locale/gl/katello.js +97 -100
  19. data/app/assets/javascripts/katello/locale/gu/katello.js +93 -99
  20. data/app/assets/javascripts/katello/locale/he_IL/katello.js +93 -99
  21. data/app/assets/javascripts/katello/locale/hi/katello.js +93 -99
  22. data/app/assets/javascripts/katello/locale/id/katello.js +93 -99
  23. data/app/assets/javascripts/katello/locale/it/katello.js +106 -100
  24. data/app/assets/javascripts/katello/locale/ja/katello.js +120 -102
  25. data/app/assets/javascripts/katello/locale/ka/katello.js +113 -101
  26. data/app/assets/javascripts/katello/locale/kn/katello.js +93 -99
  27. data/app/assets/javascripts/katello/locale/ko/katello.js +114 -102
  28. data/app/assets/javascripts/katello/locale/locale/katello.js +1183 -1048
  29. data/app/assets/javascripts/katello/locale/ml_IN/katello.js +93 -99
  30. data/app/assets/javascripts/katello/locale/mr/katello.js +93 -99
  31. data/app/assets/javascripts/katello/locale/nl_NL/katello.js +93 -99
  32. data/app/assets/javascripts/katello/locale/or/katello.js +93 -99
  33. data/app/assets/javascripts/katello/locale/pa/katello.js +93 -99
  34. data/app/assets/javascripts/katello/locale/pl/katello.js +93 -99
  35. data/app/assets/javascripts/katello/locale/pl_PL/katello.js +93 -99
  36. data/app/assets/javascripts/katello/locale/pt/katello.js +93 -99
  37. data/app/assets/javascripts/katello/locale/pt_BR/katello.js +117 -102
  38. data/app/assets/javascripts/katello/locale/ro/katello.js +93 -99
  39. data/app/assets/javascripts/katello/locale/ro_RO/katello.js +93 -99
  40. data/app/assets/javascripts/katello/locale/ru/katello.js +114 -102
  41. data/app/assets/javascripts/katello/locale/sl/katello.js +93 -99
  42. data/app/assets/javascripts/katello/locale/sv_SE/katello.js +97 -100
  43. data/app/assets/javascripts/katello/locale/ta/katello.js +93 -99
  44. data/app/assets/javascripts/katello/locale/ta_IN/katello.js +93 -99
  45. data/app/assets/javascripts/katello/locale/te/katello.js +93 -99
  46. data/app/assets/javascripts/katello/locale/tr/katello.js +93 -99
  47. data/app/assets/javascripts/katello/locale/vi/katello.js +93 -99
  48. data/app/assets/javascripts/katello/locale/vi_VN/katello.js +93 -99
  49. data/app/assets/javascripts/katello/locale/zh/katello.js +93 -99
  50. data/app/assets/javascripts/katello/locale/zh_CN/katello.js +120 -102
  51. data/app/assets/javascripts/katello/locale/zh_TW/katello.js +114 -102
  52. data/app/assets/javascripts/katello/sync_management/index.js +0 -1
  53. data/app/assets/javascripts/katello/sync_management/sync_management.js +365 -308
  54. data/app/controllers/katello/api/rhsm/candlepin_proxies_controller.rb +1 -0
  55. data/app/controllers/katello/api/v2/debs_controller.rb +4 -0
  56. data/app/controllers/katello/api/v2/host_debs_controller.rb +13 -1
  57. data/app/controllers/katello/api/v2/organizations_controller.rb +1 -3
  58. data/app/controllers/katello/api/v2/repositories_controller.rb +2 -8
  59. data/app/controllers/katello/concerns/api/v2/registration_commands_controller_extensions.rb +0 -1
  60. data/app/controllers/katello/concerns/api/v2/registration_controller_extensions.rb +1 -0
  61. data/app/controllers/katello/concerns/hosts_controller_extensions.rb +7 -3
  62. data/app/controllers/katello/concerns/organizations_controller_extensions.rb +1 -17
  63. data/app/helpers/katello/concerns/dashboard_helper_extensions.rb +0 -20
  64. data/app/lib/actions/katello/content_view/incremental_updates.rb +28 -15
  65. data/app/lib/actions/katello/content_view/publish.rb +3 -3
  66. data/app/lib/actions/katello/content_view_version/auto_create_products.rb +4 -4
  67. data/app/lib/actions/katello/content_view_version/auto_create_redhat_repositories.rb +5 -5
  68. data/app/lib/actions/katello/content_view_version/auto_create_repositories.rb +5 -5
  69. data/app/lib/actions/katello/content_view_version/import.rb +14 -13
  70. data/app/lib/actions/katello/content_view_version/import_library.rb +4 -4
  71. data/app/lib/actions/katello/content_view_version/import_repository.rb +3 -3
  72. data/app/lib/actions/katello/content_view_version/reset_content_view_repositories_from_metadata.rb +2 -2
  73. data/app/lib/actions/katello/host/hypervisors_update.rb +0 -1
  74. data/app/lib/actions/katello/organization/manifest_delete.rb +1 -1
  75. data/app/lib/actions/katello/organization/manifest_refresh.rb +16 -16
  76. data/app/lib/actions/katello/repository/sync.rb +2 -4
  77. data/app/lib/actions/pulp3/orchestration/content_view_version/export.rb +20 -15
  78. data/app/lib/actions/pulp3/orchestration/content_view_version/export_library.rb +17 -14
  79. data/app/lib/actions/pulp3/orchestration/content_view_version/import.rb +11 -11
  80. data/app/lib/actions/pulp3/orchestration/repository/upload_content.rb +18 -13
  81. data/app/lib/actions/pulp3/repository/import_upload.rb +13 -5
  82. data/app/lib/actions/pulp3/repository/save_artifact.rb +23 -12
  83. data/app/lib/actions/pulp3/repository/save_version.rb +13 -1
  84. data/app/lib/katello/api/v2/error_handling.rb +1 -1
  85. data/app/lib/katello/lazy_accessor.rb +6 -6
  86. data/app/lib/katello/resources/candlepin/owner.rb +2 -2
  87. data/app/mailers/katello/errata_mailer.rb +3 -3
  88. data/app/models/katello/concerns/host_managed_extensions.rb +38 -83
  89. data/app/models/katello/concerns/hostgroup_extensions.rb +4 -2
  90. data/app/models/katello/concerns/organization_extensions.rb +1 -1
  91. data/app/models/katello/concerns/pulp_database_unit.rb +1 -1
  92. data/app/models/katello/concerns/smart_proxy_extensions.rb +5 -5
  93. data/app/models/katello/concerns/subscription_facet_host_extensions.rb +0 -27
  94. data/app/models/katello/content_view.rb +11 -6
  95. data/app/models/katello/content_view_module_stream_filter.rb +1 -1
  96. data/app/models/katello/content_view_version.rb +2 -0
  97. data/app/models/katello/deb.rb +8 -0
  98. data/app/models/katello/glue/candlepin/pool.rb +2 -7
  99. data/app/models/katello/host/content_facet.rb +19 -14
  100. data/app/models/katello/host/subscription_facet.rb +0 -19
  101. data/app/models/katello/host_tracer.rb +9 -5
  102. data/app/models/katello/installed_deb.rb +1 -0
  103. data/app/models/katello/repository.rb +3 -2
  104. data/app/models/katello/trace_status.rb +6 -2
  105. data/app/overrides/add_organization_attributes.rb +0 -18
  106. data/app/presenters/katello/host_deb_presenter.rb +23 -0
  107. data/app/services/katello/candlepin/consumer.rb +0 -4
  108. data/app/services/katello/candlepin/event_handler.rb +6 -25
  109. data/app/services/katello/candlepin/message_handler.rb +1 -21
  110. data/app/services/katello/host/profiles_uploader.rb +17 -6
  111. data/app/services/katello/host_status_manager.rb +0 -22
  112. data/app/services/katello/organization_creator.rb +2 -2
  113. data/app/services/katello/pulp3/api/apt.rb +1 -1
  114. data/app/services/katello/pulp3/content_view_version/export.rb +2 -2
  115. data/app/services/katello/pulp3/content_view_version/metadata_generator.rb +1 -0
  116. data/app/services/katello/pulp3/content_view_version/metadata_map.rb +3 -0
  117. data/app/services/katello/pulp3/repository/apt.rb +16 -6
  118. data/app/services/katello/registration_manager.rb +1 -13
  119. data/app/views/foreman/job_templates/install_errata_-_katello_ansible_default.erb +4 -4
  120. data/app/views/foreman/job_templates/install_errata_by_search_query_-_katello_ansible_default.erb +24 -0
  121. data/app/views/foreman/job_templates/install_packages_by_search_query_-_katello_ansible_default.erb +28 -0
  122. data/app/views/foreman/job_templates/remove_packages_by_search_query_-_katello_ansible_default.erb +26 -0
  123. data/app/views/foreman/job_templates/update_packages_by_search_query_-_katello_ansible_default.erb +33 -0
  124. data/app/views/katello/api/v2/host_debs/base.json.rabl +2 -0
  125. data/app/views/katello/api/v2/hosts/base.json.rabl +9 -0
  126. data/app/views/katello/api/v2/subscription_facet/base_with_root.json.rabl +0 -3
  127. data/app/views/katello/api/v2/subscription_facet/show.json.rabl +3 -0
  128. data/app/views/katello/sync_management/index.html.erb +14 -13
  129. data/app/views/overrides/activation_keys/_host_environment_select.html.erb +20 -16
  130. data/app/views/overrides/activation_keys/_host_synced_content_select.html.erb +6 -4
  131. data/app/views/overrides/activation_keys/_host_tab_pane.html.erb +4 -2
  132. data/app/views/overrides/organizations/_edit_override.html.erb +0 -11
  133. data/db/migrate/20131014225132_add_users_fields.rb +0 -1
  134. data/db/migrate/20150603045418_remove_user_fields.rb +0 -2
  135. data/db/migrate/20160404132250_remove_katello_from_notification_name.rb +4 -22
  136. data/db/migrate/20160505181337_rename_katello_settings.rb +2 -2
  137. data/db/migrate/20200818192230_update_system_purpose_status.rb +9 -3
  138. data/db/migrate/20240111032511_add_index_to_host_installed_packages.rb +16 -0
  139. data/db/migrate/20240122150431_remove_content_counts_index.rb +5 -0
  140. data/db/migrate/20240123120109_remove_pulp_export_destination_setting.rb +9 -0
  141. data/db/migrate/20240207191223_remove_entitlement_mode_host_statuses.rb +30 -0
  142. data/db/seeds.d/111-upgrade_tasks.rb +2 -1
  143. data/engines/bastion/app/assets/javascripts/bastion/bastion.js +0 -2
  144. data/engines/bastion/app/views/bastion/layouts/assets.html.erb +6 -2
  145. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/views/activation-key-associations-content-hosts.html +0 -4
  146. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/views/activation-key-details.html +0 -1
  147. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/views/activation-key-info.html +1 -4
  148. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/bastion-katello-bootstrap.js +45 -29
  149. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content-hosts-helper.service.js +0 -10
  150. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/content-host-details.controller.js +0 -1
  151. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/views/content-host-info.html +2 -21
  152. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/views/content-host-subscriptions.html +0 -5
  153. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/views/content-hosts.html +0 -7
  154. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/bastion_katello.pot +15 -11
  155. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/de.po +332 -71
  156. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/es.po +332 -64
  157. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/fr.po +508 -232
  158. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ja.po +361 -90
  159. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ka.po +311 -57
  160. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ko.po +336 -68
  161. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/pt_BR.po +332 -64
  162. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/zh_CN.po +343 -73
  163. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/translations.js +8 -8
  164. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-info.html +9 -1
  165. data/engines/bastion_katello/lib/bastion_katello/engine.rb +0 -6
  166. data/lib/katello/engine.rb +0 -3
  167. data/lib/katello/plugin.rb +2 -11
  168. data/lib/katello/tasks/rubocop.rake +0 -9
  169. data/lib/katello/tasks/unify_hosts.rake +0 -1
  170. data/lib/katello/tasks/upgrades/4.12/update_content_access_modes.rake +35 -0
  171. data/lib/katello/version.rb +1 -1
  172. data/locale/action_names.rb +12 -6
  173. data/locale/bn/katello.po +35 -41
  174. data/locale/bn/katello.pox +0 -0
  175. data/locale/bn_IN/katello.po +35 -41
  176. data/locale/ca/LC_MESSAGES/katello.mo +0 -0
  177. data/locale/ca/katello.po +36 -42
  178. data/locale/cs/katello.po +35 -42
  179. data/locale/cs_CZ/LC_MESSAGES/katello.mo +0 -0
  180. data/locale/cs_CZ/katello.po +36 -42
  181. data/locale/de/LC_MESSAGES/katello.mo +0 -0
  182. data/locale/de/katello.po +37 -43
  183. data/locale/de_AT/katello.po +35 -41
  184. data/locale/de_DE/katello.po +35 -41
  185. data/locale/el/LC_MESSAGES/katello.mo +0 -0
  186. data/locale/el/katello.po +36 -42
  187. data/locale/en/katello.po +35 -41
  188. data/locale/en_GB/LC_MESSAGES/katello.mo +0 -0
  189. data/locale/en_GB/katello.po +35 -41
  190. data/locale/en_US/katello.po +35 -41
  191. data/locale/es/LC_MESSAGES/katello.mo +0 -0
  192. data/locale/es/katello.po +37 -43
  193. data/locale/et_EE/katello.po +35 -41
  194. data/locale/fr/LC_MESSAGES/katello.mo +0 -0
  195. data/locale/fr/katello.po +37 -43
  196. data/locale/gl/LC_MESSAGES/katello.mo +0 -0
  197. data/locale/gl/katello.po +36 -42
  198. data/locale/gu/katello.po +35 -41
  199. data/locale/he_IL/katello.po +35 -41
  200. data/locale/hi/katello.po +35 -41
  201. data/locale/id/katello.po +35 -41
  202. data/locale/it/LC_MESSAGES/katello.mo +0 -0
  203. data/locale/it/katello.po +36 -42
  204. data/locale/ja/LC_MESSAGES/katello.mo +0 -0
  205. data/locale/ja/katello.po +37 -43
  206. data/locale/ka/LC_MESSAGES/katello.mo +0 -0
  207. data/locale/ka/katello.po +36 -42
  208. data/locale/katello.pot +707 -674
  209. data/locale/kn/katello.po +35 -41
  210. data/locale/ko/LC_MESSAGES/katello.mo +0 -0
  211. data/locale/ko/katello.po +37 -43
  212. data/locale/messages.mo +0 -0
  213. data/locale/ml_IN/katello.po +35 -41
  214. data/locale/mr/katello.po +35 -41
  215. data/locale/nl_NL/katello.po +35 -41
  216. data/locale/or/katello.po +35 -41
  217. data/locale/pa/katello.po +35 -41
  218. data/locale/pl/katello.po +35 -41
  219. data/locale/pl_PL/katello.po +35 -41
  220. data/locale/pt/katello.po +35 -41
  221. data/locale/pt_BR/LC_MESSAGES/katello.mo +0 -0
  222. data/locale/pt_BR/katello.po +37 -43
  223. data/locale/ro/katello.po +35 -41
  224. data/locale/ro_RO/katello.po +35 -41
  225. data/locale/ru/LC_MESSAGES/katello.mo +0 -0
  226. data/locale/ru/katello.po +37 -43
  227. data/locale/sl/katello.po +35 -41
  228. data/locale/sv_SE/LC_MESSAGES/katello.mo +0 -0
  229. data/locale/sv_SE/katello.po +36 -42
  230. data/locale/ta/katello.po +35 -41
  231. data/locale/ta_IN/katello.po +35 -41
  232. data/locale/te/katello.po +35 -41
  233. data/locale/tr/katello.po +35 -41
  234. data/locale/vi/katello.po +35 -41
  235. data/locale/vi_VN/katello.po +35 -41
  236. data/locale/zh/katello.po +35 -41
  237. data/locale/zh_CN/LC_MESSAGES/katello.mo +0 -0
  238. data/locale/zh_CN/katello.po +37 -43
  239. data/locale/zh_TW/LC_MESSAGES/katello.mo +0 -0
  240. data/locale/zh_TW/katello.po +37 -43
  241. data/package.json +0 -1
  242. data/webpack/components/extensions/HostDetails/Tabs/ContentTab/SecondaryTabsRoutes.js +4 -0
  243. data/webpack/components/extensions/HostDetails/Tabs/ContentTab/constants.js +4 -1
  244. data/webpack/components/extensions/HostDetails/Tabs/DebsTab/DebInstallModal.js +250 -0
  245. data/webpack/components/extensions/HostDetails/Tabs/DebsTab/DebInstallModal.scss +3 -0
  246. data/webpack/components/extensions/HostDetails/Tabs/DebsTab/DebsTab.js +585 -0
  247. data/webpack/components/extensions/HostDetails/Tabs/DebsTab/DebsTab.scss +12 -0
  248. data/webpack/components/extensions/HostDetails/Tabs/DebsTab/HostDebsActions.js +13 -0
  249. data/webpack/components/extensions/HostDetails/Tabs/DebsTab/HostDebsConstants.js +13 -0
  250. data/webpack/components/extensions/HostDetails/Tabs/DebsTab/HostDebsSelectors.js +16 -0
  251. data/webpack/components/extensions/HostDetails/Tabs/DebsTab/InstallableDebsActions.js +17 -0
  252. data/webpack/components/extensions/HostDetails/Tabs/DebsTab/InstallableDebsConstants.js +3 -0
  253. data/webpack/components/extensions/HostDetails/Tabs/DebsTab/InstallableDebsSelectors.js +16 -0
  254. data/webpack/components/extensions/HostDetails/Tabs/ModuleStreamsTab/ModuleStreamsTab.js +1 -8
  255. data/webpack/components/extensions/HostDetails/Tabs/PackagesTab/PackagesTab.js +2 -0
  256. data/webpack/components/extensions/HostDetails/Tabs/RemoteExecutionActions.js +6 -5
  257. data/webpack/components/extensions/HostDetails/Tabs/RepositorySetsTab/RepositorySetsTab.js +5 -19
  258. data/webpack/components/extensions/HostDetails/Tabs/TracesTab/TracesTab.js +13 -5
  259. data/webpack/components/extensions/HostDetails/Tabs/__tests__/debs.fixtures.json +31 -0
  260. data/webpack/components/extensions/HostDetails/Tabs/__tests__/debsInstallModal.test.js +226 -0
  261. data/webpack/components/extensions/HostDetails/Tabs/__tests__/debsTab.test.js +420 -0
  262. data/webpack/components/extensions/HostDetails/Tabs/__tests__/installableDebs.fixtures.json +63 -0
  263. data/webpack/components/extensions/HostDetails/Tabs/__tests__/traces.fixtures.json +11 -1
  264. data/webpack/components/extensions/HostDetails/Tabs/__tests__/tracesTab.test.js +63 -3
  265. data/webpack/components/extensions/RegistrationCommands/fields/ActivationKeys.js +3 -1
  266. data/webpack/components/extensions/RegistrationCommands/index.js +9 -0
  267. data/webpack/redux/actions/RedHatRepositories/helpers.js +3 -3
  268. data/webpack/scenes/ContentViews/ContentViewsConstants.js +3 -0
  269. data/webpack/scenes/ContentViews/Delete/__tests__/affectedHosts.fixtures.json +0 -13
  270. data/webpack/scenes/ContentViews/Details/ContentViewDetailActions.js +23 -1
  271. data/webpack/scenes/ContentViews/Details/ContentViewDetailSelectors.js +19 -1
  272. data/webpack/scenes/ContentViews/Details/Repositories/ContentCounts.js +1 -1
  273. data/webpack/scenes/ContentViews/Details/Versions/BulkDelete/__tests__/hosts.fixtures.json +0 -13
  274. data/webpack/scenes/ContentViews/Details/Versions/Compare/CVVersionCompareConfig.js +37 -3
  275. data/webpack/scenes/ContentViews/Details/Versions/ContentViewVersionContent.js +10 -2
  276. data/webpack/scenes/ContentViews/Details/Versions/Delete/__tests__/cvAffectedHosts.fixture.json +0 -13
  277. data/webpack/scenes/ContentViews/Details/Versions/VersionDetails/ContentViewVersionDetailConfig.js +31 -5
  278. data/webpack/scenes/Organizations/OrganizationSelectors.js +0 -3
  279. data/webpack/scenes/Subscriptions/Manifest/index.js +1 -4
  280. data/webpack/scenes/Subscriptions/SubscriptionsPage.js +3 -25
  281. data/webpack/scenes/Subscriptions/SubscriptionsSelectors.js +0 -3
  282. data/webpack/scenes/Subscriptions/__tests__/SubscriptionsSelectors.test.js +0 -3
  283. data/webpack/scenes/Subscriptions/__tests__/__snapshots__/SubscriptionsPage.test.js.snap +0 -22
  284. data/webpack/scenes/Subscriptions/__tests__/__snapshots__/SubscriptionsSelectors.test.js.snap +0 -3
  285. data/webpack/scenes/Subscriptions/index.js +1 -2
  286. metadata +51 -191
  287. data/app/controllers/katello/concerns/content_facet_hosts_controller_extensions.rb +0 -22
  288. data/app/models/katello/concerns/widget_extensions.rb +0 -23
  289. data/app/models/katello/purpose_addons_status.rb +0 -28
  290. data/app/models/katello/purpose_role_status.rb +0 -28
  291. data/app/models/katello/purpose_sla_status.rb +0 -28
  292. data/app/models/katello/purpose_status.rb +0 -71
  293. data/app/models/katello/purpose_usage_status.rb +0 -28
  294. data/app/models/katello/subscription_status.rb +0 -71
  295. data/app/services/katello/candlepin/system_purpose.rb +0 -49
  296. data/app/views/dashboard/_subscription_status_widget.html.erb +0 -37
  297. data/app/views/dashboard/_subscription_widget.html.erb +0 -85
  298. data/app/views/overrides/organizations/_index_header_override.html.erb +0 -3
  299. data/app/views/overrides/organizations/_index_row_override.html.erb +0 -3
  300. data/app/views/overrides/organizations/_step_1_override.html.erb +0 -10
  301. data/config/locales/README +0 -10
  302. data/config/locales/bn.yml +0 -182
  303. data/config/locales/compare_upstream.sh +0 -21
  304. data/config/locales/cs.yml +0 -211
  305. data/config/locales/de.yml +0 -203
  306. data/config/locales/en.yml +0 -205
  307. data/config/locales/es.yml +0 -199
  308. data/config/locales/fr.yml +0 -222
  309. data/config/locales/gu.yml +0 -181
  310. data/config/locales/hi.yml +0 -199
  311. data/config/locales/it.yml +0 -205
  312. data/config/locales/ja.yml +0 -197
  313. data/config/locales/kn.yml +0 -199
  314. data/config/locales/ko.yml +0 -197
  315. data/config/locales/mr.yml +0 -178
  316. data/config/locales/or.yml +0 -181
  317. data/config/locales/pa.yml +0 -181
  318. data/config/locales/pt-BR.yml +0 -207
  319. data/config/locales/pt.yml +0 -207
  320. data/config/locales/ru.yml +0 -257
  321. data/config/locales/ta.yml +0 -181
  322. data/config/locales/te.yml +0 -181
  323. data/config/locales/update.sh +0 -14
  324. data/config/locales/zh-CN.yml +0 -199
  325. data/config/locales/zh-TW.yml +0 -199
  326. data/engines/bastion/app/assets/javascripts/bastion/bastion-bootstrap.js +0 -17
  327. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/subscriptions/content-access-mode-banner.directive.js +0 -22
  328. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/subscriptions/views/content-access-mode-banner.html +0 -10
  329. data/webpack/scenes/Subscriptions/Manifest/SimpleContentAccess.js +0 -96
@@ -485,9 +485,6 @@ msgstr ""
485
485
  msgid "Action unauthorized to be performed in this organization."
486
486
  msgstr ""
487
487
 
488
- msgid "Action with sub plans"
489
- msgstr "有子計畫的動作"
490
-
491
488
  msgid "Activation Key will no longer be available for use. This operation cannot be undone."
492
489
  msgstr ""
493
490
 
@@ -921,6 +918,9 @@ msgstr "必須提供至少一組啟動金鑰"
921
918
  msgid "At least one activation key must have a lifecycle environment and content view assigned to it"
922
919
  msgstr "至少必須有一組被指定了生命週期環境和內容視域的啟動金鑰"
923
920
 
921
+ msgid "At least one of the selected items requires the host to reboot"
922
+ msgstr ""
923
+
924
924
  msgid "At least one organization must exist."
925
925
  msgstr "至少必須存在一個組織。"
926
926
 
@@ -1311,9 +1311,6 @@ msgstr ""
1311
1311
  msgid "Check audited changes and proceed only if content or filters have changed since last publish"
1312
1312
  msgstr ""
1313
1313
 
1314
- msgid "Check for long running tasks"
1315
- msgstr ""
1316
-
1317
1314
  msgid "Check if a connection can be made to Red Hat Subscription Management."
1318
1315
  msgstr ""
1319
1316
 
@@ -2019,6 +2016,9 @@ msgstr ""
2019
2016
  msgid "Deb packages"
2020
2017
  msgstr ""
2021
2018
 
2019
+ msgid "Debian packages"
2020
+ msgstr ""
2021
+
2022
2022
  msgid "Debug Certificate"
2023
2023
  msgstr "除錯憑證"
2024
2024
 
@@ -2196,6 +2196,9 @@ msgstr ""
2196
2196
  msgid "Delete versions"
2197
2197
  msgstr ""
2198
2198
 
2199
+ msgid "Deleted %{host_count} %{hosts}"
2200
+ msgstr ""
2201
+
2199
2202
  msgid "Deleted consumer '%s'"
2200
2203
  msgstr "已刪除了消耗者「%s」"
2201
2204
 
@@ -2217,9 +2220,6 @@ msgstr ""
2217
2220
  msgid "Deleting versions: {versionList}"
2218
2221
  msgstr ""
2219
2222
 
2220
- msgid "Deliver notifications about long running tasks"
2221
- msgstr ""
2222
-
2223
2223
  msgid "Description"
2224
2224
  msgstr "描述"
2225
2225
 
@@ -3346,9 +3346,6 @@ msgstr "匯入清單"
3346
3346
  msgid "Import New Manifest"
3347
3347
  msgstr ""
3348
3348
 
3349
- msgid "Import Puppet classes"
3350
- msgstr "匯入 Puppet 類別"
3351
-
3352
3349
  msgid "Import Repository"
3353
3350
  msgstr ""
3354
3351
 
@@ -3376,9 +3373,6 @@ msgstr ""
3376
3373
  msgid "Import a subscription manifest to give hosts access to Red Hat content."
3377
3374
  msgstr ""
3378
3375
 
3379
- msgid "Import facts"
3380
- msgstr "匯入詳情"
3381
-
3382
3376
  msgid "Import only"
3383
3377
  msgstr ""
3384
3378
 
@@ -3652,6 +3646,9 @@ msgstr ""
3652
3646
  msgid "Katello ID of local pool to update"
3653
3647
  msgstr ""
3654
3648
 
3649
+ msgid "Katello: Configure host for new content source"
3650
+ msgstr ""
3651
+
3655
3652
  msgid "Katello: Install Errata"
3656
3653
  msgstr "Katello:安裝勘誤"
3657
3654
 
@@ -3802,9 +3799,6 @@ msgstr ""
3802
3799
  msgid "Lifecycle environment ID"
3803
3800
  msgstr ""
3804
3801
 
3805
- msgid "Lifecycle environment for the host."
3806
- msgstr ""
3807
-
3808
3802
  msgid "Lifecycle environment must be specified"
3809
3803
  msgstr ""
3810
3804
 
@@ -4488,12 +4482,6 @@ msgstr ""
4488
4482
  msgid "No hosts found"
4489
4483
  msgstr ""
4490
4484
 
4491
- msgid "No hosts have been specified."
4492
- msgstr "未指定主機。"
4493
-
4494
- msgid "No hosts matched search, or action unauthorized for selected hosts."
4495
- msgstr ""
4496
-
4497
4485
  msgid "No hosts registered with subscription-manager found in selection."
4498
4486
  msgstr ""
4499
4487
 
@@ -4764,9 +4752,6 @@ msgstr "視需求"
4764
4752
  msgid "On the RHUA Instance, check the available repositories."
4765
4753
  msgstr ""
4766
4754
 
4767
- msgid "On-disk location for exported repositories"
4768
- msgstr "匯入軟體庫的磁碟位置"
4769
-
4770
4755
  msgid "On-disk location for pulp 3 exported repositories"
4771
4756
  msgstr ""
4772
4757
 
@@ -5348,9 +5333,6 @@ msgstr ""
5348
5333
  msgid "Pulp does not appear to be running."
5349
5334
  msgstr "Pulp n似乎不在執行中。"
5350
5335
 
5351
- msgid "Pulp export destination filepath"
5352
- msgstr ""
5353
-
5354
5336
  msgid "Pulp message bus connection issue at %s."
5355
5337
  msgstr ""
5356
5338
 
@@ -5471,6 +5453,9 @@ msgstr ""
5471
5453
  msgid "Reassign affected hosts"
5472
5454
  msgstr ""
5473
5455
 
5456
+ msgid "Reboot host"
5457
+ msgstr ""
5458
+
5474
5459
  msgid "Reboot required"
5475
5460
  msgstr ""
5476
5461
 
@@ -5639,9 +5624,6 @@ msgstr "要啟用的發行版本"
5639
5624
  msgid "Reload data"
5640
5625
  msgstr "重新載入資料"
5641
5626
 
5642
- msgid "Remote action:"
5643
- msgstr "遠端動作:"
5644
-
5645
5627
  msgid "Remote execution is enabled."
5646
5628
  msgstr ""
5647
5629
 
@@ -5747,6 +5729,9 @@ msgstr ""
5747
5729
  msgid "Removing this version from all environments will not delete the version. Version will still be available for later promotion."
5748
5730
  msgstr ""
5749
5731
 
5732
+ msgid "Replace content source on the target machine"
5733
+ msgstr ""
5734
+
5750
5735
  msgid "Repo ID"
5751
5736
  msgstr ""
5752
5737
 
@@ -5792,8 +5777,8 @@ msgstr ""
5792
5777
  msgid "Repository Id associated with the kickstart repo used for provisioning"
5793
5778
  msgstr ""
5794
5779
 
5795
- msgid "Repository cannot be deleted since it has already been included in a published Content View. Please delete all Content View versions containing this repository before attempting to delete it."
5796
- msgstr "無法刪除軟體庫,因為它已被包含在一個已發佈的內容視域中。請在嘗試刪除此軟體庫之前,刪除所有包含了此軟體庫的內容視域版本。"
5780
+ msgid "Repository cannot be deleted since it has already been included in a published Content View. Please delete all Content View versions containing this repository before attempting to delete it or use --remove-from-content-view-versions flag to automatically remove the repository from all published versions."
5781
+ msgstr ""
5797
5782
 
5798
5783
  msgid "Repository cannot be disabled since it has already been promoted."
5799
5784
  msgstr "軟體庫無法停用,因為該軟體庫已推送。"
@@ -6095,6 +6080,9 @@ msgstr "搜尋"
6095
6080
  msgid "Search Query"
6096
6081
  msgstr ""
6097
6082
 
6083
+ msgid "Search available Debian packages"
6084
+ msgstr ""
6085
+
6098
6086
  msgid "Search available packages"
6099
6087
  msgstr ""
6100
6088
 
@@ -7284,6 +7272,9 @@ msgstr ""
7284
7272
  msgid "This content view will be deleted. Changes will be effective after clicking Delete."
7285
7273
  msgstr ""
7286
7274
 
7275
+ msgid "This endpoint is deprecated and will be removed in Katello 4.12. All organizations are now eligible for Simple Content Access."
7276
+ msgstr ""
7277
+
7287
7278
  msgid "This erratum is not installable because it is not in this host's content view and lifecycle environment."
7288
7279
  msgstr ""
7289
7280
 
@@ -7563,6 +7554,9 @@ msgstr "無法收到勘誤的電子郵件通知:%{error}"
7563
7554
  msgid "Unable to sync repo. This repository does not have a feed url."
7564
7555
  msgstr "無法同步軟體庫。此軟體庫並沒有發送用的網址。"
7565
7556
 
7557
+ msgid "Unable to sync repo. This repository is not a library instance repository."
7558
+ msgstr ""
7559
+
7566
7560
  msgid "Unable to synchronize any repository. You either do not have the permission to synchronize or the selected repositories do not have a feed url."
7567
7561
  msgstr "無法同步任何軟體庫。您可能沒有同步的權限,或是選擇的軟體庫沒有摘要 url。"
7568
7562
 
@@ -8283,6 +8277,9 @@ msgstr "組織"
8283
8277
  msgid "are only allowed for Yum repositories."
8284
8278
  msgstr ""
8285
8279
 
8280
+ msgid "attempted to sync a non-library repository."
8281
+ msgstr ""
8282
+
8286
8283
  msgid "attempted to sync without a feed URL"
8287
8284
  msgstr "試圖在沒有 feed URL 的情況下同步"
8288
8285
 
@@ -8442,6 +8439,9 @@ msgstr ""
8442
8439
  msgid "deb_ids is not an array"
8443
8440
  msgstr ""
8444
8441
 
8442
+ msgid "deb_names_for_job_template: Action must be one of %s"
8443
+ msgstr ""
8444
+
8445
8445
  msgid "delete a filter"
8446
8446
  msgstr "刪除篩選器"
8447
8447
 
@@ -8565,8 +8565,8 @@ msgstr "已經為此組織的產品使用。"
8565
8565
  msgid "has already been taken for this product."
8566
8566
  msgstr "已經為此產品使用。"
8567
8567
 
8568
- msgid "here"
8569
- msgstr "這裡"
8568
+ msgid "here."
8569
+ msgstr ""
8570
8570
 
8571
8571
  msgid "host collection name to filter by"
8572
8572
  msgstr "要篩選的主機集名稱,透過"
@@ -8889,9 +8889,6 @@ msgstr "在函示庫與預設內容視域中顯示軟體庫"
8889
8889
  msgid "some executors are not responding, check %{status_url}"
8890
8890
  msgstr "一些執行者沒有回應,請檢查 %{status_url}"
8891
8891
 
8892
- msgid "source URL is malformed"
8893
- msgstr "來源 URL 格式錯誤"
8894
-
8895
8892
  msgid "specifies if content should be included or excluded, default: inclusion=false"
8896
8893
  msgstr "指定要納入或排除內容,預設值:inclusion=false"
8897
8894
 
@@ -8910,9 +8907,6 @@ msgstr "同步計畫的名稱"
8910
8907
  msgid "sync plan numeric identifier"
8911
8908
  msgstr "同步計畫的數字型態識別子"
8912
8909
 
8913
- msgid "temporarily override feed URL for sync"
8914
- msgstr "暫時覆寫同步的 feed URL"
8915
-
8916
8910
  msgid "the following attributes can not be updated for the Red Hat provider: [ %s ]"
8917
8911
  msgstr "Red Hat 供應者的以下屬性可以更新:[ %s ]"
8918
8912
 
data/package.json CHANGED
@@ -50,7 +50,6 @@
50
50
  "dependencies": {
51
51
  "angular": "1.8.2",
52
52
  "bootstrap-select": "1.13.18",
53
- "downshift": "^5.4.2",
54
53
  "ngreact": "^0.5.0",
55
54
  "query-string": "^6.1.0",
56
55
  "react-bootstrap": "^0.32.1",
@@ -1,6 +1,7 @@
1
1
  import React from 'react';
2
2
  import { Route, Switch, Redirect } from 'react-router-dom';
3
3
  import { PackagesTab } from '../PackagesTab/PackagesTab.js';
4
+ import { DebsTab } from '../DebsTab/DebsTab.js';
4
5
  import { ErrataTab } from '../ErrataTab/ErrataTab.js';
5
6
  import { ModuleStreamsTab } from '../ModuleStreamsTab/ModuleStreamsTab';
6
7
  import RepositorySetsTab from '../RepositorySetsTab/RepositorySetsTab';
@@ -11,6 +12,9 @@ const SecondaryTabRoutes = () => (
11
12
  <Route path={route('packages')}>
12
13
  <PackagesTab />
13
14
  </Route>
15
+ <Route path={route('debs')}>
16
+ <DebsTab />
17
+ </Route>
14
18
  <Route path={route('errata')}>
15
19
  <ErrataTab />
16
20
  </Route>
@@ -1,9 +1,12 @@
1
1
  import { translate as __ } from 'foremanReact/common/I18n';
2
2
  import { hideRepoSetsTab } from '../RepositorySetsTab/RepositorySetsTab';
3
3
  import { hideModuleStreamsTab } from '../ModuleStreamsTab/ModuleStreamsTab';
4
+ import { hideDebsTab } from '../DebsTab/DebsTab';
5
+ import { hidePackagesTab } from '../PackagesTab/PackagesTab';
4
6
 
5
7
  const SECONDARY_TABS = [
6
- { key: 'packages', title: __('Packages') },
8
+ { key: 'debs', hideTab: hideDebsTab, title: __('Packages') },
9
+ { key: 'packages', hideTab: hidePackagesTab, title: __('Packages') },
7
10
  { key: 'errata', title: __('Errata') },
8
11
  { key: 'module-streams', hideTab: hideModuleStreamsTab, title: __('Module streams') },
9
12
  { key: 'Repository sets', hideTab: hideRepoSetsTab, title: __('Repository sets') },
@@ -0,0 +1,250 @@
1
+ import React, { useState } from 'react';
2
+ import { Modal, Button, Dropdown, DropdownItem, DropdownToggle, DropdownDirection, DropdownToggleAction } from '@patternfly/react-core';
3
+ import { CaretDownIcon, CaretUpIcon } from '@patternfly/react-icons';
4
+ import { useSelector } from 'react-redux';
5
+ import { FormattedMessage } from 'react-intl';
6
+ import { Thead, Th, Tbody, Tr, Td, TableVariant } from '@patternfly/react-table';
7
+ import { noop } from 'foremanReact/common/helpers';
8
+ import { translate as __ } from 'foremanReact/common/I18n';
9
+ import { urlBuilder } from 'foremanReact/common/urlHelpers';
10
+ import { selectAPIResponse } from 'foremanReact/redux/API/APISelectors';
11
+ import { useBulkSelect } from 'foremanReact/components/PF4/TableIndexPage/Table/TableHooks';
12
+ import PropTypes from 'prop-types';
13
+ import TableWrapper from '../../../../Table/TableWrapper';
14
+ import { HOST_INSTALLABLE_DEBS_KEY } from './InstallableDebsConstants';
15
+ import { selectHostInstallableDebsStatus } from './InstallableDebsSelectors';
16
+ import { getHostInstallableDebs } from './InstallableDebsActions';
17
+ import './DebInstallModal.scss';
18
+ import { katelloPackageInstallBySearchUrl, katelloPackageInstallUrl } from '../customizedRexUrlHelpers';
19
+ import hostIdNotReady from '../../HostDetailsActions';
20
+
21
+ const InstallDropdown = ({
22
+ isDisabled, installViaRex,
23
+ bulkCustomizedRexUrl,
24
+ }) => {
25
+ const [isActionOpen, setIsActionOpen] = useState(false);
26
+ const onActionSelect = () => {
27
+ setIsActionOpen(false);
28
+ };
29
+ const onActionToggle = () => {
30
+ setIsActionOpen(prev => !prev);
31
+ };
32
+
33
+ const dropdownItems = [
34
+ <DropdownItem key="install-rex" ouiaId="install-rex" component="button" onClick={installViaRex}>
35
+ {__('Install via remote execution')}
36
+ </DropdownItem>,
37
+ <DropdownItem
38
+ key="install-customized-rex"
39
+ ouiaId="install-customized-rex"
40
+ component="a"
41
+ href={bulkCustomizedRexUrl}
42
+ onClick={onActionSelect}
43
+ >
44
+ {__('Install via customized remote execution')}
45
+ </DropdownItem>,
46
+ ];
47
+
48
+ return (
49
+ <Dropdown
50
+ ouiaId="action-dropdown"
51
+ direction={DropdownDirection.up}
52
+ onSelect={onActionSelect}
53
+ toggle={
54
+ <DropdownToggle
55
+ ouiaId="install-action-toggle"
56
+ isDisabled={isDisabled}
57
+ splitButtonItems={[
58
+ <DropdownToggleAction key="install" onClick={installViaRex}>
59
+ Install
60
+ </DropdownToggleAction>,
61
+ ]}
62
+ splitButtonVariant="action"
63
+ toggleVariant="primary"
64
+ toggleIndicator={isActionOpen ? CaretUpIcon : CaretDownIcon}
65
+ onToggle={onActionToggle}
66
+ />
67
+ }
68
+ isOpen={isActionOpen}
69
+ dropdownItems={dropdownItems}
70
+ />
71
+ );
72
+ };
73
+
74
+ InstallDropdown.propTypes = {
75
+ isDisabled: PropTypes.bool,
76
+ installViaRex: PropTypes.func,
77
+ bulkCustomizedRexUrl: PropTypes.string,
78
+ };
79
+
80
+ InstallDropdown.defaultProps = {
81
+ isDisabled: false,
82
+ installViaRex: noop,
83
+ bulkCustomizedRexUrl: '',
84
+ };
85
+
86
+ const DebInstallModal = ({
87
+ isOpen, closeModal, hostId, hostName, triggerPackageInstall,
88
+ }) => {
89
+ const emptyContentTitle = __('No packages available to install');
90
+ const emptyContentBody = __('No packages available to install on this host. Please check the host\'s content view and lifecycle environment.');
91
+ const emptySearchTitle = __('No matching packages found');
92
+ const emptySearchBody = __('Try changing your search settings.');
93
+ const columnHeaders = ['', __('Package'), __('Version')];
94
+ const response =
95
+ useSelector(state => selectAPIResponse(state, HOST_INSTALLABLE_DEBS_KEY));
96
+ const status = useSelector(state => selectHostInstallableDebsStatus(state));
97
+ const { results, ...metadata } = response;
98
+ const [suppressFirstFetch, setSuppressFirstFetch] = useState(false);
99
+
100
+ const {
101
+ searchQuery,
102
+ updateSearchQuery,
103
+ isSelected,
104
+ selectOne,
105
+ selectNone,
106
+ fetchBulkParams,
107
+ isSelectable,
108
+ selectedCount,
109
+ selectedResults,
110
+ ...selectAll
111
+ } = useBulkSelect({ results, metadata });
112
+
113
+ const fetchItems = (params) => {
114
+ if (!hostId) return hostIdNotReady;
115
+
116
+ if (results?.length > 0 && suppressFirstFetch) {
117
+ // If the modal has already been opened, no need to re-fetch the data that's already present
118
+ setSuppressFirstFetch(false);
119
+ return { type: 'HOST_APPLICABLE_PACKAGES_NOOP' };
120
+ }
121
+ return getHostInstallableDebs(hostId, params);
122
+ };
123
+
124
+ const selectedPackageNames = () => selectedResults.map(({ name }) => name);
125
+
126
+ const installViaRex = () => {
127
+ triggerPackageInstall(fetchBulkParams());
128
+ selectNone();
129
+ closeModal();
130
+ };
131
+
132
+ const handleModalClose = () => {
133
+ setSuppressFirstFetch(true);
134
+ closeModal();
135
+ };
136
+
137
+ const bulkCustomizedRexUrl = selectedCount ?
138
+ katelloPackageInstallBySearchUrl({ hostname: hostName, search: fetchBulkParams() }) :
139
+ '#';
140
+ const simpleBulkCustomizedRexUrl
141
+ = katelloPackageInstallUrl({ hostname: hostName, packages: selectedPackageNames() });
142
+ const enableSimpleRexUrl = !!selectedResults.length;
143
+
144
+ const modalActions = ([
145
+ <InstallDropdown
146
+ key="install"
147
+ isDisabled={!selectedCount}
148
+ installViaRex={installViaRex}
149
+ bulkCustomizedRexUrl={enableSimpleRexUrl ? simpleBulkCustomizedRexUrl : bulkCustomizedRexUrl}
150
+ />,
151
+ <Button key="cancel" ouiaId="cancel-button" variant="link" onClick={handleModalClose}>
152
+ Cancel
153
+ </Button>,
154
+ ]);
155
+
156
+ return (
157
+ <Modal
158
+ isOpen={isOpen}
159
+ onClose={handleModalClose}
160
+ title={__('Install packages')}
161
+ width="50%"
162
+ actions={modalActions}
163
+ id="deb-install-modal"
164
+ ouiaId="deb-install-modal"
165
+ >
166
+ <FormattedMessage
167
+ className="deb-install-modal-blurb"
168
+ id="deb-install-modal-blurb"
169
+ defaultMessage={__('Select packages to install to the host {hostName}.')}
170
+ values={{
171
+ hostName: <strong>{hostName}</strong>,
172
+ }}
173
+ />
174
+ <TableWrapper
175
+ {...{
176
+ metadata,
177
+ emptyContentTitle,
178
+ emptyContentBody,
179
+ emptySearchTitle,
180
+ emptySearchBody,
181
+ status,
182
+ searchQuery,
183
+ updateSearchQuery,
184
+ selectedCount,
185
+ selectNone,
186
+ }
187
+ }
188
+ ouiaId="host-package-install-table"
189
+ additionalListeners={[hostId]}
190
+ fetchItems={fetchItems}
191
+ searchPlaceholderText={__('Search available Debian packages')}
192
+ autocompleteEndpoint={`/api/v2/hosts/${hostId}/debs`}
193
+ variant={TableVariant.compact}
194
+ {...selectAll}
195
+ displaySelectAllCheckbox
196
+ >
197
+ <Thead>
198
+ <Tr ouiaId="row-header">
199
+ {columnHeaders.map(col =>
200
+ <Th key={col}>{col}</Th>)}
201
+ <Th />
202
+ </Tr>
203
+ </Thead>
204
+ <Tbody>
205
+ {results?.map((pkg, rowIndex) => {
206
+ const {
207
+ id,
208
+ name: packageName,
209
+ deb_id: debId,
210
+ version,
211
+ } = pkg;
212
+ return (
213
+ <Tr key={id} ouiaId={`row-${id}`}>
214
+ <Td
215
+ select={{
216
+ disable: false,
217
+ isSelected: isSelected(id),
218
+ onSelect: (_event, selected) => selectOne(selected, id, pkg),
219
+ rowIndex,
220
+ variant: 'checkbox',
221
+ }}
222
+ />
223
+ <Td>
224
+ {debId
225
+ ? <a href={urlBuilder(`debs/${debId}`, '')}>{packageName}</a>
226
+ : packageName
227
+ }
228
+ </Td>
229
+ <Td>
230
+ {version}
231
+ </Td>
232
+ </Tr>
233
+ );
234
+ })
235
+ }
236
+ </Tbody>
237
+ </TableWrapper>
238
+ </Modal>
239
+ );
240
+ };
241
+
242
+ DebInstallModal.propTypes = {
243
+ isOpen: PropTypes.bool.isRequired,
244
+ closeModal: PropTypes.func.isRequired,
245
+ hostId: PropTypes.number.isRequired,
246
+ hostName: PropTypes.string.isRequired,
247
+ triggerPackageInstall: PropTypes.func.isRequired,
248
+ };
249
+
250
+ export default DebInstallModal;
@@ -0,0 +1,3 @@
1
+ #deb-install-modal .pf-c-input-group input {
2
+ min-width: 15em;
3
+ }