Hello,

That is indeed true.  The API will write out a complex file.  This is
because Kea is dumping the configuration from memory, which includes
all of the defaults.  There isn't a way around this that I am aware
of.

Thank you,
Darren Ankney

On Mon, Apr 14, 2025 at 10:01 AM tachibanash...@outlook.com
<tachibanash...@outlook.com> wrote:
>
> Hi Darren,
>
> I have tested config-write and it worked. But I do notice the generated json 
> file includes all the default parameters. It’s not as clear as your conf 
> file. I am wondering if you have some helper code which can convert between 
> them?
>
>
>
> Best,
> Yu
>
>
> On Apr 14, 2025, at 8:04 AM, tachibanash...@outlook.com wrote:
>
> Make sense, let me test on it. Thank you, Darren!
>
>
>
>
> On Apr 13, 2025, at 7:19 AM, Darren Ankney <darren.ank...@gmail.com> wrote:
>
> You will need to perform a config-write to write the changes to the config 
> file.  The changes made by API commands are only in memory until a 
> config-write is performed.
>
> On Thu, Apr 10, 2025 at 12:56 PM tachibanash...@outlook.com 
> <tachibanash...@outlook.com> wrote:
>>
>> Hi Razvan,
>>
>>
>> I run the API and now I got the return code “0” which according to the 
>> document should mean success. However, when I checked the kea-dhcp6.conf 
>> file on the target host, I still see the original configuration. I restarted 
>> the kea-dhcp6 service, but the configuration still hasn’t changed. I also 
>> tested the “subnet6-del” command and observed the same behaviors.
>>
>> Did I miss something else?
>>
>>
>>
>> ➜  ~ curl -X POST -H "Content-Type: application/json" -d '{ "command": 
>> "subnet6-update", "service": ["dhcp6"], "arguments": {"subnet6": [{"id": 
>> 1,"subnet": "fd74:5656:15e2:20::/64"}] } }' http://192.168.100.112:8000/ -s 
>> | jq
>> [
>>   {
>>     "arguments": {
>>       "subnets": [
>>         {
>>           "id": 1,
>>           "subnet": "fd74:5656:15e2:20::/64"
>>         }
>>       ]
>>     },
>>     "result": 0,
>>     "text": "IPv6 subnet updated"
>>   }
>> ]
>>
>>
>> ➜  ~ curl -X POST -H "Content-Type: application/json" -d '{ "command": 
>> "subnet6-del", "service": ["dhcp6"],"arguments": {"id": 1}  }' 
>> http://192.168.100.112:8000/ -s | jq
>> [
>>   {
>>     "arguments": {
>>       "subnets": [
>>         {
>>           "id": 1,
>>           "subnet": "fd74:5656:15e2:10::/64"
>>         }
>>       ]
>>     },
>>     "result": 0,
>>     "text": "IPv6 subnet fd74:5656:15e2:10::/64 (id 1) deleted"
>>   }
>> ]
>>
>>
>> # Finally, we list the subnets from which we will be leasing addresses.
>>     "subnet6": [
>>         {
>>             "id": 1,
>>             "subnet": "fd74:5656:15e2:10::/64",
>>             "pools": [
>>                 {
>>                     "pool": "fd74:5656:15e2:10::200-fd74:5656:15e2:10::9999"
>>                 }
>>              ],
>>             "interface": "ens18"
>>         }
>>     ],
>>
>>
>>
>>
>> On Apr 10, 2025, at 9:22 AM, Razvan Becheriu <raz...@isc.org> wrote:
>>
>> In this file you can find the CA endpoint : address and port.
>>
>> Please use these for commands.
>>
>> Regards,
>> Razvan
>>
>>
>> ________________________________
>> From: Razvan <raz...@isc.org>
>> To: Kea <kea-users@lists.isc.org>
>> Cc: Kea <kea-users@lists.isc.org>
>> Date: Thursday, 10 April 2025 4:08 PM EEST
>> Subject: Re: [Kea-users] Problem when using libdhcp_subnet_cmds.so in kea 
>> 2.7.7
>>
>> can you please attach/paste the content of
>>
>> /etc/kea/kea-ctrl-agent.conf
>>
>>
>> Thank you,
>> Razvan
>>
>> ________________________________
>> From: tachibanashita <tachibanash...@outlook.com>
>> To: Kea <kea-users@lists.isc.org>
>> Date: Thursday, 10 April 2025 3:53 PM EEST
>> Subject: Re: [Kea-users] Problem when using libdhcp_subnet_cmds.so in kea 
>> 2.7.7
>>
>> Hi Raven,
>>
>> Thank you for your response! I run the curl command from my laptop which is 
>> in the same LAN as both kea hosts, both have the control-agent running. I 
>> just tried to put standby node kea02 with .112 IP in “in-maintenance” mode 
>> and tried to send API again, but still got the same error.
>>
>>
>>
>> systemctl status kea-ctrl-agent.service
>> ● kea-ctrl-agent.service - Kea Control Agent
>>    Loaded: loaded (/usr/lib/systemd/system/kea-ctrl-agent.service; enabled; 
>> vendor preset: disabled)
>>    Active: active (running) since Tue 2025-04-08 21:04:55 EDT; 1 day 11h ago
>>      Docs: man:kea-ctrl-agent(8)
>>  Main PID: 1178 (kea-ctrl-agent)
>>     Tasks: 1 (limit: 11016)
>>    Memory: 8.1M
>>    CGroup: /system.slice/kea-ctrl-agent.service
>>            └─1178 /usr/sbin/kea-ctrl-agent -c /etc/kea/kea-ctrl-agent.conf
>>
>> ● kea-ctrl-agent.service - Kea Control Agent
>>    Loaded: loaded (/usr/lib/systemd/system/kea-ctrl-agent.service; enabled; 
>> vendor preset: disabled)
>>    Active: active (running) since Tue 2025-04-08 21:12:34 EDT; 1 day 11h ago
>>      Docs: man:kea-ctrl-agent(8)
>>  Main PID: 2523 (kea-ctrl-agent)
>>     Tasks: 1 (limit: 11016)
>>    Memory: 2.2M
>>    CGroup: /system.slice/kea-ctrl-agent.service
>>            └─2523 /usr/sbin/kea-ctrl-agent -c /etc/kea/kea-ctrl-agent.conf
>>
>>
>> ~ curl -X POST -H "Content-Type: application/json" -d '{ "command": 
>> "status-get", "service": [ "dhcp6" ] }' http://192.168.100.111:8001/ -s | jq
>> [
>>   {
>>     "arguments": {
>>       "dhcp-state": {
>>         "disabled-by-db-connection": [],
>>         "disabled-by-local-command": [],
>>         "disabled-by-remote-command": [],
>>         "disabled-by-user": false,
>>         "globally-disabled": false
>>       },
>>       "extended-info-tables": false,
>>       "high-availability": [
>>         {
>>           "ha-mode": "hot-standby",
>>           "ha-servers": {
>>             "local": {
>>               "role": "primary",
>>               "scopes": [
>>                 "kea01"
>>               ],
>>               "server-name": "kea01",
>>               "state": "partner-in-maintenance",
>>               "system-time": "2025-04-10 12:46:22"
>>             },
>>             "remote": {
>>               "age": 1,
>>               "analyzed-packets": 0,
>>               "clock-skew": 0,
>>               "communication-interrupted": false,
>>               "connecting-clients": 0,
>>               "in-touch": true,
>>               "last-scopes": [],
>>               "last-state": "in-maintenance",
>>               "role": "standby",
>>               "server-name": "kea02",
>>               "system-time": "2025-04-10 12:46:22",
>>               "unacked-clients": 0,
>>               "unacked-clients-left": 0
>>             }
>>           }
>>         }
>>       ],
>>       "multi-threading-enabled": true,
>>       "packet-queue-size": 64,
>>       "packet-queue-statistics": [
>>         1.0,
>>         0.999629,
>>         0.546155
>>       ],
>>       "pid": 3342,
>>       "reload": 124098,
>>       "sockets": {
>>         "status": "ready"
>>       },
>>       "thread-pool-size": 4,
>>       "uptime": 124098
>>     },
>>     "result": 0
>>   }
>> ]
>> ➜  ~  curl -X POST -H "Content-Type: application/json" -d '{ "command": 
>> "subnet6-del", "arguments": {"id": 1}  }' http://192.168.100.112:8001/ -s | 
>> jq
>> [
>>   {
>>     "result": 1,
>>     "text": "invalid thread pool state change to paused performed by worker 
>> thread"
>>   }
>> ]
>> ➜  ~  curl -X POST -H "Content-Type: application/json" -d '{ "command": 
>> "subnet6-del", "arguments": {"id": 1}  }' http://192.168.100.111:8001/ -s | 
>> jq
>> [
>>   {
>>     "result": 1,
>>     "text": "invalid thread pool state change to paused performed by worker 
>> thread"
>>   }
>> ]
>>
>>
>>
>>
>> On Apr 9, 2025, at 11:40 PM, Razvan Becheriu <raz...@isc.org> wrote:
>> Hi,
>>
>> I think you are sending the command to the HA endpoint. That is reserved for 
>> HA commands.
>>
>> Please use the control channel endpoint or CA endpoint instead.
>>
>> Regards,
>> Razvan
>>
>>
>> ________________________________
>> From: tachibanashita <tachibanash...@outlook.com>
>> To: kea-users <kea-users@lists.isc.org>
>> Date: Wednesday, 9 April 2025 9:28 PM EEST
>> Subject: [Kea-users] Problem when using libdhcp_subnet_cmds.so in kea 2.7.7
>>
>> Greetings,
>>
>>
>> I have upgraded my kea lab from 2.6.1 to 2.7.7 and installed the package for 
>> hooks. Now I am testing the libdhcp_subnet_cmds.so library.
>>
>> But I found that I could only run those status check commands successfully, 
>> but I am not able to modify any configurations as you can see the examples 
>> below. It happened to all the commands which could modify the configuration.
>>
>> I adjusted the format of my arguments to match the example in your document, 
>> but it didn’t work. I added the -u option to curl as the root user, but 
>> still not working. Instead of running the curl command remotely, I run it in 
>> the same Linux host but still the same. I tried to Google this error but 
>> couldn’t find any match including your kea message documentation. I run the 
>> curl command against both primary and standby nodes, but still not working.
>>
>> When I used -v mode for curl command, I can see it does return code 200, so 
>> I don’t think it’s other issue than kea hook function itself.
>>
>> Can you let me know if I missed anything?
>>
>>
>>
>>
>> Successful tests:
>>
>> ➜  ~ curl -X POST -H "Content-Type: application/json" -d '{ "command": 
>> "subnet6-list" }' http://192.168.100.111:8001/ -s | jq
>> [
>>   {
>>     "arguments": {
>>       "subnets": [
>>         {
>>           "id": 1,
>>           "subnet": "ff12:5656:15e2:10::/64"
>>         }
>>       ]
>>     },
>>     "result": 0,
>>     "text": "1 IPv6 subnet found"
>>   }
>> ]
>>
>> Unsuccessful tests:
>>
>> ➜  ~ curl -X POST -H "Content-Type: application/json" -d '{ "command": 
>> "subnet6-del", "arguments": {"id": 1}  }' http://192.168.100.111:8001/ -s | 
>> jq
>> [
>>   {
>>     "result": 1,
>>     "text": "invalid thread pool state change to paused performed by worker 
>> thread"
>>   }
>> ]
>>
>> ➜  ~ curl -X POST -H "Content-Type: application/json" -d '{ "command": 
>> "subnet6-add", "arguments": {"subnet6": [{"id": 2,"subnet": 
>> "ff12:5656:15e2:10::/64"}] } }' http://192.168.100.111:8001/ -s | jq
>> [
>>   {
>>     "result": 1,
>>     "text": "invalid thread pool state change to paused performed by worker 
>> thread"
>>   }
>> ]
>> ➜  ~ curl -X POST -H "Content-Type: application/json" -d '{ "command": 
>> "subnet6-update", "arguments": {"subnet6": [{"id": 1,"subnet": 
>> "ff12:5656:15e2:20::/64"}] } }' http://192.168.100.111:8001/ -s | jq
>> [
>>   {
>>     "result": 1,
>>     "text": "invalid thread pool state change to paused performed by worker 
>> thread"
>>   }
>> ]
>>
>> Verbose mode:
>> ➜  ~ curl -v -X POST -H "Content-Type: application/json" -d '{ "command": 
>> "subnet6-update", "arguments": {"id": 1}  }' http://192.168.100.112:8001/ -s 
>> | jq
>> *   Trying 192.168.100.112:8001...
>> * Connected to 192.168.100.112 (192.168.100.112) port 8001
>> > POST / HTTP/1.1
>> > Host: 192.168.100.112:8001
>> > User-Agent: curl/8.7.1
>> > Accept: */*
>> > Content-Type: application/json
>> > Content-Length: 56
>> >
>> } [56 bytes data]
>> * upload completely sent off: 56 bytes
>> < HTTP/1.1 200 OK
>> < Content-Length: 100
>> < Content-Type: application/json
>> < Date: Wed, 09 Apr 2025 18:21:37 GMT
>> <
>> { [100 bytes data]
>> * Connection #0 to host 192.168.100.112 left intact
>> [
>>   {
>>     "result": 1,
>>     "text": "invalid thread pool state change to paused performed by worker 
>> thread"
>>   }
>> ]
>>
>>
>>
>> Best Regards,
>> Yu
>>
>>
>> --
>> ISC funds the development of this software with paid support subscriptions. 
>> Contact us at https://www.isc.org/contact/ for more information.
>>
>> To unsubscribe visit https://lists.isc.org/mailman/listinfo/kea-users.
>>
>> Kea-users mailing list
>> Kea-users@lists.isc.org
>> https://lists.isc.org/mailman/listinfo/kea-users
>>
>> --
>> ISC funds the development of this software with paid support subscriptions. 
>> Contact us at https://www.isc.org/contact/ for more information.
>>
>> To unsubscribe visit https://lists.isc.org/mailman/listinfo/kea-users.
>>
>> Kea-users mailing list
>> Kea-users@lists.isc.org
>> https://lists.isc.org/mailman/listinfo/kea-users
>>
>>
>> --
>> ISC funds the development of this software with paid support subscriptions. 
>> Contact us at https://www.isc.org/contact/ for more information.
>>
>> To unsubscribe visit https://lists.isc.org/mailman/listinfo/kea-users.
>>
>> Kea-users mailing list
>> Kea-users@lists.isc.org
>> https://lists.isc.org/mailman/listinfo/kea-users
>
> --
> ISC funds the development of this software with paid support subscriptions. 
> Contact us at https://www.isc.org/contact/ for more information.
>
> To unsubscribe visit https://lists.isc.org/mailman/listinfo/kea-users.
>
> Kea-users mailing list
> Kea-users@lists.isc.org
> https://lists.isc.org/mailman/listinfo/kea-users
>
>
> --
> ISC funds the development of this software with paid support subscriptions. 
> Contact us at https://www.isc.org/contact/ for more information.
>
> To unsubscribe visit https://lists.isc.org/mailman/listinfo/kea-users.
>
> Kea-users mailing list
> Kea-users@lists.isc.org
> https://lists.isc.org/mailman/listinfo/kea-users
>
>
> --
> ISC funds the development of this software with paid support subscriptions. 
> Contact us at https://www.isc.org/contact/ for more information.
>
> To unsubscribe visit https://lists.isc.org/mailman/listinfo/kea-users.
>
> Kea-users mailing list
> Kea-users@lists.isc.org
> https://lists.isc.org/mailman/listinfo/kea-users
-- 
ISC funds the development of this software with paid support subscriptions. 
Contact us at https://www.isc.org/contact/ for more information.

To unsubscribe visit https://lists.isc.org/mailman/listinfo/kea-users.

Kea-users mailing list
Kea-users@lists.isc.org
https://lists.isc.org/mailman/listinfo/kea-users

Reply via email to