mirror of
https://github.com/netbirdio/netbird.git
synced 2026-09-20 13:49:07 +02:00
added GetDomains test
Signed-off-by: Dmitri Dolguikh <dmitri.external@netbird.io>
This commit is contained in:
@@ -0,0 +1,40 @@
|
|||||||
|
package networkmap_pgsql
|
||||||
|
|
||||||
|
import (
|
||||||
|
"context"
|
||||||
|
"database/sql"
|
||||||
|
"testing"
|
||||||
|
|
||||||
|
networkmap_pgsql "github.com/netbirdio/netbird/management/internals/network_map_db/pgsql"
|
||||||
|
"github.com/stretchr/testify/assert"
|
||||||
|
)
|
||||||
|
|
||||||
|
func TestGetDomains(t *testing.T) {
|
||||||
|
ctx := context.TODO()
|
||||||
|
|
||||||
|
_, err := pgstore.Pool.Query(ctx,
|
||||||
|
`insert into domains (id, account_id, domain, target_cluster)
|
||||||
|
VALUES('domain-1','account-1','test-1.com','target-1.cluster.local')`)
|
||||||
|
assert.NoError(t, err)
|
||||||
|
_, err = pgstore.Pool.Query(ctx,
|
||||||
|
`insert into domains (id, account_id, domain, target_cluster)
|
||||||
|
VALUES('domain-2','account-1','test-2.com','target-2.cluster.local')`)
|
||||||
|
assert.NoError(t, err)
|
||||||
|
_, err = pgstore.Pool.Query(ctx,
|
||||||
|
`insert into domains (id, account_id, domain, target_cluster)
|
||||||
|
VALUES('domain-3','account-1',null,null)`)
|
||||||
|
assert.NoError(t, err)
|
||||||
|
|
||||||
|
domains, err := pgstore.GetDomains(ctx, "account-1")
|
||||||
|
assert.NoError(t, err)
|
||||||
|
assert.Len(t, domains, 2)
|
||||||
|
|
||||||
|
assert.Contains(t, domains, networkmap_pgsql.Domain{
|
||||||
|
Domain: sql.NullString{String: "test-1.com", Valid: true},
|
||||||
|
TargetCluster: sql.NullString{String: "target-1.cluster.local", Valid: true},
|
||||||
|
})
|
||||||
|
assert.Contains(t, domains, networkmap_pgsql.Domain{
|
||||||
|
Domain: sql.NullString{String: "test-2.com", Valid: true},
|
||||||
|
TargetCluster: sql.NullString{String: "target-2.cluster.local", Valid: true},
|
||||||
|
})
|
||||||
|
}
|
||||||
@@ -11,11 +11,11 @@ const (
|
|||||||
GetDomainsQuery = `
|
GetDomainsQuery = `
|
||||||
select domain, target_cluster
|
select domain, target_cluster
|
||||||
from domains
|
from domains
|
||||||
where account_id=$1
|
where account_id=$1 and domain<>'' and target_cluster<>''
|
||||||
`
|
`
|
||||||
)
|
)
|
||||||
|
|
||||||
func (pg *PgStore) GetDomains(ctx context.Context, accountId string) ([]domain, error) {
|
func (pg *PgStore) GetDomains(ctx context.Context, accountId string) ([]Domain, error) {
|
||||||
c, err := pg.Pool.Acquire(ctx)
|
c, err := pg.Pool.Acquire(ctx)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
@@ -23,16 +23,16 @@ func (pg *PgStore) GetDomains(ctx context.Context, accountId string) ([]domain,
|
|||||||
return GetDomainsViaPgxConnection(ctx, c.Conn(), accountId)
|
return GetDomainsViaPgxConnection(ctx, c.Conn(), accountId)
|
||||||
}
|
}
|
||||||
|
|
||||||
func GetDomainsViaPgxConnection(ctx context.Context, conn *pgx.Conn, accountId string) ([]domain, error) {
|
func GetDomainsViaPgxConnection(ctx context.Context, conn *pgx.Conn, accountId string) ([]Domain, error) {
|
||||||
rows, err := conn.Query(ctx, GetDomainsQuery, accountId)
|
rows, err := conn.Query(ctx, GetDomainsQuery, accountId)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
return pgx.CollectRows(rows, pgx.RowToStructByName[domain])
|
return pgx.CollectRows(rows, pgx.RowToStructByName[Domain])
|
||||||
}
|
}
|
||||||
|
|
||||||
type domain struct {
|
type Domain struct {
|
||||||
Domain sql.NullString
|
Domain sql.NullString
|
||||||
TargetCluster sql.NullString
|
TargetCluster sql.NullString
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -164,7 +164,7 @@ func toSliceOfPtrs[T any](all []T) []*T {
|
|||||||
return toret
|
return toret
|
||||||
}
|
}
|
||||||
|
|
||||||
func serviceDomainZone(svc service, ds []domain) string {
|
func serviceDomainZone(svc service, ds []Domain) string {
|
||||||
if domainFromSuffix(svc.Domain.String, svc.ProxyCluster.String) {
|
if domainFromSuffix(svc.Domain.String, svc.ProxyCluster.String) {
|
||||||
return svc.ProxyCluster.String
|
return svc.ProxyCluster.String
|
||||||
}
|
}
|
||||||
@@ -189,7 +189,7 @@ func domainFromSuffix(domain, suffix string) bool {
|
|||||||
return domain == suffix || strings.HasSuffix(domain, "."+suffix)
|
return domain == suffix || strings.HasSuffix(domain, "."+suffix)
|
||||||
}
|
}
|
||||||
|
|
||||||
func buildPrivateServiceCandidates(svcs []service, domains []domain, proxyPeersByCluster map[string][]*nmdata.Peer) []networkmap.PrivateServiceCandidate {
|
func buildPrivateServiceCandidates(svcs []service, domains []Domain, proxyPeersByCluster map[string][]*nmdata.Peer) []networkmap.PrivateServiceCandidate {
|
||||||
var out []networkmap.PrivateServiceCandidate
|
var out []networkmap.PrivateServiceCandidate
|
||||||
|
|
||||||
if len(proxyPeersByCluster) == 0 {
|
if len(proxyPeersByCluster) == 0 {
|
||||||
|
|||||||
Reference in New Issue
Block a user