Skip to content

Instantly share code, notes, and snippets.

@nickanderson
Created December 5, 2019 17:36
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save nickanderson/0c74e68f01430245976b81eea186fbdf to your computer and use it in GitHub Desktop.
Save nickanderson/0c74e68f01430245976b81eea186fbdf to your computer and use it in GitHub Desktop.

Example using parsejson() and reporting array from dict

bundle agent main
{
  vars:
      # "users_string" string => execresult("/usr/bin/rest_getUsers.py", "noshell");
      "users_string"
        string => execresult(`/bin/echo '{"users":[{"username":"admin","name":"Administrator","email":"admin@example.com","password":null,"properties":[{"key":"console.refresh","value":"session-summary=90"},{"key":"console.rows_per_page","value":"session-summary=15,/session-summary.jsp=25,/server-properties.jsp=25,/pubsub-node-summary.jsp=25"}]},{"username":"op6-0","name":"","password":null,"properties":[]},{"username":"op6-1","name":"","password":null,"properties":[]},{"username":"op6-2","name":"","password":null,"properties":[]},{"username":"op6-3","name":"","password":null,"properties":[]},{"username":"op7-0","name":"","password":null,"properties":[]},{"username":"op7-1","name":"","password":null,"properties":[]},{"username":"op7-2","name":"","password":null,"properties":[]},{"username":"skillz","name":"","password":null,"properties":[]}]}'`, "noshell");
      "users_data" data => parsejson($(users_string));
      "user_idx" slist => getindices( "users_data[users]" );


  reports:
      "Users:";
      "$(users_data[users][$(user_idx)][username])";
}
R: Users:
R: admin
R: op6-0
R: op6-1
R: op6-2
R: op6-3
R: op7-0
R: op7-1
R: op7-2
R: skillz
Variable name                            Variable value                                               Meta tags                               
default:main.user_idx                     {"0","1","2","3","4","5","6","7","8"}                       source=promise                          
default:main.users_data                  {"users":[{"email":"admin@example.com","name":"Administrator","password":null,"properties":[{"key":"console.refresh","value":"session-summary=90"},{"key":"console.rows_per_page","value":"session-summary=15,/session-summary.jsp=25,/server-properties.jsp=25,/pubsub-node-summary.jsp=25"}],"username":"admin"},{"name":"","password":null,"properties":[],"username":"op6-0"},{"name":"","password":null,"properties":[],"username":"op6-1"},{"name":"","password":null,"properties":[],"username":"op6-2"},{"name":"","password":null,"properties":[],"username":"op6-3"},{"name":"","password":null,"properties":[],"username":"op7-0"},{"name":"","password":null,"properties":[],"username":"op7-1"},{"name":"","password":null,"properties":[],"username":"op7-2"},{"name":"","password":null,"properties":[],"username":"skillz"}]} source=promise                          
default:main.users_string                {\"users\":[{\"username\":\"admin\",\"name\":\"Administrator\",\"email\":\"admin@example.com\",\"password\":null,\"properties\":[{\"key\":\"console.refresh\",\"value\":\"session-summary=90\"},{\"key\":\"console.rows_per_page\",\"value\":\"session-summary=15,/session-summary.jsp=25,/server-properties.jsp=25,/pubsub-node-summary.jsp=25\"}]},{\"username\":\"op6-0\",\"name\":\"\",\"password\":null,\"properties\":[]},{\"username\":\"op6-1\",\"name\":\"\",\"password\":null,\"properties\":[]},{\"username\":\"op6-2\",\"name\":\"\",\"password\":null,\"properties\":[]},{\"username\":\"op6-3\",\"name\":\"\",\"password\":null,\"properties\":[]},{\"username\":\"op7-0\",\"name\":\"\",\"password\":null,\"properties\":[]},{\"username\":\"op7-1\",\"name\":\"\",\"password\":null,\"properties\":[]},{\"username\":\"op7-2\",\"name\":\"\",\"password\":null,\"properties\":[]},{\"username\":\"skillz\",\"name\":\"\",\"password\":null,\"properties\":[]}]} source=promise                          
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment