mirror of
https://github.com/zrepl/zrepl.git
synced 2025-02-16 18:30:54 +01:00
From: github.com/golang/protobuf v1.3.2 google.golang.org/grpc v1.17.0 To: github.com/golang/protobuf v1.4.3 google.golang.org/grpc v1.35.0 google.golang.org/protobuf v1.25.0 About the two protobuf packages: https://developers.google.com/protocol-buffers/docs/reference/go/faq > Version v1.4.0 and higher of github.com/golang/protobuf wrap the new implementation and permit programs to adopt the new API incrementally. For example, the well-known types defined in github.com/golang/protobuf/ptypes are simply aliases of those defined in the newer module. Thus, google.golang.org/protobuf/types/known/emptypb and github.com/golang/protobuf/ptypes/empty may be used interchangeably. Notable Code Changes in zrepl: - generate protobufs now contain a mutex so we can't copy them by value anymore - grpc.WithDialer is deprecated => use grpc.WithContextDialer instead Go1.12 is now actually required by some of the dependencies.
44 lines
1.3 KiB
Go
44 lines
1.3 KiB
Go
package logic
|
|
|
|
import (
|
|
"github.com/pkg/errors"
|
|
|
|
"github.com/zrepl/zrepl/config"
|
|
"github.com/zrepl/zrepl/replication/logic/pdu"
|
|
)
|
|
|
|
type PlannerPolicy struct {
|
|
EncryptedSend tri // all sends must be encrypted (send -w, and encryption!=off)
|
|
ReplicationConfig *pdu.ReplicationConfig
|
|
}
|
|
|
|
func ReplicationConfigFromConfig(in *config.Replication) (*pdu.ReplicationConfig, error) {
|
|
initial, err := pduReplicationGuaranteeKindFromConfig(in.Protection.Initial)
|
|
if err != nil {
|
|
return nil, errors.Wrap(err, "field 'initial'")
|
|
}
|
|
incremental, err := pduReplicationGuaranteeKindFromConfig(in.Protection.Incremental)
|
|
if err != nil {
|
|
return nil, errors.Wrap(err, "field 'incremental'")
|
|
}
|
|
return &pdu.ReplicationConfig{
|
|
Protection: &pdu.ReplicationConfigProtection{
|
|
Initial: initial,
|
|
Incremental: incremental,
|
|
},
|
|
}, nil
|
|
}
|
|
|
|
func pduReplicationGuaranteeKindFromConfig(in string) (k pdu.ReplicationGuaranteeKind, _ error) {
|
|
switch in {
|
|
case "guarantee_nothing":
|
|
return pdu.ReplicationGuaranteeKind_GuaranteeNothing, nil
|
|
case "guarantee_incremental":
|
|
return pdu.ReplicationGuaranteeKind_GuaranteeIncrementalReplication, nil
|
|
case "guarantee_resumability":
|
|
return pdu.ReplicationGuaranteeKind_GuaranteeResumability, nil
|
|
default:
|
|
return k, errors.Errorf("%q is not in guarantee_{nothing,incremental,resumability}", in)
|
|
}
|
|
}
|