vagrant-orchestrate 0.7.0.pre.3 → 0.7.0.pre.4
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.
- 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
|