Class: Travis::SaucelabsAPI
- Inherits:
-
Object
- Object
- Travis::SaucelabsAPI
show all
- Defined in:
- lib/travis-saucelabs-api.rb,
lib/travis-saucelabs-api/version.rb
Defined Under Namespace
Classes: ClientError, Error, NotFoundError, ServerError
Constant Summary
collapse
- DEFAULT_IMAGE =
'ichef-travis-osx8-latest'
- VERSION =
"0.0.3"
Instance Method Summary
collapse
Constructor Details
Public: Initialize a new API client instance
uri - The URI or String endpoint for the API. This should include the
username and password used for authentication.
18
19
20
21
22
23
24
|
# File 'lib/travis-saucelabs-api.rb', line 18
def initialize(uri)
@connection = Faraday.new(uri) do |connection|
connection.use FaradayMiddleware::EncodeJson
connection.use FaradayMiddleware::ParseJson, content_type: /\bjson$/
connection.adapter Faraday.default_adapter
end
end
|
Instance Method Details
#allow_incoming(instance_id, cidr, port) ⇒ Object
56
57
58
59
60
61
62
63
|
# File 'lib/travis-saucelabs-api.rb', line 56
def allow_incoming(instance_id, cidr, port)
instance_id = uri_escape(instance_id)
response = @connection.post("/instances/#{instance_id}/allow_incoming") do |request|
request.params.update(cidr: cidr, port: port)
end
handle_response(response)
end
|
#allow_outgoing(instance_id) ⇒ Object
51
52
53
54
|
# File 'lib/travis-saucelabs-api.rb', line 51
def allow_outgoing(instance_id)
instance_id = uri_escape(instance_id)
handle_response(@connection.post("/instances/#{instance_id}/allow_outgoing"))
end
|
#capacity ⇒ Object
26
27
28
|
# File 'lib/travis-saucelabs-api.rb', line 26
def capacity
handle_response(@connection.get('/capacity'))
end
|
#instance_info(instance_id) ⇒ Object
42
43
44
|
# File 'lib/travis-saucelabs-api.rb', line 42
def instance_info(instance_id)
handle_response(@connection.get("/instances/#{uri_escape(instance_id)}"))
end
|
#kill_instance(instance_id) ⇒ Object
46
47
48
49
|
# File 'lib/travis-saucelabs-api.rb', line 46
def kill_instance(instance_id)
instance_id = uri_escape(instance_id)
handle_response(@connection.delete("/instances/#{instance_id}"))
end
|
#list_instances ⇒ Object
38
39
40
|
# File 'lib/travis-saucelabs-api.rb', line 38
def list_instances
handle_response(@connection.get('/instances'))
end
|
#save_image(instance_id, name) ⇒ Object
65
66
67
68
69
70
71
72
|
# File 'lib/travis-saucelabs-api.rb', line 65
def save_image(instance_id, name)
instance_id = uri_escape(instance_id)
response = @connection.post("/instances/#{instance_id}/save_image") do |request|
request.params.update(name: name)
end
handle_response(response)
end
|
#start_instance(startup_info = nil, image = DEFAULT_IMAGE) ⇒ Object
30
31
32
33
34
35
36
|
# File 'lib/travis-saucelabs-api.rb', line 30
def start_instance(startup_info=nil, image=DEFAULT_IMAGE)
response = @connection.post('/instances', startup_info) do |request|
request.params.update(image: image)
end
handle_response(response)
end
|