Mercurial > sci
changeset 52:95bc6b4ec753
sciworkerd: add API key support
author | David Demelier <markand@malikania.fr> |
---|---|
date | Wed, 17 Aug 2022 09:38:19 +0200 |
parents | 054cc00e23d2 |
children | 319979427566 |
files | man/sciworkerd.8 scictl/scictl.c sciworkerd/main.c sciworkerd/sciworkerd.c sciworkerd/sciworkerd.h |
diffstat | 5 files changed, 29 insertions(+), 14 deletions(-) [+] |
line wrap: on
line diff
--- a/man/sciworkerd.8 Wed Aug 17 09:37:45 2022 +0200 +++ b/man/sciworkerd.8 Wed Aug 17 09:38:19 2022 +0200 @@ -71,6 +71,21 @@ as worker name. Default: .Dq default .El +.\" ENVIRONMENT +.Sh ENVIRONMENT +The following environment variables affects +.Nm : +.Bl -tag +.It Ev SCI_API_URL +Points to a HTTP URL where +.Nm scid +is running. Must start with a HTTP scheme such as +.Dq http +or +.Dq https . +.It Ev SCI_API_KEY +Secret API key to perform requests. +.El .\" SEE ALSO .Sh SEE ALSO .Xr sci 7 ,
--- a/scictl/scictl.c Wed Aug 17 09:37:45 2022 +0200 +++ b/scictl/scictl.c Wed Aug 17 09:38:19 2022 +0200 @@ -32,7 +32,7 @@ static void usage(void) { - fprintf(stderr, "usage: scictl [-u baseurl] command [args...]\n"); + fprintf(stderr, "usage: scictl [-k key] [-u baseurl] command [args...]\n"); exit(1); }
--- a/sciworkerd/main.c Wed Aug 17 09:37:45 2022 +0200 +++ b/sciworkerd/main.c Wed Aug 17 09:38:19 2022 +0200 @@ -20,17 +20,21 @@ #include <stdlib.h> #include <unistd.h> +#include "apic.h" #include "sciworkerd.h" +#include "util.h" static void env(void) { const char *env; - if ((env = getenv("SCI_URL"))) - snprintf(sciworkerd.url, sizeof (sciworkerd.url), "%s", optarg); + if ((env = getenv("SCI_API_URL"))) + util_strlcpy(apiconf.baseurl, env, sizeof (apiconf.baseurl)); + if ((env = getenv("SCI_API_KEY"))) + util_strlcpy(apiconf.key, env, sizeof (apiconf.key)); if ((env = getenv("SCI_WORKER"))) - snprintf(sciworkerd.name, sizeof (sciworkerd.name), "%s", optarg); + util_strlcpy(sciworkerd.name, env, sizeof (sciworkerd.name)); } int @@ -41,21 +45,24 @@ env(); opterr = 0; - while ((ch = getopt(argc, argv, "j:t:u:w:")) != -1) { + while ((ch = getopt(argc, argv, "k:j:t:u:w:")) != -1) { switch (ch) { case 'j': if ((val = atoi(optarg)) > 0) sciworkerd.maxjobs = val; break; + case 'k': + util_strlcpy(apiconf.key, optarg, sizeof (apiconf.key)); + break; case 't': if ((val = atoi(optarg)) > 0) sciworkerd.timeout = val; break; case 'u': - snprintf(sciworkerd.url, sizeof (sciworkerd.url), "%s", optarg); + util_strlcpy(apiconf.baseurl, optarg, sizeof (apiconf.baseurl)); break; case 'w': - snprintf(sciworkerd.name, sizeof (sciworkerd.name), "%s", optarg); + util_strlcpy(sciworkerd.name, optarg, sizeof (sciworkerd.name)); break; default: break;
--- a/sciworkerd/sciworkerd.c Wed Aug 17 09:37:45 2022 +0200 +++ b/sciworkerd/sciworkerd.c Wed Aug 17 09:38:19 2022 +0200 @@ -369,8 +369,6 @@ sigemptyset(&sa.sa_mask); sa.sa_handler = stop; - util_strlcpy(apiconf.baseurl, sciworkerd.url, sizeof (apiconf.baseurl)); - if (sigaction(SIGINT, &sa, NULL) < 0 || sigaction(SIGTERM, &sa, NULL) < 0) log_die(TAG "sigaction: %s", strerror(errno)); }
--- a/sciworkerd/sciworkerd.h Wed Aug 17 09:37:45 2022 +0200 +++ b/sciworkerd/sciworkerd.h Wed Aug 17 09:38:19 2022 +0200 @@ -25,10 +25,6 @@ */ /** - * \brief Maximum URL length. - */ -#define SCIWORKERD_URL_MAX 512 -/** * \brief Maximum worker name. */ #define SCIWORKERD_NAME_MAX 64 @@ -37,7 +33,6 @@ * \brief Main sciworkerd configuration structure. */ extern struct sciworkerd { - char url[SCIWORKERD_URL_MAX]; /*!< API URL. */ char name[SCIWORKERD_NAME_MAX]; /*!< This worker name to use. */ unsigned int fetchinterval; /*!< Delay in seconds before fetching jobs. */ unsigned int maxjobs; /*!< Maximum parallel jobs. */