katello 4.9.2 → 4.10.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.
- checksums.yaml +4 -4
- data/README.md +4 -7
- data/app/assets/javascripts/katello/locale/bn/katello.js +8967 -1
- data/app/assets/javascripts/katello/locale/bn_IN/katello.js +8967 -0
- data/app/assets/javascripts/katello/locale/ca/katello.js +8967 -0
- data/app/assets/javascripts/katello/locale/cs/katello.js +8967 -1
- data/app/assets/javascripts/katello/locale/cs_CZ/katello.js +8969 -0
- data/app/assets/javascripts/katello/locale/de/katello.js +8991 -1
- data/app/assets/javascripts/katello/locale/de_AT/katello.js +8966 -0
- data/app/assets/javascripts/katello/locale/de_DE/katello.js +8967 -0
- data/app/assets/javascripts/katello/locale/el/katello.js +8967 -0
- data/app/assets/javascripts/katello/locale/en/katello.js +8967 -1
- data/app/assets/javascripts/katello/locale/en_GB/katello.js +8967 -0
- data/app/assets/javascripts/katello/locale/en_US/katello.js +8966 -0
- data/app/assets/javascripts/katello/locale/es/katello.js +8984 -1
- data/app/assets/javascripts/katello/locale/et_EE/katello.js +8966 -0
- data/app/assets/javascripts/katello/locale/fr/katello.js +9008 -1
- data/app/assets/javascripts/katello/locale/gl/katello.js +8967 -0
- data/app/assets/javascripts/katello/locale/gu/katello.js +8967 -1
- data/app/assets/javascripts/katello/locale/he_IL/katello.js +8967 -0
- data/app/assets/javascripts/katello/locale/hi/katello.js +8967 -1
- data/app/assets/javascripts/katello/locale/id/katello.js +8966 -0
- data/app/assets/javascripts/katello/locale/it/katello.js +8974 -1
- data/app/assets/javascripts/katello/locale/ja/katello.js +9004 -1
- data/app/assets/javascripts/katello/locale/ka/katello.js +8976 -1
- data/app/assets/javascripts/katello/locale/kn/katello.js +8967 -1
- data/app/assets/javascripts/katello/locale/ko/katello.js +8972 -1
- data/app/assets/javascripts/katello/locale/locale/katello.js +3070 -1
- data/app/assets/javascripts/katello/locale/ml_IN/katello.js +8966 -0
- data/app/assets/javascripts/katello/locale/mr/katello.js +8967 -1
- data/app/assets/javascripts/katello/locale/nl_NL/katello.js +8967 -0
- data/app/assets/javascripts/katello/locale/or/katello.js +8967 -1
- data/app/assets/javascripts/katello/locale/pa/katello.js +8967 -1
- data/app/assets/javascripts/katello/locale/pl/katello.js +8967 -0
- data/app/assets/javascripts/katello/locale/pl_PL/katello.js +8966 -0
- data/app/assets/javascripts/katello/locale/pt/katello.js +8967 -1
- data/app/assets/javascripts/katello/locale/pt_BR/katello.js +8984 -1
- data/app/assets/javascripts/katello/locale/ro/katello.js +8966 -0
- data/app/assets/javascripts/katello/locale/ro_RO/katello.js +8966 -0
- data/app/assets/javascripts/katello/locale/ru/katello.js +8973 -1
- data/app/assets/javascripts/katello/locale/sl/katello.js +8967 -0
- data/app/assets/javascripts/katello/locale/sv_SE/katello.js +8967 -0
- data/app/assets/javascripts/katello/locale/ta/katello.js +8967 -1
- data/app/assets/javascripts/katello/locale/ta_IN/katello.js +8967 -0
- data/app/assets/javascripts/katello/locale/te/katello.js +8967 -1
- data/app/assets/javascripts/katello/locale/tr/katello.js +8967 -0
- data/app/assets/javascripts/katello/locale/vi/katello.js +8966 -0
- data/app/assets/javascripts/katello/locale/vi_VN/katello.js +8966 -0
- data/app/assets/javascripts/katello/locale/zh/katello.js +8966 -0
- data/app/assets/javascripts/katello/locale/zh_CN/katello.js +9004 -1
- data/app/assets/javascripts/katello/locale/zh_TW/katello.js +8972 -1
- data/app/controllers/katello/api/rhsm/candlepin_proxies_controller.rb +1 -1
- data/app/controllers/katello/api/v2/alternate_content_sources_bulk_actions_controller.rb +22 -1
- data/app/controllers/katello/api/v2/api_controller.rb +0 -15
- data/app/controllers/katello/api/v2/content_view_versions_controller.rb +13 -4
- data/app/controllers/katello/api/v2/host_errata_controller.rb +0 -12
- data/app/controllers/katello/api/v2/host_packages_controller.rb +0 -55
- data/app/controllers/katello/api/v2/hosts_bulk_actions_controller.rb +0 -77
- data/app/controllers/katello/api/v2/organizations_controller.rb +2 -1
- data/app/controllers/katello/api/v2/repositories_controller.rb +6 -10
- data/app/controllers/katello/api/v2/sync_controller.rb +0 -1
- data/app/controllers/katello/concerns/api/api_controller.rb +0 -10
- data/app/controllers/katello/concerns/hosts_controller_extensions.rb +1 -1
- data/app/lib/actions/katello/alternate_content_source/update.rb +1 -1
- data/app/lib/actions/katello/content_view/capsule_sync.rb +1 -1
- data/app/lib/actions/katello/content_view/incremental_updates.rb +3 -9
- data/app/lib/actions/katello/content_view_version/republish_repositories.rb +8 -2
- data/app/lib/actions/katello/repository/capsule_sync.rb +1 -1
- data/app/lib/actions/katello/repository/update_metadata_sync.rb +1 -1
- data/app/lib/katello/concerns/base_template_scope_extensions.rb +4 -9
- data/app/lib/katello/resources/cdn.rb +4 -0
- data/app/lib/katello/validators/alternate_content_source_products_validator.rb +1 -1
- data/app/models/katello/cdn_configuration.rb +4 -0
- data/app/models/katello/concerns/host_managed_extensions.rb +2 -1
- data/app/models/katello/content_view.rb +5 -1
- data/app/models/katello/content_view_component.rb +1 -1
- data/app/models/katello/content_view_version.rb +4 -0
- data/app/models/katello/host/content_facet.rb +4 -5
- data/app/models/katello/ping.rb +0 -19
- data/app/models/katello/repository.rb +5 -1
- data/app/models/katello/root_repository.rb +2 -8
- data/app/services/katello/applicability/applicable_content_helper.rb +2 -2
- data/app/services/katello/registration_manager.rb +2 -12
- data/app/views/foreman/job_templates/configure_host_for_new_content_source.erb +25 -0
- data/app/views/katello/api/v2/capsule_content/sync_status.json.rabl +1 -1
- data/app/views/katello/api/v2/content_facet/show.json.rabl +0 -12
- data/app/views/katello/api/v2/content_view_components/show.json.rabl +4 -1
- data/app/views/katello/api/v2/content_views/base.json.rabl +6 -2
- data/app/views/katello/api/v2/repositories/show.json.rabl +0 -1
- data/config/initializers/monkeys.rb +1 -0
- data/config/katello.yaml.example +0 -4
- data/config/routes/api/v2.rb +3 -0
- data/config/routes/overrides.rb +0 -11
- data/db/migrate/20230609155411_add_custom_cdn_auth_enabled_to_katello_cdn_configurations.rb +5 -0
- data/db/migrate/20230710190626_remove_relative_path_limit.rb +5 -0
- data/db/migrate/20230717150442_change_change_content_source_job_template_name.rb +20 -0
- data/db/migrate/20230828143236_remove_katello_agent_dispatch_history.rb +15 -0
- data/db/seeds.d/111-upgrade_tasks.rb +1 -2
- data/engines/bastion/app/views/bastion/layouts/assets.html.erb +1 -1
- data/engines/bastion_katello/README.md +2 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/activation-keys.controller.js +4 -2
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/views/activation-key-associations-content-hosts.html +2 -2
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/views/activation-keys.html +8 -3
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/content-hosts-bulk-errata-modal.controller.js +3 -44
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/content-hosts-bulk-module-streams-modal.controller.js +0 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/content-hosts-bulk-packages-modal.controller.js +1 -65
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/views/content-hosts-bulk-errata-modal.html +1 -3
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/views/content-hosts-bulk-packages-modal.html +1 -6
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/content-host-debs-applicable.controller.js +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/content-host-errata.controller.js +1 -16
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/content-host-module-streams.controller.js +0 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/content-host-packages-actions.controller.js +0 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/content-host-packages-applicable.controller.js +2 -11
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/content-host-packages-installed.controller.js +0 -2
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/content-host-packages.controller.js +1 -39
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/views/content-host-debs-applicable.html +2 -2
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/views/content-host-errata.html +1 -2
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/views/content-host-packages-actions.html +2 -3
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/views/content-host-packages-applicable.html +4 -5
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/views/content-host-packages-installed.html +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content-hosts.controller.js +2 -4
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/content-host-details.controller.js +2 -4
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/views/content-host-details.html +0 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/views/content-host-info.html +0 -14
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/views/content-hosts.html +0 -4
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/apply-errata.controller.js +1 -2
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/files/details/file-content-views.controller.js +2 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/files/details/views/file-content-views.html +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/bastion_katello.pot +235 -521
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-manage-packages.html +13 -2
- data/engines/bastion_katello/lib/bastion_katello/engine.rb +1 -3
- data/lib/katello/engine.rb +0 -18
- data/lib/katello/permission_creator.rb +1 -1
- data/lib/katello/plugin.rb +0 -25
- data/lib/katello/version.rb +1 -1
- data/lib/monkeys/remove_hidden_distribution.rb +383 -0
- data/locale/action_names.rb +3 -1
- data/locale/bn/katello.po +130 -39
- data/locale/bn_IN/katello.po +130 -39
- data/locale/ca/katello.po +130 -39
- data/locale/cs/katello.po +130 -39
- data/locale/cs_CZ/katello.po +130 -39
- data/locale/de/LC_MESSAGES/katello.mo +0 -0
- data/locale/de/katello.po +134 -43
- data/locale/de_AT/katello.po +130 -39
- data/locale/de_DE/katello.po +130 -39
- data/locale/el/katello.po +130 -39
- data/locale/en/katello.po +130 -39
- data/locale/en_GB/katello.po +130 -39
- data/locale/en_US/katello.po +130 -39
- data/locale/es/LC_MESSAGES/katello.mo +0 -0
- data/locale/es/katello.po +133 -42
- data/locale/et_EE/katello.po +130 -39
- data/locale/fr/LC_MESSAGES/katello.mo +0 -0
- data/locale/fr/katello.po +138 -47
- data/locale/gl/katello.po +130 -39
- data/locale/gu/katello.po +130 -39
- data/locale/he_IL/katello.po +130 -39
- data/locale/hi/katello.po +130 -39
- data/locale/id/katello.po +130 -39
- data/locale/it/LC_MESSAGES/katello.mo +0 -0
- data/locale/it/katello.po +131 -40
- data/locale/ja/LC_MESSAGES/katello.mo +0 -0
- data/locale/ja/katello.po +138 -47
- data/locale/ka/LC_MESSAGES/katello.mo +0 -0
- data/locale/ka/katello.po +131 -40
- data/locale/katello.pot +805 -642
- data/locale/kn/katello.po +130 -39
- data/locale/ko/LC_MESSAGES/katello.mo +0 -0
- data/locale/ko/katello.po +131 -40
- data/locale/ml_IN/katello.po +130 -39
- data/locale/mr/katello.po +130 -39
- data/locale/nl_NL/katello.po +130 -39
- data/locale/or/katello.po +130 -39
- data/locale/pa/katello.po +130 -39
- data/locale/pl/katello.po +130 -39
- data/locale/pl_PL/katello.po +130 -39
- data/locale/pt/katello.po +130 -39
- data/locale/pt_BR/LC_MESSAGES/katello.mo +0 -0
- data/locale/pt_BR/katello.po +133 -42
- data/locale/ro/katello.po +130 -39
- data/locale/ro_RO/katello.po +130 -39
- data/locale/ru/LC_MESSAGES/katello.mo +0 -0
- data/locale/ru/katello.po +131 -40
- data/locale/sl/katello.po +130 -39
- data/locale/sv_SE/katello.po +130 -39
- data/locale/ta/katello.po +130 -39
- data/locale/ta_IN/katello.po +130 -39
- data/locale/te/katello.po +130 -39
- data/locale/tr/katello.po +130 -39
- data/locale/vi/katello.po +130 -39
- data/locale/vi_VN/katello.po +130 -39
- data/locale/zh/katello.po +130 -39
- data/locale/zh_CN/LC_MESSAGES/katello.mo +0 -0
- data/locale/zh_CN/katello.po +138 -47
- data/locale/zh_TW/LC_MESSAGES/katello.mo +0 -0
- data/locale/zh_TW/katello.po +131 -40
- data/webpack/components/extensions/HostDetails/Cards/HostCollectionsCard/HostCollectionsModal.js +0 -5
- data/webpack/components/extensions/HostDetails/Tabs/ContentTab/index.js +9 -3
- data/webpack/components/extensions/HostDetails/Tabs/ErrataTab/ErrataTab.js +7 -58
- data/webpack/components/extensions/HostDetails/Tabs/ErrataTab/HostErrataActions.js +2 -11
- data/webpack/components/extensions/HostDetails/Tabs/PackagesTab/HostPackagesActions.js +1 -40
- data/webpack/components/extensions/HostDetails/Tabs/PackagesTab/HostPackagesConstants.js +0 -3
- data/webpack/components/extensions/HostDetails/Tabs/PackagesTab/PackageInstallModal.js +5 -40
- data/webpack/components/extensions/HostDetails/Tabs/PackagesTab/PackagesTab.js +6 -65
- data/webpack/components/extensions/HostDetails/Tabs/RepositorySetsTab/RepositorySetsTab.js +5 -4
- data/webpack/components/extensions/HostDetails/Tabs/__tests__/errataTab.test.js +0 -212
- data/webpack/components/extensions/HostDetails/Tabs/__tests__/packageInstallModal.test.js +2 -157
- data/webpack/components/extensions/HostDetails/hostDetailsHelpers.js +0 -20
- data/webpack/containers/Application/config.js +5 -0
- data/webpack/scenes/ActivationKeys/Details/ActivationKeyActions.js +31 -0
- data/webpack/scenes/ActivationKeys/Details/ActivationKeyConstants.js +3 -0
- data/webpack/scenes/ActivationKeys/Details/ActivationKeyDetails.js +127 -0
- data/webpack/scenes/ActivationKeys/Details/ActivationKeyDetails.scss +37 -0
- data/webpack/scenes/ActivationKeys/Details/ActivationKeyDetailsSelectors.js +16 -0
- data/webpack/scenes/ActivationKeys/Details/__tests__/activationKeyDetails.test.js +117 -0
- data/webpack/scenes/ActivationKeys/Details/components/DeleteMenu.js +77 -0
- data/webpack/scenes/ActivationKeys/Details/components/DeleteModal.js +63 -0
- data/webpack/scenes/ActivationKeys/Details/components/EditModal.js +199 -0
- data/webpack/scenes/ActivationKeys/Details/index.js +3 -0
- data/webpack/scenes/AlternateContentSources/Details/EditModals/ACSEditCredentials.js +10 -5
- data/webpack/scenes/AlternateContentSources/Details/EditModals/ACSEditProducts.js +8 -3
- data/webpack/scenes/AlternateContentSources/Details/EditModals/ACSEditSmartProxies.js +8 -3
- data/webpack/scenes/AlternateContentSources/Details/__tests__/ACSEdits.test.js +2 -2
- data/webpack/scenes/AlternateContentSources/MainTable/ACSTable.js +1 -1
- data/webpack/scenes/ContentViews/Details/ComponentContentViews/ComponentContentViewAddModal.js +37 -29
- data/webpack/scenes/ContentViews/Details/ComponentContentViews/ComponentContentViewBulkAddModal.js +53 -37
- data/webpack/scenes/ContentViews/Details/ComponentContentViews/ContentViewComponents.js +7 -0
- data/webpack/scenes/ContentViews/Details/ComponentContentViews/__tests__/contentViewComponents.fixtures.json +15 -6
- data/webpack/scenes/ContentViews/Details/ComponentContentViews/__tests__/contentViewComponents.test.js +6 -5
- data/webpack/scenes/ContentViews/Details/ComponentContentViews/__tests__/publishedContentViewDetails.fixtures.json +43 -197
- data/webpack/scenes/ContentViews/Details/Filters/CVErrataDateFilterContent.js +1 -1
- data/webpack/scenes/ContentViews/Details/Filters/Rules/Package/AddEditPackageRuleModal.js +1 -1
- data/webpack/scenes/ContentViews/Details/Promote/ContentViewVersionPromote.js +2 -2
- data/webpack/scenes/ContentViews/Details/Versions/__tests__/contentViewVersions.fixtures.json +0 -98
- data/webpack/scenes/ContentViews/Details/Versions/__tests__/contentViewVersions.test.js +103 -1
- data/webpack/scenes/ContentViews/Details/Versions/__tests__/contentViewVersionsLatestEnvironment.fixtures.json +634 -0
- data/webpack/scenes/ContentViews/components/ContentViewSelect/helpers.js +1 -1
- data/webpack/scenes/Hosts/ChangeContentSource/actions.js +14 -12
- data/webpack/scenes/Hosts/ChangeContentSource/components/ContentSourceForm.js +45 -6
- data/webpack/scenes/Hosts/ChangeContentSource/components/ContentSourceTemplate.js +42 -7
- data/webpack/scenes/Hosts/ChangeContentSource/index.js +37 -10
- data/webpack/scenes/Hosts/ChangeContentSource/styles.scss +5 -0
- data/webpack/scenes/RedHatRepositories/index.scss +1 -1
- data/webpack/scenes/Subscriptions/Manifest/ManageManifestModal.js +2 -2
- metadata +85 -81
- data/app/lib/actions/katello/agent/dispatch_history_presenter.rb +0 -64
- data/app/lib/actions/katello/agent_action.rb +0 -120
- data/app/lib/actions/katello/bulk_agent_action.rb +0 -37
- data/app/lib/actions/katello/host/erratum/applicable_errata_install.rb +0 -44
- data/app/lib/actions/katello/host/erratum/install.rb +0 -38
- data/app/lib/actions/katello/host/package/install.rb +0 -34
- data/app/lib/actions/katello/host/package/remove.rb +0 -48
- data/app/lib/actions/katello/host/package/update.rb +0 -42
- data/app/lib/actions/katello/host/package_group/install.rb +0 -30
- data/app/lib/actions/katello/host/package_group/remove.rb +0 -30
- data/app/lib/katello/agent/base_message.rb +0 -41
- data/app/lib/katello/agent/client_message_handler.rb +0 -69
- data/app/lib/katello/agent/connection.rb +0 -38
- data/app/lib/katello/agent/install_errata_message.rb +0 -25
- data/app/lib/katello/agent/install_package_group_message.rb +0 -25
- data/app/lib/katello/agent/install_package_message.rb +0 -28
- data/app/lib/katello/agent/remove_package_group_message.rb +0 -25
- data/app/lib/katello/agent/remove_package_message.rb +0 -28
- data/app/lib/katello/agent/update_package_message.rb +0 -33
- data/app/lib/katello/event_daemon/services/agent_event_receiver.rb +0 -59
- data/app/lib/katello/qpid/connection.rb +0 -149
- data/app/lib/katello/util/default_enablement_migrator.rb +0 -183
- data/app/models/katello/agent/dispatch_history.rb +0 -19
- data/app/models/katello/events/delete_host_agent_queue.rb +0 -19
- data/app/services/katello/agent/dispatcher.rb +0 -60
- data/app/views/foreman/job_templates/change_content_source.erb +0 -18
- data/app/views/katello/api/v2/sync/index.json.rabl +0 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/common/views/katello-agent-notice.html +0 -8
- data/lib/katello/tasks/upgrades/4.9/update_custom_products_enablement.rake +0 -13
- data/webpack/components/extensions/HostDetails/common/KatelloAgentDeprecationAlert.js +0 -23
@@ -106,6 +106,10 @@ module Katello
|
|
106
106
|
name
|
107
107
|
end
|
108
108
|
|
109
|
+
def self.contains_file(file_unit_id)
|
110
|
+
where(id: Katello::Repository.where(id: Katello::RepositoryFileUnit.where(file_unit_id: file_unit_id).select(:repository_id)).select(:content_view_version_id))
|
111
|
+
end
|
112
|
+
|
109
113
|
def ansible_collections
|
110
114
|
AnsibleCollection.in_repositories(archived_repos)
|
111
115
|
end
|
@@ -61,6 +61,10 @@ module Katello
|
|
61
61
|
self.cves_changed = true
|
62
62
|
end
|
63
63
|
|
64
|
+
def mark_cves_unchanged
|
65
|
+
self.cves_changed = false
|
66
|
+
end
|
67
|
+
|
64
68
|
def cves_changed?
|
65
69
|
cves_changed
|
66
70
|
end
|
@@ -299,11 +303,6 @@ module Katello
|
|
299
303
|
end
|
300
304
|
end
|
301
305
|
|
302
|
-
def katello_agent_installed?
|
303
|
-
self.host.installed_packages.where("#{Katello::InstalledPackage.table_name}.name" => 'katello-agent').any? ||
|
304
|
-
self.host.installed_debs.where("#{Katello::InstalledDeb.table_name}.name" => 'katello-agent').any?
|
305
|
-
end
|
306
|
-
|
307
306
|
def tracer_installed?
|
308
307
|
self.host.installed_packages.where("#{Katello::InstalledPackage.table_name}.name" => [ "python-#{HOST_TOOLS_TRACER_PACKAGE_NAME}",
|
309
308
|
"python3-#{HOST_TOOLS_TRACER_PACKAGE_NAME}",
|
data/app/models/katello/ping.rb
CHANGED
@@ -2,14 +2,12 @@ module Katello
|
|
2
2
|
class Ping
|
3
3
|
OK_RETURN_CODE = 'ok'.freeze
|
4
4
|
FAIL_RETURN_CODE = 'FAIL'.freeze
|
5
|
-
PACKAGES = %w(katello candlepin pulp qpid foreman tfm hammer).freeze
|
6
5
|
|
7
6
|
class << self
|
8
7
|
def services(capsule_id = nil)
|
9
8
|
proxy = fetch_proxy(capsule_id)
|
10
9
|
services = [:candlepin, :candlepin_auth, :foreman_tasks, :katello_events, :candlepin_events]
|
11
10
|
services += [:pulp3, :pulp3_content] if proxy&.pulp3_enabled?
|
12
|
-
services += [:katello_agent] if ::Katello.with_katello_agent?
|
13
11
|
if proxy.nil? || proxy.has_feature?(SmartProxy::PULP_NODE_FEATURE) || proxy.has_feature?(SmartProxy::PULP_FEATURE)
|
14
12
|
services += [:pulp, :pulp_auth]
|
15
13
|
end
|
@@ -64,13 +62,6 @@ module Katello
|
|
64
62
|
end
|
65
63
|
end
|
66
64
|
|
67
|
-
def ping_katello_agent(result)
|
68
|
-
exception_watch(result) do
|
69
|
-
status = Katello::EventDaemon::Runner.service_status(:katello_agent_events)
|
70
|
-
event_daemon_status(status, result)
|
71
|
-
end
|
72
|
-
end
|
73
|
-
|
74
65
|
def ping_pulp3_without_auth(service_result, capsule_id)
|
75
66
|
exception_watch(service_result) do
|
76
67
|
Katello::Ping.pulp3_without_auth(fetch_proxy(capsule_id).pulp3_url)
|
@@ -151,13 +142,6 @@ module Katello
|
|
151
142
|
result
|
152
143
|
end
|
153
144
|
|
154
|
-
# get package information for katello and its components
|
155
|
-
def packages
|
156
|
-
names = PACKAGES.join("|")
|
157
|
-
packages = `rpm -qa | egrep "#{names}"`
|
158
|
-
packages.split("\n").sort
|
159
|
-
end
|
160
|
-
|
161
145
|
def pulp_url(capsule_id)
|
162
146
|
proxy = fetch_proxy(capsule_id)
|
163
147
|
uri = URI.parse(proxy.pulp_url)
|
@@ -233,7 +217,6 @@ module Katello
|
|
233
217
|
end
|
234
218
|
end
|
235
219
|
|
236
|
-
# rubocop:disable Metrics/CyclomaticComplexity
|
237
220
|
def ping_services_for_capsule(services, capsule_id)
|
238
221
|
services ||= self.services(capsule_id)
|
239
222
|
result = {}
|
@@ -249,14 +232,12 @@ module Katello
|
|
249
232
|
ping_foreman_tasks(result[:foreman_tasks]) if result.include?(:foreman_tasks)
|
250
233
|
ping_katello_events(result[:katello_events]) if result.include?(:katello_events)
|
251
234
|
ping_candlepin_events(result[:candlepin_events]) if result.include?(:candlepin_events)
|
252
|
-
ping_katello_agent(result[:katello_agent]) if result.include?(:katello_agent)
|
253
235
|
|
254
236
|
# set overall status result code
|
255
237
|
result = {:services => result}
|
256
238
|
result[:status] = result[:services].each_value.any? { |v| v[:status] == FAIL_RETURN_CODE } ? FAIL_RETURN_CODE : OK_RETURN_CODE
|
257
239
|
result
|
258
240
|
end
|
259
|
-
# rubocop:enable Metrics/CyclomaticComplexity
|
260
241
|
|
261
242
|
def fetch_proxy(capsule_id)
|
262
243
|
capsule_id ? SmartProxy.unscoped.find(capsule_id) : SmartProxy.pulp_primary
|
@@ -178,7 +178,7 @@ module Katello
|
|
178
178
|
:upstream_authentication_token, :deb_releases,
|
179
179
|
:deb_components, :deb_architectures, :ssl_ca_cert_id, :ssl_ca_cert, :ssl_client_cert, :ssl_client_cert_id,
|
180
180
|
:ssl_client_key_id, :os_versions, :ssl_client_key, :ignorable_content, :description, :include_tags, :exclude_tags,
|
181
|
-
:
|
181
|
+
:ansible_collection_requirements, :ansible_collection_auth_url, :ansible_collection_auth_token,
|
182
182
|
:http_proxy_policy, :http_proxy_id, :to => :root
|
183
183
|
|
184
184
|
delegate :content_id, to: :root, allow_nil: true
|
@@ -947,6 +947,10 @@ module Katello
|
|
947
947
|
content_view.repositories.include? self
|
948
948
|
end
|
949
949
|
|
950
|
+
def sync_status
|
951
|
+
return latest_dynflow_sync
|
952
|
+
end
|
953
|
+
|
950
954
|
protected
|
951
955
|
|
952
956
|
def unit_type_for_removal(type_class = nil)
|
@@ -3,7 +3,6 @@ module Katello
|
|
3
3
|
class RootRepository < Katello::Model
|
4
4
|
audited :except => [:content_id]
|
5
5
|
serialize :ignorable_content
|
6
|
-
serialize :docker_tags_whitelist
|
7
6
|
serialize :include_tags
|
8
7
|
serialize :exclude_tags
|
9
8
|
serialize :os_versions
|
@@ -360,11 +359,6 @@ module Katello
|
|
360
359
|
Katello::Content.find_by(:cp_content_id => self.content_id, :organization_id => self.product.organization_id)
|
361
360
|
end
|
362
361
|
|
363
|
-
# For API support during deprecation period.
|
364
|
-
def docker_tags_whitelist
|
365
|
-
include_tags
|
366
|
-
end
|
367
|
-
|
368
362
|
def docker?
|
369
363
|
self.content_type == Repository::DOCKER_TYPE
|
370
364
|
end
|
@@ -406,8 +400,8 @@ module Katello
|
|
406
400
|
end
|
407
401
|
|
408
402
|
def pulp_update_needed?
|
409
|
-
changeable_attributes = %w(url unprotected checksum_type docker_upstream_name download_policy
|
410
|
-
upstream_username upstream_password
|
403
|
+
changeable_attributes = %w(url unprotected checksum_type docker_upstream_name download_policy verify_ssl_on_sync
|
404
|
+
upstream_username upstream_password retain_package_versions_count
|
411
405
|
ssl_ca_cert_id ssl_client_cert_id ssl_client_key_id http_proxy_policy http_proxy_id download_concurrency)
|
412
406
|
changeable_attributes += %w(name container_repository_name include_tags exclude_tags) if docker?
|
413
407
|
changeable_attributes += %w(deb_releases deb_components deb_architectures gpg_key_id) if deb?
|
@@ -133,13 +133,13 @@ module Katello
|
|
133
133
|
end
|
134
134
|
|
135
135
|
def newest_distinct_installed_packages_query
|
136
|
-
"SELECT DISTINCT ON (katello_installed_packages.name) katello_installed_packages.id " \
|
136
|
+
"SELECT DISTINCT ON (katello_installed_packages.name, katello_installed_packages.arch) katello_installed_packages.id " \
|
137
137
|
"FROM katello_installed_packages INNER JOIN " \
|
138
138
|
"katello_host_installed_packages ON " \
|
139
139
|
"katello_installed_packages.id = " \
|
140
140
|
"katello_host_installed_packages.installed_package_id " \
|
141
141
|
"WHERE katello_host_installed_packages.host_id = " \
|
142
|
-
"#{content_facet.host.id} ORDER BY katello_installed_packages.name, katello_installed_packages.evr DESC"
|
142
|
+
"#{content_facet.host.id} ORDER BY katello_installed_packages.name, katello_installed_packages.arch, katello_installed_packages.evr DESC"
|
143
143
|
end
|
144
144
|
|
145
145
|
def applicable_differences
|
@@ -135,8 +135,6 @@ module Katello
|
|
135
135
|
# if this fails, there is not much to do about it right now. We can't really re-create the candlepin consumer.
|
136
136
|
# This can be cleaned up later via clean_backend_objects.
|
137
137
|
|
138
|
-
delete_agent_queue(host) if host.content_facet.try(:uuid)
|
139
|
-
|
140
138
|
host.subscription_facet.try(:destroy!)
|
141
139
|
|
142
140
|
if unregistering
|
@@ -281,16 +279,6 @@ module Katello
|
|
281
279
|
Rails.logger.warn(_("Candlepin consumer %s has already been removed") % host_uuid)
|
282
280
|
end
|
283
281
|
|
284
|
-
def delete_agent_queue(host)
|
285
|
-
return unless ::Katello.with_katello_agent?
|
286
|
-
|
287
|
-
queue_name = Katello::Agent::Dispatcher.host_queue_name(host)
|
288
|
-
Katello::EventQueue.push_event(::Katello::Events::DeleteHostAgentQueue::EVENT_TYPE, host.id) do |attrs|
|
289
|
-
attrs[:metadata] = { queue_name: queue_name }
|
290
|
-
attrs[:process_after] = 10.minutes.from_now
|
291
|
-
end
|
292
|
-
end
|
293
|
-
|
294
282
|
def populate_content_facet(host, content_view_environments, uuid)
|
295
283
|
content_facet = host.content_facet || ::Katello::Host::ContentFacet.new(:host => host)
|
296
284
|
content_facet.content_view_environments = content_view_environments
|
@@ -317,6 +305,8 @@ module Katello
|
|
317
305
|
host.content_facet.uuid = nil
|
318
306
|
host.content_facet.content_view_environments = []
|
319
307
|
host.content_facet.save!
|
308
|
+
Rails.logger.debug "remove_host_artifacts: marking CVEs unchanged to prevent backend update"
|
309
|
+
host.content_facet.mark_cves_unchanged
|
320
310
|
host.content_facet.calculate_and_import_applicability
|
321
311
|
end
|
322
312
|
|
@@ -0,0 +1,25 @@
|
|
1
|
+
<%#
|
2
|
+
kind: job_template
|
3
|
+
name: Configure host for new content source
|
4
|
+
job_category: Katello
|
5
|
+
model: JobTemplate
|
6
|
+
provider_type: script
|
7
|
+
description_format: Configure subscription manager for new content source
|
8
|
+
feature: katello_change_content_source
|
9
|
+
%>
|
10
|
+
#!/bin/sh
|
11
|
+
|
12
|
+
# This job template alone will NOT change a host's content source!
|
13
|
+
# It is invoked after changing a host's content source on the server,
|
14
|
+
# which is done from the Change Content Source page in the web UI.
|
15
|
+
|
16
|
+
<%= configure_host_for_new_content_source(@host, foreman_server_ca_cert) %>
|
17
|
+
|
18
|
+
# If REX pull mode is enabled, update yggdrasil config to pull from the new content source.
|
19
|
+
# If host is not configured for REX pull mode, this is a noop.
|
20
|
+
|
21
|
+
if [ -f /etc/yggdrasil/config.toml ]; then
|
22
|
+
cp /etc/yggdrasil/config.toml /etc/yggdrasil/config.toml.bak
|
23
|
+
export YGGDRASIL_RESTART_DELAY=10
|
24
|
+
<%= snippet 'remote_execution_pull_setup' %>
|
25
|
+
fi
|
@@ -38,7 +38,7 @@ child @lifecycle_environments => :lifecycle_environments do
|
|
38
38
|
:label => content_view.label,
|
39
39
|
:name => content_view.name,
|
40
40
|
:composite => content_view.composite,
|
41
|
-
:last_published => content_view.versions.empty? ? nil : content_view.versions.
|
41
|
+
:last_published => content_view.versions.empty? ? nil : content_view.versions.in_environment(env).first&.created_at,
|
42
42
|
:default => content_view.default,
|
43
43
|
:up_to_date => @capsule.repos_pending_sync(env, content_view).empty?,
|
44
44
|
:counts => {
|
@@ -21,22 +21,10 @@ child :content_facet => :content_facet_attributes do
|
|
21
21
|
content_facet.single_lifecycle_environment&.library? || false
|
22
22
|
end
|
23
23
|
|
24
|
-
node :katello_agent_installed do |content_facet|
|
25
|
-
content_facet.katello_agent_installed?
|
26
|
-
end
|
27
|
-
|
28
24
|
node :katello_tracer_installed do |content_facet|
|
29
25
|
content_facet.tracer_installed?
|
30
26
|
end
|
31
27
|
|
32
|
-
node :katello_agent_enabled do
|
33
|
-
Katello.with_katello_agent?
|
34
|
-
end
|
35
|
-
|
36
|
-
node :remote_execution_by_default do
|
37
|
-
Katello.remote_execution_by_default?
|
38
|
-
end
|
39
|
-
|
40
28
|
user = User.current # current_user is not available here
|
41
29
|
child :permissions do
|
42
30
|
node(:view_lifecycle_environments) { user.can?("view_lifecycle_environments") }
|
@@ -29,5 +29,8 @@ child :latest_version => :content_view_version do
|
|
29
29
|
end
|
30
30
|
|
31
31
|
child :component_content_view_versions => :component_content_view_versions do
|
32
|
-
attributes :id, :version
|
32
|
+
attributes :id, :version, :description
|
33
|
+
node :published_at_words do |version|
|
34
|
+
time_ago_in_words(version.created_at)
|
35
|
+
end
|
33
36
|
end
|
@@ -44,7 +44,7 @@ node :environments do |cv|
|
|
44
44
|
{
|
45
45
|
id: env.id,
|
46
46
|
label: env.label,
|
47
|
-
name: env.
|
47
|
+
name: env.name,
|
48
48
|
activation_keys: cv&.activation_keys&.in_environment(env)&.ids,
|
49
49
|
hosts: cv&.hosts&.in_environments([env])&.ids,
|
50
50
|
permissions: {readable: env.readable?}
|
@@ -64,11 +64,15 @@ else
|
|
64
64
|
attributes :repository_ids
|
65
65
|
end
|
66
66
|
|
67
|
-
child :
|
67
|
+
child :sorted_versions => :versions do
|
68
68
|
attributes :id, :version
|
69
69
|
attributes :created_at => :published
|
70
|
+
attributes :description
|
70
71
|
attributes :environment_ids
|
71
72
|
attributes :filters_applied? => :filters_applied
|
73
|
+
node :published_at_words do |version|
|
74
|
+
time_ago_in_words(version.created_at)
|
75
|
+
end
|
72
76
|
end
|
73
77
|
|
74
78
|
if params.key?(:include_permissions)
|
data/config/katello.yaml.example
CHANGED
@@ -39,10 +39,6 @@
|
|
39
39
|
:upload_chunk_size: 1048575 # upload size in bytes to pulp. see SSLRenegBufferSize in apache
|
40
40
|
:skip_checksum_validation: false
|
41
41
|
|
42
|
-
:qpid:
|
43
|
-
:url: amqp:ssl:katello-devel.example.com:5671
|
44
|
-
:subscriptions_queue_address: katello_event_queue
|
45
|
-
|
46
42
|
# Logging configuration can be changed by uncommenting the loggers
|
47
43
|
# section and the logger configuration desired.
|
48
44
|
#
|
data/config/routes/api/v2.rb
CHANGED
@@ -353,6 +353,8 @@ Katello::Engine.routes.draw do
|
|
353
353
|
##############################
|
354
354
|
##############################
|
355
355
|
|
356
|
+
match '/alternate_content_sources/bulk/refresh_all' => 'alternate_content_sources_bulk_actions#refresh_all_alternate_content_sources', :via => :post
|
357
|
+
|
356
358
|
api_resources :alternate_content_sources, :only => [], :constraints => { :id => /[0-9a-zA-Z\-_.]*/ } do
|
357
359
|
collection do
|
358
360
|
match '/bulk/destroy' => 'alternate_content_sources_bulk_actions#destroy_alternate_content_sources', :via => :put
|
@@ -484,6 +486,7 @@ Katello::Engine.routes.draw do
|
|
484
486
|
end
|
485
487
|
|
486
488
|
api_resources :sync_plans, :only => [:index, :show, :update, :destroy] do
|
489
|
+
api_resources :products, :only => [:index]
|
487
490
|
get :auto_complete_search, :on => :collection
|
488
491
|
put :sync
|
489
492
|
end
|
data/config/routes/overrides.rb
CHANGED
@@ -52,7 +52,6 @@ Foreman::Application.routes.draw do
|
|
52
52
|
resources :hosts, :only => [] do
|
53
53
|
resources :errata, :only => [:show, :index], :controller => :host_errata do
|
54
54
|
collection do
|
55
|
-
put :apply
|
56
55
|
get :auto_complete_search
|
57
56
|
put :applicability
|
58
57
|
end
|
@@ -69,11 +68,8 @@ Foreman::Application.routes.draw do
|
|
69
68
|
match '/bulk/auto_attach' => 'hosts_bulk_actions#auto_attach', :via => :put
|
70
69
|
match '/bulk/content_overrides' => 'hosts_bulk_actions#content_overrides', :via => :put
|
71
70
|
|
72
|
-
match '/bulk/install_content' => 'hosts_bulk_actions#install_content', :via => :put
|
73
71
|
match '/bulk/applicable_errata' => 'hosts_bulk_actions#applicable_errata', :via => :post
|
74
72
|
match '/bulk/installable_errata' => 'hosts_bulk_actions#installable_errata', :via => :post
|
75
|
-
match '/bulk/update_content' => 'hosts_bulk_actions#update_content', :via => :put
|
76
|
-
match '/bulk/remove_content' => 'hosts_bulk_actions#remove_content', :via => :put
|
77
73
|
match '/bulk/destroy' => 'hosts_bulk_actions#destroy_hosts', :via => :put
|
78
74
|
match '/bulk/environment_content_view' => 'hosts_bulk_actions#environment_content_view', :via => :put
|
79
75
|
match '/bulk/release_version' => 'hosts_bulk_actions#release_version', :via => :put
|
@@ -88,13 +84,6 @@ Foreman::Application.routes.draw do
|
|
88
84
|
|
89
85
|
resources :packages, :only => [:index], :controller => :host_packages do
|
90
86
|
get :auto_complete_search, :on => :collection
|
91
|
-
|
92
|
-
collection do
|
93
|
-
put :remove
|
94
|
-
put :install
|
95
|
-
put :upgrade
|
96
|
-
put :upgrade_all
|
97
|
-
end
|
98
87
|
end
|
99
88
|
|
100
89
|
resources :module_streams, :only => [:index], :controller => :host_module_streams do
|
@@ -0,0 +1,20 @@
|
|
1
|
+
class ChangeChangeContentSourceJobTemplateName < ActiveRecord::Migration[6.1]
|
2
|
+
TEMPLATE_NAMES = {
|
3
|
+
"Change content source" => "Configure host for new content source"
|
4
|
+
}.freeze
|
5
|
+
|
6
|
+
def up
|
7
|
+
TEMPLATE_NAMES.each do |from, to|
|
8
|
+
token = SecureRandom.base64(5)
|
9
|
+
::Template.unscoped.find_by(name: to)&.update_columns(:name => "#{to} Backup #{token}")
|
10
|
+
::Template.unscoped.find_by(name: from)&.update_columns(:name => to)
|
11
|
+
end
|
12
|
+
end
|
13
|
+
|
14
|
+
def down
|
15
|
+
TEMPLATE_NAMES.each do |from, to|
|
16
|
+
::Template.unscoped.find_by(name: from)&.delete
|
17
|
+
::Template.unscoped.find_by(name: to)&.update_columns(:name => from)
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,15 @@
|
|
1
|
+
class RemoveKatelloAgentDispatchHistory < ActiveRecord::Migration[6.1]
|
2
|
+
def up
|
3
|
+
drop_table :katello_agent_dispatch_histories
|
4
|
+
end
|
5
|
+
|
6
|
+
def down
|
7
|
+
create_table :katello_agent_dispatch_histories do |t|
|
8
|
+
t.integer :host_id, null: false, foreign_key: true
|
9
|
+
t.datetime :accepted_at
|
10
|
+
t.string :dynflow_execution_plan_id
|
11
|
+
t.integer :dynflow_step_id
|
12
|
+
t.text :result
|
13
|
+
end
|
14
|
+
end
|
15
|
+
end
|
@@ -9,7 +9,6 @@ UpgradeTask.define_tasks(:katello) do
|
|
9
9
|
{:name => 'katello:upgrades:4.2:remove_checksum_values'},
|
10
10
|
{:name => 'katello:upgrades:4.4:publish_import_cvvs'},
|
11
11
|
{:name => 'katello:upgrades:4.8:fix_incorrect_providers'},
|
12
|
-
{:name => 'katello:upgrades:4.8:regenerate_imported_repository_metadata'}
|
13
|
-
{:name => 'katello:upgrades:4.9:update_custom_products_enablement'}
|
12
|
+
{:name => 'katello:upgrades:4.8:regenerate_imported_repository_metadata'}
|
14
13
|
]
|
15
14
|
end
|
@@ -25,7 +25,6 @@
|
|
25
25
|
angular.module('Bastion').value('deleteHostOnUnregister', angular.fromJson(`<%= Setting[:unregister_delete_host] %>`));
|
26
26
|
angular.module('Bastion').value('globalContentProxy', angular.fromJson(`<%= Setting[:content_default_http_proxy].empty? ? nil.to_json : Setting[:content_default_http_proxy].to_json.html_safe %>`));
|
27
27
|
angular.module('Bastion').value('entriesPerPage', "<%= Setting[:entries_per_page] %>");
|
28
|
-
angular.module('Bastion').value('contentViewSolveDependencies', "<%= Setting[:content_view_solve_dependencies] %>");
|
29
28
|
angular.module('Bastion').constant('BastionConfig', angular.fromJson(`<%= Bastion.config.to_json.html_safe %>`));
|
30
29
|
angular.module('Bastion.auth').value('CurrentUser', {
|
31
30
|
id: <%= User.current.id %>,
|
@@ -33,6 +32,7 @@
|
|
33
32
|
});
|
34
33
|
angular.module('Bastion.auth').value('Permissions', angular.fromJson(`<%= User.current.cached_roles.collect { |role| role.permissions }.flatten.to_json.html_safe %>`));
|
35
34
|
angular.module('Bastion').value('newHostDetailsUI', "<%= Setting[:host_details_ui] %>");
|
35
|
+
angular.module('Bastion').value('experimentalLabsSetting', "<%= Setting[:lab_features] %>");
|
36
36
|
</script>
|
37
37
|
<% Bastion.plugins.each do |name, plugin| %>
|
38
38
|
<%= include_plugin_js(plugin) %>
|
@@ -7,7 +7,8 @@ The only real difference, as far as the user is concerned, is that the applicati
|
|
7
7
|
# Running tests:
|
8
8
|
|
9
9
|
```
|
10
|
-
sudo
|
10
|
+
sudo dnf -y install epel-release epel-next-release
|
11
|
+
sudo dnf -y install npm chromium-headless chromium
|
11
12
|
cd ./engines/bastion_katello
|
12
13
|
sudo npm install -g grunt-cli
|
13
14
|
npm install
|
@@ -8,6 +8,7 @@
|
|
8
8
|
* @requires Nutupane
|
9
9
|
* @requires ActivationKey
|
10
10
|
* @requires CurrentOrganization
|
11
|
+
* @requires experimentalLabsSetting
|
11
12
|
*
|
12
13
|
* @description
|
13
14
|
* Provides the functionality specific to activation keys for use with the Nutupane UI pattern.
|
@@ -15,8 +16,8 @@
|
|
15
16
|
* within the table.
|
16
17
|
*/
|
17
18
|
angular.module('Bastion.activation-keys').controller('ActivationKeysController',
|
18
|
-
['$scope', '$location', 'translate', 'Nutupane', 'ActivationKey', 'CurrentOrganization',
|
19
|
-
function ($scope, $location, translate, Nutupane, ActivationKey, CurrentOrganization) {
|
19
|
+
['$scope', '$location', 'translate', 'Nutupane', 'ActivationKey', 'CurrentOrganization', 'experimentalLabsSetting',
|
20
|
+
function ($scope, $location, translate, Nutupane, ActivationKey, CurrentOrganization, experimentalLabsSetting) {
|
20
21
|
|
21
22
|
var params = {
|
22
23
|
'organization_id': CurrentOrganization,
|
@@ -30,5 +31,6 @@ angular.module('Bastion.activation-keys').controller('ActivationKeysController',
|
|
30
31
|
$scope.controllerName = 'katello_activation_keys';
|
31
32
|
nutupane.primaryOnly = true;
|
32
33
|
$scope.table = nutupane.table;
|
34
|
+
$scope.experimentalLabsSetting = experimentalLabsSetting;
|
33
35
|
}]
|
34
36
|
);
|
@@ -37,8 +37,8 @@
|
|
37
37
|
<span ng-class="getHostStatusIcon(host.subscription_global_status)">
|
38
38
|
</span>
|
39
39
|
</td>
|
40
|
-
<td bst-table-cell>{{ host.content_facet_attributes.
|
41
|
-
<td bst-table-cell>{{ host.content_facet_attributes.
|
40
|
+
<td bst-table-cell>{{ host.content_facet_attributes.lifecycle_environment.name }}</td>
|
41
|
+
<td bst-table-cell>{{ host.content_facet_attributes.content_view.name || "" }}</td>
|
42
42
|
<td bst-table-cell>{{ host.subscription_facet_attributes.service_level }}</td>
|
43
43
|
<td bst-table-cell>{{ host.subscription_facet_attributes.release_version }}</td>
|
44
44
|
</tr>
|
@@ -35,9 +35,14 @@
|
|
35
35
|
<tbody>
|
36
36
|
<tr bst-table-row ng-repeat="activationKey in table.rows">
|
37
37
|
<td bst-table-cell>
|
38
|
-
<
|
39
|
-
{{
|
40
|
-
|
38
|
+
<span ng-switch="experimentalLabsSetting">
|
39
|
+
<a ng-switch-when="true" ng-href="/labs/activation_keys/{{activationKey.id}}">
|
40
|
+
{{ activationKey.name }}
|
41
|
+
</a>
|
42
|
+
<a ng-switch-when="false" ui-sref="activation-key.info({activationKeyId: activationKey.id})">
|
43
|
+
{{ activationKey.name }}
|
44
|
+
</a>
|
45
|
+
</span>
|
41
46
|
<i class="fa fa-chevron-right selected-icon" ng-show="activationKey.selected"></i>
|
42
47
|
</td>
|
43
48
|
<td bst-table-cell>{{ activationKey | activationKeyConsumedFilter }}</td>
|
@@ -24,21 +24,6 @@
|
|
24
24
|
angular.module('Bastion.content-hosts').controller('ContentHostsBulkErrataModalController',
|
25
25
|
['$scope', '$http', '$location', '$window', '$timeout', '$uibModalInstance', 'HostBulkAction', 'HostCollection', 'Nutupane', 'CurrentOrganization', 'Erratum', 'Notification', 'BastionConfig', 'hostIds', 'newHostDetailsUI',
|
26
26
|
function ($scope, $http, $location, $window, $timeout, $uibModalInstance, HostBulkAction, HostCollection, Nutupane, CurrentOrganization, Erratum, Notification, BastionConfig, hostIds, newHostDetailsUI) {
|
27
|
-
function installParams() {
|
28
|
-
var params = hostIds;
|
29
|
-
params['content_type'] = 'errata';
|
30
|
-
params.content = _.map($scope.table.getSelected(), 'errata_id');
|
31
|
-
|
32
|
-
if ($scope.nutupane.table.allResultsSelected) {
|
33
|
-
params['install_all'] = true;
|
34
|
-
} else {
|
35
|
-
params['install_all'] = false;
|
36
|
-
}
|
37
|
-
|
38
|
-
params['organization_id'] = CurrentOrganization;
|
39
|
-
return params;
|
40
|
-
}
|
41
|
-
|
42
27
|
function fetchErratum(errataId) {
|
43
28
|
$scope.erratum = Erratum.get({id: errataId, 'organization_id': CurrentOrganization});
|
44
29
|
}
|
@@ -55,8 +40,6 @@ angular.module('Bastion.content-hosts').controller('ContentHostsBulkErrataModalC
|
|
55
40
|
$scope.table.initialLoad = false;
|
56
41
|
$scope.initialLoad = true;
|
57
42
|
$scope.remoteExecutionPresent = BastionConfig.remoteExecutionPresent;
|
58
|
-
$scope.remoteExecutionByDefault = BastionConfig.remoteExecutionByDefault;
|
59
|
-
$scope.katelloAgentPresent = BastionConfig.katelloAgentPresent;
|
60
43
|
$scope.allHostsSelected = hostIds.allResultsSelected;
|
61
44
|
$scope.hostToolingEnabled = BastionConfig.hostToolingEnabled;
|
62
45
|
$scope.newHostDetailsUI = newHostDetailsUI;
|
@@ -92,43 +75,19 @@ angular.module('Bastion.content-hosts').controller('ContentHostsBulkErrataModalC
|
|
92
75
|
};
|
93
76
|
|
94
77
|
$scope.installErrata = function () {
|
95
|
-
|
96
|
-
$scope.installErrataViaRemoteExecution();
|
97
|
-
|
98
|
-
} else {
|
99
|
-
$scope.installErrataViaKatelloAgent(false);
|
100
|
-
}
|
101
|
-
};
|
102
|
-
|
103
|
-
$scope.installErrataViaKatelloAgent = function () {
|
104
|
-
var params = installParams();
|
105
|
-
HostBulkAction.installContent(params,
|
106
|
-
function (data) {
|
107
|
-
$scope.nutupane.invalidate();
|
108
|
-
$scope.ok();
|
109
|
-
$scope.transitionTo('content-hosts.bulk-task', {taskId: data.id});
|
110
|
-
},
|
111
|
-
function (response) {
|
112
|
-
angular.forEach(response.data.errors, function (error) {
|
113
|
-
Notification.setErrorMessage(error);
|
114
|
-
});
|
115
|
-
});
|
78
|
+
$scope.installErrataViaRemoteExecution();
|
116
79
|
};
|
117
80
|
|
118
81
|
$scope.selectedErrataIds = function () {
|
119
|
-
return $scope.
|
82
|
+
return $scope.table.getSelected();
|
120
83
|
};
|
121
84
|
|
122
85
|
$scope.installErrataViaRemoteExecution = function(customize) {
|
123
86
|
var errataIds = $scope.selectedErrataIds();
|
124
|
-
$scope.errataActionFormValues.bulkErrataIds = angular.toJson(errataIds);
|
125
87
|
|
126
88
|
$scope.errataActionFormValues.remoteAction = 'errata_install';
|
89
|
+
$scope.errataActionFormValues.bulkErrataIds = angular.toJson(errataIds);
|
127
90
|
$scope.errataActionFormValues.customize = customize;
|
128
|
-
|
129
|
-
$timeout(function () {
|
130
|
-
angular.element('#errataActionForm').submit();
|
131
|
-
}, 0);
|
132
91
|
};
|
133
92
|
|
134
93
|
$scope.ok = function () {
|
@@ -34,7 +34,6 @@ angular.module('Bastion.content-hosts').controller('ContentHostsBulkModuleStream
|
|
34
34
|
$scope.moduleStreamsNutupane.primaryOnly = true;
|
35
35
|
$scope.table = $scope.moduleStreamsNutupane.table;
|
36
36
|
$scope.remoteExecutionPresent = BastionConfig.remoteExecutionPresent;
|
37
|
-
$scope.remoteExecutionByDefault = BastionConfig.remoteExecutionByDefault;
|
38
37
|
|
39
38
|
$scope.moduleStreamActionFormValues = {
|
40
39
|
authenticityToken: $window.AUTH_TOKEN.replace(/"/g, ''),
|