marathon-api 0.9.0

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.
Files changed (64) hide show
  1. checksums.yaml +7 -0
  2. data/.cane +3 -0
  3. data/.gitignore +7 -0
  4. data/.simplecov +5 -0
  5. data/.travis.yml +10 -0
  6. data/Gemfile +3 -0
  7. data/LICENSE +22 -0
  8. data/README.md +91 -0
  9. data/Rakefile +34 -0
  10. data/TESTING.md +49 -0
  11. data/fixtures/marathon_docker_sample.json +14 -0
  12. data/fixtures/marathon_docker_sample_2.json +14 -0
  13. data/fixtures/vcr/Marathon/_info/returns_the_info_hash.yml +30 -0
  14. data/fixtures/vcr/Marathon/_ping/ping/.yml +35 -0
  15. data/fixtures/vcr/Marathon_App/_changes/changes_the_app.yml +57 -0
  16. data/fixtures/vcr/Marathon_App/_changes/fails_with_stange_attributes.yml +32 -0
  17. data/fixtures/vcr/Marathon_App/_delete/deletes_the_app.yml +30 -0
  18. data/fixtures/vcr/Marathon_App/_delete/fails_deleting_not_existing_app.yml +30 -0
  19. data/fixtures/vcr/Marathon_App/_get/fails_getting_not_existing_app.yml +30 -0
  20. data/fixtures/vcr/Marathon_App/_get/gets_the_app.yml +30 -0
  21. data/fixtures/vcr/Marathon_App/_list/lists_apps.yml +32 -0
  22. data/fixtures/vcr/Marathon_App/_restart/fails_restarting_not_existing_app.yml +30 -0
  23. data/fixtures/vcr/Marathon_App/_start/fails_getting_not_existing_app.yml +30 -0
  24. data/fixtures/vcr/Marathon_App/_start/starts_the_app.yml +32 -0
  25. data/fixtures/vcr/Marathon_App/_tasks/has_tasks.yml +30 -0
  26. data/fixtures/vcr/Marathon_App/_version/gets_a_version.yml +61 -0
  27. data/fixtures/vcr/Marathon_App/_versions/gets_versions.yml +32 -0
  28. data/fixtures/vcr/Marathon_Deployment/_delete/deletes_deployments.yml +61 -0
  29. data/fixtures/vcr/Marathon_Deployment/_list/lists_deployments.yml +90 -0
  30. data/fixtures/vcr/Marathon_EventSubscriptions/_list/lists_callbacks.yml +30 -0
  31. data/fixtures/vcr/Marathon_EventSubscriptions/_register/registers_callback.yml +30 -0
  32. data/fixtures/vcr/Marathon_EventSubscriptions/_unregister/unregisters_callback.yml +30 -0
  33. data/fixtures/vcr/Marathon_Leader/_delete/delete/.yml +30 -0
  34. data/fixtures/vcr/Marathon_Leader/_get/get/.yml +30 -0
  35. data/fixtures/vcr/Marathon_Queue/_list/lists_queue.yml +33 -0
  36. data/fixtures/vcr/Marathon_Task/_delete/kills_a_tasks_of_an_app.yml +57 -0
  37. data/fixtures/vcr/Marathon_Task/_delete_all/kills_all_tasks_of_an_app.yml +30 -0
  38. data/fixtures/vcr/Marathon_Task/_get/gets_tasks_of_an_app.yml +30 -0
  39. data/fixtures/vcr/Marathon_Task/_list/lists_running_tasks.yml +30 -0
  40. data/fixtures/vcr/Marathon_Task/_list/lists_tasks.yml +30 -0
  41. data/lib/marathon.rb +65 -0
  42. data/lib/marathon/app.rb +200 -0
  43. data/lib/marathon/connection.rb +97 -0
  44. data/lib/marathon/deployment.rb +60 -0
  45. data/lib/marathon/error.rb +62 -0
  46. data/lib/marathon/event_subscriptions.rb +33 -0
  47. data/lib/marathon/leader.rb +19 -0
  48. data/lib/marathon/queue.rb +36 -0
  49. data/lib/marathon/task.rb +85 -0
  50. data/lib/marathon/util.rb +35 -0
  51. data/lib/marathon/version.rb +3 -0
  52. data/marathon-api.gemspec +31 -0
  53. data/spec/marathon/app_spec.rb +334 -0
  54. data/spec/marathon/connection_spec.rb +40 -0
  55. data/spec/marathon/deployment_spec.rb +95 -0
  56. data/spec/marathon/error_spec.rb +40 -0
  57. data/spec/marathon/event_subscriptions_spec.rb +37 -0
  58. data/spec/marathon/leader_spec.rb +21 -0
  59. data/spec/marathon/marathon_spec.rb +47 -0
  60. data/spec/marathon/queue_spec.rb +62 -0
  61. data/spec/marathon/task_spec.rb +100 -0
  62. data/spec/marathon/util_spec.rb +44 -0
  63. data/spec/spec_helper.rb +34 -0
  64. metadata +271 -0
@@ -0,0 +1,40 @@
1
+ require 'spec_helper'
2
+
3
+ describe Marathon::Error do
4
+
5
+ describe '.error_class' do
6
+ subject { described_class }
7
+
8
+ it 'returns ClientError on 400' do
9
+ expect(subject.error_class(Net::HTTPResponse.new(1.1, 400, 'Client Error')))
10
+ .to be(Marathon::Error::ClientError)
11
+ end
12
+
13
+ it 'returns NotFoundError on 404' do
14
+ expect(subject.error_class(Net::HTTPResponse.new(1.1, 404, 'Not Found')))
15
+ .to be(Marathon::Error::NotFoundError)
16
+ end
17
+
18
+ it 'returns UnexpectedResponseError anything else' do
19
+ expect(subject.error_class(Net::HTTPResponse.new(1.1, 599, 'Whatever')))
20
+ .to be(Marathon::Error::UnexpectedResponseError)
21
+ end
22
+ end
23
+
24
+ describe '.error_message' do
25
+ subject { described_class }
26
+
27
+ it 'returns "message" from respose json' do
28
+ r = { 'message' => 'fooo' }
29
+ expect(r).to receive(:parsed_response) { r }
30
+ expect(subject.error_message(r)).to eq('fooo')
31
+ end
32
+
33
+ it 'returns full body if not a hash with "message"' do
34
+ r = 'fooo'
35
+ expect(r).to receive(:parsed_response) { r }
36
+ expect(subject.error_message(r)).to eq('fooo')
37
+ end
38
+ end
39
+
40
+ end
@@ -0,0 +1,37 @@
1
+ require 'spec_helper'
2
+
3
+ describe Marathon::EventSubscriptions do
4
+
5
+ describe '.register' do
6
+ subject { described_class }
7
+
8
+ it 'registers callback', :vcr do
9
+ json = subject.register('http://localhost/events/foo')
10
+ expect(json).to be_instance_of(Hash)
11
+ expect(json['eventType']).to eq('subscribe_event')
12
+ expect(json['callbackUrl']).to eq('http://localhost/events/foo')
13
+ end
14
+ end
15
+
16
+ describe '.list' do
17
+ subject { described_class }
18
+
19
+ it 'lists callbacks', :vcr do
20
+ json = subject.list
21
+ expect(json).to be_instance_of(Array)
22
+ expect(json).to eq(['http://localhost/events/foo'])
23
+ end
24
+ end
25
+
26
+ describe '.unregister' do
27
+ subject { described_class }
28
+
29
+ it 'unregisters callback', :vcr do
30
+ json = subject.unregister('http://localhost/events/foo')
31
+ expect(json).to be_instance_of(Hash)
32
+ expect(json['eventType']).to eq('unsubscribe_event')
33
+ expect(json['callbackUrl']).to eq('http://localhost/events/foo')
34
+ end
35
+ end
36
+
37
+ end
@@ -0,0 +1,21 @@
1
+ require 'spec_helper'
2
+
3
+ describe Marathon::Leader do
4
+
5
+ describe '.get', :vcr do
6
+ subject { described_class }
7
+
8
+ let(:expected_string) { 'mesos:8080' }
9
+
10
+ its(:get) { should == expected_string }
11
+ end
12
+
13
+ describe '.delete', :vcr do
14
+ subject { described_class }
15
+
16
+ let(:expected_string) { 'Leadership abdicted' }
17
+
18
+ its(:delete) { should == expected_string }
19
+ end
20
+
21
+ end
@@ -0,0 +1,47 @@
1
+ require 'spec_helper'
2
+
3
+ describe Marathon do
4
+
5
+ describe '.url=' do
6
+ subject { described_class }
7
+
8
+ it 'sets new url' do
9
+ described_class.url = 'http://foo'
10
+ expect(described_class.url).to eq('http://foo')
11
+
12
+ # reset connection after running this spec
13
+ described_class.url = nil
14
+ end
15
+
16
+ it 'resets connection' do
17
+ old_connection = described_class.connection
18
+ described_class.url = 'http://bar'
19
+
20
+ expect(described_class.connection).not_to be(old_connection)
21
+
22
+ # reset connection after running this spec
23
+ described_class.url = nil
24
+ end
25
+ end
26
+
27
+ describe '.info' do
28
+ subject { described_class }
29
+
30
+ let(:info) { subject.info }
31
+ let(:keys) do
32
+ %w[ elected event_subscriber frameworkId http_config leader
33
+ marathon_config name version zookeeper_config ]
34
+ end
35
+
36
+ it 'returns the info hash', :vcr do
37
+ expect(info).to be_a Hash
38
+ expect(info.keys.sort).to eq keys
39
+ end
40
+ end
41
+
42
+ describe '.ping', :vcr do
43
+ subject { described_class }
44
+
45
+ its(:ping) { should == "pong\n" }
46
+ end
47
+ end
@@ -0,0 +1,62 @@
1
+ require 'spec_helper'
2
+
3
+ describe Marathon::Queue do
4
+
5
+ describe '#attributes' do
6
+ subject { described_class.new({
7
+ 'app' => { 'id' => '/app/foo' },
8
+ 'delay' => { 'overdue' => true }
9
+ }) }
10
+
11
+ it 'has app' do
12
+ expect(subject.app).to be_instance_of(Marathon::App)
13
+ expect(subject.app.id).to eq('/app/foo')
14
+ end
15
+
16
+ it 'has a read only app' do
17
+ expect(subject.app.read_only).to be(true)
18
+ end
19
+
20
+ it 'has delay' do
21
+ expect(subject.delay).to be_instance_of(Hash)
22
+ expect(subject.delay['overdue']).to be(true)
23
+ end
24
+ end
25
+
26
+ describe '#to_s' do
27
+ subject { described_class.new({
28
+ 'app' => { 'id' => '/app/foo' },
29
+ 'delay' => { 'overdue' => true }
30
+ }) }
31
+
32
+ let(:expected_string) do
33
+ 'Marathon::Queue { :appId => /app/foo :delay => {"overdue"=>true} }'
34
+ end
35
+
36
+ its(:to_s) { should == expected_string }
37
+ end
38
+
39
+ describe '#to_json' do
40
+ subject { described_class.new({
41
+ 'app' => { 'id' => '/app/foo' },
42
+ 'delay' => { 'overdue' => true }
43
+ }) }
44
+
45
+ let(:expected_string) do
46
+ '{"app":{"id":"/app/foo"},"delay":{"overdue":true}}'
47
+ end
48
+
49
+ its(:to_json) { should == expected_string }
50
+ end
51
+
52
+ describe '.list' do
53
+ subject { described_class }
54
+
55
+ it 'lists queue', :vcr do
56
+ queue = described_class.list
57
+ expect(queue).to be_instance_of(Array)
58
+ expect(queue.first).to be_instance_of(Marathon::Queue)
59
+ end
60
+ end
61
+
62
+ end
@@ -0,0 +1,100 @@
1
+ require 'spec_helper'
2
+
3
+ describe Marathon::Task do
4
+
5
+ describe '#to_s' do
6
+ subject { described_class.new({
7
+ 'id' => 'task-id-foo',
8
+ 'appId' => '/app/foo',
9
+ 'host' => 'foo-host',
10
+ }) }
11
+
12
+ let(:expected_string) do
13
+ "Marathon::Task { :id => task-id-foo :appId => /app/foo :host => foo-host }"
14
+ end
15
+
16
+ its(:to_s) { should == expected_string }
17
+ end
18
+
19
+ describe '#to_json' do
20
+ subject { described_class.new({
21
+ 'id' => 'task-id-foo',
22
+ 'appId' => '/app/foo',
23
+ 'host' => 'foo-host',
24
+ }) }
25
+
26
+ let(:expected_string) do
27
+ '{"id":"task-id-foo","appId":"/app/foo","host":"foo-host"}'
28
+ end
29
+
30
+ its(:to_json) { should == expected_string }
31
+ end
32
+
33
+ describe '#delete!' do
34
+ let(:task) { described_class.new({
35
+ 'id' => 'task_123', 'appId' => '/app/foo'
36
+ }) }
37
+
38
+ it 'deletes the task' do
39
+ expect(described_class).to receive(:delete).with('/app/foo', 'task_123', false) do
40
+ described_class.new({
41
+ 'id' => 'task_123', 'appId' => '/app/foo', 'deleted' => true
42
+ })
43
+ end
44
+ task.delete!
45
+ expect(task.info['deleted']).to be(true)
46
+ end
47
+ end
48
+
49
+ describe '.list' do
50
+ subject { described_class }
51
+
52
+ it 'raises error when run with strange status' do
53
+ expect {
54
+ described_class.list('foo')
55
+ }.to raise_error(Marathon::Error::ArgumentError)
56
+ end
57
+
58
+ it 'lists tasks', :vcr do
59
+ tasks = described_class.list
60
+ expect(tasks.size).to be_within(1).of(2)
61
+ expect(tasks.first).to be_instance_of(described_class)
62
+ end
63
+
64
+ it 'lists running tasks', :vcr do
65
+ tasks = described_class.list('running')
66
+ expect(tasks.size).to be_within(1).of(2)
67
+ expect(tasks.first).to be_instance_of(described_class)
68
+ end
69
+ end
70
+
71
+ describe '.get' do
72
+ subject { described_class }
73
+
74
+ it 'gets tasks of an app', :vcr do
75
+ tasks = described_class.get('/ubuntu2')
76
+ expect(tasks.size).to eq(1)
77
+ expect(tasks.first).to be_instance_of(described_class)
78
+ expect(tasks.first.appId).to eq('/ubuntu2')
79
+ end
80
+ end
81
+
82
+ describe '.delete' do
83
+ subject { described_class }
84
+
85
+ it 'kills a tasks of an app', :vcr do
86
+ tasks = described_class.get('/ubuntu2')
87
+ task = described_class.delete('/ubuntu2', tasks.first.id)
88
+ task.id == tasks.first.id
89
+ end
90
+ end
91
+
92
+ describe '.delete_all' do
93
+ subject { described_class }
94
+
95
+ it 'kills all tasks of an app', :vcr do
96
+ described_class.delete_all('/ubuntu2')
97
+ end
98
+ end
99
+
100
+ end
@@ -0,0 +1,44 @@
1
+ require 'spec_helper'
2
+
3
+ describe Marathon::Util do
4
+
5
+ describe '.validate_choice' do
6
+ subject { described_class }
7
+
8
+ it 'passes with valid value' do
9
+ described_class.validate_choice('foo', 'bar', %w[f00 bar], false)
10
+ end
11
+
12
+ it 'passes with nil value' do
13
+ described_class.validate_choice('foo', nil, %w[f00], true)
14
+ end
15
+
16
+ it 'fails with nil value' do
17
+ expect {
18
+ described_class.validate_choice('foo', nil, %w[f00], false)
19
+ }.to raise_error(Marathon::Error::ArgumentError)
20
+ end
21
+
22
+ it 'fails with invalid value' do
23
+ expect {
24
+ described_class.validate_choice('foo', 'bar', %w[f00], false)
25
+ }.to raise_error(Marathon::Error::ArgumentError)
26
+ end
27
+ end
28
+
29
+ describe '.add_choice' do
30
+ subject { described_class }
31
+
32
+ it 'validates choice first' do
33
+ expect(described_class).to receive(:validate_choice).with('foo', 'bar', %w[f00 bar], false)
34
+ described_class.add_choice({}, 'foo', 'bar', %w[f00 bar], false)
35
+ end
36
+
37
+ it 'adds choice' do
38
+ opts = {}
39
+ described_class.add_choice(opts, 'foo', 'bar', %w[f00 bar], false)
40
+ expect(opts['foo']).to eq('bar')
41
+ end
42
+ end
43
+
44
+ end
@@ -0,0 +1,34 @@
1
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
2
+
3
+ require 'rspec'
4
+ require 'rspec/its'
5
+ require 'simplecov'
6
+ require 'vcr'
7
+ require 'webmock'
8
+ require 'marathon'
9
+ require 'codeclimate-test-reporter'
10
+
11
+ CodeClimate::TestReporter.start
12
+
13
+ VCR.configure do |c|
14
+ c.ignore_hosts 'codeclimate.com'
15
+ c.allow_http_connections_when_no_cassette = false
16
+ c.cassette_library_dir = "fixtures/vcr"
17
+ c.hook_into :webmock
18
+ c.configure_rspec_metadata!
19
+ end
20
+
21
+ RSpec.shared_context "local paths" do
22
+ def project_dir
23
+ File.expand_path(File.join(File.dirname(__FILE__), '..'))
24
+ end
25
+ end
26
+
27
+ Dir["#{File.dirname(__FILE__)}/support/**/*.rb"].each { |f| require f }
28
+
29
+ RSpec.configure do |c|
30
+ c.mock_with :rspec
31
+ c.color = true
32
+ c.formatter = :documentation
33
+ c.tty = true
34
+ end
metadata ADDED
@@ -0,0 +1,271 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: marathon-api
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.9.0
5
+ platform: ruby
6
+ authors:
7
+ - Felix Bechstein
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+ date: 2015-03-06 00:00:00.000000000 Z
12
+ dependencies:
13
+ - !ruby/object:Gem::Dependency
14
+ name: json
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '0'
27
+ - !ruby/object:Gem::Dependency
28
+ name: httparty
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0.11'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0.11'
41
+ - !ruby/object:Gem::Dependency
42
+ name: rake
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '0'
48
+ type: :development
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: rspec
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '3.0'
62
+ type: :development
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '3.0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: rspec-its
71
+ requirement: !ruby/object:Gem::Requirement
72
+ requirements:
73
+ - - ">="
74
+ - !ruby/object:Gem::Version
75
+ version: '0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - ">="
81
+ - !ruby/object:Gem::Version
82
+ version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: vcr
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - ">="
88
+ - !ruby/object:Gem::Version
89
+ version: 2.7.0
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - ">="
95
+ - !ruby/object:Gem::Version
96
+ version: 2.7.0
97
+ - !ruby/object:Gem::Dependency
98
+ name: webmock
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: '0'
104
+ type: :development
105
+ prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ">="
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
111
+ - !ruby/object:Gem::Dependency
112
+ name: pry
113
+ requirement: !ruby/object:Gem::Requirement
114
+ requirements:
115
+ - - ">="
116
+ - !ruby/object:Gem::Version
117
+ version: '0'
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ requirements:
122
+ - - ">="
123
+ - !ruby/object:Gem::Version
124
+ version: '0'
125
+ - !ruby/object:Gem::Dependency
126
+ name: cane
127
+ requirement: !ruby/object:Gem::Requirement
128
+ requirements:
129
+ - - ">="
130
+ - !ruby/object:Gem::Version
131
+ version: '0'
132
+ type: :development
133
+ prerelease: false
134
+ version_requirements: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - ">="
137
+ - !ruby/object:Gem::Version
138
+ version: '0'
139
+ - !ruby/object:Gem::Dependency
140
+ name: simplecov
141
+ requirement: !ruby/object:Gem::Requirement
142
+ requirements:
143
+ - - ">="
144
+ - !ruby/object:Gem::Version
145
+ version: '0'
146
+ type: :development
147
+ prerelease: false
148
+ version_requirements: !ruby/object:Gem::Requirement
149
+ requirements:
150
+ - - ">="
151
+ - !ruby/object:Gem::Version
152
+ version: '0'
153
+ - !ruby/object:Gem::Dependency
154
+ name: codeclimate-test-reporter
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - ">="
158
+ - !ruby/object:Gem::Version
159
+ version: '0'
160
+ type: :development
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - ">="
165
+ - !ruby/object:Gem::Version
166
+ version: '0'
167
+ description: A simple REST client for the Marathon Remote API
168
+ email:
169
+ - f@ub0r.de
170
+ executables: []
171
+ extensions: []
172
+ extra_rdoc_files: []
173
+ files:
174
+ - ".cane"
175
+ - ".gitignore"
176
+ - ".simplecov"
177
+ - ".travis.yml"
178
+ - Gemfile
179
+ - LICENSE
180
+ - README.md
181
+ - Rakefile
182
+ - TESTING.md
183
+ - fixtures/marathon_docker_sample.json
184
+ - fixtures/marathon_docker_sample_2.json
185
+ - fixtures/vcr/Marathon/_info/returns_the_info_hash.yml
186
+ - fixtures/vcr/Marathon/_ping/ping/.yml
187
+ - fixtures/vcr/Marathon_App/_changes/changes_the_app.yml
188
+ - fixtures/vcr/Marathon_App/_changes/fails_with_stange_attributes.yml
189
+ - fixtures/vcr/Marathon_App/_delete/deletes_the_app.yml
190
+ - fixtures/vcr/Marathon_App/_delete/fails_deleting_not_existing_app.yml
191
+ - fixtures/vcr/Marathon_App/_get/fails_getting_not_existing_app.yml
192
+ - fixtures/vcr/Marathon_App/_get/gets_the_app.yml
193
+ - fixtures/vcr/Marathon_App/_list/lists_apps.yml
194
+ - fixtures/vcr/Marathon_App/_restart/fails_restarting_not_existing_app.yml
195
+ - fixtures/vcr/Marathon_App/_start/fails_getting_not_existing_app.yml
196
+ - fixtures/vcr/Marathon_App/_start/starts_the_app.yml
197
+ - fixtures/vcr/Marathon_App/_tasks/has_tasks.yml
198
+ - fixtures/vcr/Marathon_App/_version/gets_a_version.yml
199
+ - fixtures/vcr/Marathon_App/_versions/gets_versions.yml
200
+ - fixtures/vcr/Marathon_Deployment/_delete/deletes_deployments.yml
201
+ - fixtures/vcr/Marathon_Deployment/_list/lists_deployments.yml
202
+ - fixtures/vcr/Marathon_EventSubscriptions/_list/lists_callbacks.yml
203
+ - fixtures/vcr/Marathon_EventSubscriptions/_register/registers_callback.yml
204
+ - fixtures/vcr/Marathon_EventSubscriptions/_unregister/unregisters_callback.yml
205
+ - fixtures/vcr/Marathon_Leader/_delete/delete/.yml
206
+ - fixtures/vcr/Marathon_Leader/_get/get/.yml
207
+ - fixtures/vcr/Marathon_Queue/_list/lists_queue.yml
208
+ - fixtures/vcr/Marathon_Task/_delete/kills_a_tasks_of_an_app.yml
209
+ - fixtures/vcr/Marathon_Task/_delete_all/kills_all_tasks_of_an_app.yml
210
+ - fixtures/vcr/Marathon_Task/_get/gets_tasks_of_an_app.yml
211
+ - fixtures/vcr/Marathon_Task/_list/lists_running_tasks.yml
212
+ - fixtures/vcr/Marathon_Task/_list/lists_tasks.yml
213
+ - lib/marathon.rb
214
+ - lib/marathon/app.rb
215
+ - lib/marathon/connection.rb
216
+ - lib/marathon/deployment.rb
217
+ - lib/marathon/error.rb
218
+ - lib/marathon/event_subscriptions.rb
219
+ - lib/marathon/leader.rb
220
+ - lib/marathon/queue.rb
221
+ - lib/marathon/task.rb
222
+ - lib/marathon/util.rb
223
+ - lib/marathon/version.rb
224
+ - marathon-api.gemspec
225
+ - spec/marathon/app_spec.rb
226
+ - spec/marathon/connection_spec.rb
227
+ - spec/marathon/deployment_spec.rb
228
+ - spec/marathon/error_spec.rb
229
+ - spec/marathon/event_subscriptions_spec.rb
230
+ - spec/marathon/leader_spec.rb
231
+ - spec/marathon/marathon_spec.rb
232
+ - spec/marathon/queue_spec.rb
233
+ - spec/marathon/task_spec.rb
234
+ - spec/marathon/util_spec.rb
235
+ - spec/spec_helper.rb
236
+ homepage: https://github.com/felixb/marathon-api
237
+ licenses:
238
+ - MIT
239
+ metadata: {}
240
+ post_install_message:
241
+ rdoc_options: []
242
+ require_paths:
243
+ - lib
244
+ required_ruby_version: !ruby/object:Gem::Requirement
245
+ requirements:
246
+ - - ">="
247
+ - !ruby/object:Gem::Version
248
+ version: '0'
249
+ required_rubygems_version: !ruby/object:Gem::Requirement
250
+ requirements:
251
+ - - ">="
252
+ - !ruby/object:Gem::Version
253
+ version: '0'
254
+ requirements: []
255
+ rubyforge_project:
256
+ rubygems_version: 2.2.2
257
+ signing_key:
258
+ specification_version: 4
259
+ summary: A simple REST client for the Marathon Remote API
260
+ test_files:
261
+ - spec/marathon/app_spec.rb
262
+ - spec/marathon/connection_spec.rb
263
+ - spec/marathon/deployment_spec.rb
264
+ - spec/marathon/error_spec.rb
265
+ - spec/marathon/event_subscriptions_spec.rb
266
+ - spec/marathon/leader_spec.rb
267
+ - spec/marathon/marathon_spec.rb
268
+ - spec/marathon/queue_spec.rb
269
+ - spec/marathon/task_spec.rb
270
+ - spec/marathon/util_spec.rb
271
+ - spec/spec_helper.rb