support for GetPostureChecks in sqlite

Signed-off-by: Dmitri Dolguikh <dmitri.external@netbird.io>
This commit is contained in:
Dmitri Dolguikh
2026-08-11 13:42:14 +02:00
parent 1caa0ddf27
commit 4375fdc7b6
5 changed files with 50 additions and 16 deletions

View File

@@ -7,15 +7,11 @@ import (
"net/netip"
"testing"
"github.com/netbirdio/netbird/management/server/types"
"github.com/netbirdio/netbird/shared/management/networkmap/nmdata"
"github.com/stretchr/testify/assert"
)
func TestGetPostureChecks(t *testing.T) {
if engine == string(types.SqliteStoreEngine) {
t.Skip()
}
ctx := context.TODO()
execQuery(t, ctx,

View File

@@ -2,8 +2,6 @@ package networkmap_pgsql
import (
"context"
"database/sql"
"encoding/json"
"reflect"
"github.com/jackc/pgx/v5"
@@ -25,7 +23,7 @@ func (pgc *PgStoreConn) GetPostureChecks(ctx context.Context, accountId string)
return nil, nil, err
}
checks, err := pgx.CollectRows(rows, pgx.RowToStructByName[posturechecks])
checks, err := pgx.CollectRows(rows, pgx.RowToStructByName[networkmapdb.PostureChecks])
if err != nil {
return nil, nil, err
}
@@ -44,9 +42,3 @@ func (pgc *PgStoreConn) GetPostureChecks(ctx context.Context, accountId string)
return toret, idToPublicIDIdx, nil
}
type posturechecks struct {
ID string
PublicID sql.NullString `nmap:"skip"`
Checks json.RawMessage
}

View File

@@ -145,6 +145,12 @@ type Peer struct {
LocationConnectionIp []byte `nmap:"skip,json"`
}
type PostureChecks struct {
ID string
PublicID sql.NullString `nmap:"skip"`
Checks []byte `nmap:"json"`
}
func RecordTypeAndRdata(t, rdata string) (int, string, error) {
switch t {
case "A":

View File

@@ -0,0 +1,43 @@
package networkmap_sqlite
import (
"context"
"reflect"
networkmapdb "github.com/netbirdio/netbird/management/internals/network_map_db"
"github.com/netbirdio/netbird/shared/management/networkmap/nmdata"
)
const (
GetPostureChecksQuery = `
select id, public_id, checks
from posture_checks
where account_id=?
`
)
func (sc *SqliteStoreConn) GetPostureChecks(ctx context.Context, accountId string) ([]nmdata.PostureChecks, map[string]string, error) {
rows, err := sc.Conn.QueryContext(ctx, GetPostureChecksQuery, accountId)
if err != nil {
return nil, nil, err
}
checks, err := CollectRowsForSqlite[networkmapdb.PostureChecks](rows)
if err != nil {
return nil, nil, err
}
toret := make([]nmdata.PostureChecks, 0, len(checks))
idToPublicIDIdx := make(map[string]string)
for _, c := range checks {
checks := nmdata.PostureChecks{}
err := networkmapdb.FromSqlTypesToSharedTypes(reflect.ValueOf(&c), reflect.ValueOf(&checks))
if err != nil {
return nil, nil, err
}
toret = append(toret, checks)
idToPublicIDIdx[checks.ID] = c.PublicID.String
}
return toret, idToPublicIDIdx, nil
}

View File

@@ -123,9 +123,6 @@ func CollectRowsForSqlite[T any](rows *sql.Rows) ([]T, error) {
func (s *SqliteStoreConn) GetRoutes(ctx context.Context, accountId string) ([]nmdata.Route, error) {
return nil, nil
}
func (s *SqliteStoreConn) GetPostureChecks(ctx context.Context, accountId string) ([]nmdata.PostureChecks, map[string]string, error) {
return nil, nil, nil
}
func (s *SqliteStoreConn) GetAllowedUsers(ctx context.Context, accountId string) (map[string]struct{}, map[string][]string, error) {
return nil, nil, nil
}