mortar-api-ruby 0.3.0 → 0.3.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/Gemfile.lock +2 -2
- data/README.md +11 -0
- data/lib/mortar/api/fixtures.rb +55 -0
- data/lib/mortar/api/illustrate.rb +2 -1
- data/lib/mortar/api/version.rb +1 -1
- data/lib/mortar/api.rb +1 -1
- data/spec/mortar/api/fixtures_spec.rb +79 -0
- data/spec/mortar/api/illustrate_spec.rb +3 -1
- metadata +84 -93
data/Gemfile.lock
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
mortar-api-ruby (0.1
|
4
|
+
mortar-api-ruby (0.3.1)
|
5
5
|
excon (~> 0.15.4)
|
6
6
|
|
7
7
|
GEM
|
8
8
|
remote: http://rubygems.org/
|
9
9
|
specs:
|
10
10
|
diff-lcs (1.1.3)
|
11
|
-
excon (0.15.
|
11
|
+
excon (0.15.5)
|
12
12
|
gem-release (0.4.1)
|
13
13
|
rake (0.9.2.2)
|
14
14
|
rr (1.0.4)
|
data/README.md
CHANGED
@@ -0,0 +1,55 @@
|
|
1
|
+
#
|
2
|
+
# Copyright 2012 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 'set'
|
18
|
+
|
19
|
+
module Mortar
|
20
|
+
class API
|
21
|
+
module Fixtures
|
22
|
+
STATUS_GATEWAY_STARTING = 'GATEWAY_STARTING'
|
23
|
+
STATUS_PENDING = 'PENDING'
|
24
|
+
STATUS_CREATING = 'CREATING'
|
25
|
+
STATUS_SAVING = 'SAVING'
|
26
|
+
STATUS_CREATED = 'CREATED'
|
27
|
+
STATUS_FAILED = 'FAILED'
|
28
|
+
|
29
|
+
STATUSES_COMPLETE = Set.new([STATUS_CREATED,
|
30
|
+
STATUS_FAILED])
|
31
|
+
end
|
32
|
+
|
33
|
+
# GET /vX/fixtures/:fixture
|
34
|
+
def get_fixture(fixture_id)
|
35
|
+
request(
|
36
|
+
:expects => 200,
|
37
|
+
:method => :get,
|
38
|
+
:path => versioned_path("/fixtures/#{fixture_id}")
|
39
|
+
)
|
40
|
+
end
|
41
|
+
|
42
|
+
# POST /vX/fixtures
|
43
|
+
def post_fixture_limit(project_name, fixture_name, input_url, num_rows)
|
44
|
+
request(
|
45
|
+
:expects => 200,
|
46
|
+
:method => :post,
|
47
|
+
:path => versioned_path("/fixtures"),
|
48
|
+
:body => json_encode({"fixture_name" => fixture_name,
|
49
|
+
"project_name" => project_name,
|
50
|
+
"s3_url" => input_url,
|
51
|
+
"num_rows" => num_rows})
|
52
|
+
)
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
@@ -55,7 +55,7 @@ module Mortar
|
|
55
55
|
end
|
56
56
|
|
57
57
|
# POST /vX/illustrates
|
58
|
-
def post_illustrate(project_name, pigscript, pigscript_alias, git_ref, options = {})
|
58
|
+
def post_illustrate(project_name, pigscript, pigscript_alias, skip_pruning, git_ref, options = {})
|
59
59
|
parameters = options[:parameters] || {}
|
60
60
|
request(
|
61
61
|
:expects => 200,
|
@@ -64,6 +64,7 @@ module Mortar
|
|
64
64
|
:body => json_encode({"project_name" => project_name,
|
65
65
|
"pigscript_name" => pigscript,
|
66
66
|
"alias" => pigscript_alias,
|
67
|
+
"skip_pruning" => skip_pruning,
|
67
68
|
"git_ref" => git_ref,
|
68
69
|
"parameters" => parameters
|
69
70
|
})
|
data/lib/mortar/api/version.rb
CHANGED
data/lib/mortar/api.rb
CHANGED
@@ -34,8 +34,8 @@ require "mortar/api/vendor/okjson"
|
|
34
34
|
require "mortar/api/basicauth"
|
35
35
|
require "mortar/api/errors"
|
36
36
|
require "mortar/api/version"
|
37
|
-
|
38
37
|
require "mortar/api/clusters"
|
38
|
+
require "mortar/api/fixtures"
|
39
39
|
require "mortar/api/illustrate"
|
40
40
|
require "mortar/api/describe"
|
41
41
|
require "mortar/api/validate"
|
@@ -0,0 +1,79 @@
|
|
1
|
+
#
|
2
|
+
# Copyright 2012 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 "base64"
|
18
|
+
require "spec_helper"
|
19
|
+
require "mortar/api"
|
20
|
+
|
21
|
+
|
22
|
+
describe Mortar::API do
|
23
|
+
|
24
|
+
before(:each) do
|
25
|
+
@api = Mortar::API.new
|
26
|
+
end
|
27
|
+
|
28
|
+
after(:each) do
|
29
|
+
Excon.stubs.clear
|
30
|
+
end
|
31
|
+
|
32
|
+
context "fixtures" do
|
33
|
+
|
34
|
+
it "gets a fixture" do
|
35
|
+
account_id = "123456780aaaaaa123456780aaaaaabb"
|
36
|
+
project_name = "MyProject"
|
37
|
+
project_id = "aaaaasssss"
|
38
|
+
fixture_id = "12345123412abcd12345123412abcdef"
|
39
|
+
fixture = {'name' => "Some fixture",
|
40
|
+
'fixture_id' => fixture_id,
|
41
|
+
'account_id' => account_id,
|
42
|
+
'project_id' => project_id,
|
43
|
+
'status_code' => Mortar::API::Fixtures::STATUS_CREATED,
|
44
|
+
'status_description' => "Some Status Description",
|
45
|
+
'sample_s3_urls' => [ {'url' => "https://some_url_1",
|
46
|
+
'name' => "url1"},
|
47
|
+
{'url' => "https://some_url_2",
|
48
|
+
'name' => "url2"}]
|
49
|
+
}
|
50
|
+
Excon.stub({:method => :get, :path => "/v2/fixtures/#{fixture_id}"}) do |params|
|
51
|
+
{:body => Mortar::API::OkJson.encode(fixture),
|
52
|
+
:status => 200}
|
53
|
+
end
|
54
|
+
response = @api.get_fixture(fixture_id)
|
55
|
+
response.body['name'].should == fixture['name']
|
56
|
+
response.body['status'].should == fixture['status']
|
57
|
+
response.body['sample_s3_urls'].count.should == 2
|
58
|
+
end
|
59
|
+
|
60
|
+
it "posts a limit fixture" do
|
61
|
+
fixture_name = "some_fixture"
|
62
|
+
s3_url = "some_s3_url"
|
63
|
+
num_rows = 100
|
64
|
+
project_name = "ProjectName"
|
65
|
+
fixture_id = "12345123412abcd12345123412abcdef"
|
66
|
+
|
67
|
+
body = Mortar::API::OkJson.encode({"fixture_name" => fixture_name,
|
68
|
+
"project_name" => project_name,
|
69
|
+
"s3_url" => s3_url,
|
70
|
+
"num_rows" => num_rows})
|
71
|
+
Excon.stub({:method => :post, :path => "/v2/fixtures", :body => body}) do |params|
|
72
|
+
{:body => Mortar::API::OkJson.encode({"fixture_id" => fixture_id}), :status => 200}
|
73
|
+
end
|
74
|
+
response = @api.post_fixture_limit(project_name, fixture_name, s3_url, num_rows)
|
75
|
+
response.body['fixture_id'].should == fixture_id
|
76
|
+
end
|
77
|
+
|
78
|
+
end
|
79
|
+
end
|
@@ -35,17 +35,19 @@ describe Mortar::API do
|
|
35
35
|
project_name = "my_project"
|
36
36
|
pigscript_name = "my_pigscript"
|
37
37
|
pigscript_alias = "my_alias"
|
38
|
+
skip_pruning = false
|
38
39
|
git_ref = "e20395b8b06fbf52e86665b0660209673f311d1a"
|
39
40
|
parameters = {"key" => "value"}
|
40
41
|
body = Mortar::API::OkJson.encode({"project_name" => project_name,
|
41
42
|
"pigscript_name" => pigscript_name,
|
42
43
|
"alias" => pigscript_alias,
|
44
|
+
"skip_pruning" => skip_pruning,
|
43
45
|
"git_ref" => git_ref,
|
44
46
|
"parameters" => parameters})
|
45
47
|
Excon.stub({:method => :post, :path => "/v2/illustrates", :body => body}) do |params|
|
46
48
|
{:body => Mortar::API::OkJson.encode({'illustrate_id' => illustrate_id}), :status => 200}
|
47
49
|
end
|
48
|
-
response = @api.post_illustrate(project_name, pigscript_name, pigscript_alias, git_ref, :parameters => parameters)
|
50
|
+
response = @api.post_illustrate(project_name, pigscript_name, pigscript_alias, skip_pruning, git_ref, :parameters => parameters)
|
49
51
|
response.body['illustrate_id'].should == illustrate_id
|
50
52
|
end
|
51
53
|
|
metadata
CHANGED
@@ -1,103 +1,102 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: mortar-api-ruby
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.3.1
|
5
5
|
prerelease:
|
6
|
-
segments:
|
7
|
-
- 0
|
8
|
-
- 3
|
9
|
-
- 0
|
10
|
-
version: 0.3.0
|
11
6
|
platform: ruby
|
12
|
-
authors:
|
7
|
+
authors:
|
13
8
|
- Mortar Data
|
14
9
|
autorequire:
|
15
10
|
bindir: bin
|
16
11
|
cert_chain: []
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
- !ruby/object:Gem::Dependency
|
12
|
+
date: 2012-10-25 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
21
15
|
name: excon
|
22
|
-
|
23
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
24
17
|
none: false
|
25
|
-
requirements:
|
18
|
+
requirements:
|
26
19
|
- - ~>
|
27
|
-
- !ruby/object:Gem::Version
|
28
|
-
hash: 43
|
29
|
-
segments:
|
30
|
-
- 0
|
31
|
-
- 15
|
32
|
-
- 4
|
20
|
+
- !ruby/object:Gem::Version
|
33
21
|
version: 0.15.4
|
34
22
|
type: :runtime
|
35
|
-
version_requirements: *id001
|
36
|
-
- !ruby/object:Gem::Dependency
|
37
|
-
name: gem-release
|
38
23
|
prerelease: false
|
39
|
-
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
40
25
|
none: false
|
41
|
-
requirements:
|
42
|
-
- -
|
43
|
-
- !ruby/object:Gem::Version
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
26
|
+
requirements:
|
27
|
+
- - ~>
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: 0.15.4
|
30
|
+
- !ruby/object:Gem::Dependency
|
31
|
+
name: gem-release
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
33
|
+
none: false
|
34
|
+
requirements:
|
35
|
+
- - ! '>='
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: '0'
|
48
38
|
type: :development
|
49
|
-
version_requirements: *id002
|
50
|
-
- !ruby/object:Gem::Dependency
|
51
|
-
name: rake
|
52
39
|
prerelease: false
|
53
|
-
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ! '>='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: '0'
|
46
|
+
- !ruby/object:Gem::Dependency
|
47
|
+
name: rake
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
54
49
|
none: false
|
55
|
-
requirements:
|
56
|
-
- -
|
57
|
-
- !ruby/object:Gem::Version
|
58
|
-
|
59
|
-
segments:
|
60
|
-
- 0
|
61
|
-
version: "0"
|
50
|
+
requirements:
|
51
|
+
- - ! '>='
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '0'
|
62
54
|
type: :development
|
63
|
-
version_requirements: *id003
|
64
|
-
- !ruby/object:Gem::Dependency
|
65
|
-
name: rr
|
66
55
|
prerelease: false
|
67
|
-
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ! '>='
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
- !ruby/object:Gem::Dependency
|
63
|
+
name: rr
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
68
65
|
none: false
|
69
|
-
requirements:
|
70
|
-
- -
|
71
|
-
- !ruby/object:Gem::Version
|
72
|
-
|
73
|
-
segments:
|
74
|
-
- 0
|
75
|
-
version: "0"
|
66
|
+
requirements:
|
67
|
+
- - ! '>='
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: '0'
|
76
70
|
type: :development
|
77
|
-
version_requirements: *id004
|
78
|
-
- !ruby/object:Gem::Dependency
|
79
|
-
name: rspec
|
80
71
|
prerelease: false
|
81
|
-
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
82
73
|
none: false
|
83
|
-
requirements:
|
84
|
-
- -
|
85
|
-
- !ruby/object:Gem::Version
|
86
|
-
|
87
|
-
|
88
|
-
|
89
|
-
|
74
|
+
requirements:
|
75
|
+
- - ! '>='
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: '0'
|
78
|
+
- !ruby/object:Gem::Dependency
|
79
|
+
name: rspec
|
80
|
+
requirement: !ruby/object:Gem::Requirement
|
81
|
+
none: false
|
82
|
+
requirements:
|
83
|
+
- - ! '>='
|
84
|
+
- !ruby/object:Gem::Version
|
85
|
+
version: '0'
|
90
86
|
type: :development
|
91
|
-
|
87
|
+
prerelease: false
|
88
|
+
version_requirements: !ruby/object:Gem::Requirement
|
89
|
+
none: false
|
90
|
+
requirements:
|
91
|
+
- - ! '>='
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: '0'
|
92
94
|
description: Client for Mortar API.
|
93
95
|
email: support@mortardata.com
|
94
96
|
executables: []
|
95
|
-
|
96
97
|
extensions: []
|
97
|
-
|
98
98
|
extra_rdoc_files: []
|
99
|
-
|
100
|
-
files:
|
99
|
+
files:
|
101
100
|
- .gitignore
|
102
101
|
- .rvmrc
|
103
102
|
- Gemfile
|
@@ -112,6 +111,7 @@ files:
|
|
112
111
|
- lib/mortar/api/clusters.rb
|
113
112
|
- lib/mortar/api/describe.rb
|
114
113
|
- lib/mortar/api/errors.rb
|
114
|
+
- lib/mortar/api/fixtures.rb
|
115
115
|
- lib/mortar/api/illustrate.rb
|
116
116
|
- lib/mortar/api/jobs.rb
|
117
117
|
- lib/mortar/api/login.rb
|
@@ -125,6 +125,7 @@ files:
|
|
125
125
|
- spec/mortar/api/basicauth_spec.rb
|
126
126
|
- spec/mortar/api/clusters_spec.rb
|
127
127
|
- spec/mortar/api/describe_spec.rb
|
128
|
+
- spec/mortar/api/fixtures_spec.rb
|
128
129
|
- spec/mortar/api/illustrate_spec.rb
|
129
130
|
- spec/mortar/api/jobs_spec.rb
|
130
131
|
- spec/mortar/api/login_spec.rb
|
@@ -137,43 +138,33 @@ files:
|
|
137
138
|
- spec/spec_helper.rb
|
138
139
|
homepage: http://mortardata.com/
|
139
140
|
licenses: []
|
140
|
-
|
141
141
|
post_install_message:
|
142
142
|
rdoc_options: []
|
143
|
-
|
144
|
-
require_paths:
|
143
|
+
require_paths:
|
145
144
|
- lib
|
146
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
145
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
147
146
|
none: false
|
148
|
-
requirements:
|
149
|
-
- -
|
150
|
-
- !ruby/object:Gem::Version
|
151
|
-
hash: 57
|
152
|
-
segments:
|
153
|
-
- 1
|
154
|
-
- 8
|
155
|
-
- 7
|
147
|
+
requirements:
|
148
|
+
- - ! '>='
|
149
|
+
- !ruby/object:Gem::Version
|
156
150
|
version: 1.8.7
|
157
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
151
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
158
152
|
none: false
|
159
|
-
requirements:
|
160
|
-
- -
|
161
|
-
- !ruby/object:Gem::Version
|
162
|
-
|
163
|
-
segments:
|
164
|
-
- 0
|
165
|
-
version: "0"
|
153
|
+
requirements:
|
154
|
+
- - ! '>='
|
155
|
+
- !ruby/object:Gem::Version
|
156
|
+
version: '0'
|
166
157
|
requirements: []
|
167
|
-
|
168
158
|
rubyforge_project:
|
169
159
|
rubygems_version: 1.8.24
|
170
160
|
signing_key:
|
171
161
|
specification_version: 3
|
172
162
|
summary: Client for Mortar API
|
173
|
-
test_files:
|
163
|
+
test_files:
|
174
164
|
- spec/mortar/api/basicauth_spec.rb
|
175
165
|
- spec/mortar/api/clusters_spec.rb
|
176
166
|
- spec/mortar/api/describe_spec.rb
|
167
|
+
- spec/mortar/api/fixtures_spec.rb
|
177
168
|
- spec/mortar/api/illustrate_spec.rb
|
178
169
|
- spec/mortar/api/jobs_spec.rb
|
179
170
|
- spec/mortar/api/login_spec.rb
|