marathon-api 1.2.4 → 1.2.5

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9835344dde411ccfcafb295094621b8b590e3eff
4
- data.tar.gz: 563a4c105700eb6c9cb7b5d860ef7d0348e3452a
3
+ metadata.gz: 2bcd9ae14a3459ba8f19f3be38d2f1aa5bdb5746
4
+ data.tar.gz: d3c3091fcdc97ecab48f942588bcba2b8cdeed43
5
5
  SHA512:
6
- metadata.gz: ad19835b6dc49083c1887d97acc9efef31d08053ab76b04cb8435768c2bc8e60632df9bc7b1f978a9f84f2a5fc0b709e3865c8e2692203beb1863619badcd31d
7
- data.tar.gz: 481001f8dbca716bdab68114e6d43e99238dbd2b88d2db54ce135e2b1ecb32a565cb51eafdf60393ea03d283670ca8727d270a376845daa30503c5c5e347e7d2
6
+ metadata.gz: c16b9ee84d8b507a4c62c8a29b63e2922be7b519986a513b63331241b3f77a27d7d200e2c29d557a4123bb9ad44f1e9c25e64fd2fb4acc16c1610fbcd6ea8a37
7
+ data.tar.gz: 487c87de5f3a68325c8f421e4006f86f892166ce694d0c4d603cc024390e252ff2339eea2ceda78bed5893f0cb85fbbaa27c4f216c6cc8b48846abd0a331fefc
@@ -3,7 +3,8 @@
3
3
  class Marathon::App < Marathon::Base
4
4
 
5
5
  ACCESSORS = %w[ id args cmd cpus disk env executor instances mem ports requirePorts
6
- storeUris tasksHealthy tasksUnhealthy tasksRunning tasksStaged upgradeStrategy uris user version ]
6
+ storeUris tasksHealthy tasksUnhealthy tasksRunning tasksStaged upgradeStrategy
7
+ uris user version labels ]
7
8
 
8
9
  DEFAULTS = {
9
10
  :env => {},
@@ -122,15 +123,22 @@ Instances: #{tasks.size}/#{instances}
122
123
  Command: #{cmd}
123
124
  CPUs: #{cpus}
124
125
  Memory: #{mem} MB
125
- #{pretty_uris()}
126
- #{pretty_env()}
127
- #{pretty_constraints()}
126
+ #{pretty_container}
127
+ #{pretty_uris}
128
+ #{pretty_env}
129
+ #{pretty_constraints}
128
130
  Version: #{version}
129
131
  ].gsub(/\n\n+/, "\n").strip
130
132
  end
131
133
 
132
134
  private
133
135
 
136
+ def pretty_container
137
+ if container and container.docker
138
+ "Docker: #{container.docker.to_pretty_s}"
139
+ end
140
+ end
141
+
134
142
  def pretty_env
135
143
  env.map { |k,v| "ENV: #{k}=#{v}" }.join("\n")
136
144
  end
@@ -214,7 +222,7 @@ Version: #{version}
214
222
  def change(id, hash, force = false)
215
223
  query = {}
216
224
  query[:force] = true if force
217
- json = Marathon.connection.put("/v2/apps/#{id}", query, :body => hash)
225
+ json = Marathon.connection.put("/v2/apps/#{id}", query, :body => hash.merge(:id => id))
218
226
  Marathon::DeploymentInfo.new(json)
219
227
  end
220
228
 
@@ -2,7 +2,7 @@
2
2
  # See https://mesosphere.github.io/marathon/docs/native-docker.html for full details.
3
3
  class Marathon::ContainerDocker < Marathon::Base
4
4
 
5
- ACCESSORS = %w[ image network ]
5
+ ACCESSORS = %w[ image network privileged parameters ]
6
6
  DEFAULTS = {
7
7
  :network => 'BRIDGE',
8
8
  :portMappings => []
@@ -15,6 +15,7 @@ class Marathon::ContainerDocker < Marathon::Base
15
15
  def initialize(hash)
16
16
  super(Marathon::Util.merge_keywordized_hash(DEFAULTS, hash), ACCESSORS)
17
17
  Marathon::Util.validate_choice('network', network, %w[BRIDGE HOST])
18
+ Marathon::Util.validate_choice('privileged', privileged, ['true', 'false', true, false])
18
19
  raise Marathon::Error::ArgumentError, 'image must not be nil' unless image
19
20
  @portMappings = (info[:portMappings] || []).map { |e| Marathon::ContainerDockerPortMapping.new(e) }
20
21
  end
@@ -1,3 +1,3 @@
1
1
  module Marathon
2
- VERSION = '1.2.4'
2
+ VERSION = '1.2.5'
3
3
  end
@@ -7,6 +7,9 @@ describe Marathon::App do
7
7
  'id' => '/app/foo',
8
8
  'instances' => 1,
9
9
  'tasks' => [],
10
+ 'container' => {
11
+ :type => 'DOCKER', 'docker' => { 'image' => 'foo/bar:latest' },
12
+ },
10
13
  'env' => {'FOO' => 'BAR', 'blubb' => 'blah'},
11
14
  'constraints' => [['hostname', 'UNIQUE']],
12
15
  'uris' => ['http://example.com/big.tar'],
@@ -23,6 +26,7 @@ describe Marathon::App do
23
26
  "Command: \n" + \
24
27
  "CPUs: \n" + \
25
28
  "Memory: MB\n" + \
29
+ "Docker: foo/bar:latest\n" + \
26
30
  "URI: http://example.com/big.tar\n" + \
27
31
  "ENV: FOO=BAR\n" + \
28
32
  "ENV: blubb=blah\n" + \
@@ -72,6 +76,16 @@ describe Marathon::App do
72
76
  end
73
77
  end
74
78
 
79
+ describe '#labels' do
80
+ subject { described_class.new({ 'id' => '/ubuntu2', 'labels' => { 'env'=>'abc','xyz'=>'123'}}) }
81
+
82
+ it 'has labels' do
83
+ expect(subject.labels).to be_instance_of(Hash)
84
+ puts subject.labels
85
+ expect(subject.labels).to have_key(:env)
86
+ end
87
+ end
88
+
75
89
  describe '#constraints' do
76
90
  subject { described_class.new({ 'id' => '/ubuntu2', 'healthChecks' => [{ 'path' => '/ping' }] }) }
77
91
 
@@ -1,8 +1,9 @@
1
1
  require 'spec_helper'
2
2
 
3
3
  CONTAINER_DOCKER_EXAMPLE = {
4
- :network => 'HOST',
5
- :image => 'felixb/yocto-httpd'
4
+ :network => 'HOST',
5
+ :image => 'felixb/yocto-httpd',
6
+ :privileged => false
6
7
  }
7
8
 
8
9
  describe Marathon::ContainerDocker do
@@ -26,6 +27,17 @@ describe Marathon::ContainerDocker do
26
27
 
27
28
  its(:network) { should == 'HOST' }
28
29
  its(:image) { should == 'felixb/yocto-httpd' }
30
+ its(:portMappings){ should == [] }
31
+ its(:privileged){ should == false}
32
+ end
33
+ describe '#privileged' do
34
+ subject { described_class.new({
35
+ :network => 'HOST',
36
+ :image => 'felixb/yocto-httpd',
37
+ :privileged => true
38
+ })
39
+ }
40
+ its(:privileged){ should == true}
29
41
  end
30
42
 
31
43
  describe '#to_s' do
@@ -39,4 +51,4 @@ describe Marathon::ContainerDocker do
39
51
  its(:to_pretty_s) { should == 'felixb/yocto-httpd' }
40
52
  end
41
53
 
42
- end
54
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: marathon-api
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.2.4
4
+ version: 1.2.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - Felix Bechstein
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-04-29 00:00:00.000000000 Z
11
+ date: 2015-06-15 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: json