Newer
Older
Andre Sterba
committed
package registration
import (
"context"
Andre Sterba
committed
"time"
"code.fbi.h-da.de/danet/gosdn/api/go/gosdn/app"
"google.golang.org/grpc"
"google.golang.org/grpc/credentials/insecure"
)
// Register registers a new app at the control plane.
func Register(ctx context.Context, gosdnAddress, name, token string) (string, error) {
conn, err := grpc.NewClient(gosdnAddress, grpc.WithTransportCredentials(insecure.NewCredentials()))
Andre Sterba
committed
if err != nil {
return "", err
}
defer func() {
if ferr := conn.Close(); ferr != nil {
fErrString := ferr.Error()
err = fmt.Errorf("InternalError=%w DeferError=%+s", err, fErrString)
}
}()
Andre Sterba
committed
appService := app.NewAppServiceClient(conn)
request := &app.AppRegisterRequest{
Timestamp: time.Now().UnixNano(),
Appname: name,
Token: token,
}
response, err := appService.Register(ctx, request)
if err != nil {
return "", err
}
return response.Queueconnection, nil
}