mortar-api-ruby 0.6.0 → 0.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/.travis.yml CHANGED
@@ -3,8 +3,13 @@ rvm:
3
3
  - "1.8.7"
4
4
  - "1.9.2"
5
5
  - "1.9.3"
6
+ - "2.0.0"
6
7
  notifications:
7
- email: false
8
+ email:
9
+ recipients:
10
+ - travis-ci@mortardata.com
11
+ on_success: change
12
+ on_failure: always
8
13
  campfire:
9
14
  on_success: always
10
15
  on_failure: always
@@ -46,6 +46,10 @@ module Mortar
46
46
  STATUS_EXECUTION_ERROR,
47
47
  STATUS_SERVICE_ERROR,
48
48
  STATUS_STOPPED])
49
+
50
+ CLUSTER_TYPE__SINGLE_JOB = 'single_job'
51
+ CLUSTER_TYPE__PERSISTENT = 'persistent'
52
+ CLUSTER_TYPE__PERMANENT = 'permanent'
49
53
  end
50
54
 
51
55
 
@@ -78,15 +82,15 @@ module Mortar
78
82
 
79
83
  # POST /vX/jobs
80
84
  def post_job_new_cluster(project_name, script_name, git_ref, cluster_size, options={})
81
- keep_alive = options[:keepalive].nil? ? true : options[:keepalive]
85
+ cluster_type = options[:cluster_type].nil? ? Jobs::CLUSTER_TYPE__PERSISTENT : options[:cluster_type]
82
86
  notify_on_job_finish = options[:notify_on_job_finish].nil? ? true : options[:notify_on_job_finish]
83
87
  parameters = options[:parameters] || {}
84
88
  is_control_script = options[:is_control_script] || false
85
-
89
+
86
90
  body = { "project_name" => project_name,
87
91
  "git_ref" => git_ref,
88
92
  "cluster_size" => cluster_size,
89
- "keep_alive" => keep_alive,
93
+ "cluster_type" => cluster_type,
90
94
  "parameters" => parameters,
91
95
  "notify_on_job_finish" => notify_on_job_finish
92
96
  }
@@ -18,7 +18,7 @@ module Mortar
18
18
  class API
19
19
  # client version
20
20
  # see http://semver.org/
21
- VERSION = "0.6.0"
21
+ VERSION = "0.6.1"
22
22
 
23
23
  SERVER_API_VERSION = "2"
24
24
  end
@@ -28,7 +28,7 @@ describe Mortar::API do
28
28
  after(:each) do
29
29
  Excon.stubs.clear
30
30
  end
31
-
31
+
32
32
  context "jobs" do
33
33
  it "posts a job for an existing cluster" do
34
34
  job_id = "7b93e4d3ab034188a0c2be418d3d24ed"
@@ -51,16 +51,17 @@ describe Mortar::API do
51
51
  response.body['job_id'].should == job_id
52
52
  end
53
53
 
54
- it "posts a job for a new cluster, defaulting to keep_alive of true" do
54
+ it "posts a job for a new cluster, defaulting cluster_type to persistent" do
55
55
  job_id = "7b93e4d3ab034188a0c2be418d3d24ed"
56
56
  project_name = "my_project"
57
57
  pigscript_name = "my_pigscript"
58
58
  git_ref = "e20395b8b06fbf52e86665b0660209673f311d1a"
59
59
  cluster_size = 5
60
+ cluster_type = Mortar::API::Jobs::CLUSTER_TYPE__PERSISTENT
60
61
  body = Mortar::API::OkJson.encode({"project_name" => project_name,
61
62
  "git_ref" => git_ref,
62
63
  "cluster_size" => cluster_size,
63
- "keep_alive" => true,
64
+ "cluster_type" => cluster_type,
64
65
  "parameters" => {},
65
66
  "notify_on_job_finish" => true,
66
67
  "pigscript_name" => pigscript_name
@@ -78,10 +79,11 @@ describe Mortar::API do
78
79
  pigscript_name = "my_pigscript"
79
80
  git_ref = "e20395b8b06fbf52e86665b0660209673f311d1a"
80
81
  cluster_size = 5
82
+ cluster_type = Mortar::API::Jobs::CLUSTER_TYPE__PERSISTENT
81
83
  body = Mortar::API::OkJson.encode({"project_name" => project_name,
82
84
  "git_ref" => git_ref,
83
85
  "cluster_size" => cluster_size,
84
- "keep_alive" => true,
86
+ "cluster_type" => cluster_type,
85
87
  "parameters" => {},
86
88
  "notify_on_job_finish" => true,
87
89
  "pigscript_name" => pigscript_name
@@ -99,10 +101,11 @@ describe Mortar::API do
99
101
  pigscript_name = "my_pigscript"
100
102
  git_ref = "e20395b8b06fbf52e86665b0660209673f311d1a"
101
103
  cluster_size = 5
104
+ cluster_type = Mortar::API::Jobs::CLUSTER_TYPE__SINGLE_JOB
102
105
  body = Mortar::API::OkJson.encode({"project_name" => project_name,
103
106
  "git_ref" => git_ref,
104
107
  "cluster_size" => cluster_size,
105
- "keep_alive" => false,
108
+ "cluster_type" => cluster_type,
106
109
  "parameters" => {},
107
110
  "notify_on_job_finish" => false,
108
111
  "pigscript_name" => pigscript_name
@@ -110,31 +113,54 @@ describe Mortar::API do
110
113
  Excon.stub({:method => :post, :path => "/v2/jobs", :body => body}) do |params|
111
114
  {:body => Mortar::API::OkJson.encode({'job_id' => job_id}), :status => 200}
112
115
  end
113
- response = @api.post_job_new_cluster(project_name, pigscript_name, git_ref, cluster_size, :keepalive => false, :notify_on_job_finish => false)
116
+ response = @api.post_job_new_cluster(project_name, pigscript_name, git_ref, cluster_size, :cluster_type => cluster_type, :notify_on_job_finish => false)
114
117
  response.body['job_id'].should == job_id
115
118
  end
116
119
 
117
- it "accepts keep_alive of false" do
120
+ it "accepts cluster_type of single_job" do
118
121
  job_id = "7b93e4d3ab034188a0c2be418d3d24ed"
119
122
  project_name = "my_project"
120
123
  pigscript_name = "my_pigscript"
121
124
  git_ref = "e20395b8b06fbf52e86665b0660209673f311d1a"
122
125
  cluster_size = 5
126
+ cluster_type = Mortar::API::Jobs::CLUSTER_TYPE__SINGLE_JOB
123
127
  body = Mortar::API::OkJson.encode({"project_name" => project_name,
124
128
  "git_ref" => git_ref,
125
129
  "cluster_size" => cluster_size,
126
- "keep_alive" => false,
130
+ "cluster_type" => cluster_type,
127
131
  "parameters" => {},
128
132
  "notify_on_job_finish" => true,
129
133
  "pigscript_name" => pigscript_name
130
- })
134
+ })
131
135
  Excon.stub({:method => :post, :path => "/v2/jobs", :body => body}) do |params|
132
136
  {:body => Mortar::API::OkJson.encode({'job_id' => job_id}), :status => 200}
133
137
  end
134
- response = @api.post_job_new_cluster(project_name, pigscript_name, git_ref, cluster_size, :keepalive => false)
138
+ response = @api.post_job_new_cluster(project_name, pigscript_name, git_ref, cluster_size, :cluster_type => cluster_type)
135
139
  response.body['job_id'].should == job_id
136
140
  end
137
-
141
+
142
+ it "accepts cluster_type of permanent" do
143
+ job_id = "7b93e4d3ab034188a0c2be418d3d24ed"
144
+ project_name = "my_project"
145
+ pigscript_name = "my_pigscript"
146
+ git_ref = "e20395b8b06fbf52e86665b0660209673f311d1a"
147
+ cluster_size = 5
148
+ cluster_type = Mortar::API::Jobs::CLUSTER_TYPE__PERMANENT
149
+ body = Mortar::API::OkJson.encode({"project_name" => project_name,
150
+ "git_ref" => git_ref,
151
+ "cluster_size" => cluster_size,
152
+ "cluster_type" => cluster_type,
153
+ "parameters" => {},
154
+ "notify_on_job_finish" => true,
155
+ "pigscript_name" => pigscript_name
156
+ })
157
+ Excon.stub({:method => :post, :path => "/v2/jobs", :body => body}) do |params|
158
+ {:body => Mortar::API::OkJson.encode({'job_id' => job_id}), :status => 200}
159
+ end
160
+ response = @api.post_job_new_cluster(project_name, pigscript_name, git_ref, cluster_size, :cluster_type => cluster_type)
161
+ response.body['job_id'].should == job_id
162
+ end
163
+
138
164
  it "gets a job" do
139
165
  job_id = "7b93e4d3ab034188a0c2be418d3d24ed"
140
166
  status = Mortar::API::Jobs::STATUS_RUNNING
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: mortar-api-ruby
3
3
  version: !ruby/object:Gem::Version
4
- hash: 7
4
+ hash: 5
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
8
  - 6
9
- - 0
10
- version: 0.6.0
9
+ - 1
10
+ version: 0.6.1
11
11
  platform: ruby
12
12
  authors:
13
13
  - Mortar Data
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2013-03-14 00:00:00 Z
18
+ date: 2013-03-29 00:00:00 Z
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
21
  name: excon