getting values from returned data (elasticache endpoint)

Hi all,

I’m using the elasticache module to create an elasticache instance. This works fine. I’m trying to parse the data returned to get the endpoint but I’m having trouble and was hoping for an answer.

The data I’m trying to parse is like this:

`

TASK: [vpc | debug var=utilities_elc.elasticache.data] ************************
ok: [localhost] => {
“var”: {
“utilities_elc.elasticache.data”: {
“AutoMinorVersionUpgrade”: true,
“CacheClusterCreateTime”: 1430637402.709,
“CacheClusterId”: “utilities-elc”,
“CacheClusterStatus”: “available”,
“CacheNodeType”: “cache.m3.medium”,
“CacheNodes”: [
{
“CacheNodeCreateTime”: 1430637402.709,
“CacheNodeId”: “0001”,
“CacheNodeStatus”: “available”,
“Endpoint”: {
“Address”: “utilities-elc.i4w6la.0001.apse2.cache.amazonaws.com”,
“Port”: 11211
},
“ParameterGroupStatus”: “in-sync”,
“SourceCacheNodeId”: null
}
],

`

I thought it would be as simple as doing the following:

`

TASK: [vpc | debug msg=“Endpoint {{ utilities_elc_data.cachenodes[0].endpoint.address }}”] ***
fatal: [localhost] => One or more undefined variables: ‘dict object’ has no attribute ‘cachenodes’

`

Which I get from this:

`

  • debug: var=utilities_elc.elasticache.data
    register: utilities_elc_data

  • debug: msg=“Endpoint {{ utilities_elc_data.cachenodes[0].endpoint.address }}”
    with_dict: utilities_elc_data

`

I would have thought that this would work. What am I doing wrong?

Regards,
Den

p.s forgive me if this is double posting but this is the second time I tried to post but couldn’t find my original in the list.

This is all case sensitive, for example, the key is displayed as
'CacheNodes' not cachenodes, also you are not using the full variable,
use this:

- debug: msg="Endpoint {{
utilities_elc.elasticache.data.CacheNodes[0].Endpoint.Address }}"

Man! I really thought I tried that but must have got my casing wrong. Thanks for taking the time Brian.

FWIW, this might come in handy if you’re using ElastiCache: https://github.com/ansible/ansible/pull/11261
My pal decided that this might ease our work and boy he was right :slight_smile: