foreman_ansible 5.0.1 → 5.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/models/foreman_ansible/ansible_provider.rb +8 -0
- data/app/models/setting/ansible.rb +1 -1
- data/app/services/foreman_ansible/operating_system_parser.rb +1 -1
- data/app/services/foreman_ansible/variables_importer.rb +8 -9
- data/app/views/foreman_ansible/job_templates/capsule_upgrade_-_ansible_default.erb +71 -0
- data/app/views/foreman_ansible/job_templates/{connect_red_hat_receptor_controller_-_ansible_default.erb → configure_cloud_connector_-_ansible_default.erb} +5 -2
- data/db/migrate/20200421201839_update_ansible_inv_template_name.rb +9 -0
- data/db/seeds.d/75_job_templates.rb +1 -1
- data/lib/foreman_ansible/engine.rb +22 -25
- data/lib/foreman_ansible/remote_execution.rb +11 -0
- data/lib/foreman_ansible/version.rb +1 -1
- data/locale/action_names.rb +3 -3
- data/locale/ca/LC_MESSAGES/foreman_ansible.mo +0 -0
- data/locale/ca/foreman_ansible.po +556 -0
- data/locale/cs_CZ/LC_MESSAGES/foreman_ansible.mo +0 -0
- data/locale/cs_CZ/foreman_ansible.po +556 -0
- data/locale/de/LC_MESSAGES/foreman_ansible.mo +0 -0
- data/locale/de/foreman_ansible.po +38 -33
- data/locale/en/LC_MESSAGES/foreman_ansible.mo +0 -0
- data/locale/en/foreman_ansible.po +38 -33
- data/locale/en_GB/LC_MESSAGES/foreman_ansible.mo +0 -0
- data/locale/en_GB/foreman_ansible.po +555 -0
- data/locale/es/LC_MESSAGES/foreman_ansible.mo +0 -0
- data/locale/es/foreman_ansible.po +38 -33
- data/locale/foreman_ansible.pot +96 -88
- data/locale/fr/LC_MESSAGES/foreman_ansible.mo +0 -0
- data/locale/fr/foreman_ansible.po +38 -33
- data/locale/gl/LC_MESSAGES/foreman_ansible.mo +0 -0
- data/locale/gl/foreman_ansible.po +553 -0
- data/locale/it/LC_MESSAGES/foreman_ansible.mo +0 -0
- data/locale/it/foreman_ansible.po +38 -33
- data/locale/ja/LC_MESSAGES/foreman_ansible.mo +0 -0
- data/locale/ja/foreman_ansible.po +38 -33
- data/locale/ko/LC_MESSAGES/foreman_ansible.mo +0 -0
- data/locale/ko/foreman_ansible.po +38 -33
- data/locale/nl_NL/LC_MESSAGES/foreman_ansible.mo +0 -0
- data/locale/nl_NL/foreman_ansible.po +559 -0
- data/locale/pl/LC_MESSAGES/foreman_ansible.mo +0 -0
- data/locale/pl/foreman_ansible.po +556 -0
- data/locale/pt_BR/LC_MESSAGES/foreman_ansible.mo +0 -0
- data/locale/pt_BR/foreman_ansible.po +38 -33
- data/locale/ru/LC_MESSAGES/foreman_ansible.mo +0 -0
- data/locale/ru/foreman_ansible.po +38 -33
- data/locale/sv_SE/LC_MESSAGES/foreman_ansible.mo +0 -0
- data/locale/sv_SE/foreman_ansible.po +556 -0
- data/locale/zh_CN/LC_MESSAGES/foreman_ansible.mo +0 -0
- data/locale/zh_CN/foreman_ansible.po +38 -33
- data/locale/zh_TW/LC_MESSAGES/foreman_ansible.mo +0 -0
- data/locale/zh_TW/foreman_ansible.po +38 -33
- data/test/factories/ansible_variables.rb +5 -0
- data/test/unit/services/ansible_variables_importer_test.rb +68 -43
- metadata +55 -61
- data/locale/de/foreman_ansible.edit.po +0 -825
- data/locale/de/foreman_ansible.po.time_stamp +0 -0
- data/locale/en/foreman_ansible.edit.po +0 -714
- data/locale/en/foreman_ansible.po.time_stamp +0 -0
- data/locale/es/foreman_ansible.edit.po +0 -845
- data/locale/es/foreman_ansible.po.time_stamp +0 -0
- data/locale/fr/foreman_ansible.edit.po +0 -847
- data/locale/fr/foreman_ansible.po.time_stamp +0 -0
- data/locale/it/foreman_ansible.edit.po +0 -818
- data/locale/it/foreman_ansible.po.time_stamp +0 -0
- data/locale/ja/foreman_ansible.edit.po +0 -818
- data/locale/ja/foreman_ansible.po.time_stamp +0 -0
- data/locale/ko/foreman_ansible.edit.po +0 -804
- data/locale/ko/foreman_ansible.po.time_stamp +0 -0
- data/locale/pt_BR/foreman_ansible.edit.po +0 -845
- data/locale/pt_BR/foreman_ansible.po.time_stamp +0 -0
- data/locale/ru/foreman_ansible.edit.po +0 -819
- data/locale/ru/foreman_ansible.po.time_stamp +0 -0
- data/locale/zh_CN/foreman_ansible.edit.po +0 -813
- data/locale/zh_CN/foreman_ansible.po.time_stamp +0 -0
- data/locale/zh_TW/foreman_ansible.edit.po +0 -804
- data/locale/zh_TW/foreman_ansible.po.time_stamp +0 -0
Binary file
|
@@ -5,7 +5,7 @@
|
|
5
5
|
#
|
6
6
|
msgid ""
|
7
7
|
msgstr ""
|
8
|
-
"Project-Id-Version: foreman_ansible
|
8
|
+
"Project-Id-Version: foreman_ansible 5.0.1\n"
|
9
9
|
"Report-Msgid-Bugs-To: \n"
|
10
10
|
"PO-Revision-Date: 2018-03-12 12:24-0400\n"
|
11
11
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
@@ -131,6 +131,9 @@ msgstr ""
|
|
131
131
|
msgid "Create an override value for a specific ansible variable"
|
132
132
|
msgstr ""
|
133
133
|
|
134
|
+
msgid "Default Ansible inventory report template"
|
135
|
+
msgstr ""
|
136
|
+
|
134
137
|
msgid "Default Behavior"
|
135
138
|
msgstr ""
|
136
139
|
|
@@ -179,10 +182,13 @@ msgstr ""
|
|
179
182
|
msgid "Foreman"
|
180
183
|
msgstr ""
|
181
184
|
|
182
|
-
msgid "Foreman will add
|
185
|
+
msgid "Foreman will add this level of verbosity for additional debugging output when running Ansible playbooks."
|
186
|
+
msgstr ""
|
187
|
+
|
188
|
+
msgid "Foreman will use this template to schedule the report with Ansible inventory"
|
183
189
|
msgstr ""
|
184
190
|
|
185
|
-
msgid "
|
191
|
+
msgid "Hash of input values of type input=>value"
|
186
192
|
msgstr ""
|
187
193
|
|
188
194
|
msgid "Hidden Value"
|
@@ -224,9 +230,6 @@ msgstr ""
|
|
224
230
|
msgid "If checked, will raise an error if there is no default value and no matcher provide a value."
|
225
231
|
msgstr ""
|
226
232
|
|
227
|
-
msgid "Implementation for running Ansible"
|
228
|
-
msgstr ""
|
229
|
-
|
230
233
|
msgid "Import"
|
231
234
|
msgstr ""
|
232
235
|
|
@@ -248,13 +251,6 @@ msgstr ""
|
|
248
251
|
msgid "Import of roles successfully finished."
|
249
252
|
msgstr ""
|
250
253
|
|
251
|
-
msgid ""
|
252
|
-
"Import of variables successfully finished.\n"
|
253
|
-
"Added: #{results[:added].count} \n"
|
254
|
-
" Removed: #{results[:obsolete].count} \n"
|
255
|
-
"Updated: #{results[:updated].count}"
|
256
|
-
msgstr ""
|
257
|
-
|
258
254
|
msgid "Imported at"
|
259
255
|
msgstr ""
|
260
256
|
|
@@ -383,69 +379,78 @@ msgstr ""
|
|
383
379
|
msgid "Overriden"
|
384
380
|
msgstr ""
|
385
381
|
|
386
|
-
msgid "
|
382
|
+
msgid "Post-provision timeout"
|
387
383
|
msgstr ""
|
388
384
|
|
389
|
-
msgid "
|
385
|
+
msgid "Prioritize Attribute Order"
|
390
386
|
msgstr ""
|
391
387
|
|
392
|
-
msgid "
|
388
|
+
msgid "Private Key Path"
|
393
389
|
msgstr ""
|
394
390
|
|
395
|
-
msgid "
|
391
|
+
msgid "Proxy not found"
|
396
392
|
msgstr ""
|
397
393
|
|
398
|
-
msgid "
|
394
|
+
msgid "Remediation Plan"
|
399
395
|
msgstr ""
|
400
396
|
|
401
|
-
msgid "
|
397
|
+
msgid "Remote action:"
|
402
398
|
msgstr ""
|
403
399
|
|
404
|
-
msgid "
|
400
|
+
msgid "Remove"
|
405
401
|
msgstr ""
|
406
402
|
|
407
|
-
msgid "
|
403
|
+
msgid "Remove duplicate values (only array type)"
|
408
404
|
msgstr ""
|
409
405
|
|
410
|
-
msgid "
|
406
|
+
msgid "Report format, defaults to '%s'"
|
411
407
|
msgstr ""
|
412
408
|
|
413
|
-
msgid "
|
409
|
+
msgid "Role ID"
|
414
410
|
msgstr ""
|
415
411
|
|
416
|
-
msgid "
|
412
|
+
msgid "Roles"
|
417
413
|
msgstr ""
|
418
414
|
|
419
|
-
msgid "
|
415
|
+
msgid "Role|Name"
|
420
416
|
msgstr ""
|
421
417
|
|
422
|
-
msgid "
|
418
|
+
msgid "Run Ansible roles"
|
423
419
|
msgstr ""
|
424
420
|
|
425
|
-
msgid "
|
421
|
+
msgid "Run all Ansible roles"
|
426
422
|
msgstr ""
|
427
423
|
|
428
|
-
msgid "
|
424
|
+
msgid "Run all Ansible roles on hosts belonging to this host group"
|
429
425
|
msgstr ""
|
430
426
|
|
431
|
-
msgid "
|
427
|
+
msgid "Run an Ansible playbook against given hosts"
|
432
428
|
msgstr ""
|
433
429
|
|
434
|
-
msgid "
|
430
|
+
msgid "Run playbook"
|
435
431
|
msgstr ""
|
436
432
|
|
437
|
-
msgid "
|
433
|
+
msgid "Runs a given maintenance plan from Red Hat Access Insights given an ID."
|
438
434
|
msgstr ""
|
439
435
|
|
440
|
-
msgid "
|
436
|
+
msgid "Runs all Ansible roles on a host"
|
441
437
|
msgstr ""
|
442
438
|
|
443
|
-
msgid "Runs
|
439
|
+
msgid "Runs all Ansible roles on a hostgroup"
|
440
|
+
msgstr ""
|
441
|
+
|
442
|
+
msgid "Runs all Ansible roles on hostgroups"
|
443
|
+
msgstr ""
|
444
|
+
|
445
|
+
msgid "Runs all Ansible roles on hosts"
|
444
446
|
msgstr ""
|
445
447
|
|
446
448
|
msgid "Runs an Ansible playbook which contains all the roles defined for a host"
|
447
449
|
msgstr ""
|
448
450
|
|
451
|
+
msgid "Schedule generating of Ansible Inventory report"
|
452
|
+
msgstr ""
|
453
|
+
|
449
454
|
msgid "Select the changes you want to realize in Foreman"
|
450
455
|
msgstr ""
|
451
456
|
|
Binary file
|
@@ -5,7 +5,7 @@
|
|
5
5
|
#
|
6
6
|
msgid ""
|
7
7
|
msgstr ""
|
8
|
-
"Project-Id-Version: foreman_ansible
|
8
|
+
"Project-Id-Version: foreman_ansible 5.0.1\n"
|
9
9
|
"Report-Msgid-Bugs-To: \n"
|
10
10
|
"PO-Revision-Date: 2018-03-12 12:24-0400\n"
|
11
11
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
@@ -131,6 +131,9 @@ msgstr ""
|
|
131
131
|
msgid "Create an override value for a specific ansible variable"
|
132
132
|
msgstr ""
|
133
133
|
|
134
|
+
msgid "Default Ansible inventory report template"
|
135
|
+
msgstr ""
|
136
|
+
|
134
137
|
msgid "Default Behavior"
|
135
138
|
msgstr ""
|
136
139
|
|
@@ -179,10 +182,13 @@ msgstr ""
|
|
179
182
|
msgid "Foreman"
|
180
183
|
msgstr ""
|
181
184
|
|
182
|
-
msgid "Foreman will add
|
185
|
+
msgid "Foreman will add this level of verbosity for additional debugging output when running Ansible playbooks."
|
186
|
+
msgstr ""
|
187
|
+
|
188
|
+
msgid "Foreman will use this template to schedule the report with Ansible inventory"
|
183
189
|
msgstr ""
|
184
190
|
|
185
|
-
msgid "
|
191
|
+
msgid "Hash of input values of type input=>value"
|
186
192
|
msgstr ""
|
187
193
|
|
188
194
|
msgid "Hidden Value"
|
@@ -224,9 +230,6 @@ msgstr ""
|
|
224
230
|
msgid "If checked, will raise an error if there is no default value and no matcher provide a value."
|
225
231
|
msgstr ""
|
226
232
|
|
227
|
-
msgid "Implementation for running Ansible"
|
228
|
-
msgstr ""
|
229
|
-
|
230
233
|
msgid "Import"
|
231
234
|
msgstr ""
|
232
235
|
|
@@ -248,13 +251,6 @@ msgstr ""
|
|
248
251
|
msgid "Import of roles successfully finished."
|
249
252
|
msgstr ""
|
250
253
|
|
251
|
-
msgid ""
|
252
|
-
"Import of variables successfully finished.\n"
|
253
|
-
"Added: #{results[:added].count} \n"
|
254
|
-
" Removed: #{results[:obsolete].count} \n"
|
255
|
-
"Updated: #{results[:updated].count}"
|
256
|
-
msgstr ""
|
257
|
-
|
258
254
|
msgid "Imported at"
|
259
255
|
msgstr ""
|
260
256
|
|
@@ -383,69 +379,78 @@ msgstr ""
|
|
383
379
|
msgid "Overriden"
|
384
380
|
msgstr ""
|
385
381
|
|
386
|
-
msgid "
|
382
|
+
msgid "Post-provision timeout"
|
387
383
|
msgstr ""
|
388
384
|
|
389
|
-
msgid "
|
385
|
+
msgid "Prioritize Attribute Order"
|
390
386
|
msgstr ""
|
391
387
|
|
392
|
-
msgid "
|
388
|
+
msgid "Private Key Path"
|
393
389
|
msgstr ""
|
394
390
|
|
395
|
-
msgid "
|
391
|
+
msgid "Proxy not found"
|
396
392
|
msgstr ""
|
397
393
|
|
398
|
-
msgid "
|
394
|
+
msgid "Remediation Plan"
|
399
395
|
msgstr ""
|
400
396
|
|
401
|
-
msgid "
|
397
|
+
msgid "Remote action:"
|
402
398
|
msgstr ""
|
403
399
|
|
404
|
-
msgid "
|
400
|
+
msgid "Remove"
|
405
401
|
msgstr ""
|
406
402
|
|
407
|
-
msgid "
|
403
|
+
msgid "Remove duplicate values (only array type)"
|
408
404
|
msgstr ""
|
409
405
|
|
410
|
-
msgid "
|
406
|
+
msgid "Report format, defaults to '%s'"
|
411
407
|
msgstr ""
|
412
408
|
|
413
|
-
msgid "
|
409
|
+
msgid "Role ID"
|
414
410
|
msgstr ""
|
415
411
|
|
416
|
-
msgid "
|
412
|
+
msgid "Roles"
|
417
413
|
msgstr ""
|
418
414
|
|
419
|
-
msgid "
|
415
|
+
msgid "Role|Name"
|
420
416
|
msgstr ""
|
421
417
|
|
422
|
-
msgid "
|
418
|
+
msgid "Run Ansible roles"
|
423
419
|
msgstr ""
|
424
420
|
|
425
|
-
msgid "
|
421
|
+
msgid "Run all Ansible roles"
|
426
422
|
msgstr ""
|
427
423
|
|
428
|
-
msgid "
|
424
|
+
msgid "Run all Ansible roles on hosts belonging to this host group"
|
429
425
|
msgstr ""
|
430
426
|
|
431
|
-
msgid "
|
427
|
+
msgid "Run an Ansible playbook against given hosts"
|
432
428
|
msgstr ""
|
433
429
|
|
434
|
-
msgid "
|
430
|
+
msgid "Run playbook"
|
435
431
|
msgstr ""
|
436
432
|
|
437
|
-
msgid "
|
433
|
+
msgid "Runs a given maintenance plan from Red Hat Access Insights given an ID."
|
438
434
|
msgstr ""
|
439
435
|
|
440
|
-
msgid "
|
436
|
+
msgid "Runs all Ansible roles on a host"
|
441
437
|
msgstr ""
|
442
438
|
|
443
|
-
msgid "Runs
|
439
|
+
msgid "Runs all Ansible roles on a hostgroup"
|
440
|
+
msgstr ""
|
441
|
+
|
442
|
+
msgid "Runs all Ansible roles on hostgroups"
|
443
|
+
msgstr ""
|
444
|
+
|
445
|
+
msgid "Runs all Ansible roles on hosts"
|
444
446
|
msgstr ""
|
445
447
|
|
446
448
|
msgid "Runs an Ansible playbook which contains all the roles defined for a host"
|
447
449
|
msgstr ""
|
448
450
|
|
451
|
+
msgid "Schedule generating of Ansible Inventory report"
|
452
|
+
msgstr ""
|
453
|
+
|
449
454
|
msgid "Select the changes you want to realize in Foreman"
|
450
455
|
msgstr ""
|
451
456
|
|
Binary file
|
@@ -5,7 +5,7 @@
|
|
5
5
|
#
|
6
6
|
msgid ""
|
7
7
|
msgstr ""
|
8
|
-
"Project-Id-Version: foreman_ansible
|
8
|
+
"Project-Id-Version: foreman_ansible 5.0.1\n"
|
9
9
|
"Report-Msgid-Bugs-To: \n"
|
10
10
|
"PO-Revision-Date: 2018-03-12 12:24-0400\n"
|
11
11
|
"Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
|
@@ -131,6 +131,9 @@ msgstr ""
|
|
131
131
|
msgid "Create an override value for a specific ansible variable"
|
132
132
|
msgstr ""
|
133
133
|
|
134
|
+
msgid "Default Ansible inventory report template"
|
135
|
+
msgstr ""
|
136
|
+
|
134
137
|
msgid "Default Behavior"
|
135
138
|
msgstr ""
|
136
139
|
|
@@ -179,10 +182,13 @@ msgstr ""
|
|
179
182
|
msgid "Foreman"
|
180
183
|
msgstr ""
|
181
184
|
|
182
|
-
msgid "Foreman will add
|
185
|
+
msgid "Foreman will add this level of verbosity for additional debugging output when running Ansible playbooks."
|
186
|
+
msgstr ""
|
187
|
+
|
188
|
+
msgid "Foreman will use this template to schedule the report with Ansible inventory"
|
183
189
|
msgstr ""
|
184
190
|
|
185
|
-
msgid "
|
191
|
+
msgid "Hash of input values of type input=>value"
|
186
192
|
msgstr ""
|
187
193
|
|
188
194
|
msgid "Hidden Value"
|
@@ -224,9 +230,6 @@ msgstr ""
|
|
224
230
|
msgid "If checked, will raise an error if there is no default value and no matcher provide a value."
|
225
231
|
msgstr ""
|
226
232
|
|
227
|
-
msgid "Implementation for running Ansible"
|
228
|
-
msgstr ""
|
229
|
-
|
230
233
|
msgid "Import"
|
231
234
|
msgstr ""
|
232
235
|
|
@@ -248,13 +251,6 @@ msgstr ""
|
|
248
251
|
msgid "Import of roles successfully finished."
|
249
252
|
msgstr ""
|
250
253
|
|
251
|
-
msgid ""
|
252
|
-
"Import of variables successfully finished.\n"
|
253
|
-
"Added: #{results[:added].count} \n"
|
254
|
-
" Removed: #{results[:obsolete].count} \n"
|
255
|
-
"Updated: #{results[:updated].count}"
|
256
|
-
msgstr ""
|
257
|
-
|
258
254
|
msgid "Imported at"
|
259
255
|
msgstr ""
|
260
256
|
|
@@ -383,69 +379,78 @@ msgstr ""
|
|
383
379
|
msgid "Overriden"
|
384
380
|
msgstr ""
|
385
381
|
|
386
|
-
msgid "
|
382
|
+
msgid "Post-provision timeout"
|
387
383
|
msgstr ""
|
388
384
|
|
389
|
-
msgid "
|
385
|
+
msgid "Prioritize Attribute Order"
|
390
386
|
msgstr ""
|
391
387
|
|
392
|
-
msgid "
|
388
|
+
msgid "Private Key Path"
|
393
389
|
msgstr ""
|
394
390
|
|
395
|
-
msgid "
|
391
|
+
msgid "Proxy not found"
|
396
392
|
msgstr ""
|
397
393
|
|
398
|
-
msgid "
|
394
|
+
msgid "Remediation Plan"
|
399
395
|
msgstr ""
|
400
396
|
|
401
|
-
msgid "
|
397
|
+
msgid "Remote action:"
|
402
398
|
msgstr ""
|
403
399
|
|
404
|
-
msgid "
|
400
|
+
msgid "Remove"
|
405
401
|
msgstr ""
|
406
402
|
|
407
|
-
msgid "
|
403
|
+
msgid "Remove duplicate values (only array type)"
|
408
404
|
msgstr ""
|
409
405
|
|
410
|
-
msgid "
|
406
|
+
msgid "Report format, defaults to '%s'"
|
411
407
|
msgstr ""
|
412
408
|
|
413
|
-
msgid "
|
409
|
+
msgid "Role ID"
|
414
410
|
msgstr ""
|
415
411
|
|
416
|
-
msgid "
|
412
|
+
msgid "Roles"
|
417
413
|
msgstr ""
|
418
414
|
|
419
|
-
msgid "
|
415
|
+
msgid "Role|Name"
|
420
416
|
msgstr ""
|
421
417
|
|
422
|
-
msgid "
|
418
|
+
msgid "Run Ansible roles"
|
423
419
|
msgstr ""
|
424
420
|
|
425
|
-
msgid "
|
421
|
+
msgid "Run all Ansible roles"
|
426
422
|
msgstr ""
|
427
423
|
|
428
|
-
msgid "
|
424
|
+
msgid "Run all Ansible roles on hosts belonging to this host group"
|
429
425
|
msgstr ""
|
430
426
|
|
431
|
-
msgid "
|
427
|
+
msgid "Run an Ansible playbook against given hosts"
|
432
428
|
msgstr ""
|
433
429
|
|
434
|
-
msgid "
|
430
|
+
msgid "Run playbook"
|
435
431
|
msgstr ""
|
436
432
|
|
437
|
-
msgid "
|
433
|
+
msgid "Runs a given maintenance plan from Red Hat Access Insights given an ID."
|
438
434
|
msgstr ""
|
439
435
|
|
440
|
-
msgid "
|
436
|
+
msgid "Runs all Ansible roles on a host"
|
441
437
|
msgstr ""
|
442
438
|
|
443
|
-
msgid "Runs
|
439
|
+
msgid "Runs all Ansible roles on a hostgroup"
|
440
|
+
msgstr ""
|
441
|
+
|
442
|
+
msgid "Runs all Ansible roles on hostgroups"
|
443
|
+
msgstr ""
|
444
|
+
|
445
|
+
msgid "Runs all Ansible roles on hosts"
|
444
446
|
msgstr ""
|
445
447
|
|
446
448
|
msgid "Runs an Ansible playbook which contains all the roles defined for a host"
|
447
449
|
msgstr ""
|
448
450
|
|
451
|
+
msgid "Schedule generating of Ansible Inventory report"
|
452
|
+
msgstr ""
|
453
|
+
|
449
454
|
msgid "Select the changes you want to realize in Foreman"
|
450
455
|
msgstr ""
|
451
456
|
|