331cadd Make the schema cache TTL user-configurable

7 files Authored by rcritten 2 years ago, Committed by frenaud 2 years ago,
    Make the schema cache TTL user-configurable
    
    The API schema is not checked for changes until after a TTL
    is expired. A one-hour TTL was hardcoded which makes development
    tedious because the only way to force a schema update is to
    remember to remove files between invocations.
    
    This adds a new environment variable, schema_ttl, to configure
    the TTL returned by the server to schema() calls. This can be
    set low to ensure a frequent refresh during development.
    
    If the client is in compat mode, that is if client is working
    against a server that doesn't support the schema() command,
    then use the client's schema_ttl instead so that the user still
    has control.
    
    Re-check validity before writing the cache. This saves us both
    a disk write and the possibility of updating the expiration
    with a ttl of 0. This can happen if the fingerprint is still
    valid (not expired, no language change) the schema check is
    skipped so we have no server-provided ttl.
    
    https://pagure.io/freeipa/issue/8492
    
    Signed-off-by: Rob Crittenden <rcritten@redhat.com>
    Reviewed-By: Stanislav Levin <slev@altlinux.org>
    Reviewed-By: Alexander Bokovoy <abokovoy@redhat.com>
    
        
file modified
+3 -0
file modified
+3 -0
file modified
+1 -7