openstf-ruby-client 0.1.2 → 0.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +2 -4
- data/lib/openstf/client.rb +34 -2
- data/lib/openstf/device.rb +50 -0
- data/lib/openstf/version.rb +1 -1
- data/openstf-ruby-client.gemspec +2 -2
- metadata +8 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8e7132f7e1b85fae3ac49dffc6facc26acaa9048
|
4
|
+
data.tar.gz: 2d6b1f4d7d2c5c11a2ce0feed0f69037448ab1da
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: c8bc704f3760cbac2404ad709e941a54fca6fae517979523e361ca2a706bcbba4521ac7b34094f5e61b908444db0c9a77ff0ad7bb38864904e3991e77460bf68
|
7
|
+
data.tar.gz: a7f39b2ffb7f7bad11b9048225dce583abda4cb7bfd6f004c201cff3ce551e139a846a74e54209be5a8bab49a7adb63dcb6c9f94af7db725216785b4610a8309
|
data/README.md
CHANGED
@@ -6,7 +6,8 @@ A Ruby client for the OpenSTF APIs. It converts Swagger documentation of OpenSTF
|
|
6
6
|
|
7
7
|
Add this line to your application's Gemfile:
|
8
8
|
|
9
|
-
```ruby
|
9
|
+
```ruby
|
10
|
+
gem 'svelte', :git => 'https://github.com/ainoya/svelte.git' # you must specify patched version svelte gem before install openstf-ruby-client
|
10
11
|
gem 'openstf-ruby-client'
|
11
12
|
```
|
12
13
|
|
@@ -14,9 +15,6 @@ And then execute:
|
|
14
15
|
|
15
16
|
$ bundle
|
16
17
|
|
17
|
-
Or install it yourself as:
|
18
|
-
|
19
|
-
$ gem install openstf-ruby-client
|
20
18
|
|
21
19
|
## Usage
|
22
20
|
|
data/lib/openstf/client.rb
CHANGED
@@ -1,7 +1,8 @@
|
|
1
1
|
require 'faraday'
|
2
2
|
require 'svelte'
|
3
|
-
require
|
4
|
-
require
|
3
|
+
require 'openstf/version'
|
4
|
+
require 'openstf/faraday/ext'
|
5
|
+
require 'openstf/device'
|
5
6
|
|
6
7
|
module OpenSTF
|
7
8
|
module Client
|
@@ -19,6 +20,37 @@ module OpenSTF
|
|
19
20
|
host: host}
|
20
21
|
)
|
21
22
|
self.module_eval("include #{@service}")
|
23
|
+
return Service.new(@service)
|
24
|
+
end
|
25
|
+
|
26
|
+
class Service
|
27
|
+
def initialize(service)
|
28
|
+
@service = service
|
29
|
+
end
|
30
|
+
|
31
|
+
def fetch_available_devices
|
32
|
+
devices = OpenSTF::Client::Devices.get_devices.body['devices']
|
33
|
+
|
34
|
+
available = devices.reject do |device|
|
35
|
+
!device['present'] || !device['ready'] || device['using'] || device['owner']
|
36
|
+
end
|
37
|
+
|
38
|
+
@devices = available.map do |d|
|
39
|
+
Device.new(data: d, serial: d['serial'])
|
40
|
+
end
|
41
|
+
|
42
|
+
@devices
|
43
|
+
end
|
44
|
+
|
45
|
+
def connect_device(serial:)
|
46
|
+
d = Device.new(serial: serial)
|
47
|
+
d.connect
|
48
|
+
end
|
49
|
+
|
50
|
+
def disconnect_device(serial:)
|
51
|
+
d = Device.new(serial: serial)
|
52
|
+
d.disconnect
|
53
|
+
end
|
22
54
|
end
|
23
55
|
end
|
24
56
|
end
|
@@ -0,0 +1,50 @@
|
|
1
|
+
module OpenSTF
|
2
|
+
class Device
|
3
|
+
DEVICE_TIMEOUT = 60 * 60 * 2 * 1000 # 2hours, milli second unit
|
4
|
+
attr_accessor :remote_connect_url
|
5
|
+
|
6
|
+
def initialize(data: {}, serial: nil)
|
7
|
+
@data = data
|
8
|
+
@serial = data['serial'] || serial
|
9
|
+
end
|
10
|
+
|
11
|
+
def connect
|
12
|
+
device = ::OpenSTF::Client::Devices.get_device_by_serial(
|
13
|
+
serial: @serial,
|
14
|
+
fields: 'serial,present,ready,using,owner').body['device']
|
15
|
+
if !device['present'] || !device['ready'] || device['using'] || device['owner']
|
16
|
+
raise("Device #{@serial} is not available")
|
17
|
+
end
|
18
|
+
|
19
|
+
added = ::OpenSTF::Client::User::Devices.add_user_device(
|
20
|
+
serial: @serial,
|
21
|
+
timeout:DEVICE_TIMEOUT
|
22
|
+
).body
|
23
|
+
|
24
|
+
raise("Could not connect to device #{@serial}")unless added['success']
|
25
|
+
|
26
|
+
connected = ::OpenSTF::Client::User::Devices::RemoteConnect.remote_connect_user_device_by_serial(serial: @serial).body
|
27
|
+
|
28
|
+
raise("#{connected['description']}: #{@serial}") unless connected['success']
|
29
|
+
|
30
|
+
return connected['remoteConnectUrl']
|
31
|
+
end
|
32
|
+
|
33
|
+
def disconnect
|
34
|
+
user_devices = OpenSTF::Client::User::Devices
|
35
|
+
.get_user_device_by_serial(
|
36
|
+
serial: @serial,
|
37
|
+
fields: 'serial,present,ready,using,owner'
|
38
|
+
).body
|
39
|
+
raise("#{user_devices['description']}: #{@serial}") unless user_devices['success']
|
40
|
+
|
41
|
+
deleted = OpenSTF::Client::User::Devices
|
42
|
+
.delete_user_device_by_serial(
|
43
|
+
serial: @serial
|
44
|
+
).body
|
45
|
+
|
46
|
+
raise("#{deleted['description']}: #{@serial}") unless deleted['success']
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
end
|
data/lib/openstf/version.rb
CHANGED
data/openstf-ruby-client.gemspec
CHANGED
@@ -30,9 +30,9 @@ Gem::Specification.new do |spec|
|
|
30
30
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
31
31
|
spec.require_paths = ["lib"]
|
32
32
|
|
33
|
-
spec.add_runtime_dependency "svelte", "0.1.
|
33
|
+
spec.add_runtime_dependency "svelte", "0.1.6-patched"
|
34
34
|
|
35
|
-
spec.add_development_dependency "bundler", "1.
|
35
|
+
spec.add_development_dependency "bundler", "~> 1.12.0"
|
36
36
|
spec.add_development_dependency "rake", "~> 10.0"
|
37
37
|
spec.add_development_dependency "rspec", "~> 3.0"
|
38
38
|
spec.add_development_dependency "pry"
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: openstf-ruby-client
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Naoki AINOYA
|
@@ -16,28 +16,28 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - '='
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 0.1.
|
19
|
+
version: 0.1.6.pre.patched
|
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
|
-
version: 0.1.
|
26
|
+
version: 0.1.6.pre.patched
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: bundler
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
30
30
|
requirements:
|
31
|
-
- -
|
31
|
+
- - "~>"
|
32
32
|
- !ruby/object:Gem::Version
|
33
|
-
version: 1.
|
33
|
+
version: 1.12.0
|
34
34
|
type: :development
|
35
35
|
prerelease: false
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
37
37
|
requirements:
|
38
|
-
- -
|
38
|
+
- - "~>"
|
39
39
|
- !ruby/object:Gem::Version
|
40
|
-
version: 1.
|
40
|
+
version: 1.12.0
|
41
41
|
- !ruby/object:Gem::Dependency
|
42
42
|
name: rake
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
@@ -98,6 +98,7 @@ files:
|
|
98
98
|
- bin/console
|
99
99
|
- bin/setup
|
100
100
|
- lib/openstf/client.rb
|
101
|
+
- lib/openstf/device.rb
|
101
102
|
- lib/openstf/faraday/ext.rb
|
102
103
|
- lib/openstf/version.rb
|
103
104
|
- openstf-ruby-client.gemspec
|