Linode: Mark 'name' as required. Fixes #29785 (#44699)

* Mark 'name' parameter as required.

Closes https://github.com/ansible/ansible/issues/29785.

* Add the `linode-python` dependency for unit tests.

* Add unit test for linode name parameter.

* Add note about where to find required arguments.

Closes https://github.com/ansible/ansible/issues/44696.
This commit is contained in:
lwm 2018-08-30 05:09:21 +02:00 committed by René Moser
parent 30fd326953
commit fbcdf8ba5b
5 changed files with 35 additions and 2 deletions

View file

@ -30,6 +30,7 @@ options:
description: description:
- Name to give the instance (alphanumeric, dashes, underscore). - Name to give the instance (alphanumeric, dashes, underscore).
- To keep sanity on the Linode Web Console, name is prepended with C(LinodeID_). - To keep sanity on the Linode Web Console, name is prepended with C(LinodeID_).
required: true
displaygroup: displaygroup:
description: description:
- Add the instance to a Display Group in Linode Manager. - Add the instance to a Display Group in Linode Manager.
@ -148,6 +149,7 @@ author:
- Vincent Viallet (@zbal) - Vincent Viallet (@zbal)
notes: notes:
- C(LINODE_API_KEY) env variable can be used instead. - C(LINODE_API_KEY) env variable can be used instead.
- Please review U(https://www.linode.com/api/linode) for determining the required parameters.
''' '''
EXAMPLES = ''' EXAMPLES = '''
@ -556,7 +558,7 @@ def main():
state=dict(type='str', default='present', state=dict(type='str', default='present',
choices=['absent', 'active', 'deleted', 'present', 'restarted', 'started', 'stopped']), choices=['absent', 'active', 'deleted', 'present', 'restarted', 'started', 'stopped']),
api_key=dict(type='str', no_log=True), api_key=dict(type='str', no_log=True),
name=dict(type='str'), name=dict(type='str', required=True),
alert_bwin_enabled=dict(type='bool'), alert_bwin_enabled=dict(type='bool'),
alert_bwin_threshold=dict(type='int'), alert_bwin_threshold=dict(type='int'),
alert_bwout_enabled=dict(type='bool'), alert_bwout_enabled=dict(type='bool'),

View file

@ -31,3 +31,6 @@ xmljson
# requirement for winrm connection plugin tests # requirement for winrm connection plugin tests
pexpect pexpect
# requirement for the linode module
linode-python

View file

@ -0,0 +1,13 @@
import pytest
@pytest.fixture
def api_key(monkeypatch):
monkeypatch.setenv('LINODE_API_KEY', 'foobar')
@pytest.fixture
def auth(monkeypatch):
def patched_test_echo(dummy):
return []
monkeypatch.setattr('linode.api.Api.test_echo', patched_test_echo)

View file

@ -0,0 +1,15 @@
from __future__ import (absolute_import, division, print_function)
import pytest
from ansible.modules.cloud.linode import linode
from units.modules.utils import set_module_args
if not linode.HAS_LINODE:
pytestmark = pytest.mark.skip('test_linode.py requires the `linode-python` module')
def test_name_is_a_required_parameter(api_key, auth):
with pytest.raises(SystemExit):
set_module_args({})
linode.main()