From ebb7779b5f6413dba57509a87837459c08b25b49 Mon Sep 17 00:00:00 2001 From: Aleksandar Radunovic Date: Mon, 15 Oct 2018 15:15:23 +0200 Subject: [PATCH] Add device role seeds --- initializers/device_roles.yml | 15 +++++++++++++++ startup_scripts/46_device_roles.py | 20 ++++++++++++++++++++ 2 files changed, 35 insertions(+) create mode 100644 initializers/device_roles.yml create mode 100644 startup_scripts/46_device_roles.py diff --git a/initializers/device_roles.yml b/initializers/device_roles.yml new file mode 100644 index 0000000..ee4234f --- /dev/null +++ b/initializers/device_roles.yml @@ -0,0 +1,15 @@ +# - name: switch +# slug: switch +# color: Grey +# - name: router +# slug: router +# color: Cyan +# - name: load-balancer +# slug: load-balancer +# color: Red +# - name: server +# slug: server +# color: Blue +# - name: patchpanel +# slug: patchpanel +# color: Black diff --git a/startup_scripts/46_device_roles.py b/startup_scripts/46_device_roles.py new file mode 100644 index 0000000..af606be --- /dev/null +++ b/startup_scripts/46_device_roles.py @@ -0,0 +1,20 @@ +from dcim.models import DeviceRole +from ruamel.yaml import YAML +from utilities.forms import COLOR_CHOICES + +with open('/opt/netbox/initializers/device_roles.yml', 'r') as stream: + yaml=YAML(typ='safe') + device_roles = yaml.load(stream) + + if device_roles is not None: + for device_role_params in device_roles: + color = device_role_params.pop('color') + + for color_tpl in COLOR_CHOICES: + if color in color_tpl: + device_role_params['color'] = color_tpl[0] + + device_role, created = DeviceRole.objects.get_or_create(**device_role_params) + + if created: + print("Created device role", device_role.name)