mirror of
https://gitlab2.federez.net/re2o/re2o
synced 2024-08-19 13:43:40 +00:00
Mode de provision sftp
This commit is contained in:
parent
b219221342
commit
fa9cd606b5
3 changed files with 44 additions and 2 deletions
|
@ -350,7 +350,7 @@ class OptionalTopologieSerializer(NamespacedHMSerializer):
|
|||
'vlan_decision_nok', 'switchs_ip_type', 'switchs_web_management',
|
||||
'switchs_web_management_ssl', 'switchs_rest_management',
|
||||
'switchs_management_utils', 'switchs_management_interface_ip',
|
||||
'provision_switchs_enabled')
|
||||
'provision_switchs_enabled', 'switchs_provision', 'switchs_management_sftp_creds')
|
||||
|
||||
|
||||
class GeneralOptionSerializer(NamespacedHMSerializer):
|
||||
|
|
|
@ -193,6 +193,10 @@ class OptionalTopologie(AclMixin, PreferencesModel):
|
|||
(DEFINED, 'Prédéfini dans "Vlan où placer les machines\
|
||||
après acceptation RADIUS"'),
|
||||
)
|
||||
CHOICE_PROVISION = (
|
||||
('sftp', 'sftp'),
|
||||
('tftp', 'tftp'),
|
||||
)
|
||||
|
||||
radius_general_policy = models.CharField(
|
||||
max_length=32,
|
||||
|
@ -235,6 +239,24 @@ class OptionalTopologie(AclMixin, PreferencesModel):
|
|||
null=True,
|
||||
help_text="Plage d'ip de management des switchs"
|
||||
)
|
||||
switchs_provision = models.CharField(
|
||||
max_length=32,
|
||||
choices=CHOICE_PROVISION,
|
||||
default='tftp',
|
||||
help_text="Mode de récupération des confs par les switchs"
|
||||
)
|
||||
sftp_login = models.CharField(
|
||||
max_length=32,
|
||||
null=True,
|
||||
blank=True,
|
||||
help_text="Login sftp des switchs"
|
||||
)
|
||||
sftp_pass = AESEncryptedField(
|
||||
max_length=63,
|
||||
null=True,
|
||||
blank=True,
|
||||
help_text="Mot de passe sftp"
|
||||
)
|
||||
|
||||
@cached_property
|
||||
def provisioned_switchs(self):
|
||||
|
@ -258,6 +280,14 @@ class OptionalTopologie(AclMixin, PreferencesModel):
|
|||
return None
|
||||
return self.switchs_management_interface.ipv4
|
||||
|
||||
@cached_property
|
||||
def switchs_management_sftp_creds(self):
|
||||
"""Credentials des switchs pour provion sftp"""
|
||||
if self.sftp_login and self.sftp_pass:
|
||||
return {'login' : self.sftp_login, 'pass' : self.sftp_pass}
|
||||
else:
|
||||
return None
|
||||
|
||||
@cached_property
|
||||
def switchs_management_utils(self):
|
||||
"""Used for switch_conf, return a list of ip on vlans"""
|
||||
|
@ -280,7 +310,7 @@ class OptionalTopologie(AclMixin, PreferencesModel):
|
|||
def provision_switchs_enabled(self):
|
||||
"""Return true if all settings are ok : switchs on automatic provision,
|
||||
ip_type"""
|
||||
return bool(self.provisioned_switchs and self.switchs_ip_type and SwitchManagementCred.objects.filter(default_switch=True).exists() and self.switchs_management_interface_ip)
|
||||
return bool(self.provisioned_switchs and self.switchs_ip_type and SwitchManagementCred.objects.filter(default_switch=True).exists() and self.switchs_management_interface_ip and bool(self.switchs_provision != 'sftp' or self.switchs_management_sftp_creds))
|
||||
|
||||
class Meta:
|
||||
permissions = (
|
||||
|
|
|
@ -147,6 +147,18 @@ with this program; if not, write to the Free Software Foundation, Inc.,
|
|||
<th>Serveur des config des switchs</th>
|
||||
<td>{{ topologieoptions.switchs_management_interface }} {% if topologieoptions.switchs_management_interface %} - {{ topologieoptions.switchs_management_interface_ip }} <span class="label label-success"> OK{% else %}<span class="label label-danger">Manquant{% endif %}</span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Mode de provision des switchs</th>
|
||||
<td>{{ topologieoptions.switchs_provision }}</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Mode TFTP</th>
|
||||
<td><span class="label label-success"> OK</span></td>
|
||||
</tr>
|
||||
<tr>
|
||||
<th>Mode SFTP</th>
|
||||
<td>{% if topologieoptions.switchs_management_sftp_creds %}<span class="label label-success"> OK{% else %}<span class="label label-danger">Creds manquants{% endif %}</span></td>
|
||||
</tr>
|
||||
</table>
|
||||
|
||||
<h6>Creds de management des switchs</h6>
|
||||
|
|
Loading…
Reference in a new issue