update go-plugin
This commit is contained in:
parent
3376e6ef2e
commit
493ee39f23
2
go.mod
2
go.mod
|
@ -56,7 +56,7 @@ require (
|
||||||
github.com/hashicorp/go-immutable-radix v0.0.0-20180129170900-7f3cd4390caa // indirect
|
github.com/hashicorp/go-immutable-radix v0.0.0-20180129170900-7f3cd4390caa // indirect
|
||||||
github.com/hashicorp/go-msgpack v0.0.0-20150518234257-fa3f63826f7c // indirect
|
github.com/hashicorp/go-msgpack v0.0.0-20150518234257-fa3f63826f7c // indirect
|
||||||
github.com/hashicorp/go-multierror v1.0.0
|
github.com/hashicorp/go-multierror v1.0.0
|
||||||
github.com/hashicorp/go-plugin v0.0.0-20190212232519-b838ffee39ce
|
github.com/hashicorp/go-plugin v0.0.0-20190220160451-3f118e8ee104
|
||||||
github.com/hashicorp/go-retryablehttp v0.5.1
|
github.com/hashicorp/go-retryablehttp v0.5.1
|
||||||
github.com/hashicorp/go-rootcerts v0.0.0-20160503143440-6bb64b370b90
|
github.com/hashicorp/go-rootcerts v0.0.0-20160503143440-6bb64b370b90
|
||||||
github.com/hashicorp/go-sockaddr v0.0.0-20180320115054-6d291a969b86 // indirect
|
github.com/hashicorp/go-sockaddr v0.0.0-20180320115054-6d291a969b86 // indirect
|
||||||
|
|
2
go.sum
2
go.sum
|
@ -150,6 +150,8 @@ github.com/hashicorp/go-multierror v1.0.0/go.mod h1:dHtQlpGsu+cZNNAkkCN/P3hoUDHh
|
||||||
github.com/hashicorp/go-plugin v0.0.0-20170816151819-a5174f84d7f8/go.mod h1:JSqWYsict+jzcj0+xElxyrBQRPNoiWQuddnxArJ7XHQ=
|
github.com/hashicorp/go-plugin v0.0.0-20170816151819-a5174f84d7f8/go.mod h1:JSqWYsict+jzcj0+xElxyrBQRPNoiWQuddnxArJ7XHQ=
|
||||||
github.com/hashicorp/go-plugin v0.0.0-20190212232519-b838ffee39ce h1:I3KJUf8jyMubLFeHit2ibr9YeVxJX2CXMXVM6xlB+Qk=
|
github.com/hashicorp/go-plugin v0.0.0-20190212232519-b838ffee39ce h1:I3KJUf8jyMubLFeHit2ibr9YeVxJX2CXMXVM6xlB+Qk=
|
||||||
github.com/hashicorp/go-plugin v0.0.0-20190212232519-b838ffee39ce/go.mod h1:++UyYGoz3o5w9ZzAdZxtQKrWWP+iqPBn3cQptSMzBuY=
|
github.com/hashicorp/go-plugin v0.0.0-20190212232519-b838ffee39ce/go.mod h1:++UyYGoz3o5w9ZzAdZxtQKrWWP+iqPBn3cQptSMzBuY=
|
||||||
|
github.com/hashicorp/go-plugin v0.0.0-20190220160451-3f118e8ee104 h1:9iQ/zrTOJqzP+kH37s6xNb6T1RysiT7fnDD3DJbspVw=
|
||||||
|
github.com/hashicorp/go-plugin v0.0.0-20190220160451-3f118e8ee104/go.mod h1:++UyYGoz3o5w9ZzAdZxtQKrWWP+iqPBn3cQptSMzBuY=
|
||||||
github.com/hashicorp/go-retryablehttp v0.5.1 h1:Vsx5XKPqPs3M6sM4U4GWyUqFS8aBiL9U5gkgvpkg4SE=
|
github.com/hashicorp/go-retryablehttp v0.5.1 h1:Vsx5XKPqPs3M6sM4U4GWyUqFS8aBiL9U5gkgvpkg4SE=
|
||||||
github.com/hashicorp/go-retryablehttp v0.5.1/go.mod h1:9B5zBasrRhHXnJnui7y6sL7es7NDiJgTc6Er0maI1Xs=
|
github.com/hashicorp/go-retryablehttp v0.5.1/go.mod h1:9B5zBasrRhHXnJnui7y6sL7es7NDiJgTc6Er0maI1Xs=
|
||||||
github.com/hashicorp/go-rootcerts v0.0.0-20160503143440-6bb64b370b90 h1:VBj0QYQ0u2MCJzBfeYXGexnAl17GsH1yidnoxCqqD9E=
|
github.com/hashicorp/go-rootcerts v0.0.0-20160503143440-6bb64b370b90 h1:VBj0QYQ0u2MCJzBfeYXGexnAl17GsH1yidnoxCqqD9E=
|
||||||
|
|
|
@ -21,7 +21,6 @@ import (
|
||||||
"sync"
|
"sync"
|
||||||
"sync/atomic"
|
"sync/atomic"
|
||||||
"time"
|
"time"
|
||||||
"unicode"
|
|
||||||
|
|
||||||
hclog "github.com/hashicorp/go-hclog"
|
hclog "github.com/hashicorp/go-hclog"
|
||||||
)
|
)
|
||||||
|
@ -933,21 +932,48 @@ func (c *Client) dialer(_ string, timeout time.Duration) (net.Conn, error) {
|
||||||
return conn, nil
|
return conn, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
var stdErrBufferSize = 64 * 1024
|
||||||
|
|
||||||
func (c *Client) logStderr(r io.Reader) {
|
func (c *Client) logStderr(r io.Reader) {
|
||||||
defer c.clientWaitGroup.Done()
|
defer c.clientWaitGroup.Done()
|
||||||
|
|
||||||
scanner := bufio.NewScanner(r)
|
|
||||||
l := c.logger.Named(filepath.Base(c.config.Cmd.Path))
|
l := c.logger.Named(filepath.Base(c.config.Cmd.Path))
|
||||||
|
|
||||||
for scanner.Scan() {
|
reader := bufio.NewReaderSize(r, stdErrBufferSize)
|
||||||
line := scanner.Text()
|
// continuation indicates the previous line was a prefix
|
||||||
c.config.Stderr.Write([]byte(line + "\n"))
|
continuation := false
|
||||||
line = strings.TrimRightFunc(line, unicode.IsSpace)
|
|
||||||
|
for {
|
||||||
|
line, isPrefix, err := reader.ReadLine()
|
||||||
|
switch {
|
||||||
|
case err == io.EOF:
|
||||||
|
return
|
||||||
|
case err != nil:
|
||||||
|
l.Error("reading plugin stderr", "error", err)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
|
c.config.Stderr.Write(line)
|
||||||
|
|
||||||
|
// The line was longer than our max token size, so it's likely
|
||||||
|
// incomplete and won't unmarshal.
|
||||||
|
if isPrefix || continuation {
|
||||||
|
l.Debug(string(line))
|
||||||
|
|
||||||
|
// if we're finishing a continued line, add the newline back in
|
||||||
|
if !isPrefix {
|
||||||
|
c.config.Stderr.Write([]byte{'\n'})
|
||||||
|
}
|
||||||
|
|
||||||
|
continuation = isPrefix
|
||||||
|
continue
|
||||||
|
}
|
||||||
|
|
||||||
|
c.config.Stderr.Write([]byte{'\n'})
|
||||||
|
|
||||||
entry, err := parseJSON(line)
|
entry, err := parseJSON(line)
|
||||||
// If output is not JSON format, print directly to Debug
|
// If output is not JSON format, print directly to Debug
|
||||||
if err != nil {
|
if err != nil {
|
||||||
l.Debug(line)
|
l.Debug(string(line))
|
||||||
} else {
|
} else {
|
||||||
out := flattenKVPairs(entry.KVPairs)
|
out := flattenKVPairs(entry.KVPairs)
|
||||||
|
|
||||||
|
@ -966,8 +992,4 @@ func (c *Client) logStderr(r io.Reader) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := scanner.Err(); err != nil {
|
|
||||||
l.Error("reading plugin stderr", "error", err)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -32,11 +32,11 @@ func flattenKVPairs(kvs []*logEntryKV) []interface{} {
|
||||||
}
|
}
|
||||||
|
|
||||||
// parseJSON handles parsing JSON output
|
// parseJSON handles parsing JSON output
|
||||||
func parseJSON(input string) (*logEntry, error) {
|
func parseJSON(input []byte) (*logEntry, error) {
|
||||||
var raw map[string]interface{}
|
var raw map[string]interface{}
|
||||||
entry := &logEntry{}
|
entry := &logEntry{}
|
||||||
|
|
||||||
err := json.Unmarshal([]byte(input), &raw)
|
err := json.Unmarshal(input, &raw)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
|
@ -389,7 +389,7 @@ github.com/hashicorp/go-getter/helper/url
|
||||||
github.com/hashicorp/go-hclog
|
github.com/hashicorp/go-hclog
|
||||||
# github.com/hashicorp/go-multierror v1.0.0
|
# github.com/hashicorp/go-multierror v1.0.0
|
||||||
github.com/hashicorp/go-multierror
|
github.com/hashicorp/go-multierror
|
||||||
# github.com/hashicorp/go-plugin v0.0.0-20190212232519-b838ffee39ce
|
# github.com/hashicorp/go-plugin v0.0.0-20190220160451-3f118e8ee104
|
||||||
github.com/hashicorp/go-plugin
|
github.com/hashicorp/go-plugin
|
||||||
github.com/hashicorp/go-plugin/internal/plugin
|
github.com/hashicorp/go-plugin/internal/plugin
|
||||||
# github.com/hashicorp/go-retryablehttp v0.5.1
|
# github.com/hashicorp/go-retryablehttp v0.5.1
|
||||||
|
|
Loading…
Reference in New Issue