travis-saucelabs-api 0.0.2 → 0.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/CHANGES.md +20 -0
- data/README.md +25 -1
- data/bin/travis-saucelabs +7 -1
- data/lib/travis-saucelabs-api.rb +13 -3
- data/lib/travis-saucelabs-api/version.rb +1 -1
- metadata +15 -14
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 004d0cef2f71d97a858de7a543ef4b44440fbc6d
|
4
|
+
data.tar.gz: 74669ed6b8f114d14cd53483989134bc039bc849
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fd22bf29beb91a8e52e0d301d46680adf22ca6eb68cd2d7e3997f9d7a44fab15fe088303745b974c9ea86cbaeedbc5912ea67002b7e08cf3d657133e0a894e07
|
7
|
+
data.tar.gz: 07b3e0e3706b4f60297ad8b908e45ea999fa520ed756c6867c459da0f3c6e0c1d61592b1485e727a4fca11ef809d62ff7c42eabaaa7188cc98070cde43f4deba
|
data/CHANGES.md
ADDED
@@ -0,0 +1,20 @@
|
|
1
|
+
# Changelog
|
2
|
+
|
3
|
+
## v0.0.3
|
4
|
+
|
5
|
+
- Allow specifying an image when starting a VM with the CLI (using `--image`).
|
6
|
+
- Change the default image name to `ichef-travis-osx8-latest`.
|
7
|
+
- Raise errors on all 4xx and 5xx errors. They are raised as
|
8
|
+
`Travis::SaucelabsAPI::ClientError` and `Travis::SaucelabsAPI::ServerError`,
|
9
|
+
respectively, and both inherit from `Travis::SaucelabsAPI::Error`.
|
10
|
+
|
11
|
+
## v0.0.2
|
12
|
+
|
13
|
+
- Add allow_incoming endpoint, which allows for opening incoming ports in the
|
14
|
+
firewall (for example to SSH in from outside the LAN).
|
15
|
+
- Require API responses to use the application/json Content-Type to be parsed as
|
16
|
+
JSON.
|
17
|
+
|
18
|
+
## v0.0.1
|
19
|
+
|
20
|
+
Initial release
|
data/README.md
CHANGED
@@ -18,10 +18,12 @@ Or install it yourself as:
|
|
18
18
|
|
19
19
|
## Usage
|
20
20
|
|
21
|
+
### Library
|
22
|
+
|
21
23
|
``` ruby
|
22
24
|
require 'travis-saucelabs-api'
|
23
25
|
|
24
|
-
api = Travis::SaucelabsAPI.new('http://user:password@api.example.com:1234')
|
26
|
+
api = Travis::SaucelabsAPI::Connection.new('http://user:password@api.example.com:1234')
|
25
27
|
|
26
28
|
# The available capacity for the cloud
|
27
29
|
#
|
@@ -58,6 +60,28 @@ api.open_outgoing('38257917-4fac-68fc-11f4-1575d2ec6847@api#vm1')
|
|
58
60
|
api.save_image('38257917-4fac-68fc-11f4-1575d2ec6847@api#vm1')
|
59
61
|
```
|
60
62
|
|
63
|
+
### CLI
|
64
|
+
|
65
|
+
To use the CLI, you first need to tell it what the API endpoint is:
|
66
|
+
|
67
|
+
$ export TRAVIS_SAUCE_API_URI="http://user:password@api-endpoint:port"
|
68
|
+
|
69
|
+
#### Start a new VM
|
70
|
+
|
71
|
+
$ travis-saucelabs start
|
72
|
+
|
73
|
+
#### List information about all VMs
|
74
|
+
|
75
|
+
$ travis-saucelabs list
|
76
|
+
|
77
|
+
#### Kill a VM
|
78
|
+
|
79
|
+
$ travis-saucelabs kill <instance-id>
|
80
|
+
|
81
|
+
#### Kill all VMs belonging to a worker (by PID)
|
82
|
+
|
83
|
+
$ travis-saucelabs kill_pid <worker-pid>
|
84
|
+
|
61
85
|
## Contributing
|
62
86
|
|
63
87
|
1. Fork it
|
data/bin/travis-saucelabs
CHANGED
@@ -20,8 +20,14 @@ class TravisSaucelabs < Thor
|
|
20
20
|
desc 'start', 'Starts a new VM instance'
|
21
21
|
option :hostname
|
22
22
|
option :password
|
23
|
+
option :image
|
23
24
|
def start
|
24
|
-
instance_id =
|
25
|
+
instance_id = if options[:image]
|
26
|
+
api.start_instance(startup_info, options[:image])['instance_id']
|
27
|
+
else
|
28
|
+
api.start_instance(startup_info)['instance_id']
|
29
|
+
end
|
30
|
+
|
25
31
|
puts "Started instance with ID #{instance_id}"
|
26
32
|
print "Allowing outgoing connections..."
|
27
33
|
api.allow_outgoing(instance_id)
|
data/lib/travis-saucelabs-api.rb
CHANGED
@@ -4,9 +4,12 @@ require 'faraday_middleware'
|
|
4
4
|
|
5
5
|
module Travis
|
6
6
|
class SaucelabsAPI
|
7
|
-
class
|
7
|
+
class Error < StandardError; end
|
8
|
+
class ClientError < Error; end
|
9
|
+
class ServerError < Error; end
|
10
|
+
class NotFoundError < ClientError; end
|
8
11
|
|
9
|
-
DEFAULT_IMAGE = 'ichef-osx8-
|
12
|
+
DEFAULT_IMAGE = 'ichef-travis-osx8-latest'
|
10
13
|
|
11
14
|
# Public: Initialize a new API client instance
|
12
15
|
#
|
@@ -71,7 +74,14 @@ module Travis
|
|
71
74
|
private
|
72
75
|
|
73
76
|
def handle_response(response)
|
74
|
-
|
77
|
+
case response.status
|
78
|
+
when 404
|
79
|
+
fail NotFoundError, response.body
|
80
|
+
when 400...500
|
81
|
+
fail ClientError, response.body
|
82
|
+
when 500...600
|
83
|
+
fail ServerError, response.body
|
84
|
+
end
|
75
85
|
|
76
86
|
response.body
|
77
87
|
end
|
metadata
CHANGED
@@ -1,55 +1,55 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: travis-saucelabs-api
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Henrik Hodne
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2014-04-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|
15
15
|
requirement: !ruby/object:Gem::Requirement
|
16
16
|
requirements:
|
17
|
-
- - ~>
|
17
|
+
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '0.7'
|
20
20
|
type: :runtime
|
21
21
|
prerelease: false
|
22
22
|
version_requirements: !ruby/object:Gem::Requirement
|
23
23
|
requirements:
|
24
|
-
- - ~>
|
24
|
+
- - "~>"
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: '0.7'
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: faraday_middleware
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- - ~>
|
31
|
+
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
33
|
version: '0.9'
|
34
34
|
type: :runtime
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- - ~>
|
38
|
+
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0.9'
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: thor
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - ~>
|
45
|
+
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
47
|
version: '0.14'
|
48
48
|
type: :runtime
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
|
-
- - ~>
|
52
|
+
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
54
|
version: '0.14'
|
55
55
|
description: Ruby client library for the API Travis uses to spin up OS X VMs
|
@@ -60,9 +60,10 @@ executables:
|
|
60
60
|
extensions: []
|
61
61
|
extra_rdoc_files: []
|
62
62
|
files:
|
63
|
-
- .gitignore
|
64
|
-
- .rspec
|
65
|
-
- .travis.yml
|
63
|
+
- ".gitignore"
|
64
|
+
- ".rspec"
|
65
|
+
- ".travis.yml"
|
66
|
+
- CHANGES.md
|
66
67
|
- Gemfile
|
67
68
|
- LICENSE.txt
|
68
69
|
- README.md
|
@@ -89,17 +90,17 @@ require_paths:
|
|
89
90
|
- lib
|
90
91
|
required_ruby_version: !ruby/object:Gem::Requirement
|
91
92
|
requirements:
|
92
|
-
- -
|
93
|
+
- - ">="
|
93
94
|
- !ruby/object:Gem::Version
|
94
95
|
version: '0'
|
95
96
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
96
97
|
requirements:
|
97
|
-
- -
|
98
|
+
- - ">="
|
98
99
|
- !ruby/object:Gem::Version
|
99
100
|
version: '0'
|
100
101
|
requirements: []
|
101
102
|
rubyforge_project:
|
102
|
-
rubygems_version: 2.
|
103
|
+
rubygems_version: 2.2.2
|
103
104
|
signing_key:
|
104
105
|
specification_version: 4
|
105
106
|
summary: Travis/Sauce Labs API client
|