class AnsibleTowerClient::Api

Constants

DEFAULT_ERROR_MSG

Attributes

instance[R]

Public Class Methods

new(connection) click to toggle source
# File lib/ansible_tower_client/api.rb, line 10
def initialize(connection)
  @instance = connection
end

Public Instance Methods

activity_stream() click to toggle source
# File lib/ansible_tower_client/api.rb, line 29
def activity_stream
  Collection.new(self, activity_stream_class)
end
activity_stream_class() click to toggle source

Object class accessors patched for the appropriate version of the API

# File lib/ansible_tower_client/api.rb, line 147
def activity_stream_class
  @activity_stream_class ||= AnsibleTowerClient::ActivityStream
end
ad_hoc_command_class() click to toggle source
# File lib/ansible_tower_client/api.rb, line 151
def ad_hoc_command_class
  @ad_hoc_command_class ||= AnsibleTowerClient::AdHocCommand
end
ad_hoc_commands() click to toggle source
# File lib/ansible_tower_client/api.rb, line 33
def ad_hoc_commands
  Collection.new(self, ad_hoc_command_class)
end
config() click to toggle source
# File lib/ansible_tower_client/api.rb, line 14
def config
  JSON.parse(get("config/").body)
end
credential_class() click to toggle source
# File lib/ansible_tower_client/api.rb, line 155
def credential_class
  @credential_class ||= AnsibleTowerClient::Credential
end
credential_type_class() click to toggle source
# File lib/ansible_tower_client/api.rb, line 159
def credential_type_class
  @credential_type_class ||= AnsibleTowerClient::CredentialType
end
credential_types() click to toggle source
# File lib/ansible_tower_client/api.rb, line 41
def credential_types
  Collection.new(self, credential_type_class)
end
credentials() click to toggle source
# File lib/ansible_tower_client/api.rb, line 37
def credentials
  Collection.new(self, credential_class)
end
group_class() click to toggle source
# File lib/ansible_tower_client/api.rb, line 163
def group_class
  @group_class ||= AnsibleTowerClient::Group
end
groups() click to toggle source
# File lib/ansible_tower_client/api.rb, line 45
def groups
  Collection.new(self, group_class)
end
host_class() click to toggle source
# File lib/ansible_tower_client/api.rb, line 167
def host_class
  @host_class ||= AnsibleTowerClient::Host
end
hosts() click to toggle source
# File lib/ansible_tower_client/api.rb, line 49
def hosts
  Collection.new(self, host_class)
end
inventories() click to toggle source
# File lib/ansible_tower_client/api.rb, line 53
def inventories
  Collection.new(self, inventory_class)
end
inventory_class() click to toggle source
# File lib/ansible_tower_client/api.rb, line 171
def inventory_class
  @inventory_class ||= AnsibleTowerClient::Inventory
end
inventory_source_class() click to toggle source
# File lib/ansible_tower_client/api.rb, line 175
def inventory_source_class
  @inventory_source_class ||= AnsibleTowerClient::InventorySource
end
inventory_sources() click to toggle source
# File lib/ansible_tower_client/api.rb, line 57
def inventory_sources
  Collection.new(self, inventory_source_class)
end
inventory_update_class() click to toggle source
# File lib/ansible_tower_client/api.rb, line 179
def inventory_update_class
  @inventory_update_class ||= AnsibleTowerClient::InventoryUpdate
end
inventory_updates() click to toggle source
# File lib/ansible_tower_client/api.rb, line 61
def inventory_updates
  Collection.new(self, inventory_update_class)
end
job_class() click to toggle source
# File lib/ansible_tower_client/api.rb, line 183
def job_class
  @job_class ||= AnsibleTowerClient::Job
end
job_event_class() click to toggle source
# File lib/ansible_tower_client/api.rb, line 187
def job_event_class
  @job_event_class ||= AnsibleTowerClient::JobEvent
end
job_events() click to toggle source
# File lib/ansible_tower_client/api.rb, line 69
def job_events
  Collection.new(self, job_event_class)
end
job_play_class() click to toggle source
# File lib/ansible_tower_client/api.rb, line 191
def job_play_class
  @job_play_class ||= AnsibleTowerClient::JobPlay
end
job_plays() click to toggle source
# File lib/ansible_tower_client/api.rb, line 73
def job_plays
  Collection.new(self, job_play_class)
end
job_template_class() click to toggle source
# File lib/ansible_tower_client/api.rb, line 195
def job_template_class
  @job_template_class ||= begin
    if Gem::Version.new(version).between?(Gem::Version.new(2), Gem::Version.new(3))
      AnsibleTowerClient::JobTemplateV2
    else
      AnsibleTowerClient::JobTemplate
    end
  end
end
job_templates() click to toggle source
# File lib/ansible_tower_client/api.rb, line 77
def job_templates
  Collection.new(self, job_template_class)
end
jobs() click to toggle source
# File lib/ansible_tower_client/api.rb, line 65
def jobs
  Collection.new(self, job_class)
end
method_missing(method_name, *args, &block) click to toggle source
Calls superclass method
# File lib/ansible_tower_client/api.rb, line 121
def method_missing(method_name, *args, &block)
  require 'faraday'
  if instance.respond_to?(method_name)
    path = build_path_to_resource(args.shift)
    args.unshift(path)
    logger.debug { "#{self.class.name} Sending <#{method_name}> with <#{args.inspect}>" }
    instance.send(method_name, *args, &block).tap do |response|
      logger.debug { "#{self.class.name} Response:\n#{log_from_response(response)}" }
    end
  else
    super
  end
rescue Faraday::ConnectionFailed => err
  raise AnsibleTowerClient::ConnectionError, err
rescue Faraday::SSLError => err
  raise AnsibleTowerClient::SSLError, err
rescue Faraday::ClientError => err
  raise AnsibleTowerClient::ConnectionError, err
end
organization_class() click to toggle source
# File lib/ansible_tower_client/api.rb, line 205
def organization_class
  @organization_class ||= AnsibleTowerClient::Organization
end
organizations() click to toggle source
# File lib/ansible_tower_client/api.rb, line 81
def organizations
  Collection.new(self, organization_class)
end
project_class() click to toggle source
# File lib/ansible_tower_client/api.rb, line 209
def project_class
  @project_class ||= AnsibleTowerClient::Project
end
project_update_class() click to toggle source
# File lib/ansible_tower_client/api.rb, line 213
def project_update_class
  @project_update_class ||= AnsibleTowerClient::ProjectUpdate
end
project_updates() click to toggle source
# File lib/ansible_tower_client/api.rb, line 89
def project_updates
  Collection.new(self, project_update_class)
end
projects() click to toggle source
# File lib/ansible_tower_client/api.rb, line 85
def projects
  Collection.new(self, project_class)
end
respond_to_missing?(method, _include_private = false) click to toggle source
# File lib/ansible_tower_client/api.rb, line 141
def respond_to_missing?(method, _include_private = false)
  instance.respond_to?(method)
end
schedule_class() click to toggle source
# File lib/ansible_tower_client/api.rb, line 217
def schedule_class
  @schedule_class ||= AnsibleTowerClient::Schedule
end
schedules() click to toggle source
# File lib/ansible_tower_client/api.rb, line 93
def schedules
  Collection.new(self, schedule_class)
end
system_job_class() click to toggle source
# File lib/ansible_tower_client/api.rb, line 221
def system_job_class
  @system_job_class ||= AnsibleTowerClient::SystemJob
end
system_job_template_class() click to toggle source
# File lib/ansible_tower_client/api.rb, line 225
def system_job_template_class
  @system_job_template_class ||= AnsibleTowerClient::SystemJobTemplate
end
system_job_templates() click to toggle source
# File lib/ansible_tower_client/api.rb, line 101
def system_job_templates
  Collection.new(self, system_job_template_class)
end
system_jobs() click to toggle source
# File lib/ansible_tower_client/api.rb, line 97
def system_jobs
  Collection.new(self, system_job_class)
end
verify_credentials() click to toggle source
# File lib/ansible_tower_client/api.rb, line 22
def verify_credentials
  results = get("me/").body
  JSON.parse(results).fetch_path("results", 0, "username")
rescue JSON::ParserError
  raise AnsibleTowerClient::ConnectionError, "unexpected response"
end
version() click to toggle source
# File lib/ansible_tower_client/api.rb, line 18
def version
  @version ||= config["version"]
end
workflow_job_class() click to toggle source
# File lib/ansible_tower_client/api.rb, line 229
def workflow_job_class
  @workflow_job_class ||= AnsibleTowerClient::WorkflowJob
end
workflow_job_node_class() click to toggle source
# File lib/ansible_tower_client/api.rb, line 233
def workflow_job_node_class
  @workflow_job_node_class ||= AnsibleTowerClient::WorkflowJobNode
end
workflow_job_nodes() click to toggle source
# File lib/ansible_tower_client/api.rb, line 105
def workflow_job_nodes
  Collection.new(self, workflow_job_node_class)
end
workflow_job_template_class() click to toggle source
# File lib/ansible_tower_client/api.rb, line 237
def workflow_job_template_class
  @workflow_job_template_class ||= AnsibleTowerClient::WorkflowJobTemplate
end
workflow_job_template_node_class() click to toggle source
# File lib/ansible_tower_client/api.rb, line 241
def workflow_job_template_node_class
  @workflow_job_template_node_class ||= AnsibleTowerClient::WorkflowJobTemplateNode
end
workflow_job_template_nodes() click to toggle source
# File lib/ansible_tower_client/api.rb, line 117
def workflow_job_template_nodes
  Collection.new(self, workflow_job_template_node_class)
end
workflow_job_templates() click to toggle source
# File lib/ansible_tower_client/api.rb, line 113
def workflow_job_templates
  Collection.new(self, workflow_job_template_class)
end
workflow_jobs() click to toggle source
# File lib/ansible_tower_client/api.rb, line 109
def workflow_jobs
  Collection.new(self, workflow_job_class)
end

Private Instance Methods

build_path_to_resource(original) click to toggle source
# File lib/ansible_tower_client/api.rb, line 247
def build_path_to_resource(original)
  return original unless %r{\/?api\/v1\/(.*)} =~ original
  return original if instance.url_prefix.path == "/"
  File.join(instance.url_prefix.path, Regexp.last_match[1])
end