github.com/turbot/steampipe@v1.7.0-rc.0.0.20240517123944-7cef272d4458/pkg/pluginmanager_service/grpc/proto/reattach_config.go (about)

     1  package proto
     2  
     3  import (
     4  	"github.com/hashicorp/go-plugin"
     5  	"github.com/turbot/go-kit/helpers"
     6  	"github.com/turbot/steampipe-plugin-sdk/v5/grpc/proto"
     7  )
     8  
     9  func NewReattachConfig(pluginName string, src *plugin.ReattachConfig, supportedOperations *SupportedOperations, connections []string) *ReattachConfig {
    10  	return &ReattachConfig{
    11  		Plugin:          pluginName,
    12  		Protocol:        string(src.Protocol),
    13  		ProtocolVersion: int64(src.ProtocolVersion),
    14  		Addr: &NetAddr{
    15  			Network: src.Addr.Network(),
    16  			Address: src.Addr.String(),
    17  		},
    18  		Pid:                 int64(src.Pid),
    19  		SupportedOperations: supportedOperations,
    20  		Connections:         connections,
    21  	}
    22  }
    23  
    24  // Convert converts from a protobuf reattach config to a plugin.ReattachConfig
    25  func (r *ReattachConfig) Convert() *plugin.ReattachConfig {
    26  	return &plugin.ReattachConfig{
    27  		Protocol:        plugin.Protocol(r.Protocol),
    28  		ProtocolVersion: int(r.ProtocolVersion),
    29  		Addr: &SimpleAddr{
    30  			NetworkString: r.Addr.Network,
    31  			AddressString: r.Addr.Address,
    32  		},
    33  		Pid: int(r.Pid),
    34  	}
    35  }
    36  
    37  func (r *ReattachConfig) AddConnection(connection string) {
    38  	if !helpers.StringSliceContains(r.Connections, connection) {
    39  		r.Connections = append(r.Connections, connection)
    40  	}
    41  }
    42  func (r *ReattachConfig) RemoveConnection(connection string) {
    43  	existingConnections := r.Connections
    44  	r.Connections = nil
    45  	for _, existingConnections := range existingConnections {
    46  		if existingConnections != connection {
    47  			r.Connections = append(r.Connections, existingConnections)
    48  		}
    49  	}
    50  }
    51  
    52  func (r *ReattachConfig) UpdateConnections(configs []*proto.ConnectionConfig) {
    53  	r.Connections = make([]string, len(configs))
    54  	for i, c := range configs {
    55  		r.Connections[i] = c.Connection
    56  	}
    57  }