katello 4.10.0.rc2 → 4.10.0

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 (56) hide show
  1. checksums.yaml +4 -4
  2. data/app/lib/actions/katello/repository/remove_content.rb +9 -1
  3. data/app/lib/katello/repo_discovery.rb +76 -3
  4. data/lib/katello/version.rb +1 -1
  5. data/webpack/scenes/ContentViews/Details/Filters/MatchContentModal/CVRpmMatchContentModal.js +18 -4
  6. data/webpack/scenes/ContentViews/Details/Filters/MatchContentModal/matchContentModal.scss +3 -0
  7. data/webpack/scenes/ContentViews/Details/Filters/Rules/Package/AddEditPackageRuleModal.js +15 -1
  8. metadata +13 -60
  9. data/locale/bn/LC_MESSAGES/katello.mo +0 -0
  10. data/locale/bn_IN/LC_MESSAGES/katello.mo +0 -0
  11. data/locale/ca/LC_MESSAGES/katello.mo +0 -0
  12. data/locale/cs/LC_MESSAGES/katello.mo +0 -0
  13. data/locale/cs_CZ/LC_MESSAGES/katello.mo +0 -0
  14. data/locale/de/LC_MESSAGES/katello.mo +0 -0
  15. data/locale/de_AT/LC_MESSAGES/katello.mo +0 -0
  16. data/locale/de_DE/LC_MESSAGES/katello.mo +0 -0
  17. data/locale/el/LC_MESSAGES/katello.mo +0 -0
  18. data/locale/en/LC_MESSAGES/katello.mo +0 -0
  19. data/locale/en_GB/LC_MESSAGES/katello.mo +0 -0
  20. data/locale/en_US/LC_MESSAGES/katello.mo +0 -0
  21. data/locale/es/LC_MESSAGES/katello.mo +0 -0
  22. data/locale/et_EE/LC_MESSAGES/katello.mo +0 -0
  23. data/locale/fr/LC_MESSAGES/katello.mo +0 -0
  24. data/locale/gl/LC_MESSAGES/katello.mo +0 -0
  25. data/locale/gu/LC_MESSAGES/katello.mo +0 -0
  26. data/locale/he_IL/LC_MESSAGES/katello.mo +0 -0
  27. data/locale/hi/LC_MESSAGES/katello.mo +0 -0
  28. data/locale/id/LC_MESSAGES/katello.mo +0 -0
  29. data/locale/it/LC_MESSAGES/katello.mo +0 -0
  30. data/locale/ja/LC_MESSAGES/katello.mo +0 -0
  31. data/locale/ka/LC_MESSAGES/katello.mo +0 -0
  32. data/locale/kn/LC_MESSAGES/katello.mo +0 -0
  33. data/locale/ko/LC_MESSAGES/katello.mo +0 -0
  34. data/locale/ml_IN/LC_MESSAGES/katello.mo +0 -0
  35. data/locale/mr/LC_MESSAGES/katello.mo +0 -0
  36. data/locale/nl_NL/LC_MESSAGES/katello.mo +0 -0
  37. data/locale/or/LC_MESSAGES/katello.mo +0 -0
  38. data/locale/pa/LC_MESSAGES/katello.mo +0 -0
  39. data/locale/pl/LC_MESSAGES/katello.mo +0 -0
  40. data/locale/pl_PL/LC_MESSAGES/katello.mo +0 -0
  41. data/locale/pt/LC_MESSAGES/katello.mo +0 -0
  42. data/locale/pt_BR/LC_MESSAGES/katello.mo +0 -0
  43. data/locale/ro/LC_MESSAGES/katello.mo +0 -0
  44. data/locale/ro_RO/LC_MESSAGES/katello.mo +0 -0
  45. data/locale/ru/LC_MESSAGES/katello.mo +0 -0
  46. data/locale/sl/LC_MESSAGES/katello.mo +0 -0
  47. data/locale/sv_SE/LC_MESSAGES/katello.mo +0 -0
  48. data/locale/ta/LC_MESSAGES/katello.mo +0 -0
  49. data/locale/ta_IN/LC_MESSAGES/katello.mo +0 -0
  50. data/locale/te/LC_MESSAGES/katello.mo +0 -0
  51. data/locale/tr/LC_MESSAGES/katello.mo +0 -0
  52. data/locale/vi/LC_MESSAGES/katello.mo +0 -0
  53. data/locale/vi_VN/LC_MESSAGES/katello.mo +0 -0
  54. data/locale/zh/LC_MESSAGES/katello.mo +0 -0
  55. data/locale/zh_CN/LC_MESSAGES/katello.mo +0 -0
  56. data/locale/zh_TW/LC_MESSAGES/katello.mo +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: cf47fce24e4eb32ab555fa4a624f8cbf2ee04a9911fbe031ee7c005d323a9a50
4
- data.tar.gz: 7247fdecda0b42666ac4eefa3ce2d6e8d005c1279bb59ab9cc6847dc79f3476c
3
+ metadata.gz: ba8012fd70673a2f1df8c3b0bb946e39d194fc7cd7a8d764b97002cf41fbb253
4
+ data.tar.gz: 76c982b7e81f585da523ba6fe37712c68d06b34f83d75379ab2fe6d455497e23
5
5
  SHA512:
6
- metadata.gz: fec72e7378d6de1ccc70416273228202f1e33e2474799025d8efefb1f851c25948b3a4e7b3995852de983b0f4a6312f18b4b7c5682343a9d16f95f099a4b46aa
7
- data.tar.gz: 9f8962a1d46bea986888c5dfb99ba639dd532b5ce9cac04c1d275ba21b7e2d76677cee24ac6c7089a0e1b2ec41bb55db636b32fa92e3d8ca07d13b6b2fc92dda
6
+ metadata.gz: 1bdc79f6e98f95cfac68d439e026a26c3a0b77af6fffcef64c2ca7a281899e57d5082c915640a72a2c26ac54a79c346f57a114aadb66f1dcfa03ccf3378fb5d6
7
+ data.tar.gz: 34fe62e89a179484ab8290eb3d65d75ea0b197da4373a6ec22486395830aeb30bffd119637b44f629f2fb224790c20f4453da25435af43b23bda58550233b6cc
@@ -12,7 +12,7 @@ module Actions
12
12
  unless repository.content_view.default?
13
13
  fail _("Can only remove content from within the Default Content View")
14
14
  end
15
-
15
+ content_units = valid_docker_manifests_to_delete!(content_units) if (repository.docker? && content_units.first.class::CONTENT_TYPE == 'docker_manifest')
16
16
  action_subject(repository)
17
17
 
18
18
  content_unit_ids = content_units.map(&:id)
@@ -58,6 +58,14 @@ module Actions
58
58
  end
59
59
  end
60
60
 
61
+ def valid_docker_manifests_to_delete!(content_units)
62
+ original_content_units = content_units
63
+ content_units = content_units.reject { |dm| dm.docker_tags.count > 0 || dm.docker_manifest_lists.count > 0 }
64
+ Rails.logger.warn("Docker Manifests with tags or manifest lists will be ignored; continuing...") if original_content_units.count != content_units.count
65
+ fail _("No docker manifests to delete after ignoring manifests with tags or manifest lists") if content_units.count == 0
66
+ content_units
67
+ end
68
+
61
69
  def humanized_name
62
70
  _("Remove Content")
63
71
  end
@@ -1,3 +1,5 @@
1
+ require 'uri'
2
+
1
3
  module Katello
2
4
  class RepoDiscovery
3
5
  include Katello::Util::HttpProxy
@@ -42,6 +44,72 @@ module Katello
42
44
 
43
45
  private
44
46
 
47
+ def parse_parameter(field_value)
48
+ field_value.lstrip!
49
+ i = field_value.index(/[ \t=;,]/) || field_value.length
50
+ name = field_value.slice!(0, i).downcase(:ascii)
51
+ field_value.lstrip!
52
+ if field_value.delete_prefix!('=')
53
+ field_value.lstrip!
54
+ if field_value.delete_prefix!('"')
55
+ value = ''
56
+ until field_value.empty?
57
+ break if field_value.delete_prefix!('"')
58
+ field_value.delete_prefix!("\\")
59
+ value += field_value.slice!(0, 1) || ''
60
+ end
61
+ else
62
+ i = field_value.index(/[;,]/) || field_value.length
63
+ value = field_value.slice!(0, i)
64
+ end
65
+ end
66
+ {name: name, value: value || ''}
67
+ end
68
+
69
+ def parse_parameters(field_value)
70
+ seen_rel = false
71
+ has_next_rel = false
72
+ has_anchor = false
73
+ until field_value.empty?
74
+ field_value.lstrip!
75
+ break if field_value.delete_prefix!(';').nil?
76
+ param = parse_parameter(field_value)
77
+ case
78
+ when param[:name] == 'rel' && !seen_rel
79
+ seen_rel = true
80
+ has_next_rel = param[:value].downcase(:ascii).split(/[ \t]/).include?('next')
81
+ when param[:name] == 'anchor'
82
+ has_anchor = true
83
+ end
84
+ end
85
+ {has_next_rel: has_next_rel, has_anchor: has_anchor}
86
+ end
87
+
88
+ def get_next_link(link_header)
89
+ # This code mostly follows Appendix B "Algorithms of Parsing Link Header Fields" of RFC 8288
90
+ # "Web Linking", <https://www.rfc-editor.org/rfc/rfc8288#appendix-B> (that RFC appears to be
91
+ # silent about multiple "next" links, so just use the first one and ignore any additional
92
+ # ones, in the general spirit of being lenient):
93
+ return nil if link_header.nil?
94
+ field_value = link_header.clone
95
+ until field_value.empty?
96
+ # The following ignores any junk preceding the next <...> link URL:
97
+ m = field_value.match(/<(.*)>/)
98
+ break unless m
99
+ target_string = m[1]
100
+ field_value = m.post_match
101
+ params = parse_parameters(field_value)
102
+ if params[:has_next_rel]
103
+ # To keep it simple, ignore a link with an (unlikely) anchor parameter; but the RFC
104
+ # mandates that we "MUST NOT process the link without applying the anchor", so just raise
105
+ # an exception in that (unlikely) case:
106
+ fail "anchor not supported" if params[:has_anchor]
107
+ return target_string
108
+ end
109
+ end
110
+ nil
111
+ end
112
+
45
113
  def docker_search
46
114
  request_params = {
47
115
  method: :get,
@@ -61,9 +129,14 @@ module Katello
61
129
  rescue
62
130
  # Note: v2 endpoint does not support search
63
131
  request_params[:url] = "#{@uri}v2/_catalog"
64
- results = RestClient::Request.execute(request_params)
65
- JSON.parse(results)['repositories'].each do |result|
66
- @found << result
132
+ loop do
133
+ results = RestClient::Request.execute(request_params)
134
+ JSON.parse(results)['repositories'].each do |result|
135
+ @found << result
136
+ end
137
+ next_uri = get_next_link(results.headers[:link])
138
+ break if next_uri.nil?
139
+ request_params[:url] = URI(request_params[:url]).merge(next_uri).to_s
67
140
  end
68
141
  end
69
142
  @found.sort!
@@ -1,3 +1,3 @@
1
1
  module Katello
2
- VERSION = "4.10.0.rc2".freeze
2
+ VERSION = "4.10.0".freeze
3
3
  end
@@ -3,13 +3,17 @@ import { useSelector, shallowEqual } from 'react-redux';
3
3
  import PropTypes from 'prop-types';
4
4
  import { translate as __ } from 'foremanReact/common/I18n';
5
5
  import {
6
- Modal, ModalVariant,
6
+ Modal, ModalVariant, Popover, Button,
7
7
  } from '@patternfly/react-core';
8
+ import {
9
+ HelpIcon,
10
+ } from '@patternfly/react-icons';
8
11
  import { TableVariant, Thead, Tbody, Tr, Th, Td } from '@patternfly/react-table';
9
12
  import { urlBuilder } from 'foremanReact/common/urlHelpers';
10
13
  import TableWrapper from '../../../../../components/Table/TableWrapper';
11
14
  import { getRPMPackages } from '../../ContentViewDetailActions';
12
15
  import { selectRPMPackages, selectRPMPackagesStatus } from '../../ContentViewDetailSelectors';
16
+ import './matchContentModal.scss';
13
17
 
14
18
 
15
19
  const columnHeaders = [
@@ -17,9 +21,9 @@ const columnHeaders = [
17
21
  __('Summary'),
18
22
  ];
19
23
 
20
- const emptyContentTitle = __('No matching RPM found.');
21
- const emptyContentBody = __("Given criteria doesn't match any RPMs. Try changing your rule.");
22
- const emptySearchTitle = __('Your search returned no matching RPMs.');
24
+ const emptyContentTitle = __('No matching non-modular RPM found.');
25
+ const emptyContentBody = __("Given criteria doesn't match any non-modular RPMs. Try changing your rule.");
26
+ const emptySearchTitle = __('Your search returned no matching non-modular RPMs.');
23
27
  const emptySearchBody = __('Try changing your search criteria.');
24
28
 
25
29
  const CVRpmMatchContentModal = ({ filterId, onClose, filterRuleId }) => {
@@ -41,6 +45,16 @@ const CVRpmMatchContentModal = ({ filterId, onClose, filterRuleId }) => {
41
45
  isOpen
42
46
  onClose={onClose}
43
47
  appendTo={document.body}
48
+ help={
49
+ <Popover
50
+ headerContent={__('Help')}
51
+ bodyContent={__("Matching RPMs based on your created filter rule. Remember, RPM filters don't apply to modular RPMs.")}
52
+ >
53
+ <Button variant="plain" aria-label="Help" ouiaId="matching-content-modal-help">
54
+ <HelpIcon />
55
+ </Button>
56
+ </Popover>
57
+ }
44
58
  >
45
59
  <TableWrapper
46
60
  {...{
@@ -0,0 +1,3 @@
1
+ .pf-c-empty-state {
2
+ margin-top: 0;
3
+ }
@@ -6,8 +6,11 @@ import PropTypes from 'prop-types';
6
6
  import { translate as __ } from 'foremanReact/common/I18n';
7
7
  import {
8
8
  Modal, ModalVariant, Form, FormGroup, TextInput,
9
- ActionGroup, Button, FormSelect, FormSelectOption,
9
+ ActionGroup, Button, FormSelect, FormSelectOption, Popover,
10
10
  } from '@patternfly/react-core';
11
+ import {
12
+ HelpIcon,
13
+ } from '@patternfly/react-icons';
11
14
  import { addCVFilterRule, editCVFilterRule, getCVFilterRules } from '../../../ContentViewDetailActions';
12
15
  import {
13
16
  selectCreateFilterRuleStatus,
@@ -135,6 +138,17 @@ const AddEditPackageRuleModal = ({
135
138
  isOpen
136
139
  onClose={onClose}
137
140
  appendTo={document.body}
141
+ help={
142
+ <Popover
143
+ headerContent={__('Help')}
144
+ bodyContent={__('Use filter rules to include or restrict certain content. ' +
145
+ "When selecting RPMs, be aware that RPM filters don't apply to modular RPMs.")}
146
+ >
147
+ <Button variant="plain" aria-label="Help" ouiaId="rpm-filter-rule-modal-help">
148
+ <HelpIcon />
149
+ </Button>
150
+ </Popover>
151
+ }
138
152
  >
139
153
  <Form onSubmit={(e) => {
140
154
  e.preventDefault();
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.10.0.rc2
4
+ version: 4.10.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - N/A
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-09-12 00:00:00.000000000 Z
11
+ date: 2023-10-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -320,20 +320,20 @@ dependencies:
320
320
  requirements:
321
321
  - - ">="
322
322
  - !ruby/object:Gem::Version
323
- version: 2.21.0
323
+ version: 3.0.0
324
324
  - - "<"
325
325
  - !ruby/object:Gem::Version
326
- version: 2.22.0
326
+ version: 3.1.0
327
327
  type: :runtime
328
328
  prerelease: false
329
329
  version_requirements: !ruby/object:Gem::Requirement
330
330
  requirements:
331
331
  - - ">="
332
332
  - !ruby/object:Gem::Version
333
- version: 2.21.0
333
+ version: 3.0.0
334
334
  - - "<"
335
335
  - !ruby/object:Gem::Version
336
- version: 2.22.0
336
+ version: 3.1.0
337
337
  - !ruby/object:Gem::Dependency
338
338
  name: pulp_rpm_client
339
339
  requirement: !ruby/object:Gem::Requirement
@@ -4491,103 +4491,55 @@ files:
4491
4491
  - locale/Makefile
4492
4492
  - locale/README
4493
4493
  - locale/action_names.rb
4494
- - locale/bn/LC_MESSAGES/katello.mo
4495
4494
  - locale/bn/katello.po
4496
- - locale/bn_IN/LC_MESSAGES/katello.mo
4497
4495
  - locale/bn_IN/katello.po
4498
- - locale/ca/LC_MESSAGES/katello.mo
4499
4496
  - locale/ca/katello.po
4500
- - locale/cs/LC_MESSAGES/katello.mo
4501
4497
  - locale/cs/katello.po
4502
- - locale/cs_CZ/LC_MESSAGES/katello.mo
4503
4498
  - locale/cs_CZ/katello.po
4504
- - locale/de/LC_MESSAGES/katello.mo
4505
4499
  - locale/de/katello.po
4506
- - locale/de_AT/LC_MESSAGES/katello.mo
4507
4500
  - locale/de_AT/katello.po
4508
- - locale/de_DE/LC_MESSAGES/katello.mo
4509
4501
  - locale/de_DE/katello.po
4510
- - locale/el/LC_MESSAGES/katello.mo
4511
4502
  - locale/el/katello.po
4512
- - locale/en/LC_MESSAGES/katello.mo
4513
4503
  - locale/en/katello.po
4514
- - locale/en_GB/LC_MESSAGES/katello.mo
4515
4504
  - locale/en_GB/katello.po
4516
- - locale/en_US/LC_MESSAGES/katello.mo
4517
4505
  - locale/en_US/katello.po
4518
- - locale/es/LC_MESSAGES/katello.mo
4519
4506
  - locale/es/katello.po
4520
- - locale/et_EE/LC_MESSAGES/katello.mo
4521
4507
  - locale/et_EE/katello.po
4522
- - locale/fr/LC_MESSAGES/katello.mo
4523
4508
  - locale/fr/katello.po
4524
- - locale/gl/LC_MESSAGES/katello.mo
4525
4509
  - locale/gl/katello.po
4526
- - locale/gu/LC_MESSAGES/katello.mo
4527
4510
  - locale/gu/katello.po
4528
- - locale/he_IL/LC_MESSAGES/katello.mo
4529
4511
  - locale/he_IL/katello.po
4530
- - locale/hi/LC_MESSAGES/katello.mo
4531
4512
  - locale/hi/katello.po
4532
- - locale/id/LC_MESSAGES/katello.mo
4533
4513
  - locale/id/katello.po
4534
- - locale/it/LC_MESSAGES/katello.mo
4535
4514
  - locale/it/katello.po
4536
- - locale/ja/LC_MESSAGES/katello.mo
4537
4515
  - locale/ja/katello.po
4538
- - locale/ka/LC_MESSAGES/katello.mo
4539
4516
  - locale/ka/katello.po
4540
4517
  - locale/katello.pot
4541
- - locale/kn/LC_MESSAGES/katello.mo
4542
4518
  - locale/kn/katello.po
4543
- - locale/ko/LC_MESSAGES/katello.mo
4544
4519
  - locale/ko/katello.po
4545
- - locale/ml_IN/LC_MESSAGES/katello.mo
4546
4520
  - locale/ml_IN/katello.po
4547
- - locale/mr/LC_MESSAGES/katello.mo
4548
4521
  - locale/mr/katello.po
4549
- - locale/nl_NL/LC_MESSAGES/katello.mo
4550
4522
  - locale/nl_NL/katello.po
4551
- - locale/or/LC_MESSAGES/katello.mo
4552
4523
  - locale/or/katello.po
4553
- - locale/pa/LC_MESSAGES/katello.mo
4554
4524
  - locale/pa/katello.po
4555
- - locale/pl/LC_MESSAGES/katello.mo
4556
4525
  - locale/pl/katello.po
4557
- - locale/pl_PL/LC_MESSAGES/katello.mo
4558
4526
  - locale/pl_PL/katello.po
4559
- - locale/pt/LC_MESSAGES/katello.mo
4560
4527
  - locale/pt/katello.po
4561
- - locale/pt_BR/LC_MESSAGES/katello.mo
4562
4528
  - locale/pt_BR/katello.po
4563
- - locale/ro/LC_MESSAGES/katello.mo
4564
4529
  - locale/ro/katello.po
4565
- - locale/ro_RO/LC_MESSAGES/katello.mo
4566
4530
  - locale/ro_RO/katello.po
4567
- - locale/ru/LC_MESSAGES/katello.mo
4568
4531
  - locale/ru/katello.po
4569
- - locale/sl/LC_MESSAGES/katello.mo
4570
4532
  - locale/sl/katello.po
4571
- - locale/sv_SE/LC_MESSAGES/katello.mo
4572
4533
  - locale/sv_SE/katello.po
4573
- - locale/ta/LC_MESSAGES/katello.mo
4574
4534
  - locale/ta/katello.po
4575
- - locale/ta_IN/LC_MESSAGES/katello.mo
4576
4535
  - locale/ta_IN/katello.po
4577
- - locale/te/LC_MESSAGES/katello.mo
4578
4536
  - locale/te/katello.po
4579
- - locale/tr/LC_MESSAGES/katello.mo
4580
4537
  - locale/tr/katello.po
4581
4538
  - locale/update-i18n
4582
- - locale/vi/LC_MESSAGES/katello.mo
4583
4539
  - locale/vi/katello.po
4584
- - locale/vi_VN/LC_MESSAGES/katello.mo
4585
4540
  - locale/vi_VN/katello.po
4586
- - locale/zh/LC_MESSAGES/katello.mo
4587
4541
  - locale/zh/katello.po
4588
- - locale/zh_CN/LC_MESSAGES/katello.mo
4589
4542
  - locale/zh_CN/katello.po
4590
- - locale/zh_TW/LC_MESSAGES/katello.mo
4591
4543
  - locale/zh_TW/katello.po
4592
4544
  - package.json
4593
4545
  - vendor/assets/images/katello/add2.png
@@ -5078,6 +5030,7 @@ files:
5078
5030
  - webpack/scenes/ContentViews/Details/Filters/MatchContentModal/CVRpmMatchContentModal.js
5079
5031
  - webpack/scenes/ContentViews/Details/Filters/MatchContentModal/__tests__/CVRpmMatchContent.fixtures.json
5080
5032
  - webpack/scenes/ContentViews/Details/Filters/MatchContentModal/__tests__/CVRpmMatchContentModal.test.js
5033
+ - webpack/scenes/ContentViews/Details/Filters/MatchContentModal/matchContentModal.scss
5081
5034
  - webpack/scenes/ContentViews/Details/Filters/Rules/ContainerTag/AddEditContainerTagRuleModal.js
5082
5035
  - webpack/scenes/ContentViews/Details/Filters/Rules/DebPackage/AddEditDebPackageRuleModal.js
5083
5036
  - webpack/scenes/ContentViews/Details/Filters/Rules/Package/AddEditPackageRuleModal.js
@@ -5509,7 +5462,7 @@ homepage: http://www.katello.org
5509
5462
  licenses:
5510
5463
  - GPL-2.0
5511
5464
  metadata: {}
5512
- post_install_message:
5465
+ post_install_message:
5513
5466
  rdoc_options: []
5514
5467
  require_paths:
5515
5468
  - lib
@@ -5520,12 +5473,12 @@ required_ruby_version: !ruby/object:Gem::Requirement
5520
5473
  version: '2.5'
5521
5474
  required_rubygems_version: !ruby/object:Gem::Requirement
5522
5475
  requirements:
5523
- - - ">"
5476
+ - - ">="
5524
5477
  - !ruby/object:Gem::Version
5525
- version: 1.3.1
5478
+ version: '0'
5526
5479
  requirements: []
5527
- rubygems_version: 3.3.26
5528
- signing_key:
5480
+ rubygems_version: 3.1.6
5481
+ signing_key:
5529
5482
  specification_version: 4
5530
5483
  summary: Content and Subscription Management plugin for Foreman
5531
5484
  test_files: []
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file