i found i can not build the service-center binary from source code, first i encounter the flollowing errors:
github.com/coreos/etcd/clientv3
../../coreos/etcd/clientv3/client.go:346: cannot use c.tokenCred (type *authTokenCredential) as type credentials.PerRPCCredentials in argument to grpc.WithPerRPCCredentials:
*authTokenCredential does not implement credentials.PerRPCCredentials (wrong type for GetRequestMetadata method)
have GetRequestMetadata("context".Context, ...string) (map[string]string, error)
want GetRequestMetadata("github.com/coreos/etcd/vendor/golang.org/x/net/context".Context, ...string) (map[string]string, error)
../../coreos/etcd/clientv3/client.go:421: cannot use client.balancer (type *healthBalancer) as type grpc.Balancer in argument to grpc.WithBalancer:
*healthBalancer does not implement grpc.Balancer (wrong type for Get method)
have Get("context".Context, grpc.BalancerGetOptions) (grpc.Address, func(), error)
want Get("github.com/coreos/etcd/vendor/golang.org/x/net/context".Context, grpc.BalancerGetOptions) (grpc.Address, func(), error)
../../coreos/etcd/clientv3/retry.go:147: cannot use retryKVClient literal (type *retryKVClient) as type etcdserverpb.KVClient in return argument:
*retryKVClient does not implement etcdserverpb.KVClient (wrong type for Compact method)
have Compact("context".Context, *etcdserverpb.CompactionRequest, ...grpc.CallOption) (*etcdserverpb.CompactionResponse, error)
want Compact("github.com/coreos/etcd/vendor/golang.org/x/net/context".Context, *etcdserverpb.CompactionRequest, ...grpc.CallOption) (*etcdserverpb.CompactionResponse, error)
../../coreos/etcd/clientv3/retry.go:200: cannot use retryLeaseClient literal (type *retryLeaseClient) as type etcdserverpb.LeaseClient in return argument:
*retryLeaseClient does not implement etcdserverpb.LeaseClient (wrong type for LeaseGrant method)
have LeaseGrant("context".Context, *etcdserverpb.LeaseGrantRequest, ...grpc.CallOption) (*etcdserverpb.LeaseGrantResponse, error)
want LeaseGrant("github.com/coreos/etcd/vendor/golang.org/x/net/context".Context, *etcdserverpb.LeaseGrantRequest, ...grpc.CallOption) (*etcdserverpb.LeaseGrantResponse, error)
../../coreos/etcd/clientv3/retry.go:254: cannot use retryClusterClient literal (type *retryClusterClient) as type etcdserverpb.ClusterClient in return argument:
*retryClusterClient does not implement etcdserverpb.ClusterClient (wrong type for MemberAdd method)
have MemberAdd("context".Context, *etcdserverpb.MemberAddRequest, ...grpc.CallOption) (*etcdserverpb.MemberAddResponse, error)
want MemberAdd("github.com/coreos/etcd/vendor/golang.org/x/net/context".Context, *etcdserverpb.MemberAddRequest, ...grpc.CallOption) (*etcdserverpb.MemberAddResponse, error)
../../coreos/etcd/clientv3/retry.go:299: cannot use retryMaintenanceClient literal (type *retryMaintenanceClient) as type etcdserverpb.MaintenanceClient in return argument:
*retryMaintenanceClient does not implement etcdserverpb.MaintenanceClient (wrong type for Alarm method)
have Alarm("context".Context, *etcdserverpb.AlarmRequest, ...grpc.CallOption) (*etcdserverpb.AlarmResponse, error)
want Alarm("github.com/coreos/etcd/vendor/golang.org/x/net/context".Context, *etcdserverpb.AlarmRequest, ...grpc.CallOption) (*etcdserverpb.AlarmResponse, error)
../../coreos/etcd/clientv3/retry.go:368: cannot use retryAuthClient literal (type *retryAuthClient) as type etcdserverpb.AuthClient in return argument:
*retryAuthClient does not implement etcdserverpb.AuthClient (wrong type for AuthDisable method)
have AuthDisable("context".Context, *etcdserverpb.AuthDisableRequest, ...grpc.CallOption) (*etcdserverpb.AuthDisableResponse, error)
want AuthDisable("github.com/coreos/etcd/vendor/golang.org/x/net/context".Context, *etcdserverpb.AuthDisableRequest, ...grpc.CallOption) (*etcdserverpb.AuthDisableResponse, error)
github.com/coreos/etcd/proxy/grpcproxy/adapter
../../coreos/etcd/proxy/grpcproxy/adapter/auth_client_adapter.go:28: cannot use as2ac literal (type *as2ac) as type etcdserverpb.AuthClient in return argument:
*as2ac does not implement etcdserverpb.AuthClient (wrong type for AuthDisable method)
have AuthDisable("context".Context, *etcdserverpb.AuthDisableRequest, ...grpc.CallOption) (*etcdserverpb.AuthDisableResponse, error)
want AuthDisable("github.com/coreos/etcd/vendor/golang.org/x/net/context".Context, *etcdserverpb.AuthDisableRequest, ...grpc.CallOption) (*etcdserverpb.AuthDisableResponse, error)
../../coreos/etcd/proxy/grpcproxy/adapter/chan_stream.go:151: cannot use srv (type *chanStream) as type grpc.Stream in field value:
*chanStream does not implement grpc.Stream (wrong type for Context method)
have Context() "context".Context
want Context() "github.com/coreos/etcd/vendor/golang.org/x/net/context".Context
../../coreos/etcd/proxy/grpcproxy/adapter/cluster_client_adapter.go:28: cannot use cls2clc literal (type *cls2clc) as type etcdserverpb.ClusterClient in return argument:
*cls2clc does not implement etcdserverpb.ClusterClient (wrong type for MemberAdd method)
have MemberAdd("context".Context, *etcdserverpb.MemberAddRequest, ...grpc.CallOption) (*etcdserverpb.MemberAddResponse, error)
want MemberAdd("github.com/coreos/etcd/vendor/golang.org/x/net/context".Context, *etcdserverpb.MemberAddRequest, ...grpc.CallOption) (*etcdserverpb.MemberAddResponse, error)
../../coreos/etcd/proxy/grpcproxy/adapter/election_client_adapter.go:28: cannot use es2ec literal (type *es2ec) as type v3electionpb.ElectionClient in return argument:
*es2ec does not implement v3electionpb.ElectionClient (wrong type for Campaign method)
have Campaign("context".Context, *v3electionpb.CampaignRequest, ...grpc.CallOption) (*v3electionpb.CampaignResponse, error)
want Campaign("github.com/coreos/etcd/vendor/golang.org/x/net/context".Context, *v3electionpb.CampaignRequest, ...grpc.CallOption) (*v3electionpb.CampaignResponse, error)
then i replace all "golang.org/x/net/context" to "context" except code in vendor dir, then run go build -o service-center
, but i still got many errors, such as:
server/core/proto/services.pb.go:3615: cannot use _ServiceCtrl_Exist_Handler (type func(interface {}, "context".Context, func(interface {}) error, grpc.UnaryServerInterceptor) (interface {}, error)) as type grpc.methodHandler in field value
server/core/proto/services.pb.go:3619: cannot use _ServiceCtrl_Create_Handler (type func(interface {}, "context".Context, func(interface {}) error, grpc.UnaryServerInterceptor) (interface {}, error)) as type grpc.methodHandler in field value
server/core/proto/services.pb.go:3623: cannot use _ServiceCtrl_Delete_Handler (type func(interface {}, "context".Context, func(interface {}) error, grpc.UnaryServerInterceptor) (interface {}, error)) as type grpc.methodHandler in field value
server/core/proto/services.pb.go:3627: cannot use _ServiceCtrl_GetOne_Handler (type func(interface {}, "context".Context, func(interface {}) error, grpc.UnaryServerInterceptor) (interface {}, error)) as type grpc.methodHandler in field value
server/core/proto/services.pb.go:3631: cannot use _ServiceCtrl_GetServices_Handler (type func(interface {}, "context".Context, func(interface {}) error, grpc.UnaryServerInterceptor) (interface {}, error)) as type grpc.methodHandler in field value
server/core/proto/services.pb.go:3635: cannot use _ServiceCtrl_UpdateProperties_Handler (type func(interface {}, "context".Context, func(interface {}) error, grpc.UnaryServerInterceptor) (interface {}, error)) as type grpc.methodHandler in field value
server/core/proto/services.pb.go:3639: cannot use _ServiceCtrl_AddRule_Handler (type func(interface {}, "context".Context, func(interface {}) error, grpc.UnaryServerInterceptor) (interface {}, error)) as type grpc.methodHandler in field value
server/core/proto/services.pb.go:3643: cannot use _ServiceCtrl_GetRule_Handler (type func(interface {}, "context".Context, func(interface {}) error, grpc.UnaryServerInterceptor) (interface {}, error)) as type grpc.methodHandler in field value
server/core/proto/services.pb.go:3647: cannot use _ServiceCtrl_UpdateRule_Handler (type func(interface {}, "context".Context, func(interface {}) error, grpc.UnaryServerInterceptor) (interface {}, error)) as type grpc.methodHandler in field value
server/core/proto/services.pb.go:3651: cannot use _ServiceCtrl_DeleteRule_Handler (type func(interface {}, "context".Context, func(interface {}) error, grpc.UnaryServerInterceptor) (interface {}, error)) as type grpc.methodHandler in field value
server/core/proto/services.pb.go:3651: too many errors
i wonder how to build the binary from service center source code? thanks!