summaryrefslogtreecommitdiff
path: root/plugins/modules/vyos_system.py
diff options
context:
space:
mode:
authoransible-zuul[bot] <48994755+ansible-zuul[bot]@users.noreply.github.com>2019-08-09 18:52:36 +0000
committerGitHub <noreply@github.com>2019-08-09 18:52:36 +0000
commitfbe294b702e757252a66f64edf66bce060e87494 (patch)
tree6910d3c526815c0e21f20cfbccd08bea727cf11c /plugins/modules/vyos_system.py
parent4a485b24db1abf87cdf0d4ef2f7acb1159aaab68 (diff)
parent5fb9df4e907a6ab2da7a6c2dafdec9c1971e8d44 (diff)
downloadvyos.vyos-fbe294b702e757252a66f64edf66bce060e87494.tar.gz
vyos.vyos-fbe294b702e757252a66f64edf66bce060e87494.zip
Merge pull request #8 from ansible-network/bt_blacked
Bt blacked Reviewed-by: Paul Belanger https://github.com/pabelanger
Diffstat (limited to 'plugins/modules/vyos_system.py')
-rw-r--r--plugins/modules/vyos_system.py94
1 files changed, 49 insertions, 45 deletions
diff --git a/plugins/modules/vyos_system.py b/plugins/modules/vyos_system.py
index 20cf907f..99841542 100644
--- a/plugins/modules/vyos_system.py
+++ b/plugins/modules/vyos_system.py
@@ -17,9 +17,11 @@
# along with Ansible. If not, see <http://www.gnu.org/licenses/>.
#
-ANSIBLE_METADATA = {'metadata_version': '1.1',
- 'status': ['preview'],
- 'supported_by': 'network'}
+ANSIBLE_METADATA = {
+ "metadata_version": "1.1",
+ "status": ["preview"],
+ "supported_by": "network",
+}
DOCUMENTATION = """
@@ -92,20 +94,22 @@ EXAMPLES = """
"""
from ansible.module_utils.basic import AnsibleModule
-from ansible_collections.vyos.vyos.plugins.module_utils.network. \
- vyos.vyos import get_config, load_config
-
-from ansible_collections.vyos.vyos.plugins.module_utils.network. \
- vyos.vyos import vyos_argument_spec
+from ansible_collections.vyos.vyos.plugins.module_utils.network.vyos.vyos import (
+ get_config,
+ load_config,
+)
+from ansible_collections.vyos.vyos.plugins.module_utils.network.vyos.vyos import (
+ vyos_argument_spec,
+)
def spec_key_to_device_key(key):
- device_key = key.replace('_', '-')
+ device_key = key.replace("_", "-")
# domain-search is longer than just it's key
- if device_key == 'domain-search':
- device_key += ' domain'
+ if device_key == "domain-search":
+ device_key += " domain"
return device_key
@@ -113,17 +117,17 @@ def spec_key_to_device_key(key):
def config_to_dict(module):
data = get_config(module)
- config = {'domain_search': [], 'name_server': []}
+ config = {"domain_search": [], "name_server": []}
- for line in data.split('\n'):
- if line.startswith('set system host-name'):
- config['host_name'] = line[22:-1]
- elif line.startswith('set system domain-name'):
- config['domain_name'] = line[24:-1]
- elif line.startswith('set system domain-search domain'):
- config['domain_search'].append(line[33:-1])
- elif line.startswith('set system name-server'):
- config['name_server'].append(line[24:-1])
+ for line in data.split("\n"):
+ if line.startswith("set system host-name"):
+ config["host_name"] = line[22:-1]
+ elif line.startswith("set system domain-name"):
+ config["domain_name"] = line[24:-1]
+ elif line.startswith("set system domain-search domain"):
+ config["domain_search"].append(line[33:-1])
+ elif line.startswith("set system name-server"):
+ config["name_server"].append(line[24:-1])
return config
@@ -131,13 +135,13 @@ def config_to_dict(module):
def spec_to_commands(want, have):
commands = []
- state = want.pop('state')
+ state = want.pop("state")
# state='absent' by itself has special meaning
- if state == 'absent' and all(v is None for v in want.values()):
+ if state == "absent" and all(v is None for v in want.values()):
# Clear everything
for key in have:
- commands.append('delete system %s' % spec_key_to_device_key(key))
+ commands.append("delete system %s" % spec_key_to_device_key(key))
for key in want:
if want[key] is None:
@@ -148,19 +152,19 @@ def spec_to_commands(want, have):
device_key = spec_key_to_device_key(key)
# These keys are lists which may need to be reconciled with the device
- if key in ['domain_search', 'name_server']:
+ if key in ["domain_search", "name_server"]:
if not proposed:
# Empty list was passed, delete all values
commands.append("delete system %s" % device_key)
for config in proposed:
- if state == 'absent' and config in current:
+ if state == "absent" and config in current:
commands.append("delete system %s '%s'" % (device_key, config))
- elif state == 'present' and config not in current:
+ elif state == "present" and config not in current:
commands.append("set system %s '%s'" % (device_key, config))
else:
- if state == 'absent' and current and proposed:
- commands.append('delete system %s' % device_key)
- elif state == 'present' and proposed and proposed != current:
+ if state == "absent" and current and proposed:
+ commands.append("delete system %s" % device_key)
+ elif state == "present" and proposed and proposed != current:
commands.append("set system %s '%s'" % (device_key, proposed))
return commands
@@ -168,21 +172,21 @@ def spec_to_commands(want, have):
def map_param_to_obj(module):
return {
- 'host_name': module.params['host_name'],
- 'domain_name': module.params['domain_name'],
- 'domain_search': module.params['domain_search'],
- 'name_server': module.params['name_server'],
- 'state': module.params['state']
+ "host_name": module.params["host_name"],
+ "domain_name": module.params["domain_name"],
+ "domain_search": module.params["domain_search"],
+ "name_server": module.params["name_server"],
+ "state": module.params["state"],
}
def main():
argument_spec = dict(
- host_name=dict(type='str'),
- domain_name=dict(type='str'),
- domain_search=dict(type='list'),
- name_server=dict(type='list', aliases=['name_servers']),
- state=dict(type='str', default='present', choices=['present', 'absent']),
+ host_name=dict(type="str"),
+ domain_name=dict(type="str"),
+ domain_search=dict(type="list"),
+ name_server=dict(type="list", aliases=["name_servers"]),
+ state=dict(type="str", default="present", choices=["present", "absent"]),
)
argument_spec.update(vyos_argument_spec)
@@ -190,26 +194,26 @@ def main():
module = AnsibleModule(
argument_spec=argument_spec,
supports_check_mode=True,
- mutually_exclusive=[('domain_name', 'domain_search')],
+ mutually_exclusive=[("domain_name", "domain_search")],
)
warnings = list()
- result = {'changed': False, 'warnings': warnings}
+ result = {"changed": False, "warnings": warnings}
want = map_param_to_obj(module)
have = config_to_dict(module)
commands = spec_to_commands(want, have)
- result['commands'] = commands
+ result["commands"] = commands
if commands:
commit = not module.check_mode
response = load_config(module, commands, commit=commit)
- result['changed'] = True
+ result["changed"] = True
module.exit_json(**result)
-if __name__ == '__main__':
+if __name__ == "__main__":
main()