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 }