diff --git a/docker_inventory.cf b/docker_inventory.cf index 5585c80..b46b925 100644 --- a/docker_inventory.cf +++ b/docker_inventory.cf @@ -1,25 +1,34 @@ bundle agent docker_inventory { + classes: + "have_docker" expression => fileexists("${docker}"); + vars: - "docker" string => "/usr/local/bin/docker"; # todo discover this more dynamically or per-platform - "status_list" slist => { "created", "restarting", "running", "removing", "pause", "exited", "dead" }; - "status_count[${status_list}]" string => execresult(`${docker} ps -a --filter "status=${status_list}" --format "{{.Names}}" | wc -l`, "useshell", "stdout"), - meta => { "inventory", "attribute_name=Docker ${status_list} Count" }; - "running_string" string => execresult(`${docker} ps -a --filter "status=running" --format "{{.Names}}"`, "noshell", "stdout"); - "running_names" slist => splitstring("${running_string}", "\n", "inf"), - meta => { "inventory", "attribute_name=Docker Running Names" }; - "dangling_count" string => execresult(`${docker} images --filter "dangling=true" --format "{{.Repository}}" | wc -l`, "useshell", "stdout"), - meta => { "inventory", "attribute_name=Docker Dangling Image Count" }; - "images_string" string => execresult(`${docker} images --format "{{.Repository}}:{{.Tag}}"`, "noshell", "stdout"); - "images_list" slist => splitstring("${images_string}", "\n", "inf"), - meta => { "inventory", "attribute_name=Docker Image List" }; + any:: + "docker" string => "/usr/local/bin/docker"; # todo discover this more dynamically or per-platform + + have_docker:: + "status_list" slist => { "created", "restarting", "running", "removing", "pause", "exited", "dead" }; + "status_count[${status_list}]" string => execresult(`${docker} ps -a --filter "status=${status_list}" --format "{{.Names}}" | wc -l`, "useshell", "stdout"), + meta => { "inventory", "attribute_name=Docker ${status_list} Count" }; + "running_string" string => execresult(`${docker} ps -a --filter "status=running" --format "{{.Names}}"`, "noshell", "stdout"); + "running_names" slist => splitstring("${running_string}", "\n", "inf"), + meta => { "inventory", "attribute_name=Docker Running Names" }; + "dangling_count" string => execresult(`${docker} images --filter "dangling=true" --format "{{.Repository}}" | wc -l`, "useshell", "stdout"), + meta => { "inventory", "attribute_name=Docker Dangling Image Count" }; + "images_string" string => execresult(`${docker} images --format "{{.Repository}}:{{.Tag}}"`, "noshell", "stdout"); + "images_list" slist => splitstring("${images_string}", "\n", "inf"), + meta => { "inventory", "attribute_name=Docker Image List" }; reports: - "docker containers ${status_list}: ${status_count[${status_list}]}"; - "running_names: ${with}" with => storejson(running_names); - "dangling_count: ${dangling_count}"; - "images_list: ${with}" with => storejson(images_list); -# "exited_string: ${exited_string}"; + any:: + "Hello from ${this.bundle}"; + + have_docker:: + "docker containers ${status_list}: ${status_count[${status_list}]}"; + "running_names: ${with}" with => storejson(running_names); + "dangling_count: ${dangling_count}"; + "images_list: ${with}" with => storejson(images_list); } bundle agent main