From 510e1140cee52c5c8e202f71051a863af0e8e6e9 Mon Sep 17 00:00:00 2001 From: Monty Taylor Date: Wed, 31 Aug 2016 14:41:12 -0500 Subject: [PATCH] Error if shade is too old for domain_id on os_project (#2806) * Error if shade is too old for domain_id on os_project os_project's domain_id parameter requires shade >= 1.8.1 to work. Be explicit. Fixes #2805 os_project requires python-shade 1.8.1 or higher * What I really meant was 1.8.0 --- lib/ansible/modules/extras/cloud/openstack/os_project.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/lib/ansible/modules/extras/cloud/openstack/os_project.py b/lib/ansible/modules/extras/cloud/openstack/os_project.py index eeaa101e660..4c686724c89 100644 --- a/lib/ansible/modules/extras/cloud/openstack/os_project.py +++ b/lib/ansible/modules/extras/cloud/openstack/os_project.py @@ -21,6 +21,8 @@ try: except ImportError: HAS_SHADE = False +from distutils.version import StrictVersion + DOCUMENTATION = ''' --- module: os_project @@ -46,7 +48,8 @@ options: default: None domain_id: description: - - Domain id to create the project in if the cloud supports domains + - Domain id to create the project in if the cloud supports domains. + The domain_id parameter requires shade >= 1.8.0 required: false default: None aliases: ['domain'] @@ -160,6 +163,9 @@ def main(): enabled = module.params['enabled'] state = module.params['state'] + if domain and StrictVersion(shade.__version__) < StrictVersion('1.8.0'): + module.fail_json(msg="The domain argument requires shade >=1.8.0") + try: if domain: opcloud = shade.operator_cloud(**module.params)