From fb128b241ab91856f76df296a76e480e7dac79ce Mon Sep 17 00:00:00 2001 From: Michel Jouvin Date: Sun, 8 Dec 2024 10:18:01 +0100 Subject: [PATCH] metaconfig/named: fix validation of logging channels in categories Fixes #1784 --- .../src/main/metaconfig/named/pan/schema.pan | 13 +++++++------ .../main/metaconfig/named/tests/profiles/config.pan | 7 +++++-- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/ncm-metaconfig/src/main/metaconfig/named/pan/schema.pan b/ncm-metaconfig/src/main/metaconfig/named/pan/schema.pan index 304d415a9b..644fee08cd 100644 --- a/ncm-metaconfig/src/main/metaconfig/named/pan/schema.pan +++ b/ncm-metaconfig/src/main/metaconfig/named/pan/schema.pan @@ -7,10 +7,10 @@ declaration template metaconfig/named/schema; include 'pan/types'; -type named_acl_name = string with - exists ("/software/components/metaconfig/services/{/etc/named.conf}/contents/acls/" + SELF) || +type named_acl_name = string with exists ( + format("/software/components/metaconfig/services/{/etc/named.conf}/contents/acls/", SELF)) || match (SELF, "^(none|localhost|any|localnets)$") || - error ("ACL with name " + SELF + " is not defined"); + error ("ACL with name %s is not defined", SELF); type named_source = { "ip" ? type_ip @@ -95,9 +95,10 @@ type named_zone = { true; }; -type named_channel_name = string with - exists ("/software/components/metaconfig/services/{/etc/named.conf}/contents/logging/" + SELF) || - error (SELF + " doesn't refer to a logging channel"); +type named_channel_name = string with exists ( + format("/software/components/metaconfig/services/{/etc/named.conf}/contents/logging/channels/%s", SELF)) || error ( + "%s doesn't refer to a logging channel", SELF, +); @{ Named log parameters diff --git a/ncm-metaconfig/src/main/metaconfig/named/tests/profiles/config.pan b/ncm-metaconfig/src/main/metaconfig/named/tests/profiles/config.pan index b43b7ec0d6..4c25fe8436 100644 --- a/ncm-metaconfig/src/main/metaconfig/named/tests/profiles/config.pan +++ b/ncm-metaconfig/src/main/metaconfig/named/tests/profiles/config.pan @@ -6,8 +6,11 @@ prefix "/software/components/metaconfig/services/{/etc/named.conf}/contents"; "logging/channels/default_debug" = dict ( "severity", "dynamic", - "file", "data/named.run"); -"logging/category" = dict(); + "file", "data/named.run" +); +"logging/category" = dict( + "queries", list("default_debug"), +); "includes" = append("/etc/named.rfc1912.zones"); "includes" = append("/etc/another.conf");