mortar 0.15.37 → 0.15.38

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 15cff7085bdc1d7475ce5de63a224f1e5f9af981
4
- data.tar.gz: e273bd6668c0752d89cef8546c1c43cdc69f1d92
3
+ metadata.gz: ffc0b8718edcb166d6efb97aa313f93f62cbe05a
4
+ data.tar.gz: e50a708d63e897a055528aeb61b0a2a023c6cb78
5
5
  SHA512:
6
- metadata.gz: 3c52e4a5fb9d3921626417c54aa3622d8494b81bb481155862918c05a9d1a69c3f1ceab0ac4485409533f383d2c1d1043b9c7d89293c35c27f12ade5e2d49ae7
7
- data.tar.gz: c31c3f2135b0e592630cbf622d9815d7ccb28eb741826e203df3b11be0d427b5c936ec67e23543a5494ff1444ec1bee0eb91c990234ffe9a8d9c32d49845be84
6
+ metadata.gz: 0c57ea3f3a078fd0896b92973d5bd731bdedd2024c2ddfae3f74121dce10fddef75b374c4b6f6618345f724ce79963cf501065553b7494c919627aa64815b715
7
+ data.tar.gz: b62dc6bb899b601ea4c6162a2bcdf068d47e23d13d1acf75cfefb40bcefdd757d0475d0dd91d6325b7031352ea4a3097e96a733ec65123eff2d08f4ca0d96cc0
@@ -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 and 0.12-Hadoop-2")
299
+ line.gsub!("<PIG_VERSION_OPTIONS>", "0.12-Hadoop-2")
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'
611
+ pig_version_str = options[:pigversion] || '0.12-Hadoop-2'
612
612
  pig_version = Mortar::PigVersion.from_string(pig_version_str)
613
613
  end
614
614
 
@@ -124,7 +124,7 @@ EOF
124
124
  require_aws_keys()
125
125
 
126
126
  if pig_version.nil?
127
- pig_version = Mortar::PigVersion::Pig012.new
127
+ pig_version = Mortar::PigVersion::Pig012Hadoop2.new
128
128
  end
129
129
 
130
130
  java = Mortar::Local::Java.new()
@@ -84,7 +84,7 @@ class Mortar::Local::Pig
84
84
  end
85
85
 
86
86
  def pig_directory(pig_version)
87
- return File.join(local_install_directory, pig_version.name)
87
+ return File.join(local_install_directory, pig_version.pig_version)
88
88
  end
89
89
 
90
90
  def lib_directory
@@ -113,7 +113,7 @@ class Mortar::Local::Pig
113
113
  # Determines if a pig install needs to occur, true if server side
114
114
  # pig tgz is newer than date of the existing install
115
115
  def should_do_pig_update?(pig_version, command=nil)
116
- return is_newer_version(pig_version.name, pig_archive_url(pig_version), command)
116
+ return is_newer_version(pig_version.pig_version, pig_archive_url(pig_version), command)
117
117
  end
118
118
 
119
119
  def should_do_lib_update?
@@ -122,11 +122,11 @@ class Mortar::Local::Pig
122
122
 
123
123
  def install_or_update(pig_version, command=nil)
124
124
  if should_do_pig_install?(pig_version)
125
- action "Installing #{pig_version.name} to #{local_install_directory_name}" do
125
+ action "Installing #{pig_version.pig_version} to #{local_install_directory_name}" do
126
126
  install_pig(pig_version, command)
127
127
  end
128
128
  elsif should_do_pig_update?(pig_version, command)
129
- action "Updating to latest #{pig_version.name} in #{local_install_directory_name}" do
129
+ action "Updating to latest #{pig_version.pig_version} in #{local_install_directory_name}" do
130
130
  install_pig(pig_version)
131
131
  end
132
132
  end
@@ -159,7 +159,7 @@ class Mortar::Local::Pig
159
159
  FileUtils.chmod(0755, command(pig_version))
160
160
 
161
161
  File.delete(local_tgz)
162
- note_install(pig_version.name)
162
+ note_install(pig_version.pig_version)
163
163
  end
164
164
 
165
165
  def install_lib
@@ -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::Pig012.new
326
+ pig_version = Mortar::PigVersion::Pig012Hadoop2.new
327
327
  end
328
328
  [ "#{pig_directory(pig_version)}/*",
329
329
  "#{pig_directory(pig_version)}/lib-local/*",
@@ -362,7 +362,7 @@ class Mortar::Local::Pig
362
362
  def pig_command_script_template_parameters(cmd, pig_version, pig_parameters)
363
363
  template_params = {}
364
364
  template_params['pig_params_file'] = make_pig_param_file(pig_parameters)
365
- template_params['pig_dir'] = pig_version.name
365
+ template_params['pig_dir'] = pig_version.pig_version
366
366
  template_params['pig_home'] = pig_directory(pig_version)
367
367
  template_params['pig_classpath'] = pig_classpath(pig_version)
368
368
  template_params['classpath'] = template_params_classpath
@@ -16,41 +16,16 @@
16
16
 
17
17
  module Mortar
18
18
  module PigVersion
19
- PIG_0_12_TGZ_NAME = "pig-0.12.tar.gz"
20
- PIG_0_12_TGZ_DEFAULT_URL_PATH = "resource/pig_0_12"
21
-
22
19
  PIG_0_12_HADOOP_2_TGZ_NAME = "pig-0.12-hadoop-2.tar.gz"
23
20
  PIG_0_12_HADOOP_2_TGZ_DEFAULT_URL_PATH = "resource/pig_0_12_hadoop_2"
24
21
 
25
22
  def PigVersion.from_string(pig_version_str)
26
23
  if pig_version_str == '0.12'
27
- return Pig012.new
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."
28
25
  elsif pig_version_str == '0.12-Hadoop-2'
29
26
  return Pig012Hadoop2.new
30
27
  else
31
- raise ArgumentError, "Unsupported pig version: #{pig_version_str}. Options are: ['0.12', '0.12-Hadoop-2]."
32
- end
33
- end
34
-
35
- class Pig012
36
- def tgz_name
37
- PIG_0_12_TGZ_NAME
38
- end
39
-
40
- def tgz_default_url_path
41
- PIG_0_12_TGZ_DEFAULT_URL_PATH
42
- end
43
-
44
- def name
45
- "pig-#{version}"
46
- end
47
-
48
- def version
49
- "0.12"
50
- end
51
-
52
- def cluster_backend
53
- Mortar::API::Jobs::CLUSTER_BACKEND__EMR_HADOOP_1
28
+ raise ArgumentError, "Unsupported pig version: #{pig_version_str}. Options are: ['0.12-Hadoop-2]."
54
29
  end
55
30
  end
56
31
 
@@ -71,6 +46,10 @@ module Mortar
71
46
  "0.12-Hadoop-2"
72
47
  end
73
48
 
49
+ def pig_version
50
+ "pig-0.12"
51
+ end
52
+
74
53
  def cluster_backend
75
54
  Mortar::API::Jobs::CLUSTER_BACKEND__EMR_HADOOP_2
76
55
  end
@@ -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
11
- pigversion=0.12
10
+ # Default new projects to using Pig 0.12-Hadoop-2
11
+ pigversion=0.12-Hadoop-2
@@ -16,5 +16,5 @@
16
16
 
17
17
  module Mortar
18
18
  # see http://semver.org/
19
- VERSION = "0.15.37"
19
+ VERSION = "0.15.38"
20
20
  end
@@ -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 and 0.12-Hadoop-2'
109
+ lines.join("").should == 'linestart 0.12-Hadoop-2'
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
150
+ pigversion=0.12-Hadoop-2
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"}
158
+ b.options.should == {:pigversion => "0.12-Hadoop-2"}
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
169
+ pigversion=0.12-Hadoop-2
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", :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", :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", :polling_interval => "0.05"}
186
+ d.options.should == {:pigversion => "0.12-Hadoop-2", :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
197
+ pigversion=0.12-Hadoop-2
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", :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", :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", :polling_interval => "0.05", :no_browser => true}
212
+ d.options.should == {:pigversion => "0.12-Hadoop-2", :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", :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", :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
253
+ pigversion=0.12-Hadoop-2
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", :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", :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"}
265
+ d.options.should == {:polling_interval => "0.05", :no_browser => true, :clustersize => "5", :pigversion => "0.12-Hadoop-2"}
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", :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", :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", :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", :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", :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", :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", :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", :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", :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", :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", :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", :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", :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", :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", :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", :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", :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", :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", :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", :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", :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", :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",
50
+ :pig_version => "0.12-Hadoop-2",
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",
86
+ :pig_version => "0.12-Hadoop-2",
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",
146
+ :pig_version => "0.12-Hadoop-2",
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",
182
+ :pig_version => "0.12-Hadoop-2",
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",
218
+ :pig_version => "0.12-Hadoop-2",
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",
252
+ :pig_version => "0.12-Hadoop-2",
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::CLUSTER_BACKEND__EMR_HADOOP_1) {Excon::Response.new(:body => {'clusters' => []})}
284
+ mock(Mortar::Auth.api).get_clusters(Mortar::API::Jobs::CLUSTER_BACKEND__EMR_HADOOP_2) {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",
286
+ :pig_version => "0.12-Hadoop-2",
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::CLUSTER_BACKEND__EMR_HADOOP_1) {Excon::Response.new(:body => {'clusters' => []})}
322
+ mock(Mortar::Auth.api).get_clusters(Mortar::API::Jobs::CLUSTER_BACKEND__EMR_HADOOP_2) {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",
324
+ :pig_version => "0.12-Hadoop-2",
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", :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", :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::CLUSTER_BACKEND__EMR_HADOOP_1) {
402
+ mock(Mortar::Auth.api).get_clusters(Mortar::API::Jobs::CLUSTER_BACKEND__EMR_HADOOP_2) {
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",
414
+ :pig_version => "0.12-Hadoop-2",
415
415
  :project_script_path => be_a_kind_of(String),
416
416
  :parameters => [],
417
417
  :notify_on_job_finish => true,
@@ -493,7 +493,7 @@ STDOUT
493
493
  cluster_size = 5
494
494
 
495
495
  mock(Mortar::Auth.api).post_pig_job_new_cluster("myproject", "my_script", is_a(String), cluster_size,
496
- :pig_version => "0.12",
496
+ :pig_version => "0.12-Hadoop-2",
497
497
  :project_script_path => be_a_kind_of(String),
498
498
  :parameters => match_array([{"name" => "FIRST", "value" => "FOO"}, {"name" => "SECOND", "value" => "BAR"}, {"name" => "THIRD", "value" => "BEAR"}]),
499
499
  :cluster_type => Jobs::CLUSTER_TYPE__PERSISTENT,
@@ -521,7 +521,7 @@ PARAMS
521
521
  cluster_size = 5
522
522
 
523
523
  mock(Mortar::Auth.api).post_pig_job_new_cluster("myproject", "my_script", is_a(String), cluster_size,
524
- :pig_version => "0.12",
524
+ :pig_version => "0.12-Hadoop-2",
525
525
  :project_script_path => be_a_kind_of(String),
526
526
  :parameters => match_array([{"name" => "FIRST", "value" => "FOO"}, {"name" => "SECOND", "value" => "BAR"}, {"name" => "THIRD", "value" => "BEAR"}]),
527
527
  :cluster_type => Jobs::CLUSTER_TYPE__PERSISTENT,
@@ -577,7 +577,7 @@ STDERR
577
577
  mock(@git).sync_embedded_project.with_any_args.times(1) { "somewhere_over_the_rainbow" }
578
578
 
579
579
  mock(Mortar::Auth.api).post_pig_job_new_cluster("myproject", "my_script", is_a(String), cluster_size,
580
- :pig_version => "0.12",
580
+ :pig_version => "0.12-Hadoop-2",
581
581
  :project_script_path => be_a_kind_of(String),
582
582
  :parameters => match_array([{"name" => "FIRST_PARAM", "value" => "FOO"}, {"name" => "SECOND_PARAM", "value" => "BAR"}]),
583
583
  :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::Pig012), [], false, false).returns(nil)
51
+ mock(u).illustrate(pigscript, "some_alias", is_a(Mortar::PigVersion::Pig012Hadoop2), [], 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::Pig012), [], false, false).returns(nil)
69
+ mock(u).illustrate(pigscript, nil, is_a(Mortar::PigVersion::Pig012Hadoop2), [], false, false).returns(nil)
70
70
  end
71
- stderr, stdout = execute("local:illustrate #{script_name} -g 0.12", p)
71
+ stderr, stdout = execute("local:illustrate #{script_name} -g 0.12-Hadoop-2", 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::Pig012), [{"name"=>"first", "value"=>1},{"name"=>"second", "value"=>2}], false, false).returns(nil)
88
+ mock(u).illustrate(pigscript, nil, is_a(Mortar::PigVersion::Pig012Hadoop2), [{"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", p)
90
+ stderr, stdout = execute("local:illustrate #{script_name} -g 0.12-Hadoop-2", p)
91
91
  stderr.should == ""
92
92
  end
93
93
  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::Pig012), 'validate')
247
+ mock(u).install_and_configure(is_a(Mortar::PigVersion::Pig012Hadoop2), '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::Pig012), [{"key"=>"k", "value"=>"v"}])
250
+ mock(u).run_pig_command(" -check #{pigscript.path}", is_a(Mortar::PigVersion::Pig012Hadoop2), [{"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::Pig012), 'validate')
268
+ mock(u).install_and_configure(is_a(Mortar::PigVersion::Pig012Hadoop2), '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::Pig012), [])
271
+ mock(u).run_pig_command(" -check #{pigscript.path}", is_a(Mortar::PigVersion::Pig012Hadoop2), [])
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::Pig012),'luigi')
319
+ mock(u).install_and_configure(is_a(Mortar::PigVersion::Pig012Hadoop2),'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::Pig012),'luigi')
350
+ mock(u).install_and_configure(is_a(Mortar::PigVersion::Pig012Hadoop2),'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", :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", :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", :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", :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", :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", :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", p, @git)
149
+ stderr, stdout = execute("validate my_script --polling_interval 0.05 -p key=value -g 0.12-Hadoop-2", 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::Pig012), nil)
138
+ mock(p).install_or_update(is_a(Mortar::PigVersion::Pig012Hadoop2), 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", "run")
161
+ mock(c).install_and_configure("0.12-Hadoop-2", "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", the_parameters)
165
+ mock(p).run_script(test_script, "0.12-Hadoop-2", the_parameters)
166
166
  end
167
- c.run(test_script, "0.12", the_parameters)
167
+ c.run(test_script, "0.12-Hadoop-2", 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", "illustrate")
175
+ mock(c).install_and_configure("0.12-Hadoop-2", "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", the_parameters)
182
+ mock(p).illustrate_alias(test_script, script_alias, prune, no_browser, "0.12-Hadoop-2", the_parameters)
183
183
  end
184
- c.illustrate(test_script, script_alias, "0.12", the_parameters, prune, no_browser)
184
+ c.illustrate(test_script, script_alias, "0.12-Hadoop-2", the_parameters, prune, no_browser)
185
185
  end
186
186
  end
187
187
 
@@ -35,19 +35,19 @@ 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
- pig012 = Mortar::PigVersion::Pig012.new
39
- local_pig_archive = File.join(pig.local_install_directory, pig012.tgz_name)
40
- mock(pig).download_file(pig.pig_archive_url(pig012), local_pig_archive, nil) do
38
+ pig012Hadoop2 = Mortar::PigVersion::Pig012Hadoop2.new
39
+ local_pig_archive = File.join(pig.local_install_directory, pig012Hadoop2.tgz_name)
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
42
42
  # before the method finishes executing
43
43
  FileUtils.touch(local_pig_archive)
44
44
  end
45
45
  mock(pig).extract_tgz(local_pig_archive, pig.local_install_directory)
46
- mock(pig).note_install(pig012.name)
47
- mock(pig).command(pig012)
46
+ mock(pig).note_install(pig012Hadoop2.pig_version)
47
+ mock(pig).command(pig012Hadoop2)
48
48
  begin
49
49
  previous_stdout, $stdout = $stdout, StringIO.new
50
- pig.install_pig(pig012)
50
+ pig.install_pig(pig012Hadoop2)
51
51
  ensure
52
52
  $stdout = previous_stdout
53
53
  end
@@ -61,17 +61,17 @@ 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
- pig012 = Mortar::PigVersion::Pig012.new
64
+ pig012Hadoop2 = Mortar::PigVersion::Pig012Hadoop2.new
65
65
 
66
- mock(pig).should_do_pig_install?(pig012).returns(false)
67
- mock(pig).should_do_pig_update?(pig012, nil).returns(false)
66
+ mock(pig).should_do_pig_install?(pig012Hadoop2).returns(false)
67
+ mock(pig).should_do_pig_update?(pig012Hadoop2, nil).returns(false)
68
68
  mock(pig).should_do_lib_install?.returns(false)
69
69
  mock(pig).should_do_lib_update?.returns(false)
70
70
  FakeFS do
71
71
  FileUtils.mkdir_p(File.dirname(pig.local_install_directory))
72
72
  FileUtils.rm_rf(pig.local_install_directory, :force => true)
73
- pig.install_or_update(pig012)
74
- expect(File.exists?(pig.pig_directory(pig012))).to be_false
73
+ pig.install_or_update(pig012Hadoop2)
74
+ expect(File.exists?(pig.pig_directory(pig012Hadoop2))).to be_false
75
75
  expect(File.exists?(pig.lib_directory)).to be_false
76
76
 
77
77
  end
@@ -79,30 +79,30 @@ 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
- pig012 = Mortar::PigVersion::Pig012.new
82
+ pig012Hadoop2 = Mortar::PigVersion::Pig012Hadoop2.new
83
83
 
84
- mock(pig).should_do_pig_install?(pig012).returns(true)
84
+ mock(pig).should_do_pig_install?(pig012Hadoop2).returns(true)
85
85
  mock(pig).should_do_lib_install?.returns(true)
86
86
 
87
- mock(pig).install_pig(pig012, nil)
87
+ mock(pig).install_pig(pig012Hadoop2, nil)
88
88
  mock(pig).install_lib
89
89
  capture_stdout do
90
- pig.install_or_update(pig012)
90
+ pig.install_or_update(pig012Hadoop2)
91
91
  end
92
92
  end
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
- pig012 = Mortar::PigVersion::Pig012.new
96
+ pig012Hadoop2 = Mortar::PigVersion::Pig012Hadoop2.new
97
97
 
98
- mock(pig).should_do_pig_install?(pig012).returns(false)
99
- mock(pig).should_do_pig_update?(pig012, nil).returns(true)
98
+ mock(pig).should_do_pig_install?(pig012Hadoop2).returns(false)
99
+ mock(pig).should_do_pig_update?(pig012Hadoop2, nil).returns(true)
100
100
  mock(pig).should_do_lib_install?.returns(false)
101
101
  mock(pig).should_do_lib_update?.returns(true)
102
- mock(pig).install_pig(pig012)
102
+ mock(pig).install_pig(pig012Hadoop2)
103
103
  mock(pig).install_lib
104
104
  capture_stdout do
105
- pig.install_or_update(pig012)
105
+ pig.install_or_update(pig012Hadoop2)
106
106
  end
107
107
  end
108
108
 
@@ -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", [])
211
+ pig.illustrate_alias(script, 'my_alias', false, false, "0.12-Hadoop-2", [])
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", [])
221
+ pig.illustrate_alias(script, 'my_alias', false, true, "0.12-Hadoop-2", [])
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", [])
231
+ pig.illustrate_alias(script, 'my_alias', false, false, "0.12-Hadoop-2", [])
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", [])
241
+ pig.illustrate_alias(script, 'my_alias', false, false, "0.12-Hadoop-2", [])
242
242
  end
243
243
 
244
244
  end
@@ -264,13 +264,12 @@ module Mortar::Local
264
264
  pig = Mortar::Local::Pig.new
265
265
  tpc = pig.template_params_classpath
266
266
  expect(tpc.include?("pig-0.12")).to be_true
267
- expect(tpc.include?("pig-0.12-Hadoop-2")).to be_false
268
267
  end
269
268
 
270
269
  it "Works with 0.12-Hadoop-2 pig" do
271
270
  pig = Mortar::Local::Pig.new
272
271
  tpc = pig.template_params_classpath(Mortar::PigVersion::Pig012Hadoop2.new)
273
- expect(tpc.include?("pig-0.12-Hadoop-2")).to be_true
272
+ expect(tpc.include?("pig-0.12")).to be_true
274
273
  end
275
274
  end
276
275
 
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.37
4
+ version: 0.15.38
5
5
  platform: ruby
6
6
  authors:
7
7
  - Mortar Data
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-03-11 00:00:00.000000000 Z
11
+ date: 2016-03-16 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.14
33
+ version: 0.8.15
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.14
40
+ version: 0.8.15
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: netrc
43
43
  requirement: !ruby/object:Gem::Requirement
@@ -322,7 +322,6 @@ files:
322
322
  - spec/mortar/command/pigscripts_spec.rb
323
323
  - spec/mortar/command/projects_spec.rb
324
324
  - spec/mortar/command/s3_spec.rb
325
- - spec/mortar/command/spark_spec.rb
326
325
  - spec/mortar/command/validate_spec.rb
327
326
  - spec/mortar/command/version_spec.rb
328
327
  - spec/mortar/command_spec.rb
@@ -1,154 +0,0 @@
1
- #
2
- # Copyright 2014 Mortar Data Inc.
3
- #
4
- # Licensed under the Apache License, Version 2.0 (the "License");
5
- # you may not use this file except in compliance with the License.
6
- # You may obtain a copy of the License at
7
- #
8
- # http://www.apache.org/licenses/LICENSE-2.0
9
- #
10
- # Unless required by applicable law or agreed to in writing, software
11
- # distributed under the License is distributed on an "AS IS" BASIS,
12
- # WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
- # See the License for the specific language governing permissions and
14
- # limitations under the License.
15
- #
16
-
17
- require 'spec_helper'
18
- require 'fakefs/spec_helpers'
19
- require 'mortar/command/spark'
20
- require 'mortar/api/jobs'
21
-
22
- module Mortar::Command
23
- describe Spark do
24
-
25
- before(:each) do
26
- stub_core
27
- @git = Mortar::Git::Git.new
28
- end
29
-
30
- context("index") do
31
- it "shows help when user adds help argument" do
32
- with_git_initialized_project do |p|
33
- stderr_dash_h, stdout_dash_h = execute("spark -h", p, @git)
34
- stderr_help, stdout_help = execute("spark help", p, @git)
35
- stdout_dash_h.should == stdout_help
36
- stderr_dash_h.should == stderr_help
37
- end
38
- end
39
-
40
- it "runs a spark job with no arguments new cluster" do
41
- with_git_initialized_project do |p|
42
- # stub api requests
43
- job_id = "c571a8c7f76a4fd4a67c103d753e2dd5"
44
- job_url = "http://127.0.0.1:5000/jobs/spark_job_detail?job_id=c571a8c7f76a4fd4a67c103d753e2dd5"
45
- mock(Mortar::Auth.api).post_spark_job_new_cluster("myproject", "my_script.py", is_a(String), 4,
46
- :project_script_path => be_a_kind_of(String),
47
- :script_arguments => "",
48
- :cluster_type=>"persistent",
49
- :use_spot_instances=>false
50
- ) {Excon::Response.new(:body => {"job_id" => job_id, "web_job_url" => job_url})}
51
-
52
- write_file(File.join(p.sparkscripts_path, "my_script.py"))
53
- stderr, stdout = execute("spark sparkscripts/my_script.py --clustersize 4", p, @git)
54
- puts stderr
55
- stdout.should == <<-STDOUT
56
- Taking code snapshot... done
57
- Sending code snapshot to Mortar... done
58
- Requesting job execution... done
59
- job_id: c571a8c7f76a4fd4a67c103d753e2dd5
60
-
61
- Job status can be viewed on the web at:
62
-
63
- http://127.0.0.1:5000/jobs/spark_job_detail?job_id=c571a8c7f76a4fd4a67c103d753e2dd5
64
-
65
- STDOUT
66
- end
67
- end
68
-
69
- it "runs a spark job with script_arguments existing cluster" do
70
- with_git_initialized_project do |p|
71
- # stub api requests
72
- job_id = "c571a8c7f76a4fd4a67c103d753e2dd5"
73
- cluster_id = "c571a8c7f76a4fd4a67c103d753e2dd7"
74
- job_url = "http://127.0.0.1:5000/jobs/spark_job_detail?job_id=c571a8c7f76a4fd4a67c103d753e2dd5"
75
- script_arguments = "arg1 arg2 arg3"
76
- mock(Mortar::Auth.api).post_spark_job_existing_cluster("myproject", "my_script.py", is_a(String), cluster_id,
77
- :project_script_path => be_a_kind_of(String),
78
- :script_arguments => script_arguments
79
- ) {Excon::Response.new(:body => {"job_id" => job_id, "web_job_url" => job_url})}
80
-
81
- write_file(File.join(p.sparkscripts_path, "my_script.py"))
82
- stderr, stdout = execute("spark sparkscripts/my_script.py --clusterid #{cluster_id} #{script_arguments}", p, @git)
83
- stdout.should == <<-STDOUT
84
- Taking code snapshot... done
85
- Sending code snapshot to Mortar... done
86
- Requesting job execution... done
87
- job_id: c571a8c7f76a4fd4a67c103d753e2dd5
88
-
89
- Job status can be viewed on the web at:
90
-
91
- http://127.0.0.1:5000/jobs/spark_job_detail?job_id=c571a8c7f76a4fd4a67c103d753e2dd5
92
-
93
- STDOUT
94
- end
95
- end
96
-
97
- it "runs a spark job with on free cluster" do
98
- with_git_initialized_project do |p|
99
- # stub api requests
100
- job_id = "c571a8c7f76a4fd4a67c103d753e2dd5"
101
- job_url = "http://127.0.0.1:5000/jobs/spark_job_detail?job_id=c571a8c7f76a4fd4a67c103d753e2dd5"
102
- script_arguments = "arg1 arg2 arg3"
103
-
104
- small_cluster_id = '510beb6b3004860820ab6538'
105
- small_cluster_size = 2
106
- small_cluster_status = Mortar::API::Clusters::STATUS_RUNNING
107
- large_cluster_id = '510bf0db3004860820ab6590'
108
- large_cluster_size = 5
109
- large_cluster_status = Mortar::API::Clusters::STATUS_RUNNING
110
- starting_cluster_id = '510bf0db3004860820abaaaa'
111
- starting_cluster_size = 10
112
- starting_cluster_status = Mortar::API::Clusters::STATUS_STARTING
113
- huge_busy_cluster_id = '510bf0db3004860820ab6621'
114
- huge_busy_cluster_size = 20
115
- huge_busy_cluster_status = Mortar::API::Clusters::STATUS_RUNNING
116
-
117
-
118
- mock(Mortar::Auth.api).get_clusters(Mortar::API::Jobs::CLUSTER_BACKEND__EMR_HADOOP_2) {
119
- Excon::Response.new(:body => {
120
- 'clusters' => [
121
- { 'cluster_id' => small_cluster_id, 'size' => small_cluster_size, 'running_jobs' => [], 'status_code' => small_cluster_status },
122
- { 'cluster_id' => large_cluster_id, 'size' => large_cluster_size, 'running_jobs' => [], 'status_code' => large_cluster_status },
123
- { 'cluster_id' => starting_cluster_id, 'size' => starting_cluster_size, 'running_jobs' => [], 'status_code' => starting_cluster_status },
124
- { 'cluster_id' => huge_busy_cluster_id, 'size' => huge_busy_cluster_size,
125
- 'running_jobs' => [ { 'job_id' => 'c571a8c7f76a4fd4a67c103d753e2dd5',
126
- 'job_name' => "", 'start_timestamp' => ""} ], 'status_code' => huge_busy_cluster_status }
127
- ]})
128
- }
129
-
130
- mock(Mortar::Auth.api).post_spark_job_existing_cluster("myproject", "my_script.py", is_a(String), large_cluster_id,
131
- :project_script_path => be_a_kind_of(String),
132
- :script_arguments => script_arguments
133
- ) {Excon::Response.new(:body => {"job_id" => job_id, "web_job_url" => job_url})}
134
-
135
- write_file(File.join(p.sparkscripts_path, "my_script.py"))
136
- stderr, stdout = execute("spark sparkscripts/my_script.py #{script_arguments}", p, @git)
137
- stdout.should == <<-STDOUT
138
- Taking code snapshot... done
139
- Sending code snapshot to Mortar... done
140
- Defaulting to running job on largest existing free cluster, id = 510bf0db3004860820ab6590, size = 5
141
- Requesting job execution... done
142
- job_id: c571a8c7f76a4fd4a67c103d753e2dd5
143
-
144
- Job status can be viewed on the web at:
145
-
146
- http://127.0.0.1:5000/jobs/spark_job_detail?job_id=c571a8c7f76a4fd4a67c103d753e2dd5
147
-
148
- STDOUT
149
- end
150
- end
151
-
152
- end
153
- end
154
- end