diff --git a/integration_tests/management/network_map_db/pgsql/dns_settings_test.go b/integration_tests/management/network_map_db/pgsql/dns_settings_test.go index de0e9df70..95ac84aed 100644 --- a/integration_tests/management/network_map_db/pgsql/dns_settings_test.go +++ b/integration_tests/management/network_map_db/pgsql/dns_settings_test.go @@ -6,15 +6,11 @@ import ( "context" "testing" - "github.com/netbirdio/netbird/management/server/types" "github.com/netbirdio/netbird/shared/management/networkmap/nmdata" "github.com/stretchr/testify/assert" ) func TestGetDnsSettings(t *testing.T) { - if engine == string(types.SqliteStoreEngine) { - t.Skip() - } ctx := context.TODO() settings, err := conn(t, ctx).GetDnsSettings(ctx, "account-1") diff --git a/management/internals/network_map_db/sqlite/dns_setting.go b/management/internals/network_map_db/sqlite/dns_setting.go new file mode 100644 index 000000000..6cfc27d37 --- /dev/null +++ b/management/internals/network_map_db/sqlite/dns_setting.go @@ -0,0 +1,42 @@ +package networkmap_sqlite + +import ( + "context" + "encoding/json" + + "github.com/netbirdio/netbird/shared/management/networkmap/nmdata" +) + +const ( + GetDnsSettingsQuery = ` + select dns_settings_disabled_management_groups + from accounts + where id=$1 + ` +) + +func (sc *SqliteStoreConn) GetDnsSettings(ctx context.Context, accountId string) (nmdata.DNSSettings, error) { + rows, err := sc.Conn.QueryContext(ctx, GetDnsSettingsQuery, accountId) + if err != nil { + return nmdata.DNSSettings{}, err + } + defer rows.Close() + + var value nmdata.DNSSettings + var settings []byte + + rows.Next() + if err := rows.Scan(&settings); err != nil { + return value, err + } + + if settings == nil { + return nmdata.DNSSettings{}, nil + } + + if err := json.Unmarshal(settings, &value.DisabledManagementGroups); err != nil { + return value, err + } + + return value, nil +} diff --git a/management/internals/network_map_db/sqlite/sqlite_store.go b/management/internals/network_map_db/sqlite/sqlite_store.go index bd25ef5ab..ecfb9ec08 100644 --- a/management/internals/network_map_db/sqlite/sqlite_store.go +++ b/management/internals/network_map_db/sqlite/sqlite_store.go @@ -2,6 +2,7 @@ package networkmap_sqlite import ( "context" + "errors" "net/url" "path/filepath" "runtime" @@ -14,6 +15,8 @@ import ( "github.com/netbirdio/netbird/shared/management/networkmap/nmdata" ) +var ErrNoRows = errors.New("no rows in result set") + type SqliteStore struct { Db *sql.DB } @@ -116,9 +119,6 @@ func (s *SqliteStoreConn) GetPostureChecks(ctx context.Context, accountId string func (s *SqliteStoreConn) GetAllowedUsers(ctx context.Context, accountId string) (map[string]struct{}, map[string][]string, error) { return nil, nil, nil } -func (s *SqliteStoreConn) GetDnsSettings(ctx context.Context, accountId string) (nmdata.DNSSettings, error) { - return nmdata.DNSSettings{}, nil -} func (s *SqliteStoreConn) GetNetworkXIDToPublicIdMap(ctx context.Context, accountId string) (map[string]string, error) { return nil, nil }