Commit f961082c by willthames Committed by James Cammarata

Fix parameters check for ec2_vol

Split the error check into two error checks and delay the
checks so that listing existing volumes works more nicely.

The error check should check that:
* One and only one of volume_size id or name is set

This fix adds the 'only one' part of that check and provides
more useful error messages.
parent 5c00381e
...@@ -325,9 +325,6 @@ def main(): ...@@ -325,9 +325,6 @@ def main():
if id and name: if id and name:
module.fail_json(msg="Both id and name cannot be specified") module.fail_json(msg="Both id and name cannot be specified")
if not (id or name or volume_size):
module.fail_json(msg="Cannot specify volume_size and either one of name or id")
# Here we need to get the zone info for the instance. This covers situation where # Here we need to get the zone info for the instance. This covers situation where
# instance is specified but zone isn't. # instance is specified but zone isn't.
# Useful for playbooks chaining instance launch with volume create + attach and where the # Useful for playbooks chaining instance launch with volume create + attach and where the
...@@ -345,6 +342,15 @@ def main(): ...@@ -345,6 +342,15 @@ def main():
device=device_name, device=device_name,
changed=False) changed=False)
# Delaying the checks until after the instance check allows us to get volume ids for existing volumes
# without needing to pass an unused volume_size
if not volume_size and not (id or name):
module.fail_json(msg="You must specify an existing volume with id or name or a volume_size")
if volume_size and (id or name):
module.fail_json(msg="Cannot specify volume_size and either one of name or id")
if state == 'absent': if state == 'absent':
delete_volume(module, ec2) delete_volume(module, ec2)
else: else:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment