update go-plugin

This commit is contained in:
James Bardin 2017-08-16 11:25:28 -04:00
parent bb00fd47c0
commit 181c5e01f6
2 changed files with 13 additions and 21 deletions

View File

@ -21,8 +21,6 @@ import (
"time" "time"
"unicode" "unicode"
"encoding/json"
hclog "github.com/hashicorp/go-hclog" hclog "github.com/hashicorp/go-hclog"
) )
@ -271,8 +269,11 @@ func NewClient(config *ClientConfig) (c *Client) {
} }
if config.Logger == nil { if config.Logger == nil {
config.Logger = hclog.Default() config.Logger = hclog.New(&hclog.LoggerOptions{
config.Logger = config.Logger.ResetNamed("plugin") Output: hclog.DefaultOutput,
Level: hclog.Trace,
Name: "plugin",
})
} }
c = &Client{ c = &Client{
@ -737,16 +738,12 @@ func (c *Client) logStderr(r io.Reader) {
line = strings.TrimRightFunc(line, unicode.IsSpace) line = strings.TrimRightFunc(line, unicode.IsSpace)
l := c.logger.Named(filepath.Base(c.config.Cmd.Path)) l := c.logger.Named(filepath.Base(c.config.Cmd.Path))
// If output is not JSON format, print directly as error
if !isJSON(line) { entry, err := parseJSON(line)
l.Debug("log from plugin", "entry", line) // If output is not JSON format, print directly to Debug
if err != nil {
l.Debug(line)
} else { } else {
// Parse JSON line received from the plugin into logEntry, and print via
// the client's logger
entry, err := parseJSON(line)
if err != nil {
l.Error("error parsing json from plugin", "error", err)
}
out := flattenKVPairs(entry.KVPairs) out := flattenKVPairs(entry.KVPairs)
l = l.With("timestamp", entry.Timestamp.Format(hclog.TimeFormat)) l = l.With("timestamp", entry.Timestamp.Format(hclog.TimeFormat))
@ -773,8 +770,3 @@ func (c *Client) logStderr(r io.Reader) {
// Flag that we've completed logging for others // Flag that we've completed logging for others
close(c.doneLogging) close(c.doneLogging)
} }
func isJSON(str string) bool {
var js json.RawMessage
return json.Unmarshal([]byte(str), &js) == nil
}

6
vendor/vendor.json vendored
View File

@ -1259,10 +1259,10 @@
"revision": "d30f09973e19c1dfcd120b2d9c4f168e68d6b5d5" "revision": "d30f09973e19c1dfcd120b2d9c4f168e68d6b5d5"
}, },
{ {
"checksumSHA1": "PjvQA7yNIn9/8ns0i6Sd8TvTwhY=", "checksumSHA1": "R6me0jVmcT/OPo80Fe0qo5fRwHc=",
"path": "github.com/hashicorp/go-plugin", "path": "github.com/hashicorp/go-plugin",
"revision": "871e7582ebde6a93f3e03d8c6fa0d2eb2eb98d02", "revision": "a5174f84d7f8ff00fb07ab4ef1f380d32eee0e63",
"revisionTime": "2017-08-07T16:10:15Z" "revisionTime": "2017-08-16T15:18:19Z"
}, },
{ {
"checksumSHA1": "ErJHGU6AVPZM9yoY/xV11TwSjQs=", "checksumSHA1": "ErJHGU6AVPZM9yoY/xV11TwSjQs=",