marathon_deploy 0.1.22 → 0.1.23

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,7 @@
1
1
  ---
2
- !binary "U0hBMQ==":
3
- metadata.gz: !binary |-
4
- MDMxZGExZTk4MmJiZGM0OGNjZWQ1OGUwMjRhMDA1N2Y1YjZjMzE0ZA==
5
- data.tar.gz: !binary |-
6
- Njc3NDdkODRiMGI4NTdkNTY3ODA1MDY5YTczMzhjZmFhODEyYzE1Yw==
2
+ SHA1:
3
+ metadata.gz: b5424c19a4cb6ddf134183ae15e02747ceb555c1
4
+ data.tar.gz: 2b092d745a2704547a27eae28faef541436b3ee5
7
5
  SHA512:
8
- metadata.gz: !binary |-
9
- MmY2M2ExODdkYjY4YTI5OGU3YjUxNjZiMmMxYTRmMjQwMGNkNzQ1ZTllNmQ1
10
- YzUxMGFiYWU1NDM1ZGRmYjdlNzhkOTlmZTE0ZTgwY2IyZTUzN2Q5MTI0MjFj
11
- ZjM4ZjVmMGIxNjI2ODY5MzFkZmI3YzhiYTU3ZGY5NTI4NGE3ZTk=
12
- data.tar.gz: !binary |-
13
- NTE5YzFlYWVlMmVhNTczNTc4YzBhZmIxMzM1NjczMDhlMGE5YmQ1NGYzNzdh
14
- OGNkNjlmOTg3YWFjNGI2NTgzN2VmNWM2YzQ0MWFkY2EyYWM5MjdlOTBhNzA2
15
- OTAyODQwMGZiNjg4ZWM5NjY4MGMyOGQ2N2MwNDJiNGI4ZDFkNDg=
6
+ metadata.gz: 5c1a1e98f5181b9bcc454b754d3d205ae58091ac258da50e4786b3e33d48fc5531955ffd73377cc819e03b69d4aefb530a629b59ff1ad93924c03a435acd87f5
7
+ data.tar.gz: aceceea60e09fe80aedbbd9d9c8fb0ff9ae7369062723741df973445284df2f35abb734f244dc0e0c30e38d7093304791ba59a49350726f6b8a34ee3b273cc01
@@ -33,6 +33,14 @@ module MarathonDeploy
33
33
  message = "File extension #{extension} is not supported for deployment file #{deployfile}"
34
34
  raise Error::UnsupportedFileExtension, message, caller
35
35
  end
36
+
37
+ # JSON fix for marathon
38
+ # marathon require ENV variables to be quoted
39
+ @json['env'].each do |key , value|
40
+ if (value.is_a? Integer)
41
+ @json['env'][key] = value.to_json
42
+ end
43
+ end
36
44
 
37
45
  missing_attributes = MarathonDefaults.missing_attributes(@json)
38
46
 
@@ -99,4 +107,4 @@ module MarathonDeploy
99
107
  end
100
108
 
101
109
  end
102
- end
110
+ end
@@ -56,7 +56,7 @@ module MarathonDeploy
56
56
 
57
57
  data.each do |line|
58
58
  macros.each do |m|
59
- env_value = ENV[strip(m)].to_json
59
+ env_value = ENV[strip(m)]
60
60
  line.gsub!(m, env_value)
61
61
  end
62
62
  processed += line
@@ -1,3 +1,3 @@
1
1
  module MarathonDeploy
2
- VERSION = "0.1.22"
2
+ VERSION = "0.1.23"
3
3
  end
@@ -0,0 +1,33 @@
1
+ ---
2
+ id: python-example-stable
3
+ cmd: echo python stable `hostname` > index.html; python3 -m http.server 8080
4
+ mem: 16
5
+ cpus: 0.1
6
+ instances: 5
7
+ container:
8
+ type: DOCKER
9
+ docker:
10
+ image: %%DOCKER_IMAGE_NAME%%:%%DOCKER_IMAGE_VERSION%%
11
+ network: BRIDGE
12
+ portMappings:
13
+ - containerPort: 8080
14
+ hostPort: 0
15
+ protocol: tcp
16
+ env:
17
+ SERVICE_TAGS: python,webapp,http,weight=100
18
+ SERVICE_NAME: python
19
+ RELEASE_VERSION: %%RELEASE_VERSION%%
20
+ healthChecks:
21
+ - portIndex: 0
22
+ protocol: TCP
23
+ gracePeriodSeconds: 30
24
+ intervalSeconds: 10
25
+ timeoutSeconds: 30
26
+ maxConsecutiveFailures: 3
27
+ - path: "/"
28
+ portIndex: 0
29
+ protocol: HTTP
30
+ gracePeriodSeconds: 30
31
+ intervalSeconds: 10
32
+ timeoutSeconds: 30
33
+ maxConsecutiveFailures: 3
@@ -0,0 +1,22 @@
1
+ require 'test_helper'
2
+
3
+ class MacroTest < Minitest::Test
4
+
5
+ def setup
6
+ $LOG = Logger.new(STDOUT)
7
+ $LOG.level = Logger::INFO
8
+ @yml = File.expand_path('../fixtures/macros.yml',__FILE__)
9
+ @docker_image_name = 'ubuntu'
10
+ @docker_image_version = '14.04'
11
+ @release_version = "TEST_VERSION_#{Time.now.utc.iso8601}"
12
+ ENV['DOCKER_IMAGE_NAME'] = @docker_image_name
13
+ ENV['DOCKER_IMAGE_VERSION'] = @docker_image_version
14
+ ENV['RELEASE_VERSION'] = @release_version
15
+ end
16
+
17
+ def test_macro_processing
18
+ result = YAML.load(MarathonDeploy::Macro.process_macros(@yml))
19
+ assert_equal("#{@docker_image_name}:#{@docker_image_version}",result['container']['docker']['image'])
20
+ assert_equal("#{@release_version}",result['env']['RELEASE_VERSION'])
21
+ end
22
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: marathon_deploy
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.22
4
+ version: 0.1.23
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jonathan Colby
@@ -14,98 +14,98 @@ dependencies:
14
14
  name: logger
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ! '>='
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: '0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ! '>='
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: json
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ! '>='
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0'
34
34
  type: :runtime
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ! '>='
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: bundler
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - ~>
45
+ - - "~>"
46
46
  - !ruby/object:Gem::Version
47
47
  version: '1.7'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - ~>
52
+ - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '1.7'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: rake
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ~>
59
+ - - "~>"
60
60
  - !ruby/object:Gem::Version
61
61
  version: '10.0'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ~>
66
+ - - "~>"
67
67
  - !ruby/object:Gem::Version
68
68
  version: '10.0'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: minitest
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - ~>
73
+ - - "~>"
74
74
  - !ruby/object:Gem::Version
75
75
  version: '5.7'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - ~>
80
+ - - "~>"
81
81
  - !ruby/object:Gem::Version
82
82
  version: '5.7'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: yard
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - ! '>='
87
+ - - ">="
88
88
  - !ruby/object:Gem::Version
89
89
  version: '0'
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - ! '>='
94
+ - - ">="
95
95
  - !ruby/object:Gem::Version
96
96
  version: '0'
97
97
  - !ruby/object:Gem::Dependency
98
98
  name: travis
99
99
  requirement: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - ! '>='
101
+ - - ">="
102
102
  - !ruby/object:Gem::Version
103
103
  version: '0'
104
104
  type: :development
105
105
  prerelease: false
106
106
  version_requirements: !ruby/object:Gem::Requirement
107
107
  requirements:
108
- - - ! '>='
108
+ - - ">="
109
109
  - !ruby/object:Gem::Version
110
110
  version: '0'
111
111
  description: Pushes a yaml or json file to the Marathon API.
@@ -118,8 +118,8 @@ executables:
118
118
  extensions: []
119
119
  extra_rdoc_files: []
120
120
  files:
121
- - .gitignore
122
- - .travis.yml
121
+ - ".gitignore"
122
+ - ".travis.yml"
123
123
  - Gemfile
124
124
  - LICENSE.txt
125
125
  - NOTES
@@ -190,6 +190,8 @@ files:
190
190
  - test/environment_test.rb
191
191
  - test/fixtures/deploy.json
192
192
  - test/fixtures/deploy.yml
193
+ - test/fixtures/macros.yml
194
+ - test/macro_test.rb
193
195
  - test/test_helper.rb
194
196
  homepage: https://github.com/joncolby/marathon_deploy
195
197
  licenses:
@@ -201,17 +203,17 @@ require_paths:
201
203
  - lib
202
204
  required_ruby_version: !ruby/object:Gem::Requirement
203
205
  requirements:
204
- - - ! '>='
206
+ - - ">="
205
207
  - !ruby/object:Gem::Version
206
208
  version: '0'
207
209
  required_rubygems_version: !ruby/object:Gem::Requirement
208
210
  requirements:
209
- - - ! '>='
211
+ - - ">="
210
212
  - !ruby/object:Gem::Version
211
213
  version: '0'
212
214
  requirements: []
213
215
  rubyforge_project:
214
- rubygems_version: 2.4.5
216
+ rubygems_version: 2.4.6
215
217
  signing_key:
216
218
  specification_version: 4
217
219
  summary: Mesos/Marathon deployment tool.
@@ -220,5 +222,7 @@ test_files:
220
222
  - test/environment_test.rb
221
223
  - test/fixtures/deploy.json
222
224
  - test/fixtures/deploy.yml
225
+ - test/fixtures/macros.yml
226
+ - test/macro_test.rb
223
227
  - test/test_helper.rb
224
228
  has_rdoc: