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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ed8eb04c88654bdacc69fa01282d4122141a68430d8259cc6f0ec46dcae06367
4
- data.tar.gz: 96bc2cd4a26684dae6a71884a3fd745469b30118e723613f2640b8017a1c6b50
3
+ metadata.gz: c0ba7b81fa3fb7760c23bcc1894d99c7cf37683bcde4b134fc39ecefd51d53ec
4
+ data.tar.gz: d5f25c7952274b118b9202ff09e4d00df68882a8cf7ab00db0879aea756cd8e9
5
5
  SHA512:
6
- metadata.gz: 99b345b1016334d1f7277f2eecb3f6ad8f21a90d45582a30367b49441891216b359fb118c61e2c59ec93fa4071b49e6a9c131175b7ba365613c2fb5acece0a4b
7
- data.tar.gz: c9523e61da53201364bef634d3960bab1ff7120e648133b168da057bdd5d32c603c44f38e7395097fd2e3960f2451407a7f9444eb4a1382a28ab139452dc0033
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.not_generated_for_repository unless Foreman::Cast.to_bool(params[:include_generated])
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 :not_generated_for_repository, -> { where.not(id: generated_for_repository) }
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.not_generated_for_repository).distinct
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.not_generated_for_repository).
671
+ merge(ContentView.ignore_generated).
672
672
  where.not(environment_id: nil)
673
673
  end
674
674
 
@@ -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
 
@@ -15,10 +15,6 @@ module Katello
15
15
  def self.repository_sync_url_class(repository_type)
16
16
  repository_type.repo_sync_url_class
17
17
  end
18
-
19
- def self.add_remove_content_class
20
- fail NotImplementedError
21
- end
22
18
  end
23
19
  end
24
20
  end
@@ -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: ::Katello::ContentView::EXPORT_LIBRARY,
199
- generated_for: :library_export)
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: "Export-#{repository.label}-#{repository.library_instance_or_self.id}",
208
- generated_for: :repository_export)
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.not_generated_for_repository.map do |content_view|
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,
@@ -29,7 +29,7 @@ node(:content_view_components_count) do
29
29
  in_organization(Organization.current)&.
30
30
  non_composite&.
31
31
  non_default&.
32
- not_generated_for_repository&.count
32
+ ignore_generated&.count
33
33
  end
34
34
 
35
35
  node :library_id do |org|
@@ -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
@@ -1,3 +1,3 @@
1
1
  module Katello
2
- VERSION = "4.6.0.rc1".freeze
2
+ VERSION = "4.6.0.rc2".freeze
3
3
  end
@@ -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">
@@ -20,6 +20,7 @@ const baseHostDetails = {
20
20
  purpose_usage: 'Production',
21
21
  service_level: 'Premium',
22
22
  release_version: '8',
23
+ uuid: '12345',
23
24
  },
24
25
  };
25
26
 
@@ -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>
@@ -11,6 +11,7 @@ const InstalledProductsCard = ({ isExpandedGlobal, hostDetails }) => {
11
11
  <CardTemplate
12
12
  header={__('Installed products')}
13
13
  expandable
14
+ masonryLayout
14
15
  isExpandedGlobal={isExpandedGlobal}
15
16
  >
16
17
  <List isPlain>
@@ -62,6 +62,7 @@ const RegistrationCard = ({ isExpandedGlobal, hostDetails }) => {
62
62
  <CardTemplate
63
63
  header={__('Registration details')}
64
64
  expandable
65
+ masonryLayout
65
66
  isExpandedGlobal={isExpandedGlobal}
66
67
  >
67
68
  <DescriptionList isHorizontal>
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.rc1
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 00:00:00.000000000 Z
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