mirror of
https://github.com/opentofu/opentofu.git
synced 2025-02-25 18:45:20 -06:00
get properly configured hcloggers
make sure plugins get hcloggers configured to match core
This commit is contained in:
parent
8a7838266e
commit
abf6b9b378
@ -8,13 +8,13 @@ import (
|
||||
"path/filepath"
|
||||
"strings"
|
||||
|
||||
hclog "github.com/hashicorp/go-hclog"
|
||||
"github.com/hashicorp/go-multierror"
|
||||
plugin "github.com/hashicorp/go-plugin"
|
||||
|
||||
"github.com/hashicorp/terraform/addrs"
|
||||
terraformProvider "github.com/hashicorp/terraform/builtin/providers/terraform"
|
||||
"github.com/hashicorp/terraform/internal/getproviders"
|
||||
"github.com/hashicorp/terraform/internal/logging"
|
||||
"github.com/hashicorp/terraform/internal/providercache"
|
||||
tfplugin "github.com/hashicorp/terraform/plugin"
|
||||
"github.com/hashicorp/terraform/providers"
|
||||
@ -328,12 +328,6 @@ func (m *Meta) internalProviders() map[string]providers.Factory {
|
||||
// providers.Interface against it.
|
||||
func providerFactory(meta *providercache.CachedProvider) providers.Factory {
|
||||
return func() (providers.Interface, error) {
|
||||
logger := hclog.New(&hclog.LoggerOptions{
|
||||
Name: "plugin",
|
||||
Level: hclog.Trace,
|
||||
Output: os.Stderr,
|
||||
})
|
||||
|
||||
execFile, err := meta.ExecutableFile()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
@ -341,7 +335,7 @@ func providerFactory(meta *providercache.CachedProvider) providers.Factory {
|
||||
|
||||
config := &plugin.ClientConfig{
|
||||
HandshakeConfig: tfplugin.Handshake,
|
||||
Logger: logger,
|
||||
Logger: logging.NewHCLogger("plugin"),
|
||||
AllowedProtocols: []plugin.Protocol{plugin.ProtocolGRPC},
|
||||
Managed: true,
|
||||
Cmd: exec.Command(execFile),
|
||||
@ -386,15 +380,10 @@ func devOverrideProviderFactory(provider addrs.Provider, localDir getproviders.P
|
||||
// running, and implements providers.Interface against it.
|
||||
func unmanagedProviderFactory(provider addrs.Provider, reattach *plugin.ReattachConfig) providers.Factory {
|
||||
return func() (providers.Interface, error) {
|
||||
logger := hclog.New(&hclog.LoggerOptions{
|
||||
Name: "unmanaged-plugin",
|
||||
Level: hclog.Trace,
|
||||
Output: os.Stderr,
|
||||
})
|
||||
|
||||
config := &plugin.ClientConfig{
|
||||
HandshakeConfig: tfplugin.Handshake,
|
||||
Logger: logger,
|
||||
Logger: logging.NewHCLogger("unmanaged-plugin"),
|
||||
AllowedProtocols: []plugin.Protocol{plugin.ProtocolGRPC},
|
||||
Managed: false,
|
||||
Reattach: reattach,
|
||||
|
@ -14,6 +14,7 @@ import (
|
||||
plugin "github.com/hashicorp/go-plugin"
|
||||
"github.com/kardianos/osext"
|
||||
|
||||
"github.com/hashicorp/terraform/internal/logging"
|
||||
tfplugin "github.com/hashicorp/terraform/plugin"
|
||||
"github.com/hashicorp/terraform/plugin/discovery"
|
||||
"github.com/hashicorp/terraform/provisioners"
|
||||
@ -167,6 +168,8 @@ func internalPluginClient(kind, name string) (*plugin.Client, error) {
|
||||
Managed: true,
|
||||
VersionedPlugins: tfplugin.VersionedPlugins,
|
||||
AllowedProtocols: []plugin.Protocol{plugin.ProtocolGRPC},
|
||||
AutoMTLS: enableProviderAutoMTLS,
|
||||
Logger: logging.NewHCLogger("plugin"),
|
||||
}
|
||||
|
||||
return plugin.NewClient(cfg), nil
|
||||
@ -174,7 +177,16 @@ func internalPluginClient(kind, name string) (*plugin.Client, error) {
|
||||
|
||||
func provisionerFactory(meta discovery.PluginMeta) terraform.ProvisionerFactory {
|
||||
return func() (provisioners.Interface, error) {
|
||||
client := tfplugin.Client(meta)
|
||||
cfg := &plugin.ClientConfig{
|
||||
Cmd: exec.Command(meta.Path),
|
||||
HandshakeConfig: tfplugin.Handshake,
|
||||
VersionedPlugins: tfplugin.VersionedPlugins,
|
||||
Managed: true,
|
||||
Logger: logging.NewHCLogger("provisioner"),
|
||||
AllowedProtocols: []plugin.Protocol{plugin.ProtocolGRPC},
|
||||
AutoMTLS: enableProviderAutoMTLS,
|
||||
}
|
||||
client := plugin.NewClient(cfg)
|
||||
return newProvisionerClient(client)
|
||||
}
|
||||
}
|
||||
|
@ -26,6 +26,21 @@ var ValidLevels = []LogLevel{"TRACE", "DEBUG", "INFO", "WARN", "ERROR"}
|
||||
var logger hclog.Logger
|
||||
|
||||
func init() {
|
||||
logger = NewHCLogger("")
|
||||
}
|
||||
|
||||
// LogOutput determines where we should send logs (if anywhere) and the log level.
|
||||
func LogOutput() (logOutput io.Writer, err error) {
|
||||
return logger.StandardWriter(&hclog.StandardLoggerOptions{InferLevels: true}), nil
|
||||
}
|
||||
|
||||
// HCLogger returns the default global loggers
|
||||
func HCLogger() hclog.Logger {
|
||||
return logger
|
||||
}
|
||||
|
||||
// NewHCLogger returns a new hclog.Logger instance with the given name
|
||||
func NewHCLogger(name string) hclog.Logger {
|
||||
logOutput := io.Writer(os.Stderr)
|
||||
logLevel := CurrentLogLevel()
|
||||
if logLevel == "" {
|
||||
@ -41,21 +56,13 @@ func init() {
|
||||
}
|
||||
}
|
||||
|
||||
logger = hclog.New(&hclog.LoggerOptions{
|
||||
return hclog.New(&hclog.LoggerOptions{
|
||||
Name: name,
|
||||
Level: hclog.LevelFromString(logLevel),
|
||||
Output: logOutput,
|
||||
})
|
||||
}
|
||||
|
||||
// LogOutput determines where we should send logs (if anywhere) and the log level.
|
||||
func LogOutput() (logOutput io.Writer, err error) {
|
||||
return logger.StandardWriter(&hclog.StandardLoggerOptions{InferLevels: true}), nil
|
||||
}
|
||||
|
||||
func HCLogger() hclog.Logger {
|
||||
return logger
|
||||
}
|
||||
|
||||
// SetOutput checks for a log destination with LogOutput, and calls
|
||||
// log.SetOutput with the result. If LogOutput returns nil, SetOutput uses
|
||||
// ioutil.Discard. Any error from LogOutout is fatal.
|
||||
|
Loading…
Reference in New Issue
Block a user