Skip to content

Netcracker/qubership-core-lib-go-maas-core

Go build Coverage duplicated_lines_density vulnerabilities bugs code_smells

core

This lib provides methods to build maas clients with defaults required parameters: logger, namespace, maasAgentUrl and authSupplier.

To use any client it's necessary to register security implemention - dummy or your own, the followning example shows registration of required services:

import (
	"github.com/netcracker/qubership-core-lib-go/v3/serviceloader"
	"github.com/netcracker/qubership-core-lib-go/v3/security"
)

func init() {
  serviceloader.Register(2, &security.DummyToken{})
}

Kafka

Default usage:

import (
	"context"
	"fmt"
	"github.com/netcracker/qubership-core-lib-go/v3/serviceloader"
	"github.com/netcracker/qubership-core-lib-go/v3/security"
	"github.com/netcracker/qubership-core-lib-go-maas-client/v3/classifier"
	maas "github.com/netcracker/qubership-core-lib-go-maas-core/v3"
)

func init() {
  serviceloader.Register(2, &security.DummyToken{})
}

func kafkaClientWithDefaults(ctx context.Context) error {
	maasKafkaClient := maas.NewKafkaClient()
	topicAddr, err := maasKafkaClient.GetTopic(ctx, classifier.New("demo").WithNamespace("namespace"))
	if err != nil {
		return err
	}
	fmt.Printf("topic = %s", topicAddr.TopicName)
	return nil
}

Override default parameters

import (
	"github.com/netcracker/qubership-core-lib-go/v3/serviceloader"
	"github.com/netcracker/qubership-core-lib-go/v3/security"
	"github.com/netcracker/qubership-core-lib-go-maas-client/v3/logging"
	maas "github.com/netcracker/qubership-core-lib-go-maas-core/v3"
)

var myNamespace string
var myMaaSAgentUrl string
var myAuthSupplier func(ctx context.Context) (string, error)

func init() {
  serviceloader.Register(2, &security.DummyToken{})
}

func kafkaClientWithCustomParams() {
    maasKafkaClient := maas.NewKafkaClient(
        maas.WithNamespace(myNamespace), 
        maas.WithMaaSAgentUrl(myMaaSAgentUrl), 
        maas.WithAuthSupplier(myAuthSupplier))
}

Watching tenant topics:

See example tenant-topics-watch.go

Rabbit

Default usage:

import (
	"context"
	"fmt"
	"github.com/netcracker/qubership-core-lib-go/v3/serviceloader"
	"github.com/netcracker/qubership-core-lib-go/v3/security"
	"github.com/netcracker/qubership-core-lib-go-maas-client/v3/classifier"
	maas "github.com/netcracker/qubership-core-lib-go-maas-core/v3"
)

func init() {
  serviceloader.Register(2, &security.DummyToken{})
}

func kafkaClientWithDefaults(ctx context.Context) error {
	maasRabbitClient := maas.NewRabbitClient()
	vhost, err := maasRabbitClient.GetVhost(ctx, classifier.New("demo").WithNamespace("namespace"))
	if err != nil {
		return err
	}
	fmt.Printf("vhost user = %s", vhost.Username)
	return nil
}

About

No description or website provided.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

No packages published

Contributors 9

Languages