class AnsibleGalaxy::Roles::Private

Authenticated Access to Roles

Public Class Methods

new(options = {}) click to toggle source
# File lib/ansible_galaxy/roles.rb, line 13
def initialize(options = {})
  username = options.fetch 'username', ENV['ANSIBLE_GALAXY_USERNAME']
  password = options.fetch 'password', ENV['ANSIBLE_GALAXY_PASSWORD']
  @auth = "#{username}:#{password}"
  @my = AnsibleGalaxy::Me.new(options)
end

Public Instance Methods

find(name) click to toggle source
# File lib/ansible_galaxy/roles.rb, line 21
def find(name)
  @my.roles.select { |role| role['name'] == name }
end
find_id(name) click to toggle source
# File lib/ansible_galaxy/roles.rb, line 26
def find_id(name)
  find(name).first['id']
end
refresh(names) click to toggle source
# File lib/ansible_galaxy/roles.rb, line 31
def refresh(names)
  Typhoeus::Hydra.new.tap do |hydra|
    names.each { |name| hydra.queue refresh_role name }
  end.run
end

Private Instance Methods

refresh_role(name) click to toggle source
# File lib/ansible_galaxy/roles.rb, line 40
def refresh_role(name)
  request_refresh(find_id name).tap do |request|
    request.on_complete do |response|
      sync = "Sync #{@my.username}.#{name}"
      response.code == 302 ? Announce.success(sync) : Announce.failure(sync)
    end
  end
end
request_refresh(id) click to toggle source
# File lib/ansible_galaxy/roles.rb, line 50
def request_refresh(id)
  Typhoeus::Request.new(
    "https://galaxy.ansible.com/accounts/role/refresh/#{id}",
    userpwd: @auth)
end