mobilize-base 1.1.0 → 1.1.01
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.
- data/README.md +5 -4
- data/lib/mobilize-base/extensions/yaml.rb +11 -0
- data/lib/mobilize-base/handlers/gsheet.rb +3 -2
- data/lib/mobilize-base/models/runner.rb +5 -0
- data/lib/mobilize-base/models/stage.rb +4 -11
- data/lib/mobilize-base/models/user.rb +16 -0
- data/lib/mobilize-base/tasks.rb +4 -6
- data/lib/mobilize-base/version.rb +1 -1
- data/lib/mobilize-base.rb +1 -0
- data/test/base_job_rows.yml +3 -3
- metadata +5 -4
data/README.md
CHANGED
@@ -511,13 +511,14 @@ stage. These should be of the for `<key1>: <value1>, <key2>: <value2>`, where
|
|
511
511
|
integer, an array (delimited by square braces), or a hash (delimited by
|
512
512
|
curly braces).
|
513
513
|
* For mobilize-base, the following stages are available:
|
514
|
-
* gsheet.read `source: <
|
515
|
-
* The
|
516
|
-
|
514
|
+
* gsheet.read `source: <input_gsheet_path>`, which reads the sheet.
|
515
|
+
* The gsheet_path should be of the form
|
516
|
+
`<gbook_name>/<gsheet_name>` or just `<gsheet_name>` if the target is in
|
517
|
+
the Runner itself. The test uses "base1_stage1.in".
|
517
518
|
* gsheet.write `source: <stage_name>`,`target: <target_gsheet_path>`,
|
518
519
|
which writes the specified stage output to the target_gsheet.
|
519
520
|
* The stage_name should be of the form `<stage_column>`. The test uses "stage1" for the first test
|
520
|
-
and "
|
521
|
+
and "base1.out" for the second test. The first
|
521
522
|
takes the output from the first stage and the second reads it straight
|
522
523
|
from the referenced sheet.
|
523
524
|
* The test uses "Requestor_mobilize(test)/base1.out" and
|
@@ -0,0 +1,11 @@
|
|
1
|
+
module YAML
|
2
|
+
def YAML.easy_load(string)
|
3
|
+
begin
|
4
|
+
YAML.load(s.param_string)
|
5
|
+
rescue
|
6
|
+
#replace colon w space colon, double space colons w single space
|
7
|
+
gsub_colon_string = string.gsub(":",": ").gsub(": ",": ")
|
8
|
+
YAML.load("{#{gsub_colon_string}}")
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
@@ -38,8 +38,8 @@ module Mobilize
|
|
38
38
|
return false unless gdrive_slot
|
39
39
|
s = Stage.where(:path=>stage_path).first
|
40
40
|
user = s.job.runner.user.name
|
41
|
-
|
42
|
-
out_tsv =
|
41
|
+
source_dst = s.source_dsts(gdrive_slot).first
|
42
|
+
out_tsv = source_dst.read(user)
|
43
43
|
#use Gridfs to cache result
|
44
44
|
out_url = "gridfs://#{s.path}/out"
|
45
45
|
Dataset.write_by_url(out_url,out_tsv,Gdrive.owner_name)
|
@@ -52,6 +52,7 @@ module Mobilize
|
|
52
52
|
s = Stage.where(:path=>stage_path).first
|
53
53
|
user = s.job.runner.user.name
|
54
54
|
target_path = s.params['target']
|
55
|
+
target_path = "#{s.job.runner.title}/#{target_path}" unless target_path.index("/")
|
55
56
|
source_dst = s.source_dsts(gdrive_slot).first
|
56
57
|
tsv = source_dst.read(user)
|
57
58
|
sheet_name = target_path.split("/").last
|
@@ -30,16 +30,9 @@ module Mobilize
|
|
30
30
|
|
31
31
|
def params
|
32
32
|
s = self
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
begin
|
37
|
-
YAML.load(s.param_string)
|
38
|
-
raise "Must resolve to Hash" unless result.class==Hash
|
39
|
-
rescue
|
40
|
-
sub_param_string = s.param_string.gsub(":\"",": \"").gsub(":'",": '").gsub(":[",": [").gsub(":{",": {").gsub(/(:[0-9])/,'stageparamsgsub\1').gsub('stageparamsgsub:',': ')
|
41
|
-
YAML.load("{#{sub_param_string}}")
|
42
|
-
end
|
33
|
+
p = YAML.easy_load(s.param_string)
|
34
|
+
raise "Must resolve to Hash" unless p.class==Hash
|
35
|
+
return p
|
43
36
|
end
|
44
37
|
|
45
38
|
def job
|
@@ -134,7 +127,7 @@ module Mobilize
|
|
134
127
|
else
|
135
128
|
#check sheets in runner
|
136
129
|
r = s.job.runner
|
137
|
-
runner_sheet = r.gbook.worksheet_by_title(source_path)
|
130
|
+
runner_sheet = r.gbook(gdrive_slot).worksheet_by_title(source_path)
|
138
131
|
out_tsv = if runner_sheet
|
139
132
|
runner_sheet.read(user)
|
140
133
|
else
|
@@ -27,6 +27,22 @@ module Mobilize
|
|
27
27
|
return u.runner.jobs
|
28
28
|
end
|
29
29
|
|
30
|
+
def creds(gdrive_slot)
|
31
|
+
u = self
|
32
|
+
creds_path = "#{u.runner.path.split("/").first}/creds"
|
33
|
+
begin
|
34
|
+
creds_sheet = Gsheet.find_by_path(creds_path,gdrive_slot)
|
35
|
+
cred_array = creds_sheet.read(u.name).tsv_to_hash_array.map{|h| {h['name']=>{'user'=>h['user'],'password'=>h['password']}}}
|
36
|
+
result = {}
|
37
|
+
cred_array.each do |cred|
|
38
|
+
result[cred.keys.first] = cred.values.first
|
39
|
+
end
|
40
|
+
return result
|
41
|
+
rescue
|
42
|
+
return {}
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
30
46
|
def runner_path
|
31
47
|
u = self
|
32
48
|
prefix = "Runner_"
|
data/lib/mobilize-base/tasks.rb
CHANGED
@@ -2,15 +2,13 @@ namespace :mobilize_base do
|
|
2
2
|
desc "Start a Resque worker"
|
3
3
|
task :work do
|
4
4
|
require 'mobilize-base'
|
5
|
-
|
6
|
-
|
7
|
-
Mobilize::Base.config('jobtracker')['extensions'].each do |e|
|
5
|
+
Mobilize::Base.config('jobtracker')['extensions'].each do |e|
|
6
|
+
begin
|
8
7
|
require e
|
8
|
+
rescue Exception=>exc
|
9
|
+
#do nothing
|
9
10
|
end
|
10
|
-
rescue Exception=>exc
|
11
|
-
#do nothing
|
12
11
|
end
|
13
|
-
|
14
12
|
begin
|
15
13
|
worker = Resque::Worker.new(Mobilize::Resque.config['queue_name'])
|
16
14
|
rescue Resque::NoQueueError
|
data/lib/mobilize-base.rb
CHANGED
@@ -3,6 +3,7 @@ require "mobilize-base/extensions/array"
|
|
3
3
|
require "mobilize-base/extensions/hash"
|
4
4
|
require "mobilize-base/extensions/object"
|
5
5
|
require "mobilize-base/extensions/string"
|
6
|
+
require "mobilize-base/extensions/yaml"
|
6
7
|
#this is the base of the mobilize object, any methods that should be
|
7
8
|
#made available application-wide go over here
|
8
9
|
#these also define base variables for Rails
|
data/test/base_job_rows.yml
CHANGED
@@ -2,11 +2,11 @@
|
|
2
2
|
active: true
|
3
3
|
trigger: once
|
4
4
|
status: ""
|
5
|
-
stage1: gsheet.read source:
|
6
|
-
stage2: gsheet.write source:
|
5
|
+
stage1: gsheet.read source:base1_stage1.in
|
6
|
+
stage2: gsheet.write source:stage1, target:base1.out
|
7
7
|
|
8
8
|
- name: base2
|
9
9
|
active: true
|
10
10
|
trigger: after base1
|
11
11
|
status: ""
|
12
|
-
stage1: gsheet.write source:
|
12
|
+
stage1: gsheet.write source:base1.out, target:base2.out
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mobilize-base
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.1.
|
4
|
+
version: 1.1.01
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-01-
|
12
|
+
date: 2013-01-26 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rake
|
@@ -196,6 +196,7 @@ files:
|
|
196
196
|
- lib/mobilize-base/extensions/hash.rb
|
197
197
|
- lib/mobilize-base/extensions/object.rb
|
198
198
|
- lib/mobilize-base/extensions/string.rb
|
199
|
+
- lib/mobilize-base/extensions/yaml.rb
|
199
200
|
- lib/mobilize-base/handlers/email.rb
|
200
201
|
- lib/mobilize-base/handlers/gbook.rb
|
201
202
|
- lib/mobilize-base/handlers/gdrive.rb
|
@@ -238,7 +239,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
238
239
|
version: '0'
|
239
240
|
segments:
|
240
241
|
- 0
|
241
|
-
hash:
|
242
|
+
hash: 3362582751526690476
|
242
243
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
243
244
|
none: false
|
244
245
|
requirements:
|
@@ -247,7 +248,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
247
248
|
version: '0'
|
248
249
|
segments:
|
249
250
|
- 0
|
250
|
-
hash:
|
251
|
+
hash: 3362582751526690476
|
251
252
|
requirements: []
|
252
253
|
rubyforge_project: mobilize-base
|
253
254
|
rubygems_version: 1.8.24
|