getindices
Prototype: getindices(varref)
Return type: slist
Description: Returns the list of keys in varref
which can be
the name of an array or container.
This function can accept many types of data parameters.
Make sure you specify the correct scope when supplying the name of the variable.
Note:
The function always returns a list. If called on something that has no index (for example, an undefined variable) an empty list is returned.
The list which getindices returns is not guaranteed to be in any specific order.
In the case of a doubly-indexed array (such as
parsestringarrayidx()
and friends produce), the primary keys are returned; i.e. ifvarref[i][j]
exist for variousi
,j
and you ask for the keys ofvarref
, you get thei
values. For each suchi
you can then ask forgetindices("varref[i]")
to get a list of thej
values (and so on, for higher levels of indexing).
Arguments:
varref
:string
- CFEngine variable identifier or inline JSON - in the range:.*
Example:
body common control
{
bundlesequence => { "example" };
}
bundle agent example
{
vars:
"ps[relayhost]" string => "[mymailrelay]:587";
"ps[mydomain]" string => "iu.hio.no";
"ps[smtp_sasl_auth_enable]" string => "yes";
"ps[smtp_sasl_password_maps]" string => "hash:/etc/postfix/sasl-passwd";
"ps[smtp_sasl_security_options]" string => "";
"ps[smtp_use_tls]" string => "yes";
"ps[default_privs]" string => "mailman";
"ps[inet_protocols]" string => "all";
"ps[inet_interfaces]" string => "127.0.0.1";
"parameter_name" slist => getindices("ps");
"parameter_name_sorted" slist => sort(parameter_name, lex);
reports:
"Found key $(parameter_name_sorted)";
}
Output:
R: Found key default_privs
R: Found key inet_interfaces
R: Found key inet_protocols
R: Found key mydomain
R: Found key relayhost
R: Found key smtp_sasl_auth_enable
R: Found key smtp_sasl_password_maps
R: Found key smtp_sasl_security_options
R: Found key smtp_use_tls
History:
- Collecting function behavior as of 3.9.0
- Always returns list as of 3.9.0
See also: getvalues()
, about collecting functions, and data
documentation.