<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
  </head>
  <body>
    <p>Hi!</p>
    <p>1. You might be looking for the "operation-target": "memory"
      parameter for the reservation commands.
<a class="moz-txt-link-freetext" href="https://kea.readthedocs.io/en/latest/arm/hooks.html#the-operation-target-parameter">https://kea.readthedocs.io/en/latest/arm/hooks.html#the-operation-target-parameter</a></p>
    <p>2. ISC is aware of MySQL and PostgreSQLhook libraries missing
      from 2.7.7 Docker images and up. Kea 3.0.0 will have this fixed.
      Reverting to 2.7.6 or setting up the Cloudsmith repo inside the
      container and installing packages with `apk add isc-kea-mysql
      isc-kea-pgsql` can help.</p>
    <p>Thanks!<br>
      Andrei<br>
    </p>
    <div class="moz-cite-prefix">On 22/05/2025 17:58, Matt Crum via
      Kea-users wrote:<br>
    </div>
    <blockquote type="cite"
cite="mid:PH0PR16MB47330E970B32E5EADCE57C53AA99A@PH0PR16MB4733.namprd16.prod.outlook.com">
      <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
      <meta name="Generator"
        content="Microsoft Word 15 (filtered medium)">
      <style><!--
/* Font Definitions */
@font-face
        {font-family:Wingdings;
        panose-1:5 0 0 0 0 0 0 0 0 0;}
@font-face
        {font-family:"Cambria Math";
        panose-1:2 4 5 3 5 4 6 3 2 4;}
@font-face
        {font-family:Aptos;}
/* Style Definitions */
p.MsoNormal, li.MsoNormal, div.MsoNormal
        {margin:0cm;
        font-size:12.0pt;
        font-family:"Aptos",sans-serif;
        mso-ligatures:standardcontextual;
        mso-fareast-language:EN-US;}
a:link, span.MsoHyperlink
        {mso-style-priority:99;
        color:#467886;
        text-decoration:underline;}
span.EmailStyle17
        {mso-style-type:personal-compose;
        font-family:"Aptos",sans-serif;
        color:windowtext;}
.MsoChpDefault
        {mso-style-type:export-only;
        mso-fareast-language:EN-US;}
@page WordSection1
        {size:612.0pt 792.0pt;
        margin:72.0pt 72.0pt 72.0pt 72.0pt;}
div.WordSection1
        {page:WordSection1;}
/* List Definitions */
@list l0
        {mso-list-id:683019990;
        mso-list-type:hybrid;
        mso-list-template-ids:411749780 -1693441888 134807555 134807557 134807553 134807555 134807557 134807553 134807555 134807557;}
@list l0:level1
        {mso-level-start-at:10;
        mso-level-number-format:bullet;
        mso-level-text:-;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:"Aptos",sans-serif;
        mso-fareast-font-family:Aptos;
        mso-bidi-font-family:"Times New Roman";}
@list l0:level2
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:"Courier New";}
@list l0:level3
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Wingdings;}
@list l0:level4
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Symbol;}
@list l0:level5
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:"Courier New";}
@list l0:level6
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Wingdings;}
@list l0:level7
        {mso-level-number-format:bullet;
        mso-level-text:\F0B7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Symbol;}
@list l0:level8
        {mso-level-number-format:bullet;
        mso-level-text:o;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:"Courier New";}
@list l0:level9
        {mso-level-number-format:bullet;
        mso-level-text:\F0A7;
        mso-level-tab-stop:none;
        mso-level-number-position:left;
        text-indent:-18.0pt;
        font-family:Wingdings;}
ol
        {margin-bottom:0cm;}
ul
        {margin-bottom:0cm;}
--></style><!--[if gte mso 9]><xml>
<o:shapedefaults v:ext="edit" spidmax="1026" />
</xml><![endif]--><!--[if gte mso 9]><xml>
<o:shapelayout v:ext="edit">
<o:idmap v:ext="edit" data="1" />
</o:shapelayout></xml><![endif]-->
      <div class="WordSection1">
        <p class="MsoNormal">Hi all,<o:p></o:p></p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal">We’re rewriting some code to use the newly
          available subnet/host hooks, testing with the ISC Kea 2.7.8
          Docker image with a simple JSON backend, aiming to reduce the
          amount of whole-file operations that we need to do.<o:p></o:p></p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal">The host-cmds hooks are proving difficult
          to use - couple of questions if anyone can help (please):<o:p></o:p></p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal">1: JSON Configuration<o:p></o:p></p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal">I cannot get the write (add/del/update)
          host-cmds hooks to work with a basic JSON configuration;
          despite this snippet in the latest documentation “These
          commands can also modify hosts from the JSON configuration
          independently from the hosts database. The changes provided in
          the JSON configuration are volatile and can be made permanent
          by sending the <a
href="https://kea.readthedocs.io/en/latest/arm/ctrl-channel.html#std-isccmd-config-write"
            moz-do-not-send="true"><b>config-write</b></a> command.” (<a
href="https://kea.readthedocs.io/en/latest/arm/hooks.html#libdhcp-host-cmds-so-host-commands"
            moz-do-not-send="true" class="moz-txt-link-freetext">https://kea.readthedocs.io/en/latest/arm/hooks.html#libdhcp-host-cmds-so-host-commands</a>).
          <o:p></o:p></p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal">I always get “host database not available,
          cannot update host” or similar when trying to use it. Do we
          know of a way to manage reservations in a JSON backend,
          without having to resort to whole configuration file
          operations? Do I have to specifically set hosts-database to
          empty or something (it’s not mentioned in the configuration
          file at all at the moment)?<o:p></o:p></p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal">Note that the subnet-cmds hooks do support
          updating the JSON configuration; I’d ideally fall back to
          using these to manage reservations in each subnet, but it
          isn’t supported.
          <o:p></o:p></p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal">2: Docker and PGSQL<o:p></o:p></p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal">I tried to enable a hosts backend running
          on Postgres, but the kea4 Docker container does not come with
          the PGSQL hook - same with MySQL. Is this going to be
          available in the v3 Docker release / is there a way to install
          it in the container using apk commands, so I can test in the
          meantime? <o:p></o:p></p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal">As things stand, I’m unable to test the
          writeable host-cmds using the Kea Docker image. The get
          commands work OK with a JSON backend.<o:p></o:p></p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal">Any questions, let me know.<o:p></o:p></p>
        <p class="MsoNormal"><o:p> </o:p></p>
        <p class="MsoNormal">Thanks<span
            style="font-size:9.0pt;mso-fareast-language:EN-GB"><o:p></o:p></span></p>
        <p class="MsoNormal"><o:p> </o:p></p>
      </div>
      CONFIDENTIALITY NOTICE: This message is intended for the use of
      the individual or entity to which it is addressed and may contain
      information that is confidential, privileged, and exempt from
      disclosure under applicable law. If the recipient of this message
      is not the intended recipient, you are hereby notified that any
      reading, printing, copying, dissemination, distribution,
      disclosure, or forwarding of this communication is strictly
      prohibited. If you have received this communication in error,
      please contact the sender immediately and delete it from your
      system. Thank You.
      <div style="font-size:9pt;  font-family: 'Calibri',sans-serif;">
        <div>
          <p style="MsoNormal"><span lang="EN"
style="font-size:10.0pt;font-family:"Helvetica",sans-serif;
color:white;mso-themecolor:background1;mso-ansi-language:EN">--PCNdcV.12</span></p>
        </div>
      </div>
      <br>
      <fieldset class="moz-mime-attachment-header"></fieldset>
    </blockquote>
  </body>
</html>