Class: Rightstuff::Client

Inherits:
Object
  • Object
show all
Defined in:
lib/rightstuff.rb

Instance Method Summary collapse

Constructor Details

#initialize(options = {}) ⇒ Client

Returns a new instance of Client.



113
114
115
116
117
118
119
120
121
122
123
124
# File 'lib/rightstuff.rb', line 113

def initialize( options = {} )
  @username = options[ :username ] or raise 'no username supplied'
  @password = options[ :password ] or raise 'no password supplied'
  @account  = options[ :account ]  or raise 'no account id supplied'
  @account = @account.to_s

  @base_url               = 'https://my.rightscale.com/api/acct'
  url                     = URI.parse( @base_url )
  @connection             = Net::HTTP.new( url.host, url.port )
  @connection.use_ssl     = true
  @connection.verify_mode = OpenSSL::SSL::VERIFY_NONE
end

Instance Method Details

#account_url(rest) ⇒ Object



152
153
154
# File 'lib/rightstuff.rb', line 152

def ( rest )
  @base_url + '/' + @account + '/' + rest
end

#get(address) ⇒ Object



130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
# File 'lib/rightstuff.rb', line 130

def get( address )
  url     = URI.parse( address )
  request = Net::HTTP::Get.new( url.request_uri )
  request.add_field( 'X-API-VERSION', '1.0' )
  request.basic_auth @username, @password

  response = @connection.request( request )

  case response.code
  when '200'
    return response.body
  else
    raise "Request '#{ address }' failed with response code #{ response.code }\n#{ response.body }"
  end
end

#get_rest(rest) ⇒ Object



126
127
128
# File 'lib/rightstuff.rb', line 126

def get_rest( rest )
  get( ( rest ) )
end

#serversObject



146
147
148
149
150
# File 'lib/rightstuff.rb', line 146

def servers
  return @servers if @servers
  body     = Nokogiri::XML( get_rest( 'servers' ) )
  @servers = Server.load_collection( self, body )
end