katello 4.1.4 → 4.2.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/app/controllers/katello/api/rhsm/candlepin_proxies_controller.rb +2 -2
- data/app/controllers/katello/api/v2/content_credentials_controller.rb +3 -3
- data/app/controllers/katello/api/v2/content_uploads_controller.rb +3 -1
- data/app/controllers/katello/api/v2/content_view_components_controller.rb +33 -1
- data/app/controllers/katello/api/v2/content_views_controller.rb +12 -0
- data/app/controllers/katello/api/v2/host_errata_controller.rb +1 -1
- data/app/controllers/katello/api/v2/products_bulk_actions_controller.rb +1 -2
- data/app/controllers/katello/api/v2/products_controller.rb +4 -4
- data/app/controllers/katello/api/v2/repositories_bulk_actions_controller.rb +3 -11
- data/app/controllers/katello/api/v2/repositories_controller.rb +68 -47
- data/app/controllers/katello/api/v2/upstream_subscriptions_controller.rb +0 -28
- data/app/controllers/katello/concerns/api/v2/registration_commands_controller_extensions.rb +26 -5
- data/app/controllers/katello/concerns/api/v2/registration_controller_extensions.rb +26 -1
- data/app/lib/actions/candlepin/environment/destroy.rb +2 -0
- data/app/lib/actions/katello/agent_action.rb +2 -2
- data/app/lib/actions/katello/capsule_content/sync_capsule.rb +3 -2
- data/app/lib/actions/katello/{gpg_key → content_credential}/update.rb +1 -1
- data/app/lib/actions/katello/content_view/publish.rb +6 -1
- data/app/lib/actions/katello/content_view_version/create_repos.rb +1 -1
- data/app/lib/actions/katello/content_view_version/incremental_update.rb +0 -47
- data/app/lib/actions/katello/orphan_cleanup/remove_orphans.rb +1 -1
- data/app/lib/actions/katello/repository/clone_contents.rb +1 -7
- data/app/lib/actions/katello/repository/clone_to_environment.rb +1 -7
- data/app/lib/actions/katello/repository/create.rb +4 -8
- data/app/lib/actions/katello/repository/create_root.rb +1 -1
- data/app/lib/actions/katello/repository/destroy.rb +1 -3
- data/app/lib/actions/katello/repository/import_upload.rb +3 -2
- data/app/lib/actions/katello/repository/instance_update.rb +1 -1
- data/app/lib/actions/katello/repository/metadata_generate.rb +2 -8
- data/app/lib/actions/katello/repository/multi_clone_contents.rb +0 -1
- data/app/lib/actions/katello/repository/refresh_repository.rb +1 -4
- data/app/lib/actions/katello/repository/remove_content.rb +6 -4
- data/app/lib/actions/katello/repository/sync.rb +5 -25
- data/app/lib/actions/katello/repository/update.rb +1 -2
- data/app/lib/actions/katello/repository/update_http_proxy_details.rb +2 -5
- data/app/lib/actions/katello/repository/update_redhat_repository.rb +1 -1
- data/app/lib/actions/katello/repository/upload_files.rb +8 -3
- data/app/lib/actions/katello/repository/upload_package_group.rb +2 -11
- data/app/lib/actions/katello/repository/verify_checksum.rb +0 -1
- data/app/lib/actions/katello/repository_set/enable_repository.rb +1 -1
- data/app/lib/actions/pulp3/orchestration/repository/create.rb +2 -2
- data/app/lib/actions/pulp3/repository/create.rb +3 -4
- data/app/lib/actions/pulp3/repository/create_remote.rb +1 -6
- data/app/lib/actions/pulp3/repository/repair.rb +4 -0
- data/app/lib/katello/errors.rb +1 -0
- data/app/lib/katello/http_resource.rb +26 -73
- data/app/lib/katello/qpid/connection.rb +1 -3
- data/app/lib/katello/resources/candlepin/consumer.rb +1 -1
- data/app/lib/katello/resources/candlepin/environment.rb +2 -0
- data/app/lib/katello/resources/registry.rb +7 -20
- data/app/lib/katello/util/http_proxy.rb +0 -3
- data/app/lib/katello/validators/gpg_key_content_validator.rb +1 -1
- data/app/models/katello/authorization/{gpg_key.rb → content_credential.rb} +1 -1
- data/app/models/katello/authorization/product.rb +0 -4
- data/app/models/katello/concerns/host_managed_extensions.rb +2 -16
- data/app/models/katello/concerns/organization_extensions.rb +1 -1
- data/app/models/katello/concerns/pulp_database_unit.rb +13 -5
- data/app/models/katello/concerns/smart_proxy_extensions.rb +45 -41
- data/app/models/katello/{gpg_key.rb → content_credential.rb} +4 -4
- data/app/models/katello/content_view.rb +6 -1
- data/app/models/katello/generic_content_unit.rb +16 -0
- data/app/models/katello/glue/pulp/repos.rb +9 -25
- data/app/models/katello/kt_environment.rb +1 -1
- data/app/models/katello/product.rb +4 -4
- data/app/models/katello/repository.rb +13 -7
- data/app/models/katello/repository_generic_content_unit.rb +7 -0
- data/app/models/katello/root_repository.rb +38 -7
- data/app/models/setting/content.rb +5 -0
- data/app/services/cert/certs.rb +16 -8
- data/app/services/katello/applicability/applicable_content_helper.rb +1 -2
- data/app/services/katello/candlepin/consumer.rb +6 -0
- data/app/services/katello/component_view_presenter.rb +27 -0
- data/app/services/katello/pulp/repository.rb +1 -1
- data/app/services/katello/pulp/server.rb +2 -2
- data/app/services/katello/pulp3/api/core.rb +4 -0
- data/app/services/katello/pulp3/api/generic.rb +68 -0
- data/app/services/katello/pulp3/generic_content_unit.rb +29 -0
- data/app/services/katello/pulp3/pulp_content_unit.rb +5 -1
- data/app/services/katello/pulp3/repository/generic.rb +94 -0
- data/app/services/katello/pulp3/repository/yum.rb +4 -5
- data/app/services/katello/pulp3/repository.rb +27 -12
- data/app/services/katello/pulp3/repository_mirror.rb +2 -2
- data/app/services/katello/pulp3/smart_proxy_repository.rb +4 -4
- data/app/services/katello/registration_manager.rb +18 -7
- data/app/services/katello/repository_type.rb +59 -1
- data/app/services/katello/repository_type_manager.rb +116 -24
- data/app/views/katello/api/v2/content_views/base.json.rabl +4 -4
- data/app/views/katello/api/v2/repositories/show.json.rabl +1 -0
- data/app/views/smart_proxies/plugins/_pulpcore.html.erb +2 -5
- data/app/views/smart_proxies/pulp_status.html.erb +0 -7
- data/config/katello.yaml.example +0 -21
- data/config/routes/api/v2.rb +2 -1
- data/db/functions/deb_version_cmp_v01.sql +200 -0
- data/db/migrate/20171110082124_add_ssl_certs_to_products_and_repos.rb +5 -1
- data/db/migrate/20200402130013_add_repsoitory_docker_meta_tag_f_key.rb +3 -1
- data/db/migrate/20210624221630_katello_generic_content.rb +22 -0
- data/db/migrate/20210625095042_add_retain_package_versions_count.rb +9 -0
- data/db/migrate/20210628182553_add_generic_remote_options_to_root_repository.rb +5 -0
- data/db/migrate/20210714140440_remove_repo_export_permission.rb +5 -0
- data/db/migrate/20210721163730_change_gpg_keys_to_content_credentials.rb +8 -0
- data/db/migrate/20210728130748_create_function_deb_version_cmp.rb +12 -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/app/assets/javascripts/bastion_katello/capsule-content/capsule-content.controller.js +7 -5
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/views/content-hosts-bulk-errata-modal.html +4 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/views/content-view-details.html +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/apply-errata.controller.js +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/views/apply-errata-confirm.html +2 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/i18n/bastion_katello.pot +25 -33
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/bulk/views/products-bulk-advanced-sync-modal.html +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/product-repositories.controller.js +1 -6
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/repository-details-info.controller.js +10 -2
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/repository-details-info.filter.js +9 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/repository-details.controller.js +0 -2
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-advanced-sync-options.html +1 -25
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-details.html +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-info.html +31 -13
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/new/views/new-repository.html +11 -3
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/views/product-repositories.html +0 -6
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/tasks/aggregate-task.factory.js +3 -3
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/tasks/task.factory.js +1 -1
- data/lib/katello/engine.rb +2 -4
- data/lib/katello/permission_creator.rb +6 -12
- data/lib/katello/plugin.rb +76 -80
- data/lib/katello/repository_types/python.rb +37 -0
- data/lib/katello/tasks/reimport.rake +0 -9
- data/lib/katello/tasks/repository.rake +3 -4
- data/lib/katello/version.rb +1 -1
- data/locale/action_names.rb +28 -29
- data/locale/bn/katello.po +699 -221
- data/locale/cs/katello.po +167 -59
- data/locale/de/katello.po +585 -352
- data/locale/en/katello.po +167 -59
- data/locale/es/katello.po +1388 -1189
- data/locale/fr/katello.po +1740 -1494
- data/locale/gu/katello.po +896 -416
- data/locale/hi/katello.po +892 -415
- data/locale/it/katello.po +371 -170
- data/locale/ja/katello.po +1657 -1439
- data/locale/katello.pot +933 -736
- data/locale/kn/katello.po +894 -416
- data/locale/ko/katello.po +515 -317
- data/locale/mr/katello.po +857 -415
- data/locale/or/katello.po +894 -416
- data/locale/pa/katello.po +874 -411
- data/locale/pt/katello.po +347 -154
- data/locale/pt_BR/katello.po +1398 -1215
- data/locale/ru/katello.po +671 -463
- data/locale/ta/katello.po +697 -221
- data/locale/te/katello.po +891 -415
- data/locale/zh_CN/katello.po +2029 -1845
- data/locale/zh_TW/katello.po +735 -407
- data/package.json +3 -1
- data/webpack/components/EditableTextInput/EditableTextInput.js +3 -3
- data/webpack/components/RoutedTabs/RoutedTabs.js +7 -8
- data/webpack/components/Table/TableWrapper.js +19 -11
- data/webpack/components/Table/helpers.js +1 -1
- data/webpack/components/extensions/HostDetails/Tabs/ContentTab.js +42 -0
- data/webpack/components/extensions/HostDetails/Tabs/SubscriptionTab.js +12 -0
- data/webpack/components/extensions/RegistrationCommands/__tests__/__snapshots__/ActivationKeys.test.js.snap +4 -0
- data/webpack/components/extensions/RegistrationCommands/fields/ActivationKeys.js +1 -1
- data/webpack/components/extensions/RegistrationCommands/index.js +1 -2
- data/webpack/components/pf3Table/formatters/selectionHeaderCellFormatter.js +2 -1
- data/webpack/fills_index.js +4 -1
- data/webpack/redux/actions/RedHatRepositories/helpers.js +2 -4
- data/webpack/redux/reducers/RedHatRepositories/enabled.js +4 -1
- data/webpack/scenes/ContentViews/ContentViewsActions.js +16 -1
- data/webpack/scenes/ContentViews/ContentViewsConstants.js +15 -0
- data/webpack/scenes/ContentViews/ContentViewsPage.js +12 -22
- data/webpack/scenes/ContentViews/Copy/CopyContentViewForm.js +4 -3
- data/webpack/scenes/ContentViews/Create/CreateContentViewForm.js +25 -14
- data/webpack/scenes/ContentViews/Create/CreateContentViewModal.js +4 -2
- data/webpack/scenes/ContentViews/Details/ComponentContentViews/ComponentContentViewAddModal.js +153 -0
- data/webpack/scenes/ContentViews/Details/ComponentContentViews/ComponentVersion.js +21 -10
- data/webpack/scenes/ContentViews/Details/ComponentContentViews/ContentViewComponents.js +157 -19
- data/webpack/scenes/ContentViews/Details/ComponentContentViews/__tests__/contentViewComponents.fixtures.json +100 -108
- data/webpack/scenes/ContentViews/Details/ComponentContentViews/__tests__/contentViewComponents.test.js +140 -16
- data/webpack/scenes/ContentViews/Details/ComponentContentViews/__tests__/publishedContentViewDetails.fixtures.json +367 -0
- data/webpack/scenes/ContentViews/Details/ContentViewDetailActions.js +59 -6
- data/webpack/scenes/ContentViews/Details/ContentViewDetailSelectors.js +43 -0
- data/webpack/scenes/ContentViews/Details/ContentViewDetails.js +44 -13
- data/webpack/scenes/ContentViews/Details/Filters/Add/CVFilterAddModal.js +161 -0
- data/webpack/scenes/ContentViews/Details/Filters/Add/__tests__/cvFilterAdd.test.js +54 -0
- data/webpack/scenes/ContentViews/Details/Filters/Add/__tests__/cvFilterCreateResult.fixtures.json +124 -0
- data/webpack/scenes/ContentViews/Details/Filters/CVPackageGroupFilterContent.js +8 -6
- data/webpack/scenes/ContentViews/Details/Filters/CVRpmFilterContent.js +7 -6
- data/webpack/scenes/ContentViews/Details/Filters/ContentViewFilterDetails.js +4 -3
- data/webpack/scenes/ContentViews/Details/Filters/ContentViewFilters.js +71 -12
- data/webpack/scenes/ContentViews/Details/Filters/__tests__/contentViewFilters.test.js +77 -0
- data/webpack/scenes/ContentViews/Details/Histories/ContentViewHistories.js +13 -12
- data/webpack/scenes/ContentViews/Details/Histories/__tests__/contentViewHistory.test.js +2 -2
- data/webpack/scenes/ContentViews/Details/Repositories/ContentViewRepositories.js +17 -14
- data/webpack/scenes/ContentViews/Details/Repositories/LastSync.js +3 -3
- data/webpack/scenes/ContentViews/Details/Repositories/__tests__/contentViewAddRemove.test.js +2 -2
- data/webpack/scenes/ContentViews/Details/Repositories/__tests__/contentViewDetailRepos.test.js +6 -2
- data/webpack/scenes/ContentViews/Details/Versions/ContentViewVersions.js +61 -20
- data/webpack/scenes/ContentViews/Details/Versions/__tests__/contentViewTaskInProgressResponse.fixtures.json +71 -0
- data/webpack/scenes/ContentViews/Details/Versions/__tests__/contentViewTaskResponse.fixtures.json +75 -0
- data/webpack/scenes/ContentViews/Details/Versions/__tests__/contentViewVersions.test.js +86 -1
- data/webpack/scenes/ContentViews/Details/Versions/__tests__/contentViewVersionsWithTask.fixtures.json +713 -0
- data/webpack/scenes/ContentViews/Details/__tests__/contentViewDetail.test.js +3 -0
- data/webpack/scenes/ContentViews/Publish/CVPublishFinish.js +184 -0
- data/webpack/scenes/ContentViews/Publish/CVPublishForm.js +104 -0
- data/webpack/scenes/ContentViews/Publish/CVPublishReview.js +71 -0
- data/webpack/scenes/ContentViews/Publish/ContentViewPublishSelectors.js +17 -0
- data/webpack/scenes/ContentViews/Publish/PublishContentViewWizard.js +145 -0
- data/webpack/scenes/ContentViews/Publish/__tests__/environmentPaths.fixtures.json +352 -0
- data/webpack/scenes/ContentViews/Publish/__tests__/publishContentView.test.js +184 -0
- data/webpack/scenes/ContentViews/Publish/__tests__/publishResponse.fixture.json +69 -0
- data/webpack/scenes/ContentViews/Publish/cvPublishForm.scss +3 -0
- data/webpack/scenes/ContentViews/Table/ContentViewsTable.js +75 -48
- data/webpack/scenes/ContentViews/Table/tableDataGenerator.js +15 -2
- data/webpack/scenes/ContentViews/__tests__/contentViewPage.test.js +6 -10
- data/webpack/scenes/ContentViews/components/EnvironmentLabels.js +22 -10
- data/webpack/scenes/ContentViews/components/EnvironmentPaths/EnvironmentPathActions.js +12 -0
- data/webpack/scenes/ContentViews/components/EnvironmentPaths/EnvironmentPathConstants.js +2 -0
- data/webpack/scenes/ContentViews/components/EnvironmentPaths/EnvironmentPathSelectors.js +16 -0
- data/webpack/scenes/ContentViews/components/EnvironmentPaths/EnvironmentPaths.js +72 -0
- data/webpack/scenes/ContentViews/components/EnvironmentPaths/EnvironmentPaths.scss +8 -0
- data/webpack/scenes/ContentViews/components/TaskPresenter/TaskPresenter.js +85 -0
- data/webpack/scenes/SmartProxy/SmartProxyContentTable.js +9 -8
- data/webpack/scenes/Subscriptions/SubscriptionsPage.js +4 -25
- data/webpack/scenes/Subscriptions/__tests__/SubscriptionsPage.test.js +0 -3
- data/webpack/scenes/Subscriptions/__tests__/__snapshots__/SubscriptionsPage.test.js.snap +3 -3
- data/webpack/scenes/Subscriptions/components/SubscriptionsTable/SubscriptionsTableSchema.js +4 -2
- data/webpack/scenes/Subscriptions/components/SubscriptionsTable/__tests__/__snapshots__/SubscriptionsTable.test.js.snap +24 -0
- data/webpack/scenes/Subscriptions/components/SubscriptionsTable/components/Table.js +4 -1
- data/webpack/scenes/Subscriptions/index.js +1 -4
- metadata +74 -39
- data/app/lib/actions/candlepin/environment/create.rb +0 -21
- data/app/lib/actions/foreman/environment/destroy.rb +0 -23
- data/app/lib/actions/katello/content_view/environment_create.rb +0 -21
- data/app/lib/actions/katello/repository/export.rb +0 -85
- data/app/lib/actions/katello/repository/purge_empty_content.rb +0 -16
- data/app/lib/actions/katello/repository/upload_errata.rb +0 -38
- data/app/lib/katello/util/proxy_uri.rb +0 -64
- data/app/models/katello/rhsm_fact_importer.rb +0 -20
- data/app/models/katello/rhsm_fact_name.rb +0 -17
- data/app/models/katello/rhsm_fact_parser.rb +0 -120
@@ -111,8 +111,6 @@
|
|
111
111
|
if (repo.$resolved && product.$resolved) {
|
112
112
|
if (repo.promoted) {
|
113
113
|
readOnlyReason = 'published';
|
114
|
-
} else if (repo['product_type'] === "redhat") {
|
115
|
-
readOnlyReason = 'redhat';
|
116
114
|
} else if ($scope.denied('deletable', repo)) {
|
117
115
|
readOnlyReason = 'permissions';
|
118
116
|
}
|
@@ -27,28 +27,4 @@
|
|
27
27
|
<li translate>One or more RPMs are not showing up in the local repository even though they exist in the upstream repository.</li>
|
28
28
|
</ul>
|
29
29
|
</div>
|
30
|
-
</div>
|
31
|
-
|
32
|
-
<div class="radio">
|
33
|
-
<label>
|
34
|
-
<input type="radio" ng-model="syncType" value="validateContents" />
|
35
|
-
<span translate>
|
36
|
-
Validate Content Sync
|
37
|
-
</span>
|
38
|
-
</label>
|
39
|
-
<div class="help-block">
|
40
|
-
<span translate>
|
41
|
-
Performs a complete sync, verifying the checksum of all packages afterwards. Any missing or corrupt package will be re-downloaded. This option will take the longest amount of time. Choose this option if:
|
42
|
-
</span>
|
43
|
-
<ul class="list-aligned">
|
44
|
-
<li translate>Specific packages are throwing a 404 from the package-manager.</li>
|
45
|
-
<li translate>Packages are corrupt, often leading to an error "Package does not match intended download" or "Hash Sum mismatch".</li>
|
46
|
-
</ul>
|
47
|
-
<span ng-show="repository.download_policy === 'on_demand' && repository.content_type === 'yum'">
|
48
|
-
<i class="fa fa-warning"></i>
|
49
|
-
<span translate>
|
50
|
-
When validating content, repositories using the "On Demand" download policy will download all packages within the repository.
|
51
|
-
</span>
|
52
|
-
</span>
|
53
|
-
</div>
|
54
|
-
</div>
|
30
|
+
</div>
|
@@ -32,7 +32,7 @@
|
|
32
32
|
</a>
|
33
33
|
</li>
|
34
34
|
|
35
|
-
<li role="menuitem" ng-hide="hideSyncButton(repository,
|
35
|
+
<li role="menuitem" ng-hide="hideSyncButton(repository, false)" ng-class="{disabled: disableSyncLink()}">
|
36
36
|
<a ng-click="verifyChecksum(repository)" disable-link="disableSyncLink()" translate>
|
37
37
|
Verify Content Checksum
|
38
38
|
</a>
|
@@ -109,19 +109,29 @@
|
|
109
109
|
readonly="denied('edit_products', product)"
|
110
110
|
edit-trigger="uploadedFile">
|
111
111
|
</dd>
|
112
|
-
</span>
|
113
|
-
|
114
|
-
<dt ng-show="repository.content_type == 'ansible_collection'" translate>Auth URL</dt>
|
115
|
-
<dd bst-edit-text="repository.ansible_collection_auth_url"
|
116
|
-
on-save="save(repository)"
|
117
|
-
readonly="product.redhat || denied('edit_products', product)">
|
118
|
-
</dd>
|
119
112
|
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
113
|
+
<dt translate>Ansible Collection Authorization</dt>
|
114
|
+
<dd bst-edit-custom="repository.ansible_collection_auth_exists"
|
115
|
+
readonly="denied('edit_products', product)"
|
116
|
+
on-save="save(repository, true)"
|
117
|
+
formatter="ansibleAuthFilter"
|
118
|
+
formatter-options="repository"
|
119
|
+
deletable="repository.ansible_collection_auth_exists"
|
120
|
+
on-delete="clearAnsibleCollectionAuth()">
|
121
|
+
<div translate>Auth URL</div>
|
122
|
+
<input id="ansible_collection_auth_url"
|
123
|
+
name="ansible_collection_auth_url"
|
124
|
+
type="url"
|
125
|
+
autocomplete="off"
|
126
|
+
ng-model="repository.ansible_collection_auth_url"/>
|
127
|
+
<div translate>Auth Token</div>
|
128
|
+
<input id="ansible_collection_auth_token"
|
129
|
+
name="ansible_collection_auth_token"
|
130
|
+
type="password"
|
131
|
+
autocomplete="off"
|
132
|
+
ng-model="repository.ansible_collection_auth_token"/>
|
133
|
+
</dd>
|
134
|
+
</span>
|
125
135
|
|
126
136
|
<dt translate>Verify SSL</dt>
|
127
137
|
<dd bst-edit-checkbox="repository.verify_ssl_on_sync"
|
@@ -172,6 +182,14 @@
|
|
172
182
|
</dd>
|
173
183
|
</span>
|
174
184
|
|
185
|
+
<span ng-show="repository.content_type === 'yum' && repository.mirror_on_sync === false">
|
186
|
+
<dt translate>Retain package versions</dt>
|
187
|
+
<dd bst-edit-number="repository.retain_package_versions_count"
|
188
|
+
on-save="save(repository)"
|
189
|
+
readonly="denied('edit_products', product)">
|
190
|
+
</dd>
|
191
|
+
</span>
|
192
|
+
|
175
193
|
<span>
|
176
194
|
<dt translate>HTTP Proxy</dt>
|
177
195
|
<dd bst-edit-custom="repository.http_proxy_policy"
|
@@ -222,7 +240,7 @@
|
|
222
240
|
<dt translate>Publish via HTTPS</dt>
|
223
241
|
<dd translate>Yes</dd>
|
224
242
|
|
225
|
-
<span ng-hide="repository.content_type === 'ostree' || repository.content_type === 'docker'">
|
243
|
+
<span ng-hide="repository.content_type === 'ostree' || repository.content_type === 'docker' || repository.content_type === 'ansible_collection'">
|
226
244
|
<dt translate>Publish via HTTP</dt>
|
227
245
|
<dd bst-edit-checkbox="repository.unprotected"
|
228
246
|
formatter="booleanToYesNo"
|
@@ -242,6 +242,14 @@
|
|
242
242
|
</p>
|
243
243
|
</div>
|
244
244
|
|
245
|
+
<div bst-form-group label="{{ 'Retain package versions' | translate }}" ng-if="(repository.content_type === 'yum' && repository.mirror_on_sync === false)">
|
246
|
+
<input id="retain_package_versions_count" name="retain_package_versions_count" ng-model="repository.retain_package_versions_count" type="number"/>
|
247
|
+
|
248
|
+
<p class="help-block">
|
249
|
+
<span translate>The maximum number of versions of each package to keep.</span><br />
|
250
|
+
</p>
|
251
|
+
</div>
|
252
|
+
|
245
253
|
<div bst-form-group label="{{ 'HTTP Proxy Policy' | translate }}">
|
246
254
|
<select required
|
247
255
|
id="http_proxy_policy"
|
@@ -266,8 +274,8 @@
|
|
266
274
|
</span>
|
267
275
|
</div>
|
268
276
|
|
269
|
-
<div ng-show="repository.content_type
|
270
|
-
<h4
|
277
|
+
<div ng-show="repository.content_type !== undefined">
|
278
|
+
<h4 translate> Published Repository Information </h4>
|
271
279
|
|
272
280
|
<div bst-form-group label="{{ 'Checksum' | translate }}" ng-show="repository.content_type === 'yum'">
|
273
281
|
<select id="checksum_type"
|
@@ -280,7 +288,7 @@
|
|
280
288
|
</p>
|
281
289
|
</div>
|
282
290
|
|
283
|
-
<div class="checkbox">
|
291
|
+
<div class="checkbox" ng-hide="repository.content_type === 'ostree' || repository.content_type === 'docker' || repository.content_type === 'ansible_collection'">
|
284
292
|
<label>
|
285
293
|
<input id="unprotected" name="unprotected" ng-model="repository.unprotected" type="checkbox"/>
|
286
294
|
<span translate>Publish via HTTP</span>
|
@@ -50,12 +50,6 @@
|
|
50
50
|
tooltip-placement="left"
|
51
51
|
tooltip-append-to-body="true">
|
52
52
|
</i>
|
53
|
-
<i class="fa fa-question-sign" ng-switch-when="redhat"
|
54
|
-
uib-tooltip="{{ 'You cannot remove these repositories because they belong to a Red Hat product.' | translate }}"
|
55
|
-
tooltip-animation="false"
|
56
|
-
tooltip-placement="left"
|
57
|
-
tooltip-append-to-body="true">
|
58
|
-
</i>
|
59
53
|
</span>
|
60
54
|
</div>
|
61
55
|
|
data/engines/bastion_katello/app/assets/javascripts/bastion_katello/tasks/aggregate-task.factory.js
CHANGED
@@ -23,9 +23,9 @@ angular.module('Bastion.tasks').factory('AggregateTask',
|
|
23
23
|
var taskMap = {},
|
24
24
|
taskSearches = {},
|
25
25
|
taskRepresentation = {
|
26
|
-
state:
|
27
|
-
result:
|
28
|
-
progressbar: {}
|
26
|
+
state: 'stopped',
|
27
|
+
result: 'success',
|
28
|
+
progressbar: {type: 'success', value: 0}
|
29
29
|
};
|
30
30
|
|
31
31
|
var unregisterSearch = function (taskId) {
|
@@ -161,7 +161,7 @@ angular.module('Bastion.tasks').factory('Task',
|
|
161
161
|
* @param {Function} callback function to reflect the
|
162
162
|
* results. If searchParams.type === 'task', the
|
163
163
|
* function is called with a single task, otherwise
|
164
|
-
* it's passed with array of tasks
|
164
|
+
* it's passed with array of tasks satisfying the
|
165
165
|
* conditions.
|
166
166
|
*
|
167
167
|
* @return {Number} the autogenerated id of the condition
|
data/lib/katello/engine.rb
CHANGED
@@ -183,8 +183,6 @@ module Katello
|
|
183
183
|
::HostsController.include Katello::Concerns::HostsControllerExtensions
|
184
184
|
::SmartProxiesController.include Katello::Concerns::SmartProxiesControllerExtensions
|
185
185
|
::SmartProxiesController.include Katello::Concerns::SmartProxiesControllerExtensions
|
186
|
-
::Foreman::Plugin.fact_importer_registry.register(Katello::RhsmFactName::FACT_TYPE, Katello::RhsmFactImporter)
|
187
|
-
::FactParser.register_fact_parser(Katello::RhsmFactName::FACT_TYPE, Katello::RhsmFactParser)
|
188
186
|
::RegistrationCommandsController.prepend Katello::Concerns::RegistrationCommandsControllerExtensions
|
189
187
|
|
190
188
|
#Helper Extensions
|
@@ -248,7 +246,7 @@ module Katello
|
|
248
246
|
|
249
247
|
# check whether foreman_remote_execution to integrate is available in the system
|
250
248
|
def self.with_remote_execution?
|
251
|
-
(
|
249
|
+
Foreman::Plugin.installed?("foreman_remote_execution")
|
252
250
|
end
|
253
251
|
|
254
252
|
def self.with_katello_agent?
|
@@ -260,6 +258,6 @@ module Katello
|
|
260
258
|
end
|
261
259
|
|
262
260
|
def self.with_ansible?
|
263
|
-
(
|
261
|
+
Foreman::Plugin.installed?("foreman_ansible")
|
264
262
|
end
|
265
263
|
end
|
@@ -75,7 +75,7 @@ module Katello
|
|
75
75
|
'katello/api/v2/content_view_histories' => [:index, :auto_complete_search],
|
76
76
|
'katello/api/v2/content_view_repositories' => [:show_all],
|
77
77
|
'katello/api/v2/content_view_versions' => [:index, :show, :auto_complete_search],
|
78
|
-
'katello/api/v2/content_view_components' => [:index, :show],
|
78
|
+
'katello/api/v2/content_view_components' => [:index, :show, :show_all],
|
79
79
|
'katello/api/v2/packages' => [:index],
|
80
80
|
'katello/api/v2/package_groups' => [:index, :show, :auto_complete_search, :compare],
|
81
81
|
'katello/api/v2/errata' => [:index, :show, :auto_complete_search, :compare],
|
@@ -113,7 +113,7 @@ module Katello
|
|
113
113
|
:resource_type => 'Katello::ContentView'
|
114
114
|
@plugin.permission :edit_content_views,
|
115
115
|
{
|
116
|
-
'katello/api/v2/content_views' => [:update],
|
116
|
+
'katello/api/v2/content_views' => [:update, :remove_filters],
|
117
117
|
'katello/api/v2/content_view_versions' => [:update],
|
118
118
|
'katello/api/v2/content_view_filters' => [:create, :update, :destroy],
|
119
119
|
'katello/api/v2/content_view_filter_rules' => [:create, :update, :destroy],
|
@@ -151,27 +151,27 @@ module Katello
|
|
151
151
|
'katello/api/v2/content_credentials' => [:index, :show, :content, :auto_complete_search],
|
152
152
|
'katello/api/v2/gpg_keys' => [:index, :show, :content, :auto_complete_search]
|
153
153
|
},
|
154
|
-
:resource_type => 'Katello::
|
154
|
+
:resource_type => 'Katello::ContentCredential',
|
155
155
|
:finder_scope => :readable
|
156
156
|
@plugin.permission :create_content_credentials,
|
157
157
|
{
|
158
158
|
'katello/api/v2/content_credentials' => [:create],
|
159
159
|
'katello/api/v2/gpg_keys' => [:create]
|
160
160
|
},
|
161
|
-
:resource_type => 'Katello::
|
161
|
+
:resource_type => 'Katello::ContentCredential'
|
162
162
|
@plugin.permission :edit_content_credentials,
|
163
163
|
{
|
164
164
|
'katello/api/v2/content_credentials' => [:update, :set_content],
|
165
165
|
'katello/api/v2/gpg_keys' => [:update, :set_content]
|
166
166
|
},
|
167
|
-
:resource_type => 'Katello::
|
167
|
+
:resource_type => 'Katello::ContentCredential',
|
168
168
|
:finder_scope => :editable
|
169
169
|
@plugin.permission :destroy_content_credentials,
|
170
170
|
{
|
171
171
|
'katello/api/v2/content_credentials' => [:destroy],
|
172
172
|
'katello/api/v2/gpg_keys' => [:destroy]
|
173
173
|
},
|
174
|
-
:resource_type => 'Katello::
|
174
|
+
:resource_type => 'Katello::ContentCredential',
|
175
175
|
:finder_scope => :deletable
|
176
176
|
end
|
177
177
|
|
@@ -317,12 +317,6 @@ module Katello
|
|
317
317
|
},
|
318
318
|
:resource_type => 'Katello::Product',
|
319
319
|
:finder_scope => :syncable
|
320
|
-
@plugin.permission :export_products,
|
321
|
-
{
|
322
|
-
'katello/api/v2/repositories' => [:export]
|
323
|
-
},
|
324
|
-
:resource_type => 'Katello::Product',
|
325
|
-
:finder_scope => :exportable
|
326
320
|
end
|
327
321
|
|
328
322
|
def subscription_permissions
|
data/lib/katello/plugin.rb
CHANGED
@@ -3,7 +3,7 @@ require 'katello/repository_types.rb'
|
|
3
3
|
require 'katello/host_status_manager.rb'
|
4
4
|
# rubocop:disable Metrics/BlockLength
|
5
5
|
Foreman::Plugin.register :katello do
|
6
|
-
requires_foreman '>= 2.
|
6
|
+
requires_foreman '>= 2.6'
|
7
7
|
|
8
8
|
sub_menu :top_menu, :content_menu, :caption => N_('Content'),
|
9
9
|
:icon => 'fa fa-book', :after => :monitor_menu do
|
@@ -91,89 +91,85 @@ Foreman::Plugin.register :katello do
|
|
91
91
|
|
92
92
|
divider :top_menu, :caption => N_('Content Types'), :parent => :content_menu
|
93
93
|
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
98
|
-
|
99
|
-
|
100
|
-
|
101
|
-
|
102
|
-
|
103
|
-
end
|
94
|
+
menu :top_menu,
|
95
|
+
:debs,
|
96
|
+
:caption => N_('Deb Packages'),
|
97
|
+
:url => '/debs',
|
98
|
+
:url_hash => {:controller => 'katello/api/v2/debs',
|
99
|
+
:action => 'index'},
|
100
|
+
:engine => Katello::Engine,
|
101
|
+
:turbolinks => false,
|
102
|
+
:if => lambda { ::Katello::RepositoryTypeManager.enabled?(::Katello::Repository::DEB_TYPE) }
|
104
103
|
|
105
|
-
|
106
|
-
|
107
|
-
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
end
|
104
|
+
menu :top_menu,
|
105
|
+
:docker_tags,
|
106
|
+
:caption => N_('Container Image Tags'),
|
107
|
+
:url => '/docker_tags',
|
108
|
+
:url_hash => {:controller => 'katello/api/v2/docker_tags',
|
109
|
+
:action => 'index'},
|
110
|
+
:engine => Katello::Engine,
|
111
|
+
:turbolinks => false,
|
112
|
+
:if => lambda { ::Katello::RepositoryTypeManager.enabled?(::Katello::Repository::DOCKER_TYPE) }
|
115
113
|
|
116
|
-
|
117
|
-
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
122
|
-
|
123
|
-
|
124
|
-
|
125
|
-
end
|
114
|
+
menu :top_menu,
|
115
|
+
:files,
|
116
|
+
:caption => N_('Files'),
|
117
|
+
:url => '/files',
|
118
|
+
:url_hash => {:controller => 'katello/api/v2/file_units',
|
119
|
+
:action => 'index'},
|
120
|
+
:engine => Katello::Engine,
|
121
|
+
:turbolinks => false,
|
122
|
+
:if => lambda { ::Katello::RepositoryTypeManager.enabled?(::Katello::Repository::FILE_TYPE) }
|
126
123
|
|
127
|
-
|
128
|
-
|
129
|
-
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
end
|
124
|
+
menu :top_menu,
|
125
|
+
:ostree_branches,
|
126
|
+
:caption => N_('OSTree Branches'),
|
127
|
+
:url => '/ostree_branches',
|
128
|
+
:url_hash => {:controller => 'katello/api/v2/ostree_branches',
|
129
|
+
:action => 'index'},
|
130
|
+
:engine => Katello::Engine,
|
131
|
+
:turbolinks => false,
|
132
|
+
:if => lambda { ::Katello::RepositoryTypeManager.enabled?(::Katello::Repository::OSTREE_TYPE) }
|
137
133
|
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
146
|
-
|
147
|
-
|
148
|
-
menu :top_menu,
|
149
|
-
:errata,
|
150
|
-
:caption => N_('Errata'),
|
151
|
-
:url => '/errata',
|
152
|
-
:url_hash => {:controller => 'katello/api/v2/errata',
|
153
|
-
:action => 'index'},
|
154
|
-
:engine => Katello::Engine,
|
155
|
-
:turbolinks => false
|
156
|
-
|
157
|
-
menu :top_menu,
|
158
|
-
:module_streams,
|
159
|
-
:caption => N_('Module Streams'),
|
160
|
-
:url => '/module_streams',
|
161
|
-
:url_hash => {:controller => 'katello/api/v2/module_streams',
|
162
|
-
:action => 'index'},
|
163
|
-
:engine => Katello::Engine,
|
164
|
-
:turbolinks => false
|
165
|
-
end
|
134
|
+
menu :top_menu,
|
135
|
+
:packages,
|
136
|
+
:caption => N_('Packages'),
|
137
|
+
:url => '/packages',
|
138
|
+
:url_hash => {:controller => 'katello/api/v2/packages',
|
139
|
+
:action => 'index'},
|
140
|
+
:engine => Katello::Engine,
|
141
|
+
:turbolinks => false,
|
142
|
+
:if => lambda { ::Katello::RepositoryTypeManager.enabled?(::Katello::Repository::YUM_TYPE) }
|
166
143
|
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
176
|
-
|
144
|
+
menu :top_menu,
|
145
|
+
:errata,
|
146
|
+
:caption => N_('Errata'),
|
147
|
+
:url => '/errata',
|
148
|
+
:url_hash => {:controller => 'katello/api/v2/errata',
|
149
|
+
:action => 'index'},
|
150
|
+
:engine => Katello::Engine,
|
151
|
+
:turbolinks => false,
|
152
|
+
:if => lambda { ::Katello::RepositoryTypeManager.enabled?(::Katello::Repository::YUM_TYPE) }
|
153
|
+
|
154
|
+
menu :top_menu,
|
155
|
+
:module_streams,
|
156
|
+
:caption => N_('Module Streams'),
|
157
|
+
:url => '/module_streams',
|
158
|
+
:url_hash => {:controller => 'katello/api/v2/module_streams',
|
159
|
+
:action => 'index'},
|
160
|
+
:engine => Katello::Engine,
|
161
|
+
:turbolinks => false,
|
162
|
+
:if => lambda { ::Katello::RepositoryTypeManager.enabled?(::Katello::Repository::YUM_TYPE) }
|
163
|
+
|
164
|
+
menu :top_menu,
|
165
|
+
:ansible_collections,
|
166
|
+
:caption => N_('Ansible Collections'),
|
167
|
+
:url => '/ansible_collections',
|
168
|
+
:url_hash => {:controller => 'katello/api/v2/ansible_collections',
|
169
|
+
:action => 'index'},
|
170
|
+
:engine => Katello::Engine,
|
171
|
+
:turbolinks => false,
|
172
|
+
:if => lambda { ::Katello::RepositoryTypeManager.enabled?(::Katello::Repository::ANSIBLE_COLLECTION_TYPE) }
|
177
173
|
end
|
178
174
|
|
179
175
|
menu :top_menu,
|
@@ -201,7 +197,7 @@ Foreman::Plugin.register :katello do
|
|
201
197
|
menu :labs_menu,
|
202
198
|
:content_publication,
|
203
199
|
:url => '/labs/content_views',
|
204
|
-
:url_hash => {:controller => 'katello/
|
200
|
+
:url_hash => {:controller => 'katello/api/v2/content_views',
|
205
201
|
:action => 'index'},
|
206
202
|
:caption => N_('Content Views'),
|
207
203
|
:parent => :lab_features_menu,
|
@@ -0,0 +1,37 @@
|
|
1
|
+
require 'pulp_python_client'
|
2
|
+
|
3
|
+
Katello::RepositoryTypeManager.register('python') do
|
4
|
+
allow_creation_by_user true
|
5
|
+
pulp3_service_class Katello::Pulp3::Repository::Generic
|
6
|
+
pulp3_api_class Katello::Pulp3::Api::Generic
|
7
|
+
pulp3_plugin 'python'
|
8
|
+
partial_repo_path '' #TODO: add partial repo path
|
9
|
+
|
10
|
+
repositories_api_class PulpPythonClient::RepositoriesPythonApi
|
11
|
+
api_class PulpPythonClient::ApiClient
|
12
|
+
configuration_class PulpPythonClient::Configuration
|
13
|
+
remotes_api_class PulpPythonClient::RemotesPythonApi
|
14
|
+
distributions_api_class PulpPythonClient::DistributionsPypiApi
|
15
|
+
repository_versions_api_class PulpPythonClient::RepositoriesPythonVersionsApi
|
16
|
+
remote_class PulpPythonClient::PythonPythonRemote
|
17
|
+
repo_sync_url_class PulpPythonClient::RepositorySyncURL
|
18
|
+
client_module_class PulpPythonClient
|
19
|
+
distribution_class PulpPythonClient::PythonPythonDistribution
|
20
|
+
publication_class PulpPythonClient::PythonPythonPublication
|
21
|
+
publications_api_class PulpPythonClient::PublicationsPypiApi
|
22
|
+
|
23
|
+
generic_remote_option :includes, type: Array, description: "A list containing project specifiers for Python packages to include."
|
24
|
+
generic_remote_option :excludes, type: Array, description: "A list containing project specifiers for Python packages to exclude."
|
25
|
+
generic_remote_option :package_types, type: Array, description: "A list of package types to sync for Python content. Leave blank to get every package type."
|
26
|
+
|
27
|
+
model_name lambda { |pulp_unit| pulp_unit["name"] }
|
28
|
+
model_version lambda { |pulp_unit| pulp_unit["version"] }
|
29
|
+
|
30
|
+
generic_content_type 'python_package',
|
31
|
+
model_class: Katello::GenericContentUnit,
|
32
|
+
pulp3_api: PulpPythonClient::ContentPackagesApi,
|
33
|
+
pulp3_model: PulpPythonClient::PythonPythonPackageContent,
|
34
|
+
pulp3_service_class: Katello::Pulp3::GenericContentUnit,
|
35
|
+
removable: true,
|
36
|
+
uploadable: true
|
37
|
+
end
|
@@ -22,15 +22,6 @@ namespace :katello do
|
|
22
22
|
Katello::Content
|
23
23
|
]
|
24
24
|
|
25
|
-
Katello::RepositoryTypeManager.repository_types.each_value do |repo_type|
|
26
|
-
indexable_types = repo_type.content_types_to_index
|
27
|
-
if SmartProxy.pulp_primary.pulp3_repository_type_support?(repo_type)
|
28
|
-
puts "\e[33mIgnoring types: #{indexable_types&.map { |type| type.model_class.name }}\e[0m\n"
|
29
|
-
else
|
30
|
-
models += indexable_types&.map(&:model_class)
|
31
|
-
end
|
32
|
-
end
|
33
|
-
|
34
25
|
models.each do |model|
|
35
26
|
print "Importing #{model.name}\n"
|
36
27
|
model.import_all
|
@@ -114,21 +114,20 @@ namespace :katello do
|
|
114
114
|
def repo_exists?(repo)
|
115
115
|
if SmartProxy.pulp_primary!.pulp3_support?(repo)
|
116
116
|
backend_service = repo.backend_service(SmartProxy.pulp_primary!)
|
117
|
-
return false unless backend_service&.repository_reference&.repository_href
|
118
117
|
backend_service.api.repositories_api.read(backend_service.repository_reference.repository_href)
|
119
118
|
else
|
120
119
|
Katello.pulp_server.extensions.repository.retrieve(repo.pulp_id)
|
121
120
|
end
|
122
121
|
true
|
123
|
-
rescue
|
124
|
-
|
122
|
+
rescue RestClient::ResourceNotFound, PulpRpmClient::ApiError
|
123
|
+
false
|
125
124
|
end
|
126
125
|
|
127
126
|
def handle_missing_repo(repo)
|
128
127
|
puts "Repository #{repo.id} Missing"
|
129
128
|
if repo.content_view.default?
|
130
129
|
puts "Recreating #{repo.id}"
|
131
|
-
ForemanTasks.sync_task(::Actions::Katello::Repository::Create, repo
|
130
|
+
ForemanTasks.sync_task(::Actions::Katello::Repository::Create, repo) if commit?
|
132
131
|
else
|
133
132
|
puts "Deleting #{repo.id}"
|
134
133
|
ForemanTasks.sync_task(::Actions::Katello::Repository::Destroy, repo) if commit?
|
data/lib/katello/version.rb
CHANGED