diff --git a/netbox/extras/migrations/0129_fix_script_paths.py b/netbox/extras/migrations/0129_fix_script_paths.py index 4c016178e..de330d75a 100644 --- a/netbox/extras/migrations/0129_fix_script_paths.py +++ b/netbox/extras/migrations/0129_fix_script_paths.py @@ -1,10 +1,15 @@ from django.conf import settings from django.core.files.storage import storages from django.db import migrations +from urllib.parse import urlparse from extras.storage import ScriptFileSystemStorage +def normalize(url): + return url if urlparse(url).path else url + "/" + + def fix_script_paths(apps, schema_editor): """ Fix script paths for scripts that had incorrect path from NB 4.3. @@ -14,9 +19,10 @@ def fix_script_paths(apps, schema_editor): return ScriptModule = apps.get_model('extras', 'ScriptModule') + script_root_path = normalize(settings.SCRIPTS_ROOT) for script in ScriptModule.objects.all(): - if script.file_path.startswith(settings.SCRIPTS_ROOT): - script.file_path = script.file_path[len(settings.SCRIPTS_ROOT):] + if script.file_path.startswith(script_root_path): + script.file_path = script.file_path[len(script_root_path):] script.save()