iron_worker_ng 1.2.0 → 1.3.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: 8a65609ffb28dcfb0f237160299433f91e040d02
4
- data.tar.gz: 6c54c2f7beee97da91616d3a6efd9d899fcb5443
3
+ metadata.gz: f20b9ca4a077f85f1563aec6717c34c6cea05c73
4
+ data.tar.gz: 76087c46464e1a34801836c610cccd4b992a8e48
5
5
  SHA512:
6
- metadata.gz: 48de0b1aa5ebb1d82defd9f656d0e5caab3d301c719d3cc5baefffdd10595230f5a9b0a3fb145482b6d46d4be149971f58f54cd23f325c8b87592ebbecc06431
7
- data.tar.gz: 57a501300c8140d6aae985b59d3bd0591378719cf23832e932ed8e42bbb0d5377c0bd9a19d405b269b6277d5b8ce91ffe53d57322f01ab4cc639009fcb302979
6
+ metadata.gz: 22cf54ee8a8860a336d8f538935ea08ad691717971f75c125008f4c9823cf88afe83861aa9fe4fad2fb1b0056dfecb21efde564f7ba1ccde60d28b1f701aa3e8
7
+ data.tar.gz: 4bb3824f9ee9cbe790808127090f966bed1c90e4bae5829366f0ab3552de09cc32e79731fcfe7d20137b7e54fed1eb021aad248378f8e9d488c7f93c1a4e82b8
data/README.md CHANGED
@@ -72,6 +72,8 @@ Use the `--wait` parameter to queue a task, wait for it to complete and print th
72
72
 
73
73
  iron_worker queue hello -p "{\"hi\": \"world\"}" --wait
74
74
 
75
+ ### Queue up a task from code
76
+
75
77
  Most commonly you'll be queuing up tasks from code though, so you can do this:
76
78
 
77
79
  ```ruby
@@ -82,6 +84,23 @@ client = IronWorkerNG::Client.new
82
84
  end
83
85
  ```
84
86
 
87
+ ### Setting Task Priority
88
+
89
+ You can specify priority of the task using `--priority` parameter:
90
+
91
+ ```ruby
92
+ iron_worker queue hello --priority 0 # default value, lowest priority
93
+ iron_worker queue hello --priority 1 # medium priority
94
+ ```
95
+
96
+ Value of priority parameter means the priority queue to run the task in. Valid values are 0, 1, and 2. 0 is the default.
97
+
98
+ From code you can set the priority like it done in snippet below:
99
+
100
+ ```ruby
101
+ client.tasks.create("hello", some_params, priority: 2) # highest priority
102
+ ```
103
+
85
104
  ## Get task status
86
105
 
87
106
  When you call `iron_worker queue X`, you'll see the task ID in the output which you can use to get the status.
@@ -8,6 +8,7 @@ require 'iron_worker_ng/feature/common/merge_exec'
8
8
  require 'iron_worker_ng/feature/common/merge_file'
9
9
  require 'iron_worker_ng/feature/common/merge_dir'
10
10
  require 'iron_worker_ng/feature/common/merge_deb'
11
+ require 'iron_worker_ng/feature/common/merge_zip'
11
12
  require 'iron_worker_ng/feature/common/set_env'
12
13
 
13
14
  module IronWorkerNG
@@ -30,6 +31,7 @@ module IronWorkerNG
30
31
  include IronWorkerNG::Feature::Common::MergeFile::InstanceMethods
31
32
  include IronWorkerNG::Feature::Common::MergeDir::InstanceMethods
32
33
  include IronWorkerNG::Feature::Common::MergeDeb::InstanceMethods
34
+ include IronWorkerNG::Feature::Common::MergeZip::InstanceMethods
33
35
  include IronWorkerNG::Feature::Common::SetEnv::InstanceMethods
34
36
 
35
37
  def initialize(*args, &block)
@@ -1,6 +1,6 @@
1
- require 'zip'
1
+ require 'zip/zip'
2
2
 
3
- Zip.continue_on_exists_proc = true
3
+ Zip.options[:continue_on_exists_proc] = true
4
4
 
5
5
  module IronWorkerNG
6
6
  module Code
@@ -10,7 +10,7 @@ module IronWorkerNG
10
10
  super
11
11
 
12
12
  @name = @name + '.zip'
13
- @zip = ::Zip::File.open(@name, ::Zip::File::CREATE)
13
+ @zip = ::Zip::ZipFile.open(@name, ::Zip::ZipFile::CREATE)
14
14
  end
15
15
 
16
16
  def add(dest, src)
@@ -0,0 +1,73 @@
1
+ module IronWorkerNG
2
+ module Feature
3
+ module Common
4
+ module MergeZip
5
+ class Feature < IronWorkerNG::Feature::Base
6
+ attr_reader :path
7
+ attr_reader :dest
8
+
9
+ def initialize(code, path, dest)
10
+ super(code)
11
+
12
+ @path = path
13
+ @dest = dest + (dest.empty? || dest.end_with?('/') ? '' : '/')
14
+ end
15
+
16
+ def bundle(container)
17
+ IronCore::Logger.debug 'IronWorkerNG', "Bundling zip with path='#{@path}' and dest='#{@dest}'"
18
+
19
+ if (not @code.full_remote_build) || (not IronWorkerNG::Fetcher.remote?(rebase(@path)))
20
+ tmp_dir_name = ::Dir.tmpdir + '/' + ::Dir::Tmpname.make_tmpname('iron-worker-ng-', 'zip')
21
+
22
+ ::Dir.mkdir(tmp_dir_name)
23
+
24
+ IronWorkerNG::Fetcher.fetch_to_file(rebase(@path)) do |zip|
25
+ zipf = ::Zip::ZipFile.open(zip)
26
+ zipf.restore_permissions = true
27
+
28
+ zipf.each do |f|
29
+ next if zipf.get_entry(f).ftype == :directory
30
+
31
+ FileUtils::mkdir_p(tmp_dir_name + '/' + File.dirname(f.name))
32
+ zipf.get_entry(f).extract(tmp_dir_name + '/' + f.name)
33
+ end
34
+
35
+ zipf.each do |f|
36
+ next if zipf.get_entry(f).ftype == :directory
37
+
38
+ container_add(container, @dest + f.name, tmp_dir_name + '/' + f.name)
39
+ end
40
+ end
41
+
42
+ container.commit
43
+
44
+ FileUtils.rm_rf(tmp_dir_name)
45
+ end
46
+ end
47
+
48
+ def build_command
49
+ if @code.remote_build_command || @code.full_remote_build
50
+ if @code.full_remote_build && IronWorkerNG::Fetcher.remote?(rebase(@path))
51
+ "zip '#{rebase(@path)}', '#{@dest}'"
52
+ else
53
+ "zip '#{@code.dest_dir}#{@dest}#{File.basename(@path)}', '#{@dest}'"
54
+ end
55
+ else
56
+ nil
57
+ end
58
+ end
59
+ end
60
+
61
+ module InstanceMethods
62
+ def merge_zip(path, dest = '')
63
+ IronCore::Logger.info 'IronWorkerNG', "Merging zip with path='#{path}' and dest='#{dest}'"
64
+
65
+ @features << IronWorkerNG::Feature::Common::MergeZip::Feature.new(self, path, dest)
66
+ end
67
+
68
+ alias :zip :merge_zip
69
+ end
70
+ end
71
+ end
72
+ end
73
+ end
@@ -1,5 +1,5 @@
1
1
  module IronWorkerNG
2
- VERSION = '1.2.0'
2
+ VERSION = '1.3.0'
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.2.0
4
+ version: 1.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Andrew Kirilenko
@@ -9,160 +9,160 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-02-05 00:00:00.000000000 Z
12
+ date: 2014-02-27 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: iron_core
16
16
  requirement: !ruby/object:Gem::Requirement
17
17
  requirements:
18
- - - ">="
18
+ - - '>='
19
19
  - !ruby/object:Gem::Version
20
20
  version: 1.0.0
21
21
  type: :runtime
22
22
  prerelease: false
23
23
  version_requirements: !ruby/object:Gem::Requirement
24
24
  requirements:
25
- - - ">="
25
+ - - '>='
26
26
  - !ruby/object:Gem::Version
27
27
  version: 1.0.0
28
28
  - !ruby/object:Gem::Dependency
29
29
  name: bundler
30
30
  requirement: !ruby/object:Gem::Requirement
31
31
  requirements:
32
- - - ">="
32
+ - - '>='
33
33
  - !ruby/object:Gem::Version
34
34
  version: '0'
35
35
  type: :runtime
36
36
  prerelease: false
37
37
  version_requirements: !ruby/object:Gem::Requirement
38
38
  requirements:
39
- - - ">="
39
+ - - '>='
40
40
  - !ruby/object:Gem::Version
41
41
  version: '0'
42
42
  - !ruby/object:Gem::Dependency
43
43
  name: rubyzip
44
44
  requirement: !ruby/object:Gem::Requirement
45
45
  requirements:
46
- - - ">="
46
+ - - '='
47
47
  - !ruby/object:Gem::Version
48
- version: 1.0.0
48
+ version: 0.9.9
49
49
  type: :runtime
50
50
  prerelease: false
51
51
  version_requirements: !ruby/object:Gem::Requirement
52
52
  requirements:
53
- - - ">="
53
+ - - '='
54
54
  - !ruby/object:Gem::Version
55
- version: 1.0.0
55
+ version: 0.9.9
56
56
  - !ruby/object:Gem::Dependency
57
57
  name: test-unit
58
58
  requirement: !ruby/object:Gem::Requirement
59
59
  requirements:
60
- - - ">="
60
+ - - '>='
61
61
  - !ruby/object:Gem::Version
62
62
  version: '0'
63
63
  type: :development
64
64
  prerelease: false
65
65
  version_requirements: !ruby/object:Gem::Requirement
66
66
  requirements:
67
- - - ">="
67
+ - - '>='
68
68
  - !ruby/object:Gem::Version
69
69
  version: '0'
70
70
  - !ruby/object:Gem::Dependency
71
71
  name: minitest
72
72
  requirement: !ruby/object:Gem::Requirement
73
73
  requirements:
74
- - - ">="
74
+ - - '>='
75
75
  - !ruby/object:Gem::Version
76
76
  version: '0'
77
77
  type: :development
78
78
  prerelease: false
79
79
  version_requirements: !ruby/object:Gem::Requirement
80
80
  requirements:
81
- - - ">="
81
+ - - '>='
82
82
  - !ruby/object:Gem::Version
83
83
  version: '0'
84
84
  - !ruby/object:Gem::Dependency
85
85
  name: minitest-reporters
86
86
  requirement: !ruby/object:Gem::Requirement
87
87
  requirements:
88
- - - ">="
88
+ - - '>='
89
89
  - !ruby/object:Gem::Version
90
90
  version: 0.5.0
91
91
  type: :development
92
92
  prerelease: false
93
93
  version_requirements: !ruby/object:Gem::Requirement
94
94
  requirements:
95
- - - ">="
95
+ - - '>='
96
96
  - !ruby/object:Gem::Version
97
97
  version: 0.5.0
98
98
  - !ruby/object:Gem::Dependency
99
99
  name: rake
100
100
  requirement: !ruby/object:Gem::Requirement
101
101
  requirements:
102
- - - ">="
102
+ - - '>='
103
103
  - !ruby/object:Gem::Version
104
104
  version: '0'
105
105
  type: :development
106
106
  prerelease: false
107
107
  version_requirements: !ruby/object:Gem::Requirement
108
108
  requirements:
109
- - - ">="
109
+ - - '>='
110
110
  - !ruby/object:Gem::Version
111
111
  version: '0'
112
112
  - !ruby/object:Gem::Dependency
113
113
  name: twitter
114
114
  requirement: !ruby/object:Gem::Requirement
115
115
  requirements:
116
- - - ">="
116
+ - - '>='
117
117
  - !ruby/object:Gem::Version
118
118
  version: '0'
119
119
  type: :development
120
120
  prerelease: false
121
121
  version_requirements: !ruby/object:Gem::Requirement
122
122
  requirements:
123
- - - ">="
123
+ - - '>='
124
124
  - !ruby/object:Gem::Version
125
125
  version: '0'
126
126
  - !ruby/object:Gem::Dependency
127
127
  name: actionmailer
128
128
  requirement: !ruby/object:Gem::Requirement
129
129
  requirements:
130
- - - ">="
130
+ - - '>='
131
131
  - !ruby/object:Gem::Version
132
132
  version: '0'
133
133
  type: :development
134
134
  prerelease: false
135
135
  version_requirements: !ruby/object:Gem::Requirement
136
136
  requirements:
137
- - - ">="
137
+ - - '>='
138
138
  - !ruby/object:Gem::Version
139
139
  version: '0'
140
140
  - !ruby/object:Gem::Dependency
141
141
  name: iron_cache
142
142
  requirement: !ruby/object:Gem::Requirement
143
143
  requirements:
144
- - - ">="
144
+ - - '>='
145
145
  - !ruby/object:Gem::Version
146
146
  version: 1.4.0
147
147
  type: :development
148
148
  prerelease: false
149
149
  version_requirements: !ruby/object:Gem::Requirement
150
150
  requirements:
151
- - - ">="
151
+ - - '>='
152
152
  - !ruby/object:Gem::Version
153
153
  version: 1.4.0
154
154
  - !ruby/object:Gem::Dependency
155
155
  name: go
156
156
  requirement: !ruby/object:Gem::Requirement
157
157
  requirements:
158
- - - ">="
158
+ - - '>='
159
159
  - !ruby/object:Gem::Version
160
160
  version: '0'
161
161
  type: :development
162
162
  prerelease: false
163
163
  version_requirements: !ruby/object:Gem::Requirement
164
164
  requirements:
165
- - - ">="
165
+ - - '>='
166
166
  - !ruby/object:Gem::Version
167
167
  version: '0'
168
168
  description: New generation ruby client for IronWorker
@@ -211,6 +211,7 @@ files:
211
211
  - lib/iron_worker_ng/feature/ruby/merge_gemfile.rb
212
212
  - lib/iron_worker_ng/feature/common/set_env.rb
213
213
  - lib/iron_worker_ng/feature/common/merge_file.rb
214
+ - lib/iron_worker_ng/feature/common/merge_zip.rb
214
215
  - lib/iron_worker_ng/feature/common/merge_deb.rb
215
216
  - lib/iron_worker_ng/feature/common/merge_dir.rb
216
217
  - lib/iron_worker_ng/feature/common/merge_exec.rb
@@ -229,12 +230,12 @@ require_paths:
229
230
  - lib
230
231
  required_ruby_version: !ruby/object:Gem::Requirement
231
232
  requirements:
232
- - - ">="
233
+ - - '>='
233
234
  - !ruby/object:Gem::Version
234
235
  version: '1.9'
235
236
  required_rubygems_version: !ruby/object:Gem::Requirement
236
237
  requirements:
237
- - - ">="
238
+ - - '>='
238
239
  - !ruby/object:Gem::Version
239
240
  version: 1.3.6
240
241
  requirements: []