Sha256: b0a426749081cc22d33f1547bd9f6a90ee4e364b9bf57263c2113c101bc9ccb5

Contents?: true

Size: 911 Bytes

Versions: 1

Compression:

Stored size: 911 Bytes

Contents

module ForemanAnsible
  module Concerns
    # Extra methods to enforce Ansible roles on a host or multiple hosts
    module HostsControllerExtensions
      extend ActiveSupport::Concern

      def play_roles
        find_resource
        RolePlayer.new(@host).play
        notice(_('Ansible roles running on background: ') +
               @host.ansible_roles.map(&:name).join(', '))
        redirect_to :back
      end

      def multiple_play_roles
        find_multiple
        @hosts.each do |host|
          RolePlayer.new(host).play
        end
        notice(_('Ansible roles running on background for hosts: ') +
               @hosts.map(&:name).join(', '))
        redirect_to :hosts
      end

      private

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

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
foreman_ansible-1.0 app/controllers/foreman_ansible/concerns/hosts_controller_extensions.rb