katello 4.3.0.rc1 → 4.3.0.rc2
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/v2/api_controller.rb +4 -0
- data/app/controllers/katello/api/v2/host_errata_controller.rb +5 -0
- data/app/controllers/katello/api/v2/host_packages_controller.rb +2 -0
- data/app/controllers/katello/api/v2/host_tracer_controller.rb +4 -0
- data/app/controllers/katello/api/v2/repository_sets_controller.rb +2 -2
- data/app/controllers/katello/api/v2/root_controller.rb +10 -19
- data/app/controllers/katello/concerns/api/v2/bulk_extensions.rb +3 -13
- data/app/controllers/katello/remote_execution_controller.rb +1 -1
- data/app/lib/actions/katello/capsule_content/sync_capsule.rb +7 -5
- data/app/lib/actions/katello/repository/destroy.rb +3 -3
- data/app/lib/actions/pulp/repository/sync.rb +0 -2
- data/app/lib/actions/pulp3/abstract_async_task.rb +16 -4
- data/app/lib/katello/resources/cdn.rb +10 -1
- data/app/models/katello/concerns/host_managed_extensions.rb +7 -4
- data/app/models/katello/concerns/smart_proxy_extensions.rb +6 -2
- data/app/models/katello/content_view_version.rb +1 -6
- data/app/models/katello/glue/pulp/repo.rb +1 -2
- data/app/models/katello/host_tracer.rb +2 -0
- data/app/models/katello/repository.rb +2 -30
- data/app/models/katello/root_repository.rb +3 -43
- data/app/presenters/katello/host_package_presenter.rb +21 -0
- data/app/services/katello/bulk_items_helper.rb +35 -0
- data/app/services/katello/smart_proxy_helper.rb +10 -1
- data/app/views/foreman/job_templates/install_errata.erb +8 -6
- data/app/views/foreman/job_templates/resolve_traces.erb +4 -5
- data/app/views/foreman/job_templates/resolve_traces_-_katello_ansible_default.erb +3 -5
- data/app/views/foreman/smart_proxies/_content_sync.html.erb +7 -0
- data/app/views/katello/api/v2/capsule_content/sync_status.json.rabl +4 -0
- data/app/views/katello/api/v2/{organizations/cdn_configuration.rabl → cdn_configurations/show.json.rabl} +4 -0
- data/app/views/katello/api/v2/content_facet/show.json.rabl +8 -0
- data/app/views/katello/api/v2/content_view_filters/show.json.rabl +0 -1
- data/app/views/katello/api/v2/content_views/base.json.rabl +1 -1
- data/app/views/katello/api/v2/host_packages/base.json.rabl +2 -0
- data/app/views/katello/api/v2/organizations/show.json.rabl +1 -1
- data/app/views/katello/api/v2/repositories/show.json.rabl +0 -3
- data/config/routes/api/v2.rb +0 -10
- data/db/migrate/20211115215210_drop_ostree_branches.rb +13 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/bastion-katello-bootstrap.js +0 -2
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/bastion_katello.js +0 -3
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/content-views.routes.js +0 -10
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/views/content-view-versions.html +0 -3
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/versions/content-view-version-content.controller.js +0 -10
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/versions/content-view-versions.module.js +0 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/versions/views/content-view-version.html +0 -7
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/content.service.js +0 -5
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/environments.module.js +0 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/environments.routes.js +0 -11
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/organizations/fenced-pages.service.js +1 -2
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/repository-details-info.controller.js +2 -4
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/repository-details-info.filter.js +0 -10
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-info.html +1 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/new/new-repository.controller.js +3 -6
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/new/views/new-repository.html +4 -1
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/os-versions.service.js +1 -0
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/repositories.routes.js +0 -9
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/views/product-repositories.html +0 -8
- data/engines/bastion_katello/lib/bastion_katello/engine.rb +0 -1
- data/lib/katello/permission_creator.rb +0 -1
- data/lib/katello/plugin.rb +0 -10
- data/lib/katello/tasks/reset.rake +2 -2
- data/lib/katello/version.rb +1 -1
- data/webpack/components/Packages/index.js +63 -0
- data/webpack/components/Search/Search.js +7 -1
- data/webpack/components/SelectAllCheckbox/index.js +2 -2
- data/webpack/components/Table/MainTable.scss +7 -1
- data/webpack/components/Table/TableHooks.js +10 -19
- data/webpack/components/Table/TableWrapper.js +0 -2
- data/webpack/components/WithOrganization/__snapshots__/withOrganization.test.js.snap +3 -3
- data/webpack/components/extensions/HostDetails/HostDetailsConstants.js +1 -0
- data/webpack/components/extensions/HostDetails/HostDetailsSelectors.js +16 -0
- data/webpack/components/extensions/HostDetails/HostErrata/HostErrataConstants.js +2 -0
- data/webpack/components/extensions/HostDetails/HostPackages/HostPackagesActions.js +11 -0
- data/webpack/components/extensions/HostDetails/HostPackages/HostPackagesConstants.js +2 -0
- data/webpack/components/extensions/HostDetails/HostPackages/HostPackagesSelectors.js +16 -0
- data/webpack/components/extensions/HostDetails/Tabs/ContentTab/SecondaryTabsRoutes.js +4 -0
- data/webpack/components/extensions/HostDetails/Tabs/ContentTab/constants.js +1 -0
- data/webpack/components/extensions/HostDetails/Tabs/ErrataTab.js +119 -25
- data/webpack/components/extensions/HostDetails/Tabs/HostTracesConstants.js +1 -0
- data/webpack/components/extensions/HostDetails/Tabs/PackagesTab.js +127 -0
- data/webpack/components/extensions/HostDetails/Tabs/PackagesTab.scss +11 -0
- data/webpack/components/extensions/HostDetails/Tabs/RemoteExecutionActions.js +30 -4
- data/webpack/components/extensions/HostDetails/Tabs/RemoteExecutionConstants.js +1 -0
- data/webpack/components/extensions/HostDetails/Tabs/RepositorySetsTab/RepositorySetsActions.js +73 -0
- data/webpack/components/extensions/HostDetails/Tabs/RepositorySetsTab/RepositorySetsConstants.js +2 -0
- data/webpack/components/extensions/HostDetails/Tabs/RepositorySetsTab/RepositorySetsSelectors.js +16 -0
- data/webpack/components/extensions/HostDetails/Tabs/RepositorySetsTab/RepositorySetsTab.js +347 -0
- data/webpack/components/extensions/HostDetails/Tabs/RepositorySetsTab/RepositorySetsTab.scss +7 -0
- data/webpack/components/extensions/HostDetails/Tabs/TracesTab.js +38 -31
- data/webpack/components/extensions/HostDetails/Tabs/__tests__/bookmarks.fixtures.json +12 -0
- data/webpack/components/extensions/HostDetails/Tabs/__tests__/contentOverrides.fixtures.json +227 -0
- data/webpack/components/extensions/HostDetails/Tabs/__tests__/errataTab.test.js +423 -2
- data/webpack/components/extensions/HostDetails/Tabs/__tests__/packages.fixtures.json +28 -0
- data/webpack/components/extensions/HostDetails/Tabs/__tests__/packagesTab.test.js +91 -0
- data/webpack/components/extensions/HostDetails/Tabs/__tests__/repositorySets.fixtures.json +120 -0
- data/webpack/components/extensions/HostDetails/Tabs/__tests__/repositorySetsTab.test.js +307 -0
- data/webpack/components/extensions/HostDetails/Tabs/__tests__/resolveErrata.fixtures.json +35 -0
- data/webpack/components/extensions/HostDetails/Tabs/__tests__/tracesTab.test.js +55 -9
- data/webpack/components/extensions/HostDetails/Tabs/customizedRexUrlHelpers.js +28 -14
- data/webpack/containers/Application/overrides.scss +31 -9
- data/webpack/global_index.js +4 -2
- data/webpack/redux/reducers/RedHatRepositories/enabled.fixtures.js +0 -2
- data/webpack/scenes/Content/ContentConfig.js +23 -7
- data/webpack/scenes/ContentCredentials/ContentCredentialActions.js +18 -0
- data/webpack/scenes/ContentCredentials/ContentCredentialConstants.js +2 -0
- data/webpack/scenes/ContentCredentials/ContentCredentialSelectors.js +12 -0
- data/webpack/scenes/ContentCredentials/__tests__/contentCredentials.fixtures.js +73 -0
- data/webpack/scenes/ContentViews/Copy/CopyContentViewForm.js +1 -1
- data/webpack/scenes/ContentViews/Create/ContentViewFormComponents.js +3 -3
- data/webpack/scenes/ContentViews/Create/CreateContentViewForm.js +7 -2
- data/webpack/scenes/ContentViews/Create/CreateContentViewForm.scss +7 -0
- data/webpack/scenes/ContentViews/Create/__tests__/createContentView.test.js +9 -9
- data/webpack/scenes/ContentViews/Delete/ContentViewDeleteWizard.js +6 -6
- data/webpack/scenes/ContentViews/Delete/Steps/CVDeleteEnvironmentsSelection.js +39 -37
- data/webpack/scenes/ContentViews/Delete/Steps/CVDeletionReview.js +35 -33
- data/webpack/scenes/ContentViews/Delete/__tests__/contentViewDelete.test.js +7 -5
- data/webpack/scenes/ContentViews/Delete/__tests__/cvVersionsData.fixtures.json +2 -6
- data/webpack/scenes/ContentViews/Details/ComponentContentViews/ComponentEnvironments.js +13 -14
- data/webpack/scenes/ContentViews/Details/ContentViewDetails.js +18 -9
- data/webpack/scenes/ContentViews/Details/ContentViewInfo.js +3 -2
- data/webpack/scenes/ContentViews/Details/Filters/Add/__tests__/cvFilterCreateResult.fixtures.json +1 -2
- data/webpack/scenes/ContentViews/Details/Filters/__tests__/CVRpmFilterContent.test.js +1 -1
- data/webpack/scenes/ContentViews/Details/Filters/__tests__/contentViewErrataByDateDetails.fixtures.json +1 -8
- data/webpack/scenes/ContentViews/Details/Filters/__tests__/contentViewFilterDetail.fixtures.json +1 -2
- data/webpack/scenes/ContentViews/Details/Filters/__tests__/contentViewFilterDetails.test.js +3 -8
- data/webpack/scenes/ContentViews/Details/Filters/__tests__/cvAllRepos.fixtures.json +0 -2
- data/webpack/scenes/ContentViews/Details/Filters/__tests__/cvErratumFilterDetails.fixtures.json +1 -2
- data/webpack/scenes/ContentViews/Details/Filters/__tests__/cvFilterDetailModuleAffectedRepos.fixtures.json +1 -8
- data/webpack/scenes/ContentViews/Details/Filters/__tests__/cvFilterDetailWithAffectedRepos.fixtures.json +1 -8
- data/webpack/scenes/ContentViews/Details/Filters/__tests__/cvModuleStreamFilterDetails.fixtures.json +1 -2
- data/webpack/scenes/ContentViews/Details/Filters/__tests__/cvPackageFilterDetail.fixtures.json +1 -3
- data/webpack/scenes/ContentViews/Details/Promote/ContentViewVersionPromote.js +44 -28
- data/webpack/scenes/ContentViews/Details/Repositories/ContentCounts.js +2 -1
- data/webpack/scenes/ContentViews/Details/Repositories/ContentViewRepositories.js +1 -1
- data/webpack/scenes/ContentViews/Details/Repositories/LastSync.js +46 -8
- data/webpack/scenes/ContentViews/Details/Repositories/__tests__/contentViewDetailRepos.fixtures.json +0 -2
- data/webpack/scenes/ContentViews/Details/Versions/ContentViewVersionContent.js +19 -3
- data/webpack/scenes/ContentViews/Details/Versions/ContentViewVersionEnvironments.js +2 -2
- data/webpack/scenes/ContentViews/Details/Versions/ContentViewVersionErrata.js +5 -3
- data/webpack/scenes/ContentViews/Details/Versions/ContentViewVersionErrata.scss +5 -2
- data/webpack/scenes/ContentViews/Details/Versions/ContentViewVersions.js +7 -4
- data/webpack/scenes/ContentViews/Details/Versions/Delete/RemoveSteps/CVEnvironmentSelectionForm.js +59 -53
- data/webpack/scenes/ContentViews/Details/Versions/Delete/RemoveSteps/CVVersionRemoveReview.js +24 -17
- data/webpack/scenes/ContentViews/Details/Versions/Delete/__tests__/versionsResponseData.fixtures.json +1 -4
- data/webpack/scenes/ContentViews/Details/Versions/VersionDetails/ContentViewVersionRepositoryCell.js +8 -3
- data/webpack/scenes/ContentViews/Details/Versions/VersionDetails/__tests__/ContentViewVersionComponent.fixtures.json +1 -4
- data/webpack/scenes/ContentViews/Details/Versions/VersionDetails/__tests__/ContentViewVersionDetails.fixtures.json +1 -2
- data/webpack/scenes/ContentViews/Details/Versions/VersionDetails/__tests__/ContentViewVersionDetailsCounts.fixtures.json +1 -2
- data/webpack/scenes/ContentViews/Details/Versions/VersionDetails/__tests__/ContentViewVersionRepositories.fixtures.json +1 -18
- data/webpack/scenes/ContentViews/Details/Versions/__tests__/contentViewVersions.fixtures.json +5 -5
- data/webpack/scenes/ContentViews/Details/Versions/__tests__/contentViewVersions.test.js +1 -0
- data/webpack/scenes/ContentViews/Details/Versions/__tests__/contentViewVersionsWithTask.fixtures.json +1 -3
- data/webpack/scenes/ContentViews/Details/contentViewInfo.scss +0 -4
- data/webpack/scenes/ContentViews/Publish/CVPublishForm.js +66 -53
- data/webpack/scenes/ContentViews/Publish/CVPublishReview.js +40 -28
- data/webpack/scenes/ContentViews/Publish/PublishContentViewWizard.js +3 -3
- data/webpack/scenes/ContentViews/Publish/__tests__/publishContentView.test.js +14 -14
- data/webpack/scenes/ContentViews/Publish/cvPublishForm.scss +6 -0
- data/webpack/scenes/ContentViews/Table/ContentViewsTable.js +53 -12
- data/webpack/scenes/ContentViews/Table/tableDataGenerator.js +12 -6
- data/webpack/scenes/ContentViews/__tests__/contentViewPage.test.js +6 -6
- data/webpack/scenes/ContentViews/components/ContentViewIcon.js +6 -5
- data/webpack/scenes/ContentViews/components/ContentViewsCounter.js +2 -2
- data/webpack/scenes/ContentViews/components/EnvironmentPaths/EnvironmentPaths.js +26 -27
- data/webpack/scenes/ContentViews/components/EnvironmentPaths/EnvironmentPaths.scss +18 -6
- data/webpack/scenes/ContentViews/components/WizardHeader.js +44 -0
- data/webpack/scenes/ContentViews/components/contentViewIcon.scss +13 -2
- data/webpack/scenes/Organizations/OrganizationActions.js +22 -24
- data/webpack/scenes/Organizations/OrganizationConstants.js +1 -3
- data/webpack/scenes/Organizations/OrganizationReducer.js +0 -7
- data/webpack/scenes/Organizations/OrganizationSelectors.js +16 -0
- data/webpack/scenes/Organizations/__tests__/OrganizationActions.test.js +1 -21
- data/webpack/scenes/Organizations/__tests__/OrganizationReducer.test.js +0 -20
- data/webpack/scenes/Organizations/__tests__/organizations.fixtures.js +34 -23
- data/webpack/scenes/Subscriptions/Manifest/ManageManifestModal.js +151 -14
- data/webpack/scenes/Subscriptions/Manifest/__tests__/ManageManifestModal.test.js +150 -31
- data/webpack/scenes/Subscriptions/Manifest/index.js +14 -3
- data/webpack/utils/dateTimeHelpers.js +7 -0
- data/webpack/utils/helpers.js +1 -1
- metadata +45 -43
- data/app/controllers/katello/api/v2/ostree_branches_controller.rb +0 -16
- data/app/lib/actions/pulp/repository/presenters/ostree_presenter.rb +0 -91
- data/app/models/katello/ostree_branch.rb +0 -12
- data/app/models/katello/repository_ostree_branch.rb +0 -7
- data/app/services/katello/pulp/ostree_branch.rb +0 -14
- data/app/services/katello/pulp/repository/ostree.rb +0 -48
- data/app/views/katello/api/v2/ostree_branches/compare.json.rabl +0 -10
- data/app/views/katello/api/v2/ostree_branches/index.json.rabl +0 -7
- data/app/views/katello/api/v2/ostree_branches/show.json.rabl +0 -5
- data/app/views/katello/api/v2/root/resource_list.json.rabl +0 -3
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/versions/views/content-view-version-ostree-branches.html +0 -26
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/details/views/environment-ostree.html +0 -27
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/ostree-branches/details/ostree-branch-repositories.controller.js +0 -77
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/ostree-branches/details/ostree-branch.controller.js +0 -31
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/ostree-branches/details/views/ostree-branch-info.html +0 -15
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/ostree-branches/details/views/ostree-branch-repositories.html +0 -72
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/ostree-branches/details/views/ostree-branch.html +0 -30
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/ostree-branches/ostree-branch.factory.js +0 -27
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/ostree-branches/ostree-branches.controller.js +0 -67
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/ostree-branches/ostree-branches.module.js +0 -15
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/ostree-branches/ostree-branches.routes.js +0 -50
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/ostree-branches/views/ostree-branches.html +0 -40
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-manage-ostree-branches.html +0 -40
- data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/ostree-upstream-sync-policy.service.js +0 -26
- data/webpack/components/extensions/HostDetails/Tabs/SubscriptionTab.js +0 -12
- data/webpack/scenes/Content/Details/ContentCounts.js +0 -42
- data/webpack/scenes/Subscriptions/Manifest/__tests__/SimpleContentAccess.test.js +0 -108
- data/webpack/scenes/Subscriptions/Manifest/__tests__/__snapshots__/ManageManifestModal.test.js.snap +0 -158
@@ -2,14 +2,14 @@
|
|
2
2
|
kind: job_template
|
3
3
|
name: Install Errata - Katello SSH Default
|
4
4
|
job_category: Katello
|
5
|
-
description_format: 'Install errata %{
|
5
|
+
description_format: 'Install errata %{Errata search query}'
|
6
6
|
feature: katello_errata_install
|
7
7
|
provider_type: SSH
|
8
8
|
template_inputs:
|
9
|
-
- name:
|
10
|
-
description:
|
9
|
+
- name: Errata search query
|
10
|
+
description: Filter criteria for errata to be installed.
|
11
11
|
input_type: user
|
12
|
-
required:
|
12
|
+
required: false
|
13
13
|
foreign_input_sets:
|
14
14
|
- template: Package Action - SSH Default
|
15
15
|
exclude: action,package
|
@@ -19,6 +19,8 @@ foreign_input_sets:
|
|
19
19
|
<% advisories = input(:errata).split(',').join(' ') %>
|
20
20
|
<%= render_template('Package Action - SSH Default', :action => 'install -n -t patch', :package => advisories) %>
|
21
21
|
<% else %>
|
22
|
-
<%
|
22
|
+
<% advisory_ids = @host.advisory_ids(search: input("Errata search query")) %>
|
23
|
+
|
24
|
+
<% advisories = advisory_ids.map { |e| "--advisory=#{e}" }.join(' ') %>
|
23
25
|
<%= render_template('Package Action - SSH Default', :action => 'update-minimal', :package => advisories) %>
|
24
|
-
<% end %>
|
26
|
+
<% end %>
|
@@ -6,15 +6,14 @@ description_format: 'Resolve Traces'
|
|
6
6
|
feature: katello_host_tracer_resolve
|
7
7
|
provider_type: SSH
|
8
8
|
template_inputs:
|
9
|
-
- name:
|
10
|
-
description:
|
9
|
+
- name: Traces search query
|
10
|
+
description: Search query to provide traces to resolve
|
11
11
|
input_type: user
|
12
|
-
required:
|
12
|
+
required: false
|
13
13
|
%>
|
14
14
|
|
15
15
|
<%
|
16
|
-
|
17
|
-
commands = @host.traces_helpers(ids)
|
16
|
+
commands = @host.traces_helpers(search: input('Traces search query'))
|
18
17
|
reboot = commands.delete('reboot')
|
19
18
|
-%>
|
20
19
|
<% if reboot -%>
|
@@ -5,18 +5,16 @@ model: JobTemplate
|
|
5
5
|
job_category: Katello via Ansible
|
6
6
|
description_format: Resolve Traces
|
7
7
|
template_inputs:
|
8
|
-
- name:
|
9
|
-
description:
|
8
|
+
- name: Traces search query
|
9
|
+
description: Search query to provide traces to resolve
|
10
10
|
input_type: user
|
11
11
|
required: true
|
12
|
-
advanced: false
|
13
12
|
provider_type: Ansible
|
14
13
|
kind: job_template
|
15
14
|
%>
|
16
15
|
|
17
16
|
<%
|
18
|
-
|
19
|
-
commands = @host.traces_helpers(ids)
|
17
|
+
commands = @host.traces_helpers(search: input('Traces search query'))
|
20
18
|
reboot = commands.delete('reboot')
|
21
19
|
-%>
|
22
20
|
<%= render_template(
|
@@ -19,6 +19,13 @@
|
|
19
19
|
</div>
|
20
20
|
|
21
21
|
<br>
|
22
|
+
<div ng-hide="syncStatus.unsyncable_content_types.length == 0">
|
23
|
+
<span translate>
|
24
|
+
Pulp plugin missing for synchronizable content types: <b>{{ syncStatus.unsyncable_content_types.join(", ") }}.</b><br />
|
25
|
+
Repositories containing these content types will not be synced.
|
26
|
+
</span>
|
27
|
+
</div>
|
28
|
+
|
22
29
|
<div ng-show="syncState.is(syncState.SYNCING, syncState.SYNC_TRIGGERED, syncState.CANCEL_TRIGGERED)">
|
23
30
|
<a ng-click="cancelSync()" class="btn btn-default" ng-disabled="!syncState.is(syncState.SYNCING)">
|
24
31
|
<span translate>Cancel Sync</span>
|
@@ -25,6 +25,14 @@ child :content_facet => :content_facet_attributes do
|
|
25
25
|
node :katello_tracer_installed do |content_facet|
|
26
26
|
content_facet.tracer_installed?
|
27
27
|
end
|
28
|
+
|
29
|
+
node :katello_agent_enabled do
|
30
|
+
Katello.with_katello_agent?
|
31
|
+
end
|
32
|
+
|
33
|
+
node :remote_execution_by_default do
|
34
|
+
Katello.remote_execution_by_default?
|
35
|
+
end
|
28
36
|
end
|
29
37
|
|
30
38
|
attributes :description, :facts
|
@@ -16,7 +16,7 @@ node :owner_details do |org|
|
|
16
16
|
end
|
17
17
|
|
18
18
|
node :cdn_configuration do |org|
|
19
|
-
partial('katello/api/v2/
|
19
|
+
partial('katello/api/v2/cdn_configurations/show', object: org.cdn_configuration)
|
20
20
|
end
|
21
21
|
|
22
22
|
node :default_content_view_id do |org|
|
@@ -21,8 +21,6 @@ glue(@resource.root) do
|
|
21
21
|
|
22
22
|
attributes :product_type
|
23
23
|
attributes :upstream_username
|
24
|
-
attributes :ostree_upstream_sync_policy, :ostree_upstream_sync_depth
|
25
|
-
attributes :compute_ostree_upstream_sync_depth => :computed_ostree_upstream_sync_depth
|
26
24
|
attributes :deb_releases, :deb_components, :deb_architectures
|
27
25
|
attributes :http_proxy_policy
|
28
26
|
attributes :http_proxy_id
|
@@ -53,7 +51,6 @@ glue(@resource.root) do
|
|
53
51
|
end
|
54
52
|
end
|
55
53
|
|
56
|
-
attributes :ostree_branch_names => :ostree_branches
|
57
54
|
attributes :relative_path
|
58
55
|
attributes :promoted? => :promoted
|
59
56
|
attributes :content_view_version_id, :library_instance_id
|
data/config/routes/api/v2.rb
CHANGED
@@ -14,8 +14,6 @@ Katello::Engine.routes.draw do
|
|
14
14
|
# re-routes alphabetical
|
15
15
|
##############################
|
16
16
|
|
17
|
-
root :to => 'root#resource_list'
|
18
|
-
|
19
17
|
api_resources :capsules, :only => [:index, :show] do
|
20
18
|
member do
|
21
19
|
resource :content, :only => [], :controller => 'capsule_content' do
|
@@ -162,13 +160,6 @@ Katello::Engine.routes.draw do
|
|
162
160
|
end
|
163
161
|
end
|
164
162
|
|
165
|
-
api_resources :ostree_branches, :only => [:index, :show] do
|
166
|
-
collection do
|
167
|
-
get :auto_complete_search
|
168
|
-
get :compare
|
169
|
-
end
|
170
|
-
end
|
171
|
-
|
172
163
|
api_resources :debs, :only => [:index, :show] do
|
173
164
|
collection do
|
174
165
|
get :auto_complete_search
|
@@ -417,7 +408,6 @@ Katello::Engine.routes.draw do
|
|
417
408
|
Katello::RepositoryTypeManager.generic_content_types(false).each do |type|
|
418
409
|
api_resources type.pluralize.to_sym, :only => [:index, :show], :controller => 'generic_content_units', :content_type => type
|
419
410
|
end
|
420
|
-
api_resources :ostree_branches, :only => [:index, :show]
|
421
411
|
|
422
412
|
api_resources :content_uploads, :controller => :content_uploads, :only => [:create, :destroy, :update]
|
423
413
|
|
@@ -0,0 +1,13 @@
|
|
1
|
+
class DropOstreeBranches < ActiveRecord::Migration[6.0]
|
2
|
+
def up
|
3
|
+
drop_table :katello_repository_ostree_branches
|
4
|
+
drop_table :katello_ostree_branches
|
5
|
+
|
6
|
+
remove_column :katello_root_repositories, :ostree_upstream_sync_policy
|
7
|
+
remove_column :katello_root_repositories, :ostree_upstream_sync_depth
|
8
|
+
end
|
9
|
+
|
10
|
+
def down
|
11
|
+
fail ActiveRecord::IrreversibleMigration
|
12
|
+
end
|
13
|
+
end
|
data/engines/bastion_katello/app/assets/javascripts/bastion_katello/bastion-katello-bootstrap.js
CHANGED
@@ -9,9 +9,7 @@ BASTION_MODULES.push(
|
|
9
9
|
'Bastion.docker-tags',
|
10
10
|
'Bastion.files',
|
11
11
|
'Bastion.ansible-collections',
|
12
|
-
'Bastion.ostree-branches',
|
13
12
|
'Bastion.hosts',
|
14
|
-
'Bastion.ostree-branches',
|
15
13
|
'Bastion.module-streams',
|
16
14
|
'Bastion.environments',
|
17
15
|
'Bastion.content-credentials',
|
@@ -40,9 +40,6 @@
|
|
40
40
|
//= require "bastion_katello/ansible-collections/ansible-collections.module.js"
|
41
41
|
//= require_tree "./ansible-collections"
|
42
42
|
|
43
|
-
//= require "bastion_katello/ostree-branches/ostree-branches.module.js"
|
44
|
-
//= require_tree "./ostree-branches"
|
45
|
-
|
46
43
|
//= require "bastion_katello/debs/debs.module.js"
|
47
44
|
//= require_tree "./debs"
|
48
45
|
|
@@ -130,16 +130,6 @@ angular.module('Bastion.content-views').config(['$stateProvider', function ($sta
|
|
130
130
|
parent: 'content-view.version.details'
|
131
131
|
}
|
132
132
|
})
|
133
|
-
.state('content-view.version.ostree-branches', {
|
134
|
-
url: '/ostree_branches',
|
135
|
-
permission: 'view_content_views',
|
136
|
-
controller: 'ContentViewVersionContentController',
|
137
|
-
templateUrl: 'content-views/versions/views/content-view-version-ostree-branches.html',
|
138
|
-
ncyBreadcrumb: {
|
139
|
-
label: '{{ "OSTree Branches" | translate }}',
|
140
|
-
parent: 'content-view.version.details'
|
141
|
-
}
|
142
|
-
})
|
143
133
|
.state('content-view.version.module-streams', {
|
144
134
|
url: '/module_streams',
|
145
135
|
permission: 'view_content_views',
|
@@ -74,9 +74,6 @@
|
|
74
74
|
<div translate ng-if="version.docker_tag_count && version.docker_tag_count > 0">
|
75
75
|
{{ version.docker_tag_count }} Container Image Tags
|
76
76
|
</div>
|
77
|
-
<div translate ng-if="version.ostree_branch_count && version.ostree_branch_count > 0">
|
78
|
-
{{ version.ostree_branch_count }} OSTree Branches
|
79
|
-
</div>
|
80
77
|
<div translate ng-if="version.file_count && version.file_count > 0">
|
81
78
|
{{ version.file_count }} Files
|
82
79
|
</div>
|
@@ -52,16 +52,6 @@
|
|
52
52
|
type: Erratum,
|
53
53
|
repositoryType: 'yum'
|
54
54
|
},
|
55
|
-
'ostree-branches': {
|
56
|
-
type: OstreeBranch,
|
57
|
-
repositoryType: 'ostree',
|
58
|
-
params: {
|
59
|
-
'content_type': "ostree",
|
60
|
-
'content_view_version_id': $scope.$stateParams.versionId,
|
61
|
-
'sort_by': 'version',
|
62
|
-
'sort_order': 'DESC'
|
63
|
-
}
|
64
|
-
},
|
65
55
|
'module-streams': {
|
66
56
|
type: ModuleStream,
|
67
57
|
repositoryType: 'yum',
|
@@ -71,13 +71,6 @@
|
|
71
71
|
</a>
|
72
72
|
</li>
|
73
73
|
|
74
|
-
<li ng-class="{active: isState('content-view.version.ostree-branches')}"
|
75
|
-
ng-show="version.ostree_branch_count !== 0">
|
76
|
-
<a ui-sref="content-view.version.ostree-branches({versionId: version.id})">
|
77
|
-
<span translate>OSTree Branches</span>
|
78
|
-
</a>
|
79
|
-
</li>
|
80
|
-
|
81
74
|
<li ng-class="{active: isState('content-view.version.details')}">
|
82
75
|
<a ui-sref="content-view.version.details({versionId: version.id})">
|
83
76
|
<span translate>Details</span>
|
data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/content.service.js
CHANGED
@@ -50,11 +50,6 @@
|
|
50
50
|
resource: 'DockerTag',
|
51
51
|
display: translate('Container Image Tags'),
|
52
52
|
repositoryType: 'docker'
|
53
|
-
}, {
|
54
|
-
state: 'ostree',
|
55
|
-
resource: 'OstreeBranch',
|
56
|
-
display: translate('OSTree Branches'),
|
57
|
-
repositoryType: 'ostree'
|
58
53
|
}, {
|
59
54
|
state: 'module-streams',
|
60
55
|
resource: 'ModuleStream',
|
@@ -108,17 +108,6 @@ angular.module('Bastion.environments').config(['$stateProvider', function ($stat
|
|
108
108
|
parent: 'environment.details'
|
109
109
|
}
|
110
110
|
})
|
111
|
-
.state('environment.ostree', {
|
112
|
-
url: '/ostree?repositoryId&contentViewId',
|
113
|
-
reloadOnSearch: false,
|
114
|
-
permission: 'view_lifecycle_environments',
|
115
|
-
controller: 'EnvironmentContentController',
|
116
|
-
templateUrl: 'environments/details/views/environment-ostree.html',
|
117
|
-
ncyBreadcrumb: {
|
118
|
-
label: '{{ "OSTree Branches" | translate }}',
|
119
|
-
parent: 'environment.details'
|
120
|
-
}
|
121
|
-
})
|
122
111
|
.state('environment.content-views', {
|
123
112
|
url: '/content-views',
|
124
113
|
reloadOnSearch: false,
|
@@ -10,7 +10,6 @@
|
|
10
10
|
* @requires CurrentOrganization
|
11
11
|
* @requires Checksum
|
12
12
|
* @requires DownloadPolicy
|
13
|
-
* @requires OstreeUpstreamSyncPolicy
|
14
13
|
* @requires Architecture
|
15
14
|
* @requires HttpProxyPolicy
|
16
15
|
* @requires OSVersions
|
@@ -20,8 +19,8 @@
|
|
20
19
|
* Provides the functionality for the repository details info page.
|
21
20
|
*/
|
22
21
|
angular.module('Bastion.repositories').controller('RepositoryDetailsInfoController',
|
23
|
-
['$scope', '$q', 'translate', 'Notification', 'ContentCredential', 'CurrentOrganization', 'Checksum', 'DownloadPolicy', '
|
24
|
-
function ($scope, $q, translate, Notification, ContentCredential, CurrentOrganization, Checksum, DownloadPolicy,
|
22
|
+
['$scope', '$q', 'translate', 'Notification', 'ContentCredential', 'CurrentOrganization', 'Checksum', 'DownloadPolicy', 'Architecture', 'HttpProxy', 'HttpProxyPolicy', 'OSVersions', 'RepositoryTypesService',
|
23
|
+
function ($scope, $q, translate, Notification, ContentCredential, CurrentOrganization, Checksum, DownloadPolicy, Architecture, HttpProxy, HttpProxyPolicy, OSVersions, RepositoryTypesService) {
|
25
24
|
$scope.organization = CurrentOrganization;
|
26
25
|
|
27
26
|
$scope.progress = {uploading: false};
|
@@ -199,7 +198,6 @@ angular.module('Bastion.repositories').controller('RepositoryDetailsInfoControll
|
|
199
198
|
|
200
199
|
$scope.checksums = Checksum.checksums;
|
201
200
|
$scope.downloadPolicies = DownloadPolicy.downloadPolicies;
|
202
|
-
$scope.ostreeUpstreamSyncPolicies = OstreeUpstreamSyncPolicy.syncPolicies;
|
203
201
|
|
204
202
|
$scope.checksumTypeDisplay = function (checksum) {
|
205
203
|
return Checksum.checksumType(checksum);
|
@@ -1,13 +1,3 @@
|
|
1
|
-
/**
|
2
|
-
* @ngdoc object
|
3
|
-
* @name Bastion.repositories.controller:OstreeUpstreamSyncPolicyFilter
|
4
|
-
*
|
5
|
-
* @requires translate
|
6
|
-
* @requires OstreeUpstreamSyncPolicy
|
7
|
-
* @requires YumContentUnits
|
8
|
-
* @requires HttpProxyPolicy
|
9
|
-
**/
|
10
|
-
|
11
1
|
angular.module('Bastion.components.formatters').filter('upstreamPasswordFilter', [function () {
|
12
2
|
return function (displayValue, repository) {
|
13
3
|
if (repository["upstream_auth_exists"]) {
|
@@ -262,7 +262,7 @@
|
|
262
262
|
<dd translate>Yes</dd>
|
263
263
|
|
264
264
|
<span ng-hide="repository.content_type === 'docker' || repository.content_type === 'ansible_collection'">
|
265
|
-
<dt translate>
|
265
|
+
<dt translate>Unprotected</dt>
|
266
266
|
<dd bst-edit-checkbox="repository.unprotected"
|
267
267
|
formatter="booleanToYesNo"
|
268
268
|
on-save="save(repository)"
|
@@ -14,7 +14,6 @@
|
|
14
14
|
* @requires BastionConfig
|
15
15
|
* @requires Checksum
|
16
16
|
* @requires DownloadPolicy
|
17
|
-
* @requires OstreeUpstreamSyncPolicy
|
18
17
|
* @requires Architecture
|
19
18
|
* @requires RepositoryTypesService
|
20
19
|
* @requires OSVersions
|
@@ -24,8 +23,8 @@
|
|
24
23
|
* Controls the creation of an empty Repository object for use by sub-controllers.
|
25
24
|
*/
|
26
25
|
angular.module('Bastion.repositories').controller('NewRepositoryController',
|
27
|
-
['$scope', '$sce', 'Repository', 'Product', 'ContentCredential', 'FormUtils', 'translate', 'Notification', 'ApiErrorHandler', 'BastionConfig', 'Checksum', 'DownloadPolicy', '
|
28
|
-
function ($scope, $sce, Repository, Product, ContentCredential, FormUtils, translate, Notification, ApiErrorHandler, BastionConfig, Checksum, DownloadPolicy,
|
26
|
+
['$scope', '$sce', 'Repository', 'Product', 'ContentCredential', 'FormUtils', 'translate', 'Notification', 'ApiErrorHandler', 'BastionConfig', 'Checksum', 'DownloadPolicy', 'Architecture', 'RepositoryTypesService', 'HttpProxy', 'HttpProxyPolicy', 'OSVersions',
|
27
|
+
function ($scope, $sce, Repository, Product, ContentCredential, FormUtils, translate, Notification, ApiErrorHandler, BastionConfig, Checksum, DownloadPolicy, Architecture, RepositoryTypesService, HttpProxy, HttpProxyPolicy, OSVersions) {
|
29
28
|
|
30
29
|
function success() {
|
31
30
|
Notification.setSuccessMessage(translate('Repository %s successfully created.').replace('%s', $scope.repository.name));
|
@@ -63,8 +62,7 @@ angular.module('Bastion.repositories').controller('NewRepositoryController',
|
|
63
62
|
|
64
63
|
$scope.repository = new Repository({'product_id': $scope.$stateParams.productId, unprotected: true,
|
65
64
|
'checksum_type': null, 'mirror_on_sync': true, 'verify_ssl_on_sync': true,
|
66
|
-
'download_policy': BastionConfig.defaultDownloadPolicy, 'arch': null
|
67
|
-
'ostree_upstream_sync_policy': 'latest'});
|
65
|
+
'download_policy': BastionConfig.defaultDownloadPolicy, 'arch': null});
|
68
66
|
|
69
67
|
$scope.product = Product.get({id: $scope.$stateParams.productId}, function () {
|
70
68
|
$scope.page.loading = false;
|
@@ -78,7 +76,6 @@ angular.module('Bastion.repositories').controller('NewRepositoryController',
|
|
78
76
|
|
79
77
|
$scope.checksums = Checksum.checksums;
|
80
78
|
$scope.downloadPolicies = DownloadPolicy.downloadPolicies;
|
81
|
-
$scope.ostreeUpstreamSyncPolicies = OstreeUpstreamSyncPolicy.syncPolicies;
|
82
79
|
|
83
80
|
$scope.$watch('repository.name', function () {
|
84
81
|
if ($scope.repositoryForm && $scope.repositoryForm.name) {
|
@@ -332,8 +332,11 @@
|
|
332
332
|
<div class="checkbox" ng-hide="repository.content_type === 'docker' || repository.content_type === 'ansible_collection'">
|
333
333
|
<label>
|
334
334
|
<input id="unprotected" name="unprotected" ng-model="repository.unprotected" type="checkbox"/>
|
335
|
-
<span translate>
|
335
|
+
<span translate>Unprotected</span>
|
336
336
|
</label>
|
337
|
+
<p class="help-block" translate>
|
338
|
+
Do not require a subscription entitlement certificate for accessing this repository.
|
339
|
+
</p>
|
337
340
|
</div>
|
338
341
|
|
339
342
|
<div bst-form-group label="{{ 'GPG Key' | translate }}" ng-show="repository.content_type === 'yum' || repository.content_type === 'deb'">
|
@@ -14,6 +14,7 @@ angular
|
|
14
14
|
this.getOSVersionsOptions = function () {
|
15
15
|
return [
|
16
16
|
{ name: 'No restriction', id: '' },
|
17
|
+
{ name: 'Red Hat Enterprise Linux 9 ', id: 'rhel-9' },
|
17
18
|
{ name: 'Red Hat Enterprise Linux 8 ', id: 'rhel-8' },
|
18
19
|
{ name: 'Red Hat Enterprise Linux 7 ', id: 'rhel-7' },
|
19
20
|
{ name: 'Red Hat Enterprise Linux 6 ', id: 'rhel-6' }
|
@@ -126,15 +126,6 @@
|
|
126
126
|
parent: 'product.repository.info'
|
127
127
|
}
|
128
128
|
})
|
129
|
-
.state('product.repository.manage-content.ostree-branches', {
|
130
|
-
url: '/ostree_branches',
|
131
|
-
permission: 'view_products',
|
132
|
-
templateUrl: 'products/details/repositories/details/views/repository-manage-ostree-branches.html',
|
133
|
-
ncyBreadcrumb: {
|
134
|
-
label: "{{'OSTree Branches' | translate }}",
|
135
|
-
parent: 'product.repository.info'
|
136
|
-
}
|
137
|
-
})
|
138
129
|
.state('product.repository.manage-content.module-streams', {
|
139
130
|
url: '/module_streams',
|
140
131
|
permission: 'view_products',
|
@@ -156,14 +156,6 @@
|
|
156
156
|
</div>
|
157
157
|
</span>
|
158
158
|
|
159
|
-
<span ng-show="repository.content_type == 'ostree'">
|
160
|
-
<div>
|
161
|
-
<span translate>
|
162
|
-
{{ repository.content_counts.ostree_branch || 0 }} OSTree Branches
|
163
|
-
</span>
|
164
|
-
</div>
|
165
|
-
</span>
|
166
|
-
|
167
159
|
<span ng-show="repository.content_type == 'file'">
|
168
160
|
<div>
|
169
161
|
<span translate>
|
@@ -254,7 +254,6 @@ module Katello
|
|
254
254
|
:compare,
|
255
255
|
:repositories],
|
256
256
|
'katello/api/v2/file_units' => [:index, :show, :auto_complete_search, :compare],
|
257
|
-
'katello/api/v2/ostree_branches' => [:index, :show, :auto_complete_search, :compare],
|
258
257
|
'katello/api/v2/errata' => [:index, :show, :auto_complete_search, :compare],
|
259
258
|
'katello/api/v2/module_streams' => [:index, :show, :auto_complete_search, :compare, :auto_complete_name],
|
260
259
|
'katello/api/v2/ansible_collections' => [:index, :show, :auto_complete_search, :compare],
|
data/lib/katello/plugin.rb
CHANGED
@@ -121,16 +121,6 @@ Foreman::Plugin.register :katello do
|
|
121
121
|
:turbolinks => false,
|
122
122
|
:if => lambda { ::Katello::RepositoryTypeManager.enabled?(::Katello::Repository::FILE_TYPE) }
|
123
123
|
|
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) }
|
133
|
-
|
134
124
|
menu :top_menu,
|
135
125
|
:packages,
|
136
126
|
:caption => N_('Packages'),
|
@@ -15,9 +15,9 @@ namespace :katello do
|
|
15
15
|
system("sudo runuser - postgres -c 'createdb pulpcore'")
|
16
16
|
|
17
17
|
Dir.chdir("/tmp") do
|
18
|
-
fail "\e[31mCannot migrate Pulp3 database\e[0m\n\n" unless system("sudo -u pulp PULP_SETTINGS='/etc/pulp/settings.py' DJANGO_SETTINGS_MODULE='pulpcore.app.settings'
|
18
|
+
fail "\e[31mCannot migrate Pulp3 database\e[0m\n\n" unless system("sudo -u pulp PULP_SETTINGS='/etc/pulp/settings.py' DJANGO_SETTINGS_MODULE='pulpcore.app.settings' pulpcore-manager migrate --no-input")
|
19
19
|
puts "\e[33mRecreating Admin User\e[0m\n\n"
|
20
|
-
system("sudo -u pulp PULP_SETTINGS='/etc/pulp/settings.py' DJANGO_SETTINGS_MODULE='pulpcore.app.settings'
|
20
|
+
system("sudo -u pulp PULP_SETTINGS='/etc/pulp/settings.py' DJANGO_SETTINGS_MODULE='pulpcore.app.settings' pulpcore-manager reset-admin-password --password password")
|
21
21
|
end
|
22
22
|
|
23
23
|
SERVICES.each { |s| system(service_start.gsub("%s", s)) }
|
data/lib/katello/version.rb
CHANGED
@@ -0,0 +1,63 @@
|
|
1
|
+
import React from 'react';
|
2
|
+
import { TableText } from '@patternfly/react-table';
|
3
|
+
import { translate as __ } from 'foremanReact/common/I18n';
|
4
|
+
import {
|
5
|
+
CheckIcon,
|
6
|
+
LongArrowAltUpIcon,
|
7
|
+
MinusIcon,
|
8
|
+
} from '@patternfly/react-icons';
|
9
|
+
import PropTypes from 'prop-types';
|
10
|
+
|
11
|
+
export const PackagesStatus = ({ upgradable_version: upgradableVersion }) => {
|
12
|
+
let PackagesIcon;
|
13
|
+
let label;
|
14
|
+
let color;
|
15
|
+
|
16
|
+
if (upgradableVersion == null) {
|
17
|
+
color = 'green';
|
18
|
+
label = __('Up-to date');
|
19
|
+
PackagesIcon = CheckIcon;
|
20
|
+
} else {
|
21
|
+
color = 'blue';
|
22
|
+
label = __('Upgradable');
|
23
|
+
PackagesIcon = LongArrowAltUpIcon;
|
24
|
+
}
|
25
|
+
if (!PackagesIcon) return null;
|
26
|
+
|
27
|
+
return (
|
28
|
+
<TableText wrapModifier="nowrap">
|
29
|
+
{color && <PackagesIcon color={color} title={label} />} {label}
|
30
|
+
</TableText>
|
31
|
+
);
|
32
|
+
};
|
33
|
+
|
34
|
+
PackagesStatus.propTypes = {
|
35
|
+
upgradable_version: PropTypes.string,
|
36
|
+
};
|
37
|
+
|
38
|
+
PackagesStatus.defaultProps = {
|
39
|
+
upgradable_version: null,
|
40
|
+
};
|
41
|
+
|
42
|
+
export const PackagesLatestVersion = ({ name, upgradable_version: upgradableVersion }) => {
|
43
|
+
let label;
|
44
|
+
let color;
|
45
|
+
|
46
|
+
if (upgradableVersion == null) {
|
47
|
+
label = '';
|
48
|
+
color = 'green';
|
49
|
+
} else {
|
50
|
+
label = upgradableVersion.replace(`${name}-`, '');
|
51
|
+
}
|
52
|
+
|
53
|
+
return <TableText wrapModifier="nowrap">{color && <MinusIcon color={color} title={label} />} {label} </TableText>;
|
54
|
+
};
|
55
|
+
|
56
|
+
PackagesLatestVersion.propTypes = {
|
57
|
+
name: PropTypes.string.isRequired,
|
58
|
+
upgradable_version: PropTypes.string,
|
59
|
+
};
|
60
|
+
|
61
|
+
PackagesLatestVersion.defaultProps = {
|
62
|
+
upgradable_version: null,
|
63
|
+
};
|