katello 4.2.0.rc1 → 4.2.0.rc2

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 (98) hide show
  1. checksums.yaml +4 -4
  2. data/app/controllers/katello/api/rhsm/candlepin_dynflow_proxy_controller.rb +20 -2
  3. data/app/controllers/katello/api/v2/content_uploads_controller.rb +2 -1
  4. data/app/controllers/katello/api/v2/repositories_controller.rb +1 -0
  5. data/app/lib/actions/katello/content_view_version/create_repos.rb +1 -1
  6. data/app/lib/actions/katello/host/upload_package_profile.rb +7 -21
  7. data/app/lib/actions/katello/host/upload_profiles.rb +6 -52
  8. data/app/lib/actions/katello/orphan_cleanup/remove_orphans.rb +2 -0
  9. data/app/lib/actions/katello/repository/clone_to_environment.rb +1 -1
  10. data/app/lib/actions/katello/repository/create.rb +8 -4
  11. data/app/lib/actions/katello/repository/create_root.rb +1 -1
  12. data/app/lib/actions/katello/repository/import_upload.rb +6 -1
  13. data/app/lib/actions/katello/repository/upload_files.rb +6 -8
  14. data/app/lib/actions/katello/repository_set/enable_repository.rb +1 -1
  15. data/app/lib/actions/pulp3/orchestration/repository/create.rb +2 -2
  16. data/app/lib/actions/pulp3/orchestration/repository/import_upload.rb +25 -4
  17. data/app/lib/actions/pulp3/orchestration/repository/upload_content.rb +17 -5
  18. data/app/lib/actions/pulp3/repository/commit_upload.rb +25 -2
  19. data/app/lib/actions/pulp3/repository/create.rb +4 -3
  20. data/app/lib/actions/pulp3/repository/refresh_distribution.rb +5 -2
  21. data/app/lib/actions/pulp3/repository/save_artifact.rb +8 -1
  22. data/app/lib/actions/pulp3/repository/update_remote.rb +7 -4
  23. data/app/lib/actions/pulp3/repository/upload_file.rb +29 -3
  24. data/app/models/katello/concerns/host_managed_extensions.rb +14 -1
  25. data/app/models/katello/content_view.rb +1 -1
  26. data/app/models/katello/content_view_repository.rb +3 -2
  27. data/app/models/katello/content_view_version.rb +5 -3
  28. data/app/models/katello/erratum.rb +2 -2
  29. data/app/models/katello/host/content_facet.rb +7 -2
  30. data/app/models/katello/repository.rb +1 -1
  31. data/app/models/katello/root_repository.rb +10 -6
  32. data/app/models/setting/content.rb +3 -1
  33. data/app/services/katello/applicability/applicable_content_helper.rb +2 -1
  34. data/app/services/katello/host/package_profile_uploader.rb +41 -0
  35. data/app/services/katello/host/profiles_uploader.rb +74 -0
  36. data/app/services/katello/pulp3/api/core.rb +4 -0
  37. data/app/services/katello/pulp3/repository/ansible_collection.rb +5 -9
  38. data/app/services/katello/pulp3/repository/yum.rb +17 -4
  39. data/app/services/katello/pulp3/repository.rb +42 -8
  40. data/app/services/katello/pulp3/repository_mirror.rb +1 -1
  41. data/app/views/katello/api/v2/repositories/show.json.rabl +1 -0
  42. data/app/views/smart_proxies/plugins/_pulpcore.html.erb +1 -1
  43. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/apply-errata.controller.js +1 -1
  44. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/views/apply-errata-confirm.html +1 -2
  45. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/repository-details-info.controller.js +7 -0
  46. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-info.html +2 -2
  47. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/new/new-repository.controller.js +6 -0
  48. data/lib/katello/tasks/repository.rake +4 -3
  49. data/lib/katello/version.rb +1 -1
  50. data/locale/bn/katello.po +1 -1
  51. data/locale/bn/katello.po.time_stamp +0 -0
  52. data/locale/cs/katello.po +1 -1
  53. data/locale/cs/katello.po.time_stamp +0 -0
  54. data/locale/de/katello.po +1 -1
  55. data/locale/de/katello.po.time_stamp +0 -0
  56. data/locale/en/katello.po +1 -1
  57. data/locale/en/katello.po.time_stamp +0 -0
  58. data/locale/es/katello.po +1 -1
  59. data/locale/es/katello.po.time_stamp +0 -0
  60. data/locale/fr/katello.po +1 -1
  61. data/locale/fr/katello.po.time_stamp +0 -0
  62. data/locale/gu/katello.po +1 -1
  63. data/locale/gu/katello.po.time_stamp +0 -0
  64. data/locale/hi/katello.po +1 -1
  65. data/locale/hi/katello.po.time_stamp +0 -0
  66. data/locale/it/katello.po +1 -1
  67. data/locale/it/katello.po.time_stamp +0 -0
  68. data/locale/ja/katello.po +1 -1
  69. data/locale/ja/katello.po.time_stamp +0 -0
  70. data/locale/katello.pot +1 -1
  71. data/locale/kn/katello.po +1 -1
  72. data/locale/kn/katello.po.time_stamp +0 -0
  73. data/locale/ko/katello.po +1 -1
  74. data/locale/ko/katello.po.time_stamp +0 -0
  75. data/locale/mr/katello.po +1 -1
  76. data/locale/mr/katello.po.time_stamp +0 -0
  77. data/locale/or/katello.po +1 -1
  78. data/locale/or/katello.po.time_stamp +0 -0
  79. data/locale/pa/katello.po +1 -1
  80. data/locale/pa/katello.po.time_stamp +0 -0
  81. data/locale/pt/katello.po +1 -1
  82. data/locale/pt/katello.po.time_stamp +0 -0
  83. data/locale/pt_BR/katello.po +1 -1
  84. data/locale/pt_BR/katello.po.time_stamp +0 -0
  85. data/locale/ru/katello.po +1 -1
  86. data/locale/ru/katello.po.time_stamp +0 -0
  87. data/locale/ta/katello.po +1 -1
  88. data/locale/ta/katello.po.time_stamp +0 -0
  89. data/locale/te/katello.po +1 -1
  90. data/locale/te/katello.po.time_stamp +0 -0
  91. data/locale/zh_CN/katello.po +1 -1
  92. data/locale/zh_CN/katello.po.time_stamp +0 -0
  93. data/locale/zh_TW/katello.po +1 -1
  94. data/locale/zh_TW/katello.po.time_stamp +0 -0
  95. data/webpack/components/AddedStatusLabel.js +5 -0
  96. data/webpack/scenes/ContentViews/Details/ComponentContentViews/ContentViewComponents.js +1 -1
  97. data/webpack/scenes/ContentViews/Table/ContentViewsTable.js +1 -1
  98. metadata +26 -2
@@ -319,6 +319,11 @@ module Katello
319
319
  dest_repo_map[:content_unit_hrefs] = content_unit_hrefs.uniq.sort
320
320
  end
321
321
 
322
+ errata_to_include = errata_to_include_from_map(repo_id_map)
323
+ repo_id_map.each do |_, dest_repo_map|
324
+ dest_repo_map[:content_unit_hrefs] |= errata_to_include.flat_map { |erratum| erratum.repository_errata.pluck(:erratum_pulp3_href) }
325
+ end
326
+
322
327
  dependency_solving = options[:solve_dependencies] || false
323
328
 
324
329
  multi_copy_units(repo_id_map, dependency_solving)
@@ -353,13 +358,19 @@ module Katello
353
358
  blacklist_ids += modular_packages(source_repository, exclusion_modular_filters) unless exclusion_modular_filters.empty?
354
359
  content_unit_hrefs = whitelist_ids - blacklist_ids
355
360
  if content_unit_hrefs.any?
356
- content_unit_hrefs += additional_content_hrefs(source_repository, content_unit_hrefs)
361
+ content_unit_hrefs += additional_content_hrefs(source_repository, content_unit_hrefs, true)
357
362
  end
358
363
  content_unit_hrefs += source_repository.srpms.pluck(:pulp_id)
359
364
  dependency_solving = options[:solve_dependencies] || false
360
365
  copy_units(source_repository, content_unit_hrefs.uniq, dependency_solving)
361
366
  end
362
367
 
368
+ def errata_to_include_from_map(repo_id_map)
369
+ all_errata = ::Katello::Erratum.in_repositories(repo_id_map.keys.flatten.uniq)
370
+ all_content_units = repo_id_map.values.pluck(:content_unit_hrefs).flatten.uniq
371
+ filter_errata_by_pulp_href(all_errata, all_content_units)
372
+ end
373
+
363
374
  def modular_packages(source_repository, filters)
364
375
  list_ids = []
365
376
  filters.each do |filter|
@@ -368,12 +379,14 @@ module Katello
368
379
  list_ids
369
380
  end
370
381
 
371
- def additional_content_hrefs(source_repository, content_unit_hrefs)
382
+ def additional_content_hrefs(source_repository, content_unit_hrefs, copy_errata = false)
372
383
  repo_service = source_repository.backend_service(SmartProxy.pulp_primary)
373
384
  options = { :repository_version => source_repository.version_href }
374
385
 
375
- errata_to_include = filter_errata_by_pulp_href(source_repository.errata, content_unit_hrefs)
376
- content_unit_hrefs += errata_to_include.collect { |erratum| erratum.repository_errata.pluck(:erratum_pulp3_href) }.flatten
386
+ if copy_errata
387
+ errata_to_include = filter_errata_by_pulp_href(source_repository.errata, content_unit_hrefs)
388
+ content_unit_hrefs += errata_to_include.collect { |erratum| erratum.repository_errata.pluck(:erratum_pulp3_href) }.flatten
389
+ end
377
390
 
378
391
  package_groups_to_include = filter_package_groups_by_pulp_href(source_repository.package_groups, content_unit_hrefs)
379
392
  content_unit_hrefs += package_groups_to_include.pluck(:pulp_id)
@@ -75,8 +75,39 @@ module Katello
75
75
 
76
76
  def create_remote
77
77
  remote_file_data = api.class.remote_class.new(remote_options)
78
- response = api.remotes_api.create(remote_file_data)
79
- repo.update!(:remote_href => response.pulp_href)
78
+ reformat_api_exception do
79
+ response = api.remotes_api.create(remote_file_data)
80
+ repo.update!(:remote_href => response.pulp_href)
81
+ end
82
+ end
83
+
84
+ # When updating a repository, we need to update the remote, but this is
85
+ # an async task. If some validation occurs, we won't know about it until
86
+ # the task runs. Errors during a repository update task are very difficult to
87
+ # handle once the task is in its run phase, so this creates a test remote
88
+ # with a random name in order to validate the remote's configuration
89
+ def create_test_remote
90
+ test_remote_options = remote_options
91
+ test_remote_options[:name] = test_remote_name
92
+ remote_file_data = api.class.remote_class.new(test_remote_options)
93
+
94
+ reformat_api_exception do
95
+ response = api.remotes_api.create(remote_file_data)
96
+ #delete is async, but if its not properly deleted, orphan cleanup will take care of it later
97
+ delete_remote(response.pulp_href)
98
+ end
99
+ end
100
+
101
+ def test_remote_name
102
+ "test_remote_#{SecureRandom.uuid}"
103
+ end
104
+
105
+ def reformat_api_exception
106
+ yield
107
+ rescue api.class.client_module::ApiError => exception
108
+ body = JSON.parse(exception.response_body) rescue body
109
+ body = body.values.join(',') if body.respond_to?(:values)
110
+ raise ::Katello::Errors::Pulp3Error, body
80
111
  end
81
112
 
82
113
  def update_remote
@@ -166,13 +197,16 @@ module Katello
166
197
  computed_options.except(:name, :client_key)
167
198
  end
168
199
 
169
- def create
170
- unless repository_reference
200
+ def create(force = false)
201
+ if force || !repository_reference
171
202
  response = api.repositories_api.create(create_options)
172
- RepositoryReference.create!(
173
- root_repository_id: repo.root_id,
174
- content_view_id: repo.content_view.id,
175
- repository_href: response.pulp_href)
203
+ RepositoryReference.where(
204
+ root_repository_id: repo.root_id,
205
+ content_view_id: repo.content_view.id).destroy_all
206
+ RepositoryReference.where(
207
+ root_repository_id: repo.root_id,
208
+ content_view_id: repo.content_view.id,
209
+ repository_href: response.pulp_href).create!
176
210
  response
177
211
  end
178
212
  end
@@ -47,7 +47,7 @@ module Katello
47
47
  create_remote unless fetch_remote
48
48
  end
49
49
 
50
- def create
50
+ def create(_force = false)
51
51
  api.repositories_api.create(name: backend_object_name)
52
52
  end
53
53
 
@@ -57,6 +57,7 @@ attributes :ostree_branch_names => :ostree_branches
57
57
  attributes :relative_path
58
58
  attributes :promoted? => :promoted
59
59
  attributes :content_view_version_id, :library_instance_id
60
+ attributes :last_contents_changed
60
61
 
61
62
  if @resource.is_a?(Katello::Repository)
62
63
  if @resource.distribution_version || @resource.distribution_arch || @resource.distribution_family || @resource.distribution_variant
@@ -1,5 +1,5 @@
1
1
  <div class="row">
2
- <h3><%= _('Pulpcore') %></h3>
2
+ <h3><%= _('Content') %></h3>
3
3
  </div>
4
4
  <%= show_feature_version('pulpcore') %>
5
5
  <div class="row">
@@ -37,7 +37,7 @@ angular.module('Bastion.errata').controller('ApplyErrataController',
37
37
  $scope.errataActionFormValues = {
38
38
  authenticityToken: $window.AUTH_TOKEN.replace(/&quot;/g, ''),
39
39
  errata: IncrementalUpdate.getErrataIds().join(','),
40
- hostIds: IncrementalUpdate.getBulkContentHosts().included.ids.join(','),
40
+ bulkHostIds: angular.toJson({ included: { ids: IncrementalUpdate.getBulkContentHosts().included.ids }}),
41
41
  customize: false
42
42
  };
43
43
 
@@ -18,7 +18,7 @@
18
18
  <form id="errataActionForm" method="post" action="/katello/remote_execution">
19
19
  <input type="hidden" name="remote_action" value="errata_install"/>
20
20
  <input type="hidden" name="name" ng-value="errataActionFormValues.errata"/>
21
- <input type="hidden" name="host_ids" ng-value="errataActionFormValues.hostIds"/>
21
+ <input type="hidden" name="bulk_host_ids" ng-value="errataActionFormValues.bulkHostIds"/>
22
22
  <input type="hidden" name="customize" ng-value="errataActionFormValues.customize"/>
23
23
  <input type="hidden" name="authenticity_token" ng-value="errataActionFormValues.authenticityToken"/>
24
24
  <input type="hidden" name="install_all" ng-value="table.allResultsSelected" />
@@ -132,4 +132,3 @@
132
132
  </button>
133
133
  </form>
134
134
  </section>
135
-
@@ -90,6 +90,7 @@ angular.module('Bastion.repositories').controller('RepositoryDetailsInfoControll
90
90
 
91
91
  $scope.save = function (repository, saveUpstreamAuth) {
92
92
  var deferred = $q.defer();
93
+ var fields = ['upstream_password', 'upstream_username', 'ansible_collection_auth_token', 'ansible_collection_auth_url', 'ansible_collection_requirements'];
93
94
  if (repository.content_type === 'yum' && typeof repository.ignore_srpms !== 'undefined') {
94
95
  if (repository['ignore_srpms']) {
95
96
  repository['ignorable_content'] = ["srpm"];
@@ -111,6 +112,12 @@ angular.module('Bastion.repositories').controller('RepositoryDetailsInfoControll
111
112
  repository["docker_tags_whitelist"] = [];
112
113
  }
113
114
  /* eslint-disable camelcase */
115
+
116
+ angular.forEach(fields, function(field) {
117
+ if (repository[field] === '') {
118
+ repository[field] = null;
119
+ }
120
+ });
114
121
  repository.os_versions = $scope.osVersionsParam();
115
122
  repository.$update(function (response) {
116
123
  deferred.resolve(response);
@@ -96,7 +96,7 @@
96
96
  <input id="requirementFile" type="file" name="file_path" onclick="this.value = null" onchange="angular.element(this).scope().handleFiles(this)"/>
97
97
  <p bst-alert='info' ng-show="repository.content_type == 'ansible_collection'">
98
98
  <span translate>
99
- You can upload a requirements.yml file above to auto-fill contents <b>OR</b> paste contents of <a ng-href="https://docs.ansible.com/ansible/devel/dev_guide/collections_tech_preview.html#install-multiple-collections-with-a-requirements-file" target="_blank"> Requirements.yml </a>below.
99
+ You can upload a requirements.yml file above to auto-fill contents <b>OR</b> paste contents of <a ng-href="https://docs.ansible.com/ansible/latest/galaxy/user_guide.html#install-multiple-collections-with-a-requirements-file" target="_blank"> Requirements.yml </a>below.
100
100
  </span>
101
101
  </p>
102
102
  </dd>
@@ -477,7 +477,7 @@
477
477
  <div class="divider" ng-if="repository.content_type === 'ostree'"/>
478
478
  </section>
479
479
 
480
- <section class="well" ng-if="permitted('edit_products', product) && !product.redhat && repository.content_type !== 'docker' && repository.content_type !== 'ostree'">
480
+ <section class="well" ng-if="permitted('edit_products', product) && !product.redhat && repository.content_type !== 'docker' && repository.content_type !== 'ostree' && repository.content_type !== 'ansible_collection'">
481
481
  <h5 translate ng-show="repository.content_type === 'yum'">Upload Package</h5>
482
482
  <h5 translate ng-show="repository.content_type === 'file'">Upload File</h5>
483
483
 
@@ -118,6 +118,7 @@ angular.module('Bastion.repositories').controller('NewRepositoryController',
118
118
  });
119
119
 
120
120
  $scope.save = function (repository) {
121
+ var fields = ['upstream_password', 'upstream_username', 'ansible_collection_auth_token', 'ansible_collection_auth_url', 'ansible_collection_requirements'];
121
122
  if (repository.content_type === 'ostree') {
122
123
  repository.unprotected = false;
123
124
  }
@@ -135,6 +136,11 @@ angular.module('Bastion.repositories').controller('NewRepositoryController',
135
136
  if (repository.arch === 'No restriction') {
136
137
  repository.arch = null;
137
138
  }
139
+ angular.forEach(fields, function(field) {
140
+ if (repository[field] === '') {
141
+ repository[field] = null;
142
+ }
143
+ });
138
144
  repository.$save(success, error);
139
145
  };
140
146
 
@@ -114,20 +114,21 @@ namespace :katello do
114
114
  def repo_exists?(repo)
115
115
  if SmartProxy.pulp_primary!.pulp3_support?(repo)
116
116
  backend_service = repo.backend_service(SmartProxy.pulp_primary!)
117
+ return false unless backend_service&.repository_reference&.repository_href
117
118
  backend_service.api.repositories_api.read(backend_service.repository_reference.repository_href)
118
119
  else
119
120
  Katello.pulp_server.extensions.repository.retrieve(repo.pulp_id)
120
121
  end
121
122
  true
122
- rescue RestClient::ResourceNotFound, PulpRpmClient::ApiError
123
- false
123
+ rescue StandardError => e
124
+ return false if e.code == 404
124
125
  end
125
126
 
126
127
  def handle_missing_repo(repo)
127
128
  puts "Repository #{repo.id} Missing"
128
129
  if repo.content_view.default?
129
130
  puts "Recreating #{repo.id}"
130
- ForemanTasks.sync_task(::Actions::Katello::Repository::Create, repo) if commit?
131
+ ForemanTasks.sync_task(::Actions::Katello::Repository::Create, repo, force_repo_create: true) if commit?
131
132
  else
132
133
  puts "Deleting #{repo.id}"
133
134
  ForemanTasks.sync_task(::Actions::Katello::Repository::Destroy, repo) if commit?
@@ -1,3 +1,3 @@
1
1
  module Katello
2
- VERSION = "4.2.0.rc1".freeze
2
+ VERSION = "4.2.0.rc2".freeze
3
3
  end
data/locale/bn/katello.po CHANGED
@@ -363,7 +363,7 @@ msgstr ""
363
363
  msgid "A backend service [ %s ] is unreachable"
364
364
  msgstr ""
365
365
 
366
- msgid "A content view can be added by using the \"New content view\" button below."
366
+ msgid "A content view can be added by using the \"Create content view\" button above."
367
367
  msgstr ""
368
368
 
369
369
  #, fuzzy
File without changes
data/locale/cs/katello.po CHANGED
@@ -320,7 +320,7 @@ msgstr ""
320
320
  msgid "A backend service [ %s ] is unreachable"
321
321
  msgstr ""
322
322
 
323
- msgid "A content view can be added by using the \"New content view\" button below."
323
+ msgid "A content view can be added by using the \"Create content view\" button above."
324
324
  msgstr ""
325
325
 
326
326
  #, fuzzy
File without changes
data/locale/de/katello.po CHANGED
@@ -303,7 +303,7 @@ msgstr ""
303
303
  msgid "A backend service [ %s ] is unreachable"
304
304
  msgstr "Ein Back-End-Dienst [ %s ] kann nicht erreicht werden"
305
305
 
306
- msgid "A content view can be added by using the \"New content view\" button below."
306
+ msgid "A content view can be added by using the \"Create content view\" button above."
307
307
  msgstr ""
308
308
 
309
309
  msgid "A content_type must be provided."
File without changes
data/locale/en/katello.po CHANGED
@@ -296,7 +296,7 @@ msgstr ""
296
296
  msgid "A backend service [ %s ] is unreachable"
297
297
  msgstr ""
298
298
 
299
- msgid "A content view can be added by using the \"New content view\" button below."
299
+ msgid "A content view can be added by using the \"Create content view\" button above."
300
300
  msgstr ""
301
301
 
302
302
  msgid "A content_type must be provided."
File without changes
data/locale/es/katello.po CHANGED
@@ -305,7 +305,7 @@ msgstr ""
305
305
  msgid "A backend service [ %s ] is unreachable"
306
306
  msgstr "No se puede acceder a un servicio de segundo plano [ %s ]"
307
307
 
308
- msgid "A content view can be added by using the \"New content view\" button below."
308
+ msgid "A content view can be added by using the \"Create content view\" button above."
309
309
  msgstr ""
310
310
 
311
311
  msgid "A content_type must be provided."
File without changes
data/locale/fr/katello.po CHANGED
@@ -306,7 +306,7 @@ msgstr ""
306
306
  msgid "A backend service [ %s ] is unreachable"
307
307
  msgstr "Un service d'arrière-plan [ %s ] est injoignable"
308
308
 
309
- msgid "A content view can be added by using the \"New content view\" button below."
309
+ msgid "A content view can be added by using the \"Create content view\" button above."
310
310
  msgstr ""
311
311
 
312
312
  msgid "A content_type must be provided."
File without changes
data/locale/gu/katello.po CHANGED
@@ -364,7 +364,7 @@ msgstr ""
364
364
  msgid "A backend service [ %s ] is unreachable"
365
365
  msgstr ""
366
366
 
367
- msgid "A content view can be added by using the \"New content view\" button below."
367
+ msgid "A content view can be added by using the \"Create content view\" button above."
368
368
  msgstr ""
369
369
 
370
370
  #, fuzzy
File without changes
data/locale/hi/katello.po CHANGED
@@ -362,7 +362,7 @@ msgstr ""
362
362
  msgid "A backend service [ %s ] is unreachable"
363
363
  msgstr ""
364
364
 
365
- msgid "A content view can be added by using the \"New content view\" button below."
365
+ msgid "A content view can be added by using the \"Create content view\" button above."
366
366
  msgstr ""
367
367
 
368
368
  #, fuzzy
File without changes
data/locale/it/katello.po CHANGED
@@ -304,7 +304,7 @@ msgstr ""
304
304
  msgid "A backend service [ %s ] is unreachable"
305
305
  msgstr "Impossibile raggiungere un servizio backend [ %s ]"
306
306
 
307
- msgid "A content view can be added by using the \"New content view\" button below."
307
+ msgid "A content view can be added by using the \"Create content view\" button above."
308
308
  msgstr ""
309
309
 
310
310
  msgid "A content_type must be provided."
File without changes
data/locale/ja/katello.po CHANGED
@@ -312,7 +312,7 @@ msgstr ""
312
312
  msgid "A backend service [ %s ] is unreachable"
313
313
  msgstr "バックエンドサービス [ %s ] には到達不能です"
314
314
 
315
- msgid "A content view can be added by using the \"New content view\" button below."
315
+ msgid "A content view can be added by using the \"Create content view\" button above."
316
316
  msgstr ""
317
317
 
318
318
  msgid "A content_type must be provided."
File without changes
data/locale/katello.pot CHANGED
@@ -9016,7 +9016,7 @@ msgid "You currently don't have any Content Views."
9016
9016
  msgstr ""
9017
9017
 
9018
9018
  #: ../webpack/scenes/ContentViews/Table/ContentViewsTable.js:141
9019
- msgid "A content view can be added by using the \"New content view\" button below."
9019
+ msgid "A content view can be added by using the \"Create content view\" button above."
9020
9020
  msgstr ""
9021
9021
 
9022
9022
  #: ../webpack/scenes/ContentViews/Table/tableDataGenerator.js:15
data/locale/kn/katello.po CHANGED
@@ -364,7 +364,7 @@ msgstr ""
364
364
  msgid "A backend service [ %s ] is unreachable"
365
365
  msgstr ""
366
366
 
367
- msgid "A content view can be added by using the \"New content view\" button below."
367
+ msgid "A content view can be added by using the \"Create content view\" button above."
368
368
  msgstr ""
369
369
 
370
370
  #, fuzzy
File without changes
data/locale/ko/katello.po CHANGED
@@ -302,7 +302,7 @@ msgstr ""
302
302
  msgid "A backend service [ %s ] is unreachable"
303
303
  msgstr "백엔드 서비스 [ %s ]를 사용할 수 없음 "
304
304
 
305
- msgid "A content view can be added by using the \"New content view\" button below."
305
+ msgid "A content view can be added by using the \"Create content view\" button above."
306
306
  msgstr ""
307
307
 
308
308
  msgid "A content_type must be provided."
File without changes
data/locale/mr/katello.po CHANGED
@@ -361,7 +361,7 @@ msgstr ""
361
361
  msgid "A backend service [ %s ] is unreachable"
362
362
  msgstr ""
363
363
 
364
- msgid "A content view can be added by using the \"New content view\" button below."
364
+ msgid "A content view can be added by using the \"Create content view\" button above."
365
365
  msgstr ""
366
366
 
367
367
  #, fuzzy
File without changes
data/locale/or/katello.po CHANGED
@@ -363,7 +363,7 @@ msgstr ""
363
363
  msgid "A backend service [ %s ] is unreachable"
364
364
  msgstr ""
365
365
 
366
- msgid "A content view can be added by using the \"New content view\" button below."
366
+ msgid "A content view can be added by using the \"Create content view\" button above."
367
367
  msgstr ""
368
368
 
369
369
  #, fuzzy