mirror of
https://github.com/eduardogsilva/routerfleet.git
synced 2025-06-20 17:15:39 +02:00
Backup parameters: terse and sensitive
This commit is contained in:
parent
8b24470fc6
commit
32b17ca592
5 changed files with 47 additions and 3 deletions
|
@ -14,7 +14,8 @@ class BackupProfileForm(forms.ModelForm):
|
|||
'daily_day_wednesday', 'daily_day_thursday', 'daily_day_friday',
|
||||
'daily_day_saturday', 'daily_day_sunday', 'weekly_day',
|
||||
'monthly_day', 'daily_hour', 'weekly_hour', 'monthly_hour',
|
||||
'max_retry', 'retry_interval', 'backup_interval', 'retrieve_interval', 'instant_retention'
|
||||
'max_retry', 'retry_interval', 'backup_interval', 'retrieve_interval', 'instant_retention',
|
||||
'parameter_sensitive', 'parameter_terse'
|
||||
]
|
||||
# widgets = {
|
||||
# 'weekly_day': forms.Select(),
|
||||
|
@ -50,6 +51,8 @@ class BackupProfileForm(forms.ModelForm):
|
|||
self.fields['weekly_retention'].label = 'Retention (days)'
|
||||
self.fields['monthly_retention'].label = 'Retention (days)'
|
||||
self.fields['instant_retention'].label = 'Instant Retention (days)'
|
||||
self.fields['parameter_sensitive'].label = 'sensitive'
|
||||
self.fields['parameter_terse'].label = 'terse'
|
||||
if self.instance.pk and self.instance.name == 'default':
|
||||
self.fields['name'].widget.attrs['readonly'] = True
|
||||
|
||||
|
@ -93,6 +96,13 @@ class BackupProfileForm(forms.ModelForm):
|
|||
css_id='monthly_settings', css_class='row'
|
||||
),
|
||||
|
||||
Div(
|
||||
Div(HTML('<hr><h4>Parameters</h4>'), css_class='col-md-12'),
|
||||
Div('parameter_sensitive', css_class='col-md-6'),
|
||||
Div('parameter_terse', css_class='col-md-6'),
|
||||
css_id='misc_settings', css_class='row'
|
||||
),
|
||||
|
||||
Div(
|
||||
Div(HTML('<hr><h4>Backup Settings</h4>'), css_class='col-md-12'),
|
||||
Div('max_retry', css_class='col-md-6'),
|
||||
|
@ -103,6 +113,7 @@ class BackupProfileForm(forms.ModelForm):
|
|||
Div('retain_backups_on_error', css_class='col-md-12'),
|
||||
css_id='misc_settings', css_class='row'
|
||||
),
|
||||
|
||||
Row(
|
||||
Column(
|
||||
Submit('submit', 'Save', css_class='btn btn-success'),
|
||||
|
|
|
@ -0,0 +1,23 @@
|
|||
# Generated by Django 5.1.3 on 2024-11-07 13:18
|
||||
|
||||
from django.db import migrations, models
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('backup', '0008_alter_backupprofile_backup_interval'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.AddField(
|
||||
model_name='backupprofile',
|
||||
name='parameter_sensitive',
|
||||
field=models.BooleanField(default=False),
|
||||
),
|
||||
migrations.AddField(
|
||||
model_name='backupprofile',
|
||||
name='parameter_terse',
|
||||
field=models.BooleanField(default=False),
|
||||
),
|
||||
]
|
|
@ -23,6 +23,9 @@ class BackupProfile(models.Model):
|
|||
instant_retention = models.IntegerField(default=3650)
|
||||
retain_backups_on_error = models.BooleanField(default=True)
|
||||
|
||||
parameter_sensitive = models.BooleanField(default=False)
|
||||
parameter_terse = models.BooleanField(default=False)
|
||||
|
||||
daily_day_monday = models.BooleanField(default=True)
|
||||
daily_day_tuesday = models.BooleanField(default=True)
|
||||
daily_day_wednesday = models.BooleanField(default=True)
|
||||
|
|
|
@ -142,6 +142,6 @@ STATICFILES_DIRS = [
|
|||
|
||||
DEFAULT_AUTO_FIELD = 'django.db.models.BigAutoField'
|
||||
MEDIA_ROOT = '/var/lib/routerfleet/'
|
||||
ROUTERFLEET_VERSION = 7021
|
||||
ROUTERFLEET_VERSION = 7022
|
||||
|
||||
from routerfleet.production_settings import *
|
||||
|
|
|
@ -80,11 +80,18 @@ def execute_backup(router_backup: RouterBackup):
|
|||
backup_name = gen_backup_name(router_backup)
|
||||
file_extension = get_router_backup_file_extension(router.router_type)
|
||||
ssh_client = None
|
||||
additional_parameters = ""
|
||||
try:
|
||||
if router_backup.router.router_type == 'routeros':
|
||||
if router.backup_profile:
|
||||
if router.backup_profile.parameter_sensitive:
|
||||
additional_parameters += ' show-sensitive'
|
||||
if router.backup_profile.parameter_terse:
|
||||
additional_parameters += ' terse'
|
||||
|
||||
ssh_client = connect_to_ssh(router.address, router.port, router.username, router.password, router.ssh_key)
|
||||
ssh_client.exec_command(f'/system backup save name={backup_name}.{file_extension["binary"]}')
|
||||
ssh_client.exec_command(f'/export file={backup_name}.{file_extension["text"]}')
|
||||
ssh_client.exec_command(f'/export file={backup_name}.{file_extension["text"]} {additional_parameters}')
|
||||
return True, [f'{backup_name}.{file_extension["binary"]}', f'{backup_name}.{file_extension["text"]}'], error_message
|
||||
elif router_backup.router.router_type == 'openwrt':
|
||||
ssh_client = connect_to_ssh(router.address, router.port, router.username, router.password, router.ssh_key)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue