Sha256: 4bda34f1a07f3efcf4b6ea31bdb267d8d6a6bdc7d3902868ae7b320f09d93d28

Contents?: true

Size: 1.58 KB

Versions: 104

Compression:

Stored size: 1.58 KB

Contents

module Katello
  module Concerns
    module Api::V2::HostsControllerExtensions
      extend ActiveSupport::Concern
      include ForemanTasks::Triggers

      module Overrides
        def action_permission
          case params[:action]
          when 'host_collections'
            'edit'
          else
            super
          end
        end
      end

      included do
        prepend Overrides
        before_action :purpose_addon_params, only: [:create, :update]

        def destroy
          Katello::RegistrationManager.unregister_host(@host, :unregistering => false)
          process_response(:object => @host)
        end

        api :PUT, "/hosts/:host_id/host_collections", N_("Alter a hosts host collections")
        param :host_id, :number, :required => true, :desc => N_("The id of the host to alter")
        param :host_collection_ids, Array, :required => true, :desc => N_("List of host collection ids to update")
        def host_collections
          @host.host_collection_ids = params[:host_collection_ids]
          @host.save!
          render(:locals => { :resource => @host }, :template => 'katello/api/v2/hosts/show', :status => :ok)
        end

        def purpose_addon_params
          addons = params.dig(:host, :subscription_facet_attributes, :purpose_addons)
          return if addons.nil?
          params[:host][:subscription_facet_attributes][:purpose_addon_ids] = addons.map { |addon_name| ::Katello::PurposeAddon.find_or_create_by(name: addon_name).id }
          params[:host][:subscription_facet_attributes].delete(:purpose_addons)
        end
      end
    end
  end
end

Version data entries

104 entries across 104 versions & 1 rubygems

Version Path
katello-4.4.2.2 app/controllers/katello/concerns/api/v2/hosts_controller_extensions.rb
katello-4.4.2.1 app/controllers/katello/concerns/api/v2/hosts_controller_extensions.rb
katello-4.4.2 app/controllers/katello/concerns/api/v2/hosts_controller_extensions.rb
katello-4.4.1 app/controllers/katello/concerns/api/v2/hosts_controller_extensions.rb
katello-4.4.0.2 app/controllers/katello/concerns/api/v2/hosts_controller_extensions.rb
katello-4.4.0.1 app/controllers/katello/concerns/api/v2/hosts_controller_extensions.rb
katello-4.3.1 app/controllers/katello/concerns/api/v2/hosts_controller_extensions.rb
katello-4.4.0 app/controllers/katello/concerns/api/v2/hosts_controller_extensions.rb
katello-4.4.0.rc2 app/controllers/katello/concerns/api/v2/hosts_controller_extensions.rb
katello-4.4.0.rc1 app/controllers/katello/concerns/api/v2/hosts_controller_extensions.rb
katello-4.2.2 app/controllers/katello/concerns/api/v2/hosts_controller_extensions.rb
katello-4.3.0 app/controllers/katello/concerns/api/v2/hosts_controller_extensions.rb
katello-4.3.0.rc4 app/controllers/katello/concerns/api/v2/hosts_controller_extensions.rb
katello-4.3.0.rc3 app/controllers/katello/concerns/api/v2/hosts_controller_extensions.rb
katello-4.3.0.rc2.1 app/controllers/katello/concerns/api/v2/hosts_controller_extensions.rb
katello-4.3.0.rc2 app/controllers/katello/concerns/api/v2/hosts_controller_extensions.rb
katello-4.3.0.rc1 app/controllers/katello/concerns/api/v2/hosts_controller_extensions.rb
katello-4.2.1 app/controllers/katello/concerns/api/v2/hosts_controller_extensions.rb
katello-4.2.0.1 app/controllers/katello/concerns/api/v2/hosts_controller_extensions.rb
katello-4.1.4 app/controllers/katello/concerns/api/v2/hosts_controller_extensions.rb