marathon-api 1.1.0 → 1.2.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +1 -1
- data/Rakefile +11 -6
- data/bin/marathon +49 -41
- data/fixtures/vcr/Marathon/_info/returns_the_info_hash.yml +10 -2
- data/fixtures/vcr/Marathon/_ping/ping/.yml +7 -1
- data/fixtures/vcr/Marathon_App/_changes/changes_the_app.yml +21 -5
- data/fixtures/vcr/Marathon_App/_changes/fails_with_stange_attributes.yml +8 -2
- data/fixtures/vcr/Marathon_App/_delete/deletes_the_app.yml +11 -3
- data/fixtures/vcr/Marathon_App/_delete/fails_deleting_not_existing_app.yml +9 -1
- data/fixtures/vcr/Marathon_App/_get/fails_getting_not_existing_app.yml +9 -1
- data/fixtures/vcr/Marathon_App/_get/gets_the_app.yml +10 -2
- data/fixtures/vcr/Marathon_App/_list/lists_apps.yml +11 -4
- data/fixtures/vcr/Marathon_App/_restart/fails_restarting_not_existing_app.yml +9 -1
- data/fixtures/vcr/Marathon_App/_restart/restarts_an_app.yml +9 -3
- data/fixtures/vcr/Marathon_App/_start/fails_getting_not_existing_app.yml +9 -1
- data/fixtures/vcr/Marathon_App/_start/starts_the_app.yml +12 -4
- data/fixtures/vcr/Marathon_App/_version/gets_a_version.yml +19 -7
- data/fixtures/vcr/Marathon_App/_versions/gets_versions.yml +9 -3
- data/fixtures/vcr/Marathon_Deployment/_delete/cleans_app_from_marathon.yml +38 -0
- data/fixtures/vcr/Marathon_Deployment/_delete/deletes_deployments.yml +20 -8
- data/fixtures/vcr/Marathon_Deployment/_list/lists_deployments.yml +34 -14
- data/fixtures/vcr/Marathon_EventSubscriptions/_list/lists_callbacks.yml +10 -2
- data/fixtures/vcr/Marathon_EventSubscriptions/_register/registers_callback.yml +10 -2
- data/fixtures/vcr/Marathon_EventSubscriptions/_unregister/unregisters_callback.yml +10 -2
- data/fixtures/vcr/Marathon_Group/_changes/changes_the_group.yml +20 -8
- data/fixtures/vcr/Marathon_Group/_changes/previews_changes.yml +38 -0
- data/fixtures/vcr/Marathon_Group/_delete/deletes_the_group.yml +9 -3
- data/fixtures/vcr/Marathon_Group/_delete/fails_deleting_not_existing_app.yml +8 -2
- data/fixtures/vcr/Marathon_Group/_get/fails_getting_not_existing_app.yml +8 -2
- data/fixtures/vcr/Marathon_Group/_get/gets_the_group.yml +9 -3
- data/fixtures/vcr/Marathon_Group/_list/lists_apps.yml +12 -4
- data/fixtures/vcr/Marathon_Group/_start/fails_getting_not_existing_group.yml +8 -2
- data/fixtures/vcr/Marathon_Group/_start/starts_the_group.yml +9 -3
- data/fixtures/vcr/Marathon_Leader/_delete/delete/.yml +9 -1
- data/fixtures/vcr/Marathon_Leader/_get/get/.yml +10 -2
- data/fixtures/vcr/Marathon_Queue/_list/lists_queue.yml +9 -4
- data/fixtures/vcr/Marathon_Task/_delete/kills_a_tasks_of_an_app.yml +26 -10
- data/fixtures/vcr/Marathon_Task/_delete_all/kills_all_tasks_of_an_app.yml +10 -2
- data/fixtures/vcr/Marathon_Task/_get/gets_tasks_of_an_app.yml +10 -2
- data/fixtures/vcr/Marathon_Task/_list/lists_running_tasks.yml +10 -2
- data/fixtures/vcr/Marathon_Task/_list/lists_tasks.yml +10 -2
- data/lib/marathon/deployment.rb +5 -2
- data/lib/marathon/deployment_action.rb +23 -0
- data/lib/marathon/deployment_info.rb +17 -1
- data/lib/marathon/deployment_step.rb +21 -0
- data/lib/marathon/error.rb +1 -1
- data/lib/marathon/group.rb +13 -5
- data/lib/marathon/task.rb +7 -9
- data/lib/marathon/version.rb +1 -1
- data/lib/marathon.rb +2 -0
- data/spec/marathon/app_spec.rb +5 -7
- data/spec/marathon/deployment_action_spec.rb +25 -0
- data/spec/marathon/deployment_info_spec.rb +10 -1
- data/spec/marathon/deployment_spec.rb +7 -3
- data/spec/marathon/deployment_step_spec.rb +32 -0
- data/spec/marathon/event_subscriptions_spec.rb +2 -2
- data/spec/marathon/group_spec.rb +31 -19
- data/spec/marathon/leader_spec.rb +2 -4
- data/spec/marathon/queue_spec.rb +1 -2
- data/spec/marathon/task_spec.rb +4 -10
- metadata +10 -3
- data/fixtures/vcr/Marathon_App/_tasks/has_tasks.yml +0 -30
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6c559533ccc9fa9c31ab8bef43c85be37523dd19
|
4
|
+
data.tar.gz: d5a9ee23a61b5c87e59c8a98065b471af066ef24
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 03b2bd23333085438a81bd9131fa40c4545d445495fd420316849e2b232be2b42c2eb5952a8c5677dbb805838345fece427eb706ad099cf13bd639eb69b8919b
|
7
|
+
data.tar.gz: fdf041c4549b82d01e25e626b5243faa3e7fb58f5bab98b6a209ae568fc23087d099376f9955a5dd9aed25431a7c95b76ebc07ebe6523549e940032d4e69fb03
|
data/README.md
CHANGED
@@ -3,7 +3,7 @@ marathon-api
|
|
3
3
|
|
4
4
|
[![Gem Version](https://badge.fury.io/rb/marathon-api.svg)](http://badge.fury.io/rb/marathon-api) [![travis-ci](https://travis-ci.org/otto-de/marathon-api.png?branch=master)](https://travis-ci.org/otto-de/marathon-api) [![Code Climate](https://codeclimate.com/github/otto-de/marathon-api/badges/gpa.svg)](https://codeclimate.com/github/otto-de/marathon-api) [![Test Coverage](https://codeclimate.com/github/otto-de/marathon-api/badges/coverage.svg)](https://codeclimate.com/github/otto-de/marathon-api)
|
5
5
|
|
6
|
-
This gem provides an object oriented interface to the [Marathon Remote API][1]. At the time if this writing, marathon-api is meant to interface with Marathon version 0.8.
|
6
|
+
This gem provides an object oriented interface to the [Marathon Remote API][1]. At the time if this writing, marathon-api is meant to interface with Marathon version 0.8.1.
|
7
7
|
|
8
8
|
Installation
|
9
9
|
------------
|
data/Rakefile
CHANGED
@@ -19,16 +19,21 @@ end
|
|
19
19
|
|
20
20
|
dir = File.expand_path(File.dirname(__FILE__))
|
21
21
|
namespace :vcr do
|
22
|
-
desc '
|
23
|
-
task :
|
22
|
+
desc 'Remove VCR files'
|
23
|
+
task :clean do
|
24
24
|
FileUtils.remove_dir("#{dir}/fixtures/vcr", true)
|
25
|
+
end
|
26
|
+
|
27
|
+
desc 'Preapre Marathon by deploying some tasks'
|
28
|
+
task :prepare do
|
25
29
|
json = JSON.parse(File.read("#{dir}/fixtures/marathon_docker_sample.json"))
|
26
30
|
Marathon::App.new(json).start!
|
31
|
+
|
27
32
|
json = JSON.parse(File.read("#{dir}/fixtures/marathon_docker_sample_2.json"))
|
28
33
|
Marathon::App.new(json).start!
|
29
|
-
|
30
|
-
# finally run spec tests
|
31
|
-
Rake::Task["spec"].invoke
|
32
34
|
end
|
33
35
|
|
34
|
-
|
36
|
+
desc 'Run spec tests and record VCR cassettes'
|
37
|
+
task :record => [:clean, :prepare, :spec]
|
38
|
+
|
39
|
+
end
|
data/bin/marathon
CHANGED
@@ -42,56 +42,59 @@ def subcmd_list(cmd_opts)
|
|
42
42
|
end
|
43
43
|
|
44
44
|
def subcmd_start(cmd_opts)
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
app_opts = Marathon::Util.keywordize_hash!(JSON.parse(File.read(cmd_opts[:json])))
|
52
|
-
else
|
53
|
-
raise Marathon::Error::ArgumentError, "File '#{path}' does not exist"
|
54
|
-
end
|
45
|
+
if cmd_opts[:json]
|
46
|
+
path = cmd_opts[:json]
|
47
|
+
if path == '-'
|
48
|
+
app_opts = Marathon::Util.keywordize_hash!(JSON.parse($stdin.read))
|
49
|
+
elsif File.exists?(path)
|
50
|
+
app_opts = Marathon::Util.keywordize_hash!(JSON.parse(File.read(cmd_opts[:json])))
|
55
51
|
else
|
56
|
-
|
57
|
-
end
|
58
|
-
app_opts.merge!(cmd_opts.select { |k,_| ATTRIBUTES.include?(k) and cmd_opts["#{k.id2name}_given".to_sym] })
|
59
|
-
if cmd_opts[:env]
|
60
|
-
app_opts[:env] = Hash[cmd_opts[:env].map { |e| e.split('=', 2) }]
|
61
|
-
end
|
62
|
-
if cmd_opts[:constraints]
|
63
|
-
app_opts[:constraints] = cmd_opts[:constraint].map { |c| c.split(':') }
|
52
|
+
raise Marathon::Error::ArgumentError, "File '#{path}' does not exist"
|
64
53
|
end
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
exit 1
|
54
|
+
else
|
55
|
+
app_opts = DEFAULT_APP_OPTS
|
56
|
+
end
|
57
|
+
app_opts.merge!(cmd_opts.select { |k,_| ATTRIBUTES.include?(k) and cmd_opts["#{k.id2name}_given".to_sym] })
|
58
|
+
if cmd_opts[:env]
|
59
|
+
app_opts[:env] = Hash[cmd_opts[:env].map { |e| e.split('=', 2) }]
|
72
60
|
end
|
61
|
+
if cmd_opts[:constraints]
|
62
|
+
app_opts[:constraints] = cmd_opts[:constraint].map { |c| c.split(':') }
|
63
|
+
end
|
64
|
+
app = Marathon::App.new(app_opts)
|
65
|
+
puts "Starting app '#{app}'"
|
66
|
+
deployment = app.start!(cmd_opts[:force])
|
67
|
+
deployment.wait(cmd_opts[:timeout] || 60) if cmd_opts[:sync]
|
68
|
+
print_apps([app])
|
69
|
+
rescue Marathon::Error::MarathonError => e
|
70
|
+
puts "#{e.class}: #{e.message}"
|
71
|
+
exit 1
|
72
|
+
rescue TimeoutError => e
|
73
|
+
puts "Deployment took too long"
|
74
|
+
exit 1
|
73
75
|
end
|
74
76
|
|
75
77
|
def subcmd_scale(cmd_opts)
|
76
|
-
|
77
|
-
|
78
|
-
|
79
|
-
|
80
|
-
|
81
|
-
|
82
|
-
|
83
|
-
|
78
|
+
app = Marathon::App.get(cmd_opts[:id])
|
79
|
+
puts "Scaling app '#{app.id}' from #{app.instances} to #{cmd_opts[:instances]}"
|
80
|
+
deployment = app.scale!(cmd_opts[:instances], cmd_opts[:force])
|
81
|
+
deployment.wait(cmd_opts[:timeout] || 60) if cmd_opts[:sync]
|
82
|
+
puts deployment
|
83
|
+
rescue Marathon::Error::NotFoundError => e
|
84
|
+
puts "#{e.class}: #{e.message}"
|
85
|
+
exit 1
|
86
|
+
rescue TimeoutError => e
|
87
|
+
puts "Deployment took too long"
|
88
|
+
exit 1
|
84
89
|
end
|
85
90
|
|
86
91
|
def subcmd_kill(cmd_opts)
|
87
|
-
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
exit 1
|
94
|
-
end
|
92
|
+
puts "Removing app '#{cmd_opts[:id]}'"
|
93
|
+
Marathon::App.delete(cmd_opts[:id])
|
94
|
+
puts 'done'
|
95
|
+
rescue Marathon::Error::NotFoundError => e
|
96
|
+
puts "#{e.class}: #{e.message}"
|
97
|
+
exit 1
|
95
98
|
end
|
96
99
|
|
97
100
|
def subcmd_list_tasks(cmd_opts)
|
@@ -182,12 +185,17 @@ def parse_subcmd_opts(cmd)
|
|
182
185
|
opt :uri, 'URIs to download and unpack into the working directory.', :short => '-u', :type => :strings
|
183
186
|
opt :env, 'Environment variables to add to the process, as NAME=VALUE.', :short => '-e', :type => :strings
|
184
187
|
opt :constraint, 'Placement constraint for tasks, e.g. hostname:UNIQUE or rackid:CLUSTER', :type => :strings
|
188
|
+
opt :force, 'The current deployment can be overridden by setting the `force`.', :short => '-f'
|
189
|
+
opt :sync, 'Wait for the deployment to finish', :short => '-s'
|
190
|
+
opt :timeout, 'Timout for sync call in seconds (default 60).', :type => Integer, :short => '-t'
|
185
191
|
end
|
186
192
|
when 'scale'
|
187
193
|
Trollop.options do
|
188
194
|
opt :id, 'A unique identifier for the app.', :short => '-i', :type => String, :required => true
|
189
195
|
opt :instances, 'The number of instances to run.', :short => '-n', :type => Integer, :required => true
|
190
196
|
opt :force, 'The current deployment can be overridden by setting the `force`.', :short => '-f'
|
197
|
+
opt :sync, 'Wait for the deployment to finish', :short => '-s'
|
198
|
+
opt :timeout, 'Timout for sync call in seconds (default 60).', :type => Integer, :short => '-t'
|
191
199
|
end
|
192
200
|
when 'kill'
|
193
201
|
Trollop.options do
|
@@ -11,11 +11,19 @@ http_interactions:
|
|
11
11
|
- application/json
|
12
12
|
Accept:
|
13
13
|
- application/json
|
14
|
+
User-Agent:
|
15
|
+
- ub0r/Marathon-API 1.1.0
|
14
16
|
response:
|
15
17
|
status:
|
16
18
|
code: 200
|
17
19
|
message: OK
|
18
20
|
headers:
|
21
|
+
Cache-Control:
|
22
|
+
- no-cache, no-store, must-revalidate
|
23
|
+
Pragma:
|
24
|
+
- no-cache
|
25
|
+
Expires:
|
26
|
+
- '0'
|
19
27
|
Content-Type:
|
20
28
|
- application/json
|
21
29
|
Transfer-Encoding:
|
@@ -24,7 +32,7 @@ http_interactions:
|
|
24
32
|
- Jetty(8.y.z-SNAPSHOT)
|
25
33
|
body:
|
26
34
|
encoding: UTF-8
|
27
|
-
string: '{"name":"marathon","http_config":{"assets_path":null,"http_port":8080,"https_port":8443},"frameworkId":"
|
35
|
+
string: '{"name":"marathon","http_config":{"assets_path":null,"http_port":8080,"https_port":8443},"frameworkId":"20150210-083349-1160423616-5050-9698-0000","leader":null,"event_subscriber":{"type":"http_callback","http_endpoints":["http://127.0.0.1:8083/marathon/event"]},"marathon_config":{"local_port_max":20000,"local_port_min":10000,"hostname":"mesos-dev-f999998.lhotse.ov.otto.de","master":"zk://192.168.42.69:2181/develop/mesos","reconciliation_interval":75000,"mesos_role":null,"task_launch_timeout":300000,"reconciliation_initial_delay":15000,"ha":true,"failover_timeout":75,"checkpoint":true,"webui_url":null,"executor":"//cmd","marathon_store_timeout":2000,"mesos_user":"root"},"version":"0.8.1","zookeeper_config":{"zk_path":"/develop/marathon","zk":"zk://192.168.42.69:2181/develop/marathon","zk_timeout":10,"zk_hosts":"192.168.42.69:2181","zk_future_timeout":{"duration":10}},"elected":false}'
|
28
36
|
http_version:
|
29
|
-
recorded_at:
|
37
|
+
recorded_at: Tue, 17 Mar 2015 13:06:09 GMT
|
30
38
|
recorded_with: VCR 2.9.3
|
@@ -11,11 +11,17 @@ http_interactions:
|
|
11
11
|
- application/json
|
12
12
|
Accept:
|
13
13
|
- application/json
|
14
|
+
User-Agent:
|
15
|
+
- ub0r/Marathon-API 1.1.0
|
14
16
|
response:
|
15
17
|
status:
|
16
18
|
code: 200
|
17
19
|
message: OK
|
18
20
|
headers:
|
21
|
+
Pragma:
|
22
|
+
- no-cache
|
23
|
+
Expires:
|
24
|
+
- '0'
|
19
25
|
Cache-Control:
|
20
26
|
- must-revalidate,no-cache,no-store
|
21
27
|
Access-Control-Allow-Credentials:
|
@@ -31,5 +37,5 @@ http_interactions:
|
|
31
37
|
string: |
|
32
38
|
pong
|
33
39
|
http_version:
|
34
|
-
recorded_at:
|
40
|
+
recorded_at: Tue, 17 Mar 2015 13:06:09 GMT
|
35
41
|
recorded_with: VCR 2.9.3
|
@@ -2,7 +2,7 @@
|
|
2
2
|
http_interactions:
|
3
3
|
- request:
|
4
4
|
method: put
|
5
|
-
uri: http://localhost:8080/v2/apps//ubuntu2
|
5
|
+
uri: http://localhost:8080/v2/apps//ubuntu2?force=true
|
6
6
|
body:
|
7
7
|
encoding: UTF-8
|
8
8
|
string: '{"instances":2}'
|
@@ -11,11 +11,19 @@ http_interactions:
|
|
11
11
|
- application/json
|
12
12
|
Accept:
|
13
13
|
- application/json
|
14
|
+
User-Agent:
|
15
|
+
- ub0r/Marathon-API 1.1.0
|
14
16
|
response:
|
15
17
|
status:
|
16
18
|
code: 200
|
17
19
|
message: OK
|
18
20
|
headers:
|
21
|
+
Cache-Control:
|
22
|
+
- no-cache, no-store, must-revalidate
|
23
|
+
Pragma:
|
24
|
+
- no-cache
|
25
|
+
Expires:
|
26
|
+
- '0'
|
19
27
|
Content-Type:
|
20
28
|
- application/json
|
21
29
|
Transfer-Encoding:
|
@@ -24,9 +32,9 @@ http_interactions:
|
|
24
32
|
- Jetty(8.y.z-SNAPSHOT)
|
25
33
|
body:
|
26
34
|
encoding: UTF-8
|
27
|
-
string: '{"version":"2015-03-
|
35
|
+
string: '{"version":"2015-03-17T13:07:11.009Z","deploymentId":"442a4787-a964-4a16-889e-4fed7944ad7f"}'
|
28
36
|
http_version:
|
29
|
-
recorded_at: Tue,
|
37
|
+
recorded_at: Tue, 17 Mar 2015 13:07:11 GMT
|
30
38
|
- request:
|
31
39
|
method: put
|
32
40
|
uri: http://localhost:8080/v2/apps//ubuntu2?force=true
|
@@ -38,11 +46,19 @@ http_interactions:
|
|
38
46
|
- application/json
|
39
47
|
Accept:
|
40
48
|
- application/json
|
49
|
+
User-Agent:
|
50
|
+
- ub0r/Marathon-API 1.1.0
|
41
51
|
response:
|
42
52
|
status:
|
43
53
|
code: 200
|
44
54
|
message: OK
|
45
55
|
headers:
|
56
|
+
Cache-Control:
|
57
|
+
- no-cache, no-store, must-revalidate
|
58
|
+
Pragma:
|
59
|
+
- no-cache
|
60
|
+
Expires:
|
61
|
+
- '0'
|
46
62
|
Content-Type:
|
47
63
|
- application/json
|
48
64
|
Transfer-Encoding:
|
@@ -51,7 +67,7 @@ http_interactions:
|
|
51
67
|
- Jetty(8.y.z-SNAPSHOT)
|
52
68
|
body:
|
53
69
|
encoding: UTF-8
|
54
|
-
string: '{"version":"2015-03-
|
70
|
+
string: '{"version":"2015-03-17T13:07:11.094Z","deploymentId":"25c06868-441f-4af4-95aa-96e1862e8553"}'
|
55
71
|
http_version:
|
56
|
-
recorded_at: Tue,
|
72
|
+
recorded_at: Tue, 17 Mar 2015 13:07:11 GMT
|
57
73
|
recorded_with: VCR 2.9.3
|
@@ -12,12 +12,18 @@ http_interactions:
|
|
12
12
|
Accept:
|
13
13
|
- application/json
|
14
14
|
User-Agent:
|
15
|
-
- ub0r/Marathon-API
|
15
|
+
- ub0r/Marathon-API 1.1.0
|
16
16
|
response:
|
17
17
|
status:
|
18
18
|
code: 400
|
19
19
|
message: Bad Request
|
20
20
|
headers:
|
21
|
+
Cache-Control:
|
22
|
+
- no-cache, no-store, must-revalidate
|
23
|
+
Pragma:
|
24
|
+
- no-cache
|
25
|
+
Expires:
|
26
|
+
- '0'
|
21
27
|
Content-Type:
|
22
28
|
- application/json
|
23
29
|
Transfer-Encoding:
|
@@ -28,5 +34,5 @@ http_interactions:
|
|
28
34
|
encoding: UTF-8
|
29
35
|
string: '{"message":"Invalid JSON: JsResultException(errors:List((/instances,List(ValidationError(error.expected.jsnumber,WrappedArray())))))"}'
|
30
36
|
http_version:
|
31
|
-
recorded_at:
|
37
|
+
recorded_at: Tue, 17 Mar 2015 13:05:49 GMT
|
32
38
|
recorded_with: VCR 2.9.3
|
@@ -2,7 +2,7 @@
|
|
2
2
|
http_interactions:
|
3
3
|
- request:
|
4
4
|
method: delete
|
5
|
-
uri: http://localhost:8080/v2/apps//
|
5
|
+
uri: http://localhost:8080/v2/apps//test-app
|
6
6
|
body:
|
7
7
|
encoding: US-ASCII
|
8
8
|
string: ''
|
@@ -11,11 +11,19 @@ http_interactions:
|
|
11
11
|
- application/json
|
12
12
|
Accept:
|
13
13
|
- application/json
|
14
|
+
User-Agent:
|
15
|
+
- ub0r/Marathon-API 1.1.0
|
14
16
|
response:
|
15
17
|
status:
|
16
18
|
code: 200
|
17
19
|
message: OK
|
18
20
|
headers:
|
21
|
+
Cache-Control:
|
22
|
+
- no-cache, no-store, must-revalidate
|
23
|
+
Pragma:
|
24
|
+
- no-cache
|
25
|
+
Expires:
|
26
|
+
- '0'
|
19
27
|
Content-Type:
|
20
28
|
- application/json
|
21
29
|
Transfer-Encoding:
|
@@ -24,7 +32,7 @@ http_interactions:
|
|
24
32
|
- Jetty(8.y.z-SNAPSHOT)
|
25
33
|
body:
|
26
34
|
encoding: UTF-8
|
27
|
-
string: '{"version":"2015-03-
|
35
|
+
string: '{"version":"2015-03-17T13:05:39.285Z","deploymentId":"e5985d99-2106-40e2-962d-18cb18126269"}'
|
28
36
|
http_version:
|
29
|
-
recorded_at: Tue,
|
37
|
+
recorded_at: Tue, 17 Mar 2015 13:05:39 GMT
|
30
38
|
recorded_with: VCR 2.9.3
|
@@ -11,11 +11,19 @@ http_interactions:
|
|
11
11
|
- application/json
|
12
12
|
Accept:
|
13
13
|
- application/json
|
14
|
+
User-Agent:
|
15
|
+
- ub0r/Marathon-API 1.1.0
|
14
16
|
response:
|
15
17
|
status:
|
16
18
|
code: 404
|
17
19
|
message: Not Found
|
18
20
|
headers:
|
21
|
+
Cache-Control:
|
22
|
+
- no-cache, no-store, must-revalidate
|
23
|
+
Pragma:
|
24
|
+
- no-cache
|
25
|
+
Expires:
|
26
|
+
- '0'
|
19
27
|
Content-Type:
|
20
28
|
- application/json
|
21
29
|
Transfer-Encoding:
|
@@ -26,5 +34,5 @@ http_interactions:
|
|
26
34
|
encoding: UTF-8
|
27
35
|
string: '{"message":"App ''/fooo app'' does not exist"}'
|
28
36
|
http_version:
|
29
|
-
recorded_at:
|
37
|
+
recorded_at: Tue, 17 Mar 2015 13:05:39 GMT
|
30
38
|
recorded_with: VCR 2.9.3
|
@@ -11,11 +11,19 @@ http_interactions:
|
|
11
11
|
- application/json
|
12
12
|
Accept:
|
13
13
|
- application/json
|
14
|
+
User-Agent:
|
15
|
+
- ub0r/Marathon-API 1.1.0
|
14
16
|
response:
|
15
17
|
status:
|
16
18
|
code: 404
|
17
19
|
message: Not Found
|
18
20
|
headers:
|
21
|
+
Cache-Control:
|
22
|
+
- no-cache, no-store, must-revalidate
|
23
|
+
Pragma:
|
24
|
+
- no-cache
|
25
|
+
Expires:
|
26
|
+
- '0'
|
19
27
|
Content-Type:
|
20
28
|
- application/json
|
21
29
|
Transfer-Encoding:
|
@@ -26,5 +34,5 @@ http_interactions:
|
|
26
34
|
encoding: UTF-8
|
27
35
|
string: '{"message":"App ''/fooo app'' does not exist"}'
|
28
36
|
http_version:
|
29
|
-
recorded_at:
|
37
|
+
recorded_at: Tue, 17 Mar 2015 13:05:39 GMT
|
30
38
|
recorded_with: VCR 2.9.3
|
@@ -11,11 +11,19 @@ http_interactions:
|
|
11
11
|
- application/json
|
12
12
|
Accept:
|
13
13
|
- application/json
|
14
|
+
User-Agent:
|
15
|
+
- ub0r/Marathon-API 1.1.0
|
14
16
|
response:
|
15
17
|
status:
|
16
18
|
code: 200
|
17
19
|
message: OK
|
18
20
|
headers:
|
21
|
+
Cache-Control:
|
22
|
+
- no-cache, no-store, must-revalidate
|
23
|
+
Pragma:
|
24
|
+
- no-cache
|
25
|
+
Expires:
|
26
|
+
- '0'
|
19
27
|
Content-Type:
|
20
28
|
- application/json
|
21
29
|
Transfer-Encoding:
|
@@ -24,7 +32,7 @@ http_interactions:
|
|
24
32
|
- Jetty(8.y.z-SNAPSHOT)
|
25
33
|
body:
|
26
34
|
encoding: UTF-8
|
27
|
-
string: '{"app":{"id":"/ubuntu","cmd":"while sleep 10; do date -u +%T; done","args":null,"user":null,"env":{},"instances":1,"cpus":0.1,"mem":64.0,"disk":0.0,"executor":"","constraints":[],"uris":[],"storeUrls":[],"ports":[
|
35
|
+
string: '{"app":{"id":"/ubuntu","cmd":"while sleep 10; do date -u +%T; done","args":null,"user":null,"env":{},"instances":1,"cpus":0.1,"mem":64.0,"disk":0.0,"executor":"","constraints":[],"uris":[],"storeUrls":[],"ports":[],"requirePorts":false,"backoffSeconds":1,"backoffFactor":1.15,"maxLaunchDelaySeconds":3600,"container":{"type":"DOCKER","volumes":[],"docker":{"image":"libmesos/ubuntu","privileged":false,"parameters":[]}},"healthChecks":[],"dependencies":[],"upgradeStrategy":{"minimumHealthCapacity":1.0,"maximumOverCapacity":1.0},"labels":{},"version":"2015-03-17T11:56:26.532Z","tasksStaged":0,"tasksRunning":1,"tasksHealthy":0,"tasksUnhealthy":0,"deployments":[],"tasks":[{"id":"ubuntu.a6c4d769-cc9c-11e4-9cfc-080027d9edbf","host":"mesos-dev-f999999.lhotse.ov.otto.de","ports":[],"startedAt":"2015-03-17T11:56:36.225Z","stagedAt":"2015-03-17T11:56:31.284Z","version":"2015-03-17T11:56:26.532Z","appId":"/ubuntu"}],"lastTaskFailure":null}}'
|
28
36
|
http_version:
|
29
|
-
recorded_at: Tue,
|
37
|
+
recorded_at: Tue, 17 Mar 2015 13:05:39 GMT
|
30
38
|
recorded_with: VCR 2.9.3
|
@@ -11,11 +11,19 @@ http_interactions:
|
|
11
11
|
- application/json
|
12
12
|
Accept:
|
13
13
|
- application/json
|
14
|
+
User-Agent:
|
15
|
+
- ub0r/Marathon-API 1.1.0
|
14
16
|
response:
|
15
17
|
status:
|
16
18
|
code: 200
|
17
19
|
message: OK
|
18
20
|
headers:
|
21
|
+
Cache-Control:
|
22
|
+
- no-cache, no-store, must-revalidate
|
23
|
+
Pragma:
|
24
|
+
- no-cache
|
25
|
+
Expires:
|
26
|
+
- '0'
|
19
27
|
Content-Type:
|
20
28
|
- application/json
|
21
29
|
Transfer-Encoding:
|
@@ -24,9 +32,8 @@ http_interactions:
|
|
24
32
|
- Jetty(8.y.z-SNAPSHOT)
|
25
33
|
body:
|
26
34
|
encoding: UTF-8
|
27
|
-
string: '{"apps":[{"id":"/
|
28
|
-
sleep 10; do date -u +%T; done","args":null,"user":null,"env":{},"instances":1,"cpus":0.1,"mem":64.0,"disk":0.0,"executor":"","constraints":[],"uris":[],"storeUrls":[],"ports":[
|
29
|
-
sleep 10; do date -u +%T; done","args":null,"user":null,"env":{},"instances":1,"cpus":0.1,"mem":64.0,"disk":0.0,"executor":"","constraints":[],"uris":[],"storeUrls":[],"ports":[10001],"requirePorts":false,"backoffSeconds":1,"backoffFactor":1.15,"maxLaunchDelaySeconds":3600,"container":{"type":"DOCKER","volumes":[],"docker":{"image":"libmesos/ubuntu","privileged":false,"parameters":[]}},"healthChecks":[],"dependencies":[],"upgradeStrategy":{"minimumHealthCapacity":1.0,"maximumOverCapacity":1.0},"labels":{},"version":"2015-03-03T18:08:28.455Z","tasksStaged":0,"tasksRunning":1,"deployments":[]}]}'
|
35
|
+
string: '{"apps":[{"id":"/ubuntu","cmd":"while sleep 10; do date -u +%T; done","args":null,"user":null,"env":{},"instances":1,"cpus":0.1,"mem":64.0,"disk":0.0,"executor":"","constraints":[],"uris":[],"storeUrls":[],"ports":[],"requirePorts":false,"backoffSeconds":1,"backoffFactor":1.15,"maxLaunchDelaySeconds":3600,"container":{"type":"DOCKER","volumes":[],"docker":{"image":"libmesos/ubuntu","privileged":false,"parameters":[]}},"healthChecks":[],"dependencies":[],"upgradeStrategy":{"minimumHealthCapacity":1.0,"maximumOverCapacity":1.0},"labels":{},"version":"2015-03-17T11:56:26.532Z","tasksStaged":0,"tasksRunning":1,"tasksHealthy":0,"tasksUnhealthy":0,"deployments":[]},{"id":"/ubuntu2","cmd":"while
|
36
|
+
sleep 10; do date -u +%T; done","args":null,"user":null,"env":{},"instances":1,"cpus":0.1,"mem":64.0,"disk":0.0,"executor":"","constraints":[["hostname","GROUP_BY"]],"uris":[],"storeUrls":[],"ports":[],"requirePorts":false,"backoffSeconds":1,"backoffFactor":1.15,"maxLaunchDelaySeconds":3600,"container":{"type":"DOCKER","volumes":[],"docker":{"image":"libmesos/ubuntu","privileged":false,"parameters":[]}},"healthChecks":[],"dependencies":[],"upgradeStrategy":{"minimumHealthCapacity":1.0,"maximumOverCapacity":1.0},"labels":{},"version":"2015-03-17T13:04:37.200Z","tasksStaged":0,"tasksRunning":1,"tasksHealthy":0,"tasksUnhealthy":0,"deployments":[]}]}'
|
30
37
|
http_version:
|
31
|
-
recorded_at: Tue,
|
38
|
+
recorded_at: Tue, 17 Mar 2015 13:05:38 GMT
|
32
39
|
recorded_with: VCR 2.9.3
|
@@ -11,11 +11,19 @@ http_interactions:
|
|
11
11
|
- application/json
|
12
12
|
Accept:
|
13
13
|
- application/json
|
14
|
+
User-Agent:
|
15
|
+
- ub0r/Marathon-API 1.1.0
|
14
16
|
response:
|
15
17
|
status:
|
16
18
|
code: 404
|
17
19
|
message: Not Found
|
18
20
|
headers:
|
21
|
+
Cache-Control:
|
22
|
+
- no-cache, no-store, must-revalidate
|
23
|
+
Pragma:
|
24
|
+
- no-cache
|
25
|
+
Expires:
|
26
|
+
- '0'
|
19
27
|
Content-Type:
|
20
28
|
- application/json
|
21
29
|
Transfer-Encoding:
|
@@ -26,5 +34,5 @@ http_interactions:
|
|
26
34
|
encoding: UTF-8
|
27
35
|
string: '{"message":"App ''/fooo app'' does not exist"}'
|
28
36
|
http_version:
|
29
|
-
recorded_at:
|
37
|
+
recorded_at: Tue, 17 Mar 2015 13:05:39 GMT
|
30
38
|
recorded_with: VCR 2.9.3
|
@@ -12,12 +12,18 @@ http_interactions:
|
|
12
12
|
Accept:
|
13
13
|
- application/json
|
14
14
|
User-Agent:
|
15
|
-
- ub0r/Marathon-API
|
15
|
+
- ub0r/Marathon-API 1.1.0
|
16
16
|
response:
|
17
17
|
status:
|
18
18
|
code: 200
|
19
19
|
message: OK
|
20
20
|
headers:
|
21
|
+
Cache-Control:
|
22
|
+
- no-cache, no-store, must-revalidate
|
23
|
+
Pragma:
|
24
|
+
- no-cache
|
25
|
+
Expires:
|
26
|
+
- '0'
|
21
27
|
Content-Type:
|
22
28
|
- application/json
|
23
29
|
Transfer-Encoding:
|
@@ -26,7 +32,7 @@ http_interactions:
|
|
26
32
|
- Jetty(8.y.z-SNAPSHOT)
|
27
33
|
body:
|
28
34
|
encoding: UTF-8
|
29
|
-
string: '{"version":"2015-03-
|
35
|
+
string: '{"version":"2015-03-17T13:05:39.490Z","deploymentId":"f31c4fdf-ba97-4e45-a69b-48cc79f19706"}'
|
30
36
|
http_version:
|
31
|
-
recorded_at:
|
37
|
+
recorded_at: Tue, 17 Mar 2015 13:05:39 GMT
|
32
38
|
recorded_with: VCR 2.9.3
|
@@ -11,11 +11,19 @@ http_interactions:
|
|
11
11
|
- application/json
|
12
12
|
Accept:
|
13
13
|
- application/json
|
14
|
+
User-Agent:
|
15
|
+
- ub0r/Marathon-API 1.1.0
|
14
16
|
response:
|
15
17
|
status:
|
16
18
|
code: 404
|
17
19
|
message: Not Found
|
18
20
|
headers:
|
21
|
+
Cache-Control:
|
22
|
+
- no-cache, no-store, must-revalidate
|
23
|
+
Pragma:
|
24
|
+
- no-cache
|
25
|
+
Expires:
|
26
|
+
- '0'
|
19
27
|
Content-Type:
|
20
28
|
- application/json
|
21
29
|
Transfer-Encoding:
|
@@ -26,5 +34,5 @@ http_interactions:
|
|
26
34
|
encoding: UTF-8
|
27
35
|
string: '{"message":"App ''/fooo app'' does not exist"}'
|
28
36
|
http_version:
|
29
|
-
recorded_at:
|
37
|
+
recorded_at: Tue, 17 Mar 2015 13:05:39 GMT
|
30
38
|
recorded_with: VCR 2.9.3
|
@@ -5,19 +5,27 @@ http_interactions:
|
|
5
5
|
uri: http://localhost:8080/v2/apps
|
6
6
|
body:
|
7
7
|
encoding: UTF-8
|
8
|
-
string: '{"id":"/test","cmd":"sleep 10","instances":1,"cpus":0.1,"mem":32}'
|
8
|
+
string: '{"id":"/test-app","cmd":"sleep 10","instances":1,"cpus":0.1,"mem":32}'
|
9
9
|
headers:
|
10
10
|
Content-Type:
|
11
11
|
- application/json
|
12
12
|
Accept:
|
13
13
|
- application/json
|
14
|
+
User-Agent:
|
15
|
+
- ub0r/Marathon-API 1.1.0
|
14
16
|
response:
|
15
17
|
status:
|
16
18
|
code: 201
|
17
19
|
message: Created
|
18
20
|
headers:
|
21
|
+
Cache-Control:
|
22
|
+
- no-cache, no-store, must-revalidate
|
23
|
+
Pragma:
|
24
|
+
- no-cache
|
25
|
+
Expires:
|
26
|
+
- '0'
|
19
27
|
Location:
|
20
|
-
- http://localhost:8080/v2/apps/test
|
28
|
+
- http://localhost:8080/v2/apps/test-app
|
21
29
|
Content-Type:
|
22
30
|
- application/json
|
23
31
|
Transfer-Encoding:
|
@@ -26,7 +34,7 @@ http_interactions:
|
|
26
34
|
- Jetty(8.y.z-SNAPSHOT)
|
27
35
|
body:
|
28
36
|
encoding: UTF-8
|
29
|
-
string: '{"id":"/test","cmd":"sleep 10","args":null,"user":null,"env":{},"instances":1,"cpus":0.1,"mem":32.0,"disk":0.0,"executor":"","constraints":[],"uris":[],"storeUrls":[],"ports":[0],"requirePorts":false,"
|
37
|
+
string: '{"id":"/test-app","cmd":"sleep 10","args":null,"user":null,"env":{},"instances":1,"cpus":0.1,"mem":32.0,"disk":0.0,"executor":"","constraints":[],"uris":[],"storeUrls":[],"ports":[0],"requirePorts":false,"backoffFactor":1.15,"container":null,"healthChecks":[],"dependencies":[],"upgradeStrategy":{"minimumHealthCapacity":1.0,"maximumOverCapacity":1.0},"labels":{},"version":"2015-03-17T13:05:38.806Z","deployments":[{"id":"92294bd9-b2a5-48be-8d02-c594d4bf3a21"}],"tasks":[],"tasksStaged":0,"tasksRunning":0,"tasksHealthy":0,"tasksUnhealthy":0,"backoffSeconds":1,"maxLaunchDelaySeconds":3600}'
|
30
38
|
http_version:
|
31
|
-
recorded_at: Tue,
|
39
|
+
recorded_at: Tue, 17 Mar 2015 13:05:38 GMT
|
32
40
|
recorded_with: VCR 2.9.3
|