Sha256: 98b15d1899020eb91f028f70a2ee77576545dcec42ca16194b772b64b1fc31bc

Contents?: true

Size: 1.16 KB

Versions: 6

Compression:

Stored size: 1.16 KB

Contents

module ForemanAnsible
  module Api
    module V2
      # Extends the hosts controller to support playing ansible roles
      module HostsControllerExtensions
        extend ActiveSupport::Concern
        include ForemanTasks::Triggers
        include ::ForemanAnsible::Concerns::JobInvocationHelper

        included do
          api :POST, '/hosts/:id/play_roles',
              N_('Plays Ansible roles on a host')
          param :id, String, :required => true

          def play_roles
            composer = job_composer(:ansible_run_host, @host)
            process_response composer.trigger!, composer.job_invocation
          end

          api :POST, '/hosts/play_roles', N_('Plays Ansible roles on hosts')
          param :id, Array, :required => true

          def multiple_play_roles
            composer = job_composer(:ansible_run_host, @host)
            process_response composer.trigger!, composer.job_invocation
          end
        end

        private

        def action_permission
          case params[:action]
          when 'play_roles', 'multiple_play_roles'
            :view
          else
            super
          end
        end
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
foreman_ansible-2.0.4 app/controllers/foreman_ansible/api/v2/hosts_controller_extensions.rb
foreman_ansible-2.0.3 app/controllers/foreman_ansible/api/v2/hosts_controller_extensions.rb
foreman_ansible-2.0.2 app/controllers/foreman_ansible/api/v2/hosts_controller_extensions.rb
foreman_ansible-2.1.0 app/controllers/foreman_ansible/api/v2/hosts_controller_extensions.rb
foreman_ansible-2.0.1 app/controllers/foreman_ansible/api/v2/hosts_controller_extensions.rb
foreman_ansible-2.0.0 app/controllers/foreman_ansible/api/v2/hosts_controller_extensions.rb