marathon_deploy 0.1.49 → 0.1.50
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:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f756c9936eefbd912e30c63e7d6f92ced9cbd878
|
4
|
+
data.tar.gz: 9850ae0570fa9cd09334bf443ecf1ac2aac5f39a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 45284e7b60f096f5de4ee4cd7c50717fa7f4080766cba750914033998458642e0451b7968c1f9dee4e82fc08b07ad941327d20473b5f7b392645a4a32bd3e225
|
7
|
+
data.tar.gz: 4b19afdcd201eca3d20926532098b2c595d95572c102cd9fe569eb324c2984c821bd97b514974d2c412124bb60c1228c27da75da52cb61297171abd9fd8bb84e
|
@@ -6,6 +6,7 @@ require 'timeout'
|
|
6
6
|
module MarathonDeploy
|
7
7
|
class Deployment
|
8
8
|
|
9
|
+
WAIT_FOR_DEPLOYMENT_TIMEOUT = MarathonDefaults::WAIT_FOR_DEPLOYMENT_TIMEOUT
|
9
10
|
DEPLOYMENT_RECHECK_INTERVAL = MarathonDefaults::DEPLOYMENT_RECHECK_INTERVAL
|
10
11
|
DEPLOYMENT_TIMEOUT = MarathonDefaults::DEPLOYMENT_TIMEOUT
|
11
12
|
HEALTHY_WAIT_TIMEOUT = MarathonDefaults::HEALTHY_WAIT_TIMEOUT
|
@@ -38,16 +39,21 @@ module MarathonDeploy
|
|
38
39
|
end
|
39
40
|
end
|
40
41
|
|
42
|
+
def wait_for_deployment()
|
43
|
+
startTime = Time.now
|
44
|
+
Timeout::timeout(WAIT_FOR_DEPLOYMENT_TIMEOUT) do
|
45
|
+
while !deployment_running?
|
46
|
+
sleep(DEPLOYMENT_RECHECK_INTERVAL)
|
47
|
+
$LOG.info("Waiting for Marathon to start deployment")
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
41
52
|
def wait_for_deployment_id(message = "Deployment with deploymentId #{@deploymentId} in progress")
|
42
53
|
startTime = Time.now
|
43
54
|
deployment_seen = false
|
44
55
|
Timeout::timeout(DEPLOYMENT_TIMEOUT) do
|
45
|
-
while !deployment_running?
|
46
|
-
sleep(DEPLOYMENT_RECHECK_INTERVAL)
|
47
|
-
$LOG.info("Waiting for Marathon to start deployment")
|
48
|
-
end
|
49
56
|
while running_for_deployment_id?
|
50
|
-
|
51
57
|
deployment_seen = true
|
52
58
|
#response = list_all
|
53
59
|
#STDOUT.print "." if ( $LOG.level == 1 )
|
@@ -137,11 +143,9 @@ module MarathonDeploy
|
|
137
143
|
return response
|
138
144
|
end
|
139
145
|
|
140
|
-
def update_app
|
141
|
-
url = @url + MarathonDefaults::MARATHON_APPS_REST_PATH + @application.id
|
142
|
-
url += force ? '?force=true' : ''
|
146
|
+
def update_app
|
143
147
|
$LOG.debug("Updating app #{@application.id} #{url}")
|
144
|
-
response =
|
148
|
+
response = Utils.putJSON(@url,@application)
|
145
149
|
begin
|
146
150
|
@deploymentId = Utils.response_body(response)[:deploymentId]
|
147
151
|
rescue Exception=>e
|
@@ -58,7 +58,14 @@ module MarathonDeploy
|
|
58
58
|
|
59
59
|
# wait for deployment to finish, according to marathon deployment API call
|
60
60
|
begin
|
61
|
-
deployment.
|
61
|
+
deployment.wait_for_deployment
|
62
|
+
rescue Timeout::Error => e
|
63
|
+
$LOG.warn("Timed out after waiting for deployment to start")
|
64
|
+
$LOG.warn("Deployment did not start at all")
|
65
|
+
$LOG.warn("Possible reason: deploying the same plan already (use option -f to ensure that plans are unique)")
|
66
|
+
end
|
67
|
+
begin
|
68
|
+
deployment.wait_for_deployment_id
|
62
69
|
rescue Timeout::Error => e
|
63
70
|
$LOG.error("Timed out waiting for deployment of #{application.id} to complete. Canceling deploymentId #{deployment.deploymentId} and rolling back!")
|
64
71
|
deployment.cancel(deployment.deploymentId)
|
@@ -60,6 +60,18 @@ module MarathonDeploy
|
|
60
60
|
value
|
61
61
|
end
|
62
62
|
|
63
|
+
def self.putJSON(url,application)
|
64
|
+
response = nil
|
65
|
+
5.times { |i|
|
66
|
+
i+=1
|
67
|
+
response = HttpUtil.put(url + MarathonDefaults::MARATHON_APPS_REST_PATH + application.id,application.json)
|
68
|
+
break if (!response.nil?)
|
69
|
+
$LOG.info "Did not receive anything from Marathon. Waiting #{i} seconds then retrying ..."
|
70
|
+
sleep i
|
71
|
+
}
|
72
|
+
return response
|
73
|
+
end
|
74
|
+
|
63
75
|
def self.lookup(model, key, *rest)
|
64
76
|
v = model[key]
|
65
77
|
return v if rest.empty?
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: marathon_deploy
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
4
|
+
version: 0.1.50
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jonathan Colby
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-03-
|
11
|
+
date: 2016-03-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: logger
|