cloudformation create_stack() got an unexpected keyword argument 'stack_policy_body'

Hi,

I am getting this error on Ubuntu 14.04.4 LTS. Any idea what is causing it?


$ ansible-playbook go_cloud.yml -vvvv
Using /home/johng/Documents/ansible/ansible/ansible.cfg as config file
Loaded callback default of type stdout, v2.0
Loaded callback unnamed of type old, v1.0
1 plays in go_cloud.yml

PLAY ***************************************************************************

TASK [setup] *******************************************************************
ESTABLISH LOCAL CONNECTION FOR USER: johng
127.0.0.1 EXEC /bin/sh -c ‘( umask 22 && mkdir -p “echo $HOME/.ansible/tmp/ansible-tmp-1456960430.23-151711803624276” && echo “echo $HOME/.ansible/tmp/ansible-tmp-1456960430.23-151711803624276” )’
127.0.0.1 PUT /tmp/tmpt7aQZU TO /home/johng/.ansible/tmp/ansible-tmp-1456960430.23-151711803624276/setup
127.0.0.1 EXEC /bin/sh -c ‘LANG=C LC_ALL=C LC_MESSAGES=C /usr/bin/python /home/johng/.ansible/tmp/ansible-tmp-1456960430.23-151711803624276/setup; rm -rf “/home/johng/.ansible/tmp/ansible-tmp-1456960430.23-151711803624276/” > /dev/null 2>&1’
ok: [localhost]

TASK [Push hello-app cloudformation stack] *************************************
task path: /home/johng/Documents/ansible/ansible/go_cloud.yml:5
ESTABLISH LOCAL CONNECTION FOR USER: johng
127.0.0.1 EXEC /bin/sh -c ‘( umask 22 && mkdir -p “echo $HOME/.ansible/tmp/ansible-tmp-1456960431.07-114836551388786” && echo “echo $HOME/.ansible/tmp/ansible-tmp-1456960431.07-114836551388786” )’
127.0.0.1 PUT /tmp/tmp4Pac7s TO /home/johng/.ansible/tmp/ansible-tmp-1456960431.07-114836551388786/cloudformation
127.0.0.1 EXEC /bin/sh -c ‘LANG=C LC_ALL=C LC_MESSAGES=C /usr/bin/python /home/johng/.ansible/tmp/ansible-tmp-1456960431.07-114836551388786/cloudformation; rm -rf “/home/johng/.ansible/tmp/ansible-tmp-1456960431.07-114836551388786/” > /dev/null 2>&1’
fatal: [localhost]: FAILED! => {“changed”: false, “failed”: true, “invocation”: {“module_args”: {“aws_access_key”: “XXXXXXXXXXXXXXXXXXXX”, “aws_secret_key”: “VALUE_SPECIFIED_IN_NO_LOG_PARAMETER”, “disable_rollback”: false, “ec2_url”: null, “notification_arns”: null, “profile”: null, “region”: “us-east-1”, “security_token”: null, “stack_name”: “ittest7”, “stack_policy”: null, “state”: “present”, “tags”: null, “template”: “EC2InstanceWithSecurityGroupSample.template”, “template_format”: “json”, “template_parameters”: {“InstanceType”: “t2.micro”, “KeyName”: “sysadmin-key”}, “template_url”: null, “validate_certs”: true}, “module_name”: “cloudformation”}, “msg”: “create_stack() got an unexpected keyword argument ‘stack_policy_body’”}

msg: create_stack() got an unexpected keyword argument ‘stack_policy_body’

NO MORE HOSTS LEFT *************************************************************
to retry, use: --limit @go_cloud.retry

PLAY RECAP *********************************************************************
localhost : ok=1 changed=0 unreachable=0 failed=1


$ ansible --version
ansible 2.0.1.0
config file = /home/johng/Documents/ansible/ansible/ansible.cfg
configured module search path = /usr/share/ansible
$ cat /etc/lsb-release
DISTRIB_ID=Ubuntu
DISTRIB_RELEASE=14.04
DISTRIB_CODENAME=trusty
DISTRIB_DESCRIPTION=“Ubuntu 14.04.4 LTS”

Found my issue. It was picking up an old version of boto. I removed the deb package and reinstalled the pip version.

$ strace -o boto_strace python -c ‘import boto; print boto.version
2.20.1

apt-get remove python-boto

pip install --upgrade --force-reinstall boto

$ python -c ‘import boto; print boto.version
2.39.0