diff --git a/integration_tests/management/network_map_db/pgsql/base_data.sql b/integration_tests/management/network_map_db/pgsql/base_data.sql index b75f25ff4..012594488 100644 --- a/integration_tests/management/network_map_db/pgsql/base_data.sql +++ b/integration_tests/management/network_map_db/pgsql/base_data.sql @@ -1,7 +1,7 @@ -insert into accounts (id, network_identifier, network_net, network_net_v6, network_dns, network_serial) -VALUES('account-1','network-1','{"IP":"100.103.0.0","Mask":"//8AAA=="}','{"IP":"fdde:e995:fd38:a465::","Mask":"//////////8AAAAAAAAAAA=="}','',1); -insert into accounts (id, network_identifier, network_net, network_net_v6, network_dns, network_serial) -VALUES('account-2','network-2','{"IP":"110.0.0.0","Mask":"//8AAA=="}','{"IP":"fddf:e995:fd38:a465::","Mask":"//////////8AAAAAAAAAAA=="}','',2); +insert into accounts (id, network_identifier, network_net, network_net_v6, network_dns, network_serial,dns_settings_disabled_management_groups) +VALUES('account-1','network-1','{"IP":"100.103.0.0","Mask":"//8AAA=="}','{"IP":"fdde:e995:fd38:a465::","Mask":"//////////8AAAAAAAAAAA=="}','',1,'["disabled-group-1","disabled-group-2"]'); +insert into accounts (id, network_identifier, network_net, network_net_v6, network_dns, network_serial,dns_settings_disabled_management_groups) +VALUES('account-2','network-2','{"IP":"110.0.0.0","Mask":"//8AAA=="}','{"IP":"fddf:e995:fd38:a465::","Mask":"//////////8AAAAAAAAAAA=="}','',2,null); insert into groups (id, account_id, name, resources, public_id) VALUES('group-one-resource-id','account-1','group-1-name', '[{"ID":"host-id-1","Type":"host"}]','group-one-resource-id-public'); insert into groups (id, account_id, name, resources, public_id) VALUES('group-two-resources-id','account-1','group-2-name', '[{"ID":"subnet-id-1","Type":"subnet"}, {"ID":"host-id-2","Type":"host"}]','group-two-resources-id-public'); insert into groups (id, account_id, name, resources, public_id) VALUES('group-no-resources-id','account-1','group-3-name', null,'group-no-resources-id-public'); 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 new file mode 100644 index 000000000..64ca1afd0 --- /dev/null +++ b/integration_tests/management/network_map_db/pgsql/dns_settings_test.go @@ -0,0 +1,23 @@ +package networkmap_pgsql + +import ( + "context" + "testing" + + "github.com/netbirdio/netbird/shared/management/networkmap/nmdata" + "github.com/stretchr/testify/assert" +) + +func TestGetDnsSettings(t *testing.T) { + ctx := context.TODO() + + settings, err := pgstore.GetDnsSettings(ctx, "account-1") + assert.NoError(t, err) + assert.Equal(t, settings, nmdata.DNSSettings{ + DisabledManagementGroups: []string{"disabled-group-1", "disabled-group-2"}, + }) + + settings, err = pgstore.GetDnsSettings(ctx, "account-2") + assert.NoError(t, err) + assert.Equal(t, settings, nmdata.DNSSettings{}) +} diff --git a/management/internals/network_map_db/pgsql/dns_settings.go b/management/internals/network_map_db/pgsql/dns_settings.go index d3938e4bc..7dc921827 100644 --- a/management/internals/network_map_db/pgsql/dns_settings.go +++ b/management/internals/network_map_db/pgsql/dns_settings.go @@ -41,6 +41,10 @@ func rowToDnsSettings(row pgx.CollectableRow) (nmdata.DNSSettings, error) { return value, err } + if settings == nil { + return nmdata.DNSSettings{}, nil + } + if err := json.Unmarshal(settings, &value.DisabledManagementGroups); err != nil { return value, err }