refactor registry awareness logic

This commit is contained in:
A.Unger
2020-11-12 09:50:59 +01:00
parent 89ccb8110d
commit bdfea8ee2e
3 changed files with 39 additions and 27 deletions

View File

@@ -0,0 +1,35 @@
package registry
import (
"os"
"strings"
etcdr "github.com/micro/go-micro/v2/registry/etcd"
mdnsr "github.com/micro/go-micro/v2/registry/mdns"
"github.com/micro/go-micro/v2/registry"
)
var (
registryEnv = "MICRO_REGISTRY"
registryAddressEnv = "MICRO_REGISTRY_ADDRESS"
)
// GetRegistry returns a configured micro registry based on Micro env vars.
// It defaults to mDNS, so mind that systems with mDNS disabled by default (i.e SUSE) will have a hard time
// and it needs to explicitly use etcd. Os awareness for providing a working registry out of the box should be done.
func GetRegistry() *registry.Registry {
addresses := strings.Split(os.Getenv(registryAddressEnv), ",")
var r registry.Registry
switch os.Getenv(registryEnv) {
case "etcd":
r = etcdr.NewRegistry(
registry.Addrs(addresses...),
)
default:
r = mdnsr.NewRegistry()
}
return &r
}

View File

@@ -4,14 +4,11 @@ import (
"os"
"strings"
etcdr "github.com/micro/go-micro/v2/registry/etcd"
mdnsr "github.com/micro/go-micro/v2/registry/mdns"
"github.com/micro/go-micro/v2"
"github.com/micro/go-micro/v2/registry"
"github.com/micro/cli/v2"
"github.com/owncloud/ocis/ocis-pkg/log"
oregistry "github.com/owncloud/ocis/ocis-pkg/registry"
"github.com/owncloud/ocis/ocis/pkg/config"
"github.com/owncloud/ocis/ocis/pkg/flagset"
"github.com/owncloud/ocis/ocis/pkg/register"
@@ -50,15 +47,7 @@ func Execute() error {
)
}
addresses := strings.Split(os.Getenv("MICRO_REGISTRY_ADDRESS"), ",")
var r registry.Registry
switch os.Getenv("MICRO_REGISTRY") {
case "etcd":
r = etcdr.NewRegistry(registry.Addrs(addresses...))
default:
r = mdnsr.NewRegistry()
}
r := *oregistry.GetRegistry()
opts := micro.Options{
Registry: r,

View File

@@ -2,16 +2,12 @@ package external
import (
"context"
"os"
"strings"
"time"
etcdr "github.com/micro/go-micro/v2/registry/etcd"
mdnsr "github.com/micro/go-micro/v2/registry/mdns"
"github.com/micro/go-micro/v2/broker"
"github.com/micro/go-micro/v2/registry"
"github.com/owncloud/ocis/ocis-pkg/log"
oregistry "github.com/owncloud/ocis/ocis-pkg/registry"
)
// RegisterGRPCEndpoint publishes an arbitrary endpoint to the service-registry. This allows to query nodes of
@@ -29,15 +25,7 @@ func RegisterGRPCEndpoint(ctx context.Context, serviceID, uuid, addr string, log
node.Metadata["transport"] = "grpc"
node.Metadata["protocol"] = "grpc"
addresses := strings.Split(os.Getenv("MICRO_REGISTRY_ADDRESS"), ",")
var r registry.Registry
switch os.Getenv("MICRO_REGISTRY") {
case "etcd":
r = etcdr.NewRegistry(registry.Addrs(addresses...))
default:
r = mdnsr.NewRegistry()
}
r := *oregistry.GetRegistry()
service := &registry.Service{
Name: serviceID,