iron_worker_ng 0.7.0 → 0.7.1

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/VERSION CHANGED
@@ -1 +1 @@
1
- 0.7.0
1
+ 0.7.1
data/bin/iron_worker CHANGED
@@ -81,7 +81,11 @@ if command == 'codes.create'
81
81
  code = nil
82
82
 
83
83
  if runtime.nil?
84
- code = IronWorkerNG::Code::Creator.create(:name => name)
84
+ code = IronWorkerNG::Code::Creator.create(:name => name) do
85
+ execute_features.each do |f|
86
+ send(f[:name], *f[:args])
87
+ end
88
+ end
85
89
  else
86
90
  code = runtimes.find { |r| r[:name] == runtime }[:klass].new(:name => name)
87
91
  end
@@ -65,10 +65,15 @@ module IronWorkerNG
65
65
  builder_code_name = code.name + 'Builder'
66
66
 
67
67
  @api.codes_create(builder_code_name, zip_file, 'sh', '__runner__.sh', options)
68
+
68
69
  builder_task_id = tasks.create(builder_code_name, :iron_token => token, :iron_project_id => project_id, :code_name => code.name, :codes_create_options => options.to_json).id
69
- tasks.wait_for(builder_task_id)
70
+ task = tasks.wait_for(builder_task_id)
71
+
72
+ if task.status != 'complete'
73
+ raise IronCore::IronError.new("Error while remote building: \"#{tasks.log(task.id)}\"")
74
+ end
70
75
 
71
- res = {} # TODO: fetch real res from build worker
76
+ res = JSON.parse(task.msg)
72
77
  end
73
78
 
74
79
  File.unlink(zip_file)
@@ -34,10 +34,6 @@ module IronWorkerNG
34
34
  @@registered_features << feature
35
35
  end
36
36
 
37
- def self.guess_name_for_path(path)
38
- File.basename(path).gsub(/\..*$/, '').capitalize.gsub(/_./) { |x| x[1].upcase }
39
- end
40
-
41
37
  include IronWorkerNG::Code::Initializer::InstanceMethods
42
38
 
43
39
  include IronWorkerNG::Feature::Common::MergeFile::InstanceMethods
@@ -54,11 +50,6 @@ module IronWorkerNG
54
50
  def name(name = nil)
55
51
  @name = name if name
56
52
 
57
- if @name.nil? and @exec
58
- @name = IronWorkerNG::Code::Base.guess_name_for_path(@exec.path)
59
- IronCore::Logger.info 'IronWorkerNG', "defaulting name to #{@name}"
60
- end
61
-
62
53
  @name
63
54
  end
64
55
 
@@ -132,6 +123,10 @@ RUNNER
132
123
  IronCore::Logger.error 'IronWorkerNG', 'No exec specified'
133
124
  raise IronCore::IronError.new('No exec specified')
134
125
  end
126
+
127
+ if @name.nil?
128
+ @name = guess_name_for_path(@exec.path)
129
+ end
135
130
  end
136
131
 
137
132
  fixate
@@ -3,6 +3,12 @@ require_relative '../feature/ruby/merge_gem'
3
3
  module IronWorkerNG
4
4
  module Code
5
5
  class Builder < IronWorkerNG::Code::Ruby
6
+ def initialize(*args, &block)
7
+ @features = []
8
+ @base_dir = ''
9
+ @dest_dir = ''
10
+ end
11
+
6
12
  def bundle(zip)
7
13
  @exec = IronWorkerNG::Feature::Ruby::MergeExec::Feature.new(self, '__builder__.rb', nil)
8
14
 
@@ -22,7 +28,7 @@ BUILDER_SH
22
28
  require 'iron_worker_ng'
23
29
  require 'json'
24
30
 
25
- puts `cd __build__ && sh ../__builder__.sh && cd ..`
31
+ exit 1 unless system('cd __build__ && sh ../__builder__.sh && cd ..')
26
32
 
27
33
  Dir.chdir('__build__')
28
34
 
@@ -32,7 +38,9 @@ code.dir '.'
32
38
 
33
39
  client = IronWorkerNG::Client.new(:token => params[:iron_token], :project_id => params[:iron_project_id])
34
40
 
35
- client.codes.create(code, JSON.parse(params[:codes_create_options]))
41
+ res = client.codes.create(code, JSON.parse(params[:codes_create_options]))
42
+
43
+ client.tasks.set_progress(iron_task_id, :msg => res.marshal_dump.to_json)
36
44
  BUILDER_RUBY
37
45
  end
38
46
  end
@@ -48,7 +48,7 @@ module IronWorkerNG
48
48
  end
49
49
 
50
50
  def merge_exec(path, *args)
51
- @exec = path
51
+ @exec = OpenStruct.new(:path => path)
52
52
  end
53
53
 
54
54
  alias :exec :merge_exec
@@ -6,24 +6,40 @@ module IronWorkerNG
6
6
  @name = nil
7
7
  @exec = nil
8
8
 
9
+ wfiles = []
10
+
9
11
  if args.length == 1 && args[0].class == String
10
- merge_exec(args[0])
12
+ name = args[0]
13
+
14
+ if name.end_with?('.worker') || name.end_with?('.workerfile')
15
+ @name = name.gsub(/\.worker$/, '').gsub(/\.workerfile$/, '')
16
+ else
17
+ merge_exec(name)
18
+ end
11
19
  elsif args.length == 1 && args[0].class == Hash
12
20
  @name = args[0][:name] || args[0]['name']
13
21
 
22
+ unless @name.nil?
23
+ if @name.end_with?('.worker') || @name.end_with?('.workerfile')
24
+ @name = @name.gsub(/\.worker$/, '').gsub(/\.workerfile$/, '')
25
+ end
26
+ end
27
+
14
28
  exec = args[0][:exec] || args[0]['exec'] || args[0][:worker] || args[0]['worker']
15
29
  merge_exec(exec) unless exec.nil?
16
30
  end
17
31
 
18
- wfiles = []
19
-
20
32
  if args.length == 1 && args[0].class == Hash && (args[0][:workerfile] || args[0]['workerfile'])
21
33
  wfiles << args[0][:workerfile] || args[0]['workerfile']
22
34
  end
23
35
 
24
- unless name.nil?
25
- wfiles << name + '.worker'
26
- wfiles << name + '.workerfile'
36
+ if @name.nil? and @exec
37
+ @name = guess_name_for_path(@exec.path)
38
+ end
39
+
40
+ unless @name.nil?
41
+ wfiles << @name + '.worker'
42
+ wfiles << @name + '.workerfile'
27
43
  end
28
44
 
29
45
  wfiles << 'Workerfile'
@@ -41,6 +57,16 @@ module IronWorkerNG
41
57
  unless block.nil?
42
58
  instance_eval(&block)
43
59
  end
60
+
61
+ if @name.nil? and @exec
62
+ @name = guess_name_for_path(@exec.path)
63
+ end
64
+
65
+ @name = File.basename(@name) unless @name.nil?
66
+ end
67
+
68
+ def guess_name_for_path(path)
69
+ File.basename(path).gsub(/\..*$/, '').capitalize.gsub(/_./) { |x| x[1].upcase }
44
70
  end
45
71
  end
46
72
  end
@@ -42,7 +42,7 @@ module IronWorkerNG
42
42
  IronCore::Logger.debug 'IronWorkerNG', "Bundling ruby gem with name='#{@spec.name}' and version='#{@spec.version}'"
43
43
 
44
44
  zip_add(zip, '__gems__/gems/' + @spec.full_name, gem_path)
45
- zip_add(zip, "__gems__/specifications/#{@spec.full_name}.gemspec", File.expand_path(gem_path + '/../../specifications/' + @spec.full_name + '.gemspec'))
45
+ zip_add(zip, "__gems__/specifications/#{@spec.full_name}.gemspec", gem_path + '/../../specifications/' + @spec.full_name + '.gemspec')
46
46
  else
47
47
  IronCore::Logger.warn 'IronWorkerNG', "Skipping ruby gem with name='#{@spec.name}' and version='#{@spec.version}' as it contains native extensions"
48
48
  end
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: 0.7.0
4
+ version: 0.7.1
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2012-06-25 00:00:00.000000000 Z
13
+ date: 2012-06-26 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: iron_core
@@ -145,7 +145,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
145
145
  version: '0'
146
146
  segments:
147
147
  - 0
148
- hash: -348555501
148
+ hash: -928794419
149
149
  required_rubygems_version: !ruby/object:Gem::Requirement
150
150
  none: false
151
151
  requirements: