getting values from returned data (elasticache endpoint)

111 views
Skip to first unread message

DenMat Gone

unread,
May 4, 2015, 9:13:09 AM5/4/15
to ansible...@googlegroups.com
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.

Brian Coca

unread,
May 4, 2015, 4:32:21 PM5/4/15
to ansible...@googlegroups.com
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 }}"


--
Brian Coca

DenMat Gone

unread,
May 4, 2015, 7:34:39 PM5/4/15
to ansible...@googlegroups.com
Man! I really thought I tried that but must have got my casing wrong. Thanks for taking the time Brian.

Dan Vaida

unread,
Jul 20, 2015, 9:58:23 AM7/20/15
to ansible...@googlegroups.com
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 :)
Reply all
Reply to author
Forward
0 new messages