Class: Rhc::Rest::Client

Inherits:
Object
  • Object
show all
Includes:
Rhc::Rest
Defined in:
lib/rhc-rest/client.rb

Constant Summary

Constants included from Rhc::Rest

VERSION

Instance Method Summary collapse

Methods included from Rhc::Rest

#logger, #parse_response, #process_error_response, #send

Constructor Details

#initialize(end_point, username, password) ⇒ Client

Returns a new instance of Client.



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/rhc-rest/client.rb', line 7

def initialize(end_point, username, password)
  logger.debug "Connecting to #{end_point}" if @mydebug
  credentials = Base64.encode64("#{username}:#{password}")
  @@headers["Authorization"] = "Basic #{credentials}"
  #first get the API
  RestClient.proxy = ENV['http_proxy']
  request = RestClient::Request.new(:url => end_point, :method => :get, :headers => @@headers)
  begin
    response = request.execute
    result = JSON.parse(response)
    @links = send(request)
  rescue RestClient::ExceptionWithResponse => e
      logger.error "Failed to get API #{e.response}"
  rescue Exception => e
    raise ResourceAccessException.new("Resource could not be accessed:#{e.message}")
  end
end

Instance Method Details

#add_domain(id) ⇒ Object

Add Domain



26
27
28
29
30
31
32
33
# File 'lib/rhc-rest/client.rb', line 26

def add_domain(id)
  logger.debug "Adding domain #{id}" if @mydebug
  url = @links['ADD_DOMAIN']['href']
  method =  @links['ADD_DOMAIN']['method']
  payload = {:id => id}
  request = RestClient::Request.new(:url => url, :method => method, :headers => @@headers, :payload => payload)
  return send(request)
end

#cartridgesObject

Get all Cartridge



73
74
75
76
77
78
79
# File 'lib/rhc-rest/client.rb', line 73

def cartridges
  logger.debug "Getting all cartridges" if @mydebug
  url = @links['LIST_CARTRIDGES']['href']
  method =  @links['LIST_CARTRIDGES']['method']
  request = RestClient::Request.new(:url => url, :method => method, :headers => @@headers)
  return send(request)
end

#domainsObject

Get all Domain



36
37
38
39
40
41
42
# File 'lib/rhc-rest/client.rb', line 36

def domains
  logger.debug "Getting all domains" if @mydebug
  url = @links['LIST_DOMAINS']['href']
  method =  @links['LIST_DOMAINS']['method']
  request = RestClient::Request.new(:url => url, :method => method, :headers => @@headers)
  return send(request)
end

#find_application(name) ⇒ Object

Find Application by name



58
59
60
61
62
63
64
65
66
67
68
69
70
# File 'lib/rhc-rest/client.rb', line 58

def find_application(name)
  logger.debug "Finding application #{name}" if @mydebug
  filtered = Array.new
  domains.each do |domain|
  #TODO do a regex caomparison
    domain.applications.each do |app|
      if app.name == name
      filtered.push(app)
      end
    end
  end
  return filtered
end

#find_cartridge(name) ⇒ Object

Find Cartridge by name



82
83
84
85
86
87
88
89
90
91
92
# File 'lib/rhc-rest/client.rb', line 82

def find_cartridge(name)
  logger.debug "Finding cartridge #{name}" if @mydebug
  filtered = Array.new
  cartridges.each do |cart|
  #TODO do a regex caomparison
    if cart.name == name
    filtered.push(cart)
    end
  end
  return filtered
end

#find_domain(id) ⇒ Object

Find Domain by namesapce



45
46
47
48
49
50
51
52
53
54
55
# File 'lib/rhc-rest/client.rb', line 45

def find_domain(id)
  logger.debug "Finding domain #{id}" if @mydebug
  filtered = Array.new
  domains.each do |domain|
  #TODO do a regex caomparison
    if domain.id == id
    filtered.push(domain)
    end
  end
  return filtered
end

#find_key(name) ⇒ Object

find Key by name



103
104
105
106
107
108
109
110
111
112
113
# File 'lib/rhc-rest/client.rb', line 103

def find_key(name)
  logger.debug "Finding key #{name}" if @mydebug
  filtered = Array.new
  user.keys.each do |key|
  #TODO do a regex caomparison
    if key.name == name
    filtered.push(key)
    end
  end
  return filtered
end

#logoutObject Also known as: close



115
116
117
118
# File 'lib/rhc-rest/client.rb', line 115

def logout
  #TODO logout
  logger.debug "Logout/Close client" if @mydebug
end

#userObject

Get User info



95
96
97
98
99
100
# File 'lib/rhc-rest/client.rb', line 95

def user
  url = @links['GET_USER']['href']
  method =  @links['GET_USER']['method']
  request = RestClient::Request.new(:url => url, :method => method, :headers => @@headers)
  return send(request)
end