Use required_if in kolla_docker.py
Replace the original code with required_if when Ansible 2.0 lands Change-Id: Ib2e19794bbe804470a880253d5870254041358c8
This commit is contained in:
parent
0663cce822
commit
42e7b747e4
@ -712,13 +712,24 @@ def generate_module():
|
||||
volumes=dict(required=False, type='list'),
|
||||
volumes_from=dict(required=False, type='list')
|
||||
)
|
||||
required_together = [
|
||||
['tls_cert', 'tls_key']
|
||||
required_if = [
|
||||
['action', 'pull_image', ['image']],
|
||||
['action', 'start_container', ['image', 'name']],
|
||||
['action', 'compare_container', ['name']],
|
||||
['action', 'compare_image', ['name']],
|
||||
['action', 'create_volume', ['name']],
|
||||
['action', 'get_container_env', ['name']],
|
||||
['action', 'get_container_state', ['name']],
|
||||
['action', 'recreate_or_restart_container', ['name']],
|
||||
['action', 'remove_container', ['name']],
|
||||
['action', 'remove_volume', ['name']],
|
||||
['action', 'restart_container', ['name']],
|
||||
['action', 'stop_container', ['name']]
|
||||
]
|
||||
module = AnsibleModule(
|
||||
argument_spec=argument_spec,
|
||||
required_together=required_together,
|
||||
bypass_checks=True
|
||||
required_if=required_if,
|
||||
bypass_checks=False
|
||||
)
|
||||
|
||||
new_args = module.params.pop('common_options', dict())
|
||||
@ -740,21 +751,6 @@ def generate_module():
|
||||
def main():
|
||||
module = generate_module()
|
||||
|
||||
# TODO(SamYaple): Replace with required_if when Ansible 2.0 lands
|
||||
if (module.params.get('action') in ['pull_image', 'start_container']
|
||||
and not module.params.get('image')):
|
||||
module.fail_json(
|
||||
msg="missing required arguments: image",
|
||||
failed=True
|
||||
)
|
||||
# TODO(SamYaple): Replace with required_if when Ansible 2.0 lands
|
||||
if (module.params.get('action') != 'pull_image'
|
||||
and not module.params.get('name')):
|
||||
module.fail_json(
|
||||
msg="missing required arguments: name",
|
||||
failed=True
|
||||
)
|
||||
|
||||
try:
|
||||
dw = DockerWorker(module)
|
||||
# TODO(inc0): We keep it bool to have ansible deal with consistent
|
||||
|
@ -80,16 +80,27 @@ class ModuleArgsTest(base.BaseTestCase):
|
||||
volumes=dict(required=False, type='list'),
|
||||
volumes_from=dict(required=False, type='list')
|
||||
)
|
||||
required_together = [
|
||||
['tls_cert', 'tls_key']
|
||||
required_if = [
|
||||
['action', 'pull_image', ['image']],
|
||||
['action', 'start_container', ['image', 'name']],
|
||||
['action', 'compare_container', ['name']],
|
||||
['action', 'compare_image', ['name']],
|
||||
['action', 'create_volume', ['name']],
|
||||
['action', 'get_container_env', ['name']],
|
||||
['action', 'get_container_state', ['name']],
|
||||
['action', 'recreate_or_restart_container', ['name']],
|
||||
['action', 'remove_container', ['name']],
|
||||
['action', 'remove_volume', ['name']],
|
||||
['action', 'restart_container', ['name']],
|
||||
['action', 'stop_container', ['name']]
|
||||
]
|
||||
|
||||
kd.AnsibleModule = mock.MagicMock()
|
||||
kd.generate_module()
|
||||
kd.AnsibleModule.assert_called_with(
|
||||
argument_spec=argument_spec,
|
||||
required_together=required_together,
|
||||
bypass_checks=True
|
||||
required_if=required_if,
|
||||
bypass_checks=False
|
||||
)
|
||||
|
||||
FAKE_DATA = {
|
||||
|
Loading…
x
Reference in New Issue
Block a user