katello 4.6.0.rc1 → 4.6.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/rhsm/candlepin_proxies_controller.rb +3 -0
- data/app/controllers/katello/api/v2/content_views_controller.rb +1 -1
- data/app/lib/actions/pulp3/orchestration/content_view_version/export_library.rb +2 -2
- data/app/lib/actions/pulp3/orchestration/content_view_version/export_repository.rb +2 -1
- data/app/models/katello/content_view.rb +9 -3
- data/app/models/katello/repository.rb +3 -3
- data/app/models/katello/rpm.rb +1 -0
- data/app/services/katello/pulp3/api/generic.rb +0 -4
- data/app/services/katello/pulp3/content_view_version/export.rb +23 -6
- data/app/services/katello/pulp3/repository.rb +1 -1
- data/app/views/katello/api/v2/capsule_content/sync_status.json.rabl +1 -1
- data/app/views/katello/api/v2/organizations/show.json.rabl +1 -1
- data/lib/katello/tasks/refresh_repos.rake +8 -0
- data/lib/katello/version.rb +1 -1
- data/webpack/components/extensions/HostDetails/ActionsBar/index.js +8 -1
- data/webpack/components/extensions/HostDetails/Cards/SystemPurposeCard/SystemPurposeCard.js +3 -1
- data/webpack/components/extensions/HostDetails/Cards/SystemPurposeCard/__tests__/SystemPurposeCard.test.js +1 -0
- data/webpack/components/extensions/HostDetails/DetailsTabCards/HwPropertiesCard.js +3 -0
- data/webpack/components/extensions/HostDetails/DetailsTabCards/InstalledProductsCard.js +1 -0
- data/webpack/components/extensions/HostDetails/DetailsTabCards/RegistrationCard.js +1 -0
- metadata +3 -16
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: c0ba7b81fa3fb7760c23bcc1894d99c7cf37683bcde4b134fc39ecefd51d53ec
|
4
|
+
data.tar.gz: d5f25c7952274b118b9202ff09e4d00df68882a8cf7ab00db0879aea756cd8e9
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 71c53ca934d2b5d33fee3fd0576d7b1296817289e2adab027fbbaf77f6aaf00f6e5c62335661563e820f864f9e14d445bbc05422d2ce331eef9e00066ad8b814
|
7
|
+
data.tar.gz: 68ef597c48b0612ac77e5e05eb1fa3af007563701a3d60aaa71e195e944785d9743f5d1ec2c21b0491b55b0f3d6871acbbe8b8d3926ea2e6867288a4afdae76c
|
@@ -313,6 +313,9 @@ module Katello
|
|
313
313
|
|
314
314
|
if params.key?(:environment_id)
|
315
315
|
environment = get_content_view_environment("cp_id", params[:environment_id])
|
316
|
+
elsif params.key?(:environments)
|
317
|
+
fail HttpErrors::BadRequest, _('Multiple environments are not supported.') if params['environments'].length > 1
|
318
|
+
environment = get_content_view_environment("cp_id", params['environments'].first['id'])
|
316
319
|
elsif params.key?(:organization_id) && !params.key?(:environment_id)
|
317
320
|
organization = Organization.current
|
318
321
|
environment = organization.library.content_view_environment
|
@@ -66,7 +66,7 @@ module Katello
|
|
66
66
|
|
67
67
|
def index_relation
|
68
68
|
content_views = ContentView.readable
|
69
|
-
content_views = content_views.
|
69
|
+
content_views = content_views.ignore_generated unless Foreman::Cast.to_bool(params[:include_generated])
|
70
70
|
content_views = content_views.where(:organization_id => @organization.id) if @organization
|
71
71
|
content_views = content_views.in_environment(@environment) if @environment
|
72
72
|
content_views = ::Foreman::Cast.to_bool(params[:nondefault]) ? content_views.non_default : content_views.default if params[:nondefault]
|
@@ -10,10 +10,10 @@ module Actions
|
|
10
10
|
format: ::Katello::Pulp3::ContentViewVersion::Export::IMPORTABLE)
|
11
11
|
action_subject(organization)
|
12
12
|
validate_repositories_immediate!(organization) if fail_on_missing_content
|
13
|
-
|
14
13
|
content_view = ::Katello::Pulp3::ContentViewVersion::Export.find_library_export_view(destination_server: destination_server,
|
15
14
|
organization: organization,
|
16
|
-
create_by_default: true
|
15
|
+
create_by_default: true,
|
16
|
+
format: format)
|
17
17
|
repo_ids_in_library = organization.default_content_view_version.repositories.exportable.immediate_or_none.pluck(:id)
|
18
18
|
content_view.update!(repository_ids: repo_ids_in_library)
|
19
19
|
|
@@ -12,7 +12,8 @@ module Actions
|
|
12
12
|
|
13
13
|
content_view = ::Katello::Pulp3::ContentViewVersion::Export.find_repository_export_view(
|
14
14
|
repository: repository,
|
15
|
-
create_by_default: true
|
15
|
+
create_by_default: true,
|
16
|
+
format: format)
|
16
17
|
content_view.update!(repository_ids: [repository.library_instance_or_self.id])
|
17
18
|
|
18
19
|
sequence do
|
@@ -88,8 +88,12 @@ module Katello
|
|
88
88
|
scope :non_composite, -> { where(:composite => [nil, false]) }
|
89
89
|
scope :generated, -> { where.not(:generated_for => :none) }
|
90
90
|
scope :generated_for_repository, -> { where(:generated_for => [:repository_export, :repository_import]) }
|
91
|
-
scope :
|
92
|
-
|
91
|
+
scope :ignore_generated, -> {
|
92
|
+
where.not(:generated_for => [:repository_export,
|
93
|
+
:repository_import,
|
94
|
+
:library_export_syncable,
|
95
|
+
:repository_export_syncable])
|
96
|
+
}
|
93
97
|
scope :generated_for_library, -> { where(:generated_for => [:library_export, :library_import]) }
|
94
98
|
|
95
99
|
scoped_search :on => :name, :complete_value => true
|
@@ -104,7 +108,9 @@ module Katello
|
|
104
108
|
library_export: 1,
|
105
109
|
repository_export: 2,
|
106
110
|
library_import: 3,
|
107
|
-
repository_import: 4
|
111
|
+
repository_import: 4,
|
112
|
+
library_export_syncable: 5,
|
113
|
+
repository_export_syncable: 6
|
108
114
|
}, _prefix: true
|
109
115
|
|
110
116
|
set_crud_hooks :content_view
|
@@ -31,7 +31,7 @@ module Katello
|
|
31
31
|
ANSIBLE_COLLECTION_TYPE = 'ansible_collection'.freeze
|
32
32
|
GENERIC_TYPE = 'generic'.freeze
|
33
33
|
|
34
|
-
EXPORTABLE_TYPES = [YUM_TYPE, FILE_TYPE, ANSIBLE_COLLECTION_TYPE].freeze
|
34
|
+
EXPORTABLE_TYPES = [YUM_TYPE, FILE_TYPE, ANSIBLE_COLLECTION_TYPE, DOCKER_TYPE].freeze
|
35
35
|
|
36
36
|
define_model_callbacks :sync, :only => :after
|
37
37
|
|
@@ -341,7 +341,7 @@ module Katello
|
|
341
341
|
|
342
342
|
def published_in_versions
|
343
343
|
Katello::ContentViewVersion.with_repositories(self.library_instances_inverse)
|
344
|
-
.where(content_view_id: Katello::ContentView.
|
344
|
+
.where(content_view_id: Katello::ContentView.ignore_generated).distinct
|
345
345
|
end
|
346
346
|
|
347
347
|
def self.errata_with_package_counts(repo)
|
@@ -668,7 +668,7 @@ module Katello
|
|
668
668
|
|
669
669
|
def self.smart_proxy_syncable
|
670
670
|
joins(:content_view_version => :content_view).
|
671
|
-
merge(ContentView.
|
671
|
+
merge(ContentView.ignore_generated).
|
672
672
|
where.not(environment_id: nil)
|
673
673
|
end
|
674
674
|
|
data/app/models/katello/rpm.rb
CHANGED
@@ -17,6 +17,7 @@ module Katello
|
|
17
17
|
scoped_search :on => :evr, :ext_method => :scoped_search_evr, :only_explicit => true
|
18
18
|
scoped_search :on => :filename, :complete_value => true
|
19
19
|
scoped_search :on => :sourcerpm, :complete_value => true
|
20
|
+
scoped_search :on => :nvra, :complete_value => true
|
20
21
|
scoped_search :on => :modular, :complete_value => true, :only_explicit => true
|
21
22
|
scoped_search :on => :checksum
|
22
23
|
|
@@ -191,21 +191,38 @@ module Katello
|
|
191
191
|
|
192
192
|
def self.find_library_export_view(create_by_default: false,
|
193
193
|
destination_server:,
|
194
|
-
organization
|
194
|
+
organization:,
|
195
|
+
format: IMPORTABLE)
|
196
|
+
if format == IMPORTABLE
|
197
|
+
generated_for = :library_export
|
198
|
+
name = ::Katello::ContentView::EXPORT_LIBRARY
|
199
|
+
else
|
200
|
+
generated_for = :library_export_syncable
|
201
|
+
name = "#{::Katello::ContentView::EXPORT_LIBRARY}-SYNCABLE"
|
202
|
+
end
|
203
|
+
|
195
204
|
find_generated_export_view(create_by_default: create_by_default,
|
196
205
|
destination_server: destination_server,
|
197
206
|
organization: organization,
|
198
|
-
name:
|
199
|
-
generated_for:
|
207
|
+
name: name,
|
208
|
+
generated_for: generated_for)
|
200
209
|
end
|
201
210
|
|
202
211
|
def self.find_repository_export_view(create_by_default: false,
|
203
|
-
repository
|
212
|
+
repository:,
|
213
|
+
format: IMPORTABLE)
|
214
|
+
if format == IMPORTABLE
|
215
|
+
generated_for = :repository_export
|
216
|
+
name = "Export-#{repository.label}-#{repository.library_instance_or_self.id}"
|
217
|
+
else
|
218
|
+
generated_for = :repository_export_syncable
|
219
|
+
name = "Export-SYNCABLE-#{repository.label}-#{repository.library_instance_or_self.id}"
|
220
|
+
end
|
204
221
|
find_generated_export_view(create_by_default: create_by_default,
|
205
222
|
destination_server: nil,
|
206
223
|
organization: repository.organization,
|
207
|
-
name:
|
208
|
-
generated_for:
|
224
|
+
name: name,
|
225
|
+
generated_for: generated_for)
|
209
226
|
end
|
210
227
|
|
211
228
|
def self.generate_product_repo_strings(repositories:)
|
@@ -299,7 +299,7 @@ module Katello
|
|
299
299
|
tasks << api.repositories_api.modify(repository_reference.repository_href, remove_content_units: ['*'])
|
300
300
|
end
|
301
301
|
|
302
|
-
if options[:mirror]
|
302
|
+
if options[:mirror] && api.class.respond_to?(:add_remove_content_class)
|
303
303
|
data = api.class.add_remove_content_class.new(
|
304
304
|
base_version: source_repository.version_href)
|
305
305
|
|
@@ -32,7 +32,7 @@ child @lifecycle_environments => :lifecycle_environments do
|
|
32
32
|
end
|
33
33
|
|
34
34
|
node :content_views do |env|
|
35
|
-
env.content_views.
|
35
|
+
env.content_views.ignore_generated.map do |content_view|
|
36
36
|
attributes = {
|
37
37
|
:id => content_view.id,
|
38
38
|
:label => content_view.label,
|
@@ -0,0 +1,8 @@
|
|
1
|
+
namespace :katello do
|
2
|
+
desc 'Refresh all repositories in all smart proxies and main server'
|
3
|
+
task :refresh_repos => ["environment", "dynflow:client"] do
|
4
|
+
User.current = User.anonymous_api_admin
|
5
|
+
::ForemanTasks.async_task(::Actions::BulkAction, ::Actions::Pulp3::Orchestration::Repository::RefreshRepos, SmartProxy.all)
|
6
|
+
puts _("Repos are being refreshed in the background.")
|
7
|
+
end
|
8
|
+
end
|
data/lib/katello/version.rb
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
import React from 'react';
|
2
2
|
import { useSelector } from 'react-redux';
|
3
3
|
import { DropdownItem } from '@patternfly/react-core';
|
4
|
-
import { CubeIcon } from '@patternfly/react-icons';
|
4
|
+
import { CubeIcon, UndoIcon } from '@patternfly/react-icons';
|
5
5
|
|
6
6
|
import { translate as __ } from 'foremanReact/common/I18n';
|
7
7
|
import { foremanUrl } from 'foremanReact/common/helpers';
|
@@ -13,6 +13,13 @@ const HostActionsBar = () => {
|
|
13
13
|
|
14
14
|
return (
|
15
15
|
<>
|
16
|
+
<DropdownItem
|
17
|
+
key="katello-legacy-contenthost-ui"
|
18
|
+
href={foremanUrl(`/content_hosts/${hostDetails?.id}`)}
|
19
|
+
icon={<UndoIcon />}
|
20
|
+
>
|
21
|
+
{__('Legacy content host UI')}
|
22
|
+
</DropdownItem>
|
16
23
|
<DropdownItem
|
17
24
|
key="katello-change-host-content-source"
|
18
25
|
href={foremanUrl(`/change_host_content_source?host_id=${hostDetails?.id}`)}
|
@@ -27,7 +27,7 @@ import { propsToCamelCase } from 'foremanReact/common/helpers';
|
|
27
27
|
import './SystemPurposeCard.scss';
|
28
28
|
import SystemPurposeEditModal from './SystemPurposeEditModal';
|
29
29
|
import { selectHostDetailsStatus } from '../../HostDetailsSelectors';
|
30
|
-
import { hasRequiredPermissions } from '../../hostDetailsHelpers';
|
30
|
+
import { hasRequiredPermissions, hostIsNotRegistered } from '../../hostDetailsHelpers';
|
31
31
|
|
32
32
|
const SystemPurposeCard = ({ hostDetails }) => {
|
33
33
|
const showEditButton = hasRequiredPermissions(['edit_hosts'], hostDetails?.permissions);
|
@@ -57,6 +57,8 @@ const SystemPurposeCard = ({ hostDetails }) => {
|
|
57
57
|
);
|
58
58
|
}
|
59
59
|
|
60
|
+
if (hostIsNotRegistered({ hostDetails })) return null;
|
61
|
+
|
60
62
|
return (
|
61
63
|
<GridItem rowSpan={1} md={6} lg={4} xl2={3}>
|
62
64
|
<Card isHoverable ouiaId="system-purpose-card">
|
@@ -12,6 +12,7 @@ import {
|
|
12
12
|
} from '@patternfly/react-core';
|
13
13
|
import CardTemplate from 'foremanReact/components/HostDetails/Templates/CardItem/CardTemplate';
|
14
14
|
import { TranslatedPlural } from '../../../Table/components/TranslatedPlural';
|
15
|
+
import { hostIsNotRegistered } from '../hostDetailsHelpers';
|
15
16
|
|
16
17
|
const HostDisks = ({ totalDisks }) => {
|
17
18
|
if (!totalDisks) return null;
|
@@ -32,6 +33,7 @@ HostDisks.defaultProps = {
|
|
32
33
|
};
|
33
34
|
|
34
35
|
const HwPropertiesCard = ({ isExpandedGlobal, hostDetails }) => {
|
36
|
+
if (hostIsNotRegistered({ hostDetails })) return null;
|
35
37
|
const { facts } = hostDetails || {};
|
36
38
|
const model = facts?.['virt::host_type'];
|
37
39
|
const cpuCount = facts?.['cpu::cpu(s)'];
|
@@ -46,6 +48,7 @@ const HwPropertiesCard = ({ isExpandedGlobal, hostDetails }) => {
|
|
46
48
|
header={__('HW properties')}
|
47
49
|
expandable
|
48
50
|
isExpandedGlobal={isExpandedGlobal}
|
51
|
+
masonryLayout
|
49
52
|
>
|
50
53
|
<DescriptionList isHorizontal>
|
51
54
|
<DescriptionListGroup>
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: katello
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.6.0.
|
4
|
+
version: 4.6.0.rc2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- N/A
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2022-08-
|
11
|
+
date: 2022-08-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -268,20 +268,6 @@ dependencies:
|
|
268
268
|
- - ">="
|
269
269
|
- !ruby/object:Gem::Version
|
270
270
|
version: '0'
|
271
|
-
- !ruby/object:Gem::Dependency
|
272
|
-
name: faraday
|
273
|
-
requirement: !ruby/object:Gem::Requirement
|
274
|
-
requirements:
|
275
|
-
- - "<"
|
276
|
-
- !ruby/object:Gem::Version
|
277
|
-
version: '1.9'
|
278
|
-
type: :runtime
|
279
|
-
prerelease: false
|
280
|
-
version_requirements: !ruby/object:Gem::Requirement
|
281
|
-
requirements:
|
282
|
-
- - "<"
|
283
|
-
- !ruby/object:Gem::Version
|
284
|
-
version: '1.9'
|
285
271
|
- !ruby/object:Gem::Dependency
|
286
272
|
name: pulpcore_client
|
287
273
|
requirement: !ruby/object:Gem::Requirement
|
@@ -4455,6 +4441,7 @@ files:
|
|
4455
4441
|
- lib/katello/tasks/pulp2to3_migrate_deb_attributes.rake
|
4456
4442
|
- lib/katello/tasks/receptor/extract_orgs.rake
|
4457
4443
|
- lib/katello/tasks/refresh_alternate_content_sources.rake
|
4444
|
+
- lib/katello/tasks/refresh_repos.rake
|
4458
4445
|
- lib/katello/tasks/regenerate_ueber_certs.rake
|
4459
4446
|
- lib/katello/tasks/reimport.rake
|
4460
4447
|
- lib/katello/tasks/repository.rake
|