Subject: Re: bug#26829: Add knot service

From: [email-masked] (Ludovic Courtès)
Date: Wed, 31 May 2017 23:17:56 +0200

Julien Lepiller <[email-masked]> skribis:

> Le Mon, 29 May 2017 18:36:17 +0200,
> [email-masked] (Ludovic Courtès) a écrit :
>
>> Hello,
>> 
>> julien lepiller <[email-masked]> skribis:
>> 
>> > Le 2017-05-28 19:34, [email-masked] a écrit :  
>> >> Hi Julien,
>> >>
>> >> Julien Lepiller <[email-masked]> skribis:
>> >>  
>> >>> So, pushed as ba69e8f7ce21a81bdd5b99fdb1cc64492443e15c.  
>> >>
>> >> Very nice and very useful notably for self-hosting use cases!  
>> > That's exactly why I did that :). I'm currently self-hosting my
>> > services on debian, and I would like to move to guixSD at some
>> > point, so I'm writing services I need.  
>> 
>> Excellent.  :-)
>> 
>> >> I have two minor comments:
>> >>
>> >>   1. What it would it take to write tests for this?  I assume we
>> >> could simply make DNS requests locally?  
>> > I have never written a system test, so I don't know how it works. If
>> > we check only that requests are answered correctly locally, I think
>> > that would be great but limited to the "master" scenario. Then there
>> > is the "slave" scenario, where we would need a zone transfer between
>> > two hosts. And we could also check that transfer occurs only to
>> > authorized slaves.  
>> 
>> OK.  I guess I know too little about DNS to make any useful comment.
>> 
>> >>   2. For things like:
>> >>
>> >>      +@item @code{nsec3-salt-lifetime} (default: @code{"30d"})
>> >>
>> >>      I prefer using an integer denoting the number of seconds, and
>> >> then letting users do the multiplication or use (string->duration
>> >> "30d").
>> >>      I did that for ‘guix-publish-service’.  
>> > I didn't know it existed, but it looks nicer indeed. I'll see what I
>> > can do.  
>> 
>> OK!  Note that I’m not saying that the service code should use
>> ‘string->duration’ directly, but rather that the service code should
>> use integers to represent duration (in seconds).
> So, the default value would be (string->duration "30d"), which is a
> number of second, and the configuration should use this number of
> seconds, right?

No, the (gnu services …) modules should not depend on (guix ui), which
is mostly for the CLI.

So the default value would be (* 30 24 3600).

We could (define hour 3600) (define day (* 24 hour)) etc.

Ludo’.