net-mgmt/netbox: Update to 2.6.5

* Introduce EXAMPLES option which installs a sample rc script to the example
  location.  Using the script will eliminate the need for
  sysutils/py-supervisor for those who run NetBox as a system service. [1]

  If there's a lot of interest it can also be installed in near future as
  regular rc script.

* Consolidate keywords in pkg-message to avoid accidental deletion of these.

Notable changes since 2.5.13:

* Improved performance via Caching through Redis
* Support for Power Panels and Feeds
* Introduction of view-only permissions
* Ability to create custom links under the admin UI
* Support for Prometheus metrics
* Many other enhancements and bug fixes

https://github.com/netbox-community/netbox/blob/v2.6.5/CHANGELOG.md

Submitted by:	Thomas Kurschel (via private email) [1]
This commit is contained in:
Kai Knoblich 2019-09-30 14:55:03 +00:00
parent 0b2ebda569
commit 24c244e70f
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=513395
6 changed files with 229 additions and 41 deletions

View file

@ -5,6 +5,37 @@ they are unavoidable.
You should get into the habit of checking this file for changes each time
you update your ports collection, before attempting any port upgrades.
20190930:
AFFECTS: users of NetBox
AUTHOR: kai@FreeBSD.org
Since the 2.6 release a running Redis server instance is required for
caching objects to run. Also the following settings like below need to be
added (or modified) in the existing configuration.py:
REDIS = {
'HOST': 'localhost',
'PORT': 6397,
'PASSWORD': ''
'DATABASE': 0,
'CACHE_DATABASE': 1,
'DEFAULT_TIMEOUT': 300,
'SSL': False,
}
Note that if you were using these settings in a prior release with
webhooks, the DATABASE setting remains the same but an additional
CACHE_DATABASE settings has been added with a default value of 1 to
support the caching backend.
The DATABASE setting will be renamed in a future release of NetBox to
better relay the meaning of the setting. It is highly recommended to keep
the webhook and cache databases separate. Using the same database number
for both may result in webhook processing data being lost during cache
flushing events.
Please also check the pkg-message and the changelogs for further info.
20190927:
AFFECTS: users of emulators/qemu-devel
AUTHOR: bofh@FreeBSD.org

View file

@ -2,8 +2,7 @@
PORTNAME= netbox
DISTVERSIONPREFIX= v
DISTVERSION= 2.5.13
PORTREVISION= 1
DISTVERSION= 2.6.5
CATEGORIES= net-mgmt
MAINTAINER= kai@FreeBSD.org
@ -12,36 +11,39 @@ COMMENT= IP address management tool
LICENSE= APACHE20
LICENSE_FILE= ${WRKSRC}/LICENSE.txt
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django22>=2.2,<2.3:www/py-django22@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}dj22-django-cors-headers>=2.4.0:www/py-dj22-django-cors-headers@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}dj22-django-debug-toolbar>=1.11:www/py-dj22-django-debug-toolbar@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}dj22-django-filter>=2.0.0:www/py-dj22-django-filter@${PY_FLAVOR} \
RUN_DEPENDS= ${PYTHON_PKGNAMEPREFIX}django22>=2.2<2.3:www/py-django22@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}dj22-django-cacheops>=4.1:www/py-dj22-django-cacheops@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}dj22-django-cors-headers>=3.0.2:www/py-dj22-django-cors-headers@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}dj22-django-debug-toolbar>=2.0:www/py-dj22-django-debug-toolbar@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}dj22-django-filter>=2.1.0:www/py-dj22-django-filter@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}dj22-django-mptt>=0.9.1:www/py-dj22-django-mptt@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}dj22-django-tables2>=2.0.3:www/py-dj22-django-tables2@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}dj22-django-taggit>=0.24.0:www/py-dj22-django-taggit@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}dj22-django-prometheus>=1.0.15:www/py-dj22-django-prometheus@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}dj22-django-rq>=2.1.0:devel/py-dj22-django-rq@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}dj22-django-tables2>=2.0.6:www/py-dj22-django-tables2@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}dj22-django-taggit>=0:www/py-dj22-django-taggit@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}dj22-django-taggit-serializer>=0.1.7:www/py-dj22-django-taggit-serializer@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}dj22-django-timezone-field>=3.0:www/py-dj22-django-timezone-field@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}dj22-djangorestframework>=3.9.1:www/py-dj22-djangorestframework@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}dj22-drf-yasg>=1.14.0:www/py-dj22-drf-yasg@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}dj22-djangorestframework>=3.9.4:www/py-dj22-djangorestframework@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}dj22-drf-yasg>=1.16.0:www/py-dj22-drf-yasg@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}gfm>=0.1.4:textproc/py-gfm@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}graphviz>=0.10.1:graphics/py-graphviz@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}Jinja2>=2.10:devel/py-Jinja2@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}Jinja2>=2.10.1:devel/py-Jinja2@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}markdown>=2.6.11:textproc/py-markdown@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}netaddr>=0.7.19:net/py-netaddr@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}pycryptodome>=3.7.2:security/py-pycryptodome@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}pillow>=5.3.0:graphics/py-pillow@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}psycopg2>=2.7.6.1:databases/py-psycopg2@${PY_FLAVOR}
${PYTHON_PKGNAMEPREFIX}pycryptodome>=3.8.2:security/py-pycryptodome@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}pillow>=6.0.0:graphics/py-pillow@${PY_FLAVOR} \
${PYTHON_PKGNAMEPREFIX}psycopg2>=2.8.3:databases/py-psycopg2@${PY_FLAVOR}
USES= pgsql:9.4+ python:3.5+
USE_GITHUB= yes
GH_ACCOUNT= digitalocean
SUB_FILES= pkg-message
SUB_LIST= DATADIR=${DATADIR} PYTHON_VER=${PYTHON_VER}
SUB_FILES= netboxrc.sample pkg-message
SUB_LIST= DATADIR=${DATADIR} PYTHON_CMD=${PYTHON_CMD} PYTHON_VER=${PYTHON_VER} WWWOWN=${WWWOWN}
NO_BUILD= yes
NO_ARCH= yes
OPTIONS_DEFINE= DOCS
OPTIONS_DEFINE= DOCS EXAMPLES
post-patch:
@${REINPLACE_CMD} -e 's|==|>=|' ${WRKSRC}/requirements.txt
@ -69,4 +71,8 @@ post-install-DOCS-on:
fi \
done
post-install-EXAMPLES-on:
@${MKDIR} ${STAGEDIR}${EXAMPLESDIR}
${INSTALL_DATA} ${WRKDIR}/netboxrc.sample ${STAGEDIR}${EXAMPLESDIR}
.include <bsd.port.mk>

View file

@ -1,3 +1,3 @@
TIMESTAMP = 1559512206
SHA256 (digitalocean-netbox-v2.5.13_GH0.tar.gz) = 71b6d05d3c76985cff590c8d2cf70b1896928ed943c2a3818e0b88ddd9f2a6ae
SIZE (digitalocean-netbox-v2.5.13_GH0.tar.gz) = 2365536
TIMESTAMP = 1569582543
SHA256 (digitalocean-netbox-v2.6.5_GH0.tar.gz) = 8116e1be37a6a6188a7bfc6f2d842f500813d72ffcc9072ad5ac8a70198b9c8f
SIZE (digitalocean-netbox-v2.6.5_GH0.tar.gz) = 2408180

View file

@ -0,0 +1,62 @@
#!/bin/sh
# This sample rc script eliminate the need to use sysutils/py-supervisor to
# run NetBox as a system service. Only www/py-gunicorn is needed as a WSGI.
#
# Of course a working HTTP server like Apache/nginx is still required to make
# use of the gunicorn WSGI.
#
# PROVIDE: netbox
# REQUIRE: DAEMON
# KEYWORD: shutdown
#
# Add the following line to /etc/rc.conf.local or /etc/rc.conf
# to enable netbox:
#
# netbox_enable (bool): Set to NO by default.
# Set it to YES to enable netbox.
# netbox_config (str): Default to "/usr/local/etc/${name}.conf}"
# Config file for gunicorn's netbox config file
# netbox_command (str): Default to "/usr/local/bin/gunicorn-3.6"
# Path to gunicorn to run netbox
# netbox_bind (str): Default to "localhost:8001"
# Interface and port to bind to
# netbox_workers (int): Default to "3"
# Number of gunicorn works
# netbox_timeout (int): Default to "120"
# Worker timeout for gunicorn
#
. /etc/rc.subr
name="netbox"
rcvar=netbox_enable
netbox_path=%%DATADIR%%
load_rc_config $name
start_precmd="netbox_precmd"
command=${netbox_program:-%%LOCALBASE%%/bin/gunicorn}
procname=${netbox_procname:-%%PYTHON_CMD%%}
netbox_chdir=${netbox_path}
pidfile=${netbox_pidfile:-/var/run/${name}/${name}.pid}
netbox_user=${netbox_user:-%%WWWOWN%%}
netbox_bind=${netbox_bind:-localhost:8001}
netbox_workers=${netbox_workers:-3}
netbox_timeout=${netbox_timeout:-120}
command_args="${netbox_args} -D \
--log-syslog --log-syslog-prefix ${name} \
--log-syslog-to unix:///var/run/log#dgram \
--disable-redirect-access-to-syslog \
-p ${pidfile} --pythonpath ${netbox_path} \
-b ${netbox_bind} -w ${netbox_workers} -t ${netbox_timeout} \
netbox.wsgi"
netbox_precmd()
{
install -d -o ${netbox_user} `dirname ${pidfile}`
}
run_rc_command "$1"

View file

@ -1,5 +1,5 @@
[
{
{ type: install
message: <<EOD
Please note that NetBox requires a PostgreSQL database server, which uses its
built-in network address datatypes. Thus NetBox won't work with other RDBMS's,
@ -9,9 +9,8 @@ For installation instructions please refer to the related wiki page:
- https://wiki.freebsd.org/Ports/net-mgmt/netbox
EOD
type: install
}
{
{ type: upgrade
message: <<EOD
As always it is strongly encouraged to make a backup of the database before the
database migrations will be executed.
@ -26,6 +25,52 @@ The following steps are required to finish the upgrade:
2. Restart WSGI/httpd environment (supervisord/apache/nginx/etc.)
EOD
type: upgrade
}
{ type: upgrade
maximum_version: "2.6.5"
message: <<EOD
1. New dependency: Redis
Since the 2.6 release a running Redis server instance is required for caching
objects to run. Also the following settings like below need to be added (or
modified) in the existing configuration.py:
REDIS = {
'HOST': 'localhost',
'PORT': 6397,
'PASSWORD': ''
'DATABASE': 0,
'CACHE_DATABASE': 1,
'DEFAULT_TIMEOUT': 300,
'SSL': False,
}
Note that if you were using these settings in a prior release with webhooks,
the DATABASE setting remains the same but an additional CACHE_DATABASE settings
has been added with a default value of 1 to support the caching backend.
The DATABASE setting will be renamed in a future release of NetBox to better
relay the meaning of the setting. It is highly recommended to keep the webhook
and cache databases separate. Using the same database number for both may
result in webhook processing data being lost during cache flushing events.
2. View Permissions
NetBox now enforces view-only permissions by default. You can grant view
permission to a user or group by assigning the "can view" permission for the
desired objects.
To exclude _all_ objects, effectively disabling view permissions and restoring
the pre-v2.6 behavior, set:
EXEMPT_VIEW_PERMISSIONS = ['*']
3. CORS_ORIGIN_WHITELIST requires URI Scheme
If you have the CORS_ORIGIN_WHITELIST configuration parameter defined, note
that each origin must now include a URI scheme.
EOD
}
]

View file

@ -1,8 +1,12 @@
%%PORTDOCS%%%%DOCSDIR%%/additional-features/caching.md
%%PORTDOCS%%%%DOCSDIR%%/additional-features/change-logging.md
%%PORTDOCS%%%%DOCSDIR%%/additional-features/context-data.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/graphs.md
%%PORTDOCS%%%%DOCSDIR%%/additional-features/prometheus-metrics.md
%%PORTDOCS%%%%DOCSDIR%%/additional-features/reports.md
%%PORTDOCS%%%%DOCSDIR%%/additional-features/tags.md
%%PORTDOCS%%%%DOCSDIR%%/additional-features/topology-maps.md
@ -42,6 +46,7 @@
%%PORTDOCS%%%%DOCSDIR%%/media/screenshot2.png
%%PORTDOCS%%%%DOCSDIR%%/media/screenshot3.png
%%PORTDOCS%%%%DOCSDIR%%/netbox_logo.png
%%PORTEXAMPLES%%%%EXAMPLESDIR%%/netboxrc.sample
%%DATADIR%%/circuits/__init__.py
%%DATADIR%%/circuits/api/__init__.py
%%DATADIR%%/circuits/api/nested_serializers.py
@ -68,6 +73,7 @@
%%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/__init__.py
%%DATADIR%%/circuits/models.py
%%DATADIR%%/circuits/signals.py
@ -165,6 +171,11 @@
%%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/__init__.py
%%DATADIR%%/dcim/models.py
%%DATADIR%%/dcim/signals.py
@ -214,14 +225,28 @@
%%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/__init__.py
%%DATADIR%%/extras/models.py
%%DATADIR%%/extras/querysets.py
%%DATADIR%%/extras/reports.py
%%DATADIR%%/extras/scripts.py
%%DATADIR%%/extras/signals.py
%%DATADIR%%/extras/tables.py
%%DATADIR%%/extras/templatetags/__init__.py
%%DATADIR%%/extras/templatetags/custom_links.py
%%DATADIR%%/extras/templatetags/log_levels.py
%%DATADIR%%/extras/tests/__init__.py
%%DATADIR%%/extras/tests/test_api.py
%%DATADIR%%/extras/tests/test_changelog.py
%%DATADIR%%/extras/tests/test_customfields.py
%%DATADIR%%/extras/tests/test_scripts.py
%%DATADIR%%/extras/tests/test_tags.py
%%DATADIR%%/extras/tests/test_views.py
%%DATADIR%%/extras/urls.py
@ -270,6 +295,9 @@
%%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/__init__.py
%%DATADIR%%/ipam/models.py
%%DATADIR%%/ipam/querysets.py
@ -279,6 +307,7 @@
%%DATADIR%%/ipam/tests/test_models.py
%%DATADIR%%/ipam/tests/test_views.py
%%DATADIR%%/ipam/urls.py
%%DATADIR%%/ipam/validators.py
%%DATADIR%%/ipam/views.py
%%DATADIR%%/manage.py
%%DATADIR%%/media/image-attachments/.gitignore
@ -291,22 +320,22 @@
%%DATADIR%%/netbox/urls.py
%%DATADIR%%/netbox/views.py
%%DATADIR%%/netbox/wsgi.py
%%DATADIR%%/project-static/bootstrap-3.3.7-dist/css/bootstrap-theme.css
%%DATADIR%%/project-static/bootstrap-3.3.7-dist/css/bootstrap-theme.css.map
%%DATADIR%%/project-static/bootstrap-3.3.7-dist/css/bootstrap-theme.min.css
%%DATADIR%%/project-static/bootstrap-3.3.7-dist/css/bootstrap-theme.min.css.map
%%DATADIR%%/project-static/bootstrap-3.3.7-dist/css/bootstrap.css
%%DATADIR%%/project-static/bootstrap-3.3.7-dist/css/bootstrap.css.map
%%DATADIR%%/project-static/bootstrap-3.3.7-dist/css/bootstrap.min.css
%%DATADIR%%/project-static/bootstrap-3.3.7-dist/css/bootstrap.min.css.map
%%DATADIR%%/project-static/bootstrap-3.3.7-dist/fonts/glyphicons-halflings-regular.eot
%%DATADIR%%/project-static/bootstrap-3.3.7-dist/fonts/glyphicons-halflings-regular.svg
%%DATADIR%%/project-static/bootstrap-3.3.7-dist/fonts/glyphicons-halflings-regular.ttf
%%DATADIR%%/project-static/bootstrap-3.3.7-dist/fonts/glyphicons-halflings-regular.woff
%%DATADIR%%/project-static/bootstrap-3.3.7-dist/fonts/glyphicons-halflings-regular.woff2
%%DATADIR%%/project-static/bootstrap-3.3.7-dist/js/bootstrap.js
%%DATADIR%%/project-static/bootstrap-3.3.7-dist/js/bootstrap.min.js
%%DATADIR%%/project-static/bootstrap-3.3.7-dist/js/npm.js
%%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-2.0.4.min.js
%%DATADIR%%/project-static/css/base.css
%%DATADIR%%/project-static/font-awesome-4.7.0/css/font-awesome.css
@ -438,6 +467,7 @@
%%DATADIR%%/project-static/select2-4.0.5/js/select2.min.js
%%DATADIR%%/project-static/select2-bootstrap-0.1.0-beta.10/select2-bootstrap.min.css
%%DATADIR%%/reports/__init__.py
%%DATADIR%%/scripts/__init__.py
%%DATADIR%%/secrets/__init__.py
%%DATADIR%%/secrets/admin.py
%%DATADIR%%/secrets/api/__init__.py
@ -458,6 +488,7 @@
%%DATADIR%%/secrets/migrations/0003_unicode_literals.py
%%DATADIR%%/secrets/migrations/0004_tags.py
%%DATADIR%%/secrets/migrations/0005_change_logging.py
%%DATADIR%%/secrets/migrations/0006_custom_tag_models.py
%%DATADIR%%/secrets/migrations/__init__.py
%%DATADIR%%/secrets/models.py
%%DATADIR%%/secrets/querysets.py
@ -541,7 +572,12 @@
%%DATADIR%%/templates/dcim/manufacturer_list.html
%%DATADIR%%/templates/dcim/platform_list.html
%%DATADIR%%/templates/dcim/power_connections_list.html
%%DATADIR%%/templates/dcim/powerfeed.html
%%DATADIR%%/templates/dcim/powerfeed_edit.html
%%DATADIR%%/templates/dcim/powerfeed_list.html
%%DATADIR%%/templates/dcim/poweroutlet_delete.html
%%DATADIR%%/templates/dcim/powerpanel.html
%%DATADIR%%/templates/dcim/powerpanel_list.html
%%DATADIR%%/templates/dcim/powerport_delete.html
%%DATADIR%%/templates/dcim/rack.html
%%DATADIR%%/templates/dcim/rack_edit.html
@ -572,8 +608,12 @@
%%DATADIR%%/templates/extras/objectchange_list.html
%%DATADIR%%/templates/extras/report.html
%%DATADIR%%/templates/extras/report_list.html
%%DATADIR%%/templates/extras/script.html
%%DATADIR%%/templates/extras/script_list.html
%%DATADIR%%/templates/extras/tag.html
%%DATADIR%%/templates/extras/tag_edit.html
%%DATADIR%%/templates/extras/tag_list.html
%%DATADIR%%/templates/extras/templatetags/log_level.html
%%DATADIR%%/templates/home.html
%%DATADIR%%/templates/import_success.html
%%DATADIR%%/templates/inc/ajax_loader.html
@ -684,6 +724,7 @@
%%DATADIR%%/tenancy/migrations/0003_unicode_literals.py
%%DATADIR%%/tenancy/migrations/0004_tags.py
%%DATADIR%%/tenancy/migrations/0005_change_logging.py
%%DATADIR%%/tenancy/migrations/0006_custom_tag_models.py
%%DATADIR%%/tenancy/migrations/__init__.py
%%DATADIR%%/tenancy/models.py
%%DATADIR%%/tenancy/tables.py
@ -708,10 +749,12 @@
%%DATADIR%%/users/views.py
%%DATADIR%%/utilities/__init__.py
%%DATADIR%%/utilities/api.py
%%DATADIR%%/utilities/auth_backends.py
%%DATADIR%%/utilities/constants.py
%%DATADIR%%/utilities/context_processors.py
%%DATADIR%%/utilities/custom_inspectors.py
%%DATADIR%%/utilities/error_handlers.py
%%DATADIR%%/utilities/exceptions.py
%%DATADIR%%/utilities/fields.py
%%DATADIR%%/utilities/filters.py
%%DATADIR%%/utilities/forms.py
@ -723,7 +766,6 @@
%%DATADIR%%/utilities/middleware.py
%%DATADIR%%/utilities/models.py
%%DATADIR%%/utilities/paginator.py
%%DATADIR%%/utilities/sql.py
%%DATADIR%%/utilities/tables.py
%%DATADIR%%/utilities/templates/buttons/add.html
%%DATADIR%%/utilities/templates/buttons/export.html
@ -738,6 +780,7 @@
%%DATADIR%%/utilities/templatetags/helpers.py
%%DATADIR%%/utilities/testing.py
%%DATADIR%%/utilities/tests/__init__.py
%%DATADIR%%/utilities/tests/test_api.py
%%DATADIR%%/utilities/tests/test_managers.py
%%DATADIR%%/utilities/tests/test_utils.py
%%DATADIR%%/utilities/utils.py
@ -763,6 +806,7 @@
%%DATADIR%%/virtualization/migrations/0006_tags.py
%%DATADIR%%/virtualization/migrations/0007_change_logging.py
%%DATADIR%%/virtualization/migrations/0008_virtualmachine_local_context_data.py
%%DATADIR%%/virtualization/migrations/0009_custom_tag_models.py
%%DATADIR%%/virtualization/migrations/__init__.py
%%DATADIR%%/virtualization/models.py
%%DATADIR%%/virtualization/tables.py