iron_worker_ng 1.6.3 → 1.6.4

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: 70aa324ca6fd1f4fe49bcfe3294d37b6302926b3
4
- data.tar.gz: 62d5a435dca86736b109a4282eb98f8476a86ee6
3
+ metadata.gz: 4dceb21b4e176225f0a5734c84418c1869057002
4
+ data.tar.gz: 0a4661a382515893776e9fe322966dce35348e58
5
5
  SHA512:
6
- metadata.gz: 9efaa8366ddd501b743cb36f64518d038daa6c50be43d70ff0e75a323def3dde72663d2959ba306940d1aef20fed60d08d086076d995beed6afb9676b92c10b0
7
- data.tar.gz: 1d5cd976a688c710f624c8b542a697fc806da3d1bd0fabe18b7e3e3cf34efd77cc0e898f66fb2c195712d9ba733c9a67ad5efb025af938b6d3c8594792cb0982
6
+ metadata.gz: b4f81f7d49ee9780b5309059706c289256de133322b761ff7c0cd2133fb2721881ea57fa15d6575047e803f91dbdf2c71919399da05aedc7b510d0a6d24d7ba8
7
+ data.tar.gz: 98cc687d4f7b4e3cc91cbcf73435bdee44cd299081672d47b87c3b8bf75772e67ddb4912fe7fc5d4cbf3838a0e2338ec1d8173c8bd256ca5e879a1b472502ffb
data/README.md CHANGED
@@ -415,6 +415,24 @@ code.merge_pip 'iron_mq'
415
415
  code.merge_pip 'iron_worker', '==0.2'
416
416
  ```
417
417
 
418
+ ### merge_requirements(path)
419
+ ### requirements(path)
420
+
421
+ Merge all libraries from a python standard requirements.txt.
422
+ The requirements.txt example file after freezing may look like as follows:
423
+
424
+ ```txt
425
+ Flask==0.8
426
+ Jinja2==2.6
427
+ Werkzeug==0.8.3
428
+ certifi==0.0.8
429
+ chardet==1.0.
430
+ ```
431
+
432
+ ```ruby
433
+ code.merge_requirements '../requirements.txt'
434
+ ```
435
+
418
436
  # Upload Your Worker
419
437
 
420
438
  When you have your code package, you are ready to upload and run it on the IronWorker cloud.
@@ -13,6 +13,7 @@ var fs = require('fs');
13
13
  var querystring = require('querystring');
14
14
  var params = null;
15
15
  var task_id = null;
16
+ var schedule_id = null;
16
17
  var config = null;
17
18
 
18
19
  process.argv.forEach(function(val, index, array) {
@@ -39,11 +40,16 @@ process.argv.forEach(function(val, index, array) {
39
40
  if (val == "-id") {
40
41
  task_id = process.argv[index + 1];
41
42
  }
43
+
44
+ if (val == "-schedule_id") {
45
+ schedule_id = process.argv[index + 1];
46
+ }
42
47
  });
43
48
 
44
49
  exports.params = params;
45
50
  exports.config = config;
46
51
  exports.task_id = task_id;
52
+ exports.schedule_id = schedule_id;
47
53
 
48
54
  NODE_RUNNER
49
55
  end
@@ -13,13 +13,14 @@ module IronWorkerNG
13
13
  function getArgs($assoc = true) {
14
14
  global $argv;
15
15
 
16
- $args = array('task_id' => null, 'dir' => null, 'payload' => array(), 'config' => null);
16
+ $args = array('task_id' => null, 'dir' => null, 'payload' => array(), 'config' => null, 'schedule_id' => null);
17
17
 
18
18
  foreach ($argv as $k => $v) {
19
19
  if (empty($argv[$k + 1])) continue;
20
20
 
21
21
  if ($v == '-id') $args['task_id'] = $argv[$k + 1];
22
22
  if ($v == '-d') $args['dir'] = $argv[$k + 1];
23
+ if ($v == '-schedule_id') $args['schedule_id'] = $argv[$k + 1];
23
24
 
24
25
  if ($v == '-payload' && file_exists($argv[$k + 1])) {
25
26
  $args['payload'] = file_get_contents($argv[$k + 1]);
@@ -1,5 +1,6 @@
1
1
  require 'iron_worker_ng/feature/python/merge_pip_dependency'
2
2
  require 'iron_worker_ng/feature/python/merge_pip'
3
+ require 'iron_worker_ng/feature/python/merge_requirements'
3
4
 
4
5
  module IronWorkerNG
5
6
  module Code
@@ -7,6 +8,7 @@ module IronWorkerNG
7
8
  module Python
8
9
  include IronWorkerNG::Feature::Common::MergeExec::InstanceMethods
9
10
  include IronWorkerNG::Feature::Python::MergePipDependency::InstanceMethods
11
+ include IronWorkerNG::Feature::Python::MergeRequirements::InstanceMethods
10
12
 
11
13
  def runtime_run_code(local, params)
12
14
  <<RUN_CODE
@@ -32,12 +32,14 @@ root = nil
32
32
  payload_file = nil
33
33
  config_file = nil
34
34
  task_id = nil
35
+ schedule_id = nil
35
36
 
36
37
  0.upto($*.length - 2) do |i|
37
38
  root = $*[i + 1] if $*[i] == '-d'
38
39
  payload_file = $*[i + 1] if $*[i] == '-payload'
39
40
  config_file = $*[i + 1] if $*[i] == '-config'
40
41
  task_id = $*[i + 1] if $*[i] == '-id'
42
+ schedule_id = $*[i + 1] if $*[i] == '-schedule_id'
41
43
  end
42
44
 
43
45
  ENV['GEM_PATH'] = ([root + '__gems__'] + (ENV['GEM_PATH'] || '').split(':')).join(':')
@@ -49,6 +51,7 @@ require 'json'
49
51
  require 'yaml'
50
52
 
51
53
  @iron_task_id = task_id
54
+ @iron_schedule_id = schedule_id
52
55
 
53
56
  @payload = File.read(payload_file)
54
57
 
@@ -96,6 +99,10 @@ def iron_task_id
96
99
  @iron_task_id
97
100
  end
98
101
 
102
+ def iron_schedule_id
103
+ @iron_schedule_id
104
+ end
105
+
99
106
  require '#{File.basename(@exec.path)}'
100
107
 
101
108
  unless #{@exec.arg(:class, 0) == nil}
@@ -114,6 +121,10 @@ unless #{@exec.arg(:class, 0) == nil}
114
121
  exec_inst.send(:iron_task_id=, iron_task_id)
115
122
  end
116
123
 
124
+ if exec_inst.respond_to?(:iron_schedule_id=)
125
+ exec_inst.send(:iron_schedule_id=, iron_schedule_id)
126
+ end
127
+
117
128
  exec_inst.run
118
129
  end
119
130
  RUBY_RUNNER
@@ -21,7 +21,7 @@ module IronWorkerNG
21
21
 
22
22
  ::Dir.mkdir(pip_dir_name)
23
23
 
24
- p = 'pip-1.3.1'
24
+ p = 'pip-6.0.8'
25
25
  `cd #{pip_dir_name} && curl -O https://pypi.python.org/packages/source/p/pip/#{p}.tar.gz && tar xf #{p}.tar.gz && cd #{p} && python setup.py install --user --root #{pip_dir_name} && cd .. && rm -rf #{p} #{p}.tar.gz`
26
26
 
27
27
  pip_packages_dir = ::Dir.glob(pip_dir_name + ENV['HOME'] + '/.local/lib/python*').first
@@ -44,6 +44,7 @@ module IronWorkerNG
44
44
  deps_string = @deps.map { |dep| dep.name + dep.version.to_s.sub(/\A\d/, '==\0') }.join(' ')
45
45
  install_command = pip_binary + ' install -U -I --user --root ' + pips_dir_name + ' ' + deps_string
46
46
 
47
+ puts install_command
47
48
  fork do
48
49
  ENV['PYTHONPATH'] = pip_packages_dir + '/site-packages:' + pip_packages_dir + '/dist-packages'
49
50
  puts `#{install_command}`
@@ -0,0 +1,35 @@
1
+ module IronWorkerNG
2
+ module Feature
3
+ module Python
4
+ module MergeRequirements
5
+ module InstanceMethods
6
+
7
+ def merge_requirements(path)
8
+ feature = IronWorkerNG::Feature::Base.new(self)
9
+ IronWorkerNG::Fetcher.fetch_to_file(feature.rebase(path)) do |requirements|
10
+ specs = parse_requirements(requirements)
11
+ specs.each {|spec| merge_pip(spec[:name], spec[:version])}
12
+ end
13
+ @features << feature
14
+ end
15
+
16
+ alias :requirements :merge_requirements
17
+
18
+ private
19
+ def parse_requirements(file)
20
+ specs = []
21
+ File.readlines(file).each do |line|
22
+ line = line.strip
23
+ next if line.to_s.empty? || line.start_with?('#')
24
+ spec = line.split(/(==|>=|<=|<|>)/, 2)
25
+ version = spec[1]? spec[1]+spec[2]: ''
26
+ specs << {name: spec[0], version:version}
27
+ end
28
+ specs
29
+ end
30
+ end
31
+ end
32
+ end
33
+ end
34
+ end
35
+
@@ -1,5 +1,5 @@
1
1
  module IronWorkerNG
2
- VERSION = '1.6.3'
2
+ VERSION = '1.6.4'
3
3
 
4
4
  def self.version
5
5
  VERSION
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: iron_worker_ng
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.6.3
4
+ version: 1.6.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Kirilenko
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2015-02-25 00:00:00.000000000 Z
12
+ date: 2015-03-30 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: iron_core
@@ -216,6 +216,7 @@ files:
216
216
  - lib/iron_worker_ng/feature/java/merge_jar.rb
217
217
  - lib/iron_worker_ng/feature/python/merge_pip.rb
218
218
  - lib/iron_worker_ng/feature/python/merge_pip_dependency.rb
219
+ - lib/iron_worker_ng/feature/python/merge_requirements.rb
219
220
  - lib/iron_worker_ng/feature/ruby/merge_gem.rb
220
221
  - lib/iron_worker_ng/feature/ruby/merge_gem_dependency.rb
221
222
  - lib/iron_worker_ng/feature/ruby/merge_gemfile.rb