diff --git a/backup/forms.py b/backup/forms.py
index 8179ae9..95750f3 100644
--- a/backup/forms.py
+++ b/backup/forms.py
@@ -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('
Parameters
'), 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('
Backup Settings
'), 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'),
diff --git a/backup/migrations/0009_backupprofile_parameter_sensitive_and_more.py b/backup/migrations/0009_backupprofile_parameter_sensitive_and_more.py
new file mode 100644
index 0000000..8eb1544
--- /dev/null
+++ b/backup/migrations/0009_backupprofile_parameter_sensitive_and_more.py
@@ -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),
+ ),
+ ]
diff --git a/backup/models.py b/backup/models.py
index 0736468..d42ef68 100644
--- a/backup/models.py
+++ b/backup/models.py
@@ -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)
diff --git a/routerfleet/settings.py b/routerfleet/settings.py
index 127752f..a5899b3 100644
--- a/routerfleet/settings.py
+++ b/routerfleet/settings.py
@@ -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 *
diff --git a/routerlib/backup_functions.py b/routerlib/backup_functions.py
index 41da0d5..69d5dbc 100644
--- a/routerlib/backup_functions.py
+++ b/routerlib/backup_functions.py
@@ -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)