Sha256: 790a53736ee8f780c2df9c11837e3811e42f2663485b2ed35d7d74e42f4b6caf

Contents?: true

Size: 1.22 KB

Versions: 2

Compression:

Stored size: 1.22 KB

Contents

module AnsibleTowerClient
  class Api < Connection
    attr_reader :instance
    def initialize(connection)
      @instance = connection
    end

    def hosts
      Collection.new(self, Host)
    end

    def groups
      Collection.new(self, Group)
    end

    def inventories
      Collection.new(self, Inventory)
    end

    def inventory_sources
      Collection.new(self, InventorySource)
    end

    def inventory_updates
      Collection.new(self, InventoryUpdate)
    end

    def job_templates
      Collection.new(self, JobTemplate)
    end

    def ad_hoc_commands
      Collection.new(self, AdHocCommand)
    end

    def jobs
      Collection.new(self, Job)
    end

    def method_missing(method_name, *args, &block)
      instance.respond_to?(method_name) ? instance.send(method_name, *args, &block) : super
    rescue Faraday::ConnectionFailed, Faraday::SSLError => err
      raise
    rescue Faraday::ClientError => err
      message = JSON.parse(err.message)['detail'] rescue nil
      message ||= "An unknown error was returned from the provider"
      raise AnsibleTowerClient::ConnectionError, message
    end

    def respond_to_missing?(method, _include_private = false)
      instance.respond_to?(method)
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
ansible_tower_client-0.3.3 lib/ansible_tower_client/api.rb
ansible_tower_client-0.3.2 lib/ansible_tower_client/api.rb