optimus-runner 0.7.0 → 0.8.0

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f8096cac7293e8f3265d694b03b90bf190efd73f
4
- data.tar.gz: 65b1877b63b2aebee8779c6e440a3767ba993847
3
+ metadata.gz: 2e505f6a2697c2006afb3da56cc4d26dd2ba2e69
4
+ data.tar.gz: 745799c8af7236b430d28799e28efaa92136d41b
5
5
  SHA512:
6
- metadata.gz: 881a541700e202ee0acb4d68e347d7d1cfe754faa301466c49d646fc592cf0e4b46193705280c37abdfa4570feeddbff5340f919aef8ef22b41c18e064d1965a
7
- data.tar.gz: a47e5e62a5956e81084c5abfc2eef047ba0da46eb707c3692b7f1b0ccd60b1a6ff3e0d06c61f0e8e6f897dbbbfc63121ba4d5b8543cbb93c43564a780ff45447
6
+ metadata.gz: 19c2450e21e3f7dfa1be5566b9265a880b5ca8d4a0546627b0bcb308470bd80235a1484ff5efd750c1891fd11a0a7554aad55e98b9fa034d452b6a54afbe82c1
7
+ data.tar.gz: 6c27ffcbd2fb1137b150fb02e2dfe008f8381547f8a59c6eed0d26028cfa19e265fae0f41bb123922b326dec5068874037589b4163e1b449727cb5172463ec14
@@ -2,6 +2,7 @@
2
2
  require 'optimus-runner/server/optimus_runner_sm'
3
3
  require 'rufus/scheduler'
4
4
  require 'logger'
5
+ require 'optimus-runner/utils/optimuscloudenv.rb'
5
6
 
6
7
 
7
8
  optimus_runner_sm = OptimusRunnerSM.new
@@ -9,7 +10,7 @@ scheduler = Rufus::Scheduler.new
9
10
  logger = Logger.new(STDOUT)
10
11
  logger.level = Logger::WARN
11
12
  logger.info "Starting Optimus runner..."
12
-
13
+ OptimusCloudEnvLoader.new.loadEnv
13
14
  scheduler.interval '5s', :first_in => 0.1 do
14
15
  logger.info "Is Optimus runner idle? #{optimus_runner_sm.idle?}"
15
16
  optimus_runner_sm.create if optimus_runner_sm.idle?
@@ -1,7 +1,9 @@
1
1
  require 'HTTParty'
2
+ require 'clients/mdb_client'
2
3
 
3
4
  class DeviceDetails
4
5
 
6
+
5
7
  def get_device_details
6
8
  device_names = self.process_android_devices
7
9
  android_device_details = find_android_devices(device_names)
@@ -14,31 +16,17 @@ class DeviceDetails
14
16
 
15
17
  def process_android_devices
16
18
  devices = `adb devices`
17
- query = { deviceLog: devices }.to_json
18
- puts query
19
- headers = {
20
- 'Content-Type': "Application/json"
21
- }
22
- response = HTTParty.post('http://localhost:9099/processDevices', body: query, headers: headers)
19
+ return MDBClient.new.format_android_devices devices
23
20
  end
24
21
 
25
22
  def process_ios_devices
26
23
  devices = `instruments -s devices | grep 'iPhone'`
27
- p devices
28
- body = { deviceLog: devices }.to_json
29
- headers = {
30
- 'Content-Type': "Application/json"
31
- }
32
- response = HTTParty.post('http://localhost:9099/processIosDevices', body: body, headers: headers)
33
- p response
34
- res = JSON.parse(response.to_s)
35
- return res
24
+ return MDBClient.new.format_ios_devices devices
36
25
  end
37
26
 
38
27
  def find_android_devices(device_names)
39
- res = JSON.parse(device_names.to_s)
40
28
  device_details = []
41
- res.each do |a|
29
+ device_names.each do |a|
42
30
  device_model = `adb -s #{a['udid']} shell getprop ro.product.model`
43
31
  device_os_version = `adb -s #{a['udid']} shell getprop ro.build.version.release`
44
32
  a['deviceName'] = device_model.to_s.rstrip
@@ -4,7 +4,7 @@ class AkriaClient
4
4
  attr_accessor :base_uri
5
5
 
6
6
  def initialize
7
- @base_uri = "http://localhost:6889"
7
+ @base_uri = ENV["AKIRA"] || "http://localhost:6889"
8
8
  end
9
9
 
10
10
  def save_sessions(session_info)
@@ -0,0 +1,32 @@
1
+ require 'HTTParty'
2
+
3
+ class MDBClient
4
+
5
+ def initialize
6
+ @base_uri = ENV["MDB"] || "http://localhost:9099"
7
+ end
8
+
9
+ def format_android_devices(devices)
10
+ query = { deviceLog: devices }.to_json
11
+ puts query
12
+ response = HTTParty.post("#{@base_uri}/processDevices", body: query, headers: default_headers)
13
+ device_names = JSON.parse(response.to_s)
14
+ return device_names
15
+ end
16
+
17
+ def format_ios_devices(devices)
18
+ body = { deviceLog: devices }.to_json
19
+ response = HTTParty.post("#{@base_uri}/processIosDevices", body: body, headers: default_headers)
20
+ device_names = JSON.parse(response.to_s)
21
+ return device_names
22
+ end
23
+
24
+ def default_headers
25
+ headers = {
26
+ 'Content-Type': "Application/json"
27
+ }
28
+ return headers
29
+ end
30
+
31
+
32
+ end
@@ -1,6 +1,9 @@
1
1
  require 'optimus-runner/server/optimus_runner_sm'
2
2
  require 'rufus/scheduler'
3
3
  require 'logger'
4
+ require 'dotenv'
5
+ require 'optparse'
6
+ require 'optimus-runner/utils/optimuscloudenv.rb'
4
7
 
5
8
 
6
9
  optimus_runner_sm = OptimusRunnerSM.new
@@ -8,6 +11,7 @@ scheduler = Rufus::Scheduler.new
8
11
  logger = Logger.new(STDOUT)
9
12
  logger.level = Logger::WARN
10
13
  logger.info "Starting Optimus runner..."
14
+ logger.info "Loading Optimus Cloud Env"
11
15
 
12
16
  scheduler.interval '5s', :first_in => 0.1 do
13
17
  logger.info "Is Optimus runner idle? #{optimus_runner_sm.idle?}"
@@ -17,3 +21,4 @@ scheduler.interval '5s', :first_in => 0.1 do
17
21
  optimus_runner_sm.restart if optimus_runner_sm.session_terminated?
18
22
  end
19
23
  scheduler.join
24
+
@@ -0,0 +1,15 @@
1
+ require 'dotenv'
2
+ require 'optparse'
3
+
4
+
5
+ class OptimusCloudEnvLoader
6
+ def loadEnv
7
+ optparser = OptionParser.new do |parser|
8
+ parser.on('-e=FILE','--env=FILE', "Optimus Cloud Environment file") do |file|
9
+ p file
10
+ Dotenv.load(file)
11
+ end
12
+ end
13
+ optparser.parse!(ARGV)
14
+ end
15
+ end
@@ -1,3 +1,3 @@
1
1
  module Gandalf
2
- VERSION = "0.7.0"
2
+ VERSION = "0.8.0"
3
3
  end
@@ -25,6 +25,7 @@ Gem::Specification.new do |spec|
25
25
  spec.add_dependency "httparty", "~> 0.16.3"
26
26
  spec.add_dependency 'open4', '~> 1.3'
27
27
  spec.add_dependency 'random-port', '~> 0.3.1'
28
+ spec.add_dependency 'dotenv', '~> 2.1', '>= 2.1.1'
28
29
  spec.add_development_dependency "rake", "~> 10.0"
29
30
  spec.add_development_dependency "rspec", "~> 3.0"
30
31
  spec.add_dependency 'aasm', '~> 5.0'
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: optimus-runner
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.0
4
+ version: 0.8.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - KrishnanandB
@@ -86,6 +86,26 @@ dependencies:
86
86
  - - "~>"
87
87
  - !ruby/object:Gem::Version
88
88
  version: 0.3.1
89
+ - !ruby/object:Gem::Dependency
90
+ name: dotenv
91
+ requirement: !ruby/object:Gem::Requirement
92
+ requirements:
93
+ - - "~>"
94
+ - !ruby/object:Gem::Version
95
+ version: '2.1'
96
+ - - ">="
97
+ - !ruby/object:Gem::Version
98
+ version: 2.1.1
99
+ type: :runtime
100
+ prerelease: false
101
+ version_requirements: !ruby/object:Gem::Requirement
102
+ requirements:
103
+ - - "~>"
104
+ - !ruby/object:Gem::Version
105
+ version: '2.1'
106
+ - - ">="
107
+ - !ruby/object:Gem::Version
108
+ version: 2.1.1
89
109
  - !ruby/object:Gem::Dependency
90
110
  name: rake
91
111
  requirement: !ruby/object:Gem::Requirement
@@ -166,11 +186,13 @@ files:
166
186
  - lib/optimus-runner/DeviceDetails.rb
167
187
  - lib/optimus-runner/SessionInfoBuilder.rb
168
188
  - lib/optimus-runner/clients/AkiraClient.rb
189
+ - lib/optimus-runner/clients/mdb_client.rb
169
190
  - lib/optimus-runner/commands/ShellCommands.rb
170
191
  - lib/optimus-runner/server/appium_server_manager.rb
171
192
  - lib/optimus-runner/server/array_manipulations.rb
172
193
  - lib/optimus-runner/server/optimus_runner_sm.rb
173
194
  - lib/optimus-runner/server/scheduler.rb
195
+ - lib/optimus-runner/utils/optimuscloudenv.rb
174
196
  - lib/optimus-runner/version.rb
175
197
  - lib/optimus_runner_control.rb
176
198
  - optimus-runner.gemspec