iron_worker_ng 0.7.0 → 0.7.1

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