katello 4.4.1 → 4.5.0

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 (488) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/katello/hosts/activation_key_edit.js +9 -2
  3. data/app/controllers/katello/api/registry/registry_proxies_controller.rb +3 -0
  4. data/app/controllers/katello/api/rhsm/candlepin_proxies_controller.rb +5 -1
  5. data/app/controllers/katello/api/v2/alternate_content_sources_bulk_actions_controller.rb +44 -0
  6. data/app/controllers/katello/api/v2/alternate_content_sources_controller.rb +121 -0
  7. data/app/controllers/katello/api/v2/content_export_incrementals_controller.rb +39 -3
  8. data/app/controllers/katello/api/v2/content_exports_controller.rb +19 -0
  9. data/app/controllers/katello/api/v2/content_imports_controller.rb +13 -16
  10. data/app/controllers/katello/api/v2/content_view_components_controller.rb +1 -1
  11. data/app/controllers/katello/api/v2/content_view_repositories_controller.rb +1 -1
  12. data/app/controllers/katello/api/v2/content_view_versions_controller.rb +0 -12
  13. data/app/controllers/katello/api/v2/content_views_controller.rb +13 -0
  14. data/app/controllers/katello/api/v2/environments_controller.rb +1 -1
  15. data/app/controllers/katello/api/v2/host_module_streams_controller.rb +8 -2
  16. data/app/controllers/katello/api/v2/host_subscriptions_controller.rb +25 -3
  17. data/app/controllers/katello/api/v2/organizations_controller.rb +4 -2
  18. data/app/controllers/katello/api/v2/repositories_bulk_actions_controller.rb +1 -1
  19. data/app/controllers/katello/api/v2/repositories_controller.rb +1 -1
  20. data/app/controllers/katello/api/v2/repository_sets_controller.rb +40 -7
  21. data/app/controllers/katello/api/v2/subscriptions_controller.rb +2 -2
  22. data/app/controllers/katello/concerns/api/v2/hosts_controller_extensions.rb +1 -1
  23. data/app/helpers/katello/concerns/smart_proxy_helper_extensions.rb +4 -0
  24. data/app/helpers/katello/hosts_and_hostgroups_helper.rb +21 -3
  25. data/app/lib/actions/katello/alternate_content_source/create.rb +24 -0
  26. data/app/lib/actions/katello/alternate_content_source/destroy.rb +27 -0
  27. data/app/lib/actions/katello/alternate_content_source/refresh.rb +27 -0
  28. data/app/lib/actions/katello/alternate_content_source/update.rb +41 -0
  29. data/app/lib/actions/katello/cdn_configuration/update.rb +3 -3
  30. data/app/lib/actions/katello/content_view/destroy.rb +2 -1
  31. data/app/lib/actions/katello/content_view/incremental_updates.rb +7 -3
  32. data/app/lib/actions/katello/content_view/publish.rb +8 -10
  33. data/app/lib/actions/katello/content_view_version/auto_create_products.rb +4 -4
  34. data/app/lib/actions/katello/content_view_version/auto_create_redhat_repositories.rb +6 -4
  35. data/app/lib/actions/katello/content_view_version/auto_create_repositories.rb +6 -4
  36. data/app/lib/actions/katello/content_view_version/import.rb +25 -22
  37. data/app/lib/actions/katello/content_view_version/import_library.rb +0 -1
  38. data/app/lib/actions/katello/content_view_version/import_repository.rb +21 -0
  39. data/app/lib/actions/katello/content_view_version/incremental_update.rb +85 -93
  40. data/app/lib/actions/katello/content_view_version/reset_content_view_repositories_from_metadata.rb +2 -2
  41. data/app/lib/actions/katello/organization/manifest_refresh.rb +1 -1
  42. data/app/lib/actions/katello/product/content_create.rb +10 -8
  43. data/app/lib/actions/katello/repository/destroy.rb +36 -12
  44. data/app/lib/actions/katello/repository_set/disable_repository.rb +8 -3
  45. data/app/lib/actions/pulp3/alternate_content_source/create.rb +20 -0
  46. data/app/lib/actions/pulp3/alternate_content_source/create_remote.rb +20 -0
  47. data/app/lib/actions/pulp3/alternate_content_source/delete.rb +16 -0
  48. data/app/lib/actions/pulp3/alternate_content_source/delete_remote.rb +16 -0
  49. data/app/lib/actions/pulp3/alternate_content_source/refresh.rb +23 -0
  50. data/app/lib/actions/pulp3/alternate_content_source/update.rb +16 -0
  51. data/app/lib/actions/pulp3/alternate_content_source/update_remote.rb +17 -0
  52. data/app/lib/actions/pulp3/content_view_version/{import.rb → create_import.rb} +5 -5
  53. data/app/lib/actions/pulp3/content_view_version/create_importer.rb +4 -3
  54. data/app/lib/actions/pulp3/content_view_version/destroy_importer.rb +12 -1
  55. data/app/lib/actions/pulp3/orchestration/alternate_content_source/create.rb +16 -0
  56. data/app/lib/actions/pulp3/orchestration/alternate_content_source/delete.rb +23 -0
  57. data/app/lib/actions/pulp3/orchestration/alternate_content_source/refresh.rb +15 -0
  58. data/app/lib/actions/pulp3/orchestration/alternate_content_source/update.rb +16 -0
  59. data/app/lib/actions/pulp3/orchestration/content_view_version/copy_version_units_to_library.rb +1 -1
  60. data/app/lib/actions/pulp3/orchestration/content_view_version/export_repository.rb +51 -0
  61. data/app/lib/actions/pulp3/orchestration/content_view_version/import.rb +5 -2
  62. data/app/lib/actions/pulp3/repository/save_artifact.rb +1 -1
  63. data/app/lib/katello/api/v2/error_handling.rb +1 -0
  64. data/app/lib/katello/concerns/base_template_scope_extensions.rb +24 -11
  65. data/app/lib/katello/resources/cdn/katello_cdn.rb +3 -1
  66. data/app/lib/katello/util/errata.rb +2 -3
  67. data/app/lib/katello/validators/alternate_content_source_path_validator.rb +29 -0
  68. data/app/lib/katello/validators/content_default_http_proxy_setting_validator.rb +12 -0
  69. data/app/lib/katello/validators/content_view_environment_validator.rb +10 -5
  70. data/app/models/katello/alternate_content_source.rb +71 -0
  71. data/app/models/katello/authorization/alternate_content_source.rb +33 -0
  72. data/app/models/katello/authorization/repository.rb +5 -3
  73. data/app/models/katello/candlepin/repository_mapper.rb +13 -6
  74. data/app/models/katello/cdn_configuration.rb +15 -15
  75. data/app/models/katello/concerns/content_facet_host_extensions.rb +25 -0
  76. data/app/models/katello/concerns/host_managed_extensions.rb +7 -6
  77. data/app/models/katello/concerns/http_proxy_extensions.rb +14 -0
  78. data/app/models/katello/concerns/organization_extensions.rb +4 -2
  79. data/app/models/katello/concerns/setting_extensions.rb +14 -0
  80. data/app/models/katello/concerns/smart_proxy_extensions.rb +2 -1
  81. data/app/models/katello/content.rb +1 -0
  82. data/app/models/katello/content_credential.rb +6 -0
  83. data/app/models/katello/content_override.rb +7 -3
  84. data/app/models/katello/content_view.rb +33 -2
  85. data/app/models/katello/content_view_erratum_filter.rb +26 -12
  86. data/app/models/katello/content_view_filter.rb +4 -0
  87. data/app/models/katello/content_view_version.rb +12 -0
  88. data/app/models/katello/content_view_version_export_history.rb +3 -1
  89. data/app/models/katello/erratum.rb +9 -5
  90. data/app/models/katello/events/delete_latest_content_view_version.rb +40 -0
  91. data/app/models/katello/host/content_facet.rb +14 -0
  92. data/app/models/katello/host_available_module_stream.rb +12 -0
  93. data/app/models/katello/product_content.rb +1 -0
  94. data/app/models/katello/purpose_sla_status.rb +1 -1
  95. data/app/models/katello/purpose_status.rb +2 -2
  96. data/app/models/katello/repository.rb +7 -4
  97. data/app/models/katello/root_repository.rb +1 -1
  98. data/app/models/katello/smart_proxy_alternate_content_source.rb +8 -0
  99. data/app/models/katello/sync_plan.rb +1 -1
  100. data/app/presenters/katello/product_content_presenter.rb +15 -0
  101. data/app/services/katello/applicable_host_queue.rb +1 -1
  102. data/app/services/katello/product_content_finder.rb +12 -2
  103. data/app/services/katello/pulp3/alternate_content_source.rb +123 -0
  104. data/app/services/katello/pulp3/api/file.rb +8 -0
  105. data/app/services/katello/pulp3/api/yum.rb +8 -0
  106. data/app/services/katello/pulp3/content_view_version/export.rb +27 -5
  107. data/app/services/katello/pulp3/content_view_version/import.rb +104 -71
  108. data/app/services/katello/pulp3/content_view_version/import_export_common.rb +4 -4
  109. data/app/services/katello/pulp3/content_view_version/import_gpg_keys.rb +13 -11
  110. data/app/services/katello/pulp3/content_view_version/import_validator.rb +67 -72
  111. data/app/services/katello/pulp3/content_view_version/importable_products.rb +40 -24
  112. data/app/services/katello/pulp3/content_view_version/importable_repositories.rb +102 -38
  113. data/app/services/katello/pulp3/content_view_version/metadata_generator.rb +2 -2
  114. data/app/services/katello/pulp3/content_view_version/metadata_map.rb +117 -0
  115. data/app/services/katello/pulp3/pulp_content_unit.rb +6 -1
  116. data/app/services/katello/pulp3/repository/yum.rb +70 -12
  117. data/app/services/katello/pulp3/repository.rb +6 -62
  118. data/app/services/katello/pulp3/service_common.rb +66 -0
  119. data/app/services/katello/pulp3/smart_proxy_mirror_repository.rb +4 -1
  120. data/app/services/katello/ui_notifications/content_view/delete_latest_version_failure.rb +22 -0
  121. data/app/views/foreman/job_templates/change_content_source.erb +1 -1
  122. data/app/views/foreman/job_templates/install_errata.erb +5 -5
  123. data/app/views/foreman/job_templates/install_errata_by_search_query.erb +10 -8
  124. data/app/views/foreman/job_templates/install_group.erb +4 -4
  125. data/app/views/foreman/job_templates/install_package.erb +4 -4
  126. data/app/views/foreman/job_templates/install_packages_by_search_query.erb +3 -3
  127. data/app/views/foreman/job_templates/remove_group.erb +4 -4
  128. data/app/views/foreman/job_templates/remove_package.erb +4 -4
  129. data/app/views/foreman/job_templates/remove_packages_by_search_query.erb +3 -3
  130. data/app/views/foreman/job_templates/resolve_traces.erb +2 -2
  131. data/app/views/foreman/job_templates/restart_services.erb +3 -3
  132. data/app/views/foreman/job_templates/update_group.erb +4 -4
  133. data/app/views/foreman/job_templates/update_package.erb +4 -4
  134. data/app/views/foreman/job_templates/update_packages_by_search_query.erb +3 -3
  135. data/app/views/katello/api/v2/alternate_content_sources/base.json.rabl +24 -0
  136. data/app/views/katello/api/v2/alternate_content_sources/index.json.rabl +7 -0
  137. data/app/views/katello/api/v2/alternate_content_sources/show.json.rabl +3 -0
  138. data/app/views/katello/api/v2/capsule_content/sync_status.json.rabl +1 -1
  139. data/app/views/katello/api/v2/content_facet/show.json.rabl +12 -0
  140. data/app/views/katello/api/v2/content_view_version_export_histories/show.json.rabl +2 -3
  141. data/app/views/katello/api/v2/content_view_versions/base.json.rabl +1 -1
  142. data/app/views/katello/api/v2/content_views/base.json.rabl +1 -0
  143. data/app/views/katello/api/v2/environments/show.json.rabl +2 -0
  144. data/app/views/katello/api/v2/errata/_counts.json.rabl +2 -2
  145. data/app/views/katello/api/v2/host_module_streams/base.json.rabl +2 -2
  146. data/app/views/katello/api/v2/hosts/host_collections.json.rabl +1 -1
  147. data/app/views/katello/api/v2/organizations/show.json.rabl +7 -1
  148. data/app/views/katello/api/v2/repositories/show.json.rabl +2 -1
  149. data/app/views/katello/api/v2/repository_sets/show.json.rabl +4 -0
  150. data/app/views/katello/sync_management/_repo.html.erb +8 -29
  151. data/config/routes/api/v2.rb +19 -0
  152. data/db/migrate/20150930183738_migrate_content_hosts.rb +0 -399
  153. data/db/migrate/20171025163149_remove_use_pulp_oauth_setting.rb +1 -1
  154. data/db/migrate/20171114150937_cleanup_installed_packages.rb +1 -1
  155. data/db/migrate/20180402160223_clean_up_force_post_sync_action_setting.rb +1 -1
  156. data/db/migrate/20211129200124_remove_dependency_solving_algorithm_setting.rb +1 -1
  157. data/db/migrate/20211220185935_clean_duplicate_content_units.rb +1 -1
  158. data/db/migrate/20220110223754_update_disconnected_settings.rb +5 -5
  159. data/db/migrate/20220117151612_add_alternate_content_sources.rb +48 -0
  160. data/db/migrate/20220124191056_add_type_to_cdn_configuration.rb +9 -4
  161. data/db/migrate/20220209203251_add_generated_for_to_content_views.rb +13 -0
  162. data/db/migrate/20220209205137_expand_sync_timeout_settings.rb +7 -7
  163. data/db/migrate/20220228173251_remove_drpm_from_ignorable_content.rb +12 -0
  164. data/db/migrate/20220303160220_remove_duplicate_errata.rb +1 -1
  165. data/db/migrate/20220404190836_delete_old_setting_data.rb +9 -0
  166. data/db/migrate/20220405220616_update_cdn_configuration_type.rb +11 -0
  167. data/db/migrate/20220419193414_content_settings_to_dsl_category.rb +5 -0
  168. data/db/migrate/20220428203334_add_last_refreshed_to_katello_alternate_content_sources.rb +5 -0
  169. data/db/seeds.d/110-content-view-autopublish.rb +13 -0
  170. data/db/seeds.d/150-module_job_templates.rb +1 -1
  171. data/engines/bastion/README.md +1 -0
  172. data/engines/bastion/app/assets/javascripts/bastion/components/bst-modal.directive.js +1 -0
  173. data/engines/bastion/app/views/bastion/layouts/assets.html.erb +1 -0
  174. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/activation-keys.routes.js +1 -1
  175. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/activation-key-details.controller.js +4 -2
  176. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/views/activation-key-details.html +1 -1
  177. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/capsule-content/capsule-content.controller.js +11 -6
  178. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/content-host-module-streams.controller.js +1 -0
  179. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/content-host-packages-installed.controller.js +1 -0
  180. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/content-host-packages.controller.js +11 -3
  181. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/content-host-traces.controller.js +1 -0
  182. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/views/content-host-packages-actions.html +1 -1
  183. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/views/content-host-packages-applicable.html +1 -1
  184. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content-hosts.controller.js +8 -0
  185. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/content-host-details.controller.js +4 -2
  186. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/views/content-hosts.html +2 -2
  187. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/content.service.js +10 -0
  188. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/details/views/environment-deb-repositories.html +26 -0
  189. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/details/views/environment-debs.html +27 -0
  190. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/environments.controller.js +1 -0
  191. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/environments.routes.js +22 -0
  192. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/views/environments.html +13 -7
  193. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/bastion_katello.pot +63 -17
  194. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/repository-details-info.controller.js +7 -8
  195. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/repository-details.controller.js +10 -1
  196. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-details.html +21 -3
  197. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-info.html +8 -12
  198. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/new/new-repository.controller.js +7 -5
  199. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/new/views/new-repository.html +2 -1
  200. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/discovery/discovery-create.controller.js +1 -1
  201. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/discovery/views/discovery-create.html +1 -1
  202. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/products.routes.js +1 -0
  203. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/subscriptions/views/content-access-mode-banner.html +6 -1
  204. data/lib/katello/engine.rb +1 -5
  205. data/lib/katello/permission_creator.rb +34 -4
  206. data/lib/katello/plugin.rb +377 -3
  207. data/lib/katello/tasks/refresh_alternate_content_sources.rake +15 -0
  208. data/lib/katello/tasks/reset.rake.bak +67 -0
  209. data/lib/katello/tasks/update_content_default_http_proxy.rake +2 -3
  210. data/lib/katello/version.rb +1 -1
  211. data/locale/action_names.rb +47 -41
  212. data/locale/bn/LC_MESSAGES/katello.mo +0 -0
  213. data/locale/bn/katello.po +820 -106
  214. data/locale/bn/katello.po.time_stamp +0 -0
  215. data/locale/cs/LC_MESSAGES/katello.mo +0 -0
  216. data/locale/cs/katello.po +818 -104
  217. data/locale/cs/katello.po.time_stamp +0 -0
  218. data/locale/de/LC_MESSAGES/katello.mo +0 -0
  219. data/locale/de/katello.po +893 -179
  220. data/locale/de/katello.po.time_stamp +0 -0
  221. data/locale/en/LC_MESSAGES/katello.mo +0 -0
  222. data/locale/en/katello.po +817 -103
  223. data/locale/en/katello.po.time_stamp +0 -0
  224. data/locale/es/LC_MESSAGES/katello.mo +0 -0
  225. data/locale/es/katello.po +882 -168
  226. data/locale/es/katello.po.time_stamp +0 -0
  227. data/locale/fr/LC_MESSAGES/katello.mo +0 -0
  228. data/locale/fr/katello.po +1219 -505
  229. data/locale/fr/katello.po.time_stamp +0 -0
  230. data/locale/gu/LC_MESSAGES/katello.mo +0 -0
  231. data/locale/gu/katello.po +826 -112
  232. data/locale/gu/katello.po.time_stamp +0 -0
  233. data/locale/hi/LC_MESSAGES/katello.mo +0 -0
  234. data/locale/hi/katello.po +826 -112
  235. data/locale/hi/katello.po.time_stamp +0 -0
  236. data/locale/it/LC_MESSAGES/katello.mo +0 -0
  237. data/locale/it/katello.po +863 -148
  238. data/locale/it/katello.po.time_stamp +0 -0
  239. data/locale/ja/LC_MESSAGES/katello.mo +0 -0
  240. data/locale/ja/katello.po +1216 -499
  241. data/locale/ja/katello.po.time_stamp +0 -0
  242. data/locale/katello.pot +3847 -2507
  243. data/locale/kn/LC_MESSAGES/katello.mo +0 -0
  244. data/locale/kn/katello.po +826 -112
  245. data/locale/kn/katello.po.time_stamp +0 -0
  246. data/locale/ko/LC_MESSAGES/katello.mo +0 -0
  247. data/locale/ko/katello.po +912 -198
  248. data/locale/ko/katello.po.time_stamp +0 -0
  249. data/locale/mr/LC_MESSAGES/katello.mo +0 -0
  250. data/locale/mr/katello.po +826 -112
  251. data/locale/mr/katello.po.time_stamp +0 -0
  252. data/locale/or/LC_MESSAGES/katello.mo +0 -0
  253. data/locale/or/katello.po +826 -112
  254. data/locale/or/katello.po.time_stamp +0 -0
  255. data/locale/pa/LC_MESSAGES/katello.mo +0 -0
  256. data/locale/pa/katello.po +826 -112
  257. data/locale/pa/katello.po.time_stamp +0 -0
  258. data/locale/pt/LC_MESSAGES/katello.mo +0 -0
  259. data/locale/pt/katello.po +817 -103
  260. data/locale/pt/katello.po.time_stamp +0 -0
  261. data/locale/pt_BR/LC_MESSAGES/katello.mo +0 -0
  262. data/locale/pt_BR/katello.po +879 -165
  263. data/locale/pt_BR/katello.po.time_stamp +0 -0
  264. data/locale/ru/LC_MESSAGES/katello.mo +0 -0
  265. data/locale/ru/katello.po +927 -213
  266. data/locale/ru/katello.po.time_stamp +0 -0
  267. data/locale/ta/LC_MESSAGES/katello.mo +0 -0
  268. data/locale/ta/katello.po +820 -106
  269. data/locale/ta/katello.po.time_stamp +0 -0
  270. data/locale/te/LC_MESSAGES/katello.mo +0 -0
  271. data/locale/te/katello.po +826 -112
  272. data/locale/te/katello.po.time_stamp +0 -0
  273. data/locale/zh_CN/LC_MESSAGES/katello.mo +0 -0
  274. data/locale/zh_CN/katello.po +1202 -486
  275. data/locale/zh_CN/katello.po.time_stamp +0 -0
  276. data/locale/zh_TW/LC_MESSAGES/katello.mo +0 -0
  277. data/locale/zh_TW/katello.po +856 -142
  278. data/locale/zh_TW/katello.po.time_stamp +0 -0
  279. data/webpack/components/Bookmark/index.js +22 -14
  280. data/webpack/components/EditableTextInput/EditableTextInput.js +20 -5
  281. data/webpack/components/Errata/index.js +38 -8
  282. data/webpack/components/Packages/index.js +1 -4
  283. data/webpack/components/Search/Search.js +22 -3
  284. data/webpack/components/SelectAllCheckbox/index.js +1 -0
  285. data/webpack/components/SelectableDropdown/SelectableDropdown.js +4 -2
  286. data/webpack/components/Table/EmptyStateMessage.js +21 -7
  287. data/webpack/components/Table/MainTable.js +29 -4
  288. data/webpack/components/Table/MainTable.scss +5 -1
  289. data/webpack/components/Table/TableHooks.js +65 -20
  290. data/webpack/components/Table/TableWrapper.js +9 -3
  291. data/webpack/components/Table/components/SortableColumnHeaders.js +19 -0
  292. data/webpack/components/Table/components/TranslatedPlural.js +57 -0
  293. data/webpack/components/TypeAhead/TypeAhead.js +12 -0
  294. data/webpack/components/TypeAhead/pf4Search/TypeAheadInput.js +13 -11
  295. data/webpack/components/TypeAhead/pf4Search/TypeAheadSearch.js +7 -2
  296. data/webpack/components/extensions/HostDetails/ActionsBar/index.js +27 -0
  297. data/webpack/components/extensions/HostDetails/Cards/ContentViewDetailsCard/ChangeHostCVModal.js +250 -0
  298. data/webpack/components/extensions/HostDetails/Cards/ContentViewDetailsCard/ContentViewDetailsCard.js +232 -0
  299. data/webpack/components/extensions/HostDetails/Cards/ContentViewDetailsCard/HostContentViewActions.js +19 -0
  300. data/webpack/components/extensions/HostDetails/Cards/ContentViewDetailsCard/HostContentViewConstants.js +2 -0
  301. data/webpack/components/extensions/HostDetails/Cards/ContentViewDetailsCard/__tests__/changeHostCVModal.test.js +131 -0
  302. data/webpack/components/extensions/HostDetails/Cards/{__tests__ → ContentViewDetailsCard/__tests__}/contentViewDetailsCard.test.js +22 -0
  303. data/webpack/components/extensions/HostDetails/Cards/ContentViewDetailsCard/__tests__/contentViews.fixtures.json +443 -0
  304. data/webpack/components/extensions/HostDetails/Cards/ContentViewDetailsCard/__tests__/envPaths.fixtures.json +320 -0
  305. data/webpack/components/extensions/HostDetails/Cards/ErrataOverviewCard.js +57 -33
  306. data/webpack/components/extensions/HostDetails/Cards/ErrataOverviewCard.scss +3 -0
  307. data/webpack/components/extensions/HostDetails/Cards/HostCollectionsCard/HostCollectionsActions.js +30 -0
  308. data/webpack/components/extensions/HostDetails/Cards/HostCollectionsCard/HostCollectionsCard.js +206 -0
  309. data/webpack/components/extensions/HostDetails/Cards/HostCollectionsCard/HostCollectionsConstants.js +7 -0
  310. data/webpack/components/extensions/HostDetails/Cards/HostCollectionsCard/HostCollectionsModal.js +227 -0
  311. data/webpack/components/extensions/HostDetails/Cards/HostCollectionsCard/HostCollectionsSelectors.js +18 -0
  312. data/webpack/components/extensions/HostDetails/Cards/HostCollectionsCard/__tests__/availableHostCollections.fixtures.json +106 -0
  313. data/webpack/components/extensions/HostDetails/Cards/HostCollectionsCard/__tests__/hostCollectionsCard.test.js +118 -0
  314. data/webpack/components/extensions/HostDetails/Cards/HostCollectionsCard/__tests__/hostCollectionsModal.test.js +235 -0
  315. data/webpack/components/extensions/HostDetails/Cards/HostCollectionsCard/__tests__/removableHostCollections.fixtures.json +45 -0
  316. data/webpack/components/extensions/HostDetails/Cards/__tests__/errataOverviewCard.test.js +33 -8
  317. data/webpack/components/extensions/HostDetails/DetailsTabCards/InstalledProductsCard.js +44 -0
  318. data/webpack/components/extensions/HostDetails/DetailsTabCards/RecentCommunicationCardExtensions.js +37 -0
  319. data/webpack/components/extensions/HostDetails/DetailsTabCards/RegistrationCard.js +107 -0
  320. data/webpack/components/extensions/HostDetails/DetailsTabCards/SystemPropertiesCardExtensions.js +38 -0
  321. data/webpack/components/extensions/HostDetails/HostDetailsActions.js +11 -0
  322. data/webpack/components/extensions/HostDetails/Tabs/ContentTab/SecondaryTabsRoutes.js +4 -0
  323. data/webpack/components/extensions/HostDetails/Tabs/ContentTab/constants.js +2 -0
  324. data/webpack/components/extensions/HostDetails/Tabs/ContentTab/index.js +6 -1
  325. data/webpack/components/extensions/HostDetails/Tabs/ErrataTab/ErrataTab.js +176 -72
  326. data/webpack/components/extensions/HostDetails/Tabs/ErrataTab/HostErrataActions.js +1 -7
  327. data/webpack/components/extensions/HostDetails/Tabs/ModuleStreamsTab/ModuleStreamsActions.js +1 -3
  328. data/webpack/components/extensions/HostDetails/Tabs/ModuleStreamsTab/ModuleStreamsConstants.js +28 -0
  329. data/webpack/components/extensions/HostDetails/Tabs/ModuleStreamsTab/ModuleStreamsTab.js +522 -118
  330. data/webpack/components/extensions/HostDetails/Tabs/PackagesTab/HostPackagesActions.js +1 -7
  331. data/webpack/components/extensions/HostDetails/Tabs/PackagesTab/PackageInstallModal.js +6 -4
  332. data/webpack/components/extensions/HostDetails/Tabs/PackagesTab/PackagesTab.js +164 -58
  333. data/webpack/components/extensions/HostDetails/Tabs/RemoteExecutionActions.js +59 -49
  334. data/webpack/components/extensions/HostDetails/Tabs/RemoteExecutionConstants.js +1 -0
  335. data/webpack/components/extensions/HostDetails/Tabs/RemoteExecutionHooks.js +85 -0
  336. data/webpack/components/extensions/HostDetails/Tabs/RepositorySetsTab/RepositorySetsActions.js +33 -54
  337. data/webpack/components/extensions/HostDetails/Tabs/RepositorySetsTab/RepositorySetsConstants.js +20 -0
  338. data/webpack/components/extensions/HostDetails/Tabs/RepositorySetsTab/RepositorySetsTab.js +298 -107
  339. data/webpack/components/extensions/HostDetails/Tabs/TracesTab/EnableTracerModal.js +14 -7
  340. data/webpack/components/extensions/HostDetails/Tabs/TracesTab/HostTracesActions.js +2 -1
  341. data/webpack/components/extensions/HostDetails/Tabs/TracesTab/TracesEnabler.js +104 -0
  342. data/webpack/components/extensions/HostDetails/Tabs/TracesTab/TracesTab.js +134 -57
  343. data/webpack/components/extensions/HostDetails/Tabs/__tests__/errataTab.test.js +37 -32
  344. data/webpack/components/extensions/HostDetails/Tabs/{ModuleStreamsTab/__tests__/modules.fixtures.json → __tests__/moduleStreams.fixtures.json} +6 -3
  345. data/webpack/components/extensions/HostDetails/Tabs/__tests__/moduleStreamsTab.test.js +261 -0
  346. data/webpack/components/extensions/HostDetails/Tabs/__tests__/packageInstallModal.test.js +21 -15
  347. data/webpack/components/extensions/HostDetails/Tabs/__tests__/packagesTab.test.js +44 -1
  348. data/webpack/components/extensions/HostDetails/Tabs/__tests__/repositorySets.fixtures.json +4 -1
  349. data/webpack/components/extensions/HostDetails/Tabs/__tests__/repositorySetsTab.test.js +105 -6
  350. data/webpack/components/extensions/HostDetails/Tabs/__tests__/tracesTab.test.js +25 -6
  351. data/webpack/components/extensions/HostDetails/Tabs/customizedRexUrlHelpers.js +6 -0
  352. data/webpack/components/extensions/HostDetails/hostDetailsHelpers.js +18 -0
  353. data/webpack/containers/Application/config.js +5 -0
  354. data/webpack/global_index.js +32 -9
  355. data/webpack/global_test_setup.js +13 -0
  356. data/webpack/redux/actions/RedHatRepositories/enabled.js +2 -1
  357. data/webpack/redux/actions/RedHatRepositories/helpers.js +13 -8
  358. data/webpack/scenes/AlternateContentSources/ACSActions.js +65 -0
  359. data/webpack/scenes/AlternateContentSources/ACSConstants.js +18 -0
  360. data/webpack/scenes/AlternateContentSources/ACSIndexPage.js +23 -0
  361. data/webpack/scenes/AlternateContentSources/ACSSelectors.js +24 -0
  362. data/webpack/scenes/AlternateContentSources/Create/ACSCreateContext.js +4 -0
  363. data/webpack/scenes/AlternateContentSources/Create/ACSCreateWizard.js +160 -0
  364. data/webpack/scenes/AlternateContentSources/Create/Steps/ACSCreateFinish.js +79 -0
  365. data/webpack/scenes/AlternateContentSources/Create/Steps/ACSCredentials.js +199 -0
  366. data/webpack/scenes/AlternateContentSources/Create/Steps/ACSReview.js +104 -0
  367. data/webpack/scenes/AlternateContentSources/Create/Steps/ACSSmartProxies.js +41 -0
  368. data/webpack/scenes/AlternateContentSources/Create/Steps/AcsUrlPaths.js +71 -0
  369. data/webpack/scenes/AlternateContentSources/Create/Steps/NameACS.js +57 -0
  370. data/webpack/scenes/AlternateContentSources/Create/Steps/SelectSource.js +77 -0
  371. data/webpack/scenes/AlternateContentSources/Create/__tests__/acsCreate.test.js +149 -0
  372. data/webpack/scenes/AlternateContentSources/Create/__tests__/acsCreateData.fixtures.json +3 -0
  373. data/webpack/scenes/AlternateContentSources/Create/__tests__/contentCredentials.fixtures.json +69 -0
  374. data/webpack/scenes/AlternateContentSources/Create/__tests__/smartProxy.fixtures.json +65 -0
  375. data/webpack/scenes/AlternateContentSources/MainTable/ACSTable.js +162 -0
  376. data/webpack/scenes/AlternateContentSources/MainTable/__tests__/acsIndex.fixtures.json +91 -0
  377. data/webpack/scenes/AlternateContentSources/MainTable/__tests__/acsTable.test.js +67 -0
  378. data/webpack/scenes/AlternateContentSources/index.js +4 -0
  379. data/webpack/scenes/Content/Details/ContentRepositories.js +1 -0
  380. data/webpack/scenes/Content/Table/ContentTable.js +1 -0
  381. data/webpack/scenes/ContentCredentials/ContentCredentialSelectors.js +4 -1
  382. data/webpack/scenes/ContentViews/ContentViewsActions.js +6 -2
  383. data/webpack/scenes/ContentViews/ContentViewsConstants.js +11 -3
  384. data/webpack/scenes/ContentViews/Copy/CopyContentViewForm.js +2 -1
  385. data/webpack/scenes/ContentViews/Create/ContentViewFormComponents.js +10 -1
  386. data/webpack/scenes/ContentViews/Create/CreateContentViewForm.js +2 -1
  387. data/webpack/scenes/ContentViews/Delete/ContentViewDeleteWizard.js +7 -5
  388. data/webpack/scenes/ContentViews/Delete/Steps/CVDeletionFinish.js +29 -21
  389. data/webpack/scenes/ContentViews/Delete/__tests__/contentViewDelete.test.js +15 -8
  390. data/webpack/scenes/ContentViews/Details/ComponentContentViews/ComponentContentViewAddModal.js +2 -2
  391. data/webpack/scenes/ContentViews/Details/ComponentContentViews/ComponentContentViewBulkAddModal.js +2 -2
  392. data/webpack/scenes/ContentViews/Details/ComponentContentViews/ContentViewComponents.js +3 -1
  393. data/webpack/scenes/ContentViews/Details/ContentViewDetailActions.js +34 -8
  394. data/webpack/scenes/ContentViews/Details/ContentViewDetailSelectors.js +33 -29
  395. data/webpack/scenes/ContentViews/Details/ContentViewDetails.js +130 -79
  396. data/webpack/scenes/ContentViews/Details/ContentViewInfo.js +16 -2
  397. data/webpack/scenes/ContentViews/Details/Filters/Add/CVFilterAddModal.js +2 -1
  398. data/webpack/scenes/ContentViews/Details/Filters/AffectedRepositories/AffectedRepositoryTable.js +2 -1
  399. data/webpack/scenes/ContentViews/Details/Filters/CVContainerImageFilterContent.js +6 -1
  400. data/webpack/scenes/ContentViews/Details/Filters/CVErrataDateFilterContent.js +41 -21
  401. data/webpack/scenes/ContentViews/Details/Filters/CVErrataIDFilterContent.js +38 -20
  402. data/webpack/scenes/ContentViews/Details/Filters/CVModuleStreamFilterContent.js +2 -0
  403. data/webpack/scenes/ContentViews/Details/Filters/CVPackageGroupFilterContent.js +8 -1
  404. data/webpack/scenes/ContentViews/Details/Filters/CVRpmFilterContent.js +9 -1
  405. data/webpack/scenes/ContentViews/Details/Filters/ContentViewFilters.js +2 -1
  406. data/webpack/scenes/ContentViews/Details/Filters/MatchContentModal/CVRpmMatchContentModal.js +1 -0
  407. data/webpack/scenes/ContentViews/Details/Filters/Rules/ContainerTag/AddEditContainerTagRuleModal.js +27 -12
  408. data/webpack/scenes/ContentViews/Details/Filters/Rules/Package/AddEditPackageRuleModal.js +39 -17
  409. data/webpack/scenes/ContentViews/Details/Filters/__tests__/CVContainerImageFilterContent.test.js +27 -10
  410. data/webpack/scenes/ContentViews/Details/Filters/__tests__/CVRpmFilterContent.test.js +46 -23
  411. data/webpack/scenes/ContentViews/Details/Histories/ContentViewHistories.js +3 -2
  412. data/webpack/scenes/ContentViews/Details/Promote/ContentViewVersionPromote.js +5 -2
  413. data/webpack/scenes/ContentViews/Details/Repositories/ContentViewRepositories.js +161 -108
  414. data/webpack/scenes/ContentViews/Details/Repositories/__tests__/contentViewAddRemove.test.js +7 -7
  415. data/webpack/scenes/ContentViews/Details/Repositories/__tests__/contentViewRepoAdd.fixture.json +1 -0
  416. data/webpack/scenes/ContentViews/Details/Versions/BulkDelete/ActionSummary.js +58 -0
  417. data/webpack/scenes/ContentViews/Details/Versions/BulkDelete/BulkDeleteContextWrapper.js +45 -0
  418. data/webpack/scenes/ContentViews/Details/Versions/BulkDelete/BulkDeleteHelpers.js +30 -0
  419. data/webpack/scenes/ContentViews/Details/Versions/BulkDelete/BulkDeleteModal.js +56 -0
  420. data/webpack/scenes/ContentViews/Details/Versions/BulkDelete/Steps/ConfirmBulkDelete.js +126 -0
  421. data/webpack/scenes/ContentViews/Details/Versions/BulkDelete/Steps/FinishBulkDelete.js +61 -0
  422. data/webpack/scenes/ContentViews/Details/Versions/BulkDelete/Steps/ReassignActivationKeys.js +196 -0
  423. data/webpack/scenes/ContentViews/Details/Versions/BulkDelete/Steps/ReassignHosts.js +220 -0
  424. data/webpack/scenes/ContentViews/Details/Versions/BulkDelete/Steps/ReviewEnvironments.js +104 -0
  425. data/webpack/scenes/ContentViews/Details/Versions/BulkDelete/__tests__/BulkDeleteModal.test.js +122 -0
  426. data/webpack/scenes/ContentViews/Details/Versions/BulkDelete/__tests__/BulkDeleteVersions.fixtures.json +600 -0
  427. data/webpack/scenes/ContentViews/Details/Versions/BulkDelete/__tests__/contentView.fixtures.json +1504 -0
  428. data/webpack/scenes/ContentViews/Details/Versions/BulkDelete/__tests__/contentViewVersion.fixtures.json +936 -0
  429. data/webpack/scenes/ContentViews/Details/Versions/BulkDelete/__tests__/environmentPaths.fixtures.json +261 -0
  430. data/webpack/scenes/ContentViews/Details/Versions/BulkDelete/__tests__/hosts.fixtures.json +163 -0
  431. data/webpack/scenes/ContentViews/Details/Versions/BulkDelete/bulkDeleteSteps.js +79 -0
  432. data/webpack/scenes/ContentViews/Details/Versions/ContentViewVersions.js +192 -167
  433. data/webpack/scenes/ContentViews/Details/Versions/Delete/RemoveCVVersionWizard.js +2 -5
  434. data/webpack/scenes/ContentViews/Details/Versions/Delete/RemoveSteps/CVVersionDeleteFinish.js +38 -53
  435. data/webpack/scenes/ContentViews/Details/Versions/Delete/RemoveSteps/CVVersionRemoveReview.js +1 -1
  436. data/webpack/scenes/ContentViews/Details/Versions/Delete/__tests__/cvVersionRemove.test.js +6 -12
  437. data/webpack/scenes/ContentViews/Details/Versions/Delete/affectedActivationKeys.js +1 -0
  438. data/webpack/scenes/ContentViews/Details/Versions/Delete/affectedHosts.js +1 -0
  439. data/webpack/scenes/ContentViews/Details/Versions/VersionDetails/ContentViewVersionDetailConfig.js +1 -0
  440. data/webpack/scenes/ContentViews/Details/Versions/VersionDetails/ContentViewVersionDetails.js +8 -20
  441. data/webpack/scenes/ContentViews/Details/Versions/VersionDetails/ContentViewVersionDetailsHeader.js +23 -13
  442. data/webpack/scenes/ContentViews/Details/Versions/VersionDetails/ContentViewVersionDetailsTable.js +3 -0
  443. data/webpack/scenes/ContentViews/Details/Versions/VersionDetails/__tests__/ContentViewVersionDetails.fixtures.json +4 -4
  444. data/webpack/scenes/ContentViews/Details/Versions/VersionDetails/__tests__/ContentViewVersionDetails.test.js +0 -3
  445. data/webpack/scenes/ContentViews/Details/Versions/VersionDetails/__tests__/ContentViewVersionDetailsEmpty.test.js +4 -4
  446. data/webpack/scenes/ContentViews/Details/Versions/__tests__/contentViewVersions.test.js +12 -14
  447. data/webpack/scenes/ContentViews/Details/__tests__/contentViewDetails.fixtures.json +1 -0
  448. data/webpack/scenes/ContentViews/Publish/CVPublishFinish.js +96 -117
  449. data/webpack/scenes/ContentViews/Publish/PublishContentViewWizard.js +13 -19
  450. data/webpack/scenes/ContentViews/Publish/__tests__/publishContentView.test.js +9 -20
  451. data/webpack/scenes/ContentViews/Table/ContentViewsTable.js +165 -148
  452. data/webpack/scenes/ContentViews/Table/tableDataGenerator.js +2 -0
  453. data/webpack/scenes/ContentViews/components/ContentViewIcon.js +14 -3
  454. data/webpack/scenes/ContentViews/components/EnvironmentLabels.js +4 -3
  455. data/webpack/scenes/ContentViews/components/EnvironmentPaths/EnvironmentPaths.js +10 -6
  456. data/webpack/scenes/ContentViews/components/EnvironmentPaths/EnvironmentPaths.scss +6 -1
  457. data/webpack/scenes/ContentViews/components/TaskPresenter/TaskPresenter.js +40 -35
  458. data/webpack/scenes/ContentViews/expansions/RelatedCompositeContentViewsModal.js +1 -1
  459. data/webpack/scenes/ContentViews/expansions/RelatedContentViewComponentsModal.js +2 -2
  460. data/webpack/scenes/ContentViews/helpers.js +3 -0
  461. data/webpack/scenes/Hosts/ChangeContentSource/helpers.js +5 -0
  462. data/webpack/scenes/RedHatRepositories/RedHatRepositoriesPage.js +3 -3
  463. data/webpack/scenes/RedHatRepositories/components/EnabledRepository/EnabledRepository.js +2 -1
  464. data/webpack/scenes/RedHatRepositories/components/EnabledRepository/__tests__/EnabledRepository.test.js +2 -0
  465. data/webpack/scenes/RedHatRepositories/components/Search.js +4 -4
  466. data/webpack/scenes/SmartProxy/SmartProxyContentActions.js +9 -2
  467. data/webpack/scenes/SmartProxy/SmartProxyContentConstants.js +1 -1
  468. data/webpack/scenes/SmartProxy/SmartProxyContentSelectors.js +10 -1
  469. data/webpack/scenes/Subscriptions/Manifest/CdnConfigurationTab/CdnConfigurationConstants.js +3 -3
  470. data/webpack/scenes/Subscriptions/Manifest/CdnConfigurationTab/CdnTypeForm.js +2 -0
  471. data/webpack/scenes/Subscriptions/Manifest/CdnConfigurationTab/{AirGappedTypeForm.js → ExportSyncForm.js} +7 -6
  472. data/webpack/scenes/Subscriptions/Manifest/CdnConfigurationTab/{UpstreamServerTypeForm.js → NetworkSyncForm.js} +15 -7
  473. data/webpack/scenes/Subscriptions/Manifest/CdnConfigurationTab/__tests__/{AirGappedTypeForm.test.js → ExportSyncForm.test.js} +4 -4
  474. data/webpack/scenes/Subscriptions/Manifest/CdnConfigurationTab/__tests__/{UpstreamServerTypeForm.test.js → NetworkSyncForm.test.js} +8 -8
  475. data/webpack/scenes/Subscriptions/Manifest/CdnConfigurationTab/index.js +11 -11
  476. data/webpack/scenes/Subscriptions/SubscriptionConstants.js +1 -0
  477. data/webpack/scenes/Subscriptions/SubscriptionsPage.js +8 -7
  478. data/webpack/scenes/Tasks/TaskActions.js +6 -0
  479. data/webpack/scenes/Tasks/TaskSelectors.js +11 -0
  480. data/webpack/scenes/Tasks/helpers.js +60 -5
  481. data/webpack/utils/helpers.js +2 -0
  482. metadata +183 -38
  483. data/app/models/setting/content.rb +0 -201
  484. data/db/seeds.d/107-enable_dynflow.rb +0 -8
  485. data/webpack/components/extensions/HostDetails/Cards/ContentViewDetailsCard.js +0 -96
  486. data/webpack/components/extensions/HostDetails/Tabs/ModuleStreamsTab/__tests__/moduleStreamsTab.test.js +0 -108
  487. data/webpack/components/extensions/HostDetails/Tabs/TracesTab/EnableTracerEmptyState.js +0 -42
  488. data/webpack/scenes/ContentViews/Details/DetailsContainer.js +0 -36
@@ -1,7 +1,8 @@
1
1
  require 'katello/permission_creator'
2
- require 'katello/repository_types.rb'
3
- require 'katello/host_status_manager.rb'
2
+ require 'katello/repository_types'
3
+ require 'katello/host_status_manager'
4
4
  # rubocop:disable Metrics/BlockLength
5
+
5
6
  Foreman::Plugin.register :katello do
6
7
  requires_foreman '>= 2.6'
7
8
 
@@ -194,6 +195,15 @@ Foreman::Plugin.register :katello do
194
195
  :after => :content_hosts,
195
196
  :turbolinks => false
196
197
 
198
+ menu :labs_menu,
199
+ :alternate_content_sources,
200
+ :url => '/labs/alternate_content_sources',
201
+ :url_hash => {:controller => 'katello/api/v2/alternate_content_sources_controller',
202
+ :action => 'index'},
203
+ :caption => N_('Alternate Content Sources'),
204
+ :parent => :lab_features_menu,
205
+ :turbolinks => false
206
+
197
207
  extend_template_helpers Katello::KatelloUrlsHelper
198
208
  extend_template_helpers Katello::Concerns::BaseTemplateScopeExtensions
199
209
 
@@ -216,7 +226,7 @@ Foreman::Plugin.register :katello do
216
226
  :content_facet_attributes => [:content_view_id, :lifecycle_environment_id, :content_source_id,
217
227
  :host, :kickstart_repository_id],
218
228
  :subscription_facet_attributes => [:release_version, :autoheal, :purpose_usage, :purpose_role, :service_level, :host,
219
- {:installed_products => [:product_id, :product_name, :arch, :version]}, :facts, :hypervisor_guest_uuids => [], :purpose_addon_ids => []]
229
+ {:installed_products => [:product_id, :product_name, :arch, :version]}, :facts, {:hypervisor_guest_uuids => []}, {:purpose_addon_ids => []}]
220
230
  parameter_filter ::Hostgroup, :content_view_id, :lifecycle_environment_id, :content_source_id,
221
231
  :kickstart_repository_id
222
232
  parameter_filter Organization, :label, :service_level
@@ -302,6 +312,370 @@ Foreman::Plugin.register :katello do
302
312
  multiple_actions_provider :hosts_change_content_source
303
313
  end
304
314
 
315
+ settings do
316
+ category :katello, N_('Content') do
317
+ http_proxy_select = [{
318
+ name: _("HTTP Proxies"),
319
+ class: 'HttpProxy',
320
+ scope: 'all',
321
+ value_method: 'name',
322
+ text_method: 'name_and_url'
323
+ }]
324
+ download_policies = proc { hashify_parameters(::Katello::RootRepository::DOWNLOAD_POLICIES) }
325
+ proxy_download_policies = proc { hashify_parameters(::SmartProxy::DOWNLOAD_POLICIES) }
326
+
327
+ def hashify_parameters(parameters)
328
+ Hash[parameters.map { |p| [p, p] }]
329
+ end
330
+
331
+ def katello_template_setting_values(name)
332
+ templates = ProvisioningTemplate.where(:template_kind => TemplateKind.where(:name => name))
333
+ templates.each_with_object({}) { |tmpl, hash| hash[tmpl.name] = tmpl.name }
334
+ end
335
+
336
+ setting 'content_default_http_proxy',
337
+ type: :string,
338
+ default: nil,
339
+ full_name: N_('Default HTTP Proxy'),
340
+ description: N_("Default HTTP proxy for syncing content"),
341
+ collection: proc { http_proxy_select },
342
+ include_blank: N_("no global default")
343
+
344
+ setting 'cdn_ssl_version',
345
+ type: :string,
346
+ default: nil,
347
+ full_name: N_('CDN SSL version'),
348
+ description: N_("SSL version used to communicate with the CDN"),
349
+ collection: proc { hashify_parameters(Katello::Resources::CDN::SUPPORTED_SSL_VERSIONS) }
350
+
351
+ setting 'katello_default_provision',
352
+ type: :string,
353
+ default: 'Kickstart default',
354
+ full_name: N_('Default synced OS provisioning template'),
355
+ description: N_("Default provisioning template for Operating Systems created from synced content"),
356
+ collection: proc { katello_template_setting_values("provision") }
357
+
358
+ setting 'katello_default_finish',
359
+ type: :string,
360
+ default: 'Kickstart default finish',
361
+ full_name: N_('Default synced OS finish template'),
362
+ description: N_("Default finish template for new Operating Systems created from synced content"),
363
+ collection: proc { katello_template_setting_values("finish") }
364
+
365
+ setting 'katello_default_user_data',
366
+ type: :string,
367
+ default: 'Kickstart default user data',
368
+ full_name: N_('Default synced OS user-data'),
369
+ description: N_("Default user data for new Operating Systems created from synced content"),
370
+ collection: proc { katello_template_setting_values("user_data") }
371
+
372
+ setting 'katello_default_PXELinux',
373
+ type: :string,
374
+ default: 'Kickstart default PXELinux',
375
+ full_name: N_('Default synced OS PXELinux template'),
376
+ description: N_("Default PXELinux template for new Operating Systems created from synced content"),
377
+ collection: proc { katello_template_setting_values("PXELinux") }
378
+
379
+ setting 'katello_default_PXEGrub',
380
+ type: :string,
381
+ default: 'Kickstart default PXEGrub',
382
+ full_name: N_('Default synced OS PXEGrub template'),
383
+ description: N_("Default PXEGrub template for new Operating Systems created from synced content"),
384
+ collection: proc { katello_template_setting_values("PXEGrub") }
385
+
386
+ setting 'katello_default_PXEGrub2',
387
+ type: :string,
388
+ default: 'Kickstart default PXEGrub2',
389
+ full_name: N_('Default synced OS PXEGrub2 template'),
390
+ description: N_("Default PXEGrub2 template for new Operating Systems created from synced content"),
391
+ collection: proc { katello_template_setting_values("PXEGrub2") }
392
+
393
+ setting 'katello_default_iPXE',
394
+ type: :string,
395
+ default: 'Kickstart default iPXE',
396
+ full_name: N_('Default synced OS iPXE template'),
397
+ description: N_("Default iPXE template for new Operating Systems created from synced content"),
398
+ collection: proc { katello_template_setting_values("iPXE") }
399
+
400
+ setting 'katello_default_ptable',
401
+ type: :string,
402
+ default: 'Kickstart default',
403
+ full_name: N_('Default synced OS partition table'),
404
+ description: N_("Default partitioning table for new Operating Systems created from synced content"),
405
+ collection: proc { Hash[Template.all.where(:type => "Ptable").map { |tmp| [tmp[:name], tmp[:name]] }] }
406
+
407
+ setting 'katello_default_kexec',
408
+ type: :string,
409
+ default: 'Discovery Red Hat kexec',
410
+ full_name: N_('Default synced OS kexec template'),
411
+ description: N_("Default kexec template for new Operating Systems created from synced content"),
412
+ collection: proc { katello_template_setting_values("kexec") }
413
+
414
+ setting 'katello_default_atomic_provision',
415
+ type: :string,
416
+ default: 'Atomic Kickstart default',
417
+ full_name: N_('Default synced OS Atomic template'),
418
+ description: N_("Default provisioning template for new Atomic Operating Systems created from synced content"),
419
+ collection: proc { katello_template_setting_values("provision") }
420
+
421
+ setting 'manifest_refresh_timeout',
422
+ type: :integer,
423
+ default: 60 * 20,
424
+ full_name: N_('Timeout when refreshing a manifest (in seconds)'),
425
+ description: N_("Manifest refresh timeout")
426
+
427
+ setting 'content_action_accept_timeout',
428
+ type: :integer,
429
+ default: 20,
430
+ full_name: N_('Accept action timeout'),
431
+ description: N_("Time in seconds to wait for a host to pick up a katello-agent action")
432
+
433
+ setting 'content_action_finish_timeout',
434
+ type: :integer,
435
+ default: 3600,
436
+ full_name: N_('Finish action timeout'),
437
+ description: N_("Time in seconds to wait for a host to finish a katello-agent action")
438
+
439
+ setting 'subscription_connection_enabled',
440
+ type: :boolean,
441
+ default: true,
442
+ full_name: N_('Subscription connection enabled'),
443
+ description: N_("Can communicate with the Red Hat Portal for subscriptions.")
444
+
445
+ setting 'errata_status_installable',
446
+ type: :boolean,
447
+ default: false,
448
+ full_name: N_('Installable errata from content view'),
449
+ description: N_("Calculate errata host status based only on errata in a host's content view and lifecycle environment")
450
+
451
+ setting 'restrict_composite_view',
452
+ type: :boolean,
453
+ default: false,
454
+ full_name: N_('Restrict composite content view promotion'),
455
+ description: N_("If this is enabled, a composite content view may not be published or promoted unless the component content view versions that it includes exist in the target environment.")
456
+
457
+ setting 'check_services_before_actions',
458
+ type: :boolean,
459
+ default: true,
460
+ full_name: N_('Check services before actions'),
461
+ description: N_("Whether or not to check the status of backend services such as pulp and candlepin prior to performing some actions.")
462
+
463
+ setting 'foreman_proxy_content_batch_size',
464
+ type: :integer,
465
+ default: 100,
466
+ full_name: N_('Batch size to sync repositories in.'),
467
+ description: N_("How many repositories should be synced concurrently on the capsule. A smaller number may lead to longer sync times. A larger number will increase dynflow load.")
468
+
469
+ setting 'foreman_proxy_content_auto_sync',
470
+ type: :boolean,
471
+ default: true,
472
+ full_name: N_('Sync Smart Proxies after content view promotion'),
473
+ description: N_("Whether or not to auto sync the Smart Proxies after a content view promotion.")
474
+
475
+ setting 'download_rate_limit',
476
+ type: :integer,
477
+ default: 0,
478
+ full_name: N_('Download rate limit'),
479
+ description: N_("Maximum download rate when syncing a repository (requests per second). Use 0 for no limit.")
480
+
481
+ setting 'default_download_policy',
482
+ type: :string,
483
+ default: "immediate",
484
+ full_name: N_('Default Custom Repository download policy'),
485
+ description: N_("Default download policy for custom repositories (either 'immediate' or 'on_demand')"),
486
+ collection: download_policies
487
+
488
+ setting 'default_redhat_download_policy',
489
+ type: :string,
490
+ default: "on_demand",
491
+ full_name: N_('Default Red Hat Repository download policy'),
492
+ description: N_("Default download policy for enabled Red Hat repositories (either 'immediate' or 'on_demand')"),
493
+ collection: download_policies
494
+
495
+ setting 'default_proxy_download_policy',
496
+ type: :string,
497
+ default: "on_demand",
498
+ full_name: N_('Default Smart Proxy download policy'),
499
+ description: N_("Default download policy for Smart Proxy syncs (either 'inherit', immediate', or 'on_demand')"),
500
+ collection: proxy_download_policies
501
+
502
+ setting 'pulp_docker_registry_port',
503
+ type: :integer,
504
+ default: 5000,
505
+ full_name: N_('Pulp Docker registry port'),
506
+ description: N_("The port used by Pulp Crane to provide Docker Registries")
507
+
508
+ setting 'pulp_export_destination',
509
+ type: :string,
510
+ default: "/var/lib/pulp/katello-export",
511
+ full_name: N_('Pulp export destination filepath'),
512
+ description: N_("On-disk location for exported repositories")
513
+
514
+ setting 'pulpcore_export_destination',
515
+ type: :string,
516
+ default: "/var/lib/pulp/exports",
517
+ full_name: N_('Pulp 3 export destination filepath'),
518
+ description: N_("On-disk location for pulp 3 exported repositories")
519
+
520
+ setting 'pulp_client_key',
521
+ type: :string,
522
+ default: "/etc/pki/katello/private/pulp-client.key",
523
+ full_name: N_('Pulp client key'),
524
+ description: N_("Path for ssl key used for pulp server auth")
525
+
526
+ setting 'pulp_client_cert',
527
+ type: :string,
528
+ default: "/etc/pki/katello/certs/pulp-client.crt",
529
+ full_name: N_('Pulp client cert'),
530
+ description: N_("Path for ssl cert used for pulp server auth")
531
+
532
+ setting 'sync_total_timeout',
533
+ type: :integer,
534
+ default: 3600,
535
+ full_name: N_('Sync Total Timeout'),
536
+ description: N_("The maximum number of second that Pulp can take to do a single sync operation, e.g., download a single metadata file.")
537
+
538
+ setting 'sync_connect_timeout_v2',
539
+ type: :integer,
540
+ default: 60,
541
+ full_name: N_('Sync Connect Timeout'),
542
+ description: N_("The maximum number of seconds for Pulp to establish a new connection or for waiting for a free connection from a pool if pool connection limits are exceeded.")
543
+
544
+ setting 'sync_sock_connect_timeout',
545
+ type: :integer,
546
+ default: 60,
547
+ full_name: N_('Sync Sock Connect Timeout'),
548
+ description: N_("The maximum number of seconds for Pulp to connect to a peer for a new connection not given from a pool.")
549
+
550
+ setting 'sync_sock_read_timeout',
551
+ type: :integer,
552
+ default: 3600,
553
+ full_name: N_('Sync Sock Read Timeout'),
554
+ description: N_("The maximum number of seconds that Pulp can take to download a file, not counting connection time.")
555
+
556
+ setting 'remote_execution_by_default',
557
+ type: :boolean,
558
+ default: false,
559
+ full_name: N_('Use remote execution by default'),
560
+ description: N_("If this is enabled, remote execution is used instead of katello-agent for remote actions")
561
+
562
+ setting 'unregister_delete_host',
563
+ type: :boolean,
564
+ default: false,
565
+ full_name: N_('Delete Host upon unregister'),
566
+ description: N_("When unregistering a host via subscription-manager, also delete the host record. Managed resources linked to host such as virtual machines and DNS records may also be deleted.")
567
+
568
+ setting 'register_hostname_fact',
569
+ type: :string,
570
+ default: '',
571
+ full_name: N_('Subscription manager name registration fact'),
572
+ description: N_("When registering a host via subscription-manager, force use the specified fact (in the form of 'fact.fact')")
573
+
574
+ setting 'register_hostname_fact_strict_match',
575
+ type: :boolean,
576
+ default: false,
577
+ full_name: N_('Subscription manager name registration fact strict matching'),
578
+ description: N_('If this is enabled, and register_hostname_fact is set and provided, registration will look for a new host by name only using that fact, and will skip all hostname matching')
579
+
580
+ setting 'default_location_subscribed_hosts',
581
+ type: :string,
582
+ default: nil,
583
+ full_name: N_('Default location for subscribed hosts'),
584
+ description: N_('Default Location where new subscribed hosts will put upon registration'),
585
+ collection: proc { Hash[Location.unscoped.all.map { |loc| [loc[:title], loc[:title]] }] }
586
+
587
+ setting 'expire_soon_days',
588
+ type: :integer,
589
+ default: 120,
590
+ full_name: N_('Expire soon days'),
591
+ description: N_('The number of days remaining in a subscription before you will be reminded about renewing it.')
592
+
593
+ setting 'content_view_solve_dependencies',
594
+ type: :boolean,
595
+ default: false,
596
+ full_name: N_('content view Dependency Solving Default'),
597
+ description: N_('The default dependency solving value for new content views.')
598
+
599
+ setting 'host_dmi_uuid_duplicates',
600
+ type: :array,
601
+ default: [],
602
+ full_name: N_('Host Duplicate DMI UUIDs'),
603
+ description: N_("If hosts fail to register because of duplicate DMI UUIDs, add their comma-separated values here. Subsequent registrations will generate a unique DMI UUID for the affected hosts.")
604
+
605
+ setting 'host_profile_assume',
606
+ type: :boolean,
607
+ default: true,
608
+ full_name: N_('Host Profile Assume'),
609
+ description: N_("Allow new host registrations to assume registered profiles with matching hostname as long as the registering DMI UUID is not used by another host.")
610
+
611
+ setting 'host_profile_assume_build_can_change',
612
+ type: :boolean,
613
+ default: false,
614
+ full_name: N_('Host Profile Can Change In Build'),
615
+ description: N_("Allow host registrations to bypass 'Host Profile Assume' as long as the host is in build mode.")
616
+
617
+ setting 'host_re_register_build_only',
618
+ type: :boolean,
619
+ default: false,
620
+ full_name: N_('Host Can Re-Register Only In Build'),
621
+ description: N_("Allow hosts to re-register themselves only when they are in build mode")
622
+
623
+ setting 'host_tasks_workers_pool_size',
624
+ type: :integer,
625
+ default: 5,
626
+ full_name: N_('Host Tasks Workers Pool Size'),
627
+ description: N_("Amount of workers in the pool to handle the execution of host-related tasks. When set to 0, the default queue will be used instead. Restart of the dynflowd/foreman-tasks service is required.")
628
+
629
+ setting 'applicability_batch_size',
630
+ type: :integer,
631
+ default: 50,
632
+ full_name: N_('Applicability Batch Size'),
633
+ description: N_("Number of host applicability calculations to process per task.")
634
+
635
+ setting 'autosearch_while_typing',
636
+ type: :boolean,
637
+ default: true,
638
+ full_name: N_('Autosearch'),
639
+ description: N_('For pages that support it, automatically perform search while typing in search input.')
640
+
641
+ setting 'autosearch_delay',
642
+ type: :integer,
643
+ default: 500,
644
+ full_name: N_('Autosearch delay'),
645
+ description: N_('If Autosearch is enabled, delay in milliseconds before executing searches while typing.')
646
+
647
+ setting 'bulk_load_size',
648
+ type: :integer,
649
+ default: 2000,
650
+ full_name: N_('Pulp bulk load size'),
651
+ description: N_('The number of items fetched from a single paged Pulp API call.')
652
+
653
+ setting 'upload_profiles_without_dynflow',
654
+ type: :boolean,
655
+ default: true,
656
+ full_name: N_('Upload profiles without Dynflow'),
657
+ description: N_('Allow Katello to update host installed packages, enabled repos, and module inventory directly instead of wrapped in Dynflow tasks (try turning off if Puma processes are using too much memory)')
658
+
659
+ setting 'orphan_protection_time',
660
+ type: :integer,
661
+ default: 1440,
662
+ full_name: N_('Orphaned Content Protection Time'),
663
+ description: N_('Time in minutes to consider orphan content as orphaned.')
664
+
665
+ setting 'remote_execution_prefer_registered_through_proxy',
666
+ type: :boolean,
667
+ default: false,
668
+ full_name: N_('Prefer registered through proxy for remote execution'),
669
+ description: N_('Prefer using a proxy to which a host is registered when using remote execution')
670
+
671
+ setting 'delete_repo_across_cv',
672
+ type: :boolean,
673
+ default: true,
674
+ full_name: N_('Allow deleting repositories in published content views'),
675
+ description: N_("If this is enabled, repositories can be deleted even when they belong to published content views. The deleted repository will be removed from all content view versions.")
676
+ end
677
+ end
678
+
305
679
  if Katello.with_remote_execution?
306
680
  RemoteExecutionFeature.register(:katello_package_install, N_("Katello: Install Package"), :description => N_("Install package via Katello interface"), :provided_inputs => ['package'])
307
681
  RemoteExecutionFeature.register(:katello_package_install_by_search, N_("Katello: Install packages by search query"), :description => N_("Install packages via Katello interface"), :provided_inputs => ['Package search query'])
@@ -0,0 +1,15 @@
1
+ namespace :katello do
2
+ desc 'Refresh all alternate content sources'
3
+ task :refresh_alternate_content_sources => ["dynflow:client"] do
4
+ User.current = User.anonymous_admin
5
+ alternate_content_sources = ::Katello::AlternateContentSource.all
6
+ if alternate_content_sources.present?
7
+ ::ForemanTasks.async_task(::Actions::BulkAction,
8
+ ::Actions::Katello::AlternateContentSource::Refresh,
9
+ alternate_content_sources)
10
+ puts _("Alternate content source refreshing started in the background.")
11
+ else
12
+ puts _("No alternate content sources to refresh.")
13
+ end
14
+ end
15
+ end
@@ -0,0 +1,67 @@
1
+ namespace :katello do
2
+ namespace :reset_backends do
3
+ # Switch to foreman-maintain when Pulp3 services are added to it
4
+ service_stop = "sudo /usr/bin/systemctl status %s > /dev/null && sudo /usr/bin/systemctl stop %s"
5
+ service_start = "sudo /usr/bin/systemctl start %s"
6
+
7
+ task :pulp do
8
+ SERVICES = %w(rh-redis5-redis pulpcore-api pulpcore-content).freeze
9
+
10
+ puts "\e[33mStarting Pulp3 Reset\e[0m\n\n"
11
+
12
+ SERVICES.each { |s| system(service_stop.gsub("%s", s)) }
13
+ system("sudo systemctl stop 'pulpcore-worker@*' --all")
14
+ system("sudo runuser - postgres -c 'dropdb pulpcore'")
15
+ system("sudo runuser - postgres -c 'createdb pulpcore'")
16
+
17
+ Dir.chdir("/tmp") do
18
+ fail "\e[31mCannot migrate Pulp3 database\e[0m\n\n" unless system("sudo -u pulp PULP_SETTINGS='/etc/pulp/settings.py' DJANGO_SETTINGS_MODULE='pulpcore.app.settings' pulpcore-manager migrate --no-input")
19
+ puts "\e[33mRecreating Admin User\e[0m\n\n"
20
+ system("sudo -u pulp PULP_SETTINGS='/etc/pulp/settings.py' DJANGO_SETTINGS_MODULE='pulpcore.app.settings' pulpcore-manager reset-admin-password --password password")
21
+ end
22
+
23
+ SERVICES.each { |s| system(service_start.gsub("%s", s)) }
24
+ system("sudo systemctl start 'pulpcore-worker@*' --all")
25
+ puts "\e[32mPulp3 Database Reset Complete\e[0m\n\n"
26
+ end
27
+
28
+ task :candlepin do
29
+ puts "\e[33mStarting Candlepin Reset\e[0m\n\n"
30
+
31
+ system(service_stop.gsub("%s", 'tomcat'))
32
+ system("sudo runuser - postgres -c 'dropdb candlepin'")
33
+ system("sudo runuser - postgres -c 'createdb candlepin'")
34
+ system("sudo /usr/share/candlepin/cpdb --create --schema-only")
35
+ system("sudo /usr/share/candlepin/cpdb --update")
36
+ system(service_start.gsub("%s", 'tomcat'))
37
+ puts "\e[32mCandlepin Database Reset Complete\e[0m\n\n"
38
+ end
39
+ end
40
+
41
+ task :reset_default_smart_proxy do
42
+ User.current = User.anonymous_admin
43
+ hostname = Socket.gethostname.chomp
44
+ SmartProxy.where(name: hostname, url: "https://#{hostname}:9090").first_or_create!
45
+ end
46
+
47
+ desc 'Resets the Foreman/Katello development environment. WARNING: This will destroy all your Foreman, Katello and Pulp data.'
48
+ task :reset_backends do
49
+ Rake::Task['katello:reset_backends:candlepin'].invoke
50
+ Rake::Task['katello:reset_backends:pulp'].invoke
51
+ end
52
+
53
+ task :reset => ['environment'] do
54
+ ENV['SEED_ADMIN_PASSWORD'] ||= 'changeme'
55
+ ENV['SEED_ORGANIZATION'] ||= 'Default Organization'
56
+ ENV['SEED_LOCATION'] ||= 'Default Location'
57
+ Rake::Task['katello:reset_backends'].invoke
58
+ Rake::Task['db:drop'].invoke
59
+ Rake::Task['db:create'].invoke
60
+
61
+ # Otherwise migration and seeds fail because they require a reloaded environment
62
+ system('rake db:migrate')
63
+ system('rake db:seed')
64
+ Rake::Task['katello:reset_default_smart_proxy'].invoke
65
+ puts "\e[32mReset Done\e[0m\n"
66
+ end
67
+ end
@@ -3,7 +3,6 @@ require File.expand_path("../engine", File.dirname(__FILE__))
3
3
  namespace :katello do
4
4
  desc "Sets the content default HTTP proxy to an existing HTTP proxy based on supplied URL."
5
5
  task :update_default_http_proxy => :environment do
6
- setting = ::Setting.find_by(name: 'content_default_http_proxy')
7
6
  options = {}
8
7
  o = OptionParser.new
9
8
  o.banner = "Usage: rake katello:update_content_default_http_proxy -- --name HTTP_PROXY_NAME --url HTTP_PROXY_URL [--user HTTP_PROXY_USER] [--password HTTP_PROXY_PASSWORD]"
@@ -49,7 +48,7 @@ namespace :katello do
49
48
  sanitized_url = uri.to_s
50
49
 
51
50
  if http_proxy
52
- setting.update_attribute(:value, http_proxy.name)
51
+ Setting['content_default_http_proxy'] = http_proxy.name
53
52
  http_proxy.update!(url: sanitized_url,
54
53
  username: options[:username], password: options[:password])
55
54
  puts "Content default HTTP proxy set to #{http_proxy.name_and_url}."
@@ -59,7 +58,7 @@ namespace :katello do
59
58
  organizations: Organization.all,
60
59
  locations: Location.all)
61
60
  if new_proxy.save!
62
- setting.update_attribute(:value, new_proxy.name)
61
+ Setting['content_default_http_proxy'] = new_proxy.name
63
62
  puts "Default content HTTP proxy set to #{new_proxy.name_and_url}."
64
63
  end
65
64
  end
@@ -1,3 +1,3 @@
1
1
  module Katello
2
- VERSION = "4.4.1".freeze
2
+ VERSION = "4.5.0".freeze
3
3
  end
@@ -1,46 +1,52 @@
1
1
  # Autogenerated!
2
- _("Import")
3
- _("Export Library")
4
- _("Export")
5
- _("Copy version units to library")
6
- _("Create Import History")
7
- _("Create Export History")
8
- _("Run Sync Plan:")
2
+ _("Package Profile Update")
3
+ _("Combined Profile Update")
4
+ _("Destroy")
5
+ _("Product Create")
6
+ _("Delete Product")
7
+ _("Reindex subscriptions")
9
8
  _("Update")
10
- _("Enable")
11
- _("Disable")
12
- _("Verify checksum")
13
- _("Create Package Group")
14
- _("Upload into")
15
- _("Update redhat repository")
16
- _("Update http proxy details")
17
- _("Update content urls")
18
- _("Synchronize")
19
- _("Remove Content")
20
- _("Instance update")
21
- _("Index package groups")
22
- _("Index module streams")
23
- _("Index errata")
24
- _("Index content")
25
- _("Filtered index content")
26
- _("Fetch pxe files")
27
- _("Errata mail")
28
- _("Discover")
29
- _("Delete Package Group")
9
+ _("Update http proxy")
30
10
  _("Delete")
31
11
  _("Create")
32
- _("Update http proxy")
33
- _("Reindex subscriptions")
34
- _("Delete Product")
35
- _("Product Create")
36
- _("Destroy")
37
- _("Combined Profile Update")
12
+ _("Delete Package Group")
13
+ _("Discover")
14
+ _("Errata mail")
15
+ _("Fetch pxe files")
16
+ _("Filtered index content")
17
+ _("Upload into")
18
+ _("Index content")
19
+ _("Index errata")
20
+ _("Index module streams")
21
+ _("Index package groups")
22
+ _("Instance update")
23
+ _("Remove Content")
24
+ _("Synchronize")
25
+ _("Update content urls")
26
+ _("Update http proxy details")
27
+ _("Update redhat repository")
28
+ _("Create Package Group")
29
+ _("Verify checksum")
30
+ _("Disable")
31
+ _("Enable")
32
+ _("Run Sync Plan:")
33
+ _("Create Export History")
34
+ _("Create Import History")
35
+ _("Copy version units to library")
36
+ _("Export")
37
+ _("Export Library")
38
+ _("Export Repository")
39
+ _("Import")
40
+ _("Abstract")
41
+ _("Remote action:")
38
42
  _("Updating System Purpose for host")
39
43
  _("Update release version for host")
40
44
  _("Update for host")
41
45
  _("Update Content Overrides")
42
- _("Package Profile Update")
43
46
  _("Remove subscriptions")
47
+ _("Import Default Content View")
48
+ _("Import Content View Version")
49
+ _("Remove Version")
44
50
  _("Hypervisors update")
45
51
  _("Hypervisors")
46
52
  _("Install Applicable Errata")
@@ -51,9 +57,7 @@ _("Publish Lifecycle Environment Repositories")
51
57
  _("Delete Lifecycle Environment")
52
58
  _("Republish Version Repositories")
53
59
  _("Incremental Update")
54
- _("Import Default Content View")
55
- _("Import Content View Version")
56
- _("Remove Version")
60
+ _("Import Repository")
57
61
  _("Remove from Environment")
58
62
  _("Remove Versions and Associations")
59
63
  _("Publish")
@@ -66,10 +70,12 @@ _("Synchronize smart proxy")
66
70
  _("Generate repository applicability")
67
71
  _("Bulk generate applicability for hosts")
68
72
  _("Generate host applicability")
73
+ _("Update Alternate Content Source")
74
+ _("Destroy Alternate Content Source")
75
+ _("Create Alternate Content Source")
69
76
  _("Agent action")
70
- _("Abstract async task")
71
77
  _("Delete Activation Key")
72
- _("Action with sub plans")
73
- _("Import facts")
78
+ _("Abstract async task")
74
79
  _("Import Puppet classes")
75
- _("Remote action:")
80
+ _("Import facts")
81
+ _("Action with sub plans")
Binary file