vagrant-orchestrate 0.7.0.pre.3 → 0.7.0.pre.4
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/log4r/outputter/deployment_tracker_outputter.rb +23 -6
- data/lib/vagrant-managed-servers/action/track_deployment_end.rb +15 -1
- data/lib/vagrant-managed-servers/action/track_deployment_start.rb +1 -1
- data/lib/vagrant-managed-servers/action/track_server_deployment_end.rb +1 -1
- data/lib/vagrant-managed-servers/action/track_server_deployment_start.rb +1 -1
- data/lib/vagrant-orchestrate/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: fc39c0db6444e86098e5908f49c4c23596558de9
|
4
|
+
data.tar.gz: 2e4419f8b8506c7fcae39ce4f4d0ae35a1faed98
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f295399ff5a18ffa724f919542e6958962f435618b43e4bf1b96d770869e7ec8b07e13bcb2bc7cb733b0128aead302935542768d350fa0d835e62dd1cd476ae8
|
7
|
+
data.tar.gz: 72411db2885f12b14e8dca667d785b7fc361f5127bb088da64daa8abc000c6542cbcb54a5f2763d44a899e6f93602709c28672eccebb4e335b93142a96002b63
|
@@ -1,28 +1,45 @@
|
|
1
1
|
require "log4r/outputter/outputter"
|
2
2
|
require "time"
|
3
|
+
require "thread"
|
3
4
|
|
4
5
|
module Log4r
|
5
6
|
class DeploymentTrackerOutputter < Outputter
|
7
|
+
FLUSH_SIZE = 25 # Number of messages to queue before a flush happens
|
8
|
+
MAX_QUEUE_SIZE = 255 # Maximum number of messages to store before messages are dropped
|
9
|
+
|
6
10
|
def initialize(name, hash = {})
|
7
11
|
super(name, hash)
|
8
12
|
@logger = Log4r::Logger.new("vagrant_orchestrate::log4r::deployment_tracker_outputter")
|
13
|
+
@queue = []
|
14
|
+
@lock = Mutex.new
|
15
|
+
end
|
16
|
+
|
17
|
+
def flush
|
18
|
+
@lock.synchronize do
|
19
|
+
DeploymentTrackerClient::DefaultApi.post_logs(VagrantPlugins::Orchestrate::DEPLOYMENT_ID, @queue)
|
20
|
+
@queue.clear
|
21
|
+
end
|
22
|
+
rescue
|
23
|
+
@logger.warn "Unable to send log messages to deployment-tracker"
|
9
24
|
end
|
10
25
|
|
11
26
|
private
|
12
27
|
|
13
28
|
def canonical_log(event)
|
29
|
+
if @queue.size >= MAX_QUEUE_SIZE
|
30
|
+
@logger.warn("Deployment Tracker Log Outputter queue size at maximum of #{MAX_QUEUE_SIZE}, dropping message")
|
31
|
+
return
|
32
|
+
end
|
33
|
+
|
14
34
|
data = {}
|
15
35
|
data["type"] = event.fullname
|
16
36
|
data["timestamp"] = Time.now.getutc.iso8601
|
17
37
|
data["level"] = LNAMES[event.level]
|
18
38
|
data["message"] = event.data
|
19
39
|
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
rescue
|
24
|
-
@logger.warn "Unable to send log messages to deployment-tracker"
|
25
|
-
end
|
40
|
+
@queue << data
|
41
|
+
|
42
|
+
flush if @queue.size >= FLUSH_SIZE
|
26
43
|
end
|
27
44
|
end
|
28
45
|
end
|
@@ -14,6 +14,8 @@ module VagrantPlugins
|
|
14
14
|
@app.call(env)
|
15
15
|
end
|
16
16
|
|
17
|
+
private
|
18
|
+
|
17
19
|
def track_deployment_end(host, start, success, ui)
|
18
20
|
return unless host
|
19
21
|
@logger.debug("Tracking deployment end to #{host}.")
|
@@ -25,11 +27,23 @@ module VagrantPlugins
|
|
25
27
|
assert_empty_server_result: true,
|
26
28
|
elapsed_seconds: elapsed_seconds }
|
27
29
|
DeploymentTrackerClient::DefaultApi.put_deployment(id, deployment)
|
30
|
+
|
31
|
+
flush_logger ui
|
28
32
|
rescue => ex
|
29
|
-
ui.warn("There was an error notifying deployment tracker.
|
33
|
+
ui.warn("There was an error notifying deployment tracker. Run with --debug for more details.")
|
30
34
|
@logger.warn("Error tracking deployment end for deployment #{id}")
|
31
35
|
@logger.warn(ex)
|
32
36
|
end
|
37
|
+
|
38
|
+
# Since log messages are being buffered, there could be some that
|
39
|
+
# are buffered up to send, but have yet to be delivered. We'll clear
|
40
|
+
# those out now. If there is a problem getting the logs to deployment
|
41
|
+
# tracker, we'll just see the 1 warning message
|
42
|
+
def flush_logger(ui)
|
43
|
+
ui.logger.outputters.each do |outputter|
|
44
|
+
outputter.flush if outputter.respond_to?("flush")
|
45
|
+
end
|
46
|
+
end
|
33
47
|
end
|
34
48
|
end
|
35
49
|
end
|
@@ -33,7 +33,7 @@ module VagrantPlugins
|
|
33
33
|
}
|
34
34
|
DeploymentTrackerClient::DefaultApi.post_deployment(id, deployment)
|
35
35
|
rescue => ex
|
36
|
-
ui.warn("There was an error notifying deployment tracker.
|
36
|
+
ui.warn("There was an error notifying deployment tracker. Run with --debug for more details.")
|
37
37
|
@logger.warn("Error tracking deployment start for deployment #{id}")
|
38
38
|
@logger.warn(ex)
|
39
39
|
end
|
@@ -28,7 +28,7 @@ module VagrantPlugins
|
|
28
28
|
}
|
29
29
|
DeploymentTrackerClient::DefaultApi.put_server(id, server)
|
30
30
|
rescue => ex
|
31
|
-
ui.warn("There was an error notifying deployment tracker of server end.
|
31
|
+
ui.warn("There was an error notifying deployment tracker of server end. Run with --debug for more details.")
|
32
32
|
ui.warn(ex.message)
|
33
33
|
pp ex
|
34
34
|
@logger.warn("Error tracking deployment server end for deployment #{id}")
|
@@ -28,7 +28,7 @@ module VagrantPlugins
|
|
28
28
|
}
|
29
29
|
DeploymentTrackerClient::DefaultApi.post_server(id, server)
|
30
30
|
rescue => ex
|
31
|
-
ui.warn("There was an error notifying deployment tracker of server start.
|
31
|
+
ui.warn("There was an error notifying deployment tracker of server start. Run with --debug for more details.")
|
32
32
|
ui.warn(ex.message)
|
33
33
|
@logger.warn("Error tracking deployment server start for deployment #{id}")
|
34
34
|
@logger.warn(ex)
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: vagrant-orchestrate
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.7.0.pre.
|
4
|
+
version: 0.7.0.pre.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Christopher Baldauf
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-07-
|
11
|
+
date: 2015-07-13 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: deployment-tracker-client
|