34 lines
1.1 KiB
Nix
34 lines
1.1 KiB
Nix
import ./make-test-python.nix ({ pkgs, ...} : {
|
|
name = "ocsinventory-agent";
|
|
|
|
nodes.machine = { pkgs, ... }: {
|
|
services.ocsinventory-agent = {
|
|
enable = true;
|
|
settings = {
|
|
debug = true;
|
|
local = "/var/lib/ocsinventory-agent/reports";
|
|
tag = "MY_INVENTORY_TAG";
|
|
};
|
|
};
|
|
};
|
|
|
|
testScript = ''
|
|
path = "/var/lib/ocsinventory-agent/reports"
|
|
|
|
# Run the agent to generate the inventory file in offline mode
|
|
start_all()
|
|
machine.succeed("mkdir -p {}".format(path))
|
|
machine.wait_for_unit("ocsinventory-agent.service")
|
|
machine.wait_until_succeeds("journalctl -u ocsinventory-agent.service | grep 'Inventory saved in'")
|
|
|
|
# Fetch the path to the generated inventory file
|
|
report_file = machine.succeed("find {}/*.ocs -type f | head -n1".format(path))
|
|
|
|
with subtest("Check the tag value"):
|
|
tag = machine.succeed(
|
|
"${pkgs.libxml2}/bin/xmllint --xpath 'string(/REQUEST/CONTENT/ACCOUNTINFO/KEYVALUE)' {}".format(report_file)
|
|
).rstrip()
|
|
assert tag == "MY_INVENTORY_TAG", f"tag is not valid, was '{tag}'"
|
|
'';
|
|
})
|