katello 3.9.1 → 3.10.0.rc1
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of katello might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/app/assets/javascripts/katello/hosts/host_and_hostgroup_edit.js +28 -12
- data/app/controllers/katello/api/rhsm/candlepin_dynflow_proxy_controller.rb +12 -3
- data/app/controllers/katello/api/rhsm/candlepin_proxies_controller.rb +4 -13
- data/app/controllers/katello/api/v2/content_credentials_controller.rb +1 -1
- data/app/controllers/katello/api/v2/content_view_filter_rules_controller.rb +1 -1
- data/app/controllers/katello/api/v2/content_view_versions_controller.rb +6 -4
- data/app/controllers/katello/api/v2/content_views_controller.rb +8 -3
- data/app/controllers/katello/api/v2/gpg_keys_controller.rb +2 -1
- data/app/controllers/katello/api/v2/host_module_streams_controller.rb +39 -0
- data/app/controllers/katello/api/v2/hosts_bulk_actions_controller.rb +20 -11
- data/app/controllers/katello/api/v2/module_streams_controller.rb +2 -1
- data/app/controllers/katello/api/v2/repository_sets_controller.rb +17 -8
- data/app/controllers/katello/application_controller.rb +0 -2
- data/app/controllers/katello/concerns/hosts_controller_extensions.rb +5 -2
- data/app/lib/actions/candlepin/consumer/attach_subscription.rb +0 -2
- data/app/lib/actions/candlepin/consumer/remove_subscription.rb +0 -2
- data/app/lib/actions/katello/capsule_content/create_repos.rb +1 -25
- data/app/lib/actions/katello/capsule_content/sync.rb +1 -1
- data/app/lib/actions/katello/content_view/promote.rb +2 -5
- data/app/lib/actions/katello/content_view/promote_to_environment.rb +2 -5
- data/app/lib/actions/katello/content_view/publish.rb +1 -4
- data/app/lib/actions/katello/content_view_puppet_environment/create.rb +6 -10
- data/app/lib/actions/katello/content_view_version/export.rb +0 -2
- data/app/lib/actions/katello/content_view_version/incremental_update.rb +19 -1
- data/app/lib/actions/katello/environment/publish_repositories.rb +2 -1
- data/app/lib/actions/katello/gpg_key/update.rb +17 -0
- data/app/lib/actions/katello/host/attach_subscriptions.rb +0 -2
- data/app/lib/actions/katello/host/erratum/install.rb +6 -0
- data/app/lib/actions/katello/host/generate_applicability.rb +0 -2
- data/app/lib/actions/katello/host/hypervisors_update.rb +11 -6
- data/app/lib/actions/katello/host/package/install.rb +6 -0
- data/app/lib/actions/katello/host/package/remove.rb +6 -0
- data/app/lib/actions/katello/host/package/update.rb +7 -1
- data/app/lib/actions/katello/host/package_group/install.rb +6 -0
- data/app/lib/actions/katello/host/package_group/remove.rb +6 -0
- data/app/lib/actions/katello/host/recalculate_errata_status.rb +0 -2
- data/app/lib/actions/katello/host/remove_subscriptions.rb +0 -2
- data/app/lib/actions/katello/host/update.rb +1 -0
- data/app/lib/actions/katello/host/update_content_overrides.rb +0 -2
- data/app/lib/actions/katello/host/upload_package_profile.rb +13 -12
- data/app/lib/actions/katello/host/upload_profiles.rb +70 -0
- data/app/lib/actions/katello/product/reindex_subscriptions.rb +0 -2
- data/app/lib/actions/katello/product/repositories_certs_reset.rb +4 -4
- data/app/lib/actions/katello/product/repositories_gpg_reset.rb +2 -2
- data/app/lib/actions/katello/repository/check_matching_content.rb +18 -6
- data/app/lib/actions/katello/repository/clone_deb_content.rb +1 -1
- data/app/lib/actions/katello/repository/clone_to_environment.rb +3 -5
- data/app/lib/actions/katello/repository/clone_to_version.rb +2 -3
- data/app/lib/actions/katello/repository/clone_yum_content.rb +1 -2
- data/app/lib/actions/katello/repository/clone_yum_metadata.rb +2 -2
- data/app/lib/actions/katello/repository/create.rb +1 -31
- data/app/lib/actions/katello/repository/destroy.rb +1 -2
- data/app/lib/actions/katello/repository/export.rb +0 -2
- data/app/lib/actions/katello/repository/fetch_pxe_files.rb +0 -2
- data/app/lib/actions/katello/repository/filtered_index_content.rb +0 -2
- data/app/lib/actions/katello/repository/finish_upload.rb +0 -2
- data/app/lib/actions/katello/repository/import_upload.rb +0 -2
- data/app/lib/actions/katello/repository/index_content.rb +0 -1
- data/app/lib/actions/katello/repository/index_package_groups.rb +0 -2
- data/app/lib/actions/katello/repository/instance_update.rb +21 -0
- data/app/lib/actions/katello/repository/remove_content.rb +0 -2
- data/app/lib/actions/katello/repository/sync.rb +0 -1
- data/app/lib/actions/katello/repository/update.rb +0 -2
- data/app/lib/actions/katello/upstream_subscriptions/bind_entitlement.rb +0 -2
- data/app/lib/actions/katello/upstream_subscriptions/bind_entitlements.rb +0 -2
- data/app/lib/actions/katello/upstream_subscriptions/remove_entitlement.rb +0 -1
- data/app/lib/actions/katello/upstream_subscriptions/remove_entitlements.rb +0 -2
- data/app/lib/actions/katello/upstream_subscriptions/update_entitlement.rb +0 -1
- data/app/lib/actions/katello/upstream_subscriptions/update_entitlements.rb +0 -2
- data/app/lib/actions/pulp/abstract.rb +13 -14
- data/app/lib/actions/pulp/repository/create.rb +13 -211
- data/app/lib/actions/pulp/repository/create_in_plan.rb +4 -18
- data/app/lib/actions/pulp/repository/refresh.rb +7 -70
- data/app/lib/actions/pulp/repository/sync.rb +1 -2
- data/app/lib/katello/capsule_content.rb +3 -3
- data/app/lib/katello/resources/candlepin/consumer.rb +1 -1
- data/app/lib/katello/resources/candlepin/product.rb +1 -1
- data/app/lib/katello/validators/hostgroup_kickstart_repository_validator.rb +1 -1
- data/app/models/katello/available_module_stream.rb +11 -0
- data/app/models/katello/concerns/content_facet_host_extensions.rb +1 -0
- data/app/models/katello/concerns/host_managed_extensions.rb +56 -0
- data/app/models/katello/concerns/hostgroup_extensions.rb +17 -0
- data/app/models/katello/concerns/redhat_extensions.rb +20 -6
- data/app/models/katello/concerns/search_by_repository_name.rb +0 -1
- data/app/models/katello/concerns/smart_proxy_extensions.rb +26 -12
- data/app/models/katello/content_facet_applicable_module_stream.rb +7 -0
- data/app/models/katello/content_view_puppet_environment.rb +14 -35
- data/app/models/katello/erratum.rb +54 -24
- data/app/models/katello/erratum_package.rb +6 -0
- data/app/models/katello/glue/pulp/repo.rb +5 -228
- data/app/models/katello/gpg_key.rb +1 -0
- data/app/models/katello/host/content_facet.rb +38 -83
- data/app/models/katello/host_available_module_stream.rb +47 -0
- data/app/models/katello/module_stream.rb +18 -0
- data/app/models/katello/module_stream_erratum_package.rb +6 -0
- data/app/models/katello/product.rb +0 -2
- data/app/models/katello/product_content.rb +1 -0
- data/app/models/katello/repository.rb +15 -6
- data/app/models/katello/root_repository.rb +1 -1
- data/app/models/katello/rpm.rb +5 -17
- data/app/services/katello/applicable_content_helper.rb +111 -0
- data/app/services/katello/managed_content_medium_provider.rb +7 -0
- data/app/services/katello/pulp/consumer.rb +13 -7
- data/app/services/katello/pulp/repository.rb +157 -4
- data/app/services/katello/pulp/repository/deb.rb +47 -0
- data/app/services/katello/pulp/repository/docker.rb +43 -0
- data/app/services/katello/pulp/repository/file.rb +31 -0
- data/app/services/katello/pulp/repository/ostree.rb +40 -0
- data/app/services/katello/pulp/repository/puppet.rb +43 -0
- data/app/services/katello/pulp/repository/yum.rb +61 -0
- data/app/services/katello/repository_type.rb +1 -1
- data/app/views/katello/api/v2/content_facet/base.json.rabl +1 -0
- data/app/views/katello/api/v2/content_view_versions/base.json.rabl +0 -1
- data/app/views/katello/api/v2/errata/_counts.json.rabl +0 -1
- data/app/views/katello/api/v2/errata/show.json.rabl +9 -3
- data/app/views/katello/api/v2/host_collections/delta_activation_keys.rabl +0 -1
- data/app/views/katello/api/v2/host_module_streams/base.json.rabl +8 -0
- data/app/views/katello/api/v2/host_module_streams/index.json.rabl +7 -0
- data/app/views/katello/api/v2/packages/backend.json.rabl +0 -1
- data/app/views/katello/api/v2/repositories/show.json.rabl +6 -6
- data/app/views/katello/layouts/react.html.erb +2 -2
- data/app/views/overrides/activation_keys/_host_synced_content_select.html.erb +0 -1
- data/config/routes/api/rhsm.rb +1 -0
- data/config/routes/overrides.rb +4 -0
- data/db/migrate/20181008201422_add_modules_to_errata_packages.rb +29 -0
- data/db/migrate/20181017181806_available_module_streams.rb +34 -0
- data/db/migrate/20181027014323_add_applicable_modules.rb +24 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/common/module-stream-actions.service.js +2 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/details/views/content-credential-info.html +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-credentials/new/views/new-content-credential.html +1 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/views/content-host-bulk-module-streams-modal.html +2 -2
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/views/content-hosts-bulk-errata-modal.html +37 -22
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content-hosts.controller.js +4 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/content-host-module-streams.controller.js +27 -7
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/views/content-host-module-streams.html +29 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/views/errata-details.html +15 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/views/content-hosts.html +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/content-view-promotion.controller.js +0 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/content-view-publish.controller.js +1 -2
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/content-view-versions.controller.js +3 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/histories/content-view-history.controller.js +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/views/content-view-promotion.html +0 -15
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/views/content-view-publish.html +0 -14
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/details/erratum.controller.js +19 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/details/views/erratum-info.html +0 -12
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/details/views/erratum-packages.html +36 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/details/views/erratum.html +7 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/errata.routes.js +9 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/hosts/host-module-streams.factory.js +18 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-info.html +4 -2
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/new/views/new-repository.html +2 -2
- data/engines/bastion_katello/app/assets/stylesheets/bastion_katello/bastion_katello.scss +13 -0
- data/lib/katello/permissions/host_permissions.rb +3 -0
- data/lib/katello/repository_types/deb.rb +3 -1
- data/lib/katello/repository_types/docker.rb +3 -1
- data/lib/katello/repository_types/file.rb +1 -0
- data/lib/katello/repository_types/ostree.rb +3 -1
- data/lib/katello/repository_types/puppet.rb +3 -1
- data/lib/katello/repository_types/yum.rb +3 -1
- data/lib/katello/tasks/delete_orphaned_content.rake +1 -1
- data/lib/katello/tasks/reset.rake +1 -0
- data/lib/katello/tasks/test.rake +14 -0
- data/lib/katello/tasks/unify_hosts.rake +2 -0
- data/lib/katello/tasks/virt_who_report.rake +2 -1
- data/lib/katello/version.rb +1 -1
- data/locale/Makefile +52 -17
- data/locale/update-i18n +22 -0
- data/package.json +11 -1
- data/webpack/__mocks__/foremanReact/components/common/EmptyState.js +8 -0
- data/webpack/move_to_foreman/components/common/table/components/Table.js +2 -1
- data/webpack/move_to_pf/react-bootstrap-select/index.js +4 -2
- data/webpack/move_to_pf/test-utils/testHelpers.js +9 -0
- data/webpack/redux/OrganizationProducts/OrganizationProductsActions.js +24 -0
- data/webpack/redux/OrganizationProducts/OrganizationProductsConstants.js +5 -0
- data/webpack/redux/OrganizationProducts/OrganizationProductsReducer.js +38 -0
- data/webpack/redux/OrganizationProducts/OrganizationProductsSelectors.js +7 -0
- data/webpack/redux/OrganizationProducts/__tests__/OrganizationProductsActions.test.js +47 -0
- data/webpack/redux/OrganizationProducts/__tests__/OrganizationProductsReducer.test.js +33 -0
- data/webpack/redux/OrganizationProducts/__tests__/OrganizationProductsSelectors.test.js +19 -0
- data/webpack/redux/OrganizationProducts/__tests__/__snapshots__/OrganizationProductsActions.test.js.snap +49 -0
- data/webpack/redux/OrganizationProducts/__tests__/__snapshots__/OrganizationProductsReducer.test.js.snap +36 -0
- data/webpack/redux/OrganizationProducts/__tests__/__snapshots__/OrganizationProductsSelectors.test.js.snap +9 -0
- data/webpack/redux/OrganizationProducts/index.js +13 -0
- data/webpack/redux/actions/RedHatRepositories/enabled.js +7 -1
- data/webpack/redux/actions/RedHatRepositories/helpers.js +4 -0
- data/webpack/redux/actions/RedHatRepositories/sets.js +2 -0
- data/webpack/redux/reducers/RedHatRepositories/enabled.fixtures.js +8 -2
- data/webpack/redux/reducers/RedHatRepositories/enabled.js +1 -1
- data/webpack/redux/reducers/RedHatRepositories/sets.fixtures.js +12 -3
- data/webpack/redux/reducers/index.js +2 -0
- data/webpack/scenes/RedHatRepositories/components/SearchBar.js +68 -33
- data/webpack/scenes/RedHatRepositories/index.js +13 -2
- data/webpack/scenes/RedHatRepositories/index.scss +26 -0
- data/webpack/scenes/Subscriptions/Manifest/ManageManifestModal.js +1 -1
- data/webpack/scenes/Subscriptions/Manifest/__tests__/__snapshots__/ManageManifestModal.test.js.snap +1 -1
- data/webpack/scenes/Subscriptions/SubscriptionActions.js +18 -2
- data/webpack/scenes/Subscriptions/SubscriptionConstants.js +8 -0
- data/webpack/scenes/Subscriptions/SubscriptionHelpers.js +15 -0
- data/webpack/scenes/Subscriptions/SubscriptionReducer.js +22 -14
- data/webpack/scenes/Subscriptions/SubscriptionsPage.js +39 -90
- data/webpack/scenes/Subscriptions/SubscriptionsSelectors.js +14 -0
- data/webpack/scenes/Subscriptions/UpstreamSubscriptions/UpstreamSubscriptionsPage.js +1 -3
- data/webpack/scenes/Subscriptions/UpstreamSubscriptions/__tests__/__snapshots__/UpstreamSubscriptionsPage.test.js.snap +0 -1
- data/webpack/scenes/Subscriptions/__tests__/SubscriptionHelpers.test.js +84 -0
- data/webpack/scenes/Subscriptions/__tests__/SubscriptionsActions.test.js +26 -1
- data/webpack/scenes/Subscriptions/__tests__/SubscriptionsPage.test.js +5 -0
- data/webpack/scenes/Subscriptions/__tests__/SubscriptionsReducer.test.js +177 -75
- data/webpack/scenes/Subscriptions/__tests__/SubscriptionsSelectors.test.js +29 -0
- data/webpack/scenes/Subscriptions/__tests__/__snapshots__/SubscriptionHelpers.test.js.snap +31 -0
- data/webpack/scenes/Subscriptions/__tests__/__snapshots__/SubscriptionsActions.test.js.snap +32 -0
- data/webpack/scenes/Subscriptions/__tests__/__snapshots__/SubscriptionsPage.test.js.snap +18 -96
- data/webpack/scenes/Subscriptions/__tests__/__snapshots__/SubscriptionsReducer.test.js.snap +511 -0
- data/webpack/scenes/Subscriptions/__tests__/__snapshots__/SubscriptionsSelectors.test.js.snap +26 -0
- data/webpack/scenes/Subscriptions/__tests__/subscriptions.fixtures.js +6 -1
- data/webpack/scenes/Subscriptions/components/SubscriptionsTable/__tests__/__snapshots__/SubscriptionsTable.test.js.snap +3 -21
- data/webpack/scenes/Subscriptions/components/SubscriptionsToolbar/SubscriptionsToolbar.js +113 -0
- data/webpack/scenes/Subscriptions/components/SubscriptionsToolbar/SubscriptionsToolbar.test.js +47 -0
- data/webpack/scenes/Subscriptions/components/SubscriptionsToolbar/__snapshots__/SubscriptionsToolbar.test.js.snap +504 -0
- data/webpack/scenes/Subscriptions/components/SubscriptionsToolbar/index.js +1 -0
- data/webpack/scenes/Subscriptions/index.js +15 -4
- metadata +59 -14
- data/app/lib/actions/pulp/repository/associate_distributor.rb +0 -20
- data/app/lib/actions/pulp/repository/associate_importer.rb +0 -23
- data/app/lib/actions/pulp/repository/delete_distributor.rb +0 -18
- data/app/lib/actions/pulp/repository/refresh_distributor.rb +0 -19
- data/app/lib/actions/pulp/repository/update_importer.rb +0 -33
- data/app/lib/katello/bulk_actions.rb +0 -63
- data/webpack/move_to_foreman/components/common/EmptyState/index.js +0 -68
@@ -16,6 +16,8 @@ angular.module('Bastion.errata').controller('ErratumController', ['$scope', 'Err
|
|
16
16
|
loading: true
|
17
17
|
};
|
18
18
|
|
19
|
+
$scope.moduleStreamShowMap = {};
|
20
|
+
|
19
21
|
if ($scope.errata) {
|
20
22
|
$scope.panel.loading = false;
|
21
23
|
}
|
@@ -26,5 +28,22 @@ angular.module('Bastion.errata').controller('ErratumController', ['$scope', 'Err
|
|
26
28
|
$scope.panel.loading = false;
|
27
29
|
ApiErrorHandler.handleGETRequestErrors(response, $scope);
|
28
30
|
});
|
31
|
+
|
32
|
+
$scope.showModuleStreamList = function (moduleStreamId) {
|
33
|
+
return (!$scope.moduleStreamShowMap.hasOwnProperty(moduleStreamId) ||
|
34
|
+
$scope.moduleStreamShowMap[moduleStreamId]);
|
35
|
+
};
|
36
|
+
|
37
|
+
$scope.toggleModuleStreamList = function (moduleStreamId) {
|
38
|
+
if ($scope.moduleStreamShowMap.hasOwnProperty(moduleStreamId)) {
|
39
|
+
$scope.moduleStreamShowMap[moduleStreamId] = !$scope.moduleStreamShowMap[moduleStreamId];
|
40
|
+
} else {
|
41
|
+
$scope.moduleStreamShowMap[moduleStreamId] = false;
|
42
|
+
}
|
43
|
+
};
|
44
|
+
|
45
|
+
$scope.moduleStreamChevron = function (moduleStreamId) {
|
46
|
+
return $scope.showModuleStreamList(moduleStreamId) ? 'down' : 'right';
|
47
|
+
};
|
29
48
|
}
|
30
49
|
]);
|
@@ -43,16 +43,4 @@
|
|
43
43
|
<h3 translate>Solution</h3>
|
44
44
|
<p class="info-paragraph">{{ errata.solution }}</p>
|
45
45
|
</div>
|
46
|
-
|
47
|
-
<div data-block="right-column">
|
48
|
-
<h3 translate>Affected Packages</h3>
|
49
|
-
|
50
|
-
<ul class="list-unstyled">
|
51
|
-
<li ng-repeat="package in errata.packages">
|
52
|
-
<a href="/packages?search={{package}}">
|
53
|
-
{{ package }}
|
54
|
-
</a>
|
55
|
-
</li>
|
56
|
-
</ul>
|
57
|
-
</div>
|
58
46
|
</div>
|
@@ -0,0 +1,36 @@
|
|
1
|
+
<span page-title ng-model="errata">{{ 'Packages for Errata: ' | translate }} {{ errata.title }}</span>
|
2
|
+
|
3
|
+
<div data-extend-template="layouts/two-column-details.html">
|
4
|
+
<div data-block="left-column">
|
5
|
+
<h3 translate>Independent Packages</h3>
|
6
|
+
<ul>
|
7
|
+
<p ng-show="!errata.packages.length" >No Packages to show</p>
|
8
|
+
<li ng-show="errata.packages.length" ng-repeat="package in errata.packages">
|
9
|
+
<a href="/packages?search={{package}}">
|
10
|
+
{{ package }}
|
11
|
+
</a>
|
12
|
+
</li>
|
13
|
+
</ul>
|
14
|
+
</div>
|
15
|
+
|
16
|
+
<div data-block="right-column">
|
17
|
+
<h3 translate>Module Stream Packages</h3>
|
18
|
+
<ul class="list-unstyled">
|
19
|
+
<p ng-show="!errata.module_streams.length" >No Packages to show</p>
|
20
|
+
<li ng-show="errata.module_streams.length" ng-repeat="moduleStream in errata.module_streams">
|
21
|
+
<i class="fa fa-chevron-{{ moduleStreamChevron(moduleStream.id) }} cursor-pointer selected-icon"
|
22
|
+
ng-click="toggleModuleStreamList(moduleStream.id)"></i>
|
23
|
+
<a href="/module_streams/{{ moduleStream.id }}">
|
24
|
+
<b>{{ moduleStream.name + ":" + moduleStream.stream }}</b>
|
25
|
+
</a>
|
26
|
+
<ul ng-show="showModuleStreamList(moduleStream.id)">
|
27
|
+
<li ng-repeat="package in moduleStream.packages">
|
28
|
+
<a href="/packages?search={{package}}">
|
29
|
+
{{ package }}
|
30
|
+
</a>
|
31
|
+
</li>
|
32
|
+
</ul>
|
33
|
+
</li>
|
34
|
+
</ul>
|
35
|
+
</div>
|
36
|
+
</div>
|
@@ -134,5 +134,14 @@ angular.module('Bastion.errata').config(['$stateProvider', function ($stateProvi
|
|
134
134
|
label: "{{ task.id }}",
|
135
135
|
parent: 'erratum.info'
|
136
136
|
}
|
137
|
+
})
|
138
|
+
.state('erratum.packages', {
|
139
|
+
url: '/packages',
|
140
|
+
permission: ['view_products', 'view_content_views'],
|
141
|
+
templateUrl: 'errata/details/views/erratum-packages.html',
|
142
|
+
ncyBreadcrumb: {
|
143
|
+
label: "{{ 'Packages' | translate }}",
|
144
|
+
parent: 'erratum.info'
|
145
|
+
}
|
137
146
|
});
|
138
147
|
}]);
|
@@ -0,0 +1,18 @@
|
|
1
|
+
/**
|
2
|
+
* @ngdoc service
|
3
|
+
* @name Bastion.hosts.factory:HostModuleStream
|
4
|
+
*
|
5
|
+
* @requires BastionResource
|
6
|
+
*
|
7
|
+
* @description
|
8
|
+
* Provides a BastionResource for the packages of a single content host
|
9
|
+
*/
|
10
|
+
angular.module('Bastion.hosts').factory('HostModuleStream',
|
11
|
+
['BastionResource', function (BastionResource) {
|
12
|
+
|
13
|
+
return BastionResource('api/v2/hosts/:id/module_streams/:action', {id: '@id'}, {
|
14
|
+
autocomplete: {method: 'GET', isArray: true, params: {action: 'auto_complete_search'}}
|
15
|
+
});
|
16
|
+
|
17
|
+
}]
|
18
|
+
);
|
@@ -113,7 +113,7 @@
|
|
113
113
|
on-save="save(repository)">
|
114
114
|
</dd>
|
115
115
|
</span>
|
116
|
-
<span ng-show="repository.content_type === 'yum' || repository.content_type === 'puppet'">
|
116
|
+
<span ng-show="repository.content_type === 'yum' || repository.content_type === 'deb' || repository.content_type === 'puppet'">
|
117
117
|
<dt translate>Mirror on Sync</dt>
|
118
118
|
<dd bst-edit-checkbox="repository.mirror_on_sync"
|
119
119
|
formatter="booleanToYesNo"
|
@@ -188,7 +188,7 @@
|
|
188
188
|
</dd>
|
189
189
|
</span>
|
190
190
|
|
191
|
-
<span ng-if="repository.content_type === 'yum' && !product.redhat">
|
191
|
+
<span ng-if="(repository.content_type === 'yum' && !product.redhat) || repository.content_type === 'deb'">
|
192
192
|
<dt translate>GPG Key</dt>
|
193
193
|
<dd bst-edit-select="repository.gpg_key.name"
|
194
194
|
readonly="product.redhat ||denied('edit_products', product)"
|
@@ -196,6 +196,8 @@
|
|
196
196
|
options="gpgKeys()"
|
197
197
|
on-save="save(repository)">
|
198
198
|
</dd>
|
199
|
+
</span>
|
200
|
+
<span ng-if="repository.content_type === 'yum' && !product.redhat">
|
199
201
|
<dt translate>SSL CA Cert</dt>
|
200
202
|
<dd bst-edit-select="repository.ssl_ca_cert.name"
|
201
203
|
readonly="product.redhat ||denied('edit_products', product)"
|
@@ -180,7 +180,7 @@
|
|
180
180
|
</p>
|
181
181
|
</div>
|
182
182
|
|
183
|
-
<div class="checkbox" ng-if="repository.content_type === 'yum' || repository.content_type === 'puppet'">
|
183
|
+
<div class="checkbox" ng-if="repository.content_type === 'yum' || repository.content_type === 'deb' || repository.content_type === 'puppet'">
|
184
184
|
<label>
|
185
185
|
<input id="mirror_on_sync" name="mirror_on_sync" ng-model="repository.mirror_on_sync" type="checkbox"/>
|
186
186
|
<span translate>Mirror on Sync</span>
|
@@ -224,7 +224,7 @@
|
|
224
224
|
</label>
|
225
225
|
</div>
|
226
226
|
|
227
|
-
<div bst-form-group label="{{ 'GPG Key' | translate }}" ng-show="repository.content_type === 'yum'">
|
227
|
+
<div bst-form-group label="{{ 'GPG Key' | translate }}" ng-show="repository.content_type === 'yum' || repository.content_type === 'deb'">
|
228
228
|
<select id="gpg_key_id"
|
229
229
|
name="gpg_key_id"
|
230
230
|
ng-model="repository.gpg_key_id"
|
@@ -26,6 +26,7 @@ Foreman::AccessControl.permission(:edit_hosts).actions.concat [
|
|
26
26
|
'katello/api/v2/hosts_bulk_actions/environment_content_view',
|
27
27
|
'katello/api/v2/hosts_bulk_actions/release_version',
|
28
28
|
'katello/api/rhsm/candlepin_dynflow_proxy/upload_package_profile',
|
29
|
+
'katello/api/rhsm/candlepin_dynflow_proxy/upload_profiles',
|
29
30
|
'katello/api/rhsm/candlepin_proxies/regenerate_identity_certificates',
|
30
31
|
'katello/api/rhsm/candlepin_proxies/hypervisors_update',
|
31
32
|
'katello/api/rhsm/candlepin_proxies/async_hypervisors_update',
|
@@ -39,6 +40,8 @@ Foreman::AccessControl.permission(:view_hosts).actions.concat [
|
|
39
40
|
'katello/api/v2/host_errata/index',
|
40
41
|
'katello/api/v2/host_errata/show',
|
41
42
|
'katello/api/v2/host_errata/auto_complete_search',
|
43
|
+
'katello/api/v2/host_module_streams/index',
|
44
|
+
'katello/api/v2/host_module_streams/auto_complete_search',
|
42
45
|
'katello/api/v2/host_subscriptions/index',
|
43
46
|
'katello/api/v2/host_subscriptions/events',
|
44
47
|
'katello/api/v2/host_subscriptions/product_content',
|
@@ -1,7 +1,7 @@
|
|
1
1
|
namespace :katello do
|
2
2
|
task :delete_orphaned_content => ["environment"] do
|
3
3
|
User.current = User.anonymous_admin
|
4
|
-
SmartProxy.with_content.
|
4
|
+
SmartProxy.with_content.reverse_each do |proxy|
|
5
5
|
begin
|
6
6
|
ForemanTasks.async_task(Actions::Katello::CapsuleContent::RemoveOrphans,
|
7
7
|
:capsule_id => proxy.id)
|
@@ -12,6 +12,7 @@ namespace :katello do
|
|
12
12
|
system(service_start.gsub("%s", "mongod"))
|
13
13
|
sleep(10)
|
14
14
|
fail "Cannot migrate pulp database" unless system("sudo -u apache /usr/bin/pulp-manage-db")
|
15
|
+
|
15
16
|
SERVICES.each { |s| system(service_start.gsub("%s", s)) }
|
16
17
|
puts "Pulp database reset."
|
17
18
|
end
|
data/lib/katello/tasks/test.rake
CHANGED
@@ -136,6 +136,20 @@ namespace :test do
|
|
136
136
|
Rake::Task[test_task.name].invoke
|
137
137
|
end
|
138
138
|
|
139
|
+
desc "Run the Katello plugin unit glue test suite."
|
140
|
+
task :services => ['db:test:prepare'] do
|
141
|
+
test_task = Rake::TestTask.new('katello_services_test_task') do |t|
|
142
|
+
t.libs << ["test", "#{Katello::Engine.root}/test"]
|
143
|
+
t.test_files = [
|
144
|
+
"#{Katello::Engine.root}/test/services/**/*_test.rb"
|
145
|
+
]
|
146
|
+
t.verbose = true
|
147
|
+
t.warning = false
|
148
|
+
end
|
149
|
+
|
150
|
+
Rake::Task[test_task.name].invoke
|
151
|
+
end
|
152
|
+
|
139
153
|
desc "Run the Katello plugin unit lib test suite."
|
140
154
|
task :lib => ['db:test:prepare'] do
|
141
155
|
test_task = Rake::TestTask.new('katello_lib_test_task') do |t|
|
@@ -19,6 +19,7 @@ namespace :katello do
|
|
19
19
|
passed = []
|
20
20
|
::Host.unscoped.where("name like '%.%'").find_each do |host|
|
21
21
|
next if passed.include?(host.name.downcase)
|
22
|
+
|
22
23
|
passed << host.name.downcase
|
23
24
|
puts "Skipping #{host.name}, more than one record." && next if ::Host.unscoped.where(:name => host.name).count > 1
|
24
25
|
|
@@ -29,6 +30,7 @@ namespace :katello do
|
|
29
30
|
|
30
31
|
def unify_two(name1, name2)
|
31
32
|
fail _("#{name1} specified twice") if name1 == name2
|
33
|
+
|
32
34
|
host1 = Host.find_by(:name => name1)
|
33
35
|
host2 = Host.find_by(:name => name2)
|
34
36
|
if host1.nil? || host2.nil?
|
@@ -6,7 +6,7 @@ namespace :katello do
|
|
6
6
|
LIMIT - only execute on a specified number of hosts (useful when re-running with different options). Example: LIMIT=500
|
7
7
|
IGNORE - ignore one or more pools, separated via a pipe character '|'.
|
8
8
|
Example: IGNORE="Red Hat Enterprise Linux Server with Smart Management, Standard (Physical or Virtual Nodes)|Some Other Pool"
|
9
|
-
DESCRIPTION
|
9
|
+
DESCRIPTION
|
10
10
|
task :virt_who_report => ["environment", "check_ping"] do
|
11
11
|
class ProblemItem
|
12
12
|
attr_accessor :host, :hypervisor, :message
|
@@ -111,6 +111,7 @@ DESCRIPTION
|
|
111
111
|
|
112
112
|
for_each_item_with_index do |item, index|
|
113
113
|
break if ENV['LIMIT'] && ENV['LIMIT'].to_i < index
|
114
|
+
|
114
115
|
puts "#{index + 1}/#{total}"
|
115
116
|
begin
|
116
117
|
consumer_attributes = candlepin_attributes(item)
|
data/lib/katello/version.rb
CHANGED
data/locale/Makefile
CHANGED
@@ -1,33 +1,40 @@
|
|
1
1
|
#
|
2
|
-
# Makefile for PO merging and MO generation
|
2
|
+
# Makefile for PO merging and MO generation. More info in the README.
|
3
3
|
#
|
4
|
-
|
5
|
-
|
6
|
-
|
4
|
+
# make all-mo (default) - generate MO files
|
5
|
+
# make check - check translations using translate-tool
|
6
|
+
# make tx-update - download and merge translations from Transifex
|
7
|
+
# make clean - clean everything
|
8
|
+
#
|
9
|
+
DOMAIN = katello
|
10
|
+
VERSION = $(shell git describe --abbrev=0 --tags)
|
11
|
+
POTFILE = $(DOMAIN).pot
|
12
|
+
MOFILE = $(DOMAIN).mo
|
13
|
+
POFILES = $(shell find . -name '$(DOMAIN).po')
|
7
14
|
MOFILES = $(patsubst %.po,%.mo,$(POFILES))
|
8
15
|
POXFILES = $(patsubst %.po,%.pox,$(POFILES))
|
16
|
+
EDITFILES = $(patsubst %.po,%.edit.po,$(POFILES))
|
9
17
|
|
10
18
|
%.mo: %.po
|
11
|
-
|
19
|
+
mkdir -p $(shell dirname $@)/LC_MESSAGES
|
20
|
+
msgfmt -o $(shell dirname $@)/LC_MESSAGES/$(MOFILE) $<
|
21
|
+
touch $(shell dirname $@)/LC_MESSAGES/$(MOFILE)
|
12
22
|
|
13
23
|
# Generate MO files from PO files
|
14
24
|
all-mo: $(MOFILES)
|
15
25
|
|
16
26
|
# Check for malformed strings
|
17
|
-
# TODO - enable endwhitespace, endpunc, puncspacing, options filters
|
18
27
|
%.pox: %.po
|
19
28
|
msgfmt -c $<
|
20
29
|
pofilter --nofuzzy -t variables -t blank -t urls -t emails -t long -t newlines \
|
21
|
-
-t options -t printf -t validchars --gnome $< > $@
|
30
|
+
-t endwhitespace -t endpunc -t puncspacing -t options -t printf -t validchars --gnome $< > $@
|
31
|
+
cat $@
|
22
32
|
! grep -q msgid $@
|
23
33
|
|
24
|
-
|
34
|
+
%.edit.po:
|
35
|
+
touch $@
|
25
36
|
|
26
|
-
|
27
|
-
update-po:
|
28
|
-
for f in $(shell find ./ -name "*.po") ; do \
|
29
|
-
msgmerge -N --backup=none -U $$f ${POTFILE} ; \
|
30
|
-
done
|
37
|
+
check: $(POXFILES)
|
31
38
|
|
32
39
|
# Unify duplicate translations
|
33
40
|
uniq-po:
|
@@ -35,7 +42,35 @@ uniq-po:
|
|
35
42
|
msguniq $$f -o $$f ; \
|
36
43
|
done
|
37
44
|
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
45
|
+
tx-pull: $(EDITFILES)
|
46
|
+
tx pull -f
|
47
|
+
for f in $(EDITFILES) ; do \
|
48
|
+
sed -i 's/^\("Project-Id-Version: \).*$$/\1$(DOMAIN) $(VERSION)\\n"/' $$f; \
|
49
|
+
done
|
50
|
+
|
51
|
+
tx-update: tx-pull
|
52
|
+
@echo
|
53
|
+
@echo Run rake plugin:gettext[$(DOMAIN)] from the Foreman installation, then make -C locale mo-files to finish
|
54
|
+
@echo
|
55
|
+
|
56
|
+
mo-files: $(MOFILES)
|
57
|
+
git add $(POFILES) $(POTFILE) ../locale/*/LC_MESSAGES
|
58
|
+
git commit -m "i18n - pulling from tx"
|
59
|
+
@echo
|
60
|
+
@echo Changes commited!
|
61
|
+
@echo
|
62
|
+
|
63
|
+
# Workaround when rake task fails (https://github.com/ruby/rake/pull/182)
|
64
|
+
extract:
|
65
|
+
rxgettext \
|
66
|
+
--sort-output \
|
67
|
+
--sort-by-msgid \
|
68
|
+
--no-wrap \
|
69
|
+
--no-location \
|
70
|
+
-o ${DOMAIN}.pot \
|
71
|
+
--package-name=${DOMAIN} \
|
72
|
+
--package-version="${VERSION}" \
|
73
|
+
--msgid-bugs-address=foreman-dev@googlegroups.com \
|
74
|
+
--copyright-holder="Foreman developers" \
|
75
|
+
--copyright-year=$(shell date +%Y) \
|
76
|
+
$(shell find ../app -type f -name \*.rb -o -name \*.erb)
|
data/locale/update-i18n
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
#!/bin/bash
|
2
|
+
|
3
|
+
FOREMAN_DIR="../../foreman"
|
4
|
+
BASTION_DIR="../engines/bastion_katello"
|
5
|
+
|
6
|
+
#this actuall pulls the strings from transifex for both directions
|
7
|
+
make -C locale tx-update
|
8
|
+
|
9
|
+
#Extract the main strings
|
10
|
+
pushd $FOREMAN_DIR
|
11
|
+
bundle exec rake plugin:gettext[katello]
|
12
|
+
popd
|
13
|
+
|
14
|
+
# Now extract the bastion files
|
15
|
+
pushd $BASTION_DIR
|
16
|
+
bundle exec grunt i18n:extract
|
17
|
+
bundle exec grunt i18n:compile
|
18
|
+
popd
|
19
|
+
|
20
|
+
# This step creates the mo files and does the commit
|
21
|
+
make -C locale mo-files
|
22
|
+
|