foreman_scc_manager 1.8.0 → 1.8.5
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.
- checksums.yaml +4 -4
- data/README.md +5 -0
- data/app/assets/javascripts/foreman_scc_manager/scc_accounts.js.coffee +1 -1
- data/app/controllers/scc_accounts_controller.rb +20 -1
- data/app/lib/actions/scc_manager/sync_products.rb +8 -7
- data/app/lib/actions/scc_manager/sync_repositories.rb +8 -7
- data/app/lib/scc_manager.rb +2 -2
- data/app/models/scc_account.rb +10 -6
- data/app/models/scc_product.rb +2 -0
- data/app/views/scc_accounts/_form.html.erb +3 -2
- data/app/views/scc_accounts/index.html.erb +4 -3
- data/app/views/scc_accounts/show.html.erb +3 -3
- data/config/routes.rb +2 -1
- data/db/migrate/20200520281300_fix_scc_permissions.rb +22 -0
- data/lib/foreman_scc_manager/engine.rb +38 -25
- data/lib/foreman_scc_manager/version.rb +1 -1
- data/lib/tasks/test.rake +1 -1
- data/locale/de/LC_MESSAGES/foreman_scc_manager.mo +0 -0
- data/locale/de/foreman_scc_manager.po +124 -121
- data/locale/en/foreman_scc_manager.po +86 -139
- data/locale/foreman_scc_manager.pot +17 -11
- data/test/fixtures/models/scc_products.yml +24 -0
- data/test/fixtures/models/scc_repositories.yml +15 -0
- data/test/models/scc_product_test.rb +56 -1
- data/test/support/fixtures_support.rb +3 -2
- metadata +22 -5
@@ -17,226 +17,173 @@ msgstr ""
|
|
17
17
|
"Plural-Forms: nplurals=2; plural=n != 1;\n"
|
18
18
|
"\n"
|
19
19
|
|
20
|
-
|
21
|
-
msgid "List all scc_accounts"
|
20
|
+
msgid "Actions"
|
22
21
|
msgstr ""
|
23
22
|
|
24
|
-
|
25
|
-
|
26
|
-
msgstr ""
|
23
|
+
msgid "Add SCC account"
|
24
|
+
msgstr "Add SCC account"
|
27
25
|
|
28
|
-
|
29
|
-
|
30
|
-
msgstr ""
|
26
|
+
msgid "Add SUSE Customer Center Account"
|
27
|
+
msgstr "Add SUSE Customer Center Account"
|
31
28
|
|
32
|
-
|
33
|
-
|
34
|
-
msgstr ""
|
29
|
+
msgid "Base URL"
|
30
|
+
msgstr "Base URL"
|
35
31
|
|
36
|
-
|
37
|
-
msgid "Password of scc_account"
|
32
|
+
msgid "Bulk subscription of scc_products for scc_account"
|
38
33
|
msgstr ""
|
39
34
|
|
40
|
-
|
41
|
-
msgid "URL of SUSE for scc_account"
|
35
|
+
msgid "Create an scc_account"
|
42
36
|
msgstr ""
|
43
37
|
|
44
|
-
|
45
|
-
msgid "Interval for syncing scc_account"
|
38
|
+
msgid "Cron expression is not valid!"
|
46
39
|
msgstr ""
|
47
40
|
|
48
|
-
|
49
|
-
msgid "Last Sync time of scc_account"
|
41
|
+
msgid "Delete %s?"
|
50
42
|
msgstr ""
|
51
43
|
|
52
|
-
|
53
|
-
msgid "Create an scc_account"
|
44
|
+
msgid "Delete scc_account"
|
54
45
|
msgstr ""
|
55
46
|
|
56
|
-
|
57
|
-
msgid "Update scc_account"
|
47
|
+
msgid "Edit %s"
|
58
48
|
msgstr ""
|
59
49
|
|
60
|
-
|
61
|
-
|
62
|
-
msgstr ""
|
50
|
+
msgid "Failed to add task to queue: %s"
|
51
|
+
msgstr "Failed to add task to queue: %s"
|
63
52
|
|
64
|
-
|
65
|
-
|
66
|
-
msgstr ""
|
53
|
+
msgid "Foreman plugin to sync SUSE Customer Center products and repositories into Katello."
|
54
|
+
msgstr "Foreman plugin to sync SUSE Customer Center products and repositories into Katello."
|
67
55
|
|
68
|
-
|
69
|
-
msgid "Sync scc_account"
|
56
|
+
msgid "Interval cannot be nil"
|
70
57
|
msgstr ""
|
71
58
|
|
72
|
-
|
73
|
-
msgid "Bulk subscription of scc_products for scc_account"
|
59
|
+
msgid "Interval for syncing scc_account"
|
74
60
|
msgstr ""
|
75
61
|
|
76
|
-
|
77
|
-
msgid "List all products for scc_account"
|
62
|
+
msgid "Interval not set correctly"
|
78
63
|
msgstr ""
|
79
64
|
|
80
|
-
|
81
|
-
msgid "Show an scc_account product"
|
65
|
+
msgid "Last Sync time of scc_account"
|
82
66
|
msgstr ""
|
83
67
|
|
84
|
-
|
85
|
-
|
86
|
-
msgstr ""
|
68
|
+
msgid "Last synced"
|
69
|
+
msgstr "Last synced"
|
87
70
|
|
88
|
-
|
89
|
-
|
90
|
-
msgstr "Sync task started."
|
71
|
+
msgid "List all products for scc_account"
|
72
|
+
msgstr ""
|
91
73
|
|
92
|
-
|
93
|
-
|
94
|
-
msgstr "Failed to add task to queue: %s"
|
74
|
+
msgid "List all scc_accounts"
|
75
|
+
msgstr ""
|
95
76
|
|
96
|
-
#: ../app/controllers/scc_accounts_controller.rb:68 ../app/controllers/scc_accounts_controller.rb:88
|
97
77
|
msgid "Lock on SCC account already taken: %s"
|
98
78
|
msgstr "Lock on SCC account already taken: %s"
|
99
79
|
|
100
|
-
|
101
|
-
|
80
|
+
msgid "Login id of scc_account"
|
81
|
+
msgstr ""
|
82
|
+
|
83
|
+
msgid "Name of the scc_account"
|
102
84
|
msgstr ""
|
103
85
|
|
104
|
-
#: ../app/controllers/scc_accounts_controller.rb:83
|
105
86
|
msgid "No products selected."
|
106
87
|
msgstr ""
|
107
88
|
|
108
|
-
|
89
|
+
msgid "Password of scc_account"
|
90
|
+
msgstr ""
|
91
|
+
|
92
|
+
msgid "Please sync your SUSE subscriptions first."
|
93
|
+
msgstr "Please sync your SUSE subscriptions first."
|
94
|
+
|
109
95
|
msgid "Product already subscribed!"
|
110
96
|
msgstr "Product already subscribed!"
|
111
97
|
|
112
|
-
|
113
|
-
|
114
|
-
msgstr "Subscribe SCC Product"
|
98
|
+
msgid "Products"
|
99
|
+
msgstr ""
|
115
100
|
|
116
|
-
|
117
|
-
|
118
|
-
msgstr "Sync SUSE subscriptions"
|
101
|
+
msgid "SUSE Customer Center"
|
102
|
+
msgstr "SUSE Customer Center"
|
119
103
|
|
120
|
-
|
121
|
-
|
122
|
-
msgstr ""
|
104
|
+
msgid "SUSE Customer Center account"
|
105
|
+
msgstr "SUSE Customer Center account"
|
123
106
|
|
124
|
-
|
125
|
-
msgid "Unknown"
|
107
|
+
msgid "SUSE Subscription"
|
126
108
|
msgstr ""
|
127
109
|
|
128
|
-
|
129
|
-
msgid "Update SUSE repositories"
|
110
|
+
msgid "SUSE Subscription: "
|
130
111
|
msgstr ""
|
131
112
|
|
132
|
-
|
133
|
-
|
134
|
-
msgstr "Sync SUSE subscriptions (Products)"
|
113
|
+
msgid "SUSE Subscriptions"
|
114
|
+
msgstr "SUSE Subscriptions"
|
135
115
|
|
136
|
-
|
137
|
-
|
138
|
-
msgstr "Sync SUSE subscriptions (Repositories)"
|
116
|
+
msgid "SUSE subscriptions"
|
117
|
+
msgstr "SUSE subscriptions"
|
139
118
|
|
140
|
-
|
141
|
-
msgid "never synced"
|
119
|
+
msgid "Select products"
|
142
120
|
msgstr ""
|
143
121
|
|
144
|
-
|
145
|
-
msgid "Interval cannot be nil"
|
122
|
+
msgid "Show an scc_account product"
|
146
123
|
msgstr ""
|
147
124
|
|
148
|
-
|
149
|
-
msgid "Interval not set correctly"
|
125
|
+
msgid "Show scc_account"
|
150
126
|
msgstr ""
|
151
127
|
|
152
|
-
|
153
|
-
|
154
|
-
msgstr ""
|
128
|
+
msgid "Subscribe SCC Product"
|
129
|
+
msgstr "Subscribe SCC Product"
|
155
130
|
|
156
|
-
|
157
|
-
msgid "SUSE Subscription"
|
131
|
+
msgid "Subscribe product"
|
158
132
|
msgstr ""
|
159
133
|
|
160
|
-
|
161
|
-
|
134
|
+
msgid "Sync"
|
135
|
+
msgstr "Sync"
|
136
|
+
|
137
|
+
msgid "Sync Date"
|
162
138
|
msgstr ""
|
163
139
|
|
164
|
-
|
165
|
-
|
166
|
-
msgstr "SUSE Customer Center account"
|
140
|
+
msgid "Sync SUSE subscriptions"
|
141
|
+
msgstr "Sync SUSE subscriptions"
|
167
142
|
|
168
|
-
|
169
|
-
|
170
|
-
msgstr ""
|
143
|
+
msgid "Sync SUSE subscriptions (Products)"
|
144
|
+
msgstr "Sync SUSE subscriptions (Products)"
|
171
145
|
|
172
|
-
|
173
|
-
|
174
|
-
msgstr "Base URL"
|
146
|
+
msgid "Sync SUSE subscriptions (Repositories)"
|
147
|
+
msgstr "Sync SUSE subscriptions (Repositories)"
|
175
148
|
|
176
|
-
|
177
|
-
msgid "Interval"
|
149
|
+
msgid "Sync interval"
|
178
150
|
msgstr ""
|
179
151
|
|
180
|
-
|
181
|
-
msgid "Sync Date"
|
152
|
+
msgid "Sync scc_account"
|
182
153
|
msgstr ""
|
183
154
|
|
184
|
-
|
185
|
-
|
186
|
-
msgstr "Test Connection"
|
155
|
+
msgid "Sync task started."
|
156
|
+
msgstr "Sync task started."
|
187
157
|
|
188
|
-
|
189
|
-
msgid "Edit %s"
|
158
|
+
msgid "Task to subscribe products started."
|
190
159
|
msgstr ""
|
191
160
|
|
192
|
-
|
193
|
-
|
194
|
-
msgstr "SUSE subscriptions"
|
195
|
-
|
196
|
-
#: ../app/views/scc_accounts/index.html.erb:3
|
197
|
-
msgid "Add SCC account"
|
198
|
-
msgstr "Add SCC account"
|
161
|
+
msgid "Test Connection"
|
162
|
+
msgstr "Test Connection"
|
199
163
|
|
200
|
-
|
201
|
-
msgid "Products"
|
164
|
+
msgid "Test connection for scc_account"
|
202
165
|
msgstr ""
|
203
166
|
|
204
|
-
|
205
|
-
msgid "Last synced"
|
206
|
-
msgstr "Last synced"
|
207
|
-
|
208
|
-
#: ../app/views/scc_accounts/index.html.erb:11
|
209
|
-
msgid "Actions"
|
167
|
+
msgid "The sync interval is used to periodically update the SCC authentication tokens of any imported products."
|
210
168
|
msgstr ""
|
211
169
|
|
212
|
-
|
213
|
-
msgid "Select products"
|
170
|
+
msgid "URL of SUSE for scc_account"
|
214
171
|
msgstr ""
|
215
172
|
|
216
|
-
|
217
|
-
msgid "Sync"
|
218
|
-
msgstr "Sync"
|
219
|
-
|
220
|
-
#: ../app/views/scc_accounts/index.html.erb:28
|
221
|
-
msgid "Delete %s?"
|
173
|
+
msgid "Unknown"
|
222
174
|
msgstr ""
|
223
175
|
|
224
|
-
|
225
|
-
|
226
|
-
msgstr "Add SUSE Customer Center Account"
|
176
|
+
msgid "Update SUSE repositories"
|
177
|
+
msgstr ""
|
227
178
|
|
228
|
-
|
229
|
-
|
230
|
-
msgstr "SUSE Customer Center"
|
179
|
+
msgid "Update SUSE repositories %s"
|
180
|
+
msgstr ""
|
231
181
|
|
232
|
-
|
233
|
-
|
234
|
-
msgstr "Please sync your SUSE subscriptions first."
|
182
|
+
msgid "Update scc_account"
|
183
|
+
msgstr ""
|
235
184
|
|
236
|
-
|
237
|
-
|
238
|
-
msgstr "SUSE Subscriptions"
|
185
|
+
msgid "Use your 'Organization credentials' obtained from the SUSE Customer Center."
|
186
|
+
msgstr ""
|
239
187
|
|
240
|
-
|
241
|
-
|
242
|
-
msgstr "Foreman plugin to sync SUSE Customer Center products and repositories into Katello."
|
188
|
+
msgid "never synced"
|
189
|
+
msgstr ""
|
@@ -8,8 +8,8 @@ msgid ""
|
|
8
8
|
msgstr ""
|
9
9
|
"Project-Id-Version: foreman_scc_manager 1.0.0\n"
|
10
10
|
"Report-Msgid-Bugs-To: \n"
|
11
|
-
"POT-Creation-Date:
|
12
|
-
"PO-Revision-Date:
|
11
|
+
"POT-Creation-Date: 2020-03-02 13:47+0000\n"
|
12
|
+
"PO-Revision-Date: 2020-03-02 13:47+0000\n"
|
13
13
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
14
14
|
"Language-Team: LANGUAGE <LL@li.org>\n"
|
15
15
|
"Language: \n"
|
@@ -116,11 +116,11 @@ msgstr ""
|
|
116
116
|
msgid "Product already subscribed!"
|
117
117
|
msgstr ""
|
118
118
|
|
119
|
-
#: ../app/lib/actions/scc_manager/subscribe_product.rb:35 action_names.rb:
|
119
|
+
#: ../app/lib/actions/scc_manager/subscribe_product.rb:35 action_names.rb:68
|
120
120
|
msgid "Subscribe SCC Product"
|
121
121
|
msgstr ""
|
122
122
|
|
123
|
-
#: ../app/lib/actions/scc_manager/sync.rb:27 action_names.rb:
|
123
|
+
#: ../app/lib/actions/scc_manager/sync.rb:27 action_names.rb:69
|
124
124
|
msgid "Sync SUSE subscriptions"
|
125
125
|
msgstr ""
|
126
126
|
|
@@ -133,15 +133,15 @@ msgid "Unknown"
|
|
133
133
|
msgstr ""
|
134
134
|
|
135
135
|
#: ../app/lib/actions/scc_manager/sync_plan_account_repositories.rb:33
|
136
|
-
#: action_names.rb:
|
136
|
+
#: action_names.rb:70
|
137
137
|
msgid "Update SUSE repositories"
|
138
138
|
msgstr ""
|
139
139
|
|
140
|
-
#: ../app/lib/actions/scc_manager/sync_products.rb:34 action_names.rb:
|
140
|
+
#: ../app/lib/actions/scc_manager/sync_products.rb:34 action_names.rb:71
|
141
141
|
msgid "Sync SUSE subscriptions (Products)"
|
142
142
|
msgstr ""
|
143
143
|
|
144
|
-
#: ../app/lib/actions/scc_manager/sync_repositories.rb:33 action_names.rb:
|
144
|
+
#: ../app/lib/actions/scc_manager/sync_repositories.rb:33 action_names.rb:72
|
145
145
|
msgid "Sync SUSE subscriptions (Repositories)"
|
146
146
|
msgstr ""
|
147
147
|
|
@@ -182,15 +182,21 @@ msgstr ""
|
|
182
182
|
msgid "Base URL"
|
183
183
|
msgstr ""
|
184
184
|
|
185
|
-
#: ../app/views/scc_accounts/_form.html.erb:
|
186
|
-
msgid "
|
185
|
+
#: ../app/views/scc_accounts/_form.html.erb:17
|
186
|
+
msgid "Sync interval"
|
187
187
|
msgstr ""
|
188
188
|
|
189
189
|
#: ../app/views/scc_accounts/_form.html.erb:17
|
190
|
+
msgid ""
|
191
|
+
"The sync interval is used to periodically update the SCC authentication tokens"
|
192
|
+
" of any imported products."
|
193
|
+
msgstr ""
|
194
|
+
|
195
|
+
#: ../app/views/scc_accounts/_form.html.erb:18
|
190
196
|
msgid "Sync Date"
|
191
197
|
msgstr ""
|
192
198
|
|
193
|
-
#: ../app/views/scc_accounts/_form.html.erb:
|
199
|
+
#: ../app/views/scc_accounts/_form.html.erb:25
|
194
200
|
msgid "Test Connection"
|
195
201
|
msgstr ""
|
196
202
|
|
@@ -242,7 +248,7 @@ msgstr ""
|
|
242
248
|
msgid "Please sync your SUSE subscriptions first."
|
243
249
|
msgstr ""
|
244
250
|
|
245
|
-
#: ../lib/foreman_scc_manager/engine.rb:
|
251
|
+
#: ../lib/foreman_scc_manager/engine.rb:66
|
246
252
|
msgid "SUSE Subscriptions"
|
247
253
|
msgstr ""
|
248
254
|
|
@@ -19,3 +19,27 @@ two:
|
|
19
19
|
friendly_name: number two
|
20
20
|
description: lorem ipsum dolor sit amet
|
21
21
|
product_type: extras
|
22
|
+
|
23
|
+
three:
|
24
|
+
scc_account_id: test_account1
|
25
|
+
scc_id: 333
|
26
|
+
name: three
|
27
|
+
version: 3
|
28
|
+
arch: x86_128
|
29
|
+
friendly_name: number three
|
30
|
+
description: lorem ipsum dolor sit amet
|
31
|
+
product_type: base
|
32
|
+
|
33
|
+
# create a couple of products as scc_extensions
|
34
|
+
<% 1.upto(10) do |i| %>
|
35
|
+
p_extension_<%= i %>:
|
36
|
+
scc_account_id: test_account1
|
37
|
+
scc_id: <%= i %>
|
38
|
+
name: p_ext_<%= i%>
|
39
|
+
version: 3
|
40
|
+
arch: x86_128
|
41
|
+
friendly_name: number <%= i%>
|
42
|
+
description: lorem ipsum dolor sit amet
|
43
|
+
product_type: extension
|
44
|
+
<% end %>
|
45
|
+
|
@@ -0,0 +1,15 @@
|
|
1
|
+
# repositories for testing the empty repository filtering
|
2
|
+
<% 1.upto(8) do |i| %>
|
3
|
+
repo_<%= i %>:
|
4
|
+
id: <%= i %>
|
5
|
+
scc_account_id: 1
|
6
|
+
scc_id: <%= 63 + i %>
|
7
|
+
name: SLE10-Debuginfo-Updates_<%= i %>
|
8
|
+
distro_target: sles_<%= i %>
|
9
|
+
description: SLE10-Debuginfo-Updates for sles-10-ppc_<%= i %>
|
10
|
+
url: https://updates.suse.com/repo/example_<%= i %>
|
11
|
+
token: token_<%= i %>
|
12
|
+
autorefresh: true
|
13
|
+
installer_updates: false
|
14
|
+
<% end %>
|
15
|
+
|
@@ -17,7 +17,11 @@ end
|
|
17
17
|
|
18
18
|
class SccProductSearchTest < ActiveSupport::TestCase
|
19
19
|
test 'default ordered by name' do
|
20
|
-
|
20
|
+
product_names = ['one', 'two', 'three',
|
21
|
+
'p_ext_1', 'p_ext_10', 'p_ext_2', 'p_ext_3',
|
22
|
+
'p_ext_4', 'p_ext_5', 'p_ext_6', 'p_ext_7',
|
23
|
+
'p_ext_8', 'p_ext_9']
|
24
|
+
assert_equal SccProduct.all.pluck(:name), product_names.sort
|
21
25
|
end
|
22
26
|
|
23
27
|
test 'search name' do
|
@@ -30,3 +34,54 @@ class SccProductSearchTest < ActiveSupport::TestCase
|
|
30
34
|
assert_empty empty
|
31
35
|
end
|
32
36
|
end
|
37
|
+
|
38
|
+
# These produt extension tests are pre-tests for the class ProductEmptyRepoAvailableTests.
|
39
|
+
# They do not test any direct functionality of the plugin.
|
40
|
+
class SccProductExtensionsTest < ActiveSupport::TestCase
|
41
|
+
def setup
|
42
|
+
@product_with_extensions = scc_products(:one)
|
43
|
+
@product_with_extensions.scc_extensions = scc_products.select { |p| p.product_type == 'extension' }
|
44
|
+
@product_with_wrong_extensions = scc_products(:two)
|
45
|
+
@product_with_wrong_extensions.scc_extensions = [scc_products(:three)]
|
46
|
+
@product_without_extensions = scc_products(:three)
|
47
|
+
end
|
48
|
+
|
49
|
+
test 'check product extensions available' do
|
50
|
+
assert_equal @product_with_extensions.scc_extensions.count, 10
|
51
|
+
assert_not_empty @product_with_extensions.scc_extensions
|
52
|
+
assert_empty @product_without_extensions.scc_extensions
|
53
|
+
end
|
54
|
+
|
55
|
+
test 'product extension of correct type' do
|
56
|
+
assert_empty(@product_with_extensions.scc_extensions.reject { |p| p.product_type == 'extension' })
|
57
|
+
assert_not_empty(@product_with_wrong_extensions.scc_extensions.reject { |p| p.product_type == 'extension' })
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
class SccProductEmptyRepoAvailableTest < ActiveSupport::TestCase
|
62
|
+
def setup
|
63
|
+
@product_with_repos = scc_products(:one)
|
64
|
+
@product_with_repos.scc_extensions = scc_products.select { |p| p.product_type == 'extension' }
|
65
|
+
@product_with_repos.scc_repositories = scc_repositories[0..2]
|
66
|
+
@product_with_repos.scc_extensions[1].scc_repositories = scc_repositories[3..4]
|
67
|
+
@product_with_repos.scc_extensions[2].scc_repositories = scc_repositories[5..7]
|
68
|
+
end
|
69
|
+
|
70
|
+
test 'products with empty repositories' do
|
71
|
+
products_with_repos = SccProduct.only_products_with_repos
|
72
|
+
assert_equal SccProduct.all.count { |prod| !prod.scc_repositories.empty? }, 3
|
73
|
+
assert_equal products_with_repos.count, 3
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
77
|
+
class SccProductNoRepoTest < ActiveSupport::TestCase
|
78
|
+
def setup
|
79
|
+
@product_with_repos = scc_products(:one)
|
80
|
+
@product_with_repos.scc_extensions = scc_products.select { |p| p.product_type == 'extension' }
|
81
|
+
end
|
82
|
+
|
83
|
+
test 'products without any repositories' do
|
84
|
+
products_with_repos = SccProduct.only_products_with_repos
|
85
|
+
assert_empty products_with_repos
|
86
|
+
end
|
87
|
+
end
|