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