katello 4.11.1 → 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 (349) 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 +76 -85
  4. data/app/assets/javascripts/katello/locale/bn_IN/katello.js +76 -85
  5. data/app/assets/javascripts/katello/locale/ca/katello.js +80 -86
  6. data/app/assets/javascripts/katello/locale/cs/katello.js +79 -85
  7. data/app/assets/javascripts/katello/locale/cs_CZ/katello.js +91 -88
  8. data/app/assets/javascripts/katello/locale/de/katello.js +97 -94
  9. data/app/assets/javascripts/katello/locale/de_AT/katello.js +76 -85
  10. data/app/assets/javascripts/katello/locale/de_DE/katello.js +76 -85
  11. data/app/assets/javascripts/katello/locale/el/katello.js +86 -86
  12. data/app/assets/javascripts/katello/locale/en/katello.js +76 -85
  13. data/app/assets/javascripts/katello/locale/en_GB/katello.js +88 -85
  14. data/app/assets/javascripts/katello/locale/en_US/katello.js +76 -85
  15. data/app/assets/javascripts/katello/locale/es/katello.js +94 -94
  16. data/app/assets/javascripts/katello/locale/et_EE/katello.js +76 -85
  17. data/app/assets/javascripts/katello/locale/fr/katello.js +97 -94
  18. data/app/assets/javascripts/katello/locale/gl/katello.js +80 -86
  19. data/app/assets/javascripts/katello/locale/gu/katello.js +76 -85
  20. data/app/assets/javascripts/katello/locale/he_IL/katello.js +76 -85
  21. data/app/assets/javascripts/katello/locale/hi/katello.js +76 -85
  22. data/app/assets/javascripts/katello/locale/id/katello.js +76 -85
  23. data/app/assets/javascripts/katello/locale/it/katello.js +89 -86
  24. data/app/assets/javascripts/katello/locale/ja/katello.js +97 -94
  25. data/app/assets/javascripts/katello/locale/ka/katello.js +92 -92
  26. data/app/assets/javascripts/katello/locale/kn/katello.js +76 -85
  27. data/app/assets/javascripts/katello/locale/ko/katello.js +91 -94
  28. data/app/assets/javascripts/katello/locale/locale/katello.js +1051 -1048
  29. data/app/assets/javascripts/katello/locale/ml_IN/katello.js +76 -85
  30. data/app/assets/javascripts/katello/locale/mr/katello.js +76 -85
  31. data/app/assets/javascripts/katello/locale/nl_NL/katello.js +76 -85
  32. data/app/assets/javascripts/katello/locale/or/katello.js +76 -85
  33. data/app/assets/javascripts/katello/locale/pa/katello.js +76 -85
  34. data/app/assets/javascripts/katello/locale/pl/katello.js +76 -85
  35. data/app/assets/javascripts/katello/locale/pl_PL/katello.js +76 -85
  36. data/app/assets/javascripts/katello/locale/pt/katello.js +76 -85
  37. data/app/assets/javascripts/katello/locale/pt_BR/katello.js +94 -94
  38. data/app/assets/javascripts/katello/locale/ro/katello.js +76 -85
  39. data/app/assets/javascripts/katello/locale/ro_RO/katello.js +76 -85
  40. data/app/assets/javascripts/katello/locale/ru/katello.js +91 -94
  41. data/app/assets/javascripts/katello/locale/sl/katello.js +76 -85
  42. data/app/assets/javascripts/katello/locale/sv_SE/katello.js +80 -86
  43. data/app/assets/javascripts/katello/locale/ta/katello.js +76 -85
  44. data/app/assets/javascripts/katello/locale/ta_IN/katello.js +76 -85
  45. data/app/assets/javascripts/katello/locale/te/katello.js +76 -85
  46. data/app/assets/javascripts/katello/locale/tr/katello.js +76 -85
  47. data/app/assets/javascripts/katello/locale/vi/katello.js +76 -85
  48. data/app/assets/javascripts/katello/locale/vi_VN/katello.js +76 -85
  49. data/app/assets/javascripts/katello/locale/zh/katello.js +76 -85
  50. data/app/assets/javascripts/katello/locale/zh_CN/katello.js +97 -94
  51. data/app/assets/javascripts/katello/locale/zh_TW/katello.js +91 -94
  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/hosts_controller_extensions.rb +7 -3
  61. data/app/controllers/katello/concerns/organizations_controller_extensions.rb +1 -17
  62. data/app/helpers/katello/concerns/dashboard_helper_extensions.rb +0 -20
  63. data/app/lib/actions/katello/content_view/publish.rb +3 -3
  64. data/app/lib/actions/katello/content_view_version/auto_create_products.rb +4 -4
  65. data/app/lib/actions/katello/content_view_version/auto_create_redhat_repositories.rb +5 -5
  66. data/app/lib/actions/katello/content_view_version/auto_create_repositories.rb +5 -5
  67. data/app/lib/actions/katello/content_view_version/import.rb +14 -13
  68. data/app/lib/actions/katello/content_view_version/import_library.rb +4 -4
  69. data/app/lib/actions/katello/content_view_version/import_repository.rb +3 -3
  70. data/app/lib/actions/katello/content_view_version/reset_content_view_repositories_from_metadata.rb +2 -2
  71. data/app/lib/actions/katello/host/hypervisors_update.rb +0 -1
  72. data/app/lib/actions/katello/organization/manifest_delete.rb +1 -1
  73. data/app/lib/actions/katello/organization/manifest_refresh.rb +16 -16
  74. data/app/lib/actions/katello/repository/sync.rb +2 -4
  75. data/app/lib/actions/pulp3/orchestration/content_view_version/export.rb +20 -15
  76. data/app/lib/actions/pulp3/orchestration/content_view_version/export_library.rb +17 -14
  77. data/app/lib/actions/pulp3/orchestration/content_view_version/import.rb +11 -11
  78. data/app/lib/actions/pulp3/orchestration/repository/upload_content.rb +18 -13
  79. data/app/lib/actions/pulp3/repository/import_upload.rb +13 -5
  80. data/app/lib/actions/pulp3/repository/save_artifact.rb +23 -12
  81. data/app/lib/katello/api/v2/error_handling.rb +1 -1
  82. data/app/lib/katello/lazy_accessor.rb +6 -6
  83. data/app/lib/katello/resources/candlepin/owner.rb +2 -2
  84. data/app/mailers/katello/errata_mailer.rb +3 -3
  85. data/app/models/katello/concerns/host_managed_extensions.rb +29 -76
  86. data/app/models/katello/concerns/hostgroup_extensions.rb +4 -2
  87. data/app/models/katello/concerns/organization_extensions.rb +1 -1
  88. data/app/models/katello/concerns/pulp_database_unit.rb +1 -1
  89. data/app/models/katello/concerns/subscription_facet_host_extensions.rb +0 -27
  90. data/app/models/katello/content_view.rb +11 -6
  91. data/app/models/katello/content_view_version.rb +2 -0
  92. data/app/models/katello/deb.rb +8 -0
  93. data/app/models/katello/host/content_facet.rb +19 -14
  94. data/app/models/katello/host/subscription_facet.rb +0 -19
  95. data/app/models/katello/host_tracer.rb +9 -5
  96. data/app/models/katello/installed_deb.rb +1 -0
  97. data/app/models/katello/repository.rb +3 -2
  98. data/app/models/katello/trace_status.rb +6 -2
  99. data/app/overrides/add_organization_attributes.rb +0 -18
  100. data/app/presenters/katello/host_deb_presenter.rb +23 -0
  101. data/app/services/katello/candlepin/consumer.rb +0 -4
  102. data/app/services/katello/candlepin/event_handler.rb +6 -25
  103. data/app/services/katello/candlepin/message_handler.rb +1 -21
  104. data/app/services/katello/host/profiles_uploader.rb +17 -6
  105. data/app/services/katello/host_status_manager.rb +0 -22
  106. data/app/services/katello/organization_creator.rb +2 -2
  107. data/app/services/katello/pulp3/api/apt.rb +1 -1
  108. data/app/services/katello/pulp3/content_view_version/export.rb +2 -2
  109. data/app/services/katello/pulp3/content_view_version/metadata_generator.rb +1 -0
  110. data/app/services/katello/pulp3/content_view_version/metadata_map.rb +3 -0
  111. data/app/services/katello/pulp3/repository/apt.rb +16 -6
  112. data/app/services/katello/registration_manager.rb +1 -13
  113. data/app/views/katello/api/v2/host_debs/base.json.rabl +2 -0
  114. data/app/views/katello/api/v2/hosts/base.json.rabl +9 -0
  115. data/app/views/katello/api/v2/subscription_facet/base_with_root.json.rabl +0 -3
  116. data/app/views/katello/api/v2/subscription_facet/show.json.rabl +3 -0
  117. data/app/views/katello/sync_management/index.html.erb +14 -13
  118. data/app/views/overrides/activation_keys/_host_environment_select.html.erb +20 -16
  119. data/app/views/overrides/activation_keys/_host_synced_content_select.html.erb +6 -4
  120. data/app/views/overrides/organizations/_edit_override.html.erb +0 -12
  121. data/db/migrate/20131014225132_add_users_fields.rb +0 -1
  122. data/db/migrate/20150603045418_remove_user_fields.rb +0 -2
  123. data/db/migrate/20160404132250_remove_katello_from_notification_name.rb +4 -22
  124. data/db/migrate/20160505181337_rename_katello_settings.rb +2 -2
  125. data/db/migrate/20200818192230_update_system_purpose_status.rb +9 -3
  126. data/db/migrate/20240111032511_add_index_to_host_installed_packages.rb +16 -0
  127. data/db/migrate/20240123120109_remove_pulp_export_destination_setting.rb +9 -0
  128. data/db/migrate/20240207191223_remove_entitlement_mode_host_statuses.rb +30 -0
  129. data/db/seeds.d/111-upgrade_tasks.rb +2 -1
  130. data/engines/bastion/app/assets/javascripts/bastion/bastion.js +0 -2
  131. data/engines/bastion/app/views/bastion/layouts/assets.html.erb +6 -2
  132. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/views/activation-key-associations-content-hosts.html +0 -4
  133. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/views/activation-key-details.html +0 -1
  134. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/bastion-katello-bootstrap.js +45 -29
  135. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content-hosts-helper.service.js +0 -10
  136. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/content-host-details.controller.js +0 -1
  137. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/views/content-host-info.html +2 -21
  138. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/views/content-host-subscriptions.html +0 -5
  139. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/views/content-hosts.html +0 -7
  140. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/bastion_katello.pot +5 -5
  141. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-info.html +9 -1
  142. data/engines/bastion_katello/lib/bastion_katello/engine.rb +0 -6
  143. data/lib/katello/engine.rb +0 -3
  144. data/lib/katello/plugin.rb +2 -11
  145. data/lib/katello/tasks/rubocop.rake +0 -9
  146. data/lib/katello/tasks/unify_hosts.rake +0 -1
  147. data/lib/katello/tasks/upgrades/4.12/update_content_access_modes.rake +35 -0
  148. data/lib/katello/version.rb +1 -1
  149. data/locale/action_names.rb +12 -6
  150. data/locale/bn/katello.po +19 -28
  151. data/locale/bn/katello.po.time_stamp +0 -0
  152. data/locale/bn/katello.pox +0 -0
  153. data/locale/bn_IN/katello.po +19 -28
  154. data/locale/bn_IN/katello.po.time_stamp +0 -0
  155. data/locale/ca/LC_MESSAGES/katello.mo +0 -0
  156. data/locale/ca/katello.po +20 -29
  157. data/locale/ca/katello.po.time_stamp +0 -0
  158. data/locale/cs/katello.po +19 -29
  159. data/locale/cs/katello.po.time_stamp +0 -0
  160. data/locale/cs_CZ/LC_MESSAGES/katello.mo +0 -0
  161. data/locale/cs_CZ/katello.po +20 -29
  162. data/locale/cs_CZ/katello.po.time_stamp +0 -0
  163. data/locale/de/LC_MESSAGES/katello.mo +0 -0
  164. data/locale/de/katello.po +20 -29
  165. data/locale/de/katello.po.time_stamp +0 -0
  166. data/locale/de_AT/katello.po +19 -28
  167. data/locale/de_AT/katello.po.time_stamp +0 -0
  168. data/locale/de_DE/katello.po +19 -28
  169. data/locale/de_DE/katello.po.time_stamp +0 -0
  170. data/locale/el/LC_MESSAGES/katello.mo +0 -0
  171. data/locale/el/katello.po +20 -29
  172. data/locale/el/katello.po.time_stamp +0 -0
  173. data/locale/en/katello.po +19 -28
  174. data/locale/en/katello.po.time_stamp +0 -0
  175. data/locale/en_GB/LC_MESSAGES/katello.mo +0 -0
  176. data/locale/en_GB/katello.po +19 -28
  177. data/locale/en_GB/katello.po.time_stamp +0 -0
  178. data/locale/en_US/katello.po +19 -28
  179. data/locale/en_US/katello.po.time_stamp +0 -0
  180. data/locale/es/LC_MESSAGES/katello.mo +0 -0
  181. data/locale/es/katello.po +20 -29
  182. data/locale/es/katello.po.time_stamp +0 -0
  183. data/locale/et_EE/katello.po +19 -28
  184. data/locale/et_EE/katello.po.time_stamp +0 -0
  185. data/locale/fr/LC_MESSAGES/katello.mo +0 -0
  186. data/locale/fr/katello.po +20 -29
  187. data/locale/fr/katello.po.time_stamp +0 -0
  188. data/locale/gl/LC_MESSAGES/katello.mo +0 -0
  189. data/locale/gl/katello.po +20 -29
  190. data/locale/gl/katello.po.time_stamp +0 -0
  191. data/locale/gu/katello.po +19 -28
  192. data/locale/gu/katello.po.time_stamp +0 -0
  193. data/locale/he_IL/katello.po +19 -28
  194. data/locale/he_IL/katello.po.time_stamp +0 -0
  195. data/locale/hi/katello.po +19 -28
  196. data/locale/hi/katello.po.time_stamp +0 -0
  197. data/locale/id/katello.po +19 -28
  198. data/locale/id/katello.po.time_stamp +0 -0
  199. data/locale/it/LC_MESSAGES/katello.mo +0 -0
  200. data/locale/it/katello.po +20 -29
  201. data/locale/it/katello.po.time_stamp +0 -0
  202. data/locale/ja/LC_MESSAGES/katello.mo +0 -0
  203. data/locale/ja/katello.po +20 -29
  204. data/locale/ja/katello.po.time_stamp +0 -0
  205. data/locale/ka/LC_MESSAGES/katello.mo +0 -0
  206. data/locale/ka/katello.po +20 -29
  207. data/locale/ka/katello.po.time_stamp +0 -0
  208. data/locale/katello.pot +363 -348
  209. data/locale/kn/katello.po +19 -28
  210. data/locale/kn/katello.po.time_stamp +0 -0
  211. data/locale/ko/LC_MESSAGES/katello.mo +0 -0
  212. data/locale/ko/katello.po +20 -29
  213. data/locale/ko/katello.po.time_stamp +0 -0
  214. data/locale/messages.mo +0 -0
  215. data/locale/ml_IN/katello.po +19 -28
  216. data/locale/ml_IN/katello.po.time_stamp +0 -0
  217. data/locale/mr/katello.po +19 -28
  218. data/locale/mr/katello.po.time_stamp +0 -0
  219. data/locale/nl_NL/katello.po +19 -28
  220. data/locale/nl_NL/katello.po.time_stamp +0 -0
  221. data/locale/or/katello.po +19 -28
  222. data/locale/or/katello.po.time_stamp +0 -0
  223. data/locale/pa/katello.po +19 -28
  224. data/locale/pa/katello.po.time_stamp +0 -0
  225. data/locale/pl/katello.po +19 -28
  226. data/locale/pl/katello.po.time_stamp +0 -0
  227. data/locale/pl_PL/katello.po +19 -28
  228. data/locale/pl_PL/katello.po.time_stamp +0 -0
  229. data/locale/pt/katello.po +19 -28
  230. data/locale/pt/katello.po.time_stamp +0 -0
  231. data/locale/pt_BR/LC_MESSAGES/katello.mo +0 -0
  232. data/locale/pt_BR/katello.po +20 -29
  233. data/locale/pt_BR/katello.po.time_stamp +0 -0
  234. data/locale/ro/katello.po +19 -28
  235. data/locale/ro/katello.po.time_stamp +0 -0
  236. data/locale/ro_RO/katello.po +19 -28
  237. data/locale/ro_RO/katello.po.time_stamp +0 -0
  238. data/locale/ru/LC_MESSAGES/katello.mo +0 -0
  239. data/locale/ru/katello.po +20 -29
  240. data/locale/ru/katello.po.time_stamp +0 -0
  241. data/locale/sl/katello.po +19 -28
  242. data/locale/sl/katello.po.time_stamp +0 -0
  243. data/locale/sv_SE/LC_MESSAGES/katello.mo +0 -0
  244. data/locale/sv_SE/katello.po +20 -29
  245. data/locale/sv_SE/katello.po.time_stamp +0 -0
  246. data/locale/ta/katello.po +19 -28
  247. data/locale/ta/katello.po.time_stamp +0 -0
  248. data/locale/ta_IN/katello.po +19 -28
  249. data/locale/ta_IN/katello.po.time_stamp +0 -0
  250. data/locale/te/katello.po +19 -28
  251. data/locale/te/katello.po.time_stamp +0 -0
  252. data/locale/tr/katello.po +19 -28
  253. data/locale/tr/katello.po.time_stamp +0 -0
  254. data/locale/vi/katello.po +19 -28
  255. data/locale/vi/katello.po.time_stamp +0 -0
  256. data/locale/vi_VN/katello.po +19 -28
  257. data/locale/vi_VN/katello.po.time_stamp +0 -0
  258. data/locale/zh/katello.po +19 -28
  259. data/locale/zh/katello.po.time_stamp +0 -0
  260. data/locale/zh_CN/LC_MESSAGES/katello.mo +0 -0
  261. data/locale/zh_CN/katello.po +20 -29
  262. data/locale/zh_CN/katello.po.time_stamp +0 -0
  263. data/locale/zh_TW/LC_MESSAGES/katello.mo +0 -0
  264. data/locale/zh_TW/katello.po +20 -29
  265. data/locale/zh_TW/katello.po.time_stamp +0 -0
  266. data/package.json +0 -1
  267. data/webpack/components/extensions/HostDetails/Tabs/ContentTab/SecondaryTabsRoutes.js +4 -0
  268. data/webpack/components/extensions/HostDetails/Tabs/ContentTab/constants.js +4 -1
  269. data/webpack/components/extensions/HostDetails/Tabs/DebsTab/DebInstallModal.js +250 -0
  270. data/webpack/components/extensions/HostDetails/Tabs/DebsTab/DebInstallModal.scss +3 -0
  271. data/webpack/components/extensions/HostDetails/Tabs/DebsTab/DebsTab.js +585 -0
  272. data/webpack/components/extensions/HostDetails/Tabs/DebsTab/DebsTab.scss +12 -0
  273. data/webpack/components/extensions/HostDetails/Tabs/DebsTab/HostDebsActions.js +13 -0
  274. data/webpack/components/extensions/HostDetails/Tabs/DebsTab/HostDebsConstants.js +13 -0
  275. data/webpack/components/extensions/HostDetails/Tabs/DebsTab/HostDebsSelectors.js +16 -0
  276. data/webpack/components/extensions/HostDetails/Tabs/DebsTab/InstallableDebsActions.js +17 -0
  277. data/webpack/components/extensions/HostDetails/Tabs/DebsTab/InstallableDebsConstants.js +3 -0
  278. data/webpack/components/extensions/HostDetails/Tabs/DebsTab/InstallableDebsSelectors.js +16 -0
  279. data/webpack/components/extensions/HostDetails/Tabs/ModuleStreamsTab/ModuleStreamsTab.js +1 -8
  280. data/webpack/components/extensions/HostDetails/Tabs/PackagesTab/PackagesTab.js +2 -0
  281. data/webpack/components/extensions/HostDetails/Tabs/RepositorySetsTab/RepositorySetsTab.js +4 -18
  282. data/webpack/components/extensions/HostDetails/Tabs/TracesTab/TracesTab.js +13 -5
  283. data/webpack/components/extensions/HostDetails/Tabs/__tests__/debs.fixtures.json +31 -0
  284. data/webpack/components/extensions/HostDetails/Tabs/__tests__/debsInstallModal.test.js +226 -0
  285. data/webpack/components/extensions/HostDetails/Tabs/__tests__/debsTab.test.js +420 -0
  286. data/webpack/components/extensions/HostDetails/Tabs/__tests__/installableDebs.fixtures.json +63 -0
  287. data/webpack/components/extensions/HostDetails/Tabs/__tests__/traces.fixtures.json +11 -1
  288. data/webpack/components/extensions/HostDetails/Tabs/__tests__/tracesTab.test.js +63 -3
  289. data/webpack/scenes/ContentViews/ContentViewsConstants.js +3 -0
  290. data/webpack/scenes/ContentViews/Delete/__tests__/affectedHosts.fixtures.json +0 -13
  291. data/webpack/scenes/ContentViews/Details/ContentViewDetailActions.js +23 -1
  292. data/webpack/scenes/ContentViews/Details/ContentViewDetailSelectors.js +19 -1
  293. data/webpack/scenes/ContentViews/Details/Versions/BulkDelete/__tests__/hosts.fixtures.json +0 -13
  294. data/webpack/scenes/ContentViews/Details/Versions/Compare/CVVersionCompareConfig.js +37 -3
  295. data/webpack/scenes/ContentViews/Details/Versions/ContentViewVersionContent.js +10 -2
  296. data/webpack/scenes/ContentViews/Details/Versions/Delete/__tests__/cvAffectedHosts.fixture.json +0 -13
  297. data/webpack/scenes/ContentViews/Details/Versions/VersionDetails/ContentViewVersionDetailConfig.js +31 -5
  298. data/webpack/scenes/Organizations/OrganizationSelectors.js +0 -3
  299. data/webpack/scenes/Subscriptions/Manifest/index.js +1 -4
  300. data/webpack/scenes/Subscriptions/SubscriptionsPage.js +3 -25
  301. data/webpack/scenes/Subscriptions/SubscriptionsSelectors.js +0 -3
  302. data/webpack/scenes/Subscriptions/__tests__/SubscriptionsSelectors.test.js +0 -3
  303. data/webpack/scenes/Subscriptions/__tests__/__snapshots__/SubscriptionsPage.test.js.snap +0 -22
  304. data/webpack/scenes/Subscriptions/__tests__/__snapshots__/SubscriptionsSelectors.test.js.snap +0 -3
  305. data/webpack/scenes/Subscriptions/index.js +1 -2
  306. metadata +93 -190
  307. data/app/controllers/katello/concerns/content_facet_hosts_controller_extensions.rb +0 -22
  308. data/app/models/katello/concerns/widget_extensions.rb +0 -23
  309. data/app/models/katello/purpose_addons_status.rb +0 -28
  310. data/app/models/katello/purpose_role_status.rb +0 -28
  311. data/app/models/katello/purpose_sla_status.rb +0 -28
  312. data/app/models/katello/purpose_status.rb +0 -71
  313. data/app/models/katello/purpose_usage_status.rb +0 -28
  314. data/app/models/katello/subscription_status.rb +0 -71
  315. data/app/services/katello/candlepin/system_purpose.rb +0 -49
  316. data/app/views/dashboard/_subscription_status_widget.html.erb +0 -37
  317. data/app/views/dashboard/_subscription_widget.html.erb +0 -85
  318. data/app/views/overrides/organizations/_index_header_override.html.erb +0 -3
  319. data/app/views/overrides/organizations/_index_row_override.html.erb +0 -3
  320. data/app/views/overrides/organizations/_step_1_override.html.erb +0 -10
  321. data/config/locales/README +0 -10
  322. data/config/locales/bn.yml +0 -182
  323. data/config/locales/compare_upstream.sh +0 -21
  324. data/config/locales/cs.yml +0 -211
  325. data/config/locales/de.yml +0 -203
  326. data/config/locales/en.yml +0 -205
  327. data/config/locales/es.yml +0 -199
  328. data/config/locales/fr.yml +0 -222
  329. data/config/locales/gu.yml +0 -181
  330. data/config/locales/hi.yml +0 -199
  331. data/config/locales/it.yml +0 -205
  332. data/config/locales/ja.yml +0 -197
  333. data/config/locales/kn.yml +0 -199
  334. data/config/locales/ko.yml +0 -197
  335. data/config/locales/mr.yml +0 -178
  336. data/config/locales/or.yml +0 -181
  337. data/config/locales/pa.yml +0 -181
  338. data/config/locales/pt-BR.yml +0 -207
  339. data/config/locales/pt.yml +0 -207
  340. data/config/locales/ru.yml +0 -257
  341. data/config/locales/ta.yml +0 -181
  342. data/config/locales/te.yml +0 -181
  343. data/config/locales/update.sh +0 -14
  344. data/config/locales/zh-CN.yml +0 -199
  345. data/config/locales/zh-TW.yml +0 -199
  346. data/engines/bastion/app/assets/javascripts/bastion/bastion-bootstrap.js +0 -17
  347. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/subscriptions/content-access-mode-banner.directive.js +0 -22
  348. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/subscriptions/views/content-access-mode-banner.html +0 -10
  349. 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
 
@@ -2223,9 +2220,6 @@ msgstr ""
2223
2220
  msgid "Deleting versions: {versionList}"
2224
2221
  msgstr ""
2225
2222
 
2226
- msgid "Deliver notifications about long running tasks"
2227
- msgstr ""
2228
-
2229
2223
  msgid "Description"
2230
2224
  msgstr "描述"
2231
2225
 
@@ -3352,9 +3346,6 @@ msgstr "匯入清單"
3352
3346
  msgid "Import New Manifest"
3353
3347
  msgstr ""
3354
3348
 
3355
- msgid "Import Puppet classes"
3356
- msgstr "匯入 Puppet 類別"
3357
-
3358
3349
  msgid "Import Repository"
3359
3350
  msgstr ""
3360
3351
 
@@ -3382,9 +3373,6 @@ msgstr ""
3382
3373
  msgid "Import a subscription manifest to give hosts access to Red Hat content."
3383
3374
  msgstr ""
3384
3375
 
3385
- msgid "Import facts"
3386
- msgstr "匯入詳情"
3387
-
3388
3376
  msgid "Import only"
3389
3377
  msgstr ""
3390
3378
 
@@ -3658,6 +3646,9 @@ msgstr ""
3658
3646
  msgid "Katello ID of local pool to update"
3659
3647
  msgstr ""
3660
3648
 
3649
+ msgid "Katello: Configure host for new content source"
3650
+ msgstr ""
3651
+
3661
3652
  msgid "Katello: Install Errata"
3662
3653
  msgstr "Katello:安裝勘誤"
3663
3654
 
@@ -3808,9 +3799,6 @@ msgstr ""
3808
3799
  msgid "Lifecycle environment ID"
3809
3800
  msgstr ""
3810
3801
 
3811
- msgid "Lifecycle environment for the host."
3812
- msgstr ""
3813
-
3814
3802
  msgid "Lifecycle environment must be specified"
3815
3803
  msgstr ""
3816
3804
 
@@ -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
 
@@ -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
 
@@ -8451,6 +8439,9 @@ msgstr ""
8451
8439
  msgid "deb_ids is not an array"
8452
8440
  msgstr ""
8453
8441
 
8442
+ msgid "deb_names_for_job_template: Action must be one of %s"
8443
+ msgstr ""
8444
+
8454
8445
  msgid "delete a filter"
8455
8446
  msgstr "刪除篩選器"
8456
8447
 
@@ -8574,8 +8565,8 @@ msgstr "已經為此組織的產品使用。"
8574
8565
  msgid "has already been taken for this product."
8575
8566
  msgstr "已經為此產品使用。"
8576
8567
 
8577
- msgid "here"
8578
- msgstr "這裡"
8568
+ msgid "here."
8569
+ msgstr ""
8579
8570
 
8580
8571
  msgid "host collection name to filter by"
8581
8572
  msgstr "要篩選的主機集名稱,透過"
File without changes
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
+ }