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
@@ -8,7 +8,7 @@
8
8
  * @requires ContentViewVersion
9
9
  * @requires AggregateTask
10
10
  * @requires ApiErrorHandler
11
- * @requires GlobalNotification
11
+ * @requires Notification
12
12
  *
13
13
  * @description
14
14
  * Provides the functionality specific to ContentViews for use with the table view UI pattern.
@@ -16,8 +16,8 @@
16
16
  * within the table.
17
17
  */
18
18
  angular.module('Bastion.content-views').controller('ContentViewVersionsController',
19
- ['$scope', 'translate', 'Nutupane', 'ContentViewVersion', 'AggregateTask', 'ApiErrorHandler', 'GlobalNotification',
20
- function ($scope, translate, Nutupane, ContentViewVersion, AggregateTask, ApiErrorHandler, GlobalNotification) {
19
+ ['$scope', 'translate', 'Nutupane', 'ContentViewVersion', 'AggregateTask', 'ApiErrorHandler', 'Notification',
20
+ function ($scope, translate, Nutupane, ContentViewVersion, AggregateTask, ApiErrorHandler, Notification) {
21
21
  var nutupane;
22
22
 
23
23
  function pluralSafe(count, strings) {
@@ -104,11 +104,11 @@ angular.module('Bastion.content-views').controller('ContentViewVersionsControlle
104
104
 
105
105
  if (task.result === 'success') {
106
106
  if (task.label === taskTypes.promotion) {
107
- GlobalNotification.setSuccessMessage(promotionCompleteMessage(version, task));
107
+ Notification.setSuccessMessage(promotionCompleteMessage(version, task));
108
108
  } else if (task.label === taskTypes.publish) {
109
- GlobalNotification.setSuccessMessage(publishCompleteMessage(version));
109
+ Notification.setSuccessMessage(publishCompleteMessage(version));
110
110
  } else if (task.label === taskTypes.deletion) {
111
- GlobalNotification.setSuccessMessage(deletionCompleteMessage(version, task));
111
+ Notification.setSuccessMessage(deletionCompleteMessage(version, task));
112
112
  $scope.reloadVersions();
113
113
  }
114
114
  }
@@ -7,15 +7,15 @@
7
7
  * @requires Nutupane
8
8
  * @requires Filter
9
9
  * @requires Rule
10
- * @requires GlobalNotification
10
+ * @requires Notification
11
11
  *
12
12
  * @description
13
13
  * Handles loading of errata that is available to be added to a filter and provides
14
14
  * functionality to create filter rules based off selected errata.
15
15
  */
16
16
  angular.module('Bastion.content-views').controller('AvailableErrataFilterController',
17
- ['$scope', 'translate', 'Nutupane', 'Erratum', 'Rule', 'GlobalNotification',
18
- function ($scope, translate, Nutupane, Erratum, Rule, GlobalNotification) {
17
+ ['$scope', 'translate', 'Nutupane', 'Erratum', 'Rule', 'Notification',
18
+ function ($scope, translate, Nutupane, Erratum, Rule, Notification) {
19
19
 
20
20
  var nutupane, filterByDate;
21
21
 
@@ -29,13 +29,13 @@ angular.module('Bastion.content-views').controller('AvailableErrataFilterControl
29
29
  }
30
30
 
31
31
  $scope.filter.rules = _.union($scope.filter.rules, rules);
32
- GlobalNotification.setSuccessMessage(translate('Errata successfully added.'));
32
+ Notification.setSuccessMessage(translate('Errata successfully added.'));
33
33
  nutupane.table.selectAllResults(false);
34
34
  nutupane.refresh();
35
35
  }
36
36
 
37
37
  function failure(response) {
38
- GlobalNotification.setErrorMessage(response.data.displayMessage);
38
+ Notification.setErrorMessage(response.data.displayMessage);
39
39
  }
40
40
 
41
41
  function saveRules(rules, filter) {
@@ -7,15 +7,15 @@
7
7
  * @requires Filter
8
8
  * @requires Rule
9
9
  * @requires Nutupane
10
- * @requires GlobalNotification
10
+ * @requires Notification
11
11
  *
12
12
  * @description
13
13
  * Handles fetching package groups that are available to add to a filter and saving
14
14
  * each selected package group as a filter rule.
15
15
  */
16
16
  angular.module('Bastion.content-views').controller('AvailablePackageGroupFilterController',
17
- ['$scope', 'translate', 'PackageGroup', 'Rule', 'Nutupane', 'GlobalNotification',
18
- function ($scope, translate, PackageGroup, Rule, Nutupane, GlobalNotification) {
17
+ ['$scope', 'translate', 'PackageGroup', 'Rule', 'Nutupane', 'Notification',
18
+ function ($scope, translate, PackageGroup, Rule, Nutupane, Notification) {
19
19
  var nutupane;
20
20
 
21
21
  nutupane = new Nutupane(
@@ -34,12 +34,12 @@ angular.module('Bastion.content-views').controller('AvailablePackageGroupFilterC
34
34
  function success(rule) {
35
35
  nutupane.removeRow(rule.uuid, 'uuid');
36
36
  $scope.filter.rules.push(rule);
37
- GlobalNotification.setSuccessMessage(translate('Package Group successfully added.'));
37
+ Notification.setSuccessMessage(translate('Package Group successfully added.'));
38
38
  }
39
39
 
40
40
  function failure(response) {
41
41
  angular.forEach(response.data.displayMessage, function (error) {
42
- GlobalNotification.setErrorMessage(error);
42
+ Notification.setErrorMessage(error);
43
43
  });
44
44
  }
45
45
 
@@ -5,14 +5,14 @@
5
5
  * @requires $scope
6
6
  * @requires translate
7
7
  * @requires Rule
8
- * @requires GlobalNotification
8
+ * @requires Notification
9
9
  *
10
10
  * @description
11
11
  * Handles creating an errata filter that allows specification of a start date, end date and/or
12
12
  * set of errata types by which to dynamically filter.
13
13
  */
14
14
  angular.module('Bastion.content-views').controller('DateTypeErrataFilterController',
15
- ['$scope', 'translate', 'Rule', 'GlobalNotification', function ($scope, translate, Rule, GlobalNotification) {
15
+ ['$scope', 'translate', 'Rule', 'Notification', function ($scope, translate, Rule, Notification) {
16
16
 
17
17
  function convertRuleStringsToDates() {
18
18
  $scope.rule['start_date'] = new Date($scope.rule['start_date']);
@@ -21,13 +21,13 @@ angular.module('Bastion.content-views').controller('DateTypeErrataFilterControll
21
21
 
22
22
  function success() {
23
23
  convertRuleStringsToDates();
24
- GlobalNotification.setSuccessMessage(translate('Updated errata filter - ' + $scope.filter.name));
24
+ Notification.setSuccessMessage(translate('Updated errata filter - ' + $scope.filter.name));
25
25
  }
26
26
 
27
27
  function failure(response) {
28
28
  $scope.rule.working = false;
29
29
  angular.forEach(response.data.errors, function (error) {
30
- GlobalNotification.setErrorMessage(error);
30
+ Notification.setErrorMessage(error);
31
31
  });
32
32
  }
33
33
 
@@ -63,7 +63,13 @@ angular.module('Bastion.content-views').controller('DateTypeErrataFilterControll
63
63
  };
64
64
 
65
65
  $scope.save = function (rule, filter) {
66
- var params = {filterId: filter.id, ruleId: rule.id};
66
+ var params;
67
+
68
+ // Remove any hours from the dates
69
+ rule['start_date'].setHours(0, 0, 0, 0);
70
+ rule['end_date'].setHours(0, 0, 0, 0);
71
+
72
+ params = {filterId: filter.id, ruleId: rule.id};
67
73
  rule.$update(params, success, failure);
68
74
  $scope.filter.rules[0] = rule;
69
75
  };
@@ -10,17 +10,17 @@
10
10
  * @requires Filter
11
11
  * @requires Rule
12
12
  * @requires DockerTag
13
- * @requires GlobalNotification
13
+ * @requires Notification
14
14
  *
15
15
  * @description
16
16
  * Handles docker tag filter rules for a content view.
17
17
  */
18
18
  angular.module('Bastion.content-views').controller('DockerTagFilterController',
19
- ['$scope', '$location', 'translate', 'Nutupane', 'CurrentOrganization', 'Filter', 'Rule', 'DockerTag', 'GlobalNotification', function ($scope, $location, translate, Nutupane, CurrentOrganization, Filter, Rule, DockerTag, GlobalNotification) {
19
+ ['$scope', '$location', 'translate', 'Nutupane', 'CurrentOrganization', 'Filter', 'Rule', 'DockerTag', 'Notification', function ($scope, $location, translate, Nutupane, CurrentOrganization, Filter, Rule, DockerTag, Notification) {
20
20
  var nutupane, params;
21
21
 
22
22
  function failure(response) {
23
- GlobalNotification.setErrorMessage(response.data.displayMessage);
23
+ Notification.setErrorMessage(response.data.displayMessage);
24
24
  }
25
25
 
26
26
  function createRule(rule) {
@@ -31,7 +31,7 @@ angular.module('Bastion.content-views').controller('DockerTagFilterController',
31
31
  rule.editMode = false;
32
32
  rule.working = false;
33
33
 
34
- GlobalNotification.setSuccessMessage(translate('Package successfully added.'));
34
+ Notification.setSuccessMessage(translate('Package successfully added.'));
35
35
  };
36
36
 
37
37
  if ($scope.valid(rule)) {
@@ -48,7 +48,7 @@ angular.module('Bastion.content-views').controller('DockerTagFilterController',
48
48
  rule.previous = {};
49
49
  rule.editMode = false;
50
50
  rule.working = false;
51
- GlobalNotification.setSuccessMessage(translate('Filter rule successfully updated.'));
51
+ Notification.setSuccessMessage(translate('Filter rule successfully updated.'));
52
52
  };
53
53
 
54
54
  error = function () {
@@ -63,7 +63,7 @@ angular.module('Bastion.content-views').controller('DockerTagFilterController',
63
63
 
64
64
  success = function () {
65
65
  nutupane.removeRow(ruleId);
66
- GlobalNotification.setSuccessMessage(translate('Filter rule successfully removed.'));
66
+ Notification.setSuccessMessage(translate('Filter rule successfully removed.'));
67
67
  };
68
68
 
69
69
  Rule.delete({filterId: $scope.$stateParams.filterId, ruleId: ruleId}, success, failure);
@@ -5,27 +5,27 @@
5
5
  * @requires $scope
6
6
  * @requires $q
7
7
  * @requires translate
8
- * @requires GlobalNotification
8
+ * @requires Notification
9
9
  *
10
10
  * @description
11
11
  * Provides functionality for editing name and description of content view filters.
12
12
  */
13
13
  angular.module('Bastion.content-views').controller('FilterEditController',
14
- ['$scope', '$q', 'translate', 'GlobalNotification', function ($scope, $q, translate, GlobalNotification) {
14
+ ['$scope', '$q', 'translate', 'Notification', function ($scope, $q, translate, Notification) {
15
15
  $scope.save = function (filter) {
16
16
  var deferred = $q.defer();
17
17
  var success;
18
18
  var failure = function (response) {
19
19
  deferred.reject(response);
20
20
  angular.forEach(response.data.errors, function (errorMessage) {
21
- GlobalNotification.setErrorMessage(translate("An error occurred saving the Filter: ") + errorMessage);
21
+ Notification.setErrorMessage(translate("An error occurred saving the Filter: ") + errorMessage);
22
22
  });
23
23
  $scope.working = false;
24
24
  };
25
25
 
26
26
  success = function (response) {
27
27
  deferred.resolve(response);
28
- GlobalNotification.setSuccessMessage(translate('Filter Saved'));
28
+ Notification.setSuccessMessage(translate('Filter Saved'));
29
29
  $scope.working = false;
30
30
  $scope.$emit('filter.updated');
31
31
  };
@@ -7,15 +7,15 @@
7
7
  * @requires Nutupane
8
8
  * @requires Filter
9
9
  * @requires Rule
10
- * @requires GlobalNotification
10
+ * @requires Notification
11
11
  *
12
12
  * @description
13
13
  * Handles displaying a list of errata currently added to the filter and the ability
14
14
  * to remove errata from the filter.
15
15
  */
16
16
  angular.module('Bastion.content-views').controller('ErrataFilterListController',
17
- ['$scope', 'translate', 'Nutupane', 'Erratum', 'Rule', 'GlobalNotification',
18
- function ($scope, translate, Nutupane, Erratum, Rule, GlobalNotification) {
17
+ ['$scope', 'translate', 'Nutupane', 'Erratum', 'Rule', 'Notification',
18
+ function ($scope, translate, Nutupane, Erratum, Rule, Notification) {
19
19
  var nutupane;
20
20
 
21
21
  function findRules(errataIds) {
@@ -41,11 +41,11 @@ angular.module('Bastion.content-views').controller('ErrataFilterListController',
41
41
  $scope.filter.rules = _.reject($scope.filter.rules, function (filterRule) {
42
42
  return rule.id === filterRule.id;
43
43
  });
44
- GlobalNotification.setSuccessMessage(translate('Errata successfully removed.'));
44
+ Notification.setSuccessMessage(translate('Errata successfully removed.'));
45
45
  }
46
46
 
47
47
  function failure(response) {
48
- GlobalNotification.setErrorMessage(response.data.displayMessage);
48
+ Notification.setErrorMessage(response.data.displayMessage);
49
49
  }
50
50
 
51
51
  $scope.nutupane = nutupane = new Nutupane(Erratum, {
@@ -6,14 +6,14 @@
6
6
  * @requires translate
7
7
  * @requires Filter
8
8
  * @requires ContentViewRepositoriesUtl
9
- * @requires GlobalNotification
9
+ * @requires Notification
10
10
  *
11
11
  * @description
12
12
  * Provides a way for users to select which repositories the filter applies to.
13
13
  */
14
14
  angular.module('Bastion.content-views').controller('FilterRepositoriesController',
15
- ['$scope', 'translate', 'Filter', 'ContentViewRepositoriesUtil', 'GlobalNotification',
16
- function ($scope, translate, Filter, ContentViewRepositoriesUtil, GlobalNotification) {
15
+ ['$scope', 'translate', 'Filter', 'ContentViewRepositoriesUtil', 'Notification',
16
+ function ($scope, translate, Filter, ContentViewRepositoriesUtil, Notification) {
17
17
  var refreshTable, success, error;
18
18
 
19
19
  ContentViewRepositoriesUtil($scope);
@@ -51,12 +51,12 @@ angular.module('Bastion.content-views').controller('FilterRepositoriesController
51
51
 
52
52
  success = function (filter) {
53
53
  refreshTable(filter);
54
- GlobalNotification.setSuccessMessage(translate('Affected repositories have been updated.'));
54
+ Notification.setSuccessMessage(translate('Affected repositories have been updated.'));
55
55
  };
56
56
 
57
57
  error = function (response) {
58
58
  angular.forEach(response.errors, function (responseError) {
59
- GlobalNotification.setErrorMessage(responseError);
59
+ Notification.setErrorMessage(responseError);
60
60
  });
61
61
  };
62
62
 
@@ -69,7 +69,7 @@ angular.module('Bastion.content-views').controller('FilterRepositoriesController
69
69
  var repositoryIds = _.map($scope.table.getSelected(), 'id');
70
70
 
71
71
  if (repositoryIds.length === 0) {
72
- GlobalNotification.setErrorMessage(translate('You must select at least one repository.'));
72
+ Notification.setErrorMessage(translate('You must select at least one repository.'));
73
73
  } else {
74
74
  Filter.update({id: $scope.filter.id, 'repository_ids': repositoryIds}, success, error);
75
75
  }
@@ -10,7 +10,7 @@
10
10
  angular.module('Bastion.content-views').factory('Filter',
11
11
  ['BastionResource', function (BastionResource) {
12
12
 
13
- return BastionResource('/katello/api/v2/content_view_filters/:filterId/:action',
13
+ return BastionResource('katello/api/v2/content_view_filters/:filterId/:action',
14
14
  {filterId: '@id', 'content_view_id': '@content_view.id'},
15
15
  {
16
16
  autocomplete: {method: 'GET', isArray: true, params: {filterId: 'auto_complete_search'}},
@@ -6,13 +6,13 @@
6
6
  * @requires translate
7
7
  * @requires Filter
8
8
  * @requires Nutupane
9
- * @requires GlobalNotification
9
+ * @requires Notification
10
10
  *
11
11
  * @description
12
12
  * Handles loading all filters for a content view.
13
13
  */
14
14
  angular.module('Bastion.content-views').controller('FiltersController',
15
- ['$scope', 'translate', 'Filter', 'Nutupane', 'GlobalNotification', function ($scope, translate, Filter, Nutupane, GlobalNotification) {
15
+ ['$scope', 'translate', 'Filter', 'Nutupane', 'Notification', function ($scope, translate, Filter, Nutupane, Notification) {
16
16
  var nutupane, filterTypes;
17
17
 
18
18
  function removeFilter(id) {
@@ -20,11 +20,11 @@ angular.module('Bastion.content-views').controller('FiltersController',
20
20
 
21
21
  success = function () {
22
22
  nutupane.removeRow(id);
23
- GlobalNotification.setSuccessMessage(translate('Filters successfully removed.'));
23
+ Notification.setSuccessMessage(translate('Filters successfully removed.'));
24
24
  };
25
25
 
26
26
  failure = function (response) {
27
- GlobalNotification.setErrorMessage(response.data.displayMessage);
27
+ Notification.setErrorMessage(response.data.displayMessage);
28
28
  };
29
29
 
30
30
  Filter.delete({filterId: id}, success, failure);
@@ -6,12 +6,12 @@
6
6
  * @requires translate
7
7
  * @requires Filter
8
8
  * @requires Rule
9
- * @requires GlobalNotification
9
+ * @requires Notification
10
10
  *
11
11
  * @description
12
12
  */
13
13
  angular.module('Bastion.content-views').controller('NewFilterController',
14
- ['$scope', 'translate', 'Filter', 'Rule', 'GlobalNotification', function ($scope, translate, Filter, Rule, GlobalNotification) {
14
+ ['$scope', 'translate', 'Filter', 'Rule', 'Notification', function ($scope, translate, Filter, Rule, Notification) {
15
15
  var filterType;
16
16
 
17
17
  function transitionToDetails(filter) {
@@ -44,7 +44,7 @@ angular.module('Bastion.content-views').controller('NewFilterController',
44
44
  };
45
45
 
46
46
  error = function (response) {
47
- GlobalNotification.setErrorMessage(response.data.displayMessage);
47
+ Notification.setErrorMessage(response.data.displayMessage);
48
48
  };
49
49
 
50
50
  rule.$save({filterId: filter.id}, addSuccess, error);
@@ -10,17 +10,17 @@
10
10
  * @requires Filter
11
11
  * @requires Rule
12
12
  * @requires Package
13
- * @requires GlobalNotification
13
+ * @requires Notification
14
14
  *
15
15
  * @description
16
16
  * Handles package filter rules for a content view.
17
17
  */
18
18
  angular.module('Bastion.content-views').controller('PackageFilterController',
19
- ['$scope', '$location', 'translate', 'Nutupane', 'CurrentOrganization', 'Filter', 'Rule', 'Package', 'GlobalNotification', function ($scope, $location, translate, Nutupane, CurrentOrganization, Filter, Rule, Package, GlobalNotification) {
19
+ ['$scope', '$location', 'translate', 'Nutupane', 'CurrentOrganization', 'Filter', 'Rule', 'Package', 'Notification', function ($scope, $location, translate, Nutupane, CurrentOrganization, Filter, Rule, Package, Notification) {
20
20
  var nutupane, params;
21
21
 
22
22
  function failure(response) {
23
- GlobalNotification.setErrorMessage(response.data.displayMessage);
23
+ Notification.setErrorMessage(response.data.displayMessage);
24
24
  }
25
25
 
26
26
  function createRule(rule) {
@@ -31,7 +31,7 @@ angular.module('Bastion.content-views').controller('PackageFilterController',
31
31
  rule.editMode = false;
32
32
  rule.working = false;
33
33
 
34
- GlobalNotification.setSuccessMessage(translate('Package successfully added.'));
34
+ Notification.setSuccessMessage(translate('Package successfully added.'));
35
35
  };
36
36
 
37
37
  if ($scope.valid(rule)) {
@@ -48,7 +48,7 @@ angular.module('Bastion.content-views').controller('PackageFilterController',
48
48
  rule.previous = {};
49
49
  rule.editMode = false;
50
50
  rule.working = false;
51
- GlobalNotification.setSuccessMessage(translate('Package successfully updated.'));
51
+ Notification.setSuccessMessage(translate('Package successfully updated.'));
52
52
  };
53
53
 
54
54
  error = function () {
@@ -63,7 +63,7 @@ angular.module('Bastion.content-views').controller('PackageFilterController',
63
63
 
64
64
  success = function () {
65
65
  nutupane.removeRow(ruleId);
66
- GlobalNotification.setSuccessMessage(translate('Package successfully removed.'));
66
+ Notification.setSuccessMessage(translate('Package successfully removed.'));
67
67
  };
68
68
 
69
69
  Rule.delete({filterId: $scope.$stateParams.filterId, ruleId: ruleId}, success, failure);
@@ -7,15 +7,15 @@
7
7
  * @requires Filter
8
8
  * @requires Rule
9
9
  * @requires Nutupane
10
- * @requires GlobalNotification
10
+ * @requires Notification
11
11
  *
12
12
  * @description
13
13
  * Handles loading package groups that have been added to the filter via filter rules
14
14
  * and provides a method to remove them.
15
15
  */
16
16
  angular.module('Bastion.content-views').controller('PackageGroupFilterListController',
17
- ['$scope', 'translate', 'PackageGroup', 'Rule', 'Nutupane', 'GlobalNotification',
18
- function ($scope, translate, PackageGroup, Rule, Nutupane, GlobalNotification) {
17
+ ['$scope', 'translate', 'PackageGroup', 'Rule', 'Nutupane', 'Notification',
18
+ function ($scope, translate, PackageGroup, Rule, Nutupane, Notification) {
19
19
  var nutupane;
20
20
 
21
21
  function success(rule) {
@@ -23,11 +23,11 @@ angular.module('Bastion.content-views').controller('PackageGroupFilterListContro
23
23
  $scope.filter.rules = _.reject($scope.filter.rules, function (filterRule) {
24
24
  return rule.id === filterRule.id;
25
25
  });
26
- GlobalNotification.setSuccessMessage(translate('Package Group successfully removed.'));
26
+ Notification.setSuccessMessage(translate('Package Group successfully removed.'));
27
27
  }
28
28
 
29
29
  function failure(response) {
30
- GlobalNotification.setErrorMessage(response.data.displayMessage);
30
+ Notification.setErrorMessage(response.data.displayMessage);
31
31
  }
32
32
 
33
33
  function findRules(packageGroupIds) {