npm/pkg/controlplane/gobutils.go (74 lines of code) (raw):

package controlplane import ( "bytes" "encoding/gob" "github.com/Azure/azure-container-networking/npm/pkg/dataplane/policies" npmerrors "github.com/Azure/azure-container-networking/npm/util/errors" ) func EncodeStrings(names []string) (*bytes.Buffer, error) { if len(names) == 0 { return nil, npmerrors.SimpleError("failed to encode, name is empty") } var payloadBuffer bytes.Buffer err := gob.NewEncoder(&payloadBuffer).Encode(&names) if err != nil { return nil, npmerrors.SimpleErrorWrapper("failed to encode", err) } return &payloadBuffer, nil } func DecodeStrings(payload *bytes.Buffer) ([]string, error) { if payload == nil { return nil, npmerrors.SimpleError("failed to decode, payload is nil") } var names []string err := gob.NewDecoder(payload).Decode(&names) if err != nil { return nil, npmerrors.SimpleErrorWrapper("failed to decode", err) } return names, nil } func EncodeControllerIPSets(ipsets []*ControllerIPSets) (*bytes.Buffer, error) { if len(ipsets) == 0 { return nil, npmerrors.SimpleError("failed to encode, ipset is nil") } var payloadBuffer bytes.Buffer err := gob.NewEncoder(&payloadBuffer).Encode(&ipsets) if err != nil { return nil, npmerrors.SimpleErrorWrapper("failed to encode", err) } return &payloadBuffer, nil } func DecodeControllerIPSets(payload *bytes.Buffer) ([]*ControllerIPSets, error) { if payload == nil { return nil, npmerrors.SimpleError("failed to decode, payload is nil") } var ipsets []*ControllerIPSets err := gob.NewDecoder(payload).Decode(&ipsets) if err != nil { return nil, npmerrors.SimpleErrorWrapper("failed to decode", err) } return ipsets, nil } func EncodeNPMNetworkPolicies(netpols []*policies.NPMNetworkPolicy) (*bytes.Buffer, error) { if len(netpols) == 0 { return nil, npmerrors.SimpleError("failed to encode, netpol is nil") } var payloadBuffer bytes.Buffer enc := gob.NewEncoder(&payloadBuffer) err := enc.Encode(netpols) if err != nil { return nil, npmerrors.SimpleErrorWrapper("failed to encode", err) } return &payloadBuffer, nil } func DecodeNPMNetworkPolicies(payload *bytes.Buffer) ([]*policies.NPMNetworkPolicy, error) { if payload == nil { return nil, npmerrors.SimpleError("failed to decode, payload is nil") } var netpols []*policies.NPMNetworkPolicy err := gob.NewDecoder(payload).Decode(&netpols) if err != nil { return nil, npmerrors.SimpleErrorWrapper("failed to decode", err) } return netpols, nil }