Skip to content
This repository has been archived by the owner on Jan 8, 2024. It is now read-only.

Commit

Permalink
Not referencing "unmanaged" plugins, per Mitchell's feedback.
Browse files Browse the repository at this point in the history
  • Loading branch information
izaaklauer committed Jun 25, 2021
1 parent 060202e commit 01ffd04
Show file tree
Hide file tree
Showing 2 changed files with 23 additions and 23 deletions.
14 changes: 7 additions & 7 deletions internal/plugin/factory.go
Original file line number Diff line number Diff line change
Expand Up @@ -96,10 +96,10 @@ func BuiltinFactory(name string, typ component.Type) interface{} {
return Factory(cmd, typ)
}

// UnmanagedPluginFactory produces a provider factory that uses the passed
// ReattachPluginFactory produces a provider factory that uses the passed
// reattach information to connect to go-plugin processes that are already
// running, and implements Instance against it.
func UnmanagedPluginFactory(reattach *plugin.ReattachConfig, typ component.Type) interface{} {
func ReattachPluginFactory(reattach *plugin.ReattachConfig, typ component.Type) interface{} {
return func(log hclog.Logger) (interface{}, error) {
config := pluginclient.ClientConfig(log)
config.Logger = log
Expand All @@ -115,13 +115,13 @@ func UnmanagedPluginFactory(reattach *plugin.ReattachConfig, typ component.Type)
config.Plugins = plugins

// Log that we're going to launch this
log.Info("Connecting to an unmanaged plugin", "type", typ, "Addr", reattach.Addr.String())
log.Info("Connecting to a reattach plugin", "type", typ, "Addr", reattach.Addr.String())

// Connect to the plugin
client := plugin.NewClient(config)
rpcClient, err := client.Client()
if err != nil {
log.Error("error creating unmanaged plugin client", "err", err)
log.Error("error creating reattach plugin client", "err", err)
client.Kill()
return nil, err
}
Expand All @@ -132,7 +132,7 @@ func UnmanagedPluginFactory(reattach *plugin.ReattachConfig, typ component.Type)
if typ != component.MapperType {
raw, err = rpcClient.Dispense(strings.ToLower(typ.String()))
if err != nil {
log.Error("error requesting unmanaged plugin", "type", typ, "err", err)
log.Error("error requesting reattach plugin", "type", typ, "err", err)
client.Kill()
return nil, err
}
Expand All @@ -141,12 +141,12 @@ func UnmanagedPluginFactory(reattach *plugin.ReattachConfig, typ component.Type)
// Request the mappers
mappers, err := pluginclient.Mappers(client)
if err != nil {
log.Error("error requesting unmanaged plugin mappers", "err", err)
log.Error("error requesting reattach plugin mappers", "err", err)
client.Kill()
return nil, err
}

log.Debug("successfully reattached to an unmanaged plugin")
log.Debug("successfully reattached to a plugin")
return &Instance{
Component: raw,
Mappers: mappers,
Expand Down
32 changes: 16 additions & 16 deletions internal/runner/operation.go
Original file line number Diff line number Diff line change
Expand Up @@ -231,12 +231,12 @@ func (r *Runner) pluginFactories(
}
log.Debug("plugin search path", "path", pluginPaths)

// Look for any unmanaged plugins
var unmanagedPluginConfigs map[string]*goplugin.ReattachConfig
unmanagedPluginsStr := os.Getenv("WP_REATTACH_PLUGINS")
if unmanagedPluginsStr != "" {
// Look for any reattach plugins
var reattachPluginConfigs map[string]*goplugin.ReattachConfig
reattachPluginsStr := os.Getenv("WP_REATTACH_PLUGINS")
if reattachPluginsStr != "" {
var err error
unmanagedPluginConfigs, err = parseReattachPlugins(unmanagedPluginsStr)
reattachPluginConfigs, err = parseReattachPlugins(reattachPluginsStr)
if err != nil {
return nil, err
}
Expand All @@ -248,10 +248,10 @@ func (r *Runner) pluginFactories(
plog := log.With("plugin_name", pluginCfg.Name)
plog.Debug("searching for plugin")

if reattachConfig, ok := unmanagedPluginConfigs[pluginCfg.Name]; ok {
plog.Debug(fmt.Sprintf("plugin %s is declared as running unmanaged", pluginCfg.Name))
if reattachConfig, ok := reattachPluginConfigs[pluginCfg.Name]; ok {
plog.Debug(fmt.Sprintf("plugin %s is declared as running for reattachment", pluginCfg.Name))
for _, t := range pluginCfg.Types() {
if err := result[t].Register(pluginCfg.Name, plugin.UnmanagedPluginFactory(reattachConfig, t)); err != nil {
if err := result[t].Register(pluginCfg.Name, plugin.ReattachPluginFactory(reattachConfig, t)); err != nil {
return nil, err
}
}
Expand Down Expand Up @@ -294,35 +294,35 @@ func (r *Runner) pluginFactories(
return result, perr
}

// parse information on reattaching to unmanaged plugins out of a
// parse information on reattaching to plugins out of a
// JSON-encoded environment variable.
func parseReattachPlugins(in string) (map[string]*goplugin.ReattachConfig, error) {
unmanangedPlugins := map[string]*goplugin.ReattachConfig{}
reattachConfigs := map[string]*goplugin.ReattachConfig{}
if in != "" {
in = strings.TrimRight(in, "'")
in = strings.TrimLeft(in, "'")
var m map[string]sdk.ReattachConfig
err := json.Unmarshal([]byte(in), &m)
if err != nil {
return unmanangedPlugins, fmt.Errorf("Invalid format for WP_REATTACH_PROVIDERS: %w", err)
return reattachConfigs, fmt.Errorf("Invalid format for WP_REATTACH_PROVIDERS: %w", err)
}
for p, c := range m {
var addr net.Addr
switch c.Addr.Network {
case "unix":
addr, err = net.ResolveUnixAddr("unix", c.Addr.String)
if err != nil {
return unmanangedPlugins, fmt.Errorf("Invalid unix socket path %q for %q: %w", c.Addr.String, p, err)
return reattachConfigs, fmt.Errorf("Invalid unix socket path %q for %q: %w", c.Addr.String, p, err)
}
case "tcp":
addr, err = net.ResolveTCPAddr("tcp", c.Addr.String)
if err != nil {
return unmanangedPlugins, fmt.Errorf("Invalid TCP address %q for %q: %w", c.Addr.String, p, err)
return reattachConfigs, fmt.Errorf("Invalid TCP address %q for %q: %w", c.Addr.String, p, err)
}
default:
return unmanangedPlugins, fmt.Errorf("Unknown address type %q for %q", c.Addr.String, p)
return reattachConfigs, fmt.Errorf("Unknown address type %q for %q", c.Addr.String, p)
}
unmanangedPlugins[p] = &goplugin.ReattachConfig{
reattachConfigs[p] = &goplugin.ReattachConfig{
Protocol: goplugin.Protocol(c.Protocol),
ProtocolVersion: c.ProtocolVersion,
Pid: c.Pid,
Expand All @@ -331,7 +331,7 @@ func parseReattachPlugins(in string) (map[string]*goplugin.ReattachConfig, error
}
}
}
return unmanangedPlugins, nil
return reattachConfigs, nil
}

// operationNoDataFunc is the function type for operations that are
Expand Down

0 comments on commit 01ffd04

Please sign in to comment.