katello 3.5.0.rc1 → 3.5.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 (218) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/javascripts/katello/containers/container.js +6 -6
  3. data/app/assets/javascripts/katello/hosts/host_and_hostgroup_edit.js +2 -1
  4. data/app/assets/javascripts/katello/sync_management/sync_management.js +8 -6
  5. data/app/controllers/katello/api/v2/activation_keys_controller.rb +23 -16
  6. data/app/controllers/katello/api/v2/api_controller.rb +7 -2
  7. data/app/controllers/katello/api/v2/capsule_content_controller.rb +10 -2
  8. data/app/controllers/katello/api/v2/content_uploads_controller.rb +5 -5
  9. data/app/controllers/katello/api/v2/content_view_components_controller.rb +9 -9
  10. data/app/controllers/katello/api/v2/content_view_filter_rules_controller.rb +14 -16
  11. data/app/controllers/katello/api/v2/content_view_filters_controller.rb +8 -8
  12. data/app/controllers/katello/api/v2/content_view_puppet_modules_controller.rb +7 -7
  13. data/app/controllers/katello/api/v2/content_view_versions_controller.rb +12 -12
  14. data/app/controllers/katello/api/v2/content_views_controller.rb +5 -5
  15. data/app/controllers/katello/api/v2/errata_controller.rb +2 -2
  16. data/app/controllers/katello/api/v2/gpg_keys_controller.rb +2 -2
  17. data/app/controllers/katello/api/v2/host_collections_controller.rb +7 -7
  18. data/app/controllers/katello/api/v2/host_errata_controller.rb +4 -4
  19. data/app/controllers/katello/api/v2/host_packages_controller.rb +5 -5
  20. data/app/controllers/katello/api/v2/host_subscriptions_controller.rb +9 -4
  21. data/app/controllers/katello/api/v2/host_tracer_controller.rb +1 -1
  22. data/app/controllers/katello/api/v2/hosts_bulk_actions_controller.rb +9 -1
  23. data/app/controllers/katello/api/v2/organizations_controller.rb +17 -3
  24. data/app/controllers/katello/api/v2/packages_controller.rb +2 -2
  25. data/app/controllers/katello/api/v2/products_controller.rb +3 -3
  26. data/app/controllers/katello/api/v2/repositories_controller.rb +11 -11
  27. data/app/controllers/katello/api/v2/repository_sets_controller.rb +1 -10
  28. data/app/controllers/katello/concerns/api/v2/hosts_controller_extensions.rb +1 -1
  29. data/app/controllers/katello/concerns/api/v2/repository_content_controller.rb +3 -3
  30. data/app/helpers/katello/providers_helper.rb +4 -1
  31. data/app/lib/actions/candlepin/abstract.rb +1 -0
  32. data/app/lib/actions/katello/host/hypervisors_update.rb +1 -0
  33. data/app/lib/actions/katello/host/update_release_version.rb +29 -0
  34. data/app/lib/actions/katello/product/create.rb +3 -6
  35. data/app/lib/actions/katello/product/reindex_subscriptions.rb +1 -1
  36. data/app/lib/actions/katello/repository/scheduled_sync.rb +15 -0
  37. data/app/lib/actions/katello/repository/upload_files.rb +4 -0
  38. data/app/lib/actions/middleware/keep_session_id.rb +29 -0
  39. data/app/lib/katello/resources/candlepin.rb +22 -5
  40. data/app/lib/katello/validators/hostgroup_kickstart_repository_validator.rb +30 -0
  41. data/app/models/katello/activation_key.rb +3 -33
  42. data/app/models/katello/candlepin/product_content.rb +1 -14
  43. data/app/models/katello/concerns/content_facet_host_extensions.rb +5 -1
  44. data/app/models/katello/concerns/content_view_filter_rule_common.rb +13 -0
  45. data/app/models/katello/concerns/hostgroup_extensions.rb +1 -0
  46. data/app/models/katello/concerns/subscription_facet_host_extensions.rb +2 -1
  47. data/app/models/katello/content_view_docker_filter_rule.rb +2 -1
  48. data/app/models/katello/content_view_erratum_filter_rule.rb +2 -1
  49. data/app/models/katello/content_view_package_filter_rule.rb +2 -1
  50. data/app/models/katello/content_view_package_group_filter_rule.rb +2 -1
  51. data/app/models/katello/erratum.rb +4 -5
  52. data/app/models/katello/glue/candlepin/owner.rb +32 -0
  53. data/app/models/katello/glue/pulp/repos.rb +1 -1
  54. data/app/models/katello/host/subscription_facet.rb +16 -0
  55. data/app/models/katello/repository.rb +2 -2
  56. data/app/models/katello/subscription.rb +4 -1
  57. data/app/models/katello/subscription_status.rb +8 -4
  58. data/app/presenters/katello/product_content_presenter.rb +7 -2
  59. data/app/services/katello/candlepin/consumer.rb +0 -28
  60. data/app/services/katello/product_content_finder.rb +37 -0
  61. data/app/views/foreman/smart_proxies/_content_sync.html.erb +0 -2
  62. data/app/views/katello/api/v2/activation_keys/base.json.rabl +34 -0
  63. data/app/views/katello/api/v2/activation_keys/index.json.rabl +4 -1
  64. data/app/views/katello/api/v2/activation_keys/product_content.json.rabl +3 -3
  65. data/app/views/katello/api/v2/activation_keys/show.json.rabl +2 -38
  66. data/app/views/katello/api/v2/common/releases.json.rabl +7 -0
  67. data/config/routes/api/v2.rb +1 -0
  68. data/config/routes/overrides.rb +1 -0
  69. data/db/migrate/20171010170443_add_index_to_katello_content_facet_errata.rb +5 -0
  70. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/activation-key.factory.js +1 -1
  71. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/activation-key-add-host-collections.controller.js +8 -8
  72. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/activation-key-add-subscriptions.controller.js +5 -4
  73. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/activation-key-copy.controller.js +3 -6
  74. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/activation-key-details.controller.js +7 -10
  75. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/activation-key-host-collections.controller.js +7 -6
  76. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/activation-key-repository-sets.controller.js +5 -5
  77. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/activation-key-subscriptions.controller.js +5 -4
  78. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/activation-keys/details/views/activation-key-host-collections-table.html +1 -3
  79. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/capsule-content/capsule-content.controller.js +7 -5
  80. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/capsule-content/capsule-content.factory.js +1 -1
  81. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/capsules/capsule.factory.js +1 -1
  82. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/common/api-error-handler.service.js +6 -16
  83. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/content-hosts-bulk-environment-modal.controller.js +4 -4
  84. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/content-hosts-bulk-errata-modal.controller.js +5 -5
  85. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/content-hosts-bulk-host-collections-modal.controller.js +5 -5
  86. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/content-hosts-bulk-packages-modal.controller.js +5 -5
  87. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/content-hosts-bulk-release-version-modal.controller.js +62 -0
  88. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/content-hosts-bulk-repository-sets-modal.controller.js +4 -4
  89. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/content-hosts-bulk-subscriptions-modal.controller.js +4 -4
  90. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/views/content-hosts-bulk-release-version-modal.html +56 -0
  91. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/bulk/views/content-hosts-bulk-subscriptions-modal.html +1 -1
  92. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content-host-modal-helper.service.js +11 -0
  93. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content-hosts.controller.js +10 -9
  94. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/content-host-packages.controller.js +6 -4
  95. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/content/content-host-traces.controller.js +0 -2
  96. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/content-host-add-host-collections.controller.js +3 -6
  97. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/content-host-add-subscriptions.controller.js +5 -4
  98. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/content-host-base-subscriptions.controller.js +5 -4
  99. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/content-host-details-info.controller.js +0 -3
  100. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/content-host-details.controller.js +8 -9
  101. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/content-host-host-collections.controller.js +10 -8
  102. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/content-host-repository-sets.controller.js +5 -5
  103. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/content-host-subscriptions.controller.js +5 -4
  104. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/details/views/content-host-repository-sets.html +0 -2
  105. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-hosts/views/content-hosts.html +6 -0
  106. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/content-view.factory.js +1 -1
  107. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/deletion/content-view-deletion.controller.js +3 -3
  108. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/deletion/content-view-version-deletion-confirm.controller.js +5 -5
  109. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/components/content-view-component.factory.js +3 -3
  110. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/content-view-details.controller.js +6 -6
  111. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/content-view-promotion.controller.js +5 -5
  112. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/content-view-publish.controller.js +3 -3
  113. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/content-view-versions.controller.js +6 -6
  114. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/available-errata-filter.controller.js +5 -5
  115. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/available-package-group-filter.controller.js +5 -5
  116. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/date-type-errata-filter.controller.js +11 -5
  117. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/docker-tag-filter.controller.js +6 -6
  118. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/edit-filter.controller.js +4 -4
  119. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/errata-filter-list.controller.js +5 -5
  120. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/filter-repositories.controller.js +6 -6
  121. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/filter.factory.js +1 -1
  122. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/filters.controller.js +4 -4
  123. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/new-filter.controller.js +3 -3
  124. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/package-filter.controller.js +6 -6
  125. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/package-group-list-filter.controller.js +5 -5
  126. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/filters/rule.factory.js +1 -1
  127. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/histories/content-view-history.factory.js +1 -1
  128. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/puppet-modules/content-view-puppet-module-versions.controller.js +5 -5
  129. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/puppet-modules/content-view-puppet-module.factory.js +1 -1
  130. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/details/puppet-modules/content-view-puppet-modules.controller.js +5 -5
  131. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/content-views/versions/content-view-version.factory.js +1 -1
  132. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/docker-manifests/docker-manifest.factory.js +1 -1
  133. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/docker-tags/details/docker-tag-details.controller.js +0 -3
  134. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/docker-tags/details/views/docker-tag-details.html +0 -2
  135. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/docker-tags/docker-tags.factory.js +1 -1
  136. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/details/environment.controller.js +5 -7
  137. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/environment.factory.js +1 -1
  138. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/new-environment.controller.js +3 -6
  139. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/environments/views/new-environment.html +0 -2
  140. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/apply-errata.controller.js +9 -4
  141. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/details/erratum-content-hosts.controller.js +0 -3
  142. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/erratum.factory.js +1 -1
  143. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/errata/views/apply-errata-confirm.html +0 -2
  144. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/files/details/file.controller.js +0 -3
  145. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/files/file.factory.js +1 -1
  146. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/gpg-keys/details/gpg-key-details-info.controller.js +6 -5
  147. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/gpg-keys/details/gpg-key-details.controller.js +4 -6
  148. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/gpg-keys/gpg-key.factory.js +1 -1
  149. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/gpg-keys/new/new-gpg-key.controller.js +6 -9
  150. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/host-collections/details/host-collection-add-hosts.controller.js +3 -3
  151. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/host-collections/details/host-collection-copy.controller.js +3 -6
  152. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/host-collections/details/host-collection-details.controller.js +13 -22
  153. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/host-collections/details/host-collection-hosts.controller.js +6 -5
  154. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/host-collections/details/views/host-collection-info.html +3 -3
  155. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/host-collections/host-collection.factory.js +1 -1
  156. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/hosts/host-bulk-action.factory.js +2 -1
  157. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/hosts/host-erratum.factory.js +1 -1
  158. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/hosts/host-package.factory.js +1 -1
  159. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/hosts/host-subscription.factory.js +1 -1
  160. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/hosts/host-traces.factory.js +1 -1
  161. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/hosts/host.factory.js +1 -1
  162. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/organizations/organization.factory.js +7 -5
  163. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/ostree-branches/ostree-branch.factory.js +1 -1
  164. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/package-groups/package-group.factory.js +1 -1
  165. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/packages/package.factory.js +1 -1
  166. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/bulk/product-bulk-action.factory.js +1 -1
  167. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/bulk/products-bulk-advanced-sync-modal.controller.js +5 -5
  168. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/bulk/products-bulk-sync-plan-modal.controller.js +6 -6
  169. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/product-details-info.controller.js +5 -8
  170. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/product-details.controller.js +6 -6
  171. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/product-repositories.controller.js +15 -14
  172. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/repository-details-advanced-sync.controller.js +6 -3
  173. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/repository-details-info.controller.js +9 -9
  174. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/repository-details-manage-content.controller.js +5 -4
  175. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/repository-details.controller.js +7 -7
  176. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-advanced-sync.html +0 -2
  177. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-info.html +0 -2
  178. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-manage-docker-manifests.html +0 -2
  179. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-manage-files.html +0 -2
  180. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-manage-ostree-branches.html +0 -2
  181. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-manage-packages.html +0 -2
  182. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/details/views/repository-manage-puppet-modules.html +0 -2
  183. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/new/new-repository.controller.js +5 -8
  184. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/new/views/new-repository.html +0 -2
  185. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/repository.factory.js +2 -2
  186. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/repositories/views/product-repositories.html +0 -20
  187. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/details/views/product-info.html +0 -1
  188. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/discovery/discovery-create.controller.js +4 -6
  189. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/discovery/discovery.controller.js +5 -8
  190. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/discovery/views/discovery-base.html +0 -2
  191. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/new/product-form.controller.js +3 -3
  192. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/product.factory.js +1 -1
  193. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/products/products.controller.js +7 -7
  194. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/puppet-modules/details/puppet-module.controller.js +0 -3
  195. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/puppet-modules/puppet-module.factory.js +1 -1
  196. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/repository-sets/repository-set.factory.js +1 -1
  197. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/settings/setting.factory.js +1 -1
  198. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/subscriptions/details/subscription-details.controller.js +0 -3
  199. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/subscriptions/details/views/subscription-details.html +0 -2
  200. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/subscriptions/manifest/manifest-import.controller.js +9 -9
  201. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/subscriptions/manifest/views/manifest-import.html +0 -2
  202. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/subscriptions/subscriptions.factory.js +4 -4
  203. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/sync-plans/details/sync-plan-add-products.controller.js +6 -8
  204. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/sync-plans/details/sync-plan-details-info.controller.js +5 -6
  205. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/sync-plans/details/sync-plan-details.controller.js +5 -5
  206. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/sync-plans/details/sync-plan-products.controller.js +8 -8
  207. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/sync-plans/details/views/sync-plan-info.html +0 -2
  208. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/sync-plans/details/views/sync-plan-products.html +0 -2
  209. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/sync-plans/new/new-sync-plan.controller.js +4 -4
  210. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/sync-plans/sync-plan.factory.js +1 -1
  211. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/tasks/task.factory.js +2 -2
  212. data/engines/bastion_katello/app/assets/javascripts/bastion_katello/tasks/tasks.module.js +3 -3
  213. data/lib/katello/permission_creator.rb +3 -2
  214. data/lib/katello/permissions/host_permissions.rb +1 -0
  215. data/lib/katello/permissions/organization_permissions.rb +1 -0
  216. data/lib/katello/tasks/clean_installed_packages.rake +20 -3
  217. data/lib/katello/version.rb +1 -1
  218. metadata +17 -6
@@ -9,15 +9,15 @@
9
9
  * @requires Organization
10
10
  * @requires CurrentOrganization
11
11
  * @requires ContentView
12
- * @requires GlobalNotification
12
+ * @requires Notification
13
13
  * @requires hostIds
14
14
  *
15
15
  * @description
16
16
  * A controller for providing bulk action functionality for setting content view and environment
17
17
  */
18
18
  angular.module('Bastion.content-hosts').controller('ContentHostsBulkEnvironmentModalController',
19
- ['$scope', '$state', '$uibModalInstance', 'HostBulkAction', 'Organization', 'CurrentOrganization', 'ContentView', 'GlobalNotification', 'hostIds',
20
- function ($scope, $state, $uibModalInstance, HostBulkAction, Organization, CurrentOrganization, ContentView, GlobalNotification, hostIds) {
19
+ ['$scope', '$state', '$uibModalInstance', 'HostBulkAction', 'Organization', 'CurrentOrganization', 'ContentView', 'Notification', 'hostIds',
20
+ function ($scope, $state, $uibModalInstance, HostBulkAction, Organization, CurrentOrganization, ContentView, Notification, hostIds) {
21
21
 
22
22
  function actionParams() {
23
23
  var params = hostIds;
@@ -60,7 +60,7 @@ angular.module('Bastion.content-hosts').controller('ContentHostsBulkEnvironmentM
60
60
  $state.go('content-hosts.bulk-task', {taskId: task.id});
61
61
  }, function (response) {
62
62
  angular.forEach(response.data.errors, function (error) {
63
- GlobalNotification.setErrorMessage(error);
63
+ Notification.setErrorMessage(error);
64
64
  });
65
65
  });
66
66
  };
@@ -12,7 +12,7 @@
12
12
  * @requires Nutupane
13
13
  * @requires CurrentOrganization
14
14
  * @requires Erratum
15
- * @requires GlobalNotification
15
+ * @requires Notification
16
16
  * @requires BastionConfig
17
17
  * @requires hostIds
18
18
  *
@@ -20,8 +20,8 @@
20
20
  * A controller for providing bulk action functionality to the content hosts page.
21
21
  */
22
22
  angular.module('Bastion.content-hosts').controller('ContentHostsBulkErrataModalController',
23
- ['$scope', '$http', '$location', '$window', '$uibModalInstance', 'HostBulkAction', 'HostCollection', 'Nutupane', 'CurrentOrganization', 'Erratum', 'GlobalNotification', 'BastionConfig', 'hostIds',
24
- function ($scope, $http, $location, $window, $uibModalInstance, HostBulkAction, HostCollection, Nutupane, CurrentOrganization, Erratum, GlobalNotification, BastionConfig, hostIds) {
23
+ ['$scope', '$http', '$location', '$window', '$uibModalInstance', 'HostBulkAction', 'HostCollection', 'Nutupane', 'CurrentOrganization', 'Erratum', 'Notification', 'BastionConfig', 'hostIds',
24
+ function ($scope, $http, $location, $window, $uibModalInstance, HostBulkAction, HostCollection, Nutupane, CurrentOrganization, Erratum, Notification, BastionConfig, hostIds) {
25
25
  var nutupane;
26
26
 
27
27
  function installParams() {
@@ -89,7 +89,7 @@ angular.module('Bastion.content-hosts').controller('ContentHostsBulkErrataModalC
89
89
  },
90
90
  function (response) {
91
91
  angular.forEach(response.data.errors, function (error) {
92
- GlobalNotification.setErrorMessage(error);
92
+ Notification.setErrorMessage(error);
93
93
  });
94
94
  });
95
95
  };
@@ -106,7 +106,7 @@ angular.module('Bastion.content-hosts').controller('ContentHostsBulkErrataModalC
106
106
  formData.search = selectedHosts.included.search;
107
107
  formData.customize = customize;
108
108
 
109
- $http.post('/katello/remote_execution', formData, {
109
+ $http.post('katello/remote_execution', formData, {
110
110
  headers: {'Content-Type': 'application/x-www-form-urlencoded'
111
111
  }});
112
112
  };
@@ -10,15 +10,15 @@
10
10
  * @requires HostBulkAction
11
11
  * @requires HostCollection
12
12
  * @requires CurrentOrganization
13
- * @requires GlobalNotification
13
+ * @requires Notification
14
14
  * @requires hostIds
15
15
  *
16
16
  * @description
17
17
  * A controller for providing bulk action functionality to the content hosts page.
18
18
  */
19
19
  angular.module('Bastion.content-hosts').controller('ContentHostsBulkHostCollectionsModalController',
20
- ['$scope', '$location', '$uibModalInstance', 'translate', 'Nutupane', 'HostBulkAction', 'HostCollection', 'CurrentOrganization', 'GlobalNotification', 'hostIds',
21
- function ($scope, $location, $uibModalInstance, translate, Nutupane, HostBulkAction, HostCollection, CurrentOrganization, GlobalNotification, hostIds) {
20
+ ['$scope', '$location', '$uibModalInstance', 'translate', 'Nutupane', 'HostBulkAction', 'HostCollection', 'CurrentOrganization', 'Notification', 'hostIds',
21
+ function ($scope, $location, $uibModalInstance, translate, Nutupane, HostBulkAction, HostCollection, CurrentOrganization, Notification, hostIds) {
22
22
  var nutupane, nutupaneParams;
23
23
 
24
24
  $scope.hostCollections = {
@@ -56,14 +56,14 @@ angular.module('Bastion.content-hosts').controller('ContentHostsBulkHostCollecti
56
56
 
57
57
  success = function (data) {
58
58
  angular.forEach(data.displayMessages, function (message) {
59
- GlobalNotification.setSuccessMessage(message);
59
+ Notification.setSuccessMessage(message);
60
60
  });
61
61
  nutupane.invalidate();
62
62
  };
63
63
 
64
64
  error = function (response) {
65
65
  angular.forEach(response.data.errors, function (responseError) {
66
- GlobalNotification.setErrorMessage(responseError);
66
+ Notification.setErrorMessage(responseError);
67
67
  });
68
68
  $scope.editMode = true;
69
69
  };
@@ -10,7 +10,7 @@
10
10
  * @requires HostBulkAction
11
11
  * @requires CurrentOrganization
12
12
  * @requires translate
13
- * @requires GlobalNotification
13
+ * @requires Notification
14
14
  * @requires BastionConfig
15
15
  * @requires hostIds
16
16
  *
@@ -18,8 +18,8 @@
18
18
  * A controller for providing bulk action functionality to the content hosts page.
19
19
  */
20
20
  angular.module('Bastion.content-hosts').controller('ContentHostsBulkPackagesModalController',
21
- ['$scope', '$location', '$timeout', '$window', '$uibModalInstance', 'HostBulkAction', 'CurrentOrganization', 'translate', 'GlobalNotification', 'BastionConfig', 'hostIds',
22
- function ($scope, $location, $timeout, $window, $uibModalInstance, HostBulkAction, CurrentOrganization, translate, GlobalNotification, BastionConfig, hostIds) {
21
+ ['$scope', '$location', '$timeout', '$window', '$uibModalInstance', 'HostBulkAction', 'CurrentOrganization', 'translate', 'Notification', 'BastionConfig', 'hostIds',
22
+ function ($scope, $location, $timeout, $window, $uibModalInstance, HostBulkAction, CurrentOrganization, translate, Notification, BastionConfig, hostIds) {
23
23
 
24
24
  function successMessage(type) {
25
25
  var messages = {
@@ -93,12 +93,12 @@ angular.module('Bastion.content-hosts').controller('ContentHostsBulkPackagesModa
93
93
  $scope.content.confirm = false;
94
94
 
95
95
  success = function () {
96
- GlobalNotification.setSuccessMessage(successMessage($scope.content.action));
96
+ Notification.setSuccessMessage(successMessage($scope.content.action));
97
97
  };
98
98
 
99
99
  error = function (response) {
100
100
  angular.forEach(response.data.errors, function (responseError) {
101
- GlobalNotification.setErrorMessage(responseError);
101
+ Notification.setErrorMessage(responseError);
102
102
  });
103
103
  };
104
104
 
@@ -0,0 +1,62 @@
1
+ /**
2
+ * @ngdoc object
3
+ * @name Bastion.content-hosts.controller:ContentHostsBulkReleaseVersionModalController
4
+ *
5
+ * @requires $scope
6
+ * @requires $state
7
+ * @requires $uibModalInstance
8
+ * @requires HostBulkAction
9
+ * @requires Organization
10
+ * @requires CurrentOrganization
11
+ * @requires Notification
12
+ * @requires hostIds
13
+ *
14
+ * @description
15
+ * A controller for providing bulk action functionality for setting content view and environment
16
+ */
17
+ angular.module('Bastion.content-hosts').controller('ContentHostsBulkReleaseVersionModalController',
18
+ ['$scope', '$state', '$uibModalInstance', 'HostBulkAction', 'Organization', 'CurrentOrganization', 'Notification', 'hostIds',
19
+ function ($scope, $state, $uibModalInstance, HostBulkAction, Organization, CurrentOrganization, Notification, hostIds) {
20
+
21
+ function actionParams() {
22
+ var params = hostIds;
23
+ params['organization_id'] = CurrentOrganization;
24
+ params['release_version'] = $scope.selected.release;
25
+
26
+ return params;
27
+ }
28
+
29
+ $scope.selected = {
30
+ release: undefined
31
+ };
32
+ $scope.fetchingReleases = true;
33
+
34
+ Organization.releaseVersions({id: CurrentOrganization}, function (response) {
35
+ $scope.releases = response.results;
36
+ $scope.fetchingReleases = false;
37
+ });
38
+
39
+ $scope.disableAssignButton = function (confirm) {
40
+ return confirm || hostIds === 0 || angular.isUndefined($scope.selected.release);
41
+ };
42
+
43
+ $scope.performAction = function () {
44
+ HostBulkAction.releaseVersion(actionParams(), function (task) {
45
+ $scope.ok();
46
+ $state.go('content-hosts.bulk-task', {taskId: task.id});
47
+ }, function (response) {
48
+ angular.forEach(response.data.errors, function (error) {
49
+ Notification.setErrorMessage(error);
50
+ });
51
+ });
52
+ };
53
+
54
+ $scope.ok = function () {
55
+ $uibModalInstance.close();
56
+ };
57
+
58
+ $scope.cancel = function () {
59
+ $uibModalInstance.dismiss('cancel');
60
+ };
61
+ }]
62
+ );
@@ -10,15 +10,15 @@
10
10
  * @requires HostBulkAction
11
11
  * @requires RepositorySet
12
12
  * @requires CurrentOrganization
13
- * @requires GlobalNotification
13
+ * @requires Notification
14
14
  * @requires hostIds
15
15
  *
16
16
  * @description
17
17
  * A controller for providing bulk action functionality to the content hosts page.
18
18
  */
19
19
  angular.module('Bastion.content-hosts').controller('ContentHostsBulkRepositorySetsModalController',
20
- ['$scope', '$location', '$uibModalInstance', 'translate', 'Nutupane', 'HostBulkAction', 'RepositorySet', 'CurrentOrganization', 'GlobalNotification', 'hostIds',
21
- function ($scope, $location, $uibModalInstance, translate, Nutupane, HostBulkAction, RepositorySet, CurrentOrganization, GlobalNotification, hostIds) {
20
+ ['$scope', '$location', '$uibModalInstance', 'translate', 'Nutupane', 'HostBulkAction', 'RepositorySet', 'CurrentOrganization', 'Notification', 'hostIds',
21
+ function ($scope, $location, $uibModalInstance, translate, Nutupane, HostBulkAction, RepositorySet, CurrentOrganization, Notification, hostIds) {
22
22
  var nutupane, nutupaneParams;
23
23
 
24
24
  $scope.repositorySets = {
@@ -83,7 +83,7 @@ angular.module('Bastion.content-hosts').controller('ContentHostsBulkRepositorySe
83
83
 
84
84
  error = function (response) {
85
85
  angular.forEach(response.data.errors, function (responseError) {
86
- GlobalNotification.setErrorMessage(responseError);
86
+ Notification.setErrorMessage(responseError);
87
87
  });
88
88
  $scope.editMode = true;
89
89
  };
@@ -10,15 +10,15 @@
10
10
  * @requires Subscription
11
11
  * @requires ContentHost
12
12
  * @requires SubscriptionsHelper
13
- * @requires GlobalNotification
13
+ * @requires Notification
14
14
  * @requires hostIds
15
15
  *
16
16
  * @description
17
17
  * A controller for providing bulk action functionality to the content hosts page.
18
18
  */
19
19
  angular.module('Bastion.content-hosts').controller('ContentHostsBulkSubscriptionsModalController',
20
- ['$scope', '$location', '$uibModalInstance', 'Nutupane', 'CurrentOrganization', 'HostBulkAction', 'Subscription', 'SubscriptionsHelper', 'GlobalNotification', 'hostIds',
21
- function ($scope, $location, $uibModalInstance, Nutupane, CurrentOrganization, HostBulkAction, Subscription, SubscriptionsHelper, GlobalNotification, hostIds) {
20
+ ['$scope', '$location', '$uibModalInstance', 'Nutupane', 'CurrentOrganization', 'HostBulkAction', 'Subscription', 'SubscriptionsHelper', 'Notification', 'hostIds',
21
+ function ($scope, $location, $uibModalInstance, Nutupane, CurrentOrganization, HostBulkAction, Subscription, SubscriptionsHelper, Notification, hostIds) {
22
22
  var success, error, params = {
23
23
  'organization_id': CurrentOrganization,
24
24
  'sort_order': 'ASC',
@@ -40,7 +40,7 @@ angular.module('Bastion.content-hosts').controller('ContentHostsBulkSubscription
40
40
 
41
41
  error = function (response) {
42
42
  angular.forEach(response.data.errors, function (responseError) {
43
- GlobalNotification.setErrorMessage(responseError);
43
+ Notification.setErrorMessage(responseError);
44
44
  });
45
45
  };
46
46
 
@@ -0,0 +1,56 @@
1
+ <div data-extend-template="components/views/bst-modal.html">
2
+ <h4 data-block="modal-header" translate>Content Host Bulk Content</h4>
3
+
4
+ <div data-block="modal-body">
5
+ <h4 translate>Assign Release Version</h4>
6
+
7
+ <div class="row">
8
+ <div class="col-sm-12">
9
+ <div bst-global-notification></div>
10
+ </div>
11
+ </div>
12
+
13
+ <div bst-alert="info" ng-show="showConfirm">
14
+ <span translate>
15
+ Are you sure you want to set the Release Version the {{ table.numSelected }} content host(s) selected to {{ selected.release }}?. This action will affect only those Content Hosts that belong to the appropriate Content View and Lifecycle Environment containining that release version.
16
+ </span>
17
+ <div>
18
+ <button type="button" class="btn btn-default" ng-click="showConfirm = false; performAction()" translate>Yes</button>
19
+ <button type="button" class="btn btn-default" ng-click="showConfirm = false;" translate>No</button>
20
+ </div>
21
+ </div>
22
+
23
+ <form name="contentHostContentForm" class="form" ng-hide="content.workingMode">
24
+ <div>
25
+ <label translate>Release Version:</label>
26
+
27
+ <i ng-show="fetchingReleases" class="fa fa-spinner inline-icon fa-spin"></i>
28
+ <select ng-hide="fetchingReleases || releases.length === 0"
29
+ type="select"
30
+ ng-options="release for release in releases"
31
+ ng-model="selected.release">
32
+ </select>
33
+
34
+ <p class="page-error" ng-show="!fetchingReleases && releases.length === 0" translate>
35
+ No releases exist in the Library.
36
+ </p>
37
+
38
+ </div>
39
+
40
+ <button class="btn btn-default"
41
+ type="button"
42
+ ng-hide="denied('edit_hosts')"
43
+ ng-click="showConfirm = true;"
44
+ ng-disabled="disableAssignButton(showConfirm)">
45
+ <span translate>Assign</span>
46
+ </button>
47
+
48
+ </form>
49
+ </div>
50
+
51
+ <div data-block="modal-footer">
52
+ <button type="button" class="btn btn-primary" ng-click="ok()" translate>
53
+ Done
54
+ </button>
55
+ </div>
56
+ </div>
@@ -100,7 +100,7 @@
100
100
  </td>
101
101
  <td bst-table-cell>{{ subscription | subscriptionConsumedFilter }}</td>
102
102
  <td bst-table-cell><div subscription-type="subscription"></div></td>
103
- <td bst-table-cell>{{ subscription.start_date | date:"shortDate" }}</td>
103
+ <td bst-table-cell><div subscription-start-date="subscription"></div></td>
104
104
  <td bst-table-cell>{{ subscription.end_date | date:"shortDate" }}</td>
105
105
  <td bst-table-cell>{{ subscription.support_level }}</td>
106
106
  <td bst-table-cell>{{ subscription.contract_number }}</td>
@@ -57,6 +57,17 @@ angular.module('Bastion.content-hosts').service('ContentHostsModalHelper', ['$ui
57
57
  });
58
58
  };
59
59
 
60
+ this.openReleaseVersionModal = function() {
61
+ $uibModal.open({
62
+ templateUrl: 'content-hosts/bulk/views/content-hosts-bulk-release-version-modal.html',
63
+ controller: 'ContentHostsBulkReleaseVersionModalController',
64
+ size: 'lg',
65
+ resolve: {
66
+ hostIds: this.resolveFunc()
67
+ }
68
+ });
69
+ };
70
+
60
71
  this.openSubscriptionsModal = function() {
61
72
  $uibModal.open({
62
73
  templateUrl: 'content-hosts/bulk/views/content-hosts-bulk-subscriptions-modal.html',
@@ -5,13 +5,12 @@
5
5
  * @requires $scope
6
6
  * @requires $q
7
7
  * @requires $location
8
- * @requires $window
9
8
  * @requires $uibModal
10
9
  * @requires translate
11
10
  * @requires Nutupane
12
11
  * @requires Host
13
12
  * @requires HostBulkAction
14
- * @requires GlobalNotification
13
+ * @requires Notification
15
14
  * @requires CurrentOrganization
16
15
  * @requires ContentHostsHelper
17
16
  *
@@ -21,13 +20,10 @@
21
20
  * within the table.
22
21
  */
23
22
  angular.module('Bastion.content-hosts').controller('ContentHostsController',
24
- ['$scope', '$q', '$state', '$location', '$window', '$uibModal', 'translate', 'Nutupane', 'Host', 'HostBulkAction', 'GlobalNotification', 'CurrentOrganization', 'ContentHostsHelper', 'ContentHostsModalHelper', '$httpParamSerializer',
25
- function ($scope, $q, $state, $location, $window, $uibModal, translate, Nutupane, Host, HostBulkAction, GlobalNotification, CurrentOrganization, ContentHostsHelper, ContentHostsModalHelper, $httpParamSerializer) {
23
+ ['$scope', '$q', '$state', '$location', '$uibModal', 'translate', 'Nutupane', 'Host', 'HostBulkAction', 'Notification', 'CurrentOrganization', 'ContentHostsHelper', 'ContentHostsModalHelper', '$httpParamSerializer',
24
+ function ($scope, $q, $state, $location, $uibModal, translate, Nutupane, Host, HostBulkAction, Notification, CurrentOrganization, ContentHostsHelper, ContentHostsModalHelper, $httpParamSerializer) {
26
25
  var nutupane, params, query;
27
26
 
28
- $scope.successMessages = [];
29
- $scope.errorMessages = [];
30
-
31
27
  if ($location.search().search) {
32
28
  query = '"' + $location.search().search + '"';
33
29
  } else {
@@ -91,13 +87,13 @@ angular.module('Bastion.content-hosts').controller('ContentHostsController',
91
87
 
92
88
  success = function (data) {
93
89
  deferred.resolve(data);
94
- $window.location = "/foreman_tasks/tasks/" + data.id;
90
+ $location.path("/foreman_tasks/tasks/" + data.id);
95
91
  };
96
92
 
97
93
  error = function (response) {
98
94
  deferred.reject(response.data.errors);
99
95
  angular.forEach(response.data.errors, function (responseError) {
100
- GlobalNotification.setErrorMessage(responseError);
96
+ Notification.setErrorMessage(responseError);
101
97
  });
102
98
  };
103
99
 
@@ -144,6 +140,11 @@ angular.module('Bastion.content-hosts').controller('ContentHostsController',
144
140
  ContentHostsModalHelper.openEnvironmentModal();
145
141
  };
146
142
 
143
+ $scope.openSetReleaseVersionModal = function () {
144
+ nutupane.invalidate();
145
+ ContentHostsModalHelper.openReleaseVersionModal();
146
+ };
147
+
147
148
  $scope.openSubscriptionsModal = function () {
148
149
  nutupane.invalidate();
149
150
  ContentHostsModalHelper.openSubscriptionsModal();
@@ -8,13 +8,14 @@
8
8
  * @requires ContentHostPackage
9
9
  * @requires translate
10
10
  * @requires Nutupane
11
+ * @requires Notification
11
12
  *
12
13
  * @description
13
14
  * Provides the functionality for the content host packages list and actions.
14
15
  */
15
16
  angular.module('Bastion.content-hosts').controller('ContentHostPackagesController',
16
- ['$scope', '$timeout', '$window', 'HostPackage', 'translate', 'Nutupane', 'BastionConfig',
17
- function ($scope, $timeout, $window, HostPackage, translate, Nutupane, BastionConfig) {
17
+ ['$scope', '$timeout', '$window', 'HostPackage', 'translate', 'Nutupane', 'BastionConfig', 'Notification',
18
+ function ($scope, $timeout, $window, HostPackage, translate, Nutupane, BastionConfig, Notification) {
18
19
  var packageActions;
19
20
 
20
21
  $scope.openEventInfo = function (event) {
@@ -29,11 +30,12 @@ angular.module('Bastion.content-hosts').controller('ContentHostPackagesControlle
29
30
  };
30
31
 
31
32
  $scope.errorHandler = function (response) {
32
- $scope.errorMessages = response.data.errors;
33
+ angular.forEach(response.data.errors, function (responseError) {
34
+ Notification.setErrorMessage(responseError);
35
+ });
33
36
  $scope.working = false;
34
37
  };
35
38
 
36
- $scope.errorMessages = [];
37
39
  $scope.working = false;
38
40
  $scope.remoteExecutionPresent = BastionConfig.remoteExecutionPresent;
39
41
  $scope.remoteExecutionByDefault = BastionConfig.remoteExecutionByDefault;
@@ -17,8 +17,6 @@ angular.module('Bastion.content-hosts').controller('ContentHostTracesController'
17
17
  ['$scope', '$timeout', '$window', 'translate', 'HostTraces', 'Nutupane', 'BastionConfig',
18
18
  function ($scope, $timeout, $window, translate, HostTraces, Nutupane, BastionConfig) {
19
19
  var tracesNutupane, params = {
20
- 'sort_by': 'updated',
21
- 'sort_order': 'DESC',
22
20
  'paged': true
23
21
  };
24
22
 
@@ -35,9 +35,6 @@ angular.module('Bastion.content-hosts').controller('ContentHostAddHostCollection
35
35
 
36
36
  $scope.table = nutupane.table;
37
37
 
38
- $scope.successMessages = [];
39
- $scope.errorMessages = [];
40
-
41
38
  $scope.addHostCollections = function (host) {
42
39
  var deferred = $q.defer(),
43
40
  success,
@@ -47,8 +44,8 @@ angular.module('Bastion.content-hosts').controller('ContentHostAddHostCollection
47
44
  hostCollectionsToAdd;
48
45
 
49
46
  success = function (response) {
50
- $scope.successMessages = [translate('Added %x host collections to content host "%y".')
51
- .replace('%x', $scope.table.numSelected).replace('%y', host.name)];
47
+ Notification.setSuccessMessage(translate('Added %x host collections to content host "%y".')
48
+ .replace('%x', $scope.table.numSelected).replace('%y', host.name));
52
49
  $scope.table.working = false;
53
50
  $scope.table.selectAll(false);
54
51
  nutupane.refresh();
@@ -58,7 +55,7 @@ angular.module('Bastion.content-hosts').controller('ContentHostAddHostCollection
58
55
 
59
56
  error = function (response) {
60
57
  deferred.reject(response.data.errors);
61
- $scope.errorMessages = response.data.errors.base;
58
+ Notification.setErrataIds(response.data.errors.base);
62
59
  $scope.table.working = false;
63
60
  };
64
61