On the Root server, the start of the workflow is the same than on a relay:
-
the inventory is received by a
webdavendpoint, -
the
webdavservice store the file in the folder/var/rudder/inventories/incoming
Then, on each run, the agent:
-
look for inventory / signature pairs:
- inventories without a corresponding signature file are processed only if they are older than 2 minutes,
-
POST the inventory or inventory+signature pair to the local API of
"inventory-endpoint" application on
http://localhost:8080/endpoint/upload/ -
the API makes some quick checks on inventory (well formed, mandatory fields…) and :
-
if checks are OK, ACCEPTS (HTTP code
200) the inventory, -
if signature is configured to be mandatory and is missing, or if the
signature is not valid, refuses with UNAUTHORIZED error (HTTP code
401) -
else fails with a PRECONDITION FAILED error (HTTP code
412)
-
if checks are OK, ACCEPTS (HTTP code
-
on error, inventory file is moved to
/var/rudder/inventories/failed, -
on success:
-
the inventory file is moved to
/var/rudder/inventories/received, - in parallel, inventory web parses and updates Rudder database.
-
the inventory file is moved to
