Add ssl, validate_certs in InfluxDB modules (#33327)

This fix adds ssl and validate_certs argument spec for InfluxDB
modules. Also, refactors code.
Add BSD License.

Fixes: #31923

Signed-off-by: Abhijeet Kasurde <akasurde@redhat.com>
This commit is contained in:
Abhijeet Kasurde 2017-12-12 12:26:24 +05:30 committed by René Moser
commit 1d53fbeb59
4 changed files with 151 additions and 107 deletions

View file

@ -23,26 +23,8 @@ author: "Kamil Szczygiel (@kamsz)"
requirements:
- "python >= 2.6"
- "influxdb >= 0.9"
- requests
options:
hostname:
description:
- The hostname or IP address on which InfluxDB server is listening
required: true
username:
description:
- Username that will be used to authenticate against InfluxDB server
default: root
required: false
password:
description:
- Password that will be used to authenticate against InfluxDB server
default: root
required: false
port:
description:
- The port on which InfluxDB server is listening
default: 8086
required: false
database_name:
description:
- Name of the database where retention policy will be created
@ -63,6 +45,7 @@ options:
description:
- Sets the retention policy as default retention policy
required: true
extends_documentation_fragment: influxdb.documentation
'''
EXAMPLES = '''
@ -74,6 +57,8 @@ EXAMPLES = '''
policy_name: test
duration: 1h
replication: 1
ssl: True
validate_certs: True
- name: create 1 day retention policy
influxdb_retention_policy:
@ -98,6 +83,8 @@ EXAMPLES = '''
policy_name: test
duration: INF
replication: 1
ssl: False
validate_certs: False
'''
RETURN = '''
@ -110,38 +97,11 @@ try:
import requests.exceptions
from influxdb import InfluxDBClient
from influxdb import exceptions
HAS_INFLUXDB = True
except ImportError:
HAS_INFLUXDB = False
pass
from ansible.module_utils.basic import AnsibleModule
def influxdb_argument_spec():
return dict(
hostname=dict(required=True, type='str'),
port=dict(default=8086, type='int'),
username=dict(default='root', type='str'),
password=dict(default='root', type='str', no_log=True),
database_name=dict(required=True, type='str')
)
def connect_to_influxdb(module):
hostname = module.params['hostname']
port = module.params['port']
username = module.params['username']
password = module.params['password']
database_name = module.params['database_name']
client = InfluxDBClient(
host=hostname,
port=port,
username=username,
password=password,
database=database_name
)
return client
from ansible.module_utils.influxdb import InfluxDb
def find_retention_policy(module, client):
@ -208,7 +168,7 @@ def alter_retention_policy(module, client, retention_policy):
def main():
argument_spec = influxdb_argument_spec()
argument_spec = InfluxDb.influxdb_argument_spec()
argument_spec.update(
policy_name=dict(required=True, type='str'),
duration=dict(required=True, type='str'),
@ -220,10 +180,9 @@ def main():
supports_check_mode=True
)
if not HAS_INFLUXDB:
module.fail_json(msg='influxdb python package is required for this module')
influxdb = InfluxDb(module)
client = influxdb.connect_to_influxdb()
client = connect_to_influxdb(module)
retention_policy = find_retention_policy(module, client)
if retention_policy: