Skip to content

Commit

Permalink
Merge branch 'master' into unit-test-for-nosqlplugin-cassandra-visibi…
Browse files Browse the repository at this point in the history
…lity
  • Loading branch information
d-vignesh authored Apr 30, 2024
2 parents 28e84f0 + bf088f2 commit 09e55ed
Show file tree
Hide file tree
Showing 28 changed files with 2,189 additions and 142 deletions.
4 changes: 2 additions & 2 deletions client/history/peer_resolver.go
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,7 @@ import (
"github.com/uber/cadence/common"
"github.com/uber/cadence/common/membership"
"github.com/uber/cadence/common/service"
"github.com/uber/cadence/service/history/lookup"
)

// PeerResolver is used to resolve history peers.
Expand Down Expand Up @@ -74,8 +75,7 @@ func (pr peerResolver) FromDomainID(domainID string) (string, error) {
// It uses our membership provider to lookup which instance currently owns the given shard.
// FromHostAddress is used for further resolving.
func (pr peerResolver) FromShardID(shardID int) (string, error) {
shardIDString := string(rune(shardID))
host, err := pr.resolver.Lookup(service.History, shardIDString)
host, err := lookup.HistoryServerByShardID(pr.resolver, shardID)
if err != nil {
return "", common.ToServiceTransientError(err)
}
Expand Down
521 changes: 521 additions & 0 deletions client/matching/client_test.go

Large diffs are not rendered by default.

86 changes: 86 additions & 0 deletions client/matching/loadbalancer_mock.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

Original file line number Diff line number Diff line change
Expand Up @@ -29,14 +29,22 @@ import (
// PeerResolver is used to resolve matching peers.
// Those are deployed instances of Cadence matching services that participate in the cluster ring.
// The resulting peer is simply an address of form ip:port where RPC calls can be routed to.
type PeerResolver struct {
//go:generate mockgen -package $GOPACKAGE -source $GOFILE -destination peer_resolver_mock.go -package matching github.com/uber/cadence/client/matching PeerResolver

type PeerResolver interface {
FromTaskList(taskListName string) (string, error)
GetAllPeers() ([]string, error)
FromHostAddress(hostAddress string) (string, error)
}

type peerResolver struct {
resolver membership.Resolver
namedPort string // grpc or tchannel, depends on yarpc configuration
}

// NewPeerResolver creates a new matching peer resolver.
func NewPeerResolver(membership membership.Resolver, namedPort string) PeerResolver {
return PeerResolver{
return peerResolver{
resolver: membership,
namedPort: namedPort,
}
Expand All @@ -45,7 +53,7 @@ func NewPeerResolver(membership membership.Resolver, namedPort string) PeerResol
// FromTaskList resolves the matching peer responsible for the given task list name.
// It uses our membership provider to lookup which instance currently owns the given task list.
// FromHostAddress is used for further resolving.
func (pr PeerResolver) FromTaskList(taskListName string) (string, error) {
func (pr peerResolver) FromTaskList(taskListName string) (string, error) {
host, err := pr.resolver.Lookup(service.Matching, taskListName)
if err != nil {
return "", common.ToServiceTransientError(err)
Expand All @@ -56,7 +64,7 @@ func (pr PeerResolver) FromTaskList(taskListName string) (string, error) {
}

// GetAllPeers returns all matching service peers in the cluster ring.
func (pr PeerResolver) GetAllPeers() ([]string, error) {
func (pr peerResolver) GetAllPeers() ([]string, error) {
hosts, err := pr.resolver.Members(service.Matching)
if err != nil {
return nil, common.ToServiceTransientError(err)
Expand All @@ -75,7 +83,7 @@ func (pr PeerResolver) GetAllPeers() ([]string, error) {
// FromHostAddress resolves the final matching peer responsible for the given host address.
// The address may be used as is, or processed with additional address mapper.
// In case of gRPC transport, the port within the address is replaced with gRPC port.
func (pr PeerResolver) FromHostAddress(hostAddress string) (string, error) {
func (pr peerResolver) FromHostAddress(hostAddress string) (string, error) {
host, err := pr.resolver.LookupByAddress(service.Matching, hostAddress)
if err != nil {
return "", common.ToServiceTransientError(err)
Expand Down
101 changes: 101 additions & 0 deletions client/matching/peer_resolver_mock.go

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

File renamed without changes.
Loading

0 comments on commit 09e55ed

Please sign in to comment.