Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 4 Oct 2021 17:29:33 GMT
From:      Kai Knoblich <kai@FreeBSD.org>
To:        ports-committers@FreeBSD.org, dev-commits-ports-all@FreeBSD.org, dev-commits-ports-main@FreeBSD.org
Subject:   git: 0627700a0bbe - main - net-mgmt/netbox: Update to 3.0.4
Message-ID:  <202110041729.194HTXkJ002906@gitrepo.freebsd.org>

next in thread | raw e-mail | index | archive | help
The branch main has been updated by kai:

URL: https://cgit.FreeBSD.org/ports/commit/?id=0627700a0bbe12ba86c7c4e636ebb434c2d326a7

commit 0627700a0bbe12ba86c7c4e636ebb434c2d326a7
Author:     Kai Knoblich <kai@FreeBSD.org>
AuthorDate: 2021-10-04 17:01:02 +0000
Commit:     Kai Knoblich <kai@FreeBSD.org>
CommitDate: 2021-10-04 17:22:58 +0000

    net-mgmt/netbox: Update to 3.0.4
    
    Changelog since 2.11.12:
    
    It contains many bugfixes/enhancements and the following new features:
    
    * Updated User Interface
    * GraphQL API
    * IP Ranges
    * Custom Model Validation
    * SVG Cable Traces
    * New Views for Models Previously Under the Admin UI
    * REST API Token Provisioning
    * New Housekeeping Command
    * Custom Queue Support for Plugins
    
    https://netbox.readthedocs.io/en/stable/release-notes/version-3.0/
    
    MFH:            No (feature release)
---
 net-mgmt/netbox/Makefile                           |   22 +-
 net-mgmt/netbox/distinfo                           |    6 +-
 .../netbox/files/850.netbox-housekeeping.sample.in |   32 +
 net-mgmt/netbox/files/pkg-message.in               |   68 +-
 net-mgmt/netbox/pkg-plist                          | 1429 ++++----------------
 5 files changed, 372 insertions(+), 1185 deletions(-)

diff --git a/net-mgmt/netbox/Makefile b/net-mgmt/netbox/Makefile
index 1db82b279a22..090947a8c55d 100644
--- a/net-mgmt/netbox/Makefile
+++ b/net-mgmt/netbox/Makefile
@@ -1,6 +1,6 @@
 PORTNAME=	netbox
 DISTVERSIONPREFIX=	v
-DISTVERSION=	2.11.12
+DISTVERSION=	3.0.4
 CATEGORIES=	net-mgmt python
 
 MAINTAINER=	kai@FreeBSD.org
@@ -22,24 +22,25 @@ LICENSE_FILE=	${WRKSRC}/LICENSE.txt
 # - www/py-dj32-django-tables2
 # - www/py-dj32-djangorestframework (in conjunction with www/py-dj32-drf-yasg)
 #
-RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}django32>=3.2.6<3.3:www/py-django32@${PY_FLAVOR} \
-		${PYTHON_PKGNAMEPREFIX}dj32-django-cacheops>=6.0<7.0:www/py-dj32-django-cacheops@${PY_FLAVOR} \
-		${PYTHON_PKGNAMEPREFIX}dj32-django-cors-headers>=3.8.0<3.9:www/py-dj32-django-cors-headers@${PY_FLAVOR} \
-		${PYTHON_PKGNAMEPREFIX}dj32-django-debug-toolbar>=3.2.1<4:www/py-dj32-django-debug-toolbar@${PY_FLAVOR} \
-		${PYTHON_PKGNAMEPREFIX}dj32-django-filter>=2.4.0<2.5:www/py-dj32-django-filter@${PY_FLAVOR} \
-		${PYTHON_PKGNAMEPREFIX}dj32-django-mptt>=0.13.1<0.14:www/py-dj32-django-mptt@${PY_FLAVOR} \
+RUN_DEPENDS=	${PYTHON_PKGNAMEPREFIX}django32>=3.2.7<3.3:www/py-django32@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}dj32-django-cors-headers>=3.9.0<4:www/py-dj32-django-cors-headers@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}dj32-django-debug-toolbar>=3.2.2<4:www/py-dj32-django-debug-toolbar@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}dj32-django-filter>=21.1<22:www/py-dj32-django-filter@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}dj32-django-graphiql-debug-toolbar>=0.2.0<1:www/py-dj32-django-graphiql-debug-toolbar@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}dj32-django-mptt>=0.13.4<0.14:www/py-dj32-django-mptt@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}dj32-django-prometheus>=2.1.0<2.2:www/py-dj32-django-prometheus@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}dj32-django-redis>=5.0.0<5.1:www/py-dj32-django-redis@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}dj32-django-rq>=2.4.1<2.5:devel/py-dj32-django-rq@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}dj32-django-tables2>=2.4.0<2.5:www/py-dj32-django-tables2@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}dj32-django-taggit>=1.5.1<2:www/py-dj32-django-taggit@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}dj32-django-timezone-field>=4.1.2<5:www/py-dj32-django-timezone-field@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}dj32-djangorestframework>=3.12.4<3.13.0:www/py-dj32-djangorestframework@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}dj32-drf-yasg>=1.20.0<1.21:www/py-dj32-drf-yasg@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}dj32-graphene-django>=2.15.0<3:devel/py-dj32-graphene-django@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}django-pglocks>=1.0.4<1.1:www/py-django-pglocks@${PY_FLAVOR} \
-		${PYTHON_PKGNAMEPREFIX}Jinja2>=2.11.2<4:devel/py-Jinja2@${PY_FLAVOR} \
+		${PYTHON_PKGNAMEPREFIX}Jinja2>=3.0.1<4:devel/py-Jinja2@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}markdown>=3.3.4<3.5:textproc/py-markdown@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}netaddr>=0.8.0<1:net/py-netaddr@${PY_FLAVOR} \
-		${PYTHON_PKGNAMEPREFIX}pycryptodome>=3.10.1<4:security/py-pycryptodome@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}pillow>=8.2.0<9:graphics/py-pillow@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}psycopg2>=2.9.1<3:databases/py-psycopg2@${PY_FLAVOR} \
 		${PYTHON_PKGNAMEPREFIX}svgwrite>=1.4.1<2:graphics/py-svgwrite@${PY_FLAVOR} \
@@ -52,7 +53,7 @@ CPE_VENDOR=	netbox_project
 USE_GITHUB=	yes
 GH_ACCOUNT=	netbox-community
 
-SUB_FILES=	netbox_rq.sample netboxrc.sample pkg-message
+SUB_FILES=	850.netbox-housekeeping.sample netbox_rq.sample netboxrc.sample pkg-message
 SUB_LIST=	DATADIR=${DATADIR} PYTHON_CMD=${PYTHON_CMD} PYTHON_VER=${PYTHON_VER} WWWOWN=${WWWOWN}
 NO_BUILD=	yes
 NO_ARCH=	yes
@@ -84,6 +85,7 @@ post-install-DOCS-on:
 
 post-install-EXAMPLES-on:
 	@${MKDIR} ${STAGEDIR}${EXAMPLESDIR}
+	${INSTALL_DATA} ${WRKDIR}/850.netbox-housekeeping.sample ${STAGEDIR}${EXAMPLESDIR}
 	${INSTALL_DATA} ${WRKDIR}/netbox_rq.sample ${STAGEDIR}${EXAMPLESDIR}
 	${INSTALL_DATA} ${WRKDIR}/netboxrc.sample ${STAGEDIR}${EXAMPLESDIR}
 	${INSTALL_DATA} ${WRKSRC}/contrib/apache.conf ${STAGEDIR}${EXAMPLESDIR}
diff --git a/net-mgmt/netbox/distinfo b/net-mgmt/netbox/distinfo
index de7b927fe43f..b8e664611e4d 100644
--- a/net-mgmt/netbox/distinfo
+++ b/net-mgmt/netbox/distinfo
@@ -1,3 +1,3 @@
-TIMESTAMP = 1629748683
-SHA256 (netbox-community-netbox-v2.11.12_GH0.tar.gz) = c51d8d386ead7523f7513b41d03500bf464fecc4129ccf1f74569a3e8d609684
-SIZE (netbox-community-netbox-v2.11.12_GH0.tar.gz) = 7125072
+TIMESTAMP = 1632927300
+SHA256 (netbox-community-netbox-v3.0.4_GH0.tar.gz) = 10273f484142e0607d5654c0fd1c62801390e8b78365674c8b552fce045edead
+SIZE (netbox-community-netbox-v3.0.4_GH0.tar.gz) = 4490751
diff --git a/net-mgmt/netbox/files/850.netbox-housekeeping.sample.in b/net-mgmt/netbox/files/850.netbox-housekeeping.sample.in
new file mode 100644
index 000000000000..14ad0e102a27
--- /dev/null
+++ b/net-mgmt/netbox/files/850.netbox-housekeeping.sample.in
@@ -0,0 +1,32 @@
+#!/bin/sh
+# This shell script invokes NetBox's housekeeping management command, which
+# intended to be run nightly.
+#
+# If you want to enable this script, copy it to %%PREFIX%%/etc/periodic/daily
+# and place the following into /etc/periodic.conf:
+#
+# daily_netbox_housekeeping_enable="YES"
+#
+# If NetBox has been installed into a nonstandard location, update the paths
+# below.
+command="%%PYTHON_CMD%%"
+netbox_root="%%DATADIR%%"
+
+# If there is a global system configuration file, suck it in.
+#
+if [ -r /etc/defaults/periodic.conf ]; then
+	. /etc/defaults/periodic.conf
+	source_periodic_confs
+fi
+
+rc=0
+
+case "$daily_netbox_housekeeping_enable" in
+	[Yy][Ee][Ss])
+	echo ""
+	echo "Running NetBox housekeeping:"
+	$command "$netbox_root/manage.py" housekeeping
+	rc=$?
+esac
+
+exit $rc
diff --git a/net-mgmt/netbox/files/pkg-message.in b/net-mgmt/netbox/files/pkg-message.in
index 2ecf2f9639bc..1a0d93f9a102 100644
--- a/net-mgmt/netbox/files/pkg-message.in
+++ b/net-mgmt/netbox/files/pkg-message.in
@@ -18,8 +18,7 @@ database migrations will be executed.
 The following steps are required to finish the upgrade: 
 
 1. Run database migrations, trace any missing cable paths, collect static
-   files, remove stale content files, delete any expired user sessions and
-   clear all cached data:
+   files, remove stale content files and delete any expired user sessions
 
 # cd %%DATADIR%%
 # python%%PYTHON_VER%% manage.py migrate
@@ -27,7 +26,6 @@ The following steps are required to finish the upgrade:
 # python%%PYTHON_VER%% manage.py collectstatic --no-input
 # python%%PYTHON_VER%% manage.py remove_stale_contenttypes --no-input
 # python%%PYTHON_VER%% manage.py clearsessions
-# python%%PYTHON_VER%% manage.py invalidate all
 
 2. Restart WSGI/httpd environment (supervisord/apache/nginx/etc.)
 EOD
@@ -244,4 +242,68 @@ Several changes to the REST API were made as well.  Please check the changelogs
 for further details.
 EOD
 }
+{ type: upgrade
+  maximum_version: 3.0.4
+  message: <<EOD
+/!\ WARNING /!\
+
+The NetBox 3.0 release contains major changes, so at least items 1.), 2.) and
+3.) must be checked before proceeding with the upgrade!
+
+/!\ WARNING /!\
+
+1. Please ensure that your local installation of net-mgmt/netbox is at
+   the 2.11 release before attemping to upgrade to NetBox 3.0 or later.
+
+2. Please also note that the previously deprecated secrets functionality has
+   been removed with NetBox 3.0.  This means, all of the secrets still remain
+   in the database once upgraded, only the secrets functionality on the part of
+   NetBox is no longer given.
+
+   In order to continue to be able to access the stored secrets as usual (and
+   then possibly migrate them to another solution, e.g. security/vault), please
+   install the security/py-netbox-secretstore port once NetBox has been
+   upgraded to 3.x and follow its installation instructions how to enable the
+   plugin.
+
+3. If plugins are used, they should be temporarily deactivated to avoid
+   disruptions during the upgrade process.
+
+4. Following items should be checked as well:
+
+   * The default CSV export format for all objects now includes all available
+     data from the object list.  Additionally, the CSV headers now use human-
+     friendly titles rather than raw field names.  If backward compatibility
+     with the old format is desired, export templates can be written to
+     reproduce it.
+
+   * The "invalidate" management command (which clears cached database queries)
+     is no longer needed and has been removed.
+
+   * Support for queryset caching configuration (caching_config) has been
+     removed from the plugins API.
+
+   * The cacheops_* metrics have been removed from the Prometheus exporter.
+
+   * The "display_field" keyword argument has been removed from custom script
+     "ObjectVar" and "MultiObjectVar" fields.  These widgets will use the
+     display value provided by the REST API.
+
+   * The deprecated "display_name" field has been removed from all REST API
+     serializers.  (API clients should reference the display field instead.)
+
+   * The redundant REST API endpoints for console, power, and interface
+     connections have been removed.  The same data can be retrieved by querying
+     the respective model endpoints with the ?connected=True filter applied.
+
+   * Several changes to the REST API were made as well.  Please check the
+     changelogs for further details.
+
+5. There's a new sample script for NetBox housekeeping tasks, which should run
+   once a day.  If the EXAMPLES option is enabled (which is the default) it can
+   be found in the following directory:
+
+   %%EXAMPLESDIR%%/850.netbox-housekeeping.sample
+EOD
+}
 ]
diff --git a/net-mgmt/netbox/pkg-plist b/net-mgmt/netbox/pkg-plist
index 4123ec768248..009d471c12a8 100644
--- a/net-mgmt/netbox/pkg-plist
+++ b/net-mgmt/netbox/pkg-plist
@@ -1,14 +1,9 @@
-%%PORTDOCS%%%%DOCSDIR%%/additional-features/caching.md
 %%PORTDOCS%%%%DOCSDIR%%/additional-features/change-logging.md
-%%PORTDOCS%%%%DOCSDIR%%/additional-features/custom-fields.md
-%%PORTDOCS%%%%DOCSDIR%%/additional-features/custom-links.md
-%%PORTDOCS%%%%DOCSDIR%%/additional-features/custom-scripts.md
-%%PORTDOCS%%%%DOCSDIR%%/additional-features/export-templates.md
 %%PORTDOCS%%%%DOCSDIR%%/additional-features/journaling.md
 %%PORTDOCS%%%%DOCSDIR%%/additional-features/napalm.md
 %%PORTDOCS%%%%DOCSDIR%%/additional-features/prometheus-metrics.md
-%%PORTDOCS%%%%DOCSDIR%%/additional-features/reports.md
 %%PORTDOCS%%%%DOCSDIR%%/additional-features/webhooks.md
+%%PORTDOCS%%%%DOCSDIR%%/administration/housekeeping.md
 %%PORTDOCS%%%%DOCSDIR%%/administration/netbox-shell.md
 %%PORTDOCS%%%%DOCSDIR%%/administration/permissions.md
 %%PORTDOCS%%%%DOCSDIR%%/administration/replicating-netbox.md
@@ -20,12 +15,17 @@
 %%PORTDOCS%%%%DOCSDIR%%/core-functionality/devices.md
 %%PORTDOCS%%%%DOCSDIR%%/core-functionality/ipam.md
 %%PORTDOCS%%%%DOCSDIR%%/core-functionality/power.md
-%%PORTDOCS%%%%DOCSDIR%%/core-functionality/secrets.md
 %%PORTDOCS%%%%DOCSDIR%%/core-functionality/services.md
 %%PORTDOCS%%%%DOCSDIR%%/core-functionality/sites-and-racks.md
 %%PORTDOCS%%%%DOCSDIR%%/core-functionality/tenancy.md
 %%PORTDOCS%%%%DOCSDIR%%/core-functionality/virtualization.md
 %%PORTDOCS%%%%DOCSDIR%%/core-functionality/vlans.md
+%%PORTDOCS%%%%DOCSDIR%%/customization/custom-fields.md
+%%PORTDOCS%%%%DOCSDIR%%/customization/custom-links.md
+%%PORTDOCS%%%%DOCSDIR%%/customization/custom-scripts.md
+%%PORTDOCS%%%%DOCSDIR%%/customization/custom-validation.md
+%%PORTDOCS%%%%DOCSDIR%%/customization/export-templates.md
+%%PORTDOCS%%%%DOCSDIR%%/customization/reports.md
 %%PORTDOCS%%%%DOCSDIR%%/development/adding-models.md
 %%PORTDOCS%%%%DOCSDIR%%/development/application-registry.md
 %%PORTDOCS%%%%DOCSDIR%%/development/extending-models.md
@@ -33,9 +33,12 @@
 %%PORTDOCS%%%%DOCSDIR%%/development/index.md
 %%PORTDOCS%%%%DOCSDIR%%/development/models.md
 %%PORTDOCS%%%%DOCSDIR%%/development/release-checklist.md
+%%PORTDOCS%%%%DOCSDIR%%/development/signals.md
 %%PORTDOCS%%%%DOCSDIR%%/development/style-guide.md
 %%PORTDOCS%%%%DOCSDIR%%/development/user-preferences.md
+%%PORTDOCS%%%%DOCSDIR%%/development/web-ui.md
 %%PORTDOCS%%%%DOCSDIR%%/extra.css
+%%PORTDOCS%%%%DOCSDIR%%/graphql-api/overview.md
 %%PORTDOCS%%%%DOCSDIR%%/index.md
 %%PORTDOCS%%%%DOCSDIR%%/installation/1-postgresql.md
 %%PORTDOCS%%%%DOCSDIR%%/installation/2-redis.md
@@ -48,15 +51,16 @@
 %%PORTDOCS%%%%DOCSDIR%%/installation/upgrading.md
 %%PORTDOCS%%%%DOCSDIR%%/media/admin_ui_run_permission.png
 %%PORTDOCS%%%%DOCSDIR%%/media/installation/netbox_application_stack.png
-%%PORTDOCS%%%%DOCSDIR%%/media/installation/netbox_ui_admin.png
-%%PORTDOCS%%%%DOCSDIR%%/media/installation/netbox_ui_guest.png
 %%PORTDOCS%%%%DOCSDIR%%/media/models/dcim_cable_trace.png
 %%PORTDOCS%%%%DOCSDIR%%/media/plugins/plugin_admin_ui.png
 %%PORTDOCS%%%%DOCSDIR%%/media/plugins/plugin_rest_api_endpoint.png
 %%PORTDOCS%%%%DOCSDIR%%/media/power_distribution.png
-%%PORTDOCS%%%%DOCSDIR%%/media/screenshot1.png
-%%PORTDOCS%%%%DOCSDIR%%/media/screenshot2.png
-%%PORTDOCS%%%%DOCSDIR%%/media/screenshot3.png
+%%PORTDOCS%%%%DOCSDIR%%/media/release-notes/netbox30_ui.png
+%%PORTDOCS%%%%DOCSDIR%%/media/screenshots/cable-trace.png
+%%PORTDOCS%%%%DOCSDIR%%/media/screenshots/home-dark.png
+%%PORTDOCS%%%%DOCSDIR%%/media/screenshots/home-light.png
+%%PORTDOCS%%%%DOCSDIR%%/media/screenshots/prefixes-list.png
+%%PORTDOCS%%%%DOCSDIR%%/media/screenshots/rack.png
 %%PORTDOCS%%%%DOCSDIR%%/models/circuits/circuit.md
 %%PORTDOCS%%%%DOCSDIR%%/models/circuits/circuittermination.md
 %%PORTDOCS%%%%DOCSDIR%%/models/circuits/circuittype.md
@@ -96,10 +100,15 @@
 %%PORTDOCS%%%%DOCSDIR%%/models/dcim/sitegroup.md
 %%PORTDOCS%%%%DOCSDIR%%/models/dcim/virtualchassis.md
 %%PORTDOCS%%%%DOCSDIR%%/models/extras/configcontext.md
+%%PORTDOCS%%%%DOCSDIR%%/models/extras/customfield.md
+%%PORTDOCS%%%%DOCSDIR%%/models/extras/customlink.md
+%%PORTDOCS%%%%DOCSDIR%%/models/extras/exporttemplate.md
 %%PORTDOCS%%%%DOCSDIR%%/models/extras/imageattachment.md
 %%PORTDOCS%%%%DOCSDIR%%/models/extras/tag.md
+%%PORTDOCS%%%%DOCSDIR%%/models/extras/webhook.md
 %%PORTDOCS%%%%DOCSDIR%%/models/ipam/aggregate.md
 %%PORTDOCS%%%%DOCSDIR%%/models/ipam/ipaddress.md
+%%PORTDOCS%%%%DOCSDIR%%/models/ipam/iprange.md
 %%PORTDOCS%%%%DOCSDIR%%/models/ipam/prefix.md
 %%PORTDOCS%%%%DOCSDIR%%/models/ipam/rir.md
 %%PORTDOCS%%%%DOCSDIR%%/models/ipam/role.md
@@ -108,9 +117,6 @@
 %%PORTDOCS%%%%DOCSDIR%%/models/ipam/vlan.md
 %%PORTDOCS%%%%DOCSDIR%%/models/ipam/vlangroup.md
 %%PORTDOCS%%%%DOCSDIR%%/models/ipam/vrf.md
-%%PORTDOCS%%%%DOCSDIR%%/models/secrets/secret.md
-%%PORTDOCS%%%%DOCSDIR%%/models/secrets/secretrole.md
-%%PORTDOCS%%%%DOCSDIR%%/models/secrets/userkey.md
 %%PORTDOCS%%%%DOCSDIR%%/models/tenancy/tenant.md
 %%PORTDOCS%%%%DOCSDIR%%/models/tenancy/tenantgroup.md
 %%PORTDOCS%%%%DOCSDIR%%/models/users/objectpermission.md
@@ -137,11 +143,12 @@
 %%PORTDOCS%%%%DOCSDIR%%/release-notes/version-2.7.md
 %%PORTDOCS%%%%DOCSDIR%%/release-notes/version-2.8.md
 %%PORTDOCS%%%%DOCSDIR%%/release-notes/version-2.9.md
+%%PORTDOCS%%%%DOCSDIR%%/release-notes/version-3.0.md
 %%PORTDOCS%%%%DOCSDIR%%/requirements.txt
 %%PORTDOCS%%%%DOCSDIR%%/rest-api/authentication.md
 %%PORTDOCS%%%%DOCSDIR%%/rest-api/filtering.md
 %%PORTDOCS%%%%DOCSDIR%%/rest-api/overview.md
-%%PORTDOCS%%%%DOCSDIR%%/rest-api/working-with-secrets.md
+%%PORTEXAMPLES%%%%EXAMPLESDIR%%/850.netbox-housekeeping.sample
 %%PORTEXAMPLES%%%%EXAMPLESDIR%%/apache.conf
 %%PORTEXAMPLES%%%%EXAMPLESDIR%%/gunicorn.py
 %%PORTEXAMPLES%%%%EXAMPLESDIR%%/netbox_rq.sample
@@ -156,36 +163,16 @@
 %%DATADIR%%/circuits/apps.py
 %%DATADIR%%/circuits/choices.py
 %%DATADIR%%/circuits/filtersets.py
-%%DATADIR%%/circuits/forms.py
-%%DATADIR%%/circuits/migrations/0001_initial.py
-%%DATADIR%%/circuits/migrations/0002_auto_20160622_1821.py
-%%DATADIR%%/circuits/migrations/0003_provider_32bit_asn_support.py
-%%DATADIR%%/circuits/migrations/0004_circuit_add_tenant.py
-%%DATADIR%%/circuits/migrations/0005_circuit_add_upstream_speed.py
-%%DATADIR%%/circuits/migrations/0006_terminations.py
-%%DATADIR%%/circuits/migrations/0007_circuit_add_description.py
-%%DATADIR%%/circuits/migrations/0008_circuittermination_interface_protect_on_delete.py
-%%DATADIR%%/circuits/migrations/0009_unicode_literals.py
-%%DATADIR%%/circuits/migrations/0010_circuit_status.py
-%%DATADIR%%/circuits/migrations/0011_tags.py
-%%DATADIR%%/circuits/migrations/0012_change_logging.py
-%%DATADIR%%/circuits/migrations/0013_cables.py
-%%DATADIR%%/circuits/migrations/0014_circuittermination_description.py
-%%DATADIR%%/circuits/migrations/0015_custom_tag_models.py
-%%DATADIR%%/circuits/migrations/0016_3569_circuit_fields.py
-%%DATADIR%%/circuits/migrations/0017_circuittype_description.py
-%%DATADIR%%/circuits/migrations/0018_standardize_description.py
-%%DATADIR%%/circuits/migrations/0019_nullbooleanfield_to_booleanfield.py
-%%DATADIR%%/circuits/migrations/0020_custom_field_data.py
-%%DATADIR%%/circuits/migrations/0021_cache_cable_peer.py
-%%DATADIR%%/circuits/migrations/0022_cablepath.py
-%%DATADIR%%/circuits/migrations/0023_circuittermination_port_speed_optional.py
-%%DATADIR%%/circuits/migrations/0024_standardize_name_length.py
-%%DATADIR%%/circuits/migrations/0025_standardize_models.py
-%%DATADIR%%/circuits/migrations/0026_mark_connected.py
-%%DATADIR%%/circuits/migrations/0027_providernetwork.py
-%%DATADIR%%/circuits/migrations/0028_cache_circuit_terminations.py
-%%DATADIR%%/circuits/migrations/0029_circuit_tracing.py
+%%DATADIR%%/circuits/forms/__init__.py
+%%DATADIR%%/circuits/forms/bulk_edit.py
+%%DATADIR%%/circuits/forms/bulk_import.py
+%%DATADIR%%/circuits/forms/filtersets.py
+%%DATADIR%%/circuits/forms/models.py
+%%DATADIR%%/circuits/graphql/__init__.py
+%%DATADIR%%/circuits/graphql/schema.py
+%%DATADIR%%/circuits/graphql/types.py
+%%DATADIR%%/circuits/migrations/0001_squashed.py
+%%DATADIR%%/circuits/migrations/0002_squashed_0029.py
 %%DATADIR%%/circuits/migrations/__init__.py
 %%DATADIR%%/circuits/models.py
 %%DATADIR%%/circuits/signals.py
@@ -206,146 +193,33 @@
 %%DATADIR%%/dcim/apps.py
 %%DATADIR%%/dcim/choices.py
 %%DATADIR%%/dcim/constants.py
-%%DATADIR%%/dcim/elevations.py
 %%DATADIR%%/dcim/fields.py
 %%DATADIR%%/dcim/filtersets.py
-%%DATADIR%%/dcim/forms.py
+%%DATADIR%%/dcim/forms/__init__.py
+%%DATADIR%%/dcim/forms/bulk_create.py
+%%DATADIR%%/dcim/forms/bulk_edit.py
+%%DATADIR%%/dcim/forms/bulk_import.py
+%%DATADIR%%/dcim/forms/common.py
+%%DATADIR%%/dcim/forms/connections.py
+%%DATADIR%%/dcim/forms/fields.py
+%%DATADIR%%/dcim/forms/filtersets.py
+%%DATADIR%%/dcim/forms/formsets.py
+%%DATADIR%%/dcim/forms/models.py
+%%DATADIR%%/dcim/forms/object_create.py
+%%DATADIR%%/dcim/forms/object_import.py
+%%DATADIR%%/dcim/graphql/__init__.py
+%%DATADIR%%/dcim/graphql/schema.py
+%%DATADIR%%/dcim/graphql/types.py
 %%DATADIR%%/dcim/lookups.py
 %%DATADIR%%/dcim/management/__init__.py
 %%DATADIR%%/dcim/management/commands/__init__.py
 %%DATADIR%%/dcim/management/commands/trace_paths.py
-%%DATADIR%%/dcim/migrations/0001_initial.py
-%%DATADIR%%/dcim/migrations/0002_auto_20160622_1821.py
-%%DATADIR%%/dcim/migrations/0003_auto_20160628_1721.py
-%%DATADIR%%/dcim/migrations/0004_auto_20160701_2049.py
-%%DATADIR%%/dcim/migrations/0005_auto_20160706_1722.py
-%%DATADIR%%/dcim/migrations/0006_add_device_primary_ip4_ip6.py
-%%DATADIR%%/dcim/migrations/0007_device_copy_primary_ip.py
-%%DATADIR%%/dcim/migrations/0008_device_remove_primary_ip.py
-%%DATADIR%%/dcim/migrations/0009_site_32bit_asn_support.py
-%%DATADIR%%/dcim/migrations/0010_devicebay_installed_device_set_null.py
-%%DATADIR%%/dcim/migrations/0011_devicetype_part_number.py
-%%DATADIR%%/dcim/migrations/0012_site_rack_device_add_tenant.py
-%%DATADIR%%/dcim/migrations/0013_add_interface_form_factors.py
-%%DATADIR%%/dcim/migrations/0014_rack_add_type_width.py
-%%DATADIR%%/dcim/migrations/0015_rack_add_u_height_validator.py
-%%DATADIR%%/dcim/migrations/0016_module_add_manufacturer.py
-%%DATADIR%%/dcim/migrations/0017_rack_add_role.py
-%%DATADIR%%/dcim/migrations/0018_device_add_asset_tag.py
-%%DATADIR%%/dcim/migrations/0019_new_iface_form_factors.py
-%%DATADIR%%/dcim/migrations/0020_rack_desc_units.py
-%%DATADIR%%/dcim/migrations/0021_add_ff_flexstack.py
-%%DATADIR%%/dcim/migrations/0022_color_names_to_rgb.py
-%%DATADIR%%/dcim/migrations/0023_devicetype_comments.py
-%%DATADIR%%/dcim/migrations/0024_site_add_contact_fields.py
-%%DATADIR%%/dcim/migrations/0025_devicetype_add_interface_ordering.py
-%%DATADIR%%/dcim/migrations/0026_add_rack_reservations.py
-%%DATADIR%%/dcim/migrations/0027_device_add_site.py
-%%DATADIR%%/dcim/migrations/0028_device_copy_rack_to_site.py
-%%DATADIR%%/dcim/migrations/0029_allow_rackless_devices.py
-%%DATADIR%%/dcim/migrations/0030_interface_add_lag.py
-%%DATADIR%%/dcim/migrations/0031_regions.py
-%%DATADIR%%/dcim/migrations/0032_device_increase_name_length.py
-%%DATADIR%%/dcim/migrations/0033_rackreservation_rack_editable.py
-%%DATADIR%%/dcim/migrations/0034_rename_module_to_inventoryitem.py
-%%DATADIR%%/dcim/migrations/0035_device_expand_status_choices.py
-%%DATADIR%%/dcim/migrations/0036_add_ff_juniper_vcp.py
-%%DATADIR%%/dcim/migrations/0037_unicode_literals.py
-%%DATADIR%%/dcim/migrations/0038_wireless_interfaces.py
-%%DATADIR%%/dcim/migrations/0039_interface_add_enabled_mtu.py
-%%DATADIR%%/dcim/migrations/0040_inventoryitem_add_asset_tag_description.py
-%%DATADIR%%/dcim/migrations/0041_napalm_integration.py
-%%DATADIR%%/dcim/migrations/0042_interface_ff_10ge_cx4.py
-%%DATADIR%%/dcim/migrations/0043_device_component_name_lengths.py
-%%DATADIR%%/dcim/migrations/0044_virtualization.py
-%%DATADIR%%/dcim/migrations/0045_devicerole_vm_role.py
-%%DATADIR%%/dcim/migrations/0046_rack_lengthen_facility_id.py
-%%DATADIR%%/dcim/migrations/0047_more_100ge_form_factors.py
-%%DATADIR%%/dcim/migrations/0048_rack_serial.py
-%%DATADIR%%/dcim/migrations/0049_rackreservation_change_user.py
-%%DATADIR%%/dcim/migrations/0050_interface_vlan_tagging.py
-%%DATADIR%%/dcim/migrations/0051_rackreservation_tenant.py
-%%DATADIR%%/dcim/migrations/0052_virtual_chassis.py
-%%DATADIR%%/dcim/migrations/0053_platform_manufacturer.py
-%%DATADIR%%/dcim/migrations/0054_site_status_timezone_description.py
-%%DATADIR%%/dcim/migrations/0055_virtualchassis_ordering.py
-%%DATADIR%%/dcim/migrations/0056_django2.py
-%%DATADIR%%/dcim/migrations/0057_tags.py
-%%DATADIR%%/dcim/migrations/0058_relax_rack_naming_constraints.py
-%%DATADIR%%/dcim/migrations/0059_site_latitude_longitude.py
-%%DATADIR%%/dcim/migrations/0060_change_logging.py
-%%DATADIR%%/dcim/migrations/0061_platform_napalm_args.py
-%%DATADIR%%/dcim/migrations/0062_interface_mtu.py
-%%DATADIR%%/dcim/migrations/0063_device_local_context_data.py
-%%DATADIR%%/dcim/migrations/0064_remove_platform_rpc_client.py
-%%DATADIR%%/dcim/migrations/0065_front_rear_ports.py
-%%DATADIR%%/dcim/migrations/0066_cables.py
-%%DATADIR%%/dcim/migrations/0067_device_type_remove_qualifiers.py
-%%DATADIR%%/dcim/migrations/0068_rack_new_fields.py
-%%DATADIR%%/dcim/migrations/0069_deprecate_nullablecharfield.py
-%%DATADIR%%/dcim/migrations/0070_custom_tag_models.py
-%%DATADIR%%/dcim/migrations/0071_device_components_add_description.py
-%%DATADIR%%/dcim/migrations/0072_powerfeeds.py
-%%DATADIR%%/dcim/migrations/0073_interface_form_factor_to_type.py
-%%DATADIR%%/dcim/migrations/0074_increase_field_length_platform_name_slug.py
-%%DATADIR%%/dcim/migrations/0075_cable_devices.py
-%%DATADIR%%/dcim/migrations/0076_console_port_types.py
-%%DATADIR%%/dcim/migrations/0077_power_types.py
-%%DATADIR%%/dcim/migrations/0078_3569_site_fields.py
-%%DATADIR%%/dcim/migrations/0079_3569_rack_fields.py
-%%DATADIR%%/dcim/migrations/0080_3569_devicetype_fields.py
-%%DATADIR%%/dcim/migrations/0081_3569_device_fields.py
-%%DATADIR%%/dcim/migrations/0082_3569_interface_fields.py
-%%DATADIR%%/dcim/migrations/0082_3569_port_fields.py
-%%DATADIR%%/dcim/migrations/0083_3569_cable_fields.py
-%%DATADIR%%/dcim/migrations/0084_3569_powerfeed_fields.py
-%%DATADIR%%/dcim/migrations/0085_3569_poweroutlet_fields.py
-%%DATADIR%%/dcim/migrations/0086_device_name_nonunique.py
-%%DATADIR%%/dcim/migrations/0087_role_descriptions.py
-%%DATADIR%%/dcim/migrations/0088_powerfeed_available_power.py
-%%DATADIR%%/dcim/migrations/0089_deterministic_ordering.py
-%%DATADIR%%/dcim/migrations/0090_cable_termination_models.py
-%%DATADIR%%/dcim/migrations/0091_interface_type_other.py
-%%DATADIR%%/dcim/migrations/0092_fix_rack_outer_unit.py
-%%DATADIR%%/dcim/migrations/0093_device_component_ordering.py
-%%DATADIR%%/dcim/migrations/0094_device_component_template_ordering.py
-%%DATADIR%%/dcim/migrations/0095_primary_model_ordering.py
-%%DATADIR%%/dcim/migrations/0096_interface_ordering.py
-%%DATADIR%%/dcim/migrations/0097_interfacetemplate_type_other.py
-%%DATADIR%%/dcim/migrations/0098_devicetype_images.py
-%%DATADIR%%/dcim/migrations/0099_powerfeed_negative_voltage.py
-%%DATADIR%%/dcim/migrations/0100_mptt_remove_indexes.py
-%%DATADIR%%/dcim/migrations/0101_nested_rackgroups.py
-%%DATADIR%%/dcim/migrations/0102_nested_rackgroups_rebuild.py
-%%DATADIR%%/dcim/migrations/0103_standardize_description.py
-%%DATADIR%%/dcim/migrations/0104_correct_infiniband_types.py
-%%DATADIR%%/dcim/migrations/0105_interface_name_collation.py
-%%DATADIR%%/dcim/migrations/0106_role_default_color.py
-%%DATADIR%%/dcim/migrations/0107_component_labels.py
-%%DATADIR%%/dcim/migrations/0108_add_tags.py
-%%DATADIR%%/dcim/migrations/0109_interface_remove_vm.py
-%%DATADIR%%/dcim/migrations/0110_virtualchassis_name.py
-%%DATADIR%%/dcim/migrations/0111_component_template_description.py
-%%DATADIR%%/dcim/migrations/0112_standardize_components.py
-%%DATADIR%%/dcim/migrations/0113_nullbooleanfield_to_booleanfield.py
-%%DATADIR%%/dcim/migrations/0114_update_jsonfield.py
-%%DATADIR%%/dcim/migrations/0115_rackreservation_order.py
-%%DATADIR%%/dcim/migrations/0116_rearport_max_positions.py
-%%DATADIR%%/dcim/migrations/0117_custom_field_data.py
-%%DATADIR%%/dcim/migrations/0118_inventoryitem_mptt.py
-%%DATADIR%%/dcim/migrations/0119_inventoryitem_mptt_rebuild.py
-%%DATADIR%%/dcim/migrations/0120_cache_cable_peer.py
-%%DATADIR%%/dcim/migrations/0121_cablepath.py
-%%DATADIR%%/dcim/migrations/0122_standardize_name_length.py
-%%DATADIR%%/dcim/migrations/0123_standardize_models.py
-%%DATADIR%%/dcim/migrations/0124_mark_connected.py
-%%DATADIR%%/dcim/migrations/0125_console_port_speed.py
-%%DATADIR%%/dcim/migrations/0126_rename_rackgroup_location.py
-%%DATADIR%%/dcim/migrations/0127_device_location.py
-%%DATADIR%%/dcim/migrations/0128_device_location_populate.py
-%%DATADIR%%/dcim/migrations/0129_interface_parent.py
-%%DATADIR%%/dcim/migrations/0130_sitegroup.py
+%%DATADIR%%/dcim/migrations/0001_squashed.py
+%%DATADIR%%/dcim/migrations/0002_squashed.py
+%%DATADIR%%/dcim/migrations/0003_squashed_0130.py
 %%DATADIR%%/dcim/migrations/0131_consoleport_speed.py
+%%DATADIR%%/dcim/migrations/0132_cable_length.py
+%%DATADIR%%/dcim/migrations/0133_port_colors.py
 %%DATADIR%%/dcim/migrations/__init__.py
 %%DATADIR%%/dcim/models/__init__.py
 %%DATADIR%%/dcim/models/cables.py
@@ -356,6 +230,7 @@
 %%DATADIR%%/dcim/models/racks.py
 %%DATADIR%%/dcim/models/sites.py
 %%DATADIR%%/dcim/signals.py
+%%DATADIR%%/dcim/svg.py
 %%DATADIR%%/dcim/tables/__init__.py
 %%DATADIR%%/dcim/tables/cables.py
 %%DATADIR%%/dcim/tables/devices.py
@@ -389,74 +264,31 @@
 %%DATADIR%%/extras/context_managers.py
 %%DATADIR%%/extras/filters.py
 %%DATADIR%%/extras/filtersets.py
-%%DATADIR%%/extras/forms.py
+%%DATADIR%%/extras/forms/__init__.py
+%%DATADIR%%/extras/forms/bulk_edit.py
+%%DATADIR%%/extras/forms/bulk_import.py
+%%DATADIR%%/extras/forms/customfields.py
+%%DATADIR%%/extras/forms/filtersets.py
+%%DATADIR%%/extras/forms/models.py
+%%DATADIR%%/extras/forms/scripts.py
+%%DATADIR%%/extras/graphql/__init__.py
+%%DATADIR%%/extras/graphql/mixins.py
+%%DATADIR%%/extras/graphql/schema.py
+%%DATADIR%%/extras/graphql/types.py
 %%DATADIR%%/extras/lookups.py
 %%DATADIR%%/extras/management/__init__.py
 %%DATADIR%%/extras/management/commands/__init__.py
+%%DATADIR%%/extras/management/commands/housekeeping.py
 %%DATADIR%%/extras/management/commands/nbshell.py
 %%DATADIR%%/extras/management/commands/renaturalize.py
 %%DATADIR%%/extras/management/commands/rqworker.py
 %%DATADIR%%/extras/management/commands/runreport.py
 %%DATADIR%%/extras/management/commands/webhook_receiver.py
-%%DATADIR%%/extras/migrations/0001_initial.py
-%%DATADIR%%/extras/migrations/0002_custom_fields.py
-%%DATADIR%%/extras/migrations/0003_exporttemplate_add_description.py
-%%DATADIR%%/extras/migrations/0004_topologymap_change_comma_to_semicolon.py
-%%DATADIR%%/extras/migrations/0005_useraction_add_bulk_create.py
-%%DATADIR%%/extras/migrations/0006_add_imageattachments.py
-%%DATADIR%%/extras/migrations/0007_unicode_literals.py
-%%DATADIR%%/extras/migrations/0008_reports.py
-%%DATADIR%%/extras/migrations/0009_topologymap_type.py
-%%DATADIR%%/extras/migrations/0010_customfield_filter_logic.py
-%%DATADIR%%/extras/migrations/0011_django2.py
-%%DATADIR%%/extras/migrations/0012_webhooks.py
-%%DATADIR%%/extras/migrations/0013_objectchange.py
-%%DATADIR%%/extras/migrations/0014_configcontexts.py
-%%DATADIR%%/extras/migrations/0015_remove_useraction.py
-%%DATADIR%%/extras/migrations/0016_exporttemplate_add_cable.py
-%%DATADIR%%/extras/migrations/0017_exporttemplate_mime_type_length.py
-%%DATADIR%%/extras/migrations/0018_exporttemplate_add_jinja2.py
-%%DATADIR%%/extras/migrations/0019_tag_taggeditem.py
-%%DATADIR%%/extras/migrations/0020_tag_data.py
-%%DATADIR%%/extras/migrations/0021_add_color_comments_changelog_to_tag.py
-%%DATADIR%%/extras/migrations/0022_custom_links.py
-%%DATADIR%%/extras/migrations/0023_fix_tag_sequences.py
-%%DATADIR%%/extras/migrations/0024_scripts.py
-%%DATADIR%%/extras/migrations/0025_objectchange_time_index.py
-%%DATADIR%%/extras/migrations/0026_webhook_ca_file_path.py
-%%DATADIR%%/extras/migrations/0027_webhook_additional_headers.py
-%%DATADIR%%/extras/migrations/0028_remove_topology_maps.py
-%%DATADIR%%/extras/migrations/0029_3569_customfield_fields.py
-%%DATADIR%%/extras/migrations/0030_3569_objectchange_fields.py
-%%DATADIR%%/extras/migrations/0031_3569_exporttemplate_fields.py
-%%DATADIR%%/extras/migrations/0032_3569_webhook_fields.py
-%%DATADIR%%/extras/migrations/0033_graph_type_template_language.py
-%%DATADIR%%/extras/migrations/0034_configcontext_tags.py
-%%DATADIR%%/extras/migrations/0035_deterministic_ordering.py
-%%DATADIR%%/extras/migrations/0036_contenttype_filters_to_q_objects.py
-%%DATADIR%%/extras/migrations/0037_configcontexts_clusters.py
-%%DATADIR%%/extras/migrations/0038_webhook_template_support.py
-%%DATADIR%%/extras/migrations/0039_update_features_content_types.py
-%%DATADIR%%/extras/migrations/0040_standardize_description.py
-%%DATADIR%%/extras/migrations/0041_tag_description.py
-%%DATADIR%%/extras/migrations/0042_customfield_manager.py
-%%DATADIR%%/extras/migrations/0043_report.py
-%%DATADIR%%/extras/migrations/0044_jobresult.py
-%%DATADIR%%/extras/migrations/0045_configcontext_changelog.py
-%%DATADIR%%/extras/migrations/0046_update_jsonfield.py
-%%DATADIR%%/extras/migrations/0047_tag_ordering.py
-%%DATADIR%%/extras/migrations/0048_exporttemplate_remove_template_language.py
-%%DATADIR%%/extras/migrations/0049_remove_graph.py
-%%DATADIR%%/extras/migrations/0050_customfield_changes.py
-%%DATADIR%%/extras/migrations/0051_migrate_customfields.py
-%%DATADIR%%/extras/migrations/0052_customfield_cleanup.py
-%%DATADIR%%/extras/migrations/0053_rename_webhook_obj_type.py
-%%DATADIR%%/extras/migrations/0054_standardize_models.py
-%%DATADIR%%/extras/migrations/0055_objectchange_data.py
-%%DATADIR%%/extras/migrations/0056_extend_configcontext.py
-%%DATADIR%%/extras/migrations/0057_customlink_rename_fields.py
-%%DATADIR%%/extras/migrations/0058_journalentry.py
-%%DATADIR%%/extras/migrations/0059_exporttemplate_as_attachment.py
+%%DATADIR%%/extras/migrations/0001_squashed.py
+%%DATADIR%%/extras/migrations/0002_squashed_0059.py
+%%DATADIR%%/extras/migrations/0060_customlink_button_class.py
+%%DATADIR%%/extras/migrations/0061_extras_change_logging.py
+%%DATADIR%%/extras/migrations/0062_clear_secrets_changelog.py
 %%DATADIR%%/extras/migrations/__init__.py
 %%DATADIR%%/extras/models/__init__.py
 %%DATADIR%%/extras/models/change_logging.py
@@ -495,6 +327,7 @@
 %%DATADIR%%/extras/tests/test_api.py
 %%DATADIR%%/extras/tests/test_changelog.py
 %%DATADIR%%/extras/tests/test_customfields.py
+%%DATADIR%%/extras/tests/test_customvalidator.py
 %%DATADIR%%/extras/tests/test_filtersets.py
 %%DATADIR%%/extras/tests/test_forms.py
 %%DATADIR%%/extras/tests/test_models.py
@@ -506,12 +339,14 @@
 %%DATADIR%%/extras/tests/test_webhooks.py
 %%DATADIR%%/extras/urls.py
 %%DATADIR%%/extras/utils.py
+%%DATADIR%%/extras/validators.py
 %%DATADIR%%/extras/views.py
 %%DATADIR%%/extras/webhooks.py
 %%DATADIR%%/extras/webhooks_worker.py
 %%DATADIR%%/generate_secret_key.py
 %%DATADIR%%/ipam/__init__.py
 %%DATADIR%%/ipam/api/__init__.py
+%%DATADIR%%/ipam/api/mixins.py
 %%DATADIR%%/ipam/api/nested_serializers.py
 %%DATADIR%%/ipam/api/serializers.py
 %%DATADIR%%/ipam/api/urls.py
@@ -522,60 +357,27 @@
 %%DATADIR%%/ipam/fields.py
 %%DATADIR%%/ipam/filtersets.py
 %%DATADIR%%/ipam/formfields.py
-%%DATADIR%%/ipam/forms.py
+%%DATADIR%%/ipam/forms/__init__.py
+%%DATADIR%%/ipam/forms/bulk_create.py
+%%DATADIR%%/ipam/forms/bulk_edit.py
+%%DATADIR%%/ipam/forms/bulk_import.py
+%%DATADIR%%/ipam/forms/filtersets.py
+%%DATADIR%%/ipam/forms/models.py
+%%DATADIR%%/ipam/graphql/__init__.py
+%%DATADIR%%/ipam/graphql/mixins.py
+%%DATADIR%%/ipam/graphql/schema.py
+%%DATADIR%%/ipam/graphql/types.py
 %%DATADIR%%/ipam/lookups.py
 %%DATADIR%%/ipam/management/__init__.py
 %%DATADIR%%/ipam/management/commands/__init__.py
 %%DATADIR%%/ipam/management/commands/rebuild_prefixes.py
 %%DATADIR%%/ipam/managers.py
-%%DATADIR%%/ipam/migrations/0001_initial.py
-%%DATADIR%%/ipam/migrations/0002_vrf_add_enforce_unique.py
-%%DATADIR%%/ipam/migrations/0003_ipam_add_vlangroups.py
-%%DATADIR%%/ipam/migrations/0004_ipam_vlangroup_uniqueness.py
-%%DATADIR%%/ipam/migrations/0005_auto_20160725_1842.py
-%%DATADIR%%/ipam/migrations/0006_vrf_vlan_add_tenant.py
-%%DATADIR%%/ipam/migrations/0007_prefix_ipaddress_add_tenant.py
-%%DATADIR%%/ipam/migrations/0008_prefix_change_order.py
-%%DATADIR%%/ipam/migrations/0009_ipaddress_add_status.py
-%%DATADIR%%/ipam/migrations/0010_ipaddress_help_texts.py
-%%DATADIR%%/ipam/migrations/0011_rir_add_is_private.py
-%%DATADIR%%/ipam/migrations/0012_services.py
-%%DATADIR%%/ipam/migrations/0013_prefix_add_is_pool.py
-%%DATADIR%%/ipam/migrations/0014_ipaddress_status_add_deprecated.py
-%%DATADIR%%/ipam/migrations/0015_global_vlans.py
-%%DATADIR%%/ipam/migrations/0016_unicode_literals.py
-%%DATADIR%%/ipam/migrations/0017_ipaddress_roles.py
-%%DATADIR%%/ipam/migrations/0018_remove_service_uniqueness_constraint.py
-%%DATADIR%%/ipam/migrations/0019_virtualization.py
-%%DATADIR%%/ipam/migrations/0020_ipaddress_add_role_carp.py
-%%DATADIR%%/ipam/migrations/0021_vrf_ordering.py
-%%DATADIR%%/ipam/migrations/0022_tags.py
-%%DATADIR%%/ipam/migrations/0023_change_logging.py
-%%DATADIR%%/ipam/migrations/0024_vrf_allow_null_rd.py
-%%DATADIR%%/ipam/migrations/0025_custom_tag_models.py
-%%DATADIR%%/ipam/migrations/0026_prefix_ordering_vrf_nulls_first.py
-%%DATADIR%%/ipam/migrations/0027_ipaddress_add_dns_name.py
-%%DATADIR%%/ipam/migrations/0028_3569_prefix_fields.py
-%%DATADIR%%/ipam/migrations/0029_3569_ipaddress_fields.py
-%%DATADIR%%/ipam/migrations/0030_3569_vlan_fields.py
-%%DATADIR%%/ipam/migrations/0031_3569_service_fields.py
-%%DATADIR%%/ipam/migrations/0032_role_description.py
-%%DATADIR%%/ipam/migrations/0033_deterministic_ordering.py
-%%DATADIR%%/ipam/migrations/0034_fix_ipaddress_status_dhcp.py
-%%DATADIR%%/ipam/migrations/0035_drop_ip_family.py
-%%DATADIR%%/ipam/migrations/0036_standardize_description.py
-%%DATADIR%%/ipam/migrations/0037_ipaddress_assignment.py
-%%DATADIR%%/ipam/migrations/0038_custom_field_data.py
-%%DATADIR%%/ipam/migrations/0039_service_ports_array.py
-%%DATADIR%%/ipam/migrations/0040_service_drop_port.py
-%%DATADIR%%/ipam/migrations/0041_routetarget.py
-%%DATADIR%%/ipam/migrations/0042_standardize_name_length.py
-%%DATADIR%%/ipam/migrations/0043_add_tenancy_to_aggregates.py
-%%DATADIR%%/ipam/migrations/0044_standardize_models.py
-%%DATADIR%%/ipam/migrations/0045_vlangroup_scope.py
-%%DATADIR%%/ipam/migrations/0046_set_vlangroup_scope_types.py
+%%DATADIR%%/ipam/migrations/0001_squashed.py
+%%DATADIR%%/ipam/migrations/0002_squashed_0046.py
 %%DATADIR%%/ipam/migrations/0047_prefix_depth_children.py
 %%DATADIR%%/ipam/migrations/0048_prefix_populate_depth_children.py
+%%DATADIR%%/ipam/migrations/0049_prefix_mark_utilized.py
+%%DATADIR%%/ipam/migrations/0050_iprange.py
 %%DATADIR%%/ipam/migrations/__init__.py
 %%DATADIR%%/ipam/models/__init__.py
 %%DATADIR%%/ipam/models/ip.py
@@ -584,7 +386,11 @@
 %%DATADIR%%/ipam/models/vrfs.py
 %%DATADIR%%/ipam/querysets.py
 %%DATADIR%%/ipam/signals.py
-%%DATADIR%%/ipam/tables.py
+%%DATADIR%%/ipam/tables/__init__.py
+%%DATADIR%%/ipam/tables/ip.py
+%%DATADIR%%/ipam/tables/services.py
+%%DATADIR%%/ipam/tables/vlans.py
+%%DATADIR%%/ipam/tables/vrfs.py
 %%DATADIR%%/ipam/tests/__init__.py
 %%DATADIR%%/ipam/tests/test_api.py
 %%DATADIR%%/ipam/tests/test_filtersets.py
@@ -617,840 +423,144 @@
 %%DATADIR%%/netbox/context_processors.py
 %%DATADIR%%/netbox/filtersets.py
 %%DATADIR%%/netbox/forms.py
+%%DATADIR%%/netbox/graphql/__init__.py
+%%DATADIR%%/netbox/graphql/fields.py
+%%DATADIR%%/netbox/graphql/schema.py
+%%DATADIR%%/netbox/graphql/types.py
+%%DATADIR%%/netbox/graphql/utils.py
+%%DATADIR%%/netbox/graphql/views.py
 %%DATADIR%%/netbox/middleware.py
 %%DATADIR%%/netbox/models.py
-%%DATADIR%%/netbox/releases.py
+%%DATADIR%%/netbox/navigation_menu.py
 %%DATADIR%%/netbox/settings.py
+%%DATADIR%%/netbox/signals.py
 %%DATADIR%%/netbox/tests/__init__.py
 %%DATADIR%%/netbox/tests/test_api.py
 %%DATADIR%%/netbox/tests/test_authentication.py
-%%DATADIR%%/netbox/tests/test_releases.py
+%%DATADIR%%/netbox/tests/test_graphql.py
 %%DATADIR%%/netbox/tests/test_views.py
 %%DATADIR%%/netbox/urls.py
 %%DATADIR%%/netbox/views/__init__.py
 %%DATADIR%%/netbox/views/generic.py
 %%DATADIR%%/netbox/wsgi.py
-%%DATADIR%%/project-static/bootstrap-3.4.1-dist/css/bootstrap-theme.css
-%%DATADIR%%/project-static/bootstrap-3.4.1-dist/css/bootstrap-theme.css.map
-%%DATADIR%%/project-static/bootstrap-3.4.1-dist/css/bootstrap-theme.min.css
-%%DATADIR%%/project-static/bootstrap-3.4.1-dist/css/bootstrap-theme.min.css.map
-%%DATADIR%%/project-static/bootstrap-3.4.1-dist/css/bootstrap.css
-%%DATADIR%%/project-static/bootstrap-3.4.1-dist/css/bootstrap.css.map
-%%DATADIR%%/project-static/bootstrap-3.4.1-dist/css/bootstrap.min.css
-%%DATADIR%%/project-static/bootstrap-3.4.1-dist/css/bootstrap.min.css.map
-%%DATADIR%%/project-static/bootstrap-3.4.1-dist/fonts/glyphicons-halflings-regular.eot
-%%DATADIR%%/project-static/bootstrap-3.4.1-dist/fonts/glyphicons-halflings-regular.svg
-%%DATADIR%%/project-static/bootstrap-3.4.1-dist/fonts/glyphicons-halflings-regular.ttf
-%%DATADIR%%/project-static/bootstrap-3.4.1-dist/fonts/glyphicons-halflings-regular.woff
-%%DATADIR%%/project-static/bootstrap-3.4.1-dist/fonts/glyphicons-halflings-regular.woff2
-%%DATADIR%%/project-static/bootstrap-3.4.1-dist/js/bootstrap.js
-%%DATADIR%%/project-static/bootstrap-3.4.1-dist/js/bootstrap.min.js
-%%DATADIR%%/project-static/bootstrap-3.4.1-dist/js/npm.js
-%%DATADIR%%/project-static/clipboard.js/clipboard-2.0.6.min.js
-%%DATADIR%%/project-static/css/base.css
-%%DATADIR%%/project-static/css/rack_elevation.css
-%%DATADIR%%/project-static/flatpickr-4.6.3/flatpickr.min.js
-%%DATADIR%%/project-static/flatpickr-4.6.3/themes/dark.css
-%%DATADIR%%/project-static/flatpickr-4.6.3/themes/light.css
-%%DATADIR%%/project-static/img/ajax-loader.gif
+%%DATADIR%%/project-static/.eslintignore
+%%DATADIR%%/project-static/.eslintrc
+%%DATADIR%%/project-static/.prettierignore
+%%DATADIR%%/project-static/.prettierrc
+%%DATADIR%%/project-static/.sassrc
+%%DATADIR%%/project-static/bundle.js
+%%DATADIR%%/project-static/dist/cable_trace.css
+%%DATADIR%%/project-static/dist/config.js
+%%DATADIR%%/project-static/dist/config.js.map
+%%DATADIR%%/project-static/dist/graphiql.css
+%%DATADIR%%/project-static/dist/graphiql.js
+%%DATADIR%%/project-static/dist/graphiql.js.map
+%%DATADIR%%/project-static/dist/jobs.js
+%%DATADIR%%/project-static/dist/jobs.js.map
+%%DATADIR%%/project-static/dist/lldp.js
+%%DATADIR%%/project-static/dist/lldp.js.map
+%%DATADIR%%/project-static/dist/materialdesignicons-webfont-2ZY4X5WS.woff
+%%DATADIR%%/project-static/dist/materialdesignicons-webfont-EH3JD4GG.ttf
+%%DATADIR%%/project-static/dist/materialdesignicons-webfont-KSYPMDN6.woff2
+%%DATADIR%%/project-static/dist/materialdesignicons-webfont-LWDVGUDX.eot
+%%DATADIR%%/project-static/dist/netbox-dark.css
+%%DATADIR%%/project-static/dist/netbox-external.css
+%%DATADIR%%/project-static/dist/netbox-light.css
+%%DATADIR%%/project-static/dist/netbox-print.css
+%%DATADIR%%/project-static/dist/netbox.js
+%%DATADIR%%/project-static/dist/netbox.js.map
+%%DATADIR%%/project-static/dist/rack_elevation.css
+%%DATADIR%%/project-static/dist/status.js
+%%DATADIR%%/project-static/dist/status.js.map
+%%DATADIR%%/project-static/docs/.info
+%%DATADIR%%/project-static/img/graphql.ico
 %%DATADIR%%/project-static/img/netbox.ico
 %%DATADIR%%/project-static/img/netbox_icon.svg
 %%DATADIR%%/project-static/img/netbox_logo.png
 %%DATADIR%%/project-static/img/netbox_logo.svg
+%%DATADIR%%/project-static/img/rest-api.ico
 %%DATADIR%%/project-static/img/tint_20.png
-%%DATADIR%%/project-static/jquery-ui-1.12.1/AUTHORS.txt
-%%DATADIR%%/project-static/jquery-ui-1.12.1/LICENSE.txt
-%%DATADIR%%/project-static/jquery-ui-1.12.1/external/jquery/jquery.js
-%%DATADIR%%/project-static/jquery-ui-1.12.1/images/ui-icons_444444_256x240.png
-%%DATADIR%%/project-static/jquery-ui-1.12.1/images/ui-icons_555555_256x240.png
-%%DATADIR%%/project-static/jquery-ui-1.12.1/images/ui-icons_777620_256x240.png
-%%DATADIR%%/project-static/jquery-ui-1.12.1/images/ui-icons_777777_256x240.png
-%%DATADIR%%/project-static/jquery-ui-1.12.1/images/ui-icons_cc0000_256x240.png
-%%DATADIR%%/project-static/jquery-ui-1.12.1/images/ui-icons_ffffff_256x240.png
-%%DATADIR%%/project-static/jquery-ui-1.12.1/index.html
-%%DATADIR%%/project-static/jquery-ui-1.12.1/jquery-ui.css
-%%DATADIR%%/project-static/jquery-ui-1.12.1/jquery-ui.js
-%%DATADIR%%/project-static/jquery-ui-1.12.1/jquery-ui.min.css
-%%DATADIR%%/project-static/jquery-ui-1.12.1/jquery-ui.min.js
-%%DATADIR%%/project-static/jquery-ui-1.12.1/jquery-ui.structure.css
-%%DATADIR%%/project-static/jquery-ui-1.12.1/jquery-ui.structure.min.css
-%%DATADIR%%/project-static/jquery-ui-1.12.1/jquery-ui.theme.css
-%%DATADIR%%/project-static/jquery-ui-1.12.1/jquery-ui.theme.min.css
-%%DATADIR%%/project-static/jquery-ui-1.12.1/package.json
-%%DATADIR%%/project-static/jquery/jquery-3.5.1.min.js
-%%DATADIR%%/project-static/js/cabletrace.js
-%%DATADIR%%/project-static/js/connection_toggles.js
-%%DATADIR%%/project-static/js/forms.js
-%%DATADIR%%/project-static/js/interface_filtering.js
-%%DATADIR%%/project-static/js/job_result.js
-%%DATADIR%%/project-static/js/rack_elevations.js
-%%DATADIR%%/project-static/js/secrets.js
-%%DATADIR%%/project-static/js/tableconfig.js
-%%DATADIR%%/project-static/materialdesignicons-5.4.55/.github/ISSUE_TEMPLATE.md
-%%DATADIR%%/project-static/materialdesignicons-5.4.55/LICENSE
-%%DATADIR%%/project-static/materialdesignicons-5.4.55/README.md
-%%DATADIR%%/project-static/materialdesignicons-5.4.55/css/materialdesignicons.css
-%%DATADIR%%/project-static/materialdesignicons-5.4.55/css/materialdesignicons.css.map
-%%DATADIR%%/project-static/materialdesignicons-5.4.55/css/materialdesignicons.min.css
-%%DATADIR%%/project-static/materialdesignicons-5.4.55/css/materialdesignicons.min.css.map
-%%DATADIR%%/project-static/materialdesignicons-5.4.55/fonts/materialdesignicons-webfont.eot
-%%DATADIR%%/project-static/materialdesignicons-5.4.55/fonts/materialdesignicons-webfont.ttf
-%%DATADIR%%/project-static/materialdesignicons-5.4.55/fonts/materialdesignicons-webfont.woff
-%%DATADIR%%/project-static/materialdesignicons-5.4.55/fonts/materialdesignicons-webfont.woff2
-%%DATADIR%%/project-static/materialdesignicons-5.4.55/package.json
-%%DATADIR%%/project-static/materialdesignicons-5.4.55/preview.html
-%%DATADIR%%/project-static/materialdesignicons-5.4.55/scss/_animated.scss
-%%DATADIR%%/project-static/materialdesignicons-5.4.55/scss/_core.scss
-%%DATADIR%%/project-static/materialdesignicons-5.4.55/scss/_extras.scss
-%%DATADIR%%/project-static/materialdesignicons-5.4.55/scss/_functions.scss
-%%DATADIR%%/project-static/materialdesignicons-5.4.55/scss/_icons.scss
-%%DATADIR%%/project-static/materialdesignicons-5.4.55/scss/_path.scss
-%%DATADIR%%/project-static/materialdesignicons-5.4.55/scss/_variables.scss
-%%DATADIR%%/project-static/materialdesignicons-5.4.55/scss/materialdesignicons.scss
-%%DATADIR%%/project-static/select2-4.0.13/.editorconfig
-%%DATADIR%%/project-static/select2-4.0.13/.github/CONTRIBUTING.md
-%%DATADIR%%/project-static/select2-4.0.13/.github/FUNDING.yml
-%%DATADIR%%/project-static/select2-4.0.13/.github/ISSUE_TEMPLATE.md
-%%DATADIR%%/project-static/select2-4.0.13/.github/PULL_REQUEST_TEMPLATE.md
-%%DATADIR%%/project-static/select2-4.0.13/.github/stale.yml
-%%DATADIR%%/project-static/select2-4.0.13/.github/workflows/docs-deploy.yml
-%%DATADIR%%/project-static/select2-4.0.13/.github/workflows/main.yml
-%%DATADIR%%/project-static/select2-4.0.13/.github/workflows/package-deploy.yml
-%%DATADIR%%/project-static/select2-4.0.13/.gitignore
-%%DATADIR%%/project-static/select2-4.0.13/.jshintignore
-%%DATADIR%%/project-static/select2-4.0.13/.jshintrc
-%%DATADIR%%/project-static/select2-4.0.13/CHANGELOG.md
-%%DATADIR%%/project-static/select2-4.0.13/Gruntfile.js
-%%DATADIR%%/project-static/select2-4.0.13/LICENSE.md
-%%DATADIR%%/project-static/select2-4.0.13/README.md
-%%DATADIR%%/project-static/select2-4.0.13/bower.json
-%%DATADIR%%/project-static/select2-4.0.13/component.json
-%%DATADIR%%/project-static/select2-4.0.13/composer.json
-%%DATADIR%%/project-static/select2-4.0.13/dist/css/select2.css
-%%DATADIR%%/project-static/select2-4.0.13/dist/css/select2.min.css
-%%DATADIR%%/project-static/select2-4.0.13/dist/js/i18n/af.js
-%%DATADIR%%/project-static/select2-4.0.13/dist/js/i18n/ar.js
-%%DATADIR%%/project-static/select2-4.0.13/dist/js/i18n/az.js
-%%DATADIR%%/project-static/select2-4.0.13/dist/js/i18n/bg.js
-%%DATADIR%%/project-static/select2-4.0.13/dist/js/i18n/bn.js
-%%DATADIR%%/project-static/select2-4.0.13/dist/js/i18n/bs.js
-%%DATADIR%%/project-static/select2-4.0.13/dist/js/i18n/ca.js
-%%DATADIR%%/project-static/select2-4.0.13/dist/js/i18n/cs.js
-%%DATADIR%%/project-static/select2-4.0.13/dist/js/i18n/da.js
-%%DATADIR%%/project-static/select2-4.0.13/dist/js/i18n/de.js
-%%DATADIR%%/project-static/select2-4.0.13/dist/js/i18n/dsb.js
-%%DATADIR%%/project-static/select2-4.0.13/dist/js/i18n/el.js
-%%DATADIR%%/project-static/select2-4.0.13/dist/js/i18n/en.js
-%%DATADIR%%/project-static/select2-4.0.13/dist/js/i18n/es.js
-%%DATADIR%%/project-static/select2-4.0.13/dist/js/i18n/et.js
-%%DATADIR%%/project-static/select2-4.0.13/dist/js/i18n/eu.js
-%%DATADIR%%/project-static/select2-4.0.13/dist/js/i18n/fa.js
-%%DATADIR%%/project-static/select2-4.0.13/dist/js/i18n/fi.js
-%%DATADIR%%/project-static/select2-4.0.13/dist/js/i18n/fr.js
-%%DATADIR%%/project-static/select2-4.0.13/dist/js/i18n/gl.js
-%%DATADIR%%/project-static/select2-4.0.13/dist/js/i18n/he.js
-%%DATADIR%%/project-static/select2-4.0.13/dist/js/i18n/hi.js
-%%DATADIR%%/project-static/select2-4.0.13/dist/js/i18n/hr.js
-%%DATADIR%%/project-static/select2-4.0.13/dist/js/i18n/hsb.js
-%%DATADIR%%/project-static/select2-4.0.13/dist/js/i18n/hu.js
-%%DATADIR%%/project-static/select2-4.0.13/dist/js/i18n/hy.js
-%%DATADIR%%/project-static/select2-4.0.13/dist/js/i18n/id.js
-%%DATADIR%%/project-static/select2-4.0.13/dist/js/i18n/is.js
-%%DATADIR%%/project-static/select2-4.0.13/dist/js/i18n/it.js
-%%DATADIR%%/project-static/select2-4.0.13/dist/js/i18n/ja.js
-%%DATADIR%%/project-static/select2-4.0.13/dist/js/i18n/ka.js
-%%DATADIR%%/project-static/select2-4.0.13/dist/js/i18n/km.js
-%%DATADIR%%/project-static/select2-4.0.13/dist/js/i18n/ko.js
-%%DATADIR%%/project-static/select2-4.0.13/dist/js/i18n/lt.js
-%%DATADIR%%/project-static/select2-4.0.13/dist/js/i18n/lv.js
-%%DATADIR%%/project-static/select2-4.0.13/dist/js/i18n/mk.js
-%%DATADIR%%/project-static/select2-4.0.13/dist/js/i18n/ms.js
-%%DATADIR%%/project-static/select2-4.0.13/dist/js/i18n/nb.js
-%%DATADIR%%/project-static/select2-4.0.13/dist/js/i18n/ne.js
-%%DATADIR%%/project-static/select2-4.0.13/dist/js/i18n/nl.js
-%%DATADIR%%/project-static/select2-4.0.13/dist/js/i18n/pl.js
-%%DATADIR%%/project-static/select2-4.0.13/dist/js/i18n/ps.js
-%%DATADIR%%/project-static/select2-4.0.13/dist/js/i18n/pt-BR.js
-%%DATADIR%%/project-static/select2-4.0.13/dist/js/i18n/pt.js
-%%DATADIR%%/project-static/select2-4.0.13/dist/js/i18n/ro.js
-%%DATADIR%%/project-static/select2-4.0.13/dist/js/i18n/ru.js
-%%DATADIR%%/project-static/select2-4.0.13/dist/js/i18n/sk.js
-%%DATADIR%%/project-static/select2-4.0.13/dist/js/i18n/sl.js
-%%DATADIR%%/project-static/select2-4.0.13/dist/js/i18n/sq.js
-%%DATADIR%%/project-static/select2-4.0.13/dist/js/i18n/sr-Cyrl.js
-%%DATADIR%%/project-static/select2-4.0.13/dist/js/i18n/sr.js
-%%DATADIR%%/project-static/select2-4.0.13/dist/js/i18n/sv.js
*** 997 LINES SKIPPED ***



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202110041729.194HTXkJ002906>