Sha256: 02566120f47a3e561220fc0f1b143a4fbbb4fb62bb7e50127f7a25d8681a736a

Contents?: true

Size: 1.58 KB

Versions: 46

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 host's 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

46 entries across 46 versions & 1 rubygems

Version Path
katello-4.13.1 app/controllers/katello/concerns/api/v2/hosts_controller_extensions.rb
katello-4.13.0 app/controllers/katello/concerns/api/v2/hosts_controller_extensions.rb
katello-4.12.1 app/controllers/katello/concerns/api/v2/hosts_controller_extensions.rb
katello-4.13.0.rc1 app/controllers/katello/concerns/api/v2/hosts_controller_extensions.rb
katello-4.12.0 app/controllers/katello/concerns/api/v2/hosts_controller_extensions.rb
katello-4.12.0.rc3 app/controllers/katello/concerns/api/v2/hosts_controller_extensions.rb
katello-4.12.0.rc2 app/controllers/katello/concerns/api/v2/hosts_controller_extensions.rb
katello-4.12.0.rc1 app/controllers/katello/concerns/api/v2/hosts_controller_extensions.rb
katello-4.11.1 app/controllers/katello/concerns/api/v2/hosts_controller_extensions.rb
katello-4.11.0 app/controllers/katello/concerns/api/v2/hosts_controller_extensions.rb
katello-4.11.0.rc2 app/controllers/katello/concerns/api/v2/hosts_controller_extensions.rb
katello-4.11.0.rc1 app/controllers/katello/concerns/api/v2/hosts_controller_extensions.rb
katello-4.10.0 app/controllers/katello/concerns/api/v2/hosts_controller_extensions.rb
katello-4.9.2 app/controllers/katello/concerns/api/v2/hosts_controller_extensions.rb
katello-4.10.0.rc2 app/controllers/katello/concerns/api/v2/hosts_controller_extensions.rb
katello-4.10.0.rc1 app/controllers/katello/concerns/api/v2/hosts_controller_extensions.rb
katello-4.8.4 app/controllers/katello/concerns/api/v2/hosts_controller_extensions.rb
katello-4.9.1 app/controllers/katello/concerns/api/v2/hosts_controller_extensions.rb
katello-4.8.3 app/controllers/katello/concerns/api/v2/hosts_controller_extensions.rb
katello-4.9.0 app/controllers/katello/concerns/api/v2/hosts_controller_extensions.rb