incorrectly closed bracket in kea-dhcp4/6-server.yang model forcing to use corrupted XML file
Right now if user want to configure Kea using sysrepo with XML (and probably error will propagate to JSON) with logger included user have to use two XML files combined. e.g:
<config xmlns="urn:ietf:params:xml:ns:yang:kea-dhcp4-server">
<subnet4>
<subnet4>
<id>1</id>
<pools>
<pool>
<start-address>192.168.50.1</start-address>
<end-address>192.168.50.1</end-address>
</pool>
</pools>
<subnet>192.168.50.0/24</subnet>
<interface>eth2</interface>
</subnet4>
</subnet4>
<interfaces-config>
<interfaces>eth2</interfaces>
</interfaces-config>
<valid-lifetime>4000</valid-lifetime>
<renew-timer>1000</renew-timer>
<rebind-timer>2000</rebind-timer>
<lease-database>
<database-type>memfile</database-type>
</lease-database>
</config>
<logging xmlns="urn:ietf:params:xml:ns:yang:kea-dhcp4-server">
<loggers>
<logger>
<name>kea-dhcp4.dhcp4</name>
<output-options>
<option>
<output>/home/test/jenkins_lab/var/area_A/var/kea/kea.log</output>
</option>
</output-options>
<severity>INFO</severity>
</logger>
</loggers>
</logging>
This file has improper XML syntax (two main containers config and logging), and will break any automated generator/reader/validator... container 'logging' should be included within 'config'.
Correct file should look like this:
<config xmlns="urn:ietf:params:xml:ns:yang:kea-dhcp4-server">
<subnet4>
<subnet4>
<id>1</id>
<pools>
<pool>
<start-address>192.168.50.1</start-address>
<end-address>192.168.50.1</end-address>
</pool>
</pools>
<subnet>192.168.50.0/24</subnet>
<interface>eth2</interface>
</subnet4>
</subnet4>
<interfaces-config>
<interfaces>eth2</interfaces>
</interfaces-config>
<valid-lifetime>4000</valid-lifetime>
<renew-timer>1000</renew-timer>
<rebind-timer>2000</rebind-timer>
<lease-database>
<database-type>memfile</database-type>
</lease-database>
<logging>
<loggers>
<logger>
<name>kea-dhcp4.dhcp4</name>
<output-options>
<option>
<output>/home/test/jenkins_lab/var/area_A/var/kea/kea.log</output>
</option>
</output-options>
<severity>INFO</severity>
</logger>
</loggers>
</logging>
</config>
Incorrectly closed bracket in files: ./src/lib/yang/models/kea-dhcp6-server.yang ./src/lib/yang/models/kea-dhcp4-server.yang cause this situation. Fix is simple closing bracket of container 'config' should be moved below container 'logging':
diff --git a/src/lib/yang/models/kea-dhcp4-server.yang b/src/lib/yang/models/kea-dhcp4-server.yang
index e997dfbed..fd15885eb 100644
--- a/src/lib/yang/models/kea-dhcp4-server.yang
+++ b/src/lib/yang/models/kea-dhcp4-server.yang
@@ -405,15 +405,13 @@ module kea-dhcp4-server {
description "Global host reservations.";
}
}
- }
-
- container logging {
+ container logging {
// config true;
description "Logging";
uses logging:configuration;
}
-
+}
/*
* State data
*/
diff --git a/src/lib/yang/models/kea-dhcp6-server.yang b/src/lib/yang/models/kea-dhcp6-server.yang
index e39847382..c39a83cb0 100644
--- a/src/lib/yang/models/kea-dhcp6-server.yang
+++ b/src/lib/yang/models/kea-dhcp6-server.yang
@@ -447,15 +447,13 @@ module kea-dhcp6-server {
description "Global host reservations.";
}
}
- }
-
- container logging {
+ container logging {
// config true;
description "Logging";
uses logging:configuration;
}
-
+}
/*
* State data
*/
Tested, with this change sysrepo accept correctly formatted XML file.