diff --git a/initializers/rack_roles.yml b/initializers/rack_roles.yml new file mode 100644 index 0000000..e8d1e3e --- /dev/null +++ b/initializers/rack_roles.yml @@ -0,0 +1,12 @@ +# - name: Role 1 +# slug: role-1 +# color: Pink +# - name: Role 2 +# slug: role-2 +# color: Cyan +# - name: Role 3 +# slug: role-3 +# color: Grey +# - name: Role 4 +# slug: role-4 +# color: Teal diff --git a/startup_scripts/44_rack_roles.py b/startup_scripts/44_rack_roles.py new file mode 100644 index 0000000..71b7309 --- /dev/null +++ b/startup_scripts/44_rack_roles.py @@ -0,0 +1,20 @@ +from dcim.models import RackRole +from ruamel.yaml import YAML +from utilities.forms import COLOR_CHOICES + +with open('/opt/netbox/initializers/rack_roles.yml', 'r') as stream: + yaml=YAML(typ='safe') + rack_roles = yaml.load(stream) + + if rack_roles is not None: + for rack_role_params in rack_roles: + color = rack_role_params.pop('color', None) + + for color_tpl in COLOR_CHOICES: + if color in color_tpl: + rack_role_params['color'] = color_tpl[0] + + rack_role, created = RackRole.objects.get_or_create(**rack_role_params) + + if created: + print("Created rack role", rack_role.name)