From 560f36dc5fe12f09a27c457b3010925f4a9e81e9 Mon Sep 17 00:00:00 2001 From: Dmitry Novikov Date: Sun, 28 Jul 2019 23:02:31 +0300 Subject: [PATCH] add migrate devices --- migrate2v2_dump.py | 30 +++++++++++++++++++++++++++++- 1 file changed, 29 insertions(+), 1 deletion(-) diff --git a/migrate2v2_dump.py b/migrate2v2_dump.py index 5037998..e99a178 100755 --- a/migrate2v2_dump.py +++ b/migrate2v2_dump.py @@ -7,6 +7,8 @@ from django import setup from django.core.serializers.json import DjangoJSONEncoder from django.db.models import ImageField +from djing.fields import MACAddressField + class BatchSaveStreamList(list): def __init__(self, model_class, model_name, except_fields=None, choice_list_map=None, field_name_map=None, *args, **kwargs): @@ -57,6 +59,11 @@ class BatchSaveStreamList(list): if val._file: return val.url + # mac address validated by netaddr.EUI + elif isinstance(field, MACAddressField): + val = getattr(obj, field.name) + return str(val) + # all other simple fields else: v = getattr(obj, field.name) @@ -145,7 +152,28 @@ def dump_gateways(): }) +def dump_devices(): + from devapp.models import Device, Port + batch_save("devices.json", Device, 'devices.device', field_name_map={ + 'devtype': 'dev_type' + }, choice_list_map={ + 'devtype': { + 'Dl': 1, 'Pn': 2, + 'On': 3, 'Ex': 4, + 'Zt': 5, 'Zo': 6, + 'Z6': 7, 'Hw': 8 + }, + 'status': { + 'und': 0, + 'up': 1, + 'unr': 2, + 'dwn': 3 + } + }) + batch_save('devices_port.json', Port, 'devices.port') + + if __name__ == '__main__': os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'djing.settings') setup() - dump_gateways() + dump_devices()