katello 4.6.0 → 4.6.1

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.

Files changed (43) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/katello/api/v2/repositories_controller.rb +5 -0
  3. data/app/helpers/katello/content_source_helper.rb +2 -0
  4. data/app/lib/actions/katello/repository/create.rb +1 -1
  5. data/app/lib/actions/pulp3/repository/repair.rb +1 -1
  6. data/app/services/katello/bulk_items_helper.rb +3 -3
  7. data/app/services/katello/pulp3/ansible_collection.rb +9 -6
  8. data/app/services/katello/pulp3/api/core.rb +2 -2
  9. data/app/services/katello/pulp3/erratum.rb +4 -1
  10. data/app/services/katello/pulp3/repository/yum.rb +3 -2
  11. data/app/services/katello/pulp3/repository.rb +1 -1
  12. data/app/services/katello/pulp3/smart_proxy_mirror_repository.rb +2 -2
  13. data/db/seeds.d/102-organizations.rb +1 -1
  14. data/engines/bastion/app/views/bastion/layouts/assets.html.erb +6 -5
  15. data/lib/katello/version.rb +1 -1
  16. data/webpack/components/Table/TableWrapper.js +4 -1
  17. data/webpack/components/extensions/HostDetails/Tabs/ErrataTab/ErrataTab.js +1 -0
  18. data/webpack/components/extensions/HostDetails/Tabs/ModuleStreamsTab/ModuleStreamsTab.js +8 -0
  19. data/webpack/components/extensions/HostDetails/Tabs/RepositorySetsTab/RepositorySetsTab.js +22 -5
  20. data/webpack/components/extensions/HostDetails/Tabs/__tests__/repositorySetsTab.test.js +8 -3
  21. metadata +2 -24
  22. data/locale/bn/katello.po.time_stamp +0 -0
  23. data/locale/cs/katello.po.time_stamp +0 -0
  24. data/locale/de/katello.po.time_stamp +0 -0
  25. data/locale/en/katello.po.time_stamp +0 -0
  26. data/locale/es/katello.po.time_stamp +0 -0
  27. data/locale/fr/katello.po.time_stamp +0 -0
  28. data/locale/gu/katello.po.time_stamp +0 -0
  29. data/locale/hi/katello.po.time_stamp +0 -0
  30. data/locale/it/katello.po.time_stamp +0 -0
  31. data/locale/ja/katello.po.time_stamp +0 -0
  32. data/locale/kn/katello.po.time_stamp +0 -0
  33. data/locale/ko/katello.po.time_stamp +0 -0
  34. data/locale/mr/katello.po.time_stamp +0 -0
  35. data/locale/or/katello.po.time_stamp +0 -0
  36. data/locale/pa/katello.po.time_stamp +0 -0
  37. data/locale/pt/katello.po.time_stamp +0 -0
  38. data/locale/pt_BR/katello.po.time_stamp +0 -0
  39. data/locale/ru/katello.po.time_stamp +0 -0
  40. data/locale/ta/katello.po.time_stamp +0 -0
  41. data/locale/te/katello.po.time_stamp +0 -0
  42. data/locale/zh_CN/katello.po.time_stamp +0 -0
  43. data/locale/zh_TW/katello.po.time_stamp +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7ea3c4cf86616b6ca34f3ada6f3e1f47b7eef60139ad3e7044160f790ff89eab
4
- data.tar.gz: ea2376411d5f4e2cae3f091d6ccfcf95675c295402cec46f9fb030bfff4f184f
3
+ metadata.gz: 12ea739397f1f4d796d7f7f7d0b6a052cd3ae03ff70cf81a0cfcd7c995eff9f1
4
+ data.tar.gz: c2898a211d290e996a71b0ca8ce68ef6353f1b76530f1cbca8c38eeb0ec2f19d
5
5
  SHA512:
6
- metadata.gz: ea3dac10a91dbf39c22ec8c3cc91621647d11b7643bdc28b3f9130bbf99caf8e8dcf87c617a04267dfb054a1453a442c94b7729711be8fe92e692f087178b149
7
- data.tar.gz: 2b2ca31cc56a54cebd4a4d09a4cd041509e72fe387fef05cd327627edfb3eed9b4b4cf0531aa167a3e982d9e5309e5608f2c941ffb2f2ac49afcfa819b5bf85c
6
+ metadata.gz: a9f45a56723f68dd3e058d6b6b39ce1efe47bdef3c6ef49824e23ba56131bce7a3280f11cb5d967f3a1b065d48fb9b1b8ad1cfda66ca8c4385b8d9690446a510
7
+ data.tar.gz: 8d5d93e17e005cdcb2825891d3d2e1835633dfc9a1bb38f9621e26d9f17faef11a496a3e5fdf4894b502c8fd2f73bf64d0590f28031885e6d81912f801a308e8
@@ -389,6 +389,11 @@ module Katello
389
389
  def upload_content
390
390
  fail Katello::Errors::InvalidRepositoryContent, _("Cannot upload Container Image content.") if @repository.docker?
391
391
  fail Katello::Errors::InvalidRepositoryContent, _("Cannot upload Ansible collections.") if @repository.ansible_collection?
392
+ unless params[:content_type].empty? || RepositoryTypeManager.uploadable_content_types.map(&:label).include?(params[:content_type])
393
+ msg = _("Invalid params provided - content_type must be one of %s") %
394
+ RepositoryTypeManager.uploadable_content_types.map(&:label).sort.join(",")
395
+ fail HttpErrors::UnprocessableEntity, msg
396
+ end
392
397
 
393
398
  filepaths = Array.wrap(params[:content]).compact.collect do |content|
394
399
  {path: content.path, filename: content.original_filename}
@@ -37,6 +37,8 @@ module Katello
37
37
  --server.prefix="#{content_source.rhsm_url.path}" \
38
38
  --rhsm.repo_ca_cert="$KATELLO_SERVER_CA_CERT" \
39
39
  --rhsm.baseurl="#{content_source.pulp_content_url}"
40
+
41
+ subscription-manager facts --update
40
42
  CMD
41
43
  end
42
44
  end
@@ -34,7 +34,7 @@ module Actions
34
34
 
35
35
  concurrence do
36
36
  plan_self(:repository_id => repository.id, :clone => clone)
37
- if repository.url.present?
37
+ if !clone && repository.url.present?
38
38
  repository.product.alternate_content_sources.with_type(repository.content_type).each do |acs|
39
39
  acs.smart_proxies.each do |smart_proxy|
40
40
  smart_proxy_acs = ::Katello::SmartProxyAlternateContentSource.create(alternate_content_source_id: acs.id, smart_proxy_id: smart_proxy.id, repository_id: repository.id)
@@ -3,7 +3,7 @@ module Actions
3
3
  module Repository
4
4
  class Repair < Pulp3::AbstractAsyncTask
5
5
  include Helpers::Presenter
6
- def plan(repository_id, smart_proxy)
6
+ def plan(repository_id, smart_proxy = SmartProxy.pulp_primary)
7
7
  plan_self(:repository_id => repository_id, :smart_proxy_id => smart_proxy.id)
8
8
  end
9
9
 
@@ -20,12 +20,12 @@ module Katello
20
20
  params[:excluded] ||= {}
21
21
 
22
22
  items = model_scope
23
- if params[:included][:ids]
23
+ if params[:included][:ids].present?
24
24
  items = model_scope.where(key => params[:included][:ids])
25
- elsif params[:included][:search]
25
+ elsif params[:included][:search].present?
26
26
  items = model_scope.search_for(params[:included][:search])
27
27
  end
28
- if params[:excluded][:ids]
28
+ if params[:excluded][:ids].present?
29
29
  items = items.where.not(key => params[:excluded][:ids])
30
30
  end
31
31
 
@@ -30,22 +30,25 @@ module Katello
30
30
  end
31
31
 
32
32
  def self.insert_child_associations(units, pulp_id_to_id)
33
- tag_names = units.map { |unit| unit['tags'].map { |tag| tag[:name] } }.flatten
34
- tag_rows = tag_names.map { |name| {name: name } }
35
- Katello::AnsibleTag.insert_all(tag_rows, unique_by: [:name]) if tag_rows.any?
36
-
33
+ insert_tags units
37
34
  collection_tag_rows = []
38
35
  units.each do |unit|
39
36
  katello_id = pulp_id_to_id[unit['pulp_href']]
40
37
  #delete old tags
41
- unit_tags = unit['tags'].map { |tag| tag[:name] }
38
+ unit_tags = unit['tags']&.map { |tag| tag[:name] }
42
39
  Katello::AnsibleCollectionTag.where(:ansible_collection_id => katello_id).where.not(:ansible_tag_id => Katello::AnsibleTag.where(:name => unit_tags)).delete_all
43
- collection_tag_rows += Katello::AnsibleTag.where(:name => unit_tags).pluck(:id).map { |tag_id| {ansible_collection_id: katello_id, ansible_tag_id: tag_id} }
40
+ collection_tag_rows += Katello::AnsibleTag.where(:name => unit_tags)&.pluck(:id)&.map { |tag_id| {ansible_collection_id: katello_id, ansible_tag_id: tag_id} }
44
41
  end
45
42
 
46
43
  collection_tag_rows.flatten!
47
44
  Katello::AnsibleCollectionTag.insert_all(collection_tag_rows, unique_by: [:ansible_collection_id, :ansible_tag_id])
48
45
  end
46
+
47
+ def self.insert_tags(units)
48
+ tag_names = units.map { |unit| unit['tags']&.map { |tag| tag[:name] } }&.flatten
49
+ tag_rows = tag_names&.compact&.map { |name| {name: name } }
50
+ Katello::AnsibleTag.insert_all(tag_rows, unique_by: [:name]) if tag_rows.any?
51
+ end
49
52
  end
50
53
  end
51
54
  end
@@ -74,8 +74,8 @@ module Katello
74
74
  nil
75
75
  end
76
76
 
77
- def repository_version_class
78
- client_module::RepositoryVersion
77
+ def repair_class
78
+ client_module::Repair
79
79
  end
80
80
 
81
81
  def cancel_task(task_href)
@@ -55,12 +55,15 @@ module Katello
55
55
  bugzillas += build_bugzillas(katello_id, unit['references'])
56
56
  cves += build_cves(katello_id, unit['references'])
57
57
  packages += build_packages(katello_id, unit['pkglist'])
58
- modules += build_modules(katello_id, unit['pkglist'])
59
58
  end
60
59
 
61
60
  Katello::ErratumBugzilla.insert_all(bugzillas, unique_by: [:erratum_id, :bug_id, :href]) if bugzillas.any?
62
61
  Katello::ErratumCve.insert_all(cves, unique_by: [:erratum_id, :cve_id, :href]) if cves.any?
63
62
  Katello::ErratumPackage.insert_all(packages, unique_by: [:erratum_id, :nvrea, :name, :filename]) if packages.any?
63
+ units.each do |unit|
64
+ katello_id = pulp_id_to_id[unit['id']]
65
+ modules += build_modules(katello_id, unit['pkglist'])
66
+ end
64
67
  ModuleStreamErratumPackage.insert_all(modules, unique_by: [:module_stream_id, :erratum_package_id]) if modules.any?
65
68
  nil
66
69
  end
@@ -12,11 +12,12 @@ module Katello
12
12
 
13
13
  def remote_options
14
14
  options = common_remote_options
15
- uri = URI(root.url)
15
+ uri = root.url ? URI(root.url) : nil
16
16
  unless root.upstream_authentication_token.blank?
17
17
  options.merge!(sles_auth_token: root.upstream_authentication_token)
18
18
  end
19
- options.merge!(url: uri.to_s, policy: root.download_policy)
19
+ options.merge!(url: uri.to_s) if uri
20
+ options.merge!(policy: root.download_policy)
20
21
  end
21
22
 
22
23
  def publication_options(repository_version)
@@ -55,7 +55,7 @@ module Katello
55
55
  end
56
56
 
57
57
  def repair(repository_version_href)
58
- data = api.repository_version_class.new
58
+ data = api.repair_class.new
59
59
  api.repository_versions_api.repair(repository_version_href, data)
60
60
  end
61
61
 
@@ -26,7 +26,7 @@ module Katello
26
26
  api = repo_type.pulp3_api(smart_proxy)
27
27
  version_hrefs = api.repository_versions
28
28
  orphan_version_hrefs = api.list_all.collect do |pulp_repo|
29
- mirror_repo_versions = api.versions_list_for_repository(pulp_repo.pulp_href, ordering: :_created)
29
+ mirror_repo_versions = api.versions_list_for_repository(pulp_repo.pulp_href, ordering: ['-pulp_created'])
30
30
  version_hrefs = mirror_repo_versions.select { |repo_version| repo_version.number != 0 }.collect { |version| version.pulp_href }
31
31
 
32
32
  version_hrefs - [pulp_repo.latest_version_href]
@@ -83,7 +83,7 @@ module Katello
83
83
 
84
84
  remotes.each do |remote|
85
85
  if !repo_names.include?(remote.name) && !acs_remotes.include?(remote.pulp_href)
86
- tasks << api.delete_remote(href: remote.pulp_href)
86
+ tasks << api.delete_remote(remote.pulp_href)
87
87
  end
88
88
  end
89
89
  end
@@ -1,7 +1,7 @@
1
1
  # This file should contain all the record creation needed to seed the database with its default values.
2
2
  # The data can then be loaded with the rake db:seed (or created alongside the db with db:setup).
3
3
  #
4
- # !!! PLEASE KEEP THIS SCRIPT IDEMPOTENT !!!
4
+ # !! PLEASE KEEP THIS SCRIPT IDEMPOTENT !!
5
5
  #
6
6
 
7
7
  unless Rails.env.test?
@@ -21,17 +21,18 @@
21
21
  angular.module('Bastion').value('simpleContentAccessEnabled', <%= Organization.current.simple_content_access? if Organization.current %>);
22
22
  angular.module('Bastion').value('isManifestImported', <%= !!Organization.current&.manifest_imported?(cached: true) %>)
23
23
  angular.module('Bastion').value('foreman', tfm);
24
- angular.module('Bastion').value('repositoryTypes', angular.fromJson('<%= Katello::RepositoryTypeManager.enabled_repository_types.values.to_json.html_safe %>'));
25
- angular.module('Bastion').value('deleteHostOnUnregister', angular.fromJson('<%= Setting[:unregister_delete_host] %>'));
26
- angular.module('Bastion').value('globalContentProxy', angular.fromJson('<%= Setting[:content_default_http_proxy].empty? ? nil.to_json : Setting[:content_default_http_proxy].to_json.html_safe %>'));
24
+ angular.module('Bastion').value('repositoryTypes', angular.fromJson(`<%= Katello::RepositoryTypeManager.enabled_repository_types.values.to_json.html_safe %>`));
25
+ angular.module('Bastion').value('deleteHostOnUnregister', angular.fromJson(`<%= Setting[:unregister_delete_host] %>`));
26
+ angular.module('Bastion').value('globalContentProxy', angular.fromJson(`<%= Setting[:content_default_http_proxy].empty? ? nil.to_json : Setting[:content_default_http_proxy].to_json.html_safe %>`));
27
27
  angular.module('Bastion').value('entriesPerPage', "<%= Setting[:entries_per_page] %>");
28
28
  angular.module('Bastion').value('contentViewSolveDependencies', "<%= Setting[:content_view_solve_dependencies] %>");
29
- angular.module('Bastion').constant('BastionConfig', angular.fromJson('<%= Bastion.config.to_json.html_safe %>'));
29
+ angular.module('Bastion').constant('BastionConfig', angular.fromJson(`<%= Bastion.config.to_json.html_safe %>`));
30
30
  angular.module('Bastion.auth').value('CurrentUser', {
31
31
  id: <%= User.current.id %>,
32
32
  admin: <%= User.current.admin || User.current.usergroups.any? { |group| group.admin } %>
33
33
  });
34
- angular.module('Bastion.auth').value('Permissions', angular.fromJson('<%= User.current.cached_roles.collect { |role| role.permissions }.flatten.to_json.html_safe %>'));
34
+ angular.module('Bastion.auth').value('Permissions', angular.fromJson(`<%= User.current.cached_roles.collect { |role| role.permissions }.flatten.to_json.html_safe %>`));
35
+ angular.module('Bastion').value('newHostDetailsUI', "<%= Setting[:host_details_ui] %>");
35
36
  </script>
36
37
  <% Bastion.plugins.each do |name, plugin| %>
37
38
  <%= include_plugin_js(plugin) %>
@@ -1,3 +1,3 @@
1
1
  module Katello
2
- VERSION = "4.6.0".freeze
2
+ VERSION = "4.6.1".freeze
3
3
  end
@@ -19,6 +19,7 @@ import { orgId } from '../../services/api';
19
19
  const TableWrapper = ({
20
20
  actionButtons,
21
21
  alwaysShowActionButtons,
22
+ alwaysShowToggleGroup,
22
23
  toggleGroup,
23
24
  children,
24
25
  metadata,
@@ -62,7 +63,7 @@ const TableWrapper = ({
62
63
  const hideToolbar = !searchQuery && !filtersAreActive &&
63
64
  allTableProps.status === STATUS.RESOLVED && total === 0;
64
65
  const showActionButtons = actionButtons && (alwaysShowActionButtons || !hideToolbar);
65
- const showToggleGroup = toggleGroup && !hideToolbar;
66
+ const showToggleGroup = toggleGroup && (alwaysShowToggleGroup || !hideToolbar);
66
67
  const paginationParams = useCallback(() =>
67
68
  ({ per_page: perPage, page }), [perPage, page]);
68
69
  const prevRequest = useRef({});
@@ -275,6 +276,7 @@ TableWrapper.propTypes = {
275
276
  searchPlaceholderText: PropTypes.string,
276
277
  actionButtons: PropTypes.node,
277
278
  alwaysShowActionButtons: PropTypes.bool,
279
+ alwaysShowToggleGroup: PropTypes.bool,
278
280
  toggleGroup: PropTypes.node,
279
281
  children: PropTypes.node,
280
282
  // additionalListeners are anything that should trigger another API call, e.g. a filter
@@ -319,6 +321,7 @@ TableWrapper.defaultProps = {
319
321
  searchPlaceholderText: undefined,
320
322
  actionButtons: null,
321
323
  alwaysShowActionButtons: true,
324
+ alwaysShowToggleGroup: false,
322
325
  toggleGroup: null,
323
326
  displaySelectAllCheckbox: false,
324
327
  selectedCount: 0,
@@ -431,6 +431,7 @@ export const ErrataTab = () => {
431
431
  displaySelectAllCheckbox={showActions}
432
432
  requestKey={HOST_ERRATA_KEY}
433
433
  alwaysShowActionButtons={false}
434
+ alwaysShowToggleGroup={hostIsNonLibrary}
434
435
  >
435
436
  <Thead>
436
437
  <Tr>
@@ -46,6 +46,14 @@ import {
46
46
  userPermissionsFromHostDetails,
47
47
  } from '../../hostDetailsHelpers';
48
48
 
49
+ const moduleStreamSupported = ({ os, version }) =>
50
+ os.match(/RedHat|CentOS|Rocky|AlmaLinux|OracleLinux/i) && Number(version) > 7;
51
+ export const hideModuleStreamsTab = ({ hostDetails }) => {
52
+ const osMatch = hostDetails?.operatingsystem_name?.match(/(\w+) (\d+)/);
53
+ if (!osMatch) return true;
54
+ const [, os, version] = osMatch;
55
+ return !(osMatch && moduleStreamSupported({ os, version }));
56
+ };
49
57
 
50
58
  const EnabledIcon = ({ streamText, streamInstallStatus, upgradable }) => {
51
59
  switch (true) {
@@ -54,6 +54,10 @@ import {
54
54
  getHostRepositorySets,
55
55
  setContentOverrides,
56
56
  } from './RepositorySetsActions';
57
+
58
+ import { selectOrganization, selectOrganizationStatus } from '../../Cards/SystemPurposeCard/SystemPurposeSelectors';
59
+ import { getOrganization } from '../../Cards/SystemPurposeCard/SystemPurposeActions';
60
+
57
61
  import { REPOSITORY_SETS_KEY, STATUSES, STATUS_TO_PARAM, PARAM_TO_FRIENDLY_NAME } from './RepositorySetsConstants.js';
58
62
  import { selectRepositorySetsStatus } from './RepositorySetsSelectors';
59
63
  import './RepositorySetsTab.scss';
@@ -121,7 +125,7 @@ const ArchRestrictedIcon = ({ archRestricted }) => (
121
125
  />}
122
126
  >
123
127
  <Label color="orange" className="arch-restricted-label" style={{ marginLeft: '8px' }}>
124
- {__(archRestricted)}
128
+ {archRestricted}
125
129
  </Label>
126
130
  </Tooltip>
127
131
  );
@@ -144,7 +148,7 @@ const OsRestrictedIcon = ({ osRestricted }) => (
144
148
  />}
145
149
  >
146
150
  <Label color="blue" className="os-restricted-label" style={{ marginLeft: '8px' }}>
147
- {__(osRestricted)}
151
+ {osRestricted}
148
152
  </Label>
149
153
  </Tooltip>
150
154
  );
@@ -161,9 +165,16 @@ const RepositorySetsTab = () => {
161
165
  const hostDetails = useSelector(state => selectAPIResponse(state, 'HOST_DETAILS'));
162
166
  const {
163
167
  id: hostId,
164
- subscription_status: subscriptionStatus,
165
168
  content_facet_attributes: contentFacetAttributes,
169
+ organization_id: orgId,
166
170
  } = hostDetails;
171
+
172
+ const organizationDetails = useSelector(state => selectOrganization(state, orgId));
173
+ const orgStatus = useSelector(state => selectOrganizationStatus(state, orgId));
174
+
175
+ const {
176
+ simple_content_access: simpleContentAccess,
177
+ } = organizationDetails;
167
178
  const canDoContentOverrides = can(
168
179
  editHosts,
169
180
  userPermissionsFromHostDetails({ hostDetails }),
@@ -179,7 +190,6 @@ const RepositorySetsTab = () => {
179
190
  } = contentFacet;
180
191
  const nonLibraryHost = contentViewDefault === false ||
181
192
  lifecycleEnvironmentLibrary === false;
182
- const simpleContentAccess = (Number(subscriptionStatus) === 5);
183
193
  const [isBulkActionOpen, setIsBulkActionOpen] = useState(false);
184
194
  const toggleBulkAction = () => setIsBulkActionOpen(prev => !prev);
185
195
  const dispatch = useDispatch();
@@ -247,6 +257,12 @@ const RepositorySetsTab = () => {
247
257
  simpleContentAccess, apiSortParams, statusSelected, STATUS_LABEL],
248
258
  );
249
259
 
260
+ useEffect(() => {
261
+ if (orgId && orgStatus !== STATUS.RESOLVED) {
262
+ dispatch(getOrganization({ orgId }));
263
+ }
264
+ }, [orgId, orgStatus, dispatch]);
265
+
250
266
  const response = useSelector(state => selectAPIResponse(state, REPOSITORY_SETS_KEY));
251
267
  const { results, error: errorSearchBody, ...metadata } = response;
252
268
  const status = useSelector(state => selectRepositorySetsStatus(state));
@@ -420,6 +436,7 @@ const RepositorySetsTab = () => {
420
436
  } else {
421
437
  alertText = nonScaAlert;
422
438
  }
439
+
423
440
  return (
424
441
  <div>
425
442
  <div id="repo-sets-tab">
@@ -522,7 +539,7 @@ const RepositorySetsTab = () => {
522
539
  } = repoSet;
523
540
  const { isEnabled, isOverridden } =
524
541
  getEnabledValue({ enabled, enabledContentOverride });
525
- const showArchRestricted = archRestricted !== 'noarch';
542
+ const showArchRestricted = archRestricted && archRestricted !== 'noarch';
526
543
  return (
527
544
  <Tr key={id} ouiaId={`tr-${rowIndex}`}>
528
545
  {canDoContentOverrides ? (
@@ -8,7 +8,6 @@ import mockRepoSetData from './repositorySets.fixtures.json';
8
8
  import mockBookmarkData from './bookmarks.fixtures.json';
9
9
  import mockContentOverride from './contentOverrides.fixtures.json';
10
10
 
11
-
12
11
  jest.mock('../../hostDetailsHelpers', () => ({
13
12
  ...jest.requireActual('../../hostDetailsHelpers'),
14
13
  userPermissionsFromHostDetails: () => ({
@@ -33,8 +32,15 @@ const renderOptions = (facetAttributes = contentFacetAttributes) => ({
33
32
  HOST_DETAILS: {
34
33
  response: {
35
34
  id: 1,
35
+ organization_id: 1,
36
36
  content_facet_attributes: { ...facetAttributes },
37
- subscription_status: 5, // Simple Content Access
37
+ },
38
+ status: 'RESOLVED',
39
+ },
40
+ ORGANIZATION_1: {
41
+ response: {
42
+ id: 1,
43
+ simple_content_access: true,
38
44
  },
39
45
  status: 'RESOLVED',
40
46
  },
@@ -182,7 +188,6 @@ test('Toggle Group shows if it\'s the library environment but a non-default cont
182
188
  queryByLabelText,
183
189
  getByText,
184
190
  } = renderWithRedux(<RepositorySetsTab />, options);
185
-
186
191
  // Assert that the errata are now showing on the screen, but wait for them to appear.
187
192
  await patientlyWaitFor(() => expect(getByText(firstRepoSet.contentUrl)).toBeInTheDocument());
188
193
  expect(queryByLabelText('Limit to environment')).toBeInTheDocument();
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.1
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-09-19 00:00:00.000000000 Z
11
+ date: 2022-12-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -4472,52 +4472,30 @@ files:
4472
4472
  - locale/README
4473
4473
  - locale/action_names.rb
4474
4474
  - locale/bn/katello.po
4475
- - locale/bn/katello.po.time_stamp
4476
4475
  - locale/cs/katello.po
4477
- - locale/cs/katello.po.time_stamp
4478
4476
  - locale/de/katello.po
4479
- - locale/de/katello.po.time_stamp
4480
4477
  - locale/en/katello.po
4481
- - locale/en/katello.po.time_stamp
4482
4478
  - locale/es/katello.po
4483
- - locale/es/katello.po.time_stamp
4484
4479
  - locale/fr/katello.po
4485
- - locale/fr/katello.po.time_stamp
4486
4480
  - locale/gu/katello.po
4487
- - locale/gu/katello.po.time_stamp
4488
4481
  - locale/hi/katello.po
4489
- - locale/hi/katello.po.time_stamp
4490
4482
  - locale/it/katello.po
4491
- - locale/it/katello.po.time_stamp
4492
4483
  - locale/ja/katello.po
4493
- - locale/ja/katello.po.time_stamp
4494
4484
  - locale/katello.pot
4495
4485
  - locale/kn/katello.po
4496
- - locale/kn/katello.po.time_stamp
4497
4486
  - locale/ko/katello.po
4498
- - locale/ko/katello.po.time_stamp
4499
4487
  - locale/mr/katello.po
4500
- - locale/mr/katello.po.time_stamp
4501
4488
  - locale/or/katello.po
4502
- - locale/or/katello.po.time_stamp
4503
4489
  - locale/pa/katello.po
4504
- - locale/pa/katello.po.time_stamp
4505
4490
  - locale/pt/katello.po
4506
- - locale/pt/katello.po.time_stamp
4507
4491
  - locale/pt_BR/katello.po
4508
- - locale/pt_BR/katello.po.time_stamp
4509
4492
  - locale/ru/katello.po
4510
- - locale/ru/katello.po.time_stamp
4511
4493
  - locale/ta/katello.po
4512
- - locale/ta/katello.po.time_stamp
4513
4494
  - locale/te/katello.po
4514
- - locale/te/katello.po.time_stamp
4515
4495
  - locale/update-i18n
4516
4496
  - locale/zanata.xml
4517
4497
  - locale/zh_CN/katello.po
4518
- - locale/zh_CN/katello.po.time_stamp
4519
4498
  - locale/zh_TW/katello.po
4520
- - locale/zh_TW/katello.po.time_stamp
4521
4499
  - package.json
4522
4500
  - vendor/assets/images/katello/add2.png
4523
4501
  - vendor/assets/images/katello/addhost.png
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes
File without changes