Add context options to the runtime
This commit is contained in:
		| @@ -58,13 +58,16 @@ func (s *serviceRegistry) Register(srv *registry.Service, opts ...registry.Regis | ||||
| 	for _, o := range opts { | ||||
| 		o(&options) | ||||
| 	} | ||||
| 	if options.Context == nil { | ||||
| 		options.Context = context.TODO() | ||||
| 	} | ||||
|  | ||||
| 	// encode srv into protobuf and pack Register TTL into it | ||||
| 	pbSrv := ToProto(srv) | ||||
| 	pbSrv.Options.Ttl = int64(options.TTL.Seconds()) | ||||
|  | ||||
| 	// register the service | ||||
| 	_, err := s.client.Register(context.TODO(), pbSrv, s.callOpts()...) | ||||
| 	_, err := s.client.Register(options.Context, pbSrv, s.callOpts()...) | ||||
| 	if err != nil { | ||||
| 		return err | ||||
| 	} | ||||
| @@ -72,17 +75,33 @@ func (s *serviceRegistry) Register(srv *registry.Service, opts ...registry.Regis | ||||
| 	return nil | ||||
| } | ||||
|  | ||||
| func (s *serviceRegistry) Deregister(srv *registry.Service) error { | ||||
| func (s *serviceRegistry) Deregister(srv *registry.Service, opts ...registry.DeregisterOption) error { | ||||
| 	var options registry.DeregisterOptions | ||||
| 	for _, o := range opts { | ||||
| 		o(&options) | ||||
| 	} | ||||
| 	if options.Context == nil { | ||||
| 		options.Context = context.TODO() | ||||
| 	} | ||||
|  | ||||
| 	// deregister the service | ||||
| 	_, err := s.client.Deregister(context.TODO(), ToProto(srv), s.callOpts()...) | ||||
| 	_, err := s.client.Deregister(options.Context, ToProto(srv), s.callOpts()...) | ||||
| 	if err != nil { | ||||
| 		return err | ||||
| 	} | ||||
| 	return nil | ||||
| } | ||||
|  | ||||
| func (s *serviceRegistry) GetService(name string) ([]*registry.Service, error) { | ||||
| 	rsp, err := s.client.GetService(context.TODO(), &pb.GetRequest{ | ||||
| func (s *serviceRegistry) GetService(name string, opts ...registry.GetOption) ([]*registry.Service, error) { | ||||
| 	var options registry.GetOptions | ||||
| 	for _, o := range opts { | ||||
| 		o(&options) | ||||
| 	} | ||||
| 	if options.Context == nil { | ||||
| 		options.Context = context.TODO() | ||||
| 	} | ||||
|  | ||||
| 	rsp, err := s.client.GetService(options.Context, &pb.GetRequest{ | ||||
| 		Service: name, | ||||
| 	}, s.callOpts()...) | ||||
|  | ||||
| @@ -97,8 +116,16 @@ func (s *serviceRegistry) GetService(name string) ([]*registry.Service, error) { | ||||
| 	return services, nil | ||||
| } | ||||
|  | ||||
| func (s *serviceRegistry) ListServices() ([]*registry.Service, error) { | ||||
| 	rsp, err := s.client.ListServices(context.TODO(), &pb.ListRequest{}, s.callOpts()...) | ||||
| func (s *serviceRegistry) ListServices(opts ...registry.ListOption) ([]*registry.Service, error) { | ||||
| 	var options registry.ListOptions | ||||
| 	for _, o := range opts { | ||||
| 		o(&options) | ||||
| 	} | ||||
| 	if options.Context == nil { | ||||
| 		options.Context = context.TODO() | ||||
| 	} | ||||
|  | ||||
| 	rsp, err := s.client.ListServices(options.Context, &pb.ListRequest{}, s.callOpts()...) | ||||
| 	if err != nil { | ||||
| 		return nil, err | ||||
| 	} | ||||
| @@ -116,8 +143,11 @@ func (s *serviceRegistry) Watch(opts ...registry.WatchOption) (registry.Watcher, | ||||
| 	for _, o := range opts { | ||||
| 		o(&options) | ||||
| 	} | ||||
| 	if options.Context == nil { | ||||
| 		options.Context = context.TODO() | ||||
| 	} | ||||
|  | ||||
| 	stream, err := s.client.Watch(context.TODO(), &pb.WatchRequest{ | ||||
| 	stream, err := s.client.Watch(options.Context, &pb.WatchRequest{ | ||||
| 		Service: options.Service, | ||||
| 	}, s.callOpts()...) | ||||
|  | ||||
|   | ||||
		Reference in New Issue
	
	Block a user