Rework SSH management
Related: PROD-12618 (PROD:12618)
Change-Id: I772b578e1189ccdc8c38e268dce3c5e865fae124
diff --git a/_states/maasng.py b/_states/maasng.py
index b71c9d9..0275465 100644
--- a/_states/maasng.py
+++ b/_states/maasng.py
@@ -352,7 +352,8 @@
if __opts__['test']:
ret['result'] = None
- ret['comment'] = 'Vlan {0} will be updated for {1}'.format(vlan, fabric)
+ ret['comment'] = 'Vlan {0} will be updated for {1}'.format(
+ vlan, fabric)
return ret
# Check, that vlan already defined
_rez = __salt__['maasng.check_vlan_in_fabric'](fabric=fabric,
@@ -498,7 +499,7 @@
changes = __salt__['maasng.create_iprange'](type_range=type_range,
start_ip=start_ip,
- end_ip=end_ip,subnet=subnet, comment=comment)
+ end_ip=end_ip, subnet=subnet, comment=comment)
ret["changes"] = changes
if "error" in changes:
ret['comment'] = "State execution failed for iprange {0}".format(name)
@@ -599,3 +600,47 @@
return ret
return ret
+
+
+def sshkey_present(name, sshkey):
+ """
+
+ :param name: Name of user
+ :param sshkey: SSH key for MAAS user
+
+ """
+
+ ret = {'name': name,
+ 'changes': {},
+ 'result': True,
+ 'comment': 'Module function maasng.ssshkey_present executed'}
+
+ # Check, that subnet already defined
+ _rez = __salt__['maasng.get_sshkey'](sshkey)
+ if 'key' in _rez.keys():
+ if _rez["key"] == sshkey:
+ ret['comment'] = 'SSH key {0} already exist for user {1}.'.format(
+ sshkey, name)
+ return ret
+
+ if __opts__['test']:
+ ret['result'] = None
+ ret['comment'] = 'SSH key {0} will be add it to MAAS for user {1}'.format(
+ sshkey, name)
+
+ return ret
+
+ changes = __salt__['maasng.add_sshkey'](sshkey=sshkey)
+ ret['comment'] = 'SSH-key {0} ' \
+ 'has been added for user {1}'.format(sshkey, name)
+
+ ret['changes'] = changes
+
+ if "error" in changes:
+ ret['comment'] = "State execution failed for sshkey: {0}".format(
+ sshkey)
+ ret['result'] = False
+ ret['changes'] = changes
+ return ret
+
+ return ret