Class: Katello::Api::V2::ContentViewVersionsController

Inherits:
ApiController
  • Object
show all
Includes:
Concerns::Api::V2::BulkHostsExtensions, Concerns::FilteredAutoCompleteSearch
Defined in:
app/controllers/katello/api/v2/content_view_versions_controller.rb

Constant Summary

Constants included from Concerns::FilteredAutoCompleteSearch

Concerns::FilteredAutoCompleteSearch::PAGE_SIZE

Instance Method Summary collapse

Methods included from Concerns::FilteredAutoCompleteSearch

#auto_complete_search

Methods inherited from ApiController

#check_katello_agent_not_disabled, #deprecate_katello_agent, #empty_search_query?, #full_result_response, #katello_agent_removal_release, #resource_class, #scoped_search, #skip_session

Methods included from Rendering

#respond_for_async, #respond_for_bulk_async, #respond_for_create, #respond_for_destroy, #respond_for_index, #respond_for_show, #respond_for_status, #respond_for_update, #respond_with_template, #respond_with_template_collection, #respond_with_template_resource, #try_specific_collection_template, #try_specific_resource_template

Methods included from Katello::Api::Version2

#api_version

Instance Method Details

#destroyObject



90
91
92
93
# File 'app/controllers/katello/api/v2/content_view_versions_controller.rb', line 90

def destroy
  task = async_task(::Actions::Katello::ContentViewVersion::Destroy, @content_view_version)
  respond_for_async :resource => task
end

#incremental_updateObject



117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
# File 'app/controllers/katello/api/v2/content_view_versions_controller.rb', line 117

def incremental_update
  if params[:add_content].values.flatten.empty?
    fail HttpErrors::BadRequest, _("Incremental update requires at least one content unit")
  end
  any_environments = params[:content_view_version_environments].any? { |cvve| cvve[:environment_ids].try(:any?) }
  if params[:add_content]&.key?(:errata_ids) && params[:update_hosts] && any_environments
    hosts = calculate_hosts_for_incremental(params[:update_hosts], params[:propagate_to_composites])
  else
    hosts = []
  end

  validate_content(params[:add_content])
  resolve_dependencies = params.fetch(:resolve_dependencies, true)
  task = async_task(::Actions::Katello::ContentView::IncrementalUpdates, @content_view_version_environments, @composite_version_environments,
                    params[:add_content], resolve_dependencies, hosts, params[:description],
                    Setting[:remote_execution_by_default] && ::Katello.with_remote_execution?)
  respond_for_async :resource => task
end

#indexObject



26
27
28
29
30
31
# File 'app/controllers/katello/api/v2/content_view_versions_controller.rb', line 26

def index
  options = {
    :includes => [:content_view, :environments, :composite_content_views, :history => :task]
  }
  respond(:collection => scoped_search(index_relation.distinct, :version, :desc, options))
end

#index_relationObject



33
34
35
36
37
38
39
40
41
42
43
# File 'app/controllers/katello/api/v2/content_view_versions_controller.rb', line 33

def index_relation
  version_number = params.permit(:version)[:version]
  versions = ContentViewVersion.readable
  versions = versions.triggered_by(params[:triggered_by_id]) if params[:triggered_by_id]
  versions = versions.with_organization_id(params[:organization_id]) if params[:organization_id]
  versions = versions.where(:content_view_id => @view.id) if @view
  versions = versions.for_version(version_number) if version_number
  versions = versions.in_environment(@environment) if @environment
  versions = versions.component_of(params[:composite_version_id]) if params[:composite_version_id]
  versions
end

#promoteObject



56
57
58
59
60
61
# File 'app/controllers/katello/api/v2/content_view_versions_controller.rb', line 56

def promote
  is_force = ::Foreman::Cast.to_bool(params[:force])
  task = async_task(::Actions::Katello::ContentView::Promote,
                    @content_view_version, @environments, is_force, params[:description])
  respond_for_async :resource => task
end

#republish_repositoriesObject



80
81
82
83
84
85
86
# File 'app/controllers/katello/api/v2/content_view_versions_controller.rb', line 80

def republish_repositories
  unless ::Foreman::Cast.to_bool(params[:force])
    fail HttpErrors::BadRequest, _("Metadata republishing must be forced because it is a dangerous operation.")
  end
  task = async_task(::Actions::Katello::ContentViewVersion::RepublishRepositories, @content_view_version)
  respond_for_async :resource => task
end

#showObject



47
48
49
# File 'app/controllers/katello/api/v2/content_view_versions_controller.rb', line 47

def show
  respond :resource => @content_view_version
end

#updateObject



66
67
68
69
70
71
72
73
74
75
# File 'app/controllers/katello/api/v2/content_view_versions_controller.rb', line 66

def update
  history = @content_view_version.history.publish.first
  if history.blank?
    fail HttpErrors::BadRequest, _("This content view version doesn't have a history.")
  else
    history.notes = params[:description]
    history.save!
    respond_for_show(:resource => @content_view_version)
  end
end