mortar 0.15.46 → 0.15.47
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.
- checksums.yaml +4 -4
- data/lib/mortar/command/base.rb +2 -2
- data/lib/mortar/local/controller.rb +1 -1
- data/lib/mortar/local/pig.rb +1 -1
- data/lib/mortar/pigversion.rb +9 -7
- data/lib/mortar/templates/project/project.properties +2 -2
- data/lib/mortar/version.rb +1 -1
- data/spec/mortar/command/base_spec.rb +13 -13
- data/spec/mortar/command/describe_spec.rb +4 -4
- data/spec/mortar/command/illustrate_spec.rb +7 -7
- data/spec/mortar/command/jobs_spec.rb +21 -21
- data/spec/mortar/command/local_spec.rb +13 -13
- data/spec/mortar/command/validate_spec.rb +4 -4
- data/spec/mortar/local/controller_spec.rb +7 -7
- data/spec/mortar/local/pig_spec.rb +10 -10
- metadata +4 -4
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA1:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: c7a981fb03efa2e8eca07f34e215b5a46a9bf297
|
|
4
|
+
data.tar.gz: 515d42fa8b43d9033e05bbddaea2d1090a27b583
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 4940e4462c82f588dfcf1f90d4b12c7db48bdd87d1e69cda97c1ea8f28eab8b82995aef9f45a3c8f1a8b9004c176fe9717cb7e50df3f0cf10dc18043710b331e
|
|
7
|
+
data.tar.gz: 77ef37837fc0e9596fb4e73ba18b1aea3141868119a19c31dc898ec88efc2a10b8808e3b708032f43beacfefda7929e4ca5d24f5735866dedf7df0ee15c53806
|
data/lib/mortar/command/base.rb
CHANGED
|
@@ -296,7 +296,7 @@ protected
|
|
|
296
296
|
|
|
297
297
|
def self.replace_templates(help)
|
|
298
298
|
help.each do |line|
|
|
299
|
-
line.gsub!("<PIG_VERSION_OPTIONS>", "0.12-Hadoop-2")
|
|
299
|
+
line.gsub!("<PIG_VERSION_OPTIONS>", "0.12-Hadoop-2.7.3")
|
|
300
300
|
end
|
|
301
301
|
end
|
|
302
302
|
|
|
@@ -608,7 +608,7 @@ protected
|
|
|
608
608
|
end
|
|
609
609
|
|
|
610
610
|
def pig_version
|
|
611
|
-
pig_version_str = options[:pigversion] || '0.12-Hadoop-2'
|
|
611
|
+
pig_version_str = options[:pigversion] || '0.12-Hadoop-2.7.3'
|
|
612
612
|
pig_version = Mortar::PigVersion.from_string(pig_version_str)
|
|
613
613
|
end
|
|
614
614
|
|
data/lib/mortar/local/pig.rb
CHANGED
|
@@ -323,7 +323,7 @@ class Mortar::Local::Pig
|
|
|
323
323
|
def template_params_classpath(pig_version=nil)
|
|
324
324
|
# Need to support old watchtower plugins that don't set pig_version
|
|
325
325
|
if pig_version.nil?
|
|
326
|
-
pig_version = Mortar::PigVersion::
|
|
326
|
+
pig_version = Mortar::PigVersion::Pig012Hadoop273.new
|
|
327
327
|
end
|
|
328
328
|
[ "#{pig_directory(pig_version)}/*",
|
|
329
329
|
"#{pig_directory(pig_version)}/lib-local/*",
|
data/lib/mortar/pigversion.rb
CHANGED
|
@@ -16,20 +16,22 @@
|
|
|
16
16
|
|
|
17
17
|
module Mortar
|
|
18
18
|
module PigVersion
|
|
19
|
-
PIG_0_12_HADOOP_2_TGZ_NAME = "pig-0.12-
|
|
19
|
+
PIG_0_12_HADOOP_2_TGZ_NAME = "pig-0.12-Hadoop-2.7.3.tar.gz"
|
|
20
20
|
PIG_0_12_HADOOP_2_TGZ_DEFAULT_URL_PATH = "resource/pig_0_12_hadoop_2"
|
|
21
21
|
|
|
22
22
|
def PigVersion.from_string(pig_version_str)
|
|
23
23
|
if pig_version_str == '0.12'
|
|
24
|
-
raise ArgumentError, "Our Hadoop 1 clusters are no longer supported by EMR. Please use the default version of Pig: 0.12-Hadoop-2. If you're unsure of why you're seeing this error please ensure that the project.properties file is not setting pigversion to an unsupported value."
|
|
24
|
+
raise ArgumentError, "Our Hadoop 1 clusters are no longer supported by EMR. Please use the default version of Pig: 0.12-Hadoop-2.7.3. If you're unsure of why you're seeing this error please ensure that the project.properties file is not setting pigversion to an unsupported value."
|
|
25
25
|
elsif pig_version_str == '0.12-Hadoop-2'
|
|
26
|
-
|
|
26
|
+
raise ArgumentError, "EMR 3 is no longer supported. Please use the default version of Pig: 0.12-Hadoop-2.7.3. If you're unsure of why you're seeing this error please ensure that the project.properties file is not setting pigversion to an unsupported value."
|
|
27
|
+
elsif pig_version_str == '0.12-Hadoop-2.7.3'
|
|
28
|
+
return Pig012Hadoop273.new
|
|
27
29
|
else
|
|
28
|
-
raise ArgumentError, "Unsupported pig version: #{pig_version_str}. Options are: ['0.12-Hadoop-2]."
|
|
30
|
+
raise ArgumentError, "Unsupported pig version: #{pig_version_str}. Options are: ['0.12-Hadoop-2.7.3']."
|
|
29
31
|
end
|
|
30
32
|
end
|
|
31
33
|
|
|
32
|
-
class
|
|
34
|
+
class Pig012Hadoop273
|
|
33
35
|
def tgz_name
|
|
34
36
|
PIG_0_12_HADOOP_2_TGZ_NAME
|
|
35
37
|
end
|
|
@@ -43,7 +45,7 @@ module Mortar
|
|
|
43
45
|
end
|
|
44
46
|
|
|
45
47
|
def version
|
|
46
|
-
"0.12-Hadoop-2"
|
|
48
|
+
"0.12-Hadoop-2.7.3"
|
|
47
49
|
end
|
|
48
50
|
|
|
49
51
|
def pig_version
|
|
@@ -51,7 +53,7 @@ module Mortar
|
|
|
51
53
|
end
|
|
52
54
|
|
|
53
55
|
def cluster_backend
|
|
54
|
-
Mortar::API::Jobs::
|
|
56
|
+
Mortar::API::Jobs::CLUSTER_BACKEND__EMR_HADOOP_2_7_3
|
|
55
57
|
end
|
|
56
58
|
end
|
|
57
59
|
|
|
@@ -7,5 +7,5 @@
|
|
|
7
7
|
# http://help.mortardata.com/data_apps/build_your_own/running_a_mortar_project#toc_7SettingProjectDefaults
|
|
8
8
|
|
|
9
9
|
[DEFAULTS]
|
|
10
|
-
# Default new projects to using Pig 0.12-Hadoop-2
|
|
11
|
-
pigversion=0.12-Hadoop-2
|
|
10
|
+
# Default new projects to using Pig 0.12-Hadoop-2.7.3
|
|
11
|
+
pigversion=0.12-Hadoop-2.7.3
|
data/lib/mortar/version.rb
CHANGED
|
@@ -106,7 +106,7 @@ other\tgit@github.com:other.git (push)
|
|
|
106
106
|
context "method_added" do
|
|
107
107
|
it "replaces help templates" do
|
|
108
108
|
lines = Base.replace_templates(["line", "start <PIG_VERSION_OPTIONS>"])
|
|
109
|
-
lines.join("").should == 'linestart 0.12-Hadoop-2'
|
|
109
|
+
lines.join("").should == 'linestart 0.12-Hadoop-2.7.3'
|
|
110
110
|
end
|
|
111
111
|
end
|
|
112
112
|
|
|
@@ -147,7 +147,7 @@ other\tgit@github.com:other.git (push)
|
|
|
147
147
|
with_git_initialized_project do |p|
|
|
148
148
|
text = """
|
|
149
149
|
[DEFAULTS]
|
|
150
|
-
pigversion=0.12-Hadoop-2
|
|
150
|
+
pigversion=0.12-Hadoop-2.7.3
|
|
151
151
|
|
|
152
152
|
[other]
|
|
153
153
|
no_browser=true
|
|
@@ -155,7 +155,7 @@ no_browser=true
|
|
|
155
155
|
write_file(File.join(p.root_path, ".mortar-defaults"), text)
|
|
156
156
|
|
|
157
157
|
b = Base.new
|
|
158
|
-
b.options.should == {:pigversion => "0.12-Hadoop-2"}
|
|
158
|
+
b.options.should == {:pigversion => "0.12-Hadoop-2.7.3"}
|
|
159
159
|
end
|
|
160
160
|
end
|
|
161
161
|
|
|
@@ -166,7 +166,7 @@ no_browser=true
|
|
|
166
166
|
with_git_initialized_project do |p|
|
|
167
167
|
text = """
|
|
168
168
|
[DEFAULTS]
|
|
169
|
-
pigversion=0.12-Hadoop-2
|
|
169
|
+
pigversion=0.12-Hadoop-2.7.3
|
|
170
170
|
|
|
171
171
|
[other]
|
|
172
172
|
no_browser=true
|
|
@@ -176,14 +176,14 @@ no_browser=true
|
|
|
176
176
|
describe_id = "c571a8c7f76a4fd4a67c103d753e2dd5"
|
|
177
177
|
describe_url = "https://mdog.datadoghq.com/describe/#{describe_id}"
|
|
178
178
|
|
|
179
|
-
mock(Mortar::Auth.api).post_describe("myproject", "my_script", "my_alias", is_a(String), :pig_version => "0.12-Hadoop-2", :project_script_path => be_a_kind_of(String), :parameters=>[]) {Excon::Response.new(:body => {"describe_id" => describe_id})}
|
|
179
|
+
mock(Mortar::Auth.api).post_describe("myproject", "my_script", "my_alias", is_a(String), :pig_version => "0.12-Hadoop-2.7.3", :project_script_path => be_a_kind_of(String), :parameters=>[]) {Excon::Response.new(:body => {"describe_id" => describe_id})}
|
|
180
180
|
mock(Mortar::Auth.api).get_describe(describe_id, :exclude_result => true).returns(Excon::Response.new(:body => {"status_code" => Mortar::API::Describe::STATUS_SUCCESS, "status_description" => "Success", "web_result_url" => describe_url})).ordered
|
|
181
181
|
mock(Launchy).open(describe_url) {Thread.new {}}
|
|
182
182
|
|
|
183
183
|
write_file(File.join(p.pigscripts_path, "my_script.pig"))
|
|
184
184
|
|
|
185
185
|
stderr, stdout, d = execute_and_return_command("describe pigscripts/my_script.pig my_alias --polling_interval 0.05", p, git)
|
|
186
|
-
d.options.should == {:pigversion => "0.12-Hadoop-2", :polling_interval => "0.05"}
|
|
186
|
+
d.options.should == {:pigversion => "0.12-Hadoop-2.7.3", :polling_interval => "0.05"}
|
|
187
187
|
end
|
|
188
188
|
end
|
|
189
189
|
|
|
@@ -194,7 +194,7 @@ no_browser=true
|
|
|
194
194
|
with_git_initialized_project do |p|
|
|
195
195
|
text = """
|
|
196
196
|
[DEFAULTS]
|
|
197
|
-
pigversion=0.12-Hadoop-2
|
|
197
|
+
pigversion=0.12-Hadoop-2.7.3
|
|
198
198
|
|
|
199
199
|
[my_script]
|
|
200
200
|
no_browser=true
|
|
@@ -204,12 +204,12 @@ no_browser=true
|
|
|
204
204
|
describe_id = "c571a8c7f76a4fd4a67c103d753e2dd5"
|
|
205
205
|
describe_url = "https://mdog.datadoghq.com/describe/#{describe_id}"
|
|
206
206
|
|
|
207
|
-
mock(Mortar::Auth.api).post_describe("myproject", "my_script", "my_alias", is_a(String), :pig_version => "0.12-Hadoop-2", :project_script_path => be_a_kind_of(String), :parameters=>[]) {Excon::Response.new(:body => {"describe_id" => describe_id})}
|
|
207
|
+
mock(Mortar::Auth.api).post_describe("myproject", "my_script", "my_alias", is_a(String), :pig_version => "0.12-Hadoop-2.7.3", :project_script_path => be_a_kind_of(String), :parameters=>[]) {Excon::Response.new(:body => {"describe_id" => describe_id})}
|
|
208
208
|
mock(Mortar::Auth.api).get_describe(describe_id, :exclude_result => true).returns(Excon::Response.new(:body => {"status_code" => Mortar::API::Describe::STATUS_SUCCESS, "status_description" => "Success", "web_result_url" => describe_url})).ordered
|
|
209
209
|
write_file(File.join(p.pigscripts_path, "my_script.pig"))
|
|
210
210
|
|
|
211
211
|
stderr, stdout, d = execute_and_return_command("describe pigscripts/my_script.pig my_alias --polling_interval 0.05", p, git)
|
|
212
|
-
d.options.should == {:pigversion => "0.12-Hadoop-2", :polling_interval => "0.05", :no_browser => true}
|
|
212
|
+
d.options.should == {:pigversion => "0.12-Hadoop-2.7.3", :polling_interval => "0.05", :no_browser => true}
|
|
213
213
|
end
|
|
214
214
|
end
|
|
215
215
|
|
|
@@ -232,7 +232,7 @@ polling_interval=10
|
|
|
232
232
|
describe_id = "c571a8c7f76a4fd4a67c103d753e2dd5"
|
|
233
233
|
describe_url = "https://mdog.datadoghq.com/describe/#{describe_id}"
|
|
234
234
|
|
|
235
|
-
mock(Mortar::Auth.api).post_describe("myproject", "my_script", "my_alias", is_a(String), :pig_version => "0.12-Hadoop-2", :project_script_path => be_a_kind_of(String), :parameters=>[]) {Excon::Response.new(:body => {"describe_id" => describe_id})}
|
|
235
|
+
mock(Mortar::Auth.api).post_describe("myproject", "my_script", "my_alias", is_a(String), :pig_version => "0.12-Hadoop-2.7.3", :project_script_path => be_a_kind_of(String), :parameters=>[]) {Excon::Response.new(:body => {"describe_id" => describe_id})}
|
|
236
236
|
mock(Mortar::Auth.api).get_describe(describe_id, :exclude_result => true).returns(Excon::Response.new(:body => {"status_code" => Mortar::API::Describe::STATUS_SUCCESS, "status_description" => "Success", "web_result_url" => describe_url})).ordered
|
|
237
237
|
write_file(File.join(p.pigscripts_path, "my_script.pig"))
|
|
238
238
|
|
|
@@ -250,19 +250,19 @@ polling_interval=10
|
|
|
250
250
|
[DEFAULTS]
|
|
251
251
|
clustersize=5
|
|
252
252
|
no_browser=true
|
|
253
|
-
pigversion=0.12-Hadoop-2
|
|
253
|
+
pigversion=0.12-Hadoop-2.7.3
|
|
254
254
|
"""
|
|
255
255
|
write_file(File.join(p.root_path, "project.properties"), text)
|
|
256
256
|
|
|
257
257
|
describe_id = "c571a8c7f76a4fd4a67c103d753e2dd5"
|
|
258
258
|
describe_url = "https://mdog.datadoghq.com/describe/#{describe_id}"
|
|
259
259
|
|
|
260
|
-
mock(Mortar::Auth.api).post_describe("myproject", "my_script", "my_alias", is_a(String), :pig_version => "0.12-Hadoop-2", :project_script_path => be_a_kind_of(String), :parameters=>[]) {Excon::Response.new(:body => {"describe_id" => describe_id})}
|
|
260
|
+
mock(Mortar::Auth.api).post_describe("myproject", "my_script", "my_alias", is_a(String), :pig_version => "0.12-Hadoop-2.7.3", :project_script_path => be_a_kind_of(String), :parameters=>[]) {Excon::Response.new(:body => {"describe_id" => describe_id})}
|
|
261
261
|
mock(Mortar::Auth.api).get_describe(describe_id, :exclude_result => true).returns(Excon::Response.new(:body => {"status_code" => Mortar::API::Describe::STATUS_SUCCESS, "status_description" => "Success", "web_result_url" => describe_url})).ordered
|
|
262
262
|
write_file(File.join(p.pigscripts_path, "my_script.pig"))
|
|
263
263
|
|
|
264
264
|
stderr, stdout, d = execute_and_return_command("describe pigscripts/my_script.pig my_alias --polling_interval 0.05", p, git)
|
|
265
|
-
d.options.should == {:polling_interval => "0.05", :no_browser => true, :clustersize => "5", :pigversion => "0.12-Hadoop-2"}
|
|
265
|
+
d.options.should == {:polling_interval => "0.05", :no_browser => true, :clustersize => "5", :pigversion => "0.12-Hadoop-2.7.3"}
|
|
266
266
|
end
|
|
267
267
|
end
|
|
268
268
|
|
|
@@ -98,7 +98,7 @@ STDERR
|
|
|
98
98
|
describe_url = "https://mdog.datadoghq.com/describe/#{describe_id}"
|
|
99
99
|
parameters = ["name"=>"key", "value"=>"value" ]
|
|
100
100
|
|
|
101
|
-
mock(Mortar::Auth.api).post_describe("myproject", "my_script", "my_alias", is_a(String), :pig_version => "0.12-Hadoop-2", :project_script_path => be_a_kind_of(String), :parameters => parameters) {Excon::Response.new(:body => {"describe_id" => describe_id})}
|
|
101
|
+
mock(Mortar::Auth.api).post_describe("myproject", "my_script", "my_alias", is_a(String), :pig_version => "0.12-Hadoop-2.7.3", :project_script_path => be_a_kind_of(String), :parameters => parameters) {Excon::Response.new(:body => {"describe_id" => describe_id})}
|
|
102
102
|
mock(Mortar::Auth.api).get_describe(describe_id, :exclude_result => true).returns(Excon::Response.new(:body => {"status_code" => Mortar::API::Describe::STATUS_QUEUED, "status_description" => "Pending"})).ordered
|
|
103
103
|
mock(Mortar::Auth.api).get_describe(describe_id, :exclude_result => true).returns(Excon::Response.new(:body => {"status_code" => Mortar::API::Describe::STATUS_GATEWAY_STARTING, "status_description" => "Gateway starting"})).ordered
|
|
104
104
|
mock(Mortar::Auth.api).get_describe(describe_id, :exclude_result => true).returns(Excon::Response.new(:body => {"status_code" => Mortar::API::Describe::STATUS_PROGRESS, "status_description" => "Starting pig"})).ordered
|
|
@@ -129,7 +129,7 @@ STDOUT
|
|
|
129
129
|
describe_url = "https://mdog.datadoghq.com/describe/#{describe_id}"
|
|
130
130
|
parameters = ["name"=>"key", "value"=>"value" ]
|
|
131
131
|
|
|
132
|
-
mock(Mortar::Auth.api).post_describe("myproject", "my_script", "my_alias", is_a(String), :pig_version => "0.12-Hadoop-2", :project_script_path => be_a_kind_of(String), :parameters => parameters) {Excon::Response.new(:body => {"describe_id" => describe_id})}
|
|
132
|
+
mock(Mortar::Auth.api).post_describe("myproject", "my_script", "my_alias", is_a(String), :pig_version => "0.12-Hadoop-2.7.3", :project_script_path => be_a_kind_of(String), :parameters => parameters) {Excon::Response.new(:body => {"describe_id" => describe_id})}
|
|
133
133
|
mock(Mortar::Auth.api).get_describe(describe_id, :exclude_result => true).returns(Excon::Response.new(:body => {"status_code" => Mortar::API::Describe::STATUS_QUEUED, "status_description" => "Pending"})).ordered
|
|
134
134
|
mock(Mortar::Auth.api).get_describe(describe_id, :exclude_result => true).returns(Excon::Response.new(:body => {"status_code" => Mortar::API::Describe::STATUS_GATEWAY_STARTING, "status_description" => "Gateway starting"})).ordered
|
|
135
135
|
mock(Mortar::Auth.api).get_describe(describe_id, :exclude_result => true).returns(Excon::Response.new(:body => {"status_code" => Mortar::API::Describe::STATUS_PROGRESS, "status_description" => "Starting pig"})).ordered
|
|
@@ -163,7 +163,7 @@ STDOUT
|
|
|
163
163
|
column_number = 32
|
|
164
164
|
error_type = 'PigError'
|
|
165
165
|
|
|
166
|
-
mock(Mortar::Auth.api).post_describe("myproject", "my_script", "my_alias", is_a(String), :pig_version => "0.12-Hadoop-2", :project_script_path => be_a_kind_of(String), :parameters => []) {Excon::Response.new(:body => {"describe_id" => describe_id})}
|
|
166
|
+
mock(Mortar::Auth.api).post_describe("myproject", "my_script", "my_alias", is_a(String), :pig_version => "0.12-Hadoop-2.7.3", :project_script_path => be_a_kind_of(String), :parameters => []) {Excon::Response.new(:body => {"describe_id" => describe_id})}
|
|
167
167
|
mock(Mortar::Auth.api).get_describe(describe_id, :exclude_result => true).returns(Excon::Response.new(:body => {"status_code" => Mortar::API::Describe::STATUS_QUEUED, "status_description" => "Pending"})).ordered
|
|
168
168
|
mock(Mortar::Auth.api).get_describe(describe_id, :exclude_result => true).returns(Excon::Response.new(:body => {"status_code" => Mortar::API::Describe::STATUS_FAILURE, "status_description" => "Failed",
|
|
169
169
|
"error_message" => error_message,
|
|
@@ -198,7 +198,7 @@ STDERR
|
|
|
198
198
|
describe_url = "https://mdog.datadoghq.com/describe/#{describe_id}"
|
|
199
199
|
parameters = ["name"=>"key", "value"=>"value" ]
|
|
200
200
|
|
|
201
|
-
mock(Mortar::Auth.api).post_describe("myproject", "my_script", "my_alias", is_a(String), :pig_version => "0.12-Hadoop-2", :project_script_path => be_a_kind_of(String), :parameters => parameters) {Excon::Response.new(:body => {"describe_id" => describe_id})}
|
|
201
|
+
mock(Mortar::Auth.api).post_describe("myproject", "my_script", "my_alias", is_a(String), :pig_version => "0.12-Hadoop-2.7.3", :project_script_path => be_a_kind_of(String), :parameters => parameters) {Excon::Response.new(:body => {"describe_id" => describe_id})}
|
|
202
202
|
mock(Mortar::Auth.api).get_describe(describe_id, :exclude_result => true).returns(Excon::Response.new(:body => {"status_code" => Mortar::API::Describe::STATUS_QUEUED, "status_description" => "Pending"})).ordered
|
|
203
203
|
mock(Mortar::Auth.api).get_describe(describe_id, :exclude_result => true).returns(Excon::Response.new(:body => {"status_code" => Mortar::API::Describe::STATUS_GATEWAY_STARTING, "status_description" => "Gateway starting"})).ordered
|
|
204
204
|
mock(Mortar::Auth.api).get_describe(describe_id, :exclude_result => true).returns(Excon::Response.new(:body => {"status_code" => Mortar::API::Describe::STATUS_PROGRESS, "status_description" => "Starting pig"})).ordered
|
|
@@ -74,7 +74,7 @@ STDERR
|
|
|
74
74
|
parameters = ["name"=>"key", "value"=>"value" ]
|
|
75
75
|
|
|
76
76
|
# These don't test the validity of the error message, it only tests that the CLI can handle a message returned from the server
|
|
77
|
-
mock(Mortar::Auth.api).post_illustrate("myproject", "my_script", "my_alias", false, is_a(String), :pig_version => "0.12-Hadoop-2", :project_script_path => be_a_kind_of(String), :parameters => parameters) {Excon::Response.new(:body => {"illustrate_id" => illustrate_id})}
|
|
77
|
+
mock(Mortar::Auth.api).post_illustrate("myproject", "my_script", "my_alias", false, is_a(String), :pig_version => "0.12-Hadoop-2.7.3", :project_script_path => be_a_kind_of(String), :parameters => parameters) {Excon::Response.new(:body => {"illustrate_id" => illustrate_id})}
|
|
78
78
|
mock(Mortar::Auth.api).get_illustrate(illustrate_id, :exclude_result => true).returns(Excon::Response.new(:body => {"status_code" => Mortar::API::Illustrate::STATUS_QUEUED, "status_description" => "Pending"})).ordered
|
|
79
79
|
mock(Mortar::Auth.api).get_illustrate(illustrate_id, :exclude_result => true).returns(Excon::Response.new(:body => {"status_code" => Mortar::API::Illustrate::STATUS_GATEWAY_STARTING, "status_description" => "GATEWAY_STARTING"})).ordered
|
|
80
80
|
mock(Mortar::Auth.api).get_illustrate(illustrate_id, :exclude_result => true).returns(Excon::Response.new(:body => {"status_code" => Mortar::API::Illustrate::STATUS_PROGRESS, "status_description" => "In progress"})).ordered
|
|
@@ -108,7 +108,7 @@ STDOUT
|
|
|
108
108
|
parameters = ["name"=>"key", "value"=>"value" ]
|
|
109
109
|
|
|
110
110
|
# These don't test the validity of the error message, it only tests that the CLI can handle a message returned from the server
|
|
111
|
-
mock(Mortar::Auth.api).post_illustrate("myproject", "my_script", "my_alias", false, is_a(String), :pig_version => "0.12-Hadoop-2", :project_script_path => be_a_kind_of(String), :parameters => parameters) {Excon::Response.new(:body => {"illustrate_id" => illustrate_id})}
|
|
111
|
+
mock(Mortar::Auth.api).post_illustrate("myproject", "my_script", "my_alias", false, is_a(String), :pig_version => "0.12-Hadoop-2.7.3", :project_script_path => be_a_kind_of(String), :parameters => parameters) {Excon::Response.new(:body => {"illustrate_id" => illustrate_id})}
|
|
112
112
|
mock(Mortar::Auth.api).get_illustrate(illustrate_id, :exclude_result => true).returns(Excon::Response.new(:body => {"status_code" => Mortar::API::Illustrate::STATUS_QUEUED, "status_description" => "Pending"})).ordered
|
|
113
113
|
mock(Mortar::Auth.api).get_illustrate(illustrate_id, :exclude_result => true).returns(Excon::Response.new(:body => {"status_code" => Mortar::API::Illustrate::STATUS_GATEWAY_STARTING, "status_description" => "GATEWAY_STARTING"})).ordered
|
|
114
114
|
mock(Mortar::Auth.api).get_illustrate(illustrate_id, :exclude_result => true).returns(Excon::Response.new(:body => {"status_code" => Mortar::API::Illustrate::STATUS_PROGRESS, "status_description" => "In progress"})).ordered
|
|
@@ -142,7 +142,7 @@ STDOUT
|
|
|
142
142
|
parameters = ["name"=>"key", "value"=>"value" ]
|
|
143
143
|
|
|
144
144
|
# These don't test the validity of the error message, it only tests that the CLI can handle a message returned from the server
|
|
145
|
-
mock(Mortar::Auth.api).post_illustrate("myproject", "my_script", "my_alias", false, is_a(String), :pig_version => "0.12-Hadoop-2", :project_script_path => be_a_kind_of(String), :parameters => parameters) {Excon::Response.new(:body => {"illustrate_id" => illustrate_id})}
|
|
145
|
+
mock(Mortar::Auth.api).post_illustrate("myproject", "my_script", "my_alias", false, is_a(String), :pig_version => "0.12-Hadoop-2.7.3", :project_script_path => be_a_kind_of(String), :parameters => parameters) {Excon::Response.new(:body => {"illustrate_id" => illustrate_id})}
|
|
146
146
|
mock(Mortar::Auth.api).get_illustrate(illustrate_id, :exclude_result => true).returns(Excon::Response.new(:body => {"status_code" => Mortar::API::Illustrate::STATUS_QUEUED, "status_description" => "Pending"})).ordered
|
|
147
147
|
mock(Mortar::Auth.api).get_illustrate(illustrate_id, :exclude_result => true).returns(Excon::Response.new(:body => {"status_code" => Mortar::API::Illustrate::STATUS_SUCCESS, "status_description" => "Succeeded", "web_result_url" => illustrate_url})).ordered
|
|
148
148
|
|
|
@@ -169,7 +169,7 @@ STDOUT
|
|
|
169
169
|
parameters = ["name"=>"key", "value"=>"value" ]
|
|
170
170
|
|
|
171
171
|
# These don't test the validity of the error message, it only tests that the CLI can handle a message returned from the server
|
|
172
|
-
mock(Mortar::Auth.api).post_illustrate("myproject", "my_script", "my_alias", true, is_a(String), :pig_version => "0.12-Hadoop-2", :project_script_path => be_a_kind_of(String), :parameters => parameters) {Excon::Response.new(:body => {"illustrate_id" => illustrate_id})}
|
|
172
|
+
mock(Mortar::Auth.api).post_illustrate("myproject", "my_script", "my_alias", true, is_a(String), :pig_version => "0.12-Hadoop-2.7.3", :project_script_path => be_a_kind_of(String), :parameters => parameters) {Excon::Response.new(:body => {"illustrate_id" => illustrate_id})}
|
|
173
173
|
mock(Mortar::Auth.api).get_illustrate(illustrate_id, :exclude_result => true).returns(Excon::Response.new(:body => {"status_code" => Mortar::API::Illustrate::STATUS_QUEUED, "status_description" => "Pending"})).ordered
|
|
174
174
|
mock(Mortar::Auth.api).get_illustrate(illustrate_id, :exclude_result => true).returns(Excon::Response.new(:body => {"status_code" => Mortar::API::Illustrate::STATUS_SUCCESS, "status_description" => "Succeeded", "web_result_url" => illustrate_url})).ordered
|
|
175
175
|
|
|
@@ -195,7 +195,7 @@ STDOUT
|
|
|
195
195
|
parameters = ["name"=>"key", "value"=>"value" ]
|
|
196
196
|
|
|
197
197
|
# These don't test the validity of the error message, it only tests that the CLI can handle a message returned from the server
|
|
198
|
-
mock(Mortar::Auth.api).post_illustrate("myproject", "my_script", nil, false, is_a(String), :pig_version => "0.12-Hadoop-2", :project_script_path => be_a_kind_of(String), :parameters => parameters) {Excon::Response.new(:body => {"illustrate_id" => illustrate_id})}
|
|
198
|
+
mock(Mortar::Auth.api).post_illustrate("myproject", "my_script", nil, false, is_a(String), :pig_version => "0.12-Hadoop-2.7.3", :project_script_path => be_a_kind_of(String), :parameters => parameters) {Excon::Response.new(:body => {"illustrate_id" => illustrate_id})}
|
|
199
199
|
mock(Mortar::Auth.api).get_illustrate(illustrate_id, :exclude_result => true).returns(Excon::Response.new(:body => {"status_code" => Mortar::API::Illustrate::STATUS_QUEUED, "status_description" => "Pending"})).ordered
|
|
200
200
|
mock(Mortar::Auth.api).get_illustrate(illustrate_id, :exclude_result => true).returns(Excon::Response.new(:body => {"status_code" => Mortar::API::Illustrate::STATUS_GATEWAY_STARTING, "status_description" => "GATEWAY_STARTING"})).ordered
|
|
201
201
|
mock(Mortar::Auth.api).get_illustrate(illustrate_id, :exclude_result => true).returns(Excon::Response.new(:body => {"status_code" => Mortar::API::Illustrate::STATUS_PROGRESS, "status_description" => "In progress"})).ordered
|
|
@@ -232,7 +232,7 @@ STDOUT
|
|
|
232
232
|
error_type = 'PigError'
|
|
233
233
|
|
|
234
234
|
# These don't test the validity of the error message, it only tests that the CLI can handle a message returned from the server
|
|
235
|
-
mock(Mortar::Auth.api).post_illustrate("myproject", "my_script", "my_alias", false, is_a(String), :pig_version => "0.12-Hadoop-2", :project_script_path => be_a_kind_of(String), :parameters => []) {Excon::Response.new(:body => {"illustrate_id" => illustrate_id})}
|
|
235
|
+
mock(Mortar::Auth.api).post_illustrate("myproject", "my_script", "my_alias", false, is_a(String), :pig_version => "0.12-Hadoop-2.7.3", :project_script_path => be_a_kind_of(String), :parameters => []) {Excon::Response.new(:body => {"illustrate_id" => illustrate_id})}
|
|
236
236
|
mock(Mortar::Auth.api).get_illustrate(illustrate_id, :exclude_result => true).returns(Excon::Response.new(:body => {"status_code" => Mortar::API::Illustrate::STATUS_QUEUED, "status_description" => "Pending"})).ordered
|
|
237
237
|
mock(Mortar::Auth.api).get_illustrate(illustrate_id, :exclude_result => true).returns(Excon::Response.new(:body => {"status_code" => Mortar::API::Illustrate::STATUS_FAILURE,
|
|
238
238
|
"error_message" => error_message,
|
|
@@ -268,7 +268,7 @@ STDERR
|
|
|
268
268
|
parameters = ["name"=>"key", "value"=>"value" ]
|
|
269
269
|
|
|
270
270
|
# These don't test the validity of the error message, it only tests that the CLI can handle a message returned from the server
|
|
271
|
-
mock(Mortar::Auth.api).post_illustrate("myproject", "my_script", nil, false, is_a(String), :pig_version => "0.12-Hadoop-2", :project_script_path => be_a_kind_of(String), :parameters => parameters) {Excon::Response.new(:body => {"illustrate_id" => illustrate_id})}
|
|
271
|
+
mock(Mortar::Auth.api).post_illustrate("myproject", "my_script", nil, false, is_a(String), :pig_version => "0.12-Hadoop-2.7.3", :project_script_path => be_a_kind_of(String), :parameters => parameters) {Excon::Response.new(:body => {"illustrate_id" => illustrate_id})}
|
|
272
272
|
mock(Mortar::Auth.api).get_illustrate(illustrate_id, :exclude_result => true).returns(Excon::Response.new(:body => {"status_code" => Mortar::API::Illustrate::STATUS_QUEUED, "status_description" => "Pending"})).ordered
|
|
273
273
|
mock(Mortar::Auth.api).get_illustrate(illustrate_id, :exclude_result => true).returns(Excon::Response.new(:body => {"status_code" => Mortar::API::Illustrate::STATUS_GATEWAY_STARTING, "status_description" => "GATEWAY_STARTING"})).ordered
|
|
274
274
|
mock(Mortar::Auth.api).get_illustrate(illustrate_id, :exclude_result => true).returns(Excon::Response.new(:body => {"status_code" => Mortar::API::Illustrate::STATUS_PROGRESS, "status_description" => "In progress"})).ordered
|
|
@@ -47,7 +47,7 @@ module Mortar::Command
|
|
|
47
47
|
cluster_size = 5
|
|
48
48
|
|
|
49
49
|
mock(Mortar::Auth.api).post_pig_job_new_cluster("myproject", "my_script", is_a(String), cluster_size,
|
|
50
|
-
:pig_version => "0.12-Hadoop-2",
|
|
50
|
+
:pig_version => "0.12-Hadoop-2.7.3",
|
|
51
51
|
:project_script_path => be_a_kind_of(String),
|
|
52
52
|
:parameters => match_array([{"name" => "FIRST_PARAM", "value" => "FOO"}, {"name" => "SECOND_PARAM", "value" => "BAR"}]),
|
|
53
53
|
:cluster_type => Jobs::CLUSTER_TYPE__SINGLE_JOB,
|
|
@@ -83,7 +83,7 @@ STDOUT
|
|
|
83
83
|
cluster_size = 5
|
|
84
84
|
|
|
85
85
|
mock(Mortar::Auth.api).post_pig_job_new_cluster("myproject", "my_script", is_a(String),cluster_size,
|
|
86
|
-
:pig_version => "0.12-Hadoop-2",
|
|
86
|
+
:pig_version => "0.12-Hadoop-2.7.3",
|
|
87
87
|
:project_script_path => be_a_kind_of(String),
|
|
88
88
|
:parameters => match_array([{"name" => "FIRST_PARAM", "value" => "FOO"}, {"name" => "SECOND_PARAM", "value" => "BAR"}]),
|
|
89
89
|
:cluster_type => Jobs::CLUSTER_TYPE__PERMANENT,
|
|
@@ -143,7 +143,7 @@ STDERR
|
|
|
143
143
|
cluster_size = 5
|
|
144
144
|
|
|
145
145
|
mock(Mortar::Auth.api).post_pig_job_new_cluster("myproject", "my_script", is_a(String),cluster_size,
|
|
146
|
-
:pig_version => "0.12-Hadoop-2",
|
|
146
|
+
:pig_version => "0.12-Hadoop-2.7.3",
|
|
147
147
|
:project_script_path => be_a_kind_of(String),
|
|
148
148
|
:parameters => match_array([{"name" => "FIRST_PARAM", "value" => "FOO"}, {"name" => "SECOND_PARAM", "value" => "BAR"}]),
|
|
149
149
|
:cluster_type => Jobs::CLUSTER_TYPE__PERSISTENT,
|
|
@@ -179,7 +179,7 @@ STDOUT
|
|
|
179
179
|
cluster_size = 5
|
|
180
180
|
|
|
181
181
|
mock(Mortar::Auth.api).post_pig_job_new_cluster("myproject", "my_script", is_a(String),cluster_size,
|
|
182
|
-
:pig_version => "0.12-Hadoop-2",
|
|
182
|
+
:pig_version => "0.12-Hadoop-2.7.3",
|
|
183
183
|
:project_script_path => be_a_kind_of(String),
|
|
184
184
|
:parameters => match_array([{"name" => "FIRST_PARAM", "value" => "FOO"}, {"name" => "SECOND_PARAM", "value" => "BAR"}]),
|
|
185
185
|
:cluster_type => Jobs::CLUSTER_TYPE__PERSISTENT,
|
|
@@ -215,7 +215,7 @@ STDOUT
|
|
|
215
215
|
cluster_id = "e2790e7e8c7d48e39157238d58191346"
|
|
216
216
|
|
|
217
217
|
mock(Mortar::Auth.api).post_pig_job_existing_cluster("myproject", "my_script", is_a(String), cluster_id,
|
|
218
|
-
:pig_version => "0.12-Hadoop-2",
|
|
218
|
+
:pig_version => "0.12-Hadoop-2.7.3",
|
|
219
219
|
:project_script_path => be_a_kind_of(String),
|
|
220
220
|
:parameters => [],
|
|
221
221
|
:notify_on_job_finish => false,
|
|
@@ -249,7 +249,7 @@ STDOUT
|
|
|
249
249
|
cluster_id = "e2790e7e8c7d48e39157238d58191346"
|
|
250
250
|
|
|
251
251
|
mock(Mortar::Auth.api).post_pig_job_existing_cluster("myproject", "my_script", is_a(String), cluster_id,
|
|
252
|
-
:pig_version => "0.12-Hadoop-2",
|
|
252
|
+
:pig_version => "0.12-Hadoop-2.7.3",
|
|
253
253
|
:project_script_path => be_a_kind_of(String),
|
|
254
254
|
:parameters => [],
|
|
255
255
|
:notify_on_job_finish => false,
|
|
@@ -281,9 +281,9 @@ STDOUT
|
|
|
281
281
|
job_url = "http://127.0.0.1:5000/jobs/job_detail?job_id=c571a8c7f76a4fd4a67c103d753e2dd5"
|
|
282
282
|
cluster_size = 2
|
|
283
283
|
|
|
284
|
-
mock(Mortar::Auth.api).get_clusters(Mortar::API::Jobs::
|
|
284
|
+
mock(Mortar::Auth.api).get_clusters(Mortar::API::Jobs::CLUSTER_BACKEND__EMR_HADOOP_2_7_3) {Excon::Response.new(:body => {'clusters' => []})}
|
|
285
285
|
mock(Mortar::Auth.api).post_pig_job_new_cluster("myproject", "my_script", is_a(String), cluster_size,
|
|
286
|
-
:pig_version => "0.12-Hadoop-2",
|
|
286
|
+
:pig_version => "0.12-Hadoop-2.7.3",
|
|
287
287
|
:project_script_path => be_a_kind_of(String),
|
|
288
288
|
:parameters => [],
|
|
289
289
|
:cluster_type => Jobs::CLUSTER_TYPE__PERSISTENT,
|
|
@@ -319,9 +319,9 @@ STDOUT
|
|
|
319
319
|
job_url = "http://127.0.0.1:5000/jobs/job_detail?job_id=c571a8c7f76a4fd4a67c103d753e2dd5"
|
|
320
320
|
cluster_size = 2
|
|
321
321
|
|
|
322
|
-
mock(Mortar::Auth.api).get_clusters(Mortar::API::Jobs::
|
|
322
|
+
mock(Mortar::Auth.api).get_clusters(Mortar::API::Jobs::CLUSTER_BACKEND__EMR_HADOOP_2_7_3) {Excon::Response.new(:body => {'clusters' => []})}
|
|
323
323
|
mock(Mortar::Auth.api).post_pig_job_new_cluster("myproject", "my_script", is_a(String), cluster_size,
|
|
324
|
-
:pig_version => "0.12-Hadoop-2",
|
|
324
|
+
:pig_version => "0.12-Hadoop-2.7.3",
|
|
325
325
|
:project_script_path => be_a_kind_of(String),
|
|
326
326
|
:parameters => [],
|
|
327
327
|
:cluster_type => Jobs::CLUSTER_TYPE__PERSISTENT,
|
|
@@ -358,7 +358,7 @@ STDOUT
|
|
|
358
358
|
job_url = "http://127.0.0.1:5000/jobs/job_detail?job_id=c571a8c7f76a4fd4a67c103d753e2dd5"
|
|
359
359
|
cluster_id = "e2790e7e8c7d48e39157238d58191346"
|
|
360
360
|
|
|
361
|
-
mock(Mortar::Auth.api).post_pig_job_existing_cluster("myproject", "my_script", is_a(String), cluster_id, :pig_version => "0.12-Hadoop-2", :project_script_path => be_a_kind_of(String), :parameters => [], :notify_on_job_finish => false, :is_control_script=>false) {Excon::Response.new(:body => {"job_id" => job_id, "web_job_url" => job_url})}
|
|
361
|
+
mock(Mortar::Auth.api).post_pig_job_existing_cluster("myproject", "my_script", is_a(String), cluster_id, :pig_version => "0.12-Hadoop-2.7.3", :project_script_path => be_a_kind_of(String), :parameters => [], :notify_on_job_finish => false, :is_control_script=>false) {Excon::Response.new(:body => {"job_id" => job_id, "web_job_url" => job_url})}
|
|
362
362
|
|
|
363
363
|
write_file(File.join(p.pigscripts_path, "my_script.pig"))
|
|
364
364
|
stderr, stdout = execute("jobs:run pigscripts/my_script.pig --clusterid e2790e7e8c7d48e39157238d58191346 -d", p, @git)
|
|
@@ -399,7 +399,7 @@ STDOUT
|
|
|
399
399
|
huge_busy_cluster_status = Mortar::API::Clusters::STATUS_RUNNING
|
|
400
400
|
|
|
401
401
|
|
|
402
|
-
mock(Mortar::Auth.api).get_clusters(Mortar::API::Jobs::
|
|
402
|
+
mock(Mortar::Auth.api).get_clusters(Mortar::API::Jobs::CLUSTER_BACKEND__EMR_HADOOP_2_7_3) {
|
|
403
403
|
Excon::Response.new(:body => {
|
|
404
404
|
'clusters' => [
|
|
405
405
|
{ 'cluster_id' => small_cluster_id, 'size' => small_cluster_size, 'running_jobs' => [], 'status_code' => small_cluster_status },
|
|
@@ -411,7 +411,7 @@ STDOUT
|
|
|
411
411
|
]})
|
|
412
412
|
}
|
|
413
413
|
mock(Mortar::Auth.api).post_pig_job_existing_cluster("myproject", "my_script", is_a(String), large_cluster_id,
|
|
414
|
-
:pig_version => "0.12-Hadoop-2",
|
|
414
|
+
:pig_version => "0.12-Hadoop-2.7.3",
|
|
415
415
|
:project_script_path => be_a_kind_of(String),
|
|
416
416
|
:parameters => [],
|
|
417
417
|
:notify_on_job_finish => true,
|
|
@@ -458,7 +458,7 @@ STDOUT
|
|
|
458
458
|
huge_busy_cluster_status = Mortar::API::Clusters::STATUS_RUNNING
|
|
459
459
|
|
|
460
460
|
|
|
461
|
-
mock(Mortar::Auth.api).get_clusters(Mortar::API::Jobs::
|
|
461
|
+
mock(Mortar::Auth.api).get_clusters(Mortar::API::Jobs::CLUSTER_BACKEND__EMR_HADOOP_2_7_3) {
|
|
462
462
|
Excon::Response.new(:body => {
|
|
463
463
|
'clusters' => [
|
|
464
464
|
{ 'cluster_id' => small_cluster_id, 'size' => small_cluster_size, 'running_jobs' => [], 'status_code' => small_cluster_status, 'tags' => ['small'] },
|
|
@@ -470,7 +470,7 @@ STDOUT
|
|
|
470
470
|
]})
|
|
471
471
|
}
|
|
472
472
|
mock(Mortar::Auth.api).post_pig_job_existing_cluster("myproject", "my_script", is_a(String), large_cluster_id,
|
|
473
|
-
:pig_version => "0.12-Hadoop-2",
|
|
473
|
+
:pig_version => "0.12-Hadoop-2.7.3",
|
|
474
474
|
:project_script_path => be_a_kind_of(String),
|
|
475
475
|
:parameters => [],
|
|
476
476
|
:notify_on_job_finish => true,
|
|
@@ -510,7 +510,7 @@ Or by running:
|
|
|
510
510
|
large_h2_cluster_size = 5
|
|
511
511
|
large_h2_cluster_status = Mortar::API::Clusters::STATUS_RUNNING
|
|
512
512
|
|
|
513
|
-
mock(Mortar::Auth.api).get_clusters(Mortar::API::Jobs::
|
|
513
|
+
mock(Mortar::Auth.api).get_clusters(Mortar::API::Jobs::CLUSTER_BACKEND__EMR_HADOOP_2_7_3) {
|
|
514
514
|
Excon::Response.new(:body => {
|
|
515
515
|
'clusters' => [
|
|
516
516
|
{ 'cluster_id' => small_h2_cluster_id, 'size' => small_h2_cluster_size, 'running_jobs' => [], 'status_code' => small_h2_cluster_status },
|
|
@@ -518,14 +518,14 @@ Or by running:
|
|
|
518
518
|
]})
|
|
519
519
|
}
|
|
520
520
|
mock(Mortar::Auth.api).post_pig_job_existing_cluster("myproject", "my_script", is_a(String), large_h2_cluster_id,
|
|
521
|
-
:pig_version => "0.12-Hadoop-2",
|
|
521
|
+
:pig_version => "0.12-Hadoop-2.7.3",
|
|
522
522
|
:project_script_path => be_a_kind_of(String),
|
|
523
523
|
:parameters => [],
|
|
524
524
|
:notify_on_job_finish => true,
|
|
525
525
|
:is_control_script=>false) {Excon::Response.new(:body => {"job_id" => job_id, "web_job_url" => job_url})}
|
|
526
526
|
|
|
527
527
|
write_file(File.join(p.pigscripts_path, "my_script.pig"))
|
|
528
|
-
stderr, stdout = execute("jobs:run pigscripts/my_script.pig -g 0.12-Hadoop-2", p, @git)
|
|
528
|
+
stderr, stdout = execute("jobs:run pigscripts/my_script.pig -g 0.12-Hadoop-2.7.3", p, @git)
|
|
529
529
|
stdout.should == <<-STDOUT
|
|
530
530
|
Defaulting to running job on largest existing free cluster, id = 510bf0db3004860820ab6590, size = 5
|
|
531
531
|
Taking code snapshot... done
|
|
@@ -552,7 +552,7 @@ STDOUT
|
|
|
552
552
|
cluster_size = 5
|
|
553
553
|
|
|
554
554
|
mock(Mortar::Auth.api).post_pig_job_new_cluster("myproject", "my_script", is_a(String), cluster_size,
|
|
555
|
-
:pig_version => "0.12-Hadoop-2",
|
|
555
|
+
:pig_version => "0.12-Hadoop-2.7.3",
|
|
556
556
|
:project_script_path => be_a_kind_of(String),
|
|
557
557
|
:parameters => match_array([{"name" => "FIRST", "value" => "FOO"}, {"name" => "SECOND", "value" => "BAR"}, {"name" => "THIRD", "value" => "BEAR"}]),
|
|
558
558
|
:cluster_type => Jobs::CLUSTER_TYPE__PERSISTENT,
|
|
@@ -580,7 +580,7 @@ PARAMS
|
|
|
580
580
|
cluster_size = 5
|
|
581
581
|
|
|
582
582
|
mock(Mortar::Auth.api).post_pig_job_new_cluster("myproject", "my_script", is_a(String), cluster_size,
|
|
583
|
-
:pig_version => "0.12-Hadoop-2",
|
|
583
|
+
:pig_version => "0.12-Hadoop-2.7.3",
|
|
584
584
|
:project_script_path => be_a_kind_of(String),
|
|
585
585
|
:parameters => match_array([{"name" => "FIRST", "value" => "FOO"}, {"name" => "SECOND", "value" => "BAR"}, {"name" => "THIRD", "value" => "BEAR"}]),
|
|
586
586
|
:cluster_type => Jobs::CLUSTER_TYPE__PERSISTENT,
|
|
@@ -636,7 +636,7 @@ STDERR
|
|
|
636
636
|
mock(@git).sync_embedded_project.with_any_args.times(1) { "somewhere_over_the_rainbow" }
|
|
637
637
|
|
|
638
638
|
mock(Mortar::Auth.api).post_pig_job_new_cluster("myproject", "my_script", is_a(String), cluster_size,
|
|
639
|
-
:pig_version => "0.12-Hadoop-2",
|
|
639
|
+
:pig_version => "0.12-Hadoop-2.7.3",
|
|
640
640
|
:project_script_path => be_a_kind_of(String),
|
|
641
641
|
:parameters => match_array([{"name" => "FIRST_PARAM", "value" => "FOO"}, {"name" => "SECOND_PARAM", "value" => "BAR"}]),
|
|
642
642
|
:cluster_type => Jobs::CLUSTER_TYPE__PERSISTENT,
|
|
@@ -48,7 +48,7 @@ STDERR
|
|
|
48
48
|
mock(u).config_parameters.returns([])
|
|
49
49
|
end
|
|
50
50
|
any_instance_of(Mortar::Local::Controller) do |u|
|
|
51
|
-
mock(u).illustrate(pigscript, "some_alias", is_a(Mortar::PigVersion::
|
|
51
|
+
mock(u).illustrate(pigscript, "some_alias", is_a(Mortar::PigVersion::Pig012Hadoop273), [], false, false).returns(nil)
|
|
52
52
|
end
|
|
53
53
|
stderr, stdout = execute("local:illustrate #{script_name} some_alias", p)
|
|
54
54
|
stderr.should == ""
|
|
@@ -66,9 +66,9 @@ STDERR
|
|
|
66
66
|
mock(u).config_parameters.returns([])
|
|
67
67
|
end
|
|
68
68
|
any_instance_of(Mortar::Local::Controller) do |u|
|
|
69
|
-
mock(u).illustrate(pigscript, nil, is_a(Mortar::PigVersion::
|
|
69
|
+
mock(u).illustrate(pigscript, nil, is_a(Mortar::PigVersion::Pig012Hadoop273), [], false, false).returns(nil)
|
|
70
70
|
end
|
|
71
|
-
stderr, stdout = execute("local:illustrate #{script_name} -g 0.12-Hadoop-2", p)
|
|
71
|
+
stderr, stdout = execute("local:illustrate #{script_name} -g 0.12-Hadoop-2.7.3", p)
|
|
72
72
|
stderr.should == ""
|
|
73
73
|
end
|
|
74
74
|
end
|
|
@@ -85,9 +85,9 @@ STDERR
|
|
|
85
85
|
end
|
|
86
86
|
mock(Mortar::Project::PigScript).new(script_name, script_path).returns(pigscript)
|
|
87
87
|
any_instance_of(Mortar::Local::Controller) do |u|
|
|
88
|
-
mock(u).illustrate(pigscript, nil, is_a(Mortar::PigVersion::
|
|
88
|
+
mock(u).illustrate(pigscript, nil, is_a(Mortar::PigVersion::Pig012Hadoop273), [{"name"=>"first", "value"=>1},{"name"=>"second", "value"=>2}], false, false).returns(nil)
|
|
89
89
|
end
|
|
90
|
-
stderr, stdout = execute("local:illustrate #{script_name} -g 0.12-Hadoop-2", p)
|
|
90
|
+
stderr, stdout = execute("local:illustrate #{script_name} -g 0.12-Hadoop-2.7.3", p)
|
|
91
91
|
stderr.should == ""
|
|
92
92
|
end
|
|
93
93
|
end
|
|
@@ -125,9 +125,9 @@ STDERR
|
|
|
125
125
|
mock(u).config_parameters.returns([])
|
|
126
126
|
end
|
|
127
127
|
any_instance_of(Mortar::Local::Controller) do |u|
|
|
128
|
-
mock(u).run(pigscript, is_a(Mortar::PigVersion::
|
|
128
|
+
mock(u).run(pigscript, is_a(Mortar::PigVersion::Pig012Hadoop273), []).returns(nil)
|
|
129
129
|
end
|
|
130
|
-
stderr, stdout = execute("local:run pigscripts/#{script_name}.pig -g 0.12-Hadoop-2", p)
|
|
130
|
+
stderr, stdout = execute("local:run pigscripts/#{script_name}.pig -g 0.12-Hadoop-2.7.3", p)
|
|
131
131
|
stderr.should == ""
|
|
132
132
|
end
|
|
133
133
|
end
|
|
@@ -244,10 +244,10 @@ PARAMS
|
|
|
244
244
|
mock(u).config_parameters.returns([{"key"=>"k", "value"=>"v"}])
|
|
245
245
|
end
|
|
246
246
|
any_instance_of(Mortar::Local::Controller) do |u|
|
|
247
|
-
mock(u).install_and_configure(is_a(Mortar::PigVersion::
|
|
247
|
+
mock(u).install_and_configure(is_a(Mortar::PigVersion::Pig012Hadoop273), 'validate')
|
|
248
248
|
end
|
|
249
249
|
any_instance_of(Mortar::Local::Pig) do |u|
|
|
250
|
-
mock(u).run_pig_command(" -check #{pigscript.path}", is_a(Mortar::PigVersion::
|
|
250
|
+
mock(u).run_pig_command(" -check #{pigscript.path}", is_a(Mortar::PigVersion::Pig012Hadoop273), [{"key"=>"k", "value"=>"v"}])
|
|
251
251
|
end
|
|
252
252
|
stderr, stdout = execute("local:validate #{script_name}", p)
|
|
253
253
|
stderr.should == ""
|
|
@@ -265,10 +265,10 @@ PARAMS
|
|
|
265
265
|
mock(u).config_parameters.returns([])
|
|
266
266
|
end
|
|
267
267
|
any_instance_of(Mortar::Local::Controller) do |u|
|
|
268
|
-
mock(u).install_and_configure(is_a(Mortar::PigVersion::
|
|
268
|
+
mock(u).install_and_configure(is_a(Mortar::PigVersion::Pig012Hadoop273), 'validate')
|
|
269
269
|
end
|
|
270
270
|
any_instance_of(Mortar::Local::Pig) do |u|
|
|
271
|
-
mock(u).run_pig_command(" -check #{pigscript.path}", is_a(Mortar::PigVersion::
|
|
271
|
+
mock(u).run_pig_command(" -check #{pigscript.path}", is_a(Mortar::PigVersion::Pig012Hadoop273), [])
|
|
272
272
|
end
|
|
273
273
|
stderr, stdout = execute("local:validate pigscripts/#{script_name}.pig", p)
|
|
274
274
|
stderr.should == ""
|
|
@@ -316,7 +316,7 @@ STDERR
|
|
|
316
316
|
mock(u).run_stillson_luigi_client_cfg_expansion(luigi_script, config_parameters).returns(true)
|
|
317
317
|
end
|
|
318
318
|
any_instance_of(Mortar::Local::Controller) do |u|
|
|
319
|
-
mock(u).install_and_configure(is_a(Mortar::PigVersion::
|
|
319
|
+
mock(u).install_and_configure(is_a(Mortar::PigVersion::Pig012Hadoop273),'luigi')
|
|
320
320
|
end
|
|
321
321
|
any_instance_of(Mortar::Command::Local) do |u|
|
|
322
322
|
mock(u).sync_code_with_cloud().returns("some-git-ref")
|
|
@@ -347,7 +347,7 @@ STDERR
|
|
|
347
347
|
mock(u).run_luigi_script(luigi_script, %W{--myoption 2 --myotheroption 3})
|
|
348
348
|
end
|
|
349
349
|
any_instance_of(Mortar::Local::Controller) do |u|
|
|
350
|
-
mock(u).install_and_configure(is_a(Mortar::PigVersion::
|
|
350
|
+
mock(u).install_and_configure(is_a(Mortar::PigVersion::Pig012Hadoop273),'luigi')
|
|
351
351
|
end
|
|
352
352
|
any_instance_of(Mortar::Command::Local) do |u|
|
|
353
353
|
mock(u).sync_code_with_cloud().returns("some-git-ref")
|
|
@@ -73,7 +73,7 @@ STDERR
|
|
|
73
73
|
validate_id = "c571a8c7f76a4fd4a67c103d753e2dd5"
|
|
74
74
|
parameters = ["name"=>"key", "value"=>"value" ]
|
|
75
75
|
|
|
76
|
-
mock(Mortar::Auth.api).post_validate("myproject", "my_script", is_a(String), :pig_version => "0.12-Hadoop-2", :project_script_path => be_a_kind_of(String), :parameters => parameters) {Excon::Response.new(:body => {"validate_id" => validate_id})}
|
|
76
|
+
mock(Mortar::Auth.api).post_validate("myproject", "my_script", is_a(String), :pig_version => "0.12-Hadoop-2.7.3", :project_script_path => be_a_kind_of(String), :parameters => parameters) {Excon::Response.new(:body => {"validate_id" => validate_id})}
|
|
77
77
|
mock(Mortar::Auth.api).get_validate(validate_id).returns(Excon::Response.new(:body => {"status_code" => Mortar::API::Validate::STATUS_QUEUED, "status_description" => "Pending"})).ordered
|
|
78
78
|
mock(Mortar::Auth.api).get_validate(validate_id).returns(Excon::Response.new(:body => {"status_code" => Mortar::API::Validate::STATUS_GATEWAY_STARTING, "status_description" => "GATEWAY_STARTING"})).ordered
|
|
79
79
|
mock(Mortar::Auth.api).get_validate(validate_id).returns(Excon::Response.new(:body => {"status_code" => Mortar::API::Validate::STATUS_PROGRESS, "status_description" => "Starting"})).ordered
|
|
@@ -103,7 +103,7 @@ STDOUT
|
|
|
103
103
|
column_number = 32
|
|
104
104
|
error_type = 'PigError'
|
|
105
105
|
|
|
106
|
-
mock(Mortar::Auth.api).post_validate("myproject", "my_script", is_a(String), :pig_version => "0.12-Hadoop-2", :project_script_path => be_a_kind_of(String), :parameters => []) {Excon::Response.new(:body => {"validate_id" => validate_id})}
|
|
106
|
+
mock(Mortar::Auth.api).post_validate("myproject", "my_script", is_a(String), :pig_version => "0.12-Hadoop-2.7.3", :project_script_path => be_a_kind_of(String), :parameters => []) {Excon::Response.new(:body => {"validate_id" => validate_id})}
|
|
107
107
|
mock(Mortar::Auth.api).get_validate(validate_id).returns(Excon::Response.new(:body => {"status_code" => Mortar::API::Validate::STATUS_QUEUED, "status_description" => "Pending"})).ordered
|
|
108
108
|
mock(Mortar::Auth.api).get_validate(validate_id).returns(Excon::Response.new(:body => {"status_code" => Mortar::API::Validate::STATUS_FAILURE, "status_description" => "Failed",
|
|
109
109
|
"error_message" => error_message,
|
|
@@ -137,7 +137,7 @@ STDERR
|
|
|
137
137
|
validate_id = "c571a8c7f76a4fd4a67c103d753e2dd5"
|
|
138
138
|
parameters = ["name"=>"key", "value"=>"value" ]
|
|
139
139
|
|
|
140
|
-
mock(Mortar::Auth.api).post_validate("myproject", "my_script", is_a(String), :pig_version => "0.12-Hadoop-2", :project_script_path => be_a_kind_of(String), :parameters => parameters) {Excon::Response.new(:body => {"validate_id" => validate_id})}
|
|
140
|
+
mock(Mortar::Auth.api).post_validate("myproject", "my_script", is_a(String), :pig_version => "0.12-Hadoop-2.7.3", :project_script_path => be_a_kind_of(String), :parameters => parameters) {Excon::Response.new(:body => {"validate_id" => validate_id})}
|
|
141
141
|
mock(Mortar::Auth.api).get_validate(validate_id).returns(Excon::Response.new(:body => {"status_code" => Mortar::API::Validate::STATUS_QUEUED, "status_description" => "Pending"})).ordered
|
|
142
142
|
mock(Mortar::Auth.api).get_validate(validate_id).returns(Excon::Response.new(:body => {"status_code" => Mortar::API::Validate::STATUS_GATEWAY_STARTING, "status_description" => "GATEWAY_STARTING"})).ordered
|
|
143
143
|
mock(Mortar::Auth.api).get_validate(validate_id).returns(Excon::Response.new(:body => {"status_code" => Mortar::API::Validate::STATUS_PROGRESS, "status_description" => "Starting"})).ordered
|
|
@@ -146,7 +146,7 @@ STDERR
|
|
|
146
146
|
mock(@git).sync_embedded_project.with_any_args.times(1) { "somewhere_over_the_rainbow" }
|
|
147
147
|
|
|
148
148
|
write_file(File.join(p.pigscripts_path, "my_script.pig"))
|
|
149
|
-
stderr, stdout = execute("validate my_script --polling_interval 0.05 -p key=value -g 0.12-Hadoop-2", p, @git)
|
|
149
|
+
stderr, stdout = execute("validate my_script --polling_interval 0.05 -p key=value -g 0.12-Hadoop-2.7.3", p, @git)
|
|
150
150
|
end
|
|
151
151
|
end
|
|
152
152
|
end
|
|
@@ -135,7 +135,7 @@ module Mortar::Local
|
|
|
135
135
|
mock(j).check_install.returns(true)
|
|
136
136
|
end
|
|
137
137
|
any_instance_of(Mortar::Local::Pig) do |p|
|
|
138
|
-
mock(p).install_or_update(is_a(Mortar::PigVersion::
|
|
138
|
+
mock(p).install_or_update(is_a(Mortar::PigVersion::Pig012Hadoop273), nil)
|
|
139
139
|
end
|
|
140
140
|
any_instance_of(Mortar::Local::Python) do |p|
|
|
141
141
|
mock(p).check_or_install.returns(true)
|
|
@@ -158,13 +158,13 @@ module Mortar::Local
|
|
|
158
158
|
|
|
159
159
|
it "checks for aws keys, checks depenendency installation, runs script" do
|
|
160
160
|
c = Mortar::Local::Controller.new
|
|
161
|
-
mock(c).install_and_configure("0.12-Hadoop-2", "run")
|
|
161
|
+
mock(c).install_and_configure("0.12-Hadoop-2.7.3", "run")
|
|
162
162
|
test_script = "foobar-script"
|
|
163
163
|
the_parameters = []
|
|
164
164
|
any_instance_of(Mortar::Local::Pig) do |p|
|
|
165
|
-
mock(p).run_script(test_script, "0.12-Hadoop-2", the_parameters)
|
|
165
|
+
mock(p).run_script(test_script, "0.12-Hadoop-2.7.3", the_parameters)
|
|
166
166
|
end
|
|
167
|
-
c.run(test_script, "0.12-Hadoop-2", the_parameters)
|
|
167
|
+
c.run(test_script, "0.12-Hadoop-2.7.3", the_parameters)
|
|
168
168
|
end
|
|
169
169
|
|
|
170
170
|
end
|
|
@@ -172,16 +172,16 @@ module Mortar::Local
|
|
|
172
172
|
context("illustrate") do
|
|
173
173
|
it "checks for aws keys, checks depenendency installation, runs the illustrate process" do
|
|
174
174
|
c = Mortar::Local::Controller.new
|
|
175
|
-
mock(c).install_and_configure("0.12-Hadoop-2", "illustrate")
|
|
175
|
+
mock(c).install_and_configure("0.12-Hadoop-2.7.3", "illustrate")
|
|
176
176
|
test_script = "foobar-script"
|
|
177
177
|
script_alias = "some_alias"
|
|
178
178
|
prune = false
|
|
179
179
|
no_browser = false
|
|
180
180
|
the_parameters = []
|
|
181
181
|
any_instance_of(Mortar::Local::Pig) do |p|
|
|
182
|
-
mock(p).illustrate_alias(test_script, script_alias, prune, no_browser, "0.12-Hadoop-2", the_parameters)
|
|
182
|
+
mock(p).illustrate_alias(test_script, script_alias, prune, no_browser, "0.12-Hadoop-2.7.3", the_parameters)
|
|
183
183
|
end
|
|
184
|
-
c.illustrate(test_script, script_alias, "0.12-Hadoop-2", the_parameters, prune, no_browser)
|
|
184
|
+
c.illustrate(test_script, script_alias, "0.12-Hadoop-2.7.3", the_parameters, prune, no_browser)
|
|
185
185
|
end
|
|
186
186
|
end
|
|
187
187
|
|
|
@@ -35,7 +35,7 @@ module Mortar::Local
|
|
|
35
35
|
# chmods bin/pig, removes tgz, and notes the installation
|
|
36
36
|
FakeFS do
|
|
37
37
|
pig = Mortar::Local::Pig.new
|
|
38
|
-
pig012Hadoop2 = Mortar::PigVersion::
|
|
38
|
+
pig012Hadoop2 = Mortar::PigVersion::Pig012Hadoop273.new
|
|
39
39
|
local_pig_archive = File.join(pig.local_install_directory, pig012Hadoop2.tgz_name)
|
|
40
40
|
mock(pig).download_file(pig.pig_archive_url(pig012Hadoop2), local_pig_archive, nil) do
|
|
41
41
|
# Simulate the tgz file being downloaded, this should be deleted
|
|
@@ -61,7 +61,7 @@ module Mortar::Local
|
|
|
61
61
|
|
|
62
62
|
it "does nothing if existing install and no update available" do
|
|
63
63
|
pig = Mortar::Local::Pig.new
|
|
64
|
-
pig012Hadoop2 = Mortar::PigVersion::
|
|
64
|
+
pig012Hadoop2 = Mortar::PigVersion::Pig012Hadoop273.new
|
|
65
65
|
|
|
66
66
|
mock(pig).should_do_pig_install?(pig012Hadoop2).returns(false)
|
|
67
67
|
mock(pig).should_do_pig_update?(pig012Hadoop2, nil).returns(false)
|
|
@@ -79,7 +79,7 @@ module Mortar::Local
|
|
|
79
79
|
|
|
80
80
|
it "does install if none has been done before" do
|
|
81
81
|
pig = Mortar::Local::Pig.new
|
|
82
|
-
pig012Hadoop2 = Mortar::PigVersion::
|
|
82
|
+
pig012Hadoop2 = Mortar::PigVersion::Pig012Hadoop273.new
|
|
83
83
|
|
|
84
84
|
mock(pig).should_do_pig_install?(pig012Hadoop2).returns(true)
|
|
85
85
|
mock(pig).should_do_lib_install?.returns(true)
|
|
@@ -93,7 +93,7 @@ module Mortar::Local
|
|
|
93
93
|
|
|
94
94
|
it "does install if one was done before but there is an update" do
|
|
95
95
|
pig = Mortar::Local::Pig.new
|
|
96
|
-
pig012Hadoop2 = Mortar::PigVersion::
|
|
96
|
+
pig012Hadoop2 = Mortar::PigVersion::Pig012Hadoop273.new
|
|
97
97
|
|
|
98
98
|
mock(pig).should_do_pig_install?(pig012Hadoop2).returns(false)
|
|
99
99
|
mock(pig).should_do_pig_update?(pig012Hadoop2, nil).returns(true)
|
|
@@ -208,7 +208,7 @@ module Mortar::Local
|
|
|
208
208
|
mock(pig).run_pig_command.with_any_args.returns(true)
|
|
209
209
|
mock(pig).show_illustrate_output_browser.with_any_args
|
|
210
210
|
stub(pig).make_pig_param_file.returns('param.file')
|
|
211
|
-
pig.illustrate_alias(script, 'my_alias', false, false, "0.12-Hadoop-2", [])
|
|
211
|
+
pig.illustrate_alias(script, 'my_alias', false, false, "0.12-Hadoop-2.7.3", [])
|
|
212
212
|
end
|
|
213
213
|
|
|
214
214
|
it "displays text results if illustrate was successful with no_browser" do
|
|
@@ -218,7 +218,7 @@ module Mortar::Local
|
|
|
218
218
|
stub(pig).run_pig_command.with_any_args.returns(true)
|
|
219
219
|
mock(pig).display.with_any_args
|
|
220
220
|
stub(pig).make_pig_param_file.returns('param.file')
|
|
221
|
-
pig.illustrate_alias(script, 'my_alias', false, true, "0.12-Hadoop-2", [])
|
|
221
|
+
pig.illustrate_alias(script, 'my_alias', false, true, "0.12-Hadoop-2.7.3", [])
|
|
222
222
|
end
|
|
223
223
|
|
|
224
224
|
it "skips results if illustrate was unsuccessful" do
|
|
@@ -228,7 +228,7 @@ module Mortar::Local
|
|
|
228
228
|
mock(pig).run_pig_command.with_any_args.returns(false)
|
|
229
229
|
mock(pig).show_illustrate_output_browser.with_any_args.never
|
|
230
230
|
stub(pig).make_pig_param_file.returns('param.file')
|
|
231
|
-
pig.illustrate_alias(script, 'my_alias', false, false, "0.12-Hadoop-2", [])
|
|
231
|
+
pig.illustrate_alias(script, 'my_alias', false, false, "0.12-Hadoop-2.7.3", [])
|
|
232
232
|
end
|
|
233
233
|
|
|
234
234
|
it "does not require login credentials for illustration" do
|
|
@@ -238,7 +238,7 @@ module Mortar::Local
|
|
|
238
238
|
mock(Mortar::Auth).user_s3_safe(true).returns('notloggedin-user-org')
|
|
239
239
|
mock(pig).run_pig_command.with_any_args.returns(true)
|
|
240
240
|
mock(pig).show_illustrate_output_browser.with_any_args
|
|
241
|
-
pig.illustrate_alias(script, 'my_alias', false, false, "0.12-Hadoop-2", [])
|
|
241
|
+
pig.illustrate_alias(script, 'my_alias', false, false, "0.12-Hadoop-2.7.3", [])
|
|
242
242
|
end
|
|
243
243
|
|
|
244
244
|
end
|
|
@@ -266,9 +266,9 @@ module Mortar::Local
|
|
|
266
266
|
expect(tpc.include?("pig-0.12")).to be_true
|
|
267
267
|
end
|
|
268
268
|
|
|
269
|
-
it "Works with 0.12-Hadoop-2 pig" do
|
|
269
|
+
it "Works with 0.12-Hadoop-2.7.3 pig" do
|
|
270
270
|
pig = Mortar::Local::Pig.new
|
|
271
|
-
tpc = pig.template_params_classpath(Mortar::PigVersion::
|
|
271
|
+
tpc = pig.template_params_classpath(Mortar::PigVersion::Pig012Hadoop273.new)
|
|
272
272
|
expect(tpc.include?("pig-0.12")).to be_true
|
|
273
273
|
end
|
|
274
274
|
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: mortar
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.15.
|
|
4
|
+
version: 0.15.47
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Mortar Data
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2017-
|
|
11
|
+
date: 2017-10-11 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: rdoc
|
|
@@ -30,14 +30,14 @@ dependencies:
|
|
|
30
30
|
requirements:
|
|
31
31
|
- - ~>
|
|
32
32
|
- !ruby/object:Gem::Version
|
|
33
|
-
version: 0.8.
|
|
33
|
+
version: 0.8.16
|
|
34
34
|
type: :runtime
|
|
35
35
|
prerelease: false
|
|
36
36
|
version_requirements: !ruby/object:Gem::Requirement
|
|
37
37
|
requirements:
|
|
38
38
|
- - ~>
|
|
39
39
|
- !ruby/object:Gem::Version
|
|
40
|
-
version: 0.8.
|
|
40
|
+
version: 0.8.16
|
|
41
41
|
- !ruby/object:Gem::Dependency
|
|
42
42
|
name: netrc
|
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|