katello 3.17.0 → 3.18.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.
- checksums.yaml +4 -4
- data/app/controllers/katello/api/registry/registry_proxies_controller.rb +38 -21
- data/app/controllers/katello/api/rhsm/candlepin_proxies_controller.rb +3 -1
- data/app/controllers/katello/api/v2/activation_keys_controller.rb +10 -15
- data/app/controllers/katello/api/v2/capsule_content_controller.rb +2 -2
- data/app/controllers/katello/api/v2/content_credentials_controller.rb +1 -8
- data/app/controllers/katello/api/v2/content_export_incrementals_controller.rb +98 -0
- data/app/controllers/katello/api/v2/content_exports_controller.rb +84 -0
- data/app/controllers/katello/api/v2/content_imports_controller.rb +59 -0
- data/app/controllers/katello/api/v2/content_view_components_controller.rb +31 -14
- data/app/controllers/katello/api/v2/content_view_filters_controller.rb +17 -8
- data/app/controllers/katello/api/v2/content_view_repositories_controller.rb +1 -0
- data/app/controllers/katello/api/v2/content_view_versions_controller.rb +65 -71
- data/app/controllers/katello/api/v2/content_views_controller.rb +37 -26
- data/app/controllers/katello/api/v2/environments_controller.rb +8 -8
- data/app/controllers/katello/api/v2/gpg_keys_controller.rb +5 -5
- data/app/controllers/katello/api/v2/host_collections_controller.rb +19 -16
- data/app/controllers/katello/api/v2/host_debs_controller.rb +1 -0
- data/app/controllers/katello/api/v2/host_errata_controller.rb +2 -2
- data/app/controllers/katello/api/v2/hosts_bulk_actions_controller.rb +35 -6
- data/app/controllers/katello/api/v2/products_bulk_actions_controller.rb +1 -1
- data/app/controllers/katello/api/v2/products_controller.rb +9 -9
- data/app/controllers/katello/api/v2/repositories_bulk_actions_controller.rb +1 -1
- data/app/controllers/katello/api/v2/repositories_controller.rb +10 -5
- data/app/controllers/katello/api/v2/repository_sets_controller.rb +24 -14
- data/app/controllers/katello/api/v2/subscriptions_controller.rb +1 -1
- data/app/controllers/katello/api/v2/sync_plans_controller.rb +8 -9
- data/app/controllers/katello/api/v2/upstream_subscriptions_controller.rb +9 -2
- data/app/controllers/katello/concerns/api/v2/authorization.rb +19 -5
- data/app/controllers/katello/concerns/api/v2/bulk_hosts_extensions.rb +22 -18
- data/app/controllers/katello/concerns/api/v2/registration_controller_extensions.rb +21 -0
- data/app/controllers/katello/concerns/api/v2/repository_content_controller.rb +1 -1
- data/app/controllers/katello/concerns/organizations_controller_extensions.rb +2 -1
- data/app/controllers/katello/concerns/registration_controller_extensions.rb +16 -0
- data/app/helpers/katello/katello_urls_helper.rb +5 -2
- data/app/lib/actions/candlepin/product/content_create.rb +2 -0
- data/app/lib/actions/candlepin/product/content_update.rb +2 -0
- data/app/lib/actions/helpers/smart_proxy_sync_history_helper.rb +24 -0
- data/app/lib/actions/katello/applicability/hosts/bulk_generate.rb +6 -2
- data/app/lib/actions/katello/capsule_content/sync.rb +1 -1
- data/app/lib/actions/katello/capsule_content/sync_capsule.rb +16 -7
- data/app/lib/actions/katello/content_view/promote_to_environment.rb +1 -1
- data/app/lib/actions/katello/content_view/publish.rb +9 -9
- data/app/lib/actions/katello/content_view_version/import.rb +8 -13
- data/app/lib/actions/katello/content_view_version/import_library.rb +17 -0
- data/app/lib/actions/katello/content_view_version/incremental_update.rb +18 -3
- data/app/lib/actions/katello/host/hypervisors_update.rb +18 -0
- data/app/lib/actions/katello/host/update_system_purpose.rb +31 -0
- data/app/lib/actions/katello/host/upload_package_profile.rb +3 -1
- data/app/lib/actions/katello/host/upload_profiles.rb +8 -6
- data/app/lib/actions/katello/organization/manifest_delete.rb +0 -1
- data/app/lib/actions/katello/organization/manifest_import.rb +0 -1
- data/app/lib/actions/katello/organization/manifest_refresh.rb +0 -1
- data/app/lib/actions/katello/product/content_create.rb +7 -6
- data/app/lib/actions/katello/repository/filtered_index_content.rb +10 -1
- data/app/lib/actions/katello/repository/import_upload.rb +4 -1
- data/app/lib/actions/katello/repository/remove_content.rb +1 -1
- data/app/lib/actions/katello/repository/sync.rb +3 -1
- data/app/lib/actions/katello/repository/update.rb +5 -1
- data/app/lib/actions/katello/repository/upload_files.rb +1 -0
- data/app/lib/actions/middleware/record_smart_proxy_sync_history.rb +15 -0
- data/app/lib/actions/pulp/consumer/sync_capsule.rb +4 -2
- data/app/lib/actions/pulp/repository/distributor_publish.rb +1 -1
- data/app/lib/actions/pulp3/capsule_content/sync.rb +1 -0
- data/app/lib/actions/pulp3/content_migration.rb +10 -0
- data/app/lib/actions/pulp3/content_migration_presenter.rb +59 -0
- data/app/lib/actions/pulp3/content_view/delete_repository_references.rb +1 -1
- data/app/lib/actions/pulp3/content_view_version/create_importer.rb +7 -3
- data/app/lib/actions/pulp3/content_view_version/export.rb +7 -1
- data/app/lib/actions/pulp3/content_view_version/import.rb +7 -3
- data/app/lib/actions/pulp3/import_migration.rb +6 -1
- data/app/lib/actions/pulp3/orchestration/content_view_version/copy_version_units_to_library.rb +2 -1
- data/app/lib/actions/pulp3/orchestration/content_view_version/export.rb +38 -14
- data/app/lib/actions/pulp3/orchestration/content_view_version/export_library.rb +60 -0
- data/app/lib/actions/pulp3/orchestration/content_view_version/import.rb +16 -10
- data/app/lib/actions/pulp3/orchestration/repository/generate_metadata.rb +4 -1
- data/app/lib/actions/pulp3/orchestration/repository/import_upload.rb +16 -3
- data/app/lib/actions/pulp3/repository/commit_upload.rb +2 -1
- data/app/lib/actions/pulp3/repository/copy_content.rb +1 -1
- data/app/lib/actions/pulp3/repository/delete.rb +1 -1
- data/app/lib/actions/pulp3/repository/save_artifact.rb +1 -1
- data/app/lib/actions/pulp3/repository/save_version.rb +1 -1
- data/app/lib/actions/pulp3/repository/upload_tag.rb +18 -0
- data/app/lib/katello/resources/candlepin/consumer.rb +2 -2
- data/app/lib/katello/resources/candlepin/owner.rb +5 -0
- data/app/lib/katello/resources/candlepin/upstream_consumer.rb +6 -0
- data/app/lib/katello/resources/registry.rb +3 -3
- data/app/models/katello/authorization/activation_key.rb +4 -0
- data/app/models/katello/authorization/content_view.rb +13 -0
- data/app/models/katello/authorization/content_view_component.rb +15 -0
- data/app/models/katello/authorization/content_view_filter.rb +15 -0
- data/app/models/katello/authorization/content_view_version.rb +25 -2
- data/app/models/katello/authorization/content_view_version_export_history.rb +1 -1
- data/app/models/katello/authorization/gpg_key.rb +12 -4
- data/app/models/katello/authorization/lifecycle_environment.rb +8 -0
- data/app/models/katello/authorization/organization.rb +8 -0
- data/app/models/katello/authorization/sync_plan.rb +16 -0
- data/app/models/katello/concerns/operatingsystem_extensions.rb +2 -0
- data/app/models/katello/concerns/organization_extensions.rb +4 -5
- data/app/models/katello/concerns/smart_proxy_extensions.rb +6 -4
- data/app/models/katello/content_migration_progress.rb +4 -0
- data/app/models/katello/content_view.rb +30 -4
- data/app/models/katello/content_view_component.rb +2 -0
- data/app/models/katello/content_view_filter.rb +5 -0
- data/app/models/katello/content_view_history.rb +2 -1
- data/app/models/katello/content_view_package_filter.rb +1 -1
- data/app/models/katello/content_view_puppet_module.rb +8 -0
- data/app/models/katello/content_view_repository.rb +13 -1
- data/app/models/katello/content_view_version_export_history.rb +8 -1
- data/app/models/katello/glue/candlepin/pool.rb +9 -14
- data/app/models/katello/glue/pulp/repo.rb +8 -0
- data/app/models/katello/gpg_key.rb +1 -1
- data/app/models/katello/ping.rb +8 -3
- data/app/models/katello/repository.rb +33 -0
- data/app/models/katello/root_repository.rb +26 -1
- data/app/models/katello/smart_proxy_sync_history.rb +8 -0
- data/app/services/katello/candlepin/event_handler.rb +2 -0
- data/app/services/katello/candlepin/message_handler.rb +34 -0
- data/app/services/katello/candlepin/upstream_consumer.rb +28 -0
- data/app/services/katello/host_status_manager.rb +9 -0
- data/app/services/katello/pulp3/api/apt.rb +57 -0
- data/app/services/katello/pulp3/api/core.rb +8 -0
- data/app/services/katello/pulp3/api/docker.rb +4 -0
- data/app/services/katello/pulp3/content_view_version/export.rb +125 -8
- data/app/services/katello/pulp3/content_view_version/import.rb +39 -34
- data/app/services/katello/pulp3/content_view_version/import_export_common.rb +6 -16
- data/app/services/katello/pulp3/content_view_version/import_validator.rb +114 -0
- data/app/services/katello/pulp3/deb.rb +38 -0
- data/app/services/katello/pulp3/docker_manifest.rb +1 -0
- data/app/services/katello/pulp3/docker_tag.rb +1 -0
- data/app/services/katello/pulp3/migration.rb +51 -10
- data/app/services/katello/pulp3/pulp_content_unit.rb +5 -0
- data/app/services/katello/pulp3/repository.rb +10 -4
- data/app/services/katello/pulp3/repository/ansible_collection.rb +9 -0
- data/app/services/katello/pulp3/repository/apt.rb +63 -0
- data/app/services/katello/pulp3/repository/docker.rb +9 -0
- data/app/services/katello/pulp3/repository/yum.rb +14 -9
- data/app/services/katello/pulp3/repository_mirror.rb +9 -4
- data/app/services/katello/pulp3/task.rb +4 -0
- data/app/services/katello/pulp3/task_group.rb +4 -0
- data/app/services/katello/repository_type.rb +2 -1
- data/app/services/katello/smart_proxy_helper.rb +9 -0
- data/app/views/dashboard/_subscription_widget.html.erb +0 -5
- data/app/views/foreman/hosts/_registration.html.erb +12 -0
- data/app/views/katello/api/v2/content_view_version_export_histories/show.json.rabl +1 -1
- data/app/views/katello/api/v2/content_views/base.json.rabl +1 -0
- data/app/views/katello/api/v2/repositories/base.json.rabl +1 -1
- data/app/views/katello/layouts/react.html.erb +3 -2
- data/app/views/overrides/activation_keys/_host_tab_pane.html.erb +1 -5
- data/app/views/overrides/organizations/_index_row_override.html.erb +1 -1
- data/config/routes/api/v2.rb +24 -2
- data/config/routes/overrides.rb +1 -0
- data/db/migrate/20200929200357_create_katello_smart_proxy_sync_history.rb +13 -0
- data/db/migrate/20201008204114_add_os_versions_to_katello_root_repositories.rb +5 -0
- data/db/migrate/20201012172713_remove_gpg_key_perms.rb +23 -0
- data/db/migrate/20201012192035_add_metadata_to_katello_content_view_version_export_history.rb +5 -0
- data/db/migrate/20201021150008_add_import_only_to_katello_content_view.rb +5 -0
- data/db/migrate/20201119211133_pulp3_migration_progress.rb +9 -0
- data/db/seeds.d/111-upgrade_tasks.rb +2 -1
- data/engines/bastion/app/assets/javascripts/bastion/components/notification.service.js +1 -1
- data/engines/bastion/app/assets/javascripts/bastion/components/nutupane.factory.js +8 -13
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/content-hosts-bulk-system-purpose-modal.controller.js +112 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/views/content-hosts-bulk-system-purpose-modal.html +78 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content-host-modal-helper.service.js +11 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content-hosts.controller.js +5 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/content-host-debs-installed.controller.js +2 -42
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/views/content-hosts.html +4 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/content-views.controller.js +6 -2
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/content-view-details.controller.js +12 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/views/content-view-details.html +7 -7
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/views/content-view-info.html +7 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/new/content-view-new.controller.js +17 -3
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/new/views/content-view-new.html +16 -2
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/views/content-views.html +5 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/host-collections/details/host-collection-details.controller.js +4 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/host-collections/details/views/host-collection-info.html +6 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/hosts/host-bulk-action.factory.js +2 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/bastion_katello.pot +92 -19
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/de.po +17 -20
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/es.po +17 -24
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/fr.po +1292 -1170
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/it.po +17 -20
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ja.po +858 -807
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ko.po +18 -19
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/pt_BR.po +17 -24
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/ru.po +17 -18
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/zh_CN.po +986 -971
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/locale/zh_TW.po +19 -20
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/translations.js +9 -9
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/bulk/products-bulk-advanced-sync-modal.controller.js +6 -7
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/repository-details-info.controller.js +168 -155
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-info.html +17 -2
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/new/new-repository.controller.js +125 -113
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/new/views/new-repository.html +15 -3
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/os-versions.service.js +46 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/repository-types.service.js +8 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/subscriptions/views/content-access-mode-banner.html +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/sync-plans/details/views/sync-plan-details.html +1 -1
- data/lib/katello/engine.rb +2 -0
- data/lib/katello/permission_creator.rb +98 -69
- data/lib/katello/permissions/host_permissions.rb +1 -0
- data/lib/katello/plugin.rb +10 -2
- data/lib/katello/repository_types/deb.rb +9 -1
- data/lib/katello/tasks/pulp3_migration.rake +17 -3
- data/lib/katello/tasks/pulp3_migration_abort.rake +22 -0
- data/lib/katello/tasks/pulp3_migration_stats.rake +41 -0
- data/lib/katello/tasks/receptor/extract_orgs.rake +1 -1
- data/lib/katello/tasks/reset.rake +2 -1
- data/lib/katello/tasks/upgrades/3.18/add_cvv_export_history_metadata.rb +18 -0
- data/lib/katello/version.rb +1 -1
- data/locale/action_names.rb +51 -44
- data/locale/bn/katello.po +279 -55
- data/locale/cs/katello.po +278 -51
- data/locale/de/katello.po +279 -52
- data/locale/en/katello.po +278 -49
- data/locale/es/katello.po +279 -51
- data/locale/fr/katello.po +279 -51
- data/locale/gu/katello.po +279 -55
- data/locale/hi/katello.po +279 -55
- data/locale/it/katello.po +279 -51
- data/locale/ja/katello.po +279 -52
- data/locale/katello.pot +1379 -971
- data/locale/kn/katello.po +279 -55
- data/locale/ko/katello.po +279 -51
- data/locale/mr/katello.po +279 -55
- data/locale/or/katello.po +279 -55
- data/locale/pa/katello.po +279 -55
- data/locale/pt/katello.po +278 -52
- data/locale/pt_BR/katello.po +279 -51
- data/locale/ru/katello.po +279 -51
- data/locale/ta/katello.po +279 -55
- data/locale/te/katello.po +279 -55
- data/locale/zh_CN/katello.po +279 -51
- data/locale/zh_TW/katello.po +279 -52
- data/webpack/components/ActionableDetail.js +2 -1
- data/webpack/components/Search/Search.js +1 -1
- data/webpack/components/Table/MainTable.js +6 -2
- data/webpack/components/Table/TableWrapper.js +46 -9
- data/webpack/scenes/ContentViews/ContentViewSelectors.js +7 -3
- data/webpack/scenes/ContentViews/ContentViewsConstants.js +8 -0
- data/webpack/scenes/ContentViews/ContentViewsPage.js +2 -9
- data/webpack/scenes/ContentViews/Details/ContentViewDetailActions.js +25 -3
- data/webpack/scenes/ContentViews/Details/ContentViewDetailSelectors.js +14 -4
- data/webpack/scenes/ContentViews/Details/ContentViewDetails.js +2 -1
- data/webpack/scenes/ContentViews/Details/Repositories/ContentCounts.js +56 -0
- data/webpack/scenes/ContentViews/Details/Repositories/ContentViewRepositories.js +169 -0
- data/webpack/scenes/ContentViews/Details/Repositories/LastSync.js +47 -0
- data/webpack/scenes/ContentViews/Details/Repositories/RepoAddedStatus.js +17 -0
- data/webpack/scenes/ContentViews/Details/Repositories/RepoIcon.js +23 -0
- data/webpack/scenes/ContentViews/Details/Repositories/SelectableDropdown.js +49 -0
- data/webpack/scenes/ContentViews/Details/Repositories/__tests__/contentViewDetailRepos.fixtures.json +154 -0
- data/webpack/scenes/ContentViews/Details/Repositories/__tests__/contentViewDetailRepos.test.js +131 -0
- data/webpack/scenes/ContentViews/Details/__tests__/contentViewDetail.test.js +3 -0
- data/webpack/scenes/ContentViews/Table/ContentViewsTable.js +4 -1
- data/webpack/scenes/ContentViews/__tests__/contentViewPage.test.js +2 -2
- data/webpack/scenes/Subscriptions/Manifest/ManageManifestModal.js +29 -19
- data/webpack/scenes/Subscriptions/Manifest/ManifestActions.js +17 -0
- data/webpack/scenes/Subscriptions/Manifest/ManifestConstants.js +4 -0
- data/webpack/scenes/Subscriptions/Manifest/SimpleContentAccess.js +19 -2
- data/webpack/scenes/Subscriptions/Manifest/__tests__/SimpleContentAccess.test.js +9 -1
- data/webpack/scenes/Subscriptions/Manifest/index.js +2 -1
- data/webpack/scenes/Subscriptions/SubscriptionConstants.js +1 -1
- data/webpack/scenes/Subscriptions/SubscriptionReducer.js +3 -0
- data/webpack/scenes/Subscriptions/SubscriptionsPage.js +8 -2
- data/webpack/scenes/Subscriptions/SubscriptionsSelectors.js +3 -0
- data/webpack/scenes/Subscriptions/__tests__/SubscriptionsPage.test.js +3 -0
- data/webpack/scenes/Subscriptions/__tests__/SubscriptionsSelectors.test.js +6 -0
- data/webpack/scenes/Subscriptions/__tests__/__snapshots__/SubscriptionsSelectors.test.js.snap +6 -0
- data/webpack/scenes/Subscriptions/components/SubscriptionsToolbar/SubscriptionsToolbar.js +1 -13
- data/webpack/test-utils/react-testing-lib-wrapper.js +3 -0
- metadata +74 -13
- data/webpack/__mocks__/foremanReact/components/common/Fill/GlobalFill.js +0 -3
@@ -3,7 +3,6 @@ import React from 'react';
|
|
3
3
|
import { renderWithRedux, patientlyWaitFor, fireEvent } from 'react-testing-lib-wrapper';
|
4
4
|
|
5
5
|
import CONTENT_VIEWS_KEY from '../ContentViewsConstants';
|
6
|
-
import { createContentViewsParams } from '../ContentViewsActions';
|
7
6
|
import ContentViewsPage from '../../ContentViews';
|
8
7
|
import api from '../../../services/api';
|
9
8
|
import nock, {
|
@@ -136,7 +135,8 @@ test('Can handle pagination', async (done) => {
|
|
136
135
|
// Match first page API request
|
137
136
|
const firstPageScope = nockInstance
|
138
137
|
.get(cvIndexPath)
|
139
|
-
|
138
|
+
// Using a custom query params matcher because parameters can be strings
|
139
|
+
.query(actualQueryObject => parseInt(actualQueryObject.page, 10) === 1)
|
140
140
|
.reply(200, cvIndexFirstPage);
|
141
141
|
|
142
142
|
// Match second page API request
|
@@ -3,6 +3,7 @@ import PropTypes from 'prop-types';
|
|
3
3
|
import { Grid, Col, Row, Tabs, Tab, Form, FormGroup, FormControl, ControlLabel } from 'react-bootstrap';
|
4
4
|
import { Button, Spinner } from 'patternfly-react';
|
5
5
|
import ForemanModal from 'foremanReact/components/ForemanModal';
|
6
|
+
import Slot from 'foremanReact/components/common/Slot';
|
6
7
|
import { translate as __ } from 'foremanReact/common/I18n';
|
7
8
|
import TooltipButton from '../../../components/TooltipButton';
|
8
9
|
import { LoadingState } from '../../../components/LoadingState';
|
@@ -93,6 +94,7 @@ class ManageManifestModal extends Component {
|
|
93
94
|
isManifestImported,
|
94
95
|
canEditOrganizations,
|
95
96
|
simpleContentAccess,
|
97
|
+
simpleContentAccessEligible,
|
96
98
|
enableSimpleContentAccess,
|
97
99
|
disableSimpleContentAccess,
|
98
100
|
taskInProgress,
|
@@ -104,6 +106,8 @@ class ManageManifestModal extends Component {
|
|
104
106
|
const showSubscriptionManifest = (canImportManifest || canDeleteManifest);
|
105
107
|
const showManifestTab = (showRedHatProviderDetails || showSubscriptionManifest);
|
106
108
|
const disableSCASwitch = (
|
109
|
+
// allow users to turn SCA off even if they are not eligible to turn it back on
|
110
|
+
(!simpleContentAccessEligible && !simpleContentAccess) ||
|
107
111
|
disableManifestActions ||
|
108
112
|
!isManifestImported ||
|
109
113
|
actionInProgress ||
|
@@ -194,14 +198,17 @@ class ManageManifestModal extends Component {
|
|
194
198
|
<Grid>
|
195
199
|
<h3>{__('Subscription Manifest')}</h3>
|
196
200
|
<hr />
|
197
|
-
|
198
|
-
<
|
199
|
-
|
200
|
-
|
201
|
-
|
202
|
-
|
203
|
-
|
204
|
-
|
201
|
+
{ isManifestImported &&
|
202
|
+
<Row>
|
203
|
+
<SimpleContentAccess
|
204
|
+
enableSimpleContentAccess={enableSimpleContentAccess}
|
205
|
+
disableSimpleContentAccess={disableSimpleContentAccess}
|
206
|
+
isSimpleContentAccessEnabled={simpleContentAccess}
|
207
|
+
canToggleSimpleContentAccess={!disableSCASwitch}
|
208
|
+
simpleContentAccessEligible={simpleContentAccessEligible}
|
209
|
+
/>
|
210
|
+
</Row>
|
211
|
+
}
|
205
212
|
<Row>
|
206
213
|
<Col sm={5}>
|
207
214
|
<strong>{__('Subscription Allocation')}</strong>
|
@@ -244,17 +251,17 @@ class ManageManifestModal extends Component {
|
|
244
251
|
/>
|
245
252
|
}
|
246
253
|
{canDeleteManifest &&
|
247
|
-
|
248
|
-
|
249
|
-
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
|
254
|
-
|
255
|
-
|
256
|
-
|
257
|
-
|
254
|
+
<React.Fragment>
|
255
|
+
<TooltipButton
|
256
|
+
disabled={!isManifestImported || actionInProgress}
|
257
|
+
bsStyle="danger"
|
258
|
+
onClick={this.showDeleteManifestModal}
|
259
|
+
title={__('Delete')}
|
260
|
+
tooltipId="delete-manifest-button-tooltip"
|
261
|
+
tooltipText={this.disabledTooltipText()}
|
262
|
+
tooltipPlacement="top"
|
263
|
+
/>
|
264
|
+
</React.Fragment>
|
258
265
|
}
|
259
266
|
</div>
|
260
267
|
<ForemanModal title={__('Confirm delete manifest')} id={DELETE_MANIFEST_MODAL_ID}>
|
@@ -274,6 +281,7 @@ class ManageManifestModal extends Component {
|
|
274
281
|
</FormGroup>
|
275
282
|
</React.Fragment>
|
276
283
|
}
|
284
|
+
<Slot id="katello-manage-manifest-form" multi />
|
277
285
|
</Form>
|
278
286
|
</Tab>
|
279
287
|
}
|
@@ -325,6 +333,7 @@ ManageManifestModal.propTypes = {
|
|
325
333
|
saveOrganization: PropTypes.func.isRequired,
|
326
334
|
taskInProgress: PropTypes.bool.isRequired,
|
327
335
|
simpleContentAccess: PropTypes.bool,
|
336
|
+
simpleContentAccessEligible: PropTypes.bool,
|
328
337
|
manifestHistory: PropTypes.shape({
|
329
338
|
loading: PropTypes.bool,
|
330
339
|
// Disabling rule as existing code failed due to an eslint-plugin-react update
|
@@ -344,6 +353,7 @@ ManageManifestModal.defaultProps = {
|
|
344
353
|
isManifestImported: false,
|
345
354
|
canEditOrganizations: false,
|
346
355
|
simpleContentAccess: false,
|
356
|
+
simpleContentAccessEligible: undefined,
|
347
357
|
manifestActionStarted: false,
|
348
358
|
};
|
349
359
|
|
@@ -22,6 +22,9 @@ import {
|
|
22
22
|
DISABLE_SIMPLE_CONTENT_ACCESS_REQUEST,
|
23
23
|
DISABLE_SIMPLE_CONTENT_ACCESS_SUCCESS,
|
24
24
|
DISABLE_SIMPLE_CONTENT_ACCESS_FAILURE,
|
25
|
+
SIMPLE_CONTENT_ACCESS_ELIGIBLE_REQUEST,
|
26
|
+
SIMPLE_CONTENT_ACCESS_ELIGIBLE_SUCCESS,
|
27
|
+
SIMPLE_CONTENT_ACCESS_ELIGIBLE_FAILURE,
|
25
28
|
} from './ManifestConstants';
|
26
29
|
|
27
30
|
export const uploadManifest = file => async (dispatch) => {
|
@@ -81,6 +84,20 @@ export const deleteManifest = (extendedParams = {}) => async (dispatch) => {
|
|
81
84
|
}
|
82
85
|
};
|
83
86
|
|
87
|
+
export const checkSimpleContentAccessEligible = () => async (dispatch) => {
|
88
|
+
dispatch({ type: SIMPLE_CONTENT_ACCESS_ELIGIBLE_REQUEST });
|
89
|
+
|
90
|
+
try {
|
91
|
+
const { data } = await api.get(`/organizations/${orgId()}/upstream_subscriptions/simple_content_access/eligible`, {});
|
92
|
+
return dispatch({
|
93
|
+
type: SIMPLE_CONTENT_ACCESS_ELIGIBLE_SUCCESS,
|
94
|
+
response: data,
|
95
|
+
});
|
96
|
+
} catch (error) {
|
97
|
+
return dispatch(apiError(SIMPLE_CONTENT_ACCESS_ELIGIBLE_FAILURE, error));
|
98
|
+
}
|
99
|
+
};
|
100
|
+
|
84
101
|
export const enableSimpleContentAccess = (extendedParams = {}) => async (dispatch) => {
|
85
102
|
dispatch({ type: ENABLE_SIMPLE_CONTENT_ACCESS_REQUEST });
|
86
103
|
|
@@ -22,6 +22,10 @@ export const DISABLE_SIMPLE_CONTENT_ACCESS_REQUEST = 'DISABLE_SIMPLE_CONTENT_ACC
|
|
22
22
|
export const DISABLE_SIMPLE_CONTENT_ACCESS_SUCCESS = 'DISABLE_SIMPLE_CONTENT_ACCESS_SUCCESS';
|
23
23
|
export const DISABLE_SIMPLE_CONTENT_ACCESS_FAILURE = 'DISABLE_SIMPLE_CONTENT_ACCESS_FAILURE';
|
24
24
|
|
25
|
+
export const SIMPLE_CONTENT_ACCESS_ELIGIBLE_REQUEST = 'SIMPLE_CONTENT_ACCESS_ELIGIBLE_REQUEST';
|
26
|
+
export const SIMPLE_CONTENT_ACCESS_ELIGIBLE_SUCCESS = 'SIMPLE_CONTENT_ACCESS_ELIGIBLE_SUCCESS';
|
27
|
+
export const SIMPLE_CONTENT_ACCESS_ELIGIBLE_FAILURE = 'SIMPLE_CONTENT_ACCESS_ELIGIBLE_FAILURE';
|
28
|
+
|
25
29
|
// Modal IDs
|
26
30
|
export const MANAGE_MANIFEST_MODAL_ID = 'manageManifestModal';
|
27
31
|
export const DELETE_MANIFEST_MODAL_ID = 'deleteManifestModal';
|
@@ -11,6 +11,7 @@ const SimpleContentAccess = (props) => {
|
|
11
11
|
isSimpleContentAccessEnabled,
|
12
12
|
enableSimpleContentAccess,
|
13
13
|
disableSimpleContentAccess,
|
14
|
+
simpleContentAccessEligible,
|
14
15
|
} = props;
|
15
16
|
|
16
17
|
const toggleSimpleContentAccess = () => {
|
@@ -21,6 +22,17 @@ const SimpleContentAccess = (props) => {
|
|
21
22
|
}
|
22
23
|
};
|
23
24
|
|
25
|
+
const simpleContentAccessText = () => {
|
26
|
+
// don't show this text unless explicitly told to
|
27
|
+
if (simpleContentAccessEligible !== undefined) {
|
28
|
+
if (!simpleContentAccessEligible && !isSimpleContentAccessEnabled) {
|
29
|
+
return __('Simple Content Access has been disabled by the upstream organization administrator.');
|
30
|
+
}
|
31
|
+
}
|
32
|
+
|
33
|
+
return __('Toggling Simple Content Access will refresh your manifest.');
|
34
|
+
};
|
35
|
+
|
24
36
|
return (
|
25
37
|
<div id="simple-content-access">
|
26
38
|
<Col sm={5}>
|
@@ -36,7 +48,7 @@ const SimpleContentAccess = (props) => {
|
|
36
48
|
<OverlayTrigger
|
37
49
|
overlay={
|
38
50
|
<Tooltip id="sca-refresh-tooltip">
|
39
|
-
{__('When Simple Content Access is enabled, hosts
|
51
|
+
{__('When Simple Content Access is enabled, hosts are not required to have subscriptions attached to access repositories.')}
|
40
52
|
</Tooltip>
|
41
53
|
}
|
42
54
|
placement="bottom"
|
@@ -61,7 +73,7 @@ const SimpleContentAccess = (props) => {
|
|
61
73
|
/>
|
62
74
|
</div>
|
63
75
|
<div>
|
64
|
-
<i>{
|
76
|
+
<i>{simpleContentAccessText()}</i>
|
65
77
|
</div>
|
66
78
|
</Col>
|
67
79
|
</div>
|
@@ -73,6 +85,11 @@ SimpleContentAccess.propTypes = {
|
|
73
85
|
disableSimpleContentAccess: PropTypes.func.isRequired,
|
74
86
|
isSimpleContentAccessEnabled: PropTypes.bool.isRequired,
|
75
87
|
canToggleSimpleContentAccess: PropTypes.bool.isRequired,
|
88
|
+
simpleContentAccessEligible: PropTypes.bool,
|
89
|
+
};
|
90
|
+
|
91
|
+
SimpleContentAccess.defaultProps = {
|
92
|
+
simpleContentAccessEligible: undefined,
|
76
93
|
};
|
77
94
|
|
78
95
|
export default SimpleContentAccess;
|
@@ -9,7 +9,15 @@ import api from '../../../../services/api';
|
|
9
9
|
afterEach(cleanup);
|
10
10
|
|
11
11
|
const noop = jest.fn();
|
12
|
-
const organization = {
|
12
|
+
const organization = {
|
13
|
+
id: 1,
|
14
|
+
redhat_repository_url: 'https://redhat.com',
|
15
|
+
owner_details: {
|
16
|
+
upstreamConsumer: {
|
17
|
+
webUrl: 'https://example.com/',
|
18
|
+
},
|
19
|
+
},
|
20
|
+
};
|
13
21
|
|
14
22
|
const defaultProps = {
|
15
23
|
disableManifestActions: false,
|
@@ -7,7 +7,7 @@ import * as organizationActions from '../../Organizations/OrganizationActions';
|
|
7
7
|
import * as tasksActions from '../../Tasks/TaskActions';
|
8
8
|
import history from './ManifestHistoryReducer';
|
9
9
|
import { selectSimpleContentAccessEnabled, selectIsManifestImported } from '../../Organizations/OrganizationSelectors';
|
10
|
-
import { selectManifestActionStarted } from '../SubscriptionsSelectors';
|
10
|
+
import { selectManifestActionStarted, selectSimpleContentAccessEligible } from '../SubscriptionsSelectors';
|
11
11
|
|
12
12
|
import ManifestModal from './ManageManifestModal';
|
13
13
|
|
@@ -21,6 +21,7 @@ const mapStateToProps = state => ({
|
|
21
21
|
isManifestImported: selectIsManifestImported(state),
|
22
22
|
modalOpenState: state.foremanModals.ManageManifestModal,
|
23
23
|
manifestActionStarted: selectManifestActionStarted(state),
|
24
|
+
simpleContentAccessEligible: selectSimpleContentAccessEligible(state),
|
24
25
|
});
|
25
26
|
|
26
27
|
// map action dispatchers to props
|
@@ -37,7 +37,7 @@ export const SUBSCRIPTIONS_CLOSE_DELETE_MODAL = 'SUBSCRIPTIONS_CLOSE_DELETE_MODA
|
|
37
37
|
export const SUBSCRIPTIONS_DISABLE_DELETE_BUTTON = 'SUBSCRIPTIONS_DISABLE_DELETE_BUTTON';
|
38
38
|
export const SUBSCRIPTIONS_ENABLE_DELETE_BUTTON = 'SUBSCRIPTIONS_ENABLE_DELETE_BUTTON';
|
39
39
|
|
40
|
-
export const SUBSCRIPTION_WATCH_URL = 'https://
|
40
|
+
export const SUBSCRIPTION_WATCH_URL = 'https://access.redhat.com/articles/subscription-watch';
|
41
41
|
|
42
42
|
export const MANIFEST_DELETE_TASK_LABEL = 'Actions::Katello::Organization::ManifestDelete';
|
43
43
|
|
@@ -41,6 +41,7 @@ import {
|
|
41
41
|
ENABLE_SIMPLE_CONTENT_ACCESS_REQUEST,
|
42
42
|
ENABLE_SIMPLE_CONTENT_ACCESS_SUCCESS,
|
43
43
|
DISABLE_SIMPLE_CONTENT_ACCESS_SUCCESS,
|
44
|
+
SIMPLE_CONTENT_ACCESS_ELIGIBLE_SUCCESS,
|
44
45
|
UPLOAD_MANIFEST_FAILURE,
|
45
46
|
UPLOAD_MANIFEST_REQUEST,
|
46
47
|
DELETE_MANIFEST_FAILURE,
|
@@ -68,6 +69,8 @@ const initialState = Immutable({
|
|
68
69
|
|
69
70
|
export default (state = initialState, action) => {
|
70
71
|
switch (action.type) {
|
72
|
+
case SIMPLE_CONTENT_ACCESS_ELIGIBLE_SUCCESS:
|
73
|
+
return state.set('simpleContentAccessEligible', action.response.simple_content_access_eligible);
|
71
74
|
case PING_UPSTREAM_SUBSCRIPTIONS_SUCCESS:
|
72
75
|
return state.set('hasUpstreamConnection', true);
|
73
76
|
case PING_UPSTREAM_SUBSCRIPTIONS_FAILURE:
|
@@ -51,6 +51,7 @@ class SubscriptionsPage extends Component {
|
|
51
51
|
settings,
|
52
52
|
subscriptions,
|
53
53
|
task,
|
54
|
+
checkSimpleContentAccessEligible,
|
54
55
|
} = this.props;
|
55
56
|
|
56
57
|
const { disconnected } = settings;
|
@@ -79,6 +80,10 @@ class SubscriptionsPage extends Component {
|
|
79
80
|
}
|
80
81
|
|
81
82
|
if (hasUpstreamConnection) {
|
83
|
+
if (hasUpstreamConnection !== prevProps.hasUpstreamConnection) {
|
84
|
+
checkSimpleContentAccessEligible();
|
85
|
+
}
|
86
|
+
|
82
87
|
const subscriptionsChanged = subscriptions.results !== prevProps.subscriptions.results;
|
83
88
|
if (subscriptionsChanged || !this.state.availableQuantitiesLoaded) {
|
84
89
|
const poolIds = filterRHSubscriptions(subscriptions.results).map(subs => subs.id);
|
@@ -267,8 +272,8 @@ class SubscriptionsPage extends Component {
|
|
267
272
|
{simpleContentAccess && (
|
268
273
|
<Alert type="info">
|
269
274
|
This organization has Simple Content Access enabled.
|
270
|
-
Hosts
|
271
|
-
|
275
|
+
Hosts are not required to have subscriptions attached to access repositories.
|
276
|
+
<br />
|
272
277
|
Learn more about your overall subscription usage at
|
273
278
|
{' '}<a href={SUBSCRIPTION_WATCH_URL} target="_blank" rel="noreferrer">Subscription Watch</a>.
|
274
279
|
</Alert>
|
@@ -305,6 +310,7 @@ class SubscriptionsPage extends Component {
|
|
305
310
|
|
306
311
|
SubscriptionsPage.propTypes = {
|
307
312
|
pingUpstreamSubscriptions: PropTypes.func.isRequired,
|
313
|
+
checkSimpleContentAccessEligible: PropTypes.func.isRequired,
|
308
314
|
loadSubscriptions: PropTypes.func.isRequired,
|
309
315
|
loadAvailableQuantities: PropTypes.func.isRequired,
|
310
316
|
uploadManifest: PropTypes.func.isRequired,
|
@@ -29,3 +29,6 @@ export const selectManifestActionStarted = state =>
|
|
29
29
|
|
30
30
|
export const selectHasUpstreamConnection = state =>
|
31
31
|
selectSubscriptionsState(state).hasUpstreamConnection;
|
32
|
+
|
33
|
+
export const selectSimpleContentAccessEligible = state =>
|
34
|
+
selectSubscriptionsState(state).simpleContentAccessEligible;
|
@@ -6,6 +6,7 @@ import SubscriptionsPage from '../SubscriptionsPage';
|
|
6
6
|
import { successState, settingsSuccessState, permissionDeniedState } from './subscriptions.fixtures';
|
7
7
|
import { loadAvailableQuantities, loadSubscriptions, updateQuantity, loadTableColumns } from '../SubscriptionActions';
|
8
8
|
import { pingUpstreamSubscriptions } from '../UpstreamSubscriptions/UpstreamSubscriptionsActions';
|
9
|
+
import { checkSimpleContentAccessEligible } from '../Manifest/ManifestActions';
|
9
10
|
import { createColumns, updateColumns } from '../../../scenes/Settings/Tables/TableActions';
|
10
11
|
|
11
12
|
jest.mock('foremanReact/components/PermissionDenied');
|
@@ -43,6 +44,7 @@ describe('subscriptions page', () => {
|
|
43
44
|
loadSubscriptions={loadSubscriptions}
|
44
45
|
loadAvailableQuantities={loadAvailableQuantities}
|
45
46
|
pingUpstreamSubscriptions={pingUpstreamSubscriptions}
|
47
|
+
checkSimpleContentAccessEligible={checkSimpleContentAccessEligible}
|
46
48
|
updateQuantity={updateQuantity}
|
47
49
|
handleStartTask={handleStartTask}
|
48
50
|
handleFinishedTask={handleFinishedTask}
|
@@ -78,6 +80,7 @@ describe('subscriptions page', () => {
|
|
78
80
|
loadSubscriptions={loadSubscriptions}
|
79
81
|
loadAvailableQuantities={loadAvailableQuantities}
|
80
82
|
pingUpstreamSubscriptions={pingUpstreamSubscriptions}
|
83
|
+
checkSimpleContentAccessEligible={checkSimpleContentAccessEligible}
|
81
84
|
updateQuantity={updateQuantity}
|
82
85
|
handleStartTask={handleStartTask}
|
83
86
|
handleFinishedTask={handleFinishedTask}
|
@@ -5,6 +5,8 @@ import {
|
|
5
5
|
selectDeleteModalOpened,
|
6
6
|
selectDeleteButtonDisabled,
|
7
7
|
selectSubscriptionsTask,
|
8
|
+
selectHasUpstreamConnection,
|
9
|
+
selectSimpleContentAccessEligible,
|
8
10
|
} from '../SubscriptionsSelectors';
|
9
11
|
|
10
12
|
const state = {
|
@@ -14,6 +16,8 @@ const state = {
|
|
14
16
|
deleteModalOpened: false,
|
15
17
|
taskModalOpened: false,
|
16
18
|
deleteButtonDisabled: true,
|
19
|
+
hasUpstreamConnection: false,
|
20
|
+
simpleContentAccessEligible: false,
|
17
21
|
task: {},
|
18
22
|
},
|
19
23
|
},
|
@@ -25,6 +29,8 @@ const fixtures = {
|
|
25
29
|
'should select delete-modal-opened': () => selectDeleteModalOpened(state),
|
26
30
|
'should select delete-button-disabled': () => selectDeleteButtonDisabled(state),
|
27
31
|
'should select subscriptions task': () => selectSubscriptionsTask(state),
|
32
|
+
'should select whether we have an upstream connection': () => selectHasUpstreamConnection(state),
|
33
|
+
'should select whether we are simple content access eligible': () => selectSimpleContentAccessEligible(state),
|
28
34
|
};
|
29
35
|
|
30
36
|
describe('Subscriptions selectors', () => testSelectorsSnapshotWithFixtures(fixtures));
|
data/webpack/scenes/Subscriptions/__tests__/__snapshots__/SubscriptionsSelectors.test.js.snap
CHANGED
@@ -12,8 +12,14 @@ exports[`Subscriptions selectors should select the subscriptions state 1`] = `
|
|
12
12
|
Object {
|
13
13
|
"deleteButtonDisabled": true,
|
14
14
|
"deleteModalOpened": false,
|
15
|
+
"hasUpstreamConnection": false,
|
15
16
|
"searchQuery": "some-query",
|
17
|
+
"simpleContentAccessEligible": false,
|
16
18
|
"task": Object {},
|
17
19
|
"taskModalOpened": false,
|
18
20
|
}
|
19
21
|
`;
|
22
|
+
|
23
|
+
exports[`Subscriptions selectors should select whether we are simple content access eligible 1`] = `false`;
|
24
|
+
|
25
|
+
exports[`Subscriptions selectors should select whether we have an upstream connection 1`] = `false`;
|
@@ -1,6 +1,6 @@
|
|
1
1
|
import React from 'react';
|
2
2
|
import PropTypes from 'prop-types';
|
3
|
-
import { Row, Col, Form, FormGroup, Button
|
3
|
+
import { Row, Col, Form, FormGroup, Button } from 'patternfly-react';
|
4
4
|
import { LinkContainer } from 'react-router-bootstrap';
|
5
5
|
import { noop } from 'foremanReact/common/helpers';
|
6
6
|
import { translate as __ } from 'foremanReact/common/I18n';
|
@@ -67,18 +67,6 @@ const SubscriptionsToolbar = ({
|
|
67
67
|
rel="noreferrer"
|
68
68
|
>
|
69
69
|
{__('Subscription Watch')}
|
70
|
-
<OverlayTrigger
|
71
|
-
overlay={
|
72
|
-
<Tooltip id="sub-watch-tooltip">
|
73
|
-
{__('Learn more about your overall subscription usage (opens in a new tab)')}
|
74
|
-
</Tooltip>
|
75
|
-
}
|
76
|
-
placement="bottom"
|
77
|
-
trigger={['hover', 'focus']}
|
78
|
-
rootClose={false}
|
79
|
-
>
|
80
|
-
<Icon type="pf" name="info" />
|
81
|
-
</OverlayTrigger>
|
82
70
|
</a>
|
83
71
|
}
|
84
72
|
|
@@ -5,6 +5,7 @@ import React from 'react';
|
|
5
5
|
import thunk from 'redux-thunk';
|
6
6
|
import Immutable from 'seamless-immutable';
|
7
7
|
import { APIMiddleware, reducers as apiReducer } from 'foremanReact/redux/API';
|
8
|
+
import { reducers as fillReducers } from 'foremanReact/components/common/Fill';
|
8
9
|
import { reducers as foremanModalReducer } from 'foremanReact/components/ForemanModal';
|
9
10
|
import { STATUS } from 'foremanReact/constants';
|
10
11
|
import { render, waitFor } from '@testing-library/react';
|
@@ -33,6 +34,7 @@ function renderWithRedux(
|
|
33
34
|
katello: allKatelloReducers,
|
34
35
|
...apiReducer,
|
35
36
|
...foremanModalReducer,
|
37
|
+
...fillReducers,
|
36
38
|
});
|
37
39
|
|
38
40
|
// Namespacing the initial state as well
|
@@ -45,6 +47,7 @@ function renderWithRedux(
|
|
45
47
|
settings: initialSettingsState,
|
46
48
|
},
|
47
49
|
},
|
50
|
+
extendable: {},
|
48
51
|
...initialState,
|
49
52
|
});
|
50
53
|
const middlewares = applyMiddleware(thunk, APIMiddleware);
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: katello
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.
|
4
|
+
version: 3.18.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- N/A
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-
|
11
|
+
date: 2020-12-10 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -263,7 +263,7 @@ dependencies:
|
|
263
263
|
version: 3.6.0
|
264
264
|
- - "<"
|
265
265
|
- !ruby/object:Gem::Version
|
266
|
-
version: 3.
|
266
|
+
version: 3.8.0
|
267
267
|
type: :runtime
|
268
268
|
prerelease: false
|
269
269
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -273,7 +273,7 @@ dependencies:
|
|
273
273
|
version: 3.6.0
|
274
274
|
- - "<"
|
275
275
|
- !ruby/object:Gem::Version
|
276
|
-
version: 3.
|
276
|
+
version: 3.8.0
|
277
277
|
- !ruby/object:Gem::Dependency
|
278
278
|
name: pulp_file_client
|
279
279
|
requirement: !ruby/object:Gem::Requirement
|
@@ -283,7 +283,7 @@ dependencies:
|
|
283
283
|
version: 1.2.0
|
284
284
|
- - "<"
|
285
285
|
- !ruby/object:Gem::Version
|
286
|
-
version: 1.
|
286
|
+
version: 1.4.0
|
287
287
|
type: :runtime
|
288
288
|
prerelease: false
|
289
289
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -293,7 +293,7 @@ dependencies:
|
|
293
293
|
version: 1.2.0
|
294
294
|
- - "<"
|
295
295
|
- !ruby/object:Gem::Version
|
296
|
-
version: 1.
|
296
|
+
version: 1.4.0
|
297
297
|
- !ruby/object:Gem::Dependency
|
298
298
|
name: pulp_ansible_client
|
299
299
|
requirement: !ruby/object:Gem::Requirement
|
@@ -303,7 +303,7 @@ dependencies:
|
|
303
303
|
version: '0.2'
|
304
304
|
- - "<"
|
305
305
|
- !ruby/object:Gem::Version
|
306
|
-
version: '0.
|
306
|
+
version: '0.5'
|
307
307
|
type: :runtime
|
308
308
|
prerelease: false
|
309
309
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -313,7 +313,7 @@ dependencies:
|
|
313
313
|
version: '0.2'
|
314
314
|
- - "<"
|
315
315
|
- !ruby/object:Gem::Version
|
316
|
-
version: '0.
|
316
|
+
version: '0.5'
|
317
317
|
- !ruby/object:Gem::Dependency
|
318
318
|
name: pulp_container_client
|
319
319
|
requirement: !ruby/object:Gem::Requirement
|
@@ -323,7 +323,7 @@ dependencies:
|
|
323
323
|
version: 2.0.0
|
324
324
|
- - "<"
|
325
325
|
- !ruby/object:Gem::Version
|
326
|
-
version: 2.
|
326
|
+
version: 2.2.0
|
327
327
|
type: :runtime
|
328
328
|
prerelease: false
|
329
329
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -333,7 +333,27 @@ dependencies:
|
|
333
333
|
version: 2.0.0
|
334
334
|
- - "<"
|
335
335
|
- !ruby/object:Gem::Version
|
336
|
-
version: 2.
|
336
|
+
version: 2.2.0
|
337
|
+
- !ruby/object:Gem::Dependency
|
338
|
+
name: pulp_deb_client
|
339
|
+
requirement: !ruby/object:Gem::Requirement
|
340
|
+
requirements:
|
341
|
+
- - ">="
|
342
|
+
- !ruby/object:Gem::Version
|
343
|
+
version: 2.6.0
|
344
|
+
- - "<"
|
345
|
+
- !ruby/object:Gem::Version
|
346
|
+
version: 2.8.0
|
347
|
+
type: :runtime
|
348
|
+
prerelease: false
|
349
|
+
version_requirements: !ruby/object:Gem::Requirement
|
350
|
+
requirements:
|
351
|
+
- - ">="
|
352
|
+
- !ruby/object:Gem::Version
|
353
|
+
version: 2.6.0
|
354
|
+
- - "<"
|
355
|
+
- !ruby/object:Gem::Version
|
356
|
+
version: 2.8.0
|
337
357
|
- !ruby/object:Gem::Dependency
|
338
358
|
name: pulp_rpm_client
|
339
359
|
requirement: !ruby/object:Gem::Requirement
|
@@ -343,7 +363,7 @@ dependencies:
|
|
343
363
|
version: 3.6.2
|
344
364
|
- - "<"
|
345
365
|
- !ruby/object:Gem::Version
|
346
|
-
version: 3.
|
366
|
+
version: 3.8.0
|
347
367
|
type: :runtime
|
348
368
|
prerelease: false
|
349
369
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -353,7 +373,7 @@ dependencies:
|
|
353
373
|
version: 3.6.2
|
354
374
|
- - "<"
|
355
375
|
- !ruby/object:Gem::Version
|
356
|
-
version: 3.
|
376
|
+
version: 3.8.0
|
357
377
|
- !ruby/object:Gem::Dependency
|
358
378
|
name: pulp_2to3_migration_client
|
359
379
|
requirement: !ruby/object:Gem::Requirement
|
@@ -700,6 +720,9 @@ files:
|
|
700
720
|
- app/controllers/katello/api/v2/capsule_content_controller.rb
|
701
721
|
- app/controllers/katello/api/v2/capsules_controller.rb
|
702
722
|
- app/controllers/katello/api/v2/content_credentials_controller.rb
|
723
|
+
- app/controllers/katello/api/v2/content_export_incrementals_controller.rb
|
724
|
+
- app/controllers/katello/api/v2/content_exports_controller.rb
|
725
|
+
- app/controllers/katello/api/v2/content_imports_controller.rb
|
703
726
|
- app/controllers/katello/api/v2/content_uploads_controller.rb
|
704
727
|
- app/controllers/katello/api/v2/content_view_components_controller.rb
|
705
728
|
- app/controllers/katello/api/v2/content_view_filter_rules_controller.rb
|
@@ -753,12 +776,14 @@ files:
|
|
753
776
|
- app/controllers/katello/concerns/api/v2/content_overrides_controller.rb
|
754
777
|
- app/controllers/katello/concerns/api/v2/hostgroups_controller_extensions.rb
|
755
778
|
- app/controllers/katello/concerns/api/v2/hosts_controller_extensions.rb
|
779
|
+
- app/controllers/katello/concerns/api/v2/registration_controller_extensions.rb
|
756
780
|
- app/controllers/katello/concerns/api/v2/repository_content_controller.rb
|
757
781
|
- app/controllers/katello/concerns/api/v2/smart_proxies_controller_extensions.rb
|
758
782
|
- app/controllers/katello/concerns/authorization/api/v2/content_views_controller.rb
|
759
783
|
- app/controllers/katello/concerns/filtered_auto_complete_search.rb
|
760
784
|
- app/controllers/katello/concerns/hosts_controller_extensions.rb
|
761
785
|
- app/controllers/katello/concerns/organizations_controller_extensions.rb
|
786
|
+
- app/controllers/katello/concerns/registration_controller_extensions.rb
|
762
787
|
- app/controllers/katello/concerns/smart_proxies_controller_extensions.rb
|
763
788
|
- app/controllers/katello/errata_controller.rb
|
764
789
|
- app/controllers/katello/http_errors.rb
|
@@ -821,6 +846,7 @@ files:
|
|
821
846
|
- app/lib/actions/helpers/notifications.rb
|
822
847
|
- app/lib/actions/helpers/output_propagator.rb
|
823
848
|
- app/lib/actions/helpers/presenter.rb
|
849
|
+
- app/lib/actions/helpers/smart_proxy_sync_history_helper.rb
|
824
850
|
- app/lib/actions/katello/activation_key/create.rb
|
825
851
|
- app/lib/actions/katello/activation_key/destroy.rb
|
826
852
|
- app/lib/actions/katello/activation_key/reassign.rb
|
@@ -861,6 +887,7 @@ files:
|
|
861
887
|
- app/lib/actions/katello/content_view_version/destroy.rb
|
862
888
|
- app/lib/actions/katello/content_view_version/export.rb
|
863
889
|
- app/lib/actions/katello/content_view_version/import.rb
|
890
|
+
- app/lib/actions/katello/content_view_version/import_library.rb
|
864
891
|
- app/lib/actions/katello/content_view_version/incremental_update.rb
|
865
892
|
- app/lib/actions/katello/content_view_version/republish_repositories.rb
|
866
893
|
- app/lib/actions/katello/environment/destroy.rb
|
@@ -888,6 +915,7 @@ files:
|
|
888
915
|
- app/lib/actions/katello/host/update_content_overrides.rb
|
889
916
|
- app/lib/actions/katello/host/update_content_view.rb
|
890
917
|
- app/lib/actions/katello/host/update_release_version.rb
|
918
|
+
- app/lib/actions/katello/host/update_system_purpose.rb
|
891
919
|
- app/lib/actions/katello/host/upload_package_profile.rb
|
892
920
|
- app/lib/actions/katello/host/upload_profiles.rb
|
893
921
|
- app/lib/actions/katello/organization/create.rb
|
@@ -973,6 +1001,7 @@ files:
|
|
973
1001
|
- app/lib/actions/middleware/pulp3_services_check.rb
|
974
1002
|
- app/lib/actions/middleware/pulp_services_check.rb
|
975
1003
|
- app/lib/actions/middleware/record_fixtures.rb
|
1004
|
+
- app/lib/actions/middleware/record_smart_proxy_sync_history.rb
|
976
1005
|
- app/lib/actions/middleware/remote_action.rb
|
977
1006
|
- app/lib/actions/middleware/skip_if_matching_content.rb
|
978
1007
|
- app/lib/actions/pulp/abstract.rb
|
@@ -1042,6 +1071,7 @@ files:
|
|
1042
1071
|
- app/lib/actions/pulp3/content_guard/refresh.rb
|
1043
1072
|
- app/lib/actions/pulp3/content_guard/refresh_all_distributions.rb
|
1044
1073
|
- app/lib/actions/pulp3/content_migration.rb
|
1074
|
+
- app/lib/actions/pulp3/content_migration_presenter.rb
|
1045
1075
|
- app/lib/actions/pulp3/content_view/delete_repository_references.rb
|
1046
1076
|
- app/lib/actions/pulp3/content_view_version/create_exporter.rb
|
1047
1077
|
- app/lib/actions/pulp3/content_view_version/create_importer.rb
|
@@ -1052,6 +1082,7 @@ files:
|
|
1052
1082
|
- app/lib/actions/pulp3/import_migration.rb
|
1053
1083
|
- app/lib/actions/pulp3/orchestration/content_view_version/copy_version_units_to_library.rb
|
1054
1084
|
- app/lib/actions/pulp3/orchestration/content_view_version/export.rb
|
1085
|
+
- app/lib/actions/pulp3/orchestration/content_view_version/export_library.rb
|
1055
1086
|
- app/lib/actions/pulp3/orchestration/content_view_version/import.rb
|
1056
1087
|
- app/lib/actions/pulp3/orchestration/orphan_cleanup/remove_orphans.rb
|
1057
1088
|
- app/lib/actions/pulp3/orchestration/repository/copy_all_units.rb
|
@@ -1103,6 +1134,7 @@ files:
|
|
1103
1134
|
- app/lib/actions/pulp3/repository/update_remote.rb
|
1104
1135
|
- app/lib/actions/pulp3/repository/update_repository.rb
|
1105
1136
|
- app/lib/actions/pulp3/repository/upload_file.rb
|
1137
|
+
- app/lib/actions/pulp3/repository/upload_tag.rb
|
1106
1138
|
- app/lib/katello/README
|
1107
1139
|
- app/lib/katello/api/constraints/activation_key_constraint.rb
|
1108
1140
|
- app/lib/katello/api/mapper_extensions.rb
|
@@ -1197,7 +1229,9 @@ files:
|
|
1197
1229
|
- app/models/katello/ansible_tag.rb
|
1198
1230
|
- app/models/katello/authorization/activation_key.rb
|
1199
1231
|
- app/models/katello/authorization/content_view.rb
|
1232
|
+
- app/models/katello/authorization/content_view_component.rb
|
1200
1233
|
- app/models/katello/authorization/content_view_environment.rb
|
1234
|
+
- app/models/katello/authorization/content_view_filter.rb
|
1201
1235
|
- app/models/katello/authorization/content_view_history.rb
|
1202
1236
|
- app/models/katello/authorization/content_view_version.rb
|
1203
1237
|
- app/models/katello/authorization/content_view_version_export_history.rb
|
@@ -1239,6 +1273,7 @@ files:
|
|
1239
1273
|
- app/models/katello/content_facet_applicable_rpm.rb
|
1240
1274
|
- app/models/katello/content_facet_erratum.rb
|
1241
1275
|
- app/models/katello/content_facet_repository.rb
|
1276
|
+
- app/models/katello/content_migration_progress.rb
|
1242
1277
|
- app/models/katello/content_override.rb
|
1243
1278
|
- app/models/katello/content_view.rb
|
1244
1279
|
- app/models/katello/content_view_component.rb
|
@@ -1368,6 +1403,7 @@ files:
|
|
1368
1403
|
- app/models/katello/rhsm_fact_parser.rb
|
1369
1404
|
- app/models/katello/root_repository.rb
|
1370
1405
|
- app/models/katello/rpm.rb
|
1406
|
+
- app/models/katello/smart_proxy_sync_history.rb
|
1371
1407
|
- app/models/katello/srpm.rb
|
1372
1408
|
- app/models/katello/subscription.rb
|
1373
1409
|
- app/models/katello/subscription_facet_activation_key.rb
|
@@ -1407,6 +1443,7 @@ files:
|
|
1407
1443
|
- app/services/katello/candlepin/message_handler.rb
|
1408
1444
|
- app/services/katello/candlepin/pool_service.rb
|
1409
1445
|
- app/services/katello/candlepin/system_purpose.rb
|
1446
|
+
- app/services/katello/candlepin/upstream_consumer.rb
|
1410
1447
|
- app/services/katello/candlepin_event_listener.rb
|
1411
1448
|
- app/services/katello/event_daemon.rb
|
1412
1449
|
- app/services/katello/event_monitor/poller_thread.rb
|
@@ -1452,6 +1489,7 @@ files:
|
|
1452
1489
|
- app/services/katello/pulp/yum_metadata_file.rb
|
1453
1490
|
- app/services/katello/pulp3/ansible_collection.rb
|
1454
1491
|
- app/services/katello/pulp3/api/ansible_collection.rb
|
1492
|
+
- app/services/katello/pulp3/api/apt.rb
|
1455
1493
|
- app/services/katello/pulp3/api/content_guard.rb
|
1456
1494
|
- app/services/katello/pulp3/api/core.rb
|
1457
1495
|
- app/services/katello/pulp3/api/docker.rb
|
@@ -1461,6 +1499,8 @@ files:
|
|
1461
1499
|
- app/services/katello/pulp3/content_view_version/export.rb
|
1462
1500
|
- app/services/katello/pulp3/content_view_version/import.rb
|
1463
1501
|
- app/services/katello/pulp3/content_view_version/import_export_common.rb
|
1502
|
+
- app/services/katello/pulp3/content_view_version/import_validator.rb
|
1503
|
+
- app/services/katello/pulp3/deb.rb
|
1464
1504
|
- app/services/katello/pulp3/distribution.rb
|
1465
1505
|
- app/services/katello/pulp3/docker_blob.rb
|
1466
1506
|
- app/services/katello/pulp3/docker_manifest.rb
|
@@ -1476,6 +1516,7 @@ files:
|
|
1476
1516
|
- app/services/katello/pulp3/pulp_content_unit.rb
|
1477
1517
|
- app/services/katello/pulp3/repository.rb
|
1478
1518
|
- app/services/katello/pulp3/repository/ansible_collection.rb
|
1519
|
+
- app/services/katello/pulp3/repository/apt.rb
|
1479
1520
|
- app/services/katello/pulp3/repository/docker.rb
|
1480
1521
|
- app/services/katello/pulp3/repository/file.rb
|
1481
1522
|
- app/services/katello/pulp3/repository/yum.rb
|
@@ -1517,6 +1558,7 @@ files:
|
|
1517
1558
|
- app/views/dashboard/_subscription_status_widget.html.erb
|
1518
1559
|
- app/views/dashboard/_subscription_widget.html.erb
|
1519
1560
|
- app/views/dashboard/_sync_widget.html.erb
|
1561
|
+
- app/views/foreman/hosts/_registration.html.erb
|
1520
1562
|
- app/views/foreman/job_templates/install_errata.erb
|
1521
1563
|
- app/views/foreman/job_templates/install_errata_-_katello_ansible_default.erb
|
1522
1564
|
- app/views/foreman/job_templates/install_group.erb
|
@@ -2092,6 +2134,12 @@ files:
|
|
2092
2134
|
- db/migrate/20200820145217_add_download_concurrency_to_katello_root_repositories.rb
|
2093
2135
|
- db/migrate/20200910140340_remove_distribution_uuid.rb
|
2094
2136
|
- db/migrate/20200914200906_remove_auto_enabled.rb
|
2137
|
+
- db/migrate/20200929200357_create_katello_smart_proxy_sync_history.rb
|
2138
|
+
- db/migrate/20201008204114_add_os_versions_to_katello_root_repositories.rb
|
2139
|
+
- db/migrate/20201012172713_remove_gpg_key_perms.rb
|
2140
|
+
- db/migrate/20201012192035_add_metadata_to_katello_content_view_version_export_history.rb
|
2141
|
+
- db/migrate/20201021150008_add_import_only_to_katello_content_view.rb
|
2142
|
+
- db/migrate/20201119211133_pulp3_migration_progress.rb
|
2095
2143
|
- db/seeds.d/101-locations.rb
|
2096
2144
|
- db/seeds.d/102-organizations.rb
|
2097
2145
|
- db/seeds.d/104-proxy.rb
|
@@ -3927,6 +3975,7 @@ files:
|
|
3927
3975
|
- engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/content-hosts-bulk-release-version-modal.controller.js
|
3928
3976
|
- engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/content-hosts-bulk-repository-sets-modal.controller.js
|
3929
3977
|
- engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/content-hosts-bulk-subscriptions-modal.controller.js
|
3978
|
+
- engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/content-hosts-bulk-system-purpose-modal.controller.js
|
3930
3979
|
- engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/content-hosts-bulk-traces-modal.controller.js
|
3931
3980
|
- engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/views/content-host-bulk-module-streams-modal.html
|
3932
3981
|
- engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/views/content-hosts-bulk-destroy-modal.html
|
@@ -3937,6 +3986,7 @@ files:
|
|
3937
3986
|
- engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/views/content-hosts-bulk-release-version-modal.html
|
3938
3987
|
- engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/views/content-hosts-bulk-repository-sets-modal.html
|
3939
3988
|
- engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/views/content-hosts-bulk-subscriptions-modal.html
|
3989
|
+
- engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/views/content-hosts-bulk-system-purpose-modal.html
|
3940
3990
|
- engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/views/content-hosts-bulk-traces-modal.html
|
3941
3991
|
- engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content-host-modal-helper.service.js
|
3942
3992
|
- engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content-host-register-client.directive.js
|
@@ -4309,6 +4359,7 @@ files:
|
|
4309
4359
|
- engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/http-proxy-service.js
|
4310
4360
|
- engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/new/new-repository.controller.js
|
4311
4361
|
- engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/new/views/new-repository.html
|
4362
|
+
- engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/os-versions.service.js
|
4312
4363
|
- engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/ostree-upstream-sync-policy.service.js
|
4313
4364
|
- engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/repositories.module.js
|
4314
4365
|
- engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/repositories.routes.js
|
@@ -4442,6 +4493,8 @@ files:
|
|
4442
4493
|
- lib/katello/tasks/job_templates.rake
|
4443
4494
|
- lib/katello/tasks/pulp3_content_switchover.rake
|
4444
4495
|
- lib/katello/tasks/pulp3_migration.rake
|
4496
|
+
- lib/katello/tasks/pulp3_migration_abort.rake
|
4497
|
+
- lib/katello/tasks/pulp3_migration_stats.rake
|
4445
4498
|
- lib/katello/tasks/pulp3_post_migration_check.rake
|
4446
4499
|
- lib/katello/tasks/receptor/extract_orgs.rake
|
4447
4500
|
- lib/katello/tasks/regenerate_ueber_certs.rake
|
@@ -4464,6 +4517,7 @@ files:
|
|
4464
4517
|
- lib/katello/tasks/upgrades/3.15/reindex_rpm_modular.rake
|
4465
4518
|
- lib/katello/tasks/upgrades/3.15/set_sub_facet_dmi_uuid.rake
|
4466
4519
|
- lib/katello/tasks/upgrades/3.16/update_applicable_el8_hosts.rake
|
4520
|
+
- lib/katello/tasks/upgrades/3.18/add_cvv_export_history_metadata.rb
|
4467
4521
|
- lib/katello/tasks/upgrades/3.8/clear_checksum_type.rake
|
4468
4522
|
- lib/katello/tasks/virt_who_report.rake
|
4469
4523
|
- lib/katello/url_constrained_cookie_store.rb
|
@@ -4563,7 +4617,6 @@ files:
|
|
4563
4617
|
- webpack/__mocks__/foremanReact/components/BreadcrumbBar/index.js
|
4564
4618
|
- webpack/__mocks__/foremanReact/components/Pagination/PaginationWrapper.js
|
4565
4619
|
- webpack/__mocks__/foremanReact/components/common/EmptyState.js
|
4566
|
-
- webpack/__mocks__/foremanReact/components/common/Fill/GlobalFill.js
|
4567
4620
|
- webpack/__mocks__/foremanReact/redux.js
|
4568
4621
|
- webpack/__mocks__/foremanReact/redux/actions/toasts.js
|
4569
4622
|
- webpack/__mocks__/react-intl/index.js
|
@@ -4765,6 +4818,14 @@ files:
|
|
4765
4818
|
- webpack/scenes/ContentViews/Details/ContentViewDetails.js
|
4766
4819
|
- webpack/scenes/ContentViews/Details/ContentViewInfo.js
|
4767
4820
|
- webpack/scenes/ContentViews/Details/DetailsContainer.js
|
4821
|
+
- webpack/scenes/ContentViews/Details/Repositories/ContentCounts.js
|
4822
|
+
- webpack/scenes/ContentViews/Details/Repositories/ContentViewRepositories.js
|
4823
|
+
- webpack/scenes/ContentViews/Details/Repositories/LastSync.js
|
4824
|
+
- webpack/scenes/ContentViews/Details/Repositories/RepoAddedStatus.js
|
4825
|
+
- webpack/scenes/ContentViews/Details/Repositories/RepoIcon.js
|
4826
|
+
- webpack/scenes/ContentViews/Details/Repositories/SelectableDropdown.js
|
4827
|
+
- webpack/scenes/ContentViews/Details/Repositories/__tests__/contentViewDetailRepos.fixtures.json
|
4828
|
+
- webpack/scenes/ContentViews/Details/Repositories/__tests__/contentViewDetailRepos.test.js
|
4768
4829
|
- webpack/scenes/ContentViews/Details/__tests__/contentViewDetail.test.js
|
4769
4830
|
- webpack/scenes/ContentViews/Details/__tests__/contentViewDetails.fixtures.json
|
4770
4831
|
- webpack/scenes/ContentViews/Details/contentViewInfo.scss
|