optimus-runner 0.7.0 → 0.8.0

Sign up to get free protection for your applications and to get access to all the features.
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