foreman_scc_manager 2.0.0 → 2.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (31) hide show
  1. checksums.yaml +4 -4
  2. data/README.md +3 -3
  3. data/app/controllers/api/v2/scc_accounts_controller.rb +8 -0
  4. data/app/controllers/scc_accounts_controller.rb +2 -0
  5. data/app/lib/actions/scc_manager/subscribe_product.rb +5 -7
  6. data/app/models/scc_account.rb +29 -0
  7. data/app/models/scc_product.rb +2 -5
  8. data/app/views/api/v2/scc_accounts/main.json.rabl +1 -1
  9. data/app/views/scc_accounts/_form.html.erb +8 -4
  10. data/db/migrate/20210713092440_add_permissions.rb +2 -2
  11. data/db/migrate/20221013214310_add_sync_options_to_scc_account.rb +11 -0
  12. data/lib/foreman_scc_manager/version.rb +1 -1
  13. data/locale/Makefile +9 -4
  14. data/locale/action_names.rb +87 -4
  15. data/locale/de/LC_MESSAGES/foreman_scc_manager.mo +0 -0
  16. data/locale/de/foreman_scc_manager.po +398 -12
  17. data/locale/el/LC_MESSAGES/foreman_scc_manager.mo +0 -0
  18. data/locale/el/foreman_scc_manager.po +595 -0
  19. data/locale/en/LC_MESSAGES/foreman_scc_manager.mo +0 -0
  20. data/locale/en/foreman_scc_manager.po +394 -8
  21. data/locale/foreman_scc_manager.pot +603 -47
  22. data/locale/ja/LC_MESSAGES/foreman_scc_manager.mo +0 -0
  23. data/locale/ja/foreman_scc_manager.po +598 -0
  24. data/locale/ka/LC_MESSAGES/foreman_scc_manager.mo +0 -0
  25. data/locale/ka/foreman_scc_manager.po +595 -0
  26. data/locale/zh_CN/LC_MESSAGES/foreman_scc_manager.mo +0 -0
  27. data/locale/zh_CN/foreman_scc_manager.po +598 -0
  28. data/test/controllers/scc_accounts_controller_test.rb +1 -1
  29. data/test/fixtures/models/katello_root_repositories.yml +0 -12
  30. data/test/test_plugin_helper.rb +0 -6
  31. metadata +26 -31
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 73d2510abbdbe51fef59bba613502fb02ef1fe14eeb441f0bee716b17e2eba8d
4
- data.tar.gz: c61b9f852d58033c290204508d0d4653e5379c6c8b73e6d5b58d026ea485b0f0
3
+ metadata.gz: cf29760fbadb5ab05822159701061bb43f6fce7a94ada64681af0defe0e8056b
4
+ data.tar.gz: 29e94a2c06159687fe610ff3e0961f3062c1f507be5ba58efdc2487e67be998c
5
5
  SHA512:
6
- metadata.gz: d3ce92fbe191d0aaa6f10d0015ed4a3e3320892d1f45a519a965cdbd63a93e49a0fe6918fcc1b7cfb4618b8a8fc016349bfbceba5825a93ca5400dce5dd18e03
7
- data.tar.gz: a48593aa198df8fbc5b4c88a2654facb7dc1f77f80373d3cf7a03fa46e84bd5f02af338af0a0e1dd2968da7e7afa6e44548f992e51d1ece7a0a82fa05922f0d9
6
+ metadata.gz: 0b2624ad1fe80b4200c892c9988c021cf91033879003abb5074ebd3c21bb0481d8ccdf3da86e5d5a11ae354c46540e3160e289bafe3355b522bfe239bb9be264
7
+ data.tar.gz: c8446acc052cf2c38147093a26024a51c2e0da6abe9712dccb6e786eba50db6d7fba85acf4c685f423d8b9e789c75e1899bbba0fcf005642b76c7d793a94be8c
data/README.md CHANGED
@@ -11,7 +11,7 @@ Foreman plugin to sync SUSE Customer Center products and repositories into Katel
11
11
  This plugin installation is supported since Foreman 3.4 / Katello 4.6 by the foreman-installer, but only with the scenario Katello:
12
12
 
13
13
  ```sh
14
- foreman-install --scenario katello --enable-foreman-plugin-scc-manager
14
+ foreman-installer --scenario katello --enable-foreman-plugin-scc-manager
15
15
  ```
16
16
 
17
17
  You can also install it manually:
@@ -26,7 +26,7 @@ foreman-installer
26
26
 
27
27
  | Foreman Version | Katello Version | Plugin Version |
28
28
  | --------------- | --------------- | -------------- |
29
- | 3.5 | 4.5 | ~> 2.0.0 |
29
+ | 3.3 | 4.5 | ~> 2.0.0 |
30
30
  | 3.1 | 4.3 | ~> 1.8.20\* |
31
31
  | 3.0 | 4.2 | ~> 1.8.20 |
32
32
  | 2.5 | 4.1 | ~> 1.8.20 |
@@ -39,7 +39,7 @@ foreman-installer
39
39
 
40
40
  ## Documentation
41
41
 
42
- [Plugin documentation](https://docs.orcharhino.com/or/docs/sources/usage_guides/managing_sles_systems_guide.html#mssg_installing_the_scc_manager_plugin)
42
+ [Plugin documentation](https://docs.theforeman.org/nightly/Managing_Content/index-katello.html#Managing_SUSE_Content_content-management)
43
43
 
44
44
  ## Hammer CLI Extension
45
45
 
@@ -34,6 +34,14 @@ module Api
34
34
  param :password, String, :required => true, :desc => N_('Password of scc_account')
35
35
  param :base_url, String, :required => false, :desc => N_('URL of SUSE for scc_account')
36
36
  param :interval, ['never', 'daily', 'weekly', 'monthly'], :desc => N_('Interval for syncing scc_account')
37
+ param :download_policy,
38
+ ::Katello::RootRepository::DOWNLOAD_POLICIES,
39
+ :required => false,
40
+ :desc => N_('The default download policy for repositories which were created using this SCC Account.')
41
+ param :mirroring_policy,
42
+ SccAccount::SCC_MIRRORING_POLICIES,
43
+ :required => false,
44
+ :desc => N_('The default mirroring policy for repositories which were created using this SCC Account.')
37
45
  param :sync_date, String, :desc => N_('Date and time relative to which the sync interval is run')
38
46
  param :katello_gpg_key_id, :identifier, :required => false, :desc => N_('Associated GPG key of scc_account')
39
47
  end
@@ -170,6 +170,8 @@ class SccAccountsController < ApplicationController
170
170
  :password,
171
171
  :base_url,
172
172
  :interval,
173
+ :download_policy,
174
+ :mirroring_policy,
173
175
  :sync_date,
174
176
  :organization_id,
175
177
  :katello_gpg_key_id
@@ -53,7 +53,9 @@ module Actions
53
53
  :pretty_repo_name => repo.pretty_name,
54
54
  :url => repo.url,
55
55
  :token => repo.token,
56
- :arch => arch)
56
+ :arch => arch,
57
+ :download_policy => scc_product.scc_account.download_policy,
58
+ :mirroring_policy => scc_product.scc_account.mirroring_policy)
57
59
  katello_repos[repo.id] = repo_create_action.output[:katello_root_repository_id]
58
60
  end
59
61
 
@@ -119,13 +121,9 @@ module Actions
119
121
  :unprotected => unprotected,
120
122
  :gpg_key => gpg_key,
121
123
  :arch => input[:arch],
122
- :download_policy => Setting[:default_download_policy] }
124
+ :download_policy => input[:download_policy],
125
+ :mirroring_policy => input[:mirroring_policy] }
123
126
  repository = product.add_repo(repo_param)
124
- if repository.has_attribute?('mirror_on_sync')
125
- repository.mirror_on_sync = true
126
- else
127
- repository.mirroring_policy = ::Katello::RootRepository::MIRRORING_POLICY_CONTENT
128
- end
129
127
  if repository.has_attribute?('upstream_authentication_token')
130
128
  repository.url = input[:url]
131
129
  repository.upstream_authentication_token = input[:token]
@@ -13,6 +13,11 @@ class SccAccount < ApplicationRecord
13
13
  MONTHLY = 'monthly'.freeze
14
14
  TYPES = [NEVER, DAILY, WEEKLY, MONTHLY].freeze
15
15
 
16
+ # MIRRORING_POLICY_COMPLETE doesn't work for suse repository because deltarpm metadata is not supported by pulp3
17
+ SCC_MIRRORING_POLICIES = ::Katello::RootRepository::MIRRORING_POLICIES.dup
18
+ SCC_MIRRORING_POLICIES.delete(::Katello::RootRepository::MIRRORING_POLICY_COMPLETE)
19
+ SCC_MIRRORING_POLICIES.freeze
20
+
16
21
  self.include_root_in_json = false
17
22
 
18
23
  belongs_to :organization
@@ -29,6 +34,8 @@ class SccAccount < ApplicationRecord
29
34
  validates :password, presence: true
30
35
  validates :base_url, presence: true
31
36
  validates :interval, :inclusion => { :in => TYPES }, :allow_blank => false
37
+ validates :download_policy, :inclusion => { :in => ::Katello::RootRepository::DOWNLOAD_POLICIES }, :allow_blank => false
38
+ validates :mirroring_policy, :inclusion => { :in => SCC_MIRRORING_POLICIES }, :allow_blank => false
32
39
  validate :sync_date_is_valid_datetime
33
40
 
34
41
  after_initialize :init
@@ -278,4 +285,26 @@ class SccAccount < ApplicationRecord
278
285
  end
279
286
  items_to_invalidate
280
287
  end
288
+
289
+ def self.download_policy_selection_values
290
+ names = {
291
+ ::Katello::RootRepository::DOWNLOAD_ON_DEMAND => _('On Demand'),
292
+ ::Katello::RootRepository::DOWNLOAD_IMMEDIATE => _('Immediate')
293
+ }
294
+
295
+ ::Katello::RootRepository::DOWNLOAD_POLICIES.map do |p|
296
+ [names.fetch(p, p), p]
297
+ end
298
+ end
299
+
300
+ def self.mirroring_policy_selection_values
301
+ names = {
302
+ ::Katello::RootRepository::MIRRORING_POLICY_ADDITIVE => _('Additive'),
303
+ ::Katello::RootRepository::MIRRORING_POLICY_CONTENT => _('Content Only')
304
+ }
305
+
306
+ ::Katello::RootRepository::MIRRORING_POLICIES.map do |p|
307
+ [names.fetch(p, p), p]
308
+ end
309
+ end
281
310
  end
@@ -58,11 +58,8 @@ class SccProduct < ApplicationRecord
58
58
  gpg_key = new_product.gpg_key
59
59
  new_repo = new_product.add_repo(label, uniq_repo_name, repo.url, 'yum', unprotected, gpg_key)
60
60
  new_repo.arch = arch || 'noarch'
61
- if new_repo.has_attribute?('mirror_on_sync')
62
- new_repo.mirror_on_sync = true
63
- else
64
- new_repo.mirroring_policy = ::Katello::RootRepository::MIRRORING_POLICY_CONTENT
65
- end
61
+ new_repo.mirroring_policy = scc_account.mirroring_policy
62
+ new_repo.download_policy = scc_account.download_policy
66
63
  if new_repo.has_attribute?('upstream_authentication_token')
67
64
  new_repo.upstream_authentication_token = repo.token
68
65
  new_repo.url = repo.url
@@ -2,4 +2,4 @@
2
2
 
3
3
  object @scc_account
4
4
  extends 'api/v2/scc_accounts/base'
5
- attributes :organization_id, :organization_name, :login, :base_url, :interval, :sync_date
5
+ attributes :organization_id, :organization_name, :login, :base_url, :interval, :download_policy, :mirroring_policy, :sync_date
@@ -19,11 +19,15 @@
19
19
  <%= field f, :sync_date, label: _('Sync Date') do
20
20
  f.datetime_field :sync_date, placeholder: Time.now
21
21
  end %>
22
- <%= selectable_f f, :katello_gpg_key_id, @selectable_gpg_keys, {},
23
- { :include_blank => _("None"),
24
- :label => _('Use GPG key for SUSE products'),
25
- :selected => @scc_account.katello_gpg_key_id,
22
+ <%= selectable_f f, :katello_gpg_key_id, @selectable_gpg_keys, {},
23
+ { :include_blank => _("None"),
24
+ :label => _('Use GPG key for SUSE products'),
25
+ :selected => @scc_account.katello_gpg_key_id,
26
26
  :help_block => _("Use this setting if you want to automatically add a GPG key to your SUSE products upon subscription. You can change this setting in the 'Content' > 'Products' menu, later.") } %>
27
+ <%= selectable_f f, :download_policy, SccAccount::download_policy_selection_values,
28
+ { :label => _('Download Policy'), :help_block => _("The default download policy for repositories which were created using this SCC Account.") } %>
29
+ <%= selectable_f f, :mirroring_policy, SccAccount::mirroring_policy_selection_values,
30
+ { :label => _('Mirroring Policy'), :help_block => _("The default mirroring policy for repositories which were created using this SCC Account.") } %>
27
31
  <div class='clearfix'>
28
32
  <div class='form-group'>
29
33
  <div class='col-md-2'></div>
@@ -5,9 +5,9 @@ class AddPermissions < ActiveRecord::Migration[6.0]
5
5
  ].freeze
6
6
 
7
7
  def up
8
- Permission.create!(:name => 'test_connection_scc_accounts', :resource_type => 'SccAccount')
8
+ Permission.find_or_create_by!(:name => 'test_connection_scc_accounts', :resource_type => 'SccAccount')
9
9
  PRODUCT_PERMISSION_NAMES.each do |p|
10
- Permission.create!(:name => p, :resource_type => SccProduct)
10
+ Permission.find_or_create_by!(:name => p, :resource_type => 'SccProduct')
11
11
  end
12
12
  end
13
13
 
@@ -0,0 +1,11 @@
1
+ class AddSyncOptionsToSccAccount < ActiveRecord::Migration[5.2]
2
+ def change
3
+ add_column :scc_accounts, :download_policy, :string, default: ::Katello::RootRepository::DOWNLOAD_IMMEDIATE
4
+ add_column :scc_accounts, :mirroring_policy, :string, default: ::Katello::RootRepository::MIRRORING_POLICY_CONTENT
5
+ SccAccount.all.each do |a|
6
+ a.download_policy = ::Katello::RootRepository::DOWNLOAD_IMMEDIATE
7
+ a.mirroring_policy = ::Katello::RootRepository::MIRRORING_POLICY_CONTENT
8
+ a.save!
9
+ end
10
+ end
11
+ end
@@ -1,3 +1,3 @@
1
1
  module ForemanSccManager
2
- VERSION = '2.0.0'.freeze
2
+ VERSION = '2.2.0'.freeze
3
3
  end
data/locale/Makefile CHANGED
@@ -6,8 +6,8 @@
6
6
  # make tx-update - download and merge translations from Transifex
7
7
  # make clean - clean everything
8
8
  #
9
- DOMAIN = foreman_scc_manager
10
- VERSION = $(shell ruby -e 'require "rubygems";spec = Gem::Specification::load(Dir.glob("../*.gemspec")[0]);puts spec.version')
9
+ DOMAIN = $(shell ruby -rrubygems -e 'puts Gem::Specification::load(Dir.glob("../*.gemspec")[0]).name')
10
+ VERSION = $(shell ruby -rrubygems -e 'puts Gem::Specification::load(Dir.glob("../*.gemspec")[0]).version')
11
11
  POTFILE = $(DOMAIN).pot
12
12
  MOFILE = $(DOMAIN).mo
13
13
  POFILES = $(shell find . -name '$(DOMAIN).po')
@@ -41,7 +41,10 @@ uniq-po:
41
41
  msguniq $$f -o $$f ; \
42
42
  done
43
43
 
44
- tx-pull: $(EDITFILES)
44
+ tx-new:
45
+ tx pull --minimum-perc 50 --all
46
+
47
+ tx-pull: tx-new $(EDITFILES)
45
48
  tx pull -f
46
49
  for f in $(EDITFILES) ; do \
47
50
  sed -i 's/^\("Project-Id-Version: \).*$$/\1$(DOMAIN) $(VERSION)\\n"/' $$f; \
@@ -52,7 +55,9 @@ tx-update: tx-pull
52
55
  @echo Run rake plugin:gettext[$(DOMAIN)] from the Foreman installation, then make -C locale mo-files to finish
53
56
  @echo
54
57
 
55
- mo-files: $(MOFILES)
58
+ build-mo-files: $(MOFILES)
59
+
60
+ mo-files: build-mo-files
56
61
  git add $(POFILES) $(POTFILE) ../locale/*/LC_MESSAGES
57
62
  git commit -m "i18n - pulling from tx"
58
63
  @echo
@@ -1,5 +1,88 @@
1
- _("Subscribe SCC Product")
2
- _("Sync SUSE subscriptions")
3
- _("Update SUSE repositories")
4
- _("Sync SUSE subscriptions (Products)")
1
+ # Autogenerated!
2
+ _("Import")
3
+ _("Export Repository")
4
+ _("Export Library")
5
+ _("Generate host applicability")
6
+ _("Bulk generate applicability for hosts")
7
+ _("Generate repository applicability")
8
+ _("Synchronize smart proxy")
9
+ _("Sync capsule")
10
+ _("Update CDN Configuration")
11
+ _("Update")
12
+ _("Delete")
13
+ _("Errata mail")
14
+ _("Incremental Update of Content View Version(s) ")
15
+ _("Import facts")
16
+ _("Import Puppet classes")
17
+ _("Abstract async task")
18
+ _("Syncable export")
19
+ _("Export")
20
+ _("Copy version units to library")
21
+ _("Create Syncable Export History")
22
+ _("Create Import History")
23
+ _("Create")
24
+ _("Delete Activation Key")
25
+ _("Create Export History")
26
+ _("Agent action")
27
+ _("Create Alternate Content Source")
28
+ _("Destroy Alternate Content Source")
29
+ _("Refresh Alternate Content Source")
30
+ _("Update Alternate Content Source")
31
+ _("Action with sub plans")
32
+ _("Abstract")
33
+ _("Remove from Environment")
34
+ _("Promote")
35
+ _("Promotion to Environment")
36
+ _("Publish")
37
+ _("Remove Versions and Associations")
38
+ _("Remove Version")
39
+ _("Import Content View Version")
40
+ _("Import Default Content View")
41
+ _("Import Repository")
42
+ _("Incremental Update")
43
+ _("Republish Version Repositories")
44
+ _("Delete Lifecycle Environment")
45
+ _("Publish Lifecycle Environment Repositories")
46
+ _("Attach subscriptions")
47
+ _("Auto attach subscriptions")
48
+ _("Destroy Content Host")
49
+ _("Install Applicable Errata")
50
+ _("Hypervisors")
51
+ _("Hypervisors update")
52
+ _("Remove subscriptions")
53
+ _("Combined Profile Update")
54
+ _("Update Content Overrides")
55
+ _("Update for host")
56
+ _("Update release version for host")
57
+ _("Updating System Purpose for host")
58
+ _("Package Profile Update")
59
+ _("Destroy")
60
+ _("Run Sync Plan:")
61
+ _("Enable")
62
+ _("Disable")
63
+ _("Verify checksum")
64
+ _("Create Package Group")
65
+ _("Upload into")
66
+ _("Update redhat repository")
67
+ _("Update http proxy details")
68
+ _("Update content urls")
69
+ _("Discover")
70
+ _("Synchronize")
71
+ _("Remove Content")
72
+ _("Instance update")
73
+ _("Index package groups")
74
+ _("Index module streams")
75
+ _("Index errata")
76
+ _("Index content")
77
+ _("Filtered index content")
78
+ _("Fetch pxe files")
79
+ _("Delete Package Group")
80
+ _("Update http proxy")
81
+ _("Reindex subscriptions")
82
+ _("Delete Product")
83
+ _("Product Create")
5
84
  _("Sync SUSE subscriptions (Repositories)")
85
+ _("Sync SUSE subscriptions (Products)")
86
+ _("Update SUSE repositories")
87
+ _("Sync SUSE subscriptions")
88
+ _("Subscribe SCC Product")