Compare commits

...

3351 Commits

Author SHA1 Message Date
Jeremy Stretch
a77d1e502c Merge pull request #4528 from netbox-community/develop
Release v2.8.1
2020-04-23 10:24:08 -04:00
Jeremy Stretch
e5e5725a24 Fix typo in validation error message 2020-04-23 10:12:56 -04:00
Jeremy Stretch
92343469e7 Correct release date 2020-04-23 10:11:11 -04:00
Jeremy Stretch
3ece4f137f Release v2.8.1 2020-04-23 10:09:13 -04:00
Sander Steffann
70b8b9ecdb Fix minor typo 2020-04-23 14:10:58 +02:00
John Anderson
11ee6f417f fix #4459 - Fix caching issue resulting in erroneous nested data for regions, rack groups, and tenant groups 2020-04-22 16:45:26 -04:00
Jeremy Stretch
5ea92dda4b Changelog for #4139 2020-04-22 14:15:41 -04:00
Jeremy Stretch
ca08125d55 Merge pull request #4524 from netbox-community/4139-component-bulk-create
Fixes #4139: Extend forms for bulk device component creation
2020-04-22 14:11:07 -04:00
Jeremy Stretch
7b50f2b0eb Fix tag assignment when bulk creating components 2020-04-22 14:05:27 -04:00
Jeremy Stretch
6a61f0911d Update InterfaceBulkCreateForm for VMs 2020-04-22 12:09:40 -04:00
Jeremy Stretch
e975f1b216 Update device component bulk edit forms to use form_from_model() 2020-04-22 11:47:26 -04:00
Jeremy Stretch
62cdf0d928 Add bulk creation view for rear ports 2020-04-22 11:26:04 -04:00
Jeremy Stretch
97b8e73716 Introduce model-specific bulk create forms for device components 2020-04-22 11:15:39 -04:00
Jeremy Stretch
131d2c97ca Fixes #4336: Ensure interfaces without a subinterface ID are ordered before subinterface zero 2020-04-21 16:13:34 -04:00
Jeremy Stretch
ada55dfdfb Fixes #4510: Enforce address family for device primary IPv4/v6 addresses 2020-04-21 14:50:15 -04:00
Jeremy Stretch
cc721efe97 Fixes #3356: Correct Swagger schema specification for the available prefixes/IPs API endpoints 2020-04-21 14:12:49 -04:00
Jeremy Stretch
b362c6a967 Fixes #2994: Prevent modifying termination points of existing cable to ensure end-to-end path integrity 2020-04-21 13:41:38 -04:00
Jeremy Stretch
5eef6bc527 Changelog for #4388 2020-04-21 12:51:43 -04:00
Jeremy Stretch
8a3a5a8cb1 Merge pull request #4521 from netbox-community/4388-cable-tracing
Fixes #4388: Improve connection endpoint detection
2020-04-21 12:49:48 -04:00
Jeremy Stretch
ca762588ca Pretty-up cable trace template 2020-04-21 11:59:14 -04:00
Jeremy Stretch
26c335fc68 Extend tests for #4388 2020-04-21 10:53:21 -04:00
Jeremy Stretch
f80eb16060 Closes #4505: Fix typo in application stack diagram 2020-04-20 11:06:52 -04:00
Jeremy Stretch
8ea611df44 Changelog for #4464 2020-04-20 11:04:15 -04:00
Jeremy Stretch
3db83dd3a2 Merge pull request #4501 from toerb/develop
add rack width of 21 inches for ETSI racks
2020-04-20 11:03:09 -04:00
Jeremy Stretch
29707cd496 Adapt tracing view to account for split ends (WIP) 2020-04-15 17:09:04 -04:00
Jeremy Stretch
5205c4963f Refactor cable tracing logic 2020-04-15 15:46:41 -04:00
Jeremy Stretch
5aadfff1de Merge pull request #4492 from kobayashi/4361-type-connection_status
Fix #4361 Set correct type of connection_status in swagger schema
2020-04-15 09:45:39 -04:00
Jeremy Stretch
cb84e3bb2e Closes #4491: Update docs to indicate support for nesting objects 2020-04-15 09:41:57 -04:00
Jeremy Stretch
e0f819691f Fixes #4496: Fix exception when validating certain models via REST API 2020-04-15 09:37:30 -04:00
kobayashi
1ce0191a74 Fixes #4361: Set correct type of connection_state 2020-04-15 01:02:11 -04:00
Jeremy Stretch
788909de94 Fixes #4489: Fix display of parent/child role on device type view 2020-04-14 12:13:05 -04:00
Jeremy Stretch
2dbc04c6fb Fix typo 2020-04-14 10:03:02 -04:00
Jeremy Stretch
fc1feec8bf Fix format string 2020-04-14 09:43:12 -04:00
Jeremy Stretch
819f842cf1 Call out requirement for Python 3.6 or later 2020-04-13 14:38:26 -04:00
Jeremy Stretch
0ffc74c669 Fix link to logging configuration docs 2020-04-13 14:37:11 -04:00
Jeremy Stretch
9ed0494b45 Clarify requirement for Python 3.6 or later 2020-04-13 14:22:17 -04:00
Jeremy Stretch
d37a74846a Remove format strings to ensure compilation under old Python releases 2020-04-13 14:07:44 -04:00
Jeremy Stretch
e97205922c Fixes #4481: Remove extraneous material from example configuration file 2020-04-13 13:49:34 -04:00
Jeremy Stretch
8b57a888e7 Post-release version bump 2020-04-13 11:31:16 -04:00
Jeremy Stretch
d79ed76d80 Merge pull request #4479 from netbox-community/develop
Release v2.8.0
2020-04-13 11:29:33 -04:00
Jeremy Stretch
488129d7ad Release v2.8.0 2020-04-13 11:21:33 -04:00
Jeremy Stretch
dc9f991e5f Update dependencies for v2.8 release 2020-04-13 11:09:39 -04:00
Jeremy Stretch
c691ec843d Fixes #4476: Correct typo in slugs for Infiniband interface types 2020-04-13 10:51:25 -04:00
Jeremy Stretch
67f2cdc921 Fixes #4474: Fix population of device types when bulk editing devices 2020-04-13 10:34:44 -04:00
Jeremy Stretch
ee51dae73f Merge pull request #4473 from netbox-community/develop-2.8
Merge v2.8 work into develop
2020-04-13 10:17:27 -04:00
Jeremy Stretch
0316063ba9 Update v2.8 release notes 2020-04-10 11:56:52 -04:00
Jeremy Stretch
8939d4de92 Use packaging.version.parse directly 2020-04-10 11:18:01 -04:00
Jeremy Stretch
5de085d83d Tweak PluginMenuButton icon_class to require additional "fa" class 2020-04-10 10:36:03 -04:00
Jeremy Stretch
19a10cee82 Rename base template 2020-04-10 10:21:02 -04:00
Jeremy Stretch
db70f04447 Minor tweaks to plugins development doc 2020-04-10 10:20:36 -04:00
Jeremy Stretch
d5dbd5ccf1 Update bug report template to denote disabling plugins 2020-04-09 15:55:17 -04:00
Jeremy Stretch
b5aff1575d Add plugins settings to example config 2020-04-09 15:45:38 -04:00
Jeremy Stretch
884d648cc2 Set X_FRAME_OPTIONS to SAMEORIGIN (changed in Django 3.0) 2020-04-09 15:31:18 -04:00
Jeremy Stretch
ed05198c45 Add static file collection to plugins installation doc 2020-04-09 14:52:18 -04:00
Jeremy Stretch
c593eca936 Minor improvements to installation docs 2020-04-09 14:43:22 -04:00
Jeremy Stretch
cfc09bfcc8 Merge pull request #4471 from qaxi/patch-2
#4470 correct Ubuntu package name
2020-04-09 10:06:35 -04:00
Petr Klíma
2daf1e2004 #4470 wrong Ubuntu package name 2020-04-09 16:02:57 +02:00
Jeremy Stretch
5266bf93a3 Merge branch 'develop' into develop-2.8 2020-04-08 13:50:15 -04:00
Jeremy Stretch
e04a5dc81f Post-release version bump 2020-04-08 13:34:36 -04:00
Jeremy Stretch
ccf8059452 Merge pull request #4467 from netbox-community/develop
Release v2.7.12
2020-04-08 13:31:49 -04:00
Jeremy Stretch
b86c61dcdb Release v2.7.12 2020-04-08 13:26:33 -04:00
toerb
f7e7699d93 add rack width of 21 inches for ETSI racks 2020-04-08 09:30:14 +02:00
Jeremy Stretch
eb2e960af4 Merge pull request #4462 from netbox-community/4460-webhook-listener
Closes #4460: Add a webhook listener for troubleshooting
2020-04-07 13:56:35 -04:00
Jeremy Stretch
2357928e72 Add documentation for webhook_receiver 2020-04-07 13:51:20 -04:00
Jeremy Stretch
ae58af4bb7 Added webhook_receiver management command 2020-04-07 13:37:48 -04:00
Jeremy Stretch
902b1b2c32 Fixes #4458: Remove custom admin site to avoid conflict with django-rq 2.3.0 2020-04-07 10:17:34 -04:00
Daniel Sheppard
225ba4cc35 Fixes: #4395 - Fix typing on interface serializer 2020-04-07 08:36:13 -05:00
Daniel Sheppard
fe088dba7a Fixes: #4396 - Fix typing on interface serializer 2020-04-07 08:33:00 -05:00
Jeremy Stretch
46b896b2cf Merge branch 'develop' into develop-2.8 2020-04-06 13:51:05 -04:00
Jeremy Stretch
52ef488208 Fix nav menu w/plugins enabled 2020-04-06 13:27:41 -04:00
Jeremy Stretch
34c33549b8 Add tests for plugins caching config 2020-04-06 12:00:28 -04:00
Jeremy Stretch
76230cad53 Remove extraneous plugin config 2020-04-06 11:51:03 -04:00
Jeremy Stretch
9ffc404027 Add tests for plugin configuration, min/max version 2020-04-06 11:44:38 -04:00
Jeremy Stretch
58442b1af6 Correct author name parameter 2020-04-06 11:43:52 -04:00
Jeremy Stretch
5f6b63e978 Remove extraneous package from Apache installation instructions 2020-04-03 16:03:50 -04:00
Jeremy Stretch
ad08935c57 Move nginx/Apache configs to discrete files 2020-04-03 15:46:48 -04:00
Jeremy Stretch
af405a8ab2 Closes #4391: Extend installation docs to include enabling SSL 2020-04-03 15:35:45 -04:00
Jeremy Stretch
1ffbeba181 #4439: Fix null integer field display 2020-04-03 13:47:58 -04:00
Jeremy Stretch
630788731e Closes #4448: Allow connecting cables between two circuit terminations 2020-04-03 13:44:41 -04:00
Jeremy Stretch
721368ea8d Closes #4147: Use absolute URLs in rack elevation SVG renderings 2020-04-03 13:16:35 -04:00
Jeremy Stretch
1f3a21ba20 Fixes #4449: Fix reservation edit/delete button URLs on rack view 2020-04-03 12:13:36 -04:00
Jeremy Stretch
6cfd68d9fb Merge pull request #4446 from netbox-community/plugin-testing
Plugin testing
2020-04-03 09:24:44 -04:00
Jeremy Stretch
6413d47fb2 Skip PluginTest if dummy_plugin not in PLUGINS list 2020-04-02 16:13:15 -04:00
Jeremy Stretch
9e0aa0d11e Naming tweaks 2020-04-02 15:43:23 -04:00
Jeremy Stretch
ee4c5ef64a Fix CI tests 2020-04-02 15:11:19 -04:00
Jeremy Stretch
4ab3854d66 Fixes #4438: Fix exception when disconnecting a cable from a power feed 2020-04-02 10:19:50 -04:00
Jeremy Stretch
354f87c888 Fixes #4439: Tweak display of unset custom integer fields 2020-04-02 10:06:01 -04:00
Jeremy Stretch
92fc28aa09 Remove errant references to external plugin 2020-04-01 17:18:15 -04:00
Jeremy Stretch
30e330c887 Initial implementation of tests for plugins framework 2020-04-01 17:08:47 -04:00
Jeremy Stretch
093181c186 Correct path to test configuration file 2020-04-01 13:29:54 -04:00
Jeremy Stretch
f316958943 Establish a separate configuration file for testing 2020-04-01 13:23:29 -04:00
Jeremy Stretch
0432b1a6f9 Move default caching_config to PluginConfig class 2020-04-01 12:10:19 -04:00
Jeremy Stretch
b2f4ef06c7 Merge pull request #4433 from netbox-community/plugins-list
Change PLUGINS_ENABLED to a list of specific plugins (PLUGINS)
2020-04-01 11:44:41 -04:00
Jeremy Stretch
f469c794ce Change PLUGINS_ENABLED to a list of specific plugins (PLUGINS) 2020-04-01 10:10:29 -04:00
Jeremy Stretch
221e014a25 Remove survey notification from README 2020-03-31 11:36:53 -04:00
Jeremy Stretch
fb2868f8bb Fixes #4418: Fail cleanly when trying to import multiple device types simultaneously 2020-03-30 16:44:04 -04:00
Jeremy Stretch
aa38dcf490 Closes #3676: Reference VRF by name rather than RD during IP/prefix import 2020-03-30 15:54:35 -04:00
Jeremy Stretch
06116cdde7 Add developer docs for application registry 2020-03-30 15:31:13 -04:00
Jeremy Stretch
5f1329c71c Changelog for #3351 2020-03-30 13:09:10 -04:00
Jeremy Stretch
613e37837b Update Python dependencies for v2.8 release 2020-03-30 12:39:45 -04:00
Jeremy Stretch
a914a7c438 Update serializer context assignment for DRF 3.11 2020-03-30 12:39:15 -04:00
Jeremy Stretch
8c7b3a1f9b Merge pull request #4385 from netbox-community/3351-plugins
Implements 3351 plugins
2020-03-27 14:19:11 -04:00
Jeremy Stretch
9c16d5a747 Misc cleanup of PluginConfig processing logic 2020-03-27 13:57:11 -04:00
Jeremy Stretch
0d9d0b0446 Convert installed_plugins_admin_view to a class-based view 2020-03-27 13:35:25 -04:00
Jeremy Stretch
cb344a3792 Clean up plugin URL registration 2020-03-27 13:26:53 -04:00
Jeremy Stretch
dd9fc4173d Expose regsitry in templates using existing context processor for settings 2020-03-27 13:18:51 -04:00
Jeremy Stretch
fd6739f0cc Improved menu item/button validation 2020-03-27 13:12:58 -04:00
Jeremy Stretch
fa83750e72 Merge branch 'develop-2.8' into 3351-plugins 2020-03-27 13:05:34 -04:00
Jeremy Stretch
a72d5c899e Merge branch 'develop' into develop-2.8 2020-03-27 12:53:55 -04:00
Jeremy Stretch
5cf872d000 Post-release version bump 2020-03-27 12:49:48 -04:00
Jeremy Stretch
3d3d1bc623 Merge pull request #4417 from netbox-community/develop
Release v2.7.11
2020-03-27 12:47:28 -04:00
Jeremy Stretch
59e6386361 Release v2.7.11 2020-03-27 12:40:21 -04:00
Jeremy Stretch
9c1eda0d9a Closes #4404: Add cable trace button for circuit terminations 2020-03-27 12:35:36 -04:00
Daniel Sheppard
785119f5bb Fixes: #4415 - Add site on validate_unique() for device model 2020-03-27 08:37:48 -05:00
Jeremy Stretch
8a3ebf64bc Rename obj to object; clean up docstrings 2020-03-26 21:46:56 -04:00
Jeremy Stretch
af302d8368 Avoid instantiating PluginTemplateExtension subclasses when the specified method has not been defined 2020-03-26 21:25:10 -04:00
Jeremy Stretch
f03cc96050 Restrict context data available to PluginTemplateExtensions 2020-03-26 16:50:55 -04:00
Jeremy Stretch
e7f7b14214 Extend menu items and buttons to accept a list of required permissions 2020-03-26 16:04:12 -04:00
Jeremy Stretch
84d2db0d35 Tweak variable naming 2020-03-26 13:37:52 -04:00
Jeremy Stretch
74e56a890c Remove unused PluginSignal class 2020-03-26 12:26:58 -04:00
Jeremy Stretch
b94ef39a51 Standardize naming of menu items 2020-03-26 12:25:36 -04:00
Jeremy Stretch
877417d68f Rename PluginTemplateContent to PluginTemplateExtension 2020-03-26 12:18:58 -04:00
Jeremy Stretch
62f14f0473 Convert PluginConfig attrs list to a table 2020-03-26 12:03:10 -04:00
Jeremy Stretch
66a99e13bb Fix up styling of tables in documentation 2020-03-26 11:54:58 -04:00
Jeremy Stretch
d316d8ac61 Rename PluginNavMenuButton to PluginMenuButton 2020-03-26 11:30:42 -04:00
Jeremy Stretch
40574b65af Rename PluginNavMenuLink to PluginMenuItem 2020-03-26 11:29:05 -04:00
Jeremy Stretch
81c9177c09 Add a default button color 2020-03-26 11:26:11 -04:00
Jeremy Stretch
68ef5dd2a4 Revised plugins documentation 2020-03-26 11:09:20 -04:00
Jeremy Stretch
59815ea53d Merge pull request #4407 from netbox-community/4402-plugins-template-content
Closes #4402: Rework template content registration for plugins
2020-03-26 09:05:07 -04:00
Jeremy Stretch
5540079e81 Add documentation for PluginTemplateContent 2020-03-25 16:32:16 -04:00
Jeremy Stretch
68a0e76ca6 Rework template content registration to work like menu items 2020-03-25 16:06:00 -04:00
Jeremy Stretch
1d9fbeed81 Merge pull request #4403 from netbox-community/4401-plugins-navlinks
Closes #4401: Simplify registration process for pluin menu items
2020-03-25 14:55:21 -04:00
Jeremy Stretch
d0edd9d5c1 Update documentation for #4401 2020-03-25 14:33:32 -04:00
Jeremy Stretch
9ea30c057f Replace get_menu_items() with static attribute 2020-03-25 13:51:37 -04:00
Jeremy Stretch
c1f2ad90ef Simplify the mechanism for plugins to register navigation menu items 2020-03-25 11:32:50 -04:00
Jeremy Stretch
2a47bb8b54 Rename url_slug to base_url 2020-03-24 16:20:47 -04:00
Jeremy Stretch
b6686a5fcb Merge pull request #4397 from netbox-community/plugins-docs
Add documentation for the plugins framework
2020-03-24 15:55:14 -04:00
Jeremy Stretch
16b8a45ed6 Get menu header via apps.get_config 2020-03-24 15:24:14 -04:00
Jeremy Stretch
579c365808 Extend plugins docs to include nav menu links 2020-03-24 15:22:57 -04:00
Jeremy Stretch
745ac294a5 Tweak plugin template docs 2020-03-24 14:21:08 -04:00
Jeremy Stretch
eedda6e648 Incorporate John's feedback 2020-03-24 09:42:24 -04:00
Jeremy Stretch
5ec1b31804 Add disclaimer/warning to PLUGINS_ENABLED 2020-03-24 09:41:46 -04:00
Jeremy Stretch
8e661c34e9 Merge branch '3351-plugins' into plugins-docs 2020-03-23 14:03:35 -04:00
Jeremy Stretch
ce0b1733fe Derive API URLs app_name for plugins from url_slug 2020-03-23 14:03:04 -04:00
Jeremy Stretch
0a8b09a11a Add docs for plugin API endpoints 2020-03-23 13:58:45 -04:00
Jeremy Stretch
0b77702626 Add docs for plugin models, views 2020-03-23 13:28:56 -04:00
Jeremy Stretch
a4382f0b27 Merge branch '3351-plugins' into plugins-docs 2020-03-23 12:02:18 -04:00
Jeremy Stretch
2732e7c3d9 Specify path to PluginConfig in INSTALLED_APPS 2020-03-23 12:01:24 -04:00
Jeremy Stretch
2188b0982c More work on plugins development docs 2020-03-23 12:00:10 -04:00
Jeremy Stretch
eeb9633854 Merge branch '3351-plugins' into plugins-docs 2020-03-23 10:20:53 -04:00
John Anderson
60b6c48775 remove duplicate import 2020-03-20 22:21:00 -04:00
John Anderson
4e84e8048f added admin and api views for listing all plugins, and refactored urls import 2020-03-20 20:10:02 -04:00
John Anderson
e220c38b97 Merge pull request #4392 from netbox-community/refactor-plugins-import
Refactor plugins import
2020-03-20 17:04:33 -04:00
Jeremy Stretch
ad1522f428 Update plugin URL loading logic 2020-03-20 15:51:14 -04:00
Jeremy Stretch
bc50c2aa55 Introduce PluginConfig 2020-03-20 15:50:47 -04:00
Jeremy Stretch
28b5e88c50 Rename entry point group; simplify import 2020-03-20 14:35:54 -04:00
Jeremy Stretch
33ca352fd9 Initial documentation for plugins framework 2020-03-20 14:21:49 -04:00
Jeremy Stretch
058c78d8be Closes #4389: Add a bulk edit view for device bays 2020-03-19 16:32:08 -04:00
Jeremy Stretch
05fdf5e9a0 Closes #4386: Update admin links for Django RQ to reflect multiple queues 2020-03-19 13:54:49 -04:00
Jeremy Stretch
533521b29d Changelog for #4255 2020-03-19 11:03:35 -04:00
Jeremy Stretch
2dff093305 Merge pull request #4258 from netbox-community/4255-dynamic_object_vars
Fixes: #4255 - Modify script ObjectVars to utilize DynamicModelChoiceField
2020-03-19 11:02:07 -04:00
Jeremy Stretch
ba6ce07759 Changelog for #3193 2020-03-19 10:56:42 -04:00
Jeremy Stretch
33eb5e11de Merge pull request #4387 from netbox-community/3193-cable-tracing
Fixes #3193: Fix cable tracing across multiple rear ports
2020-03-19 10:55:24 -04:00
Jeremy Stretch
8d3801896f Rewrite and extend cabling logic tests 2020-03-19 10:43:51 -04:00
Jeremy Stretch
f1236e9bf7 Tweak tracing logic to ensure consistent behavior 2020-03-19 10:42:53 -04:00
dansheps
fa1548f3ce Remove extraneous import 2020-03-19 08:11:14 -05:00
dansheps
0995e10d87 Modify script ObjectVars to use DynamicModelChoiceFields 2020-03-19 08:09:31 -05:00
Jeremy Stretch
e143158f12 Remove unused follow_circuits arg for cable tracing 2020-03-18 21:14:53 -04:00
Jeremy Stretch
40bfb55370 Improved cable tracing logic 2020-03-18 20:47:27 -04:00
John Anderson
dab313897e Merge branch 'develop-2.8' into 3351-plugins 2020-03-18 18:30:47 -04:00
John Anderson
c7fb2ff894 add version contraints and cacheops config 2020-03-18 18:28:27 -04:00
Jeremy Stretch
ced6fe313a Fix RackGroupForm field 2020-03-18 15:41:23 -04:00
Jeremy Stretch
7f5571200c Closes #4382: Enable custom links for rack reservations 2020-03-18 14:50:49 -04:00
John Anderson
fd879c7cf5 Merge branch 'develop-2.8' into 3351-plugins 2020-03-18 14:48:11 -04:00
Jeremy Stretch
a9d04547d1 Closes #4381: Enable export templates for rack reservations 2020-03-18 14:46:23 -04:00
John Anderson
09e09e43ba Merge branch 'develop' into develop-2.8 2020-03-18 14:44:18 -04:00
Jeremy Stretch
87f0b19dc0 Closes #4380: Enable webhooks for rack reservations 2020-03-18 14:43:19 -04:00
Jeremy Stretch
eab79faaeb Changelog for #738 2020-03-18 14:02:24 -04:00
Jeremy Stretch
dbbb2cdaba Merge pull request #4366 from netbox-community/738-detect-new-releases
Closes #738: Automatically detect new releases
2020-03-18 14:00:01 -04:00
Jeremy Stretch
7246fd667e Move releases.py to netbox/ 2020-03-18 13:54:41 -04:00
Jeremy Stretch
fe4f4bddc8 Tweaked logging; renamed release config parameters 2020-03-18 13:46:47 -04:00
Jeremy Stretch
f7ba766de3 Merge pull request #4379 from netbox-community/refactor-registry
Refactor registry to behave as a dictionary
2020-03-18 13:21:55 -04:00
Jeremy Stretch
70c29051b3 Raise specific exceptions 2020-03-18 13:15:22 -04:00
Jeremy Stretch
043b1c28d2 Refactor the registry into a dictionary object 2020-03-18 12:00:31 -04:00
Jeremy Stretch
022653f446 Fix Python 3.5 compatability for tests 2020-03-17 15:07:45 -04:00
Jeremy Stretch
1706db38df Fix Python 3.5 compatability for tests 2020-03-17 15:00:39 -04:00
Jeremy Stretch
81287833ee Update tests 2020-03-17 14:44:49 -04:00
Jeremy Stretch
2f12d09663 Clean up URL damping 2020-03-17 12:14:17 -04:00
Jeremy Stretch
3ace83c5aa Cache only the most recent NetBox release 2020-03-17 11:58:17 -04:00
Jeremy Stretch
356de985d2 Tweak release template variables 2020-03-17 11:49:45 -04:00
Jeremy Stretch
ab93606e4a Check for an existing job before queuing a new one 2020-03-17 11:37:35 -04:00
Jeremy Stretch
ec2dc8d7a4 Fix template logic 2020-03-17 11:28:35 -04:00
Jeremy Stretch
a2eb2e7da6 Introduce a new 'check_releases' RQ queue 2020-03-17 11:22:56 -04:00
Jeremy Stretch
3590ed378d Rename 'webhooks' REDIS config to 'tasks' 2020-03-17 10:22:56 -04:00
John Anderson
2f37357a1b added support for prepending elements to middleware 2020-03-17 02:35:34 -04:00
John Anderson
981c982237 added support for plugin nav bar links 2020-03-17 02:35:12 -04:00
John Anderson
457354c244 inject origional context as obj_context 2020-03-17 00:03:58 -04:00
Jeremy Stretch
00afe7aa94 Merge pull request #4375 from netbox-community/4374-dynamic-fields-api-url
Closes #4374: Automatically derive API endpoint for dynamic choice fields
2020-03-16 16:02:25 -04:00
Jeremy Stretch
450615e0bb Change IPAddressForm.nat_vrf to DynamicModelChoiceField 2020-03-16 14:29:01 -04:00
Jeremy Stretch
73881ad1e0 Change CircuitTerminationForm.site to a DynamicModelChoiceField 2020-03-16 14:24:17 -04:00
John Anderson
2522b88fc6 Merge branch 'develop-2.8' into 3351-plugins 2020-03-16 14:21:05 -04:00
Jeremy Stretch
0068108c57 Remove APISelect widget/api_url argument from dynamic fields 2020-03-16 14:08:48 -04:00
Jeremy Stretch
400f6fc5fb Dynamically resolve the API URL for dynamic choice fields 2020-03-16 13:30:35 -04:00
John Anderson
901143b72a Merge branch 'develop' into develop-2.8 2020-03-16 12:17:00 -04:00
John Anderson
9a38586e13 rename FeatureQuery class 2020-03-16 11:58:35 -04:00
Jeremy Stretch
62ad7734b2 Merge pull request #4373 from kobayashi/2769-validate-prefixlength
Fixes #2769: improve prefix_length validations
2020-03-16 10:44:13 -04:00
kobayashi
7ef9a6c0a7 Fixes #2769: improve prefix_length validations 2020-03-16 03:20:15 -04:00
John Anderson
8364694fb4 added plugin template content injection to primary model detail views 2020-03-15 23:45:18 -04:00
John Anderson
683c5a22db Merge branch 'develop-2.8' into 3351-plugins 2020-03-15 00:55:25 -04:00
John Anderson
0574ac7530 fixed migration order 2020-03-15 00:48:05 -04:00
John Anderson
a955f90a7e Merge branch 'develop-2.8' into 3351-plugins 2020-03-15 00:26:33 -04:00
John Anderson
2dc31c0edd Revert "implemented registry for extras model functionality"
This reverts commit 235d99021b.
2020-03-15 00:25:46 -04:00
John Anderson
6ea15cec6f Revert "refactor extras registry"
This reverts commit c189895f6c.
2020-03-15 00:24:05 -04:00
John Anderson
9df238c5f2 Merge branch 'develop' into develop-2.8 2020-03-15 00:18:32 -04:00
John Anderson
9466802a95 closes #4368 - extras features model registration 2020-03-14 03:03:22 -04:00
Jeremy Stretch
36130965f2 Merge pull request #4370 from netbox-community/4078-standardize-fields
Closes #4078: Standardize description fields
2020-03-13 17:07:07 -04:00
Jeremy Stretch
d4f6909859 Rename Tag.comments to description 2020-03-13 17:00:00 -04:00
Jeremy Stretch
1a8554fd32 Changelog for #4078 2020-03-13 16:42:47 -04:00
Jeremy Stretch
9f5b138b0f Add migrations for description fields 2020-03-13 16:35:36 -04:00
Jeremy Stretch
cebe580484 Add a description field to all organizational models 2020-03-13 16:33:28 -04:00
Jeremy Stretch
3b4ec5926d Standardize existing description fields to a length of 200 chars 2020-03-13 15:49:58 -04:00
Jeremy Stretch
c5776d9da4 Closes #4369: Add a dedicated view for rack reservations 2020-03-13 13:53:44 -04:00
Jeremy Stretch
9e45cafac4 Cleaned up new release notification banner 2020-03-13 12:20:00 -04:00
Jeremy Stretch
2033d15b2f Tweak UPDATE_REPO_URL to convey the full URL 2020-03-13 12:14:27 -04:00
Jeremy Stretch
e2123f4a9e Clean up logging 2020-03-13 11:55:06 -04:00
Jeremy Stretch
f6dfd2fa43 Simplify update repo URL validation 2020-03-13 10:20:09 -04:00
Jeremy Stretch
1f382f9252 Merge branch 'develop' into 738-detect-new-releases 2020-03-13 10:05:24 -04:00
Jeremy Stretch
459bcd88a9 Fixes #4365: Fix exception raised on IP address bulk add view 2020-03-13 09:07:03 -04:00
Jeremy Stretch
1487b5004d Closes #4309: Add descriptive tooltip to custom fields on object views 2020-03-12 21:43:34 -04:00
Jeremy Stretch
a28509019a Closes #4363: Standardize secret creation URL 2020-03-12 21:14:14 -04:00
John Anderson
c189895f6c refactor extras registry 2020-03-12 18:12:12 -04:00
Jeremy Stretch
5e971994ff Closes #4362: Standardize URL for creation of RackReservations 2020-03-12 17:43:11 -04:00
Jeremy Stretch
f108049142 Remove outdated TODOs 2020-03-12 11:57:26 -04:00
Jeremy Stretch
9fc1e88d9f Update minimum Python version to 3.6 2020-03-12 11:46:11 -04:00
Jeremy Stretch
2cd44d0234 Changelog for #3416 2020-03-12 11:38:39 -04:00
Jeremy Stretch
16bc262a4f Merge pull request #4359 from netbox-community/3416-remove-API-choices
Closes #3416: Remove API _choices endpoints
2020-03-12 11:29:31 -04:00
Jeremy Stretch
ef5c20dc6f Update documentation 2020-03-12 11:14:27 -04:00
Jeremy Stretch
a53f854187 Remove tests for API _choices endpoints 2020-03-12 10:48:53 -04:00
Jeremy Stretch
ea9de37dd1 Remove FieldChoicesViewSet 2020-03-12 10:48:17 -04:00
John Anderson
235d99021b implemented registry for extras model functionality 2020-03-12 04:07:54 -04:00
John Anderson
8af4cf87b5 Merge branch 'develop-2.8' into 3351-plugins 2020-03-12 01:19:15 -04:00
Jeremy Stretch
997247ee77 Update changelog for #1754, #3939 2020-03-11 21:22:06 -04:00
Jeremy Stretch
b92e518370 Merge pull request #4353 from netbox-community/3939-nested-tenantgroups
Closes #3939: Nested tenant groups
2020-03-11 21:20:14 -04:00
Jeremy Stretch
b5d57262f9 Update tests for nested TenantGroups 2020-03-11 21:14:53 -04:00
Jeremy Stretch
45f6ea211d Implement support for nested TenantGroups 2020-03-11 21:12:55 -04:00
Jeremy Stretch
a4a276083a Merge pull request #4351 from netbox-community/1754-nested-rackgroups
Closes #1754: Nested rack groups
2020-03-11 20:03:50 -04:00
Jeremy Stretch
c42613cf4d Update filter fields 2020-03-11 14:57:48 -04:00
Jeremy Stretch
84de0458aa Implement nested RackGroups 2020-03-11 14:40:29 -04:00
Jeremy Stretch
2b33e91e2c Changelog for #2328 2020-03-11 11:27:47 -04:00
Jeremy Stretch
71c363ebc8 Merge pull request #4299 from netbox-community/2328-external-authentication
Closes #2328: External user authentication
2020-03-11 11:17:40 -04:00
Jeremy Stretch
7ffc00159e Tweak settings/middleware to support testing; improve tests 2020-03-11 11:10:26 -04:00
Jeremy Stretch
79aba5edf2 Fixes #4343: Fix Markdown support for tables 2020-03-11 09:52:02 -04:00
John Anderson
a504f5f309 closes #4340 - Enforce unique constraints for device and virtual machine names in the API 2020-03-10 19:15:24 -04:00
Jeremy Stretch
90144ccd9a Add tests for remote authentication configuration 2020-03-10 16:57:34 -04:00
Jeremy Stretch
8c6d35645d Remote auth cleanup 2020-03-10 16:56:57 -04:00
John Anderson
0706c65ce6 Merge branch 'develop-2.8' into 3351-plugins 2020-03-10 15:15:23 -04:00
Jeremy Stretch
0dc3a72912 Merge branch 'develop-2.8' into 2328-external-authentication 2020-03-10 15:07:19 -04:00
Jeremy Stretch
0de857bf7a Merge branch 'develop' into develop-2.8 2020-03-10 15:06:37 -04:00
Jeremy Stretch
55558cb272 Post-release version bump 2020-03-10 14:03:22 -04:00
Jeremy Stretch
e66d065b6d Merge pull request #4339 from netbox-community/develop
Release v2.7.10
2020-03-10 13:59:50 -04:00
Jeremy Stretch
7bf1420463 Release v2.7.10 2020-03-10 13:50:17 -04:00
Jeremy Stretch
3a0b28144f Force mkdocs to v1.1 for RTD build 2020-03-10 13:37:31 -04:00
Jeremy Stretch
bc19072dc6 Update upgrade documentation for non-git installations 2020-03-10 13:24:10 -04:00
Jeremy Stretch
1eddac4066 Fixes #4338: Catch AddrFormatError exception when filtering aggregates/prefixes by an invalid prefix 2020-03-10 11:58:34 -04:00
Jeremy Stretch
2571f22ae5 Revert initial fix for #4336 2020-03-10 11:43:00 -04:00
Jeremy Stretch
5346efe009 Fixes #4337: Allow bulk editing/deletion of all device components matching a query 2020-03-10 10:18:48 -04:00
Jeremy Stretch
bb3f37ca35 Fixes #4336: Ensure interfaces without a channel/unit are ordered before a channel/unit of zero 2020-03-10 10:03:42 -04:00
Jeremy Stretch
0e49a7a1fd Closes #4332: Redirect to a user-friendly error page when CSS/JS resources fail to load 2020-03-09 15:33:57 -04:00
Jeremy Stretch
93159fec4b Update changelog 2020-03-09 14:28:06 -04:00
Jeremy Stretch
ab2ea5697f Closes #4322: Introduce and document local_requirements.txt support for installation/upgrade of optional dependencies 2020-03-09 14:22:27 -04:00
Jeremy Stretch
0eaec6bd83 Merge pull request #4335 from netbox-community/4325-rack-reservation-import
Closes #4325: Add suport for rack reservations CSV import
2020-03-09 13:45:38 -04:00
Jeremy Stretch
8cca22d79c Add nav menu entry for rack reservations import 2020-03-09 13:39:12 -04:00
Jeremy Stretch
e364a25e46 Add test for RackReservation import 2020-03-09 13:35:44 -04:00
Jeremy Stretch
049da81bf2 Convert units to SimpleArrayField 2020-03-09 12:46:12 -04:00
Jeremy Stretch
947affd78f Extend BulkImportView._save_obj to pass request context 2020-03-09 12:39:07 -04:00
Jeremy Stretch
cdcbf20d6a Merge pull request #4334 from netbox-community/4320-clean-up-template-tags-filters
Closes #4320: Clean up template tags filters
2020-03-09 10:56:41 -04:00
Jeremy Stretch
15ab30d0c6 Replace model_name and model_name_verbose filters with meta 2020-03-09 10:50:46 -04:00
Jeremy Stretch
16d3cebf3e Update markdown filter name 2020-03-09 10:42:32 -04:00
Jeremy Stretch
1069ad21d8 Remove unused contains filter 2020-03-09 10:38:29 -04:00
Jeremy Stretch
1423fd9024 Rename gfm filter to render_markdown 2020-03-09 10:31:29 -04:00
Jeremy Stretch
0439be2870 Remove unused getlist and getkey filters 2020-03-09 10:24:37 -04:00
Jeremy Stretch
22246353e2 Remove oneline filter 2020-03-09 10:22:30 -04:00
Jeremy Stretch
02bf6bd3a6 Changelog for #4217 2020-03-09 10:15:18 -04:00
Jeremy Stretch
8d511b0f72 Merge pull request #4333 from netbox-community/4217-contextual-docs
Closes #4217: Implement contextual documentation for models
2020-03-09 10:13:14 -04:00
Jeremy Stretch
4edd0b1fd6 Merge branch 'develop' into 4217-contextual-docs 2020-03-09 09:56:14 -04:00
Jeremy Stretch
f9073a2f07 Fixes #4326: Exclude Python modules without Script classes from scripts list 2020-03-06 20:59:32 -05:00
Jeremy Stretch
ad9dfec894 Started on #4325 (WIP) 2020-03-06 17:14:26 -05:00
Jeremy Stretch
9a829500cd Fix typo 2020-03-06 16:40:00 -05:00
Jeremy Stretch
9fa5004a35 Closes #4324: Add CSV import view for services 2020-03-06 16:33:43 -05:00
Jeremy Stretch
2a5bf2a222 Fixes #4323: Add bulk edit view for power panels 2020-03-06 16:05:26 -05:00
Jeremy Stretch
b22bf0c4b0 Fix upgrade.sh to show virtualenv warning only when needed 2020-03-06 15:07:29 -05:00
Jeremy Stretch
17c76e413d Install wheel before NetBox dependencies 2020-03-06 13:59:19 -05:00
Jeremy Stretch
803287a514 Closes #4313: Remove id__in filters 2020-03-06 12:05:53 -05:00
Jeremy Stretch
1a89e35729 Merge branch 'develop' into develop-2.8 2020-03-06 11:34:01 -05:00
Jeremy Stretch
5950bedfae Post-release version bump 2020-03-06 11:26:59 -05:00
Jeremy Stretch
c1ef87e009 Merge pull request #4321 from netbox-community/develop
Release v2.7.9
2020-03-06 11:23:42 -05:00
Jeremy Stretch
09298dab7a Release v2.7.9 2020-03-06 11:17:17 -05:00
Jeremy Stretch
afcd9b801f Delete squashed migration to avoid 'pending trigger events' exception under certain conditions 2020-03-06 10:32:12 -05:00
Jeremy Stretch
12bedac28a Tweak upgrade script to exit immediately if any individual tasks fail 2020-03-06 10:26:12 -05:00
Jeremy Stretch
c50714ec42 Introduce DOCS_ROOT configuration parameter 2020-03-06 09:35:58 -05:00
kobayashi
9f8d1d2436 Merge pull request #4063 from deathbeam/issue-4062
List choices for choice fields as enums in Swagger openapi spec
2020-03-05 23:58:43 -05:00
kobayashi
920078a738 set fix#4062 to release note 2020-03-05 23:52:33 -05:00
Tomas Slusny
4136a5fd5e List choices for choice fields as enums
Fixes #4062

Signed-off-by: Tomas Slusny <slusnucky@gmail.com>
2020-03-05 23:44:37 -05:00
Jeremy Stretch
7d236b607e Tweak navigation max depth 2020-03-05 17:30:55 -05:00
Jeremy Stretch
f2d1c7d82a Update release notes navigation; ditch v1.x release notes 2020-03-05 17:27:59 -05:00
Jeremy Stretch
a7c133daa6 Reset documentation hierarchy 2020-03-05 17:23:56 -05:00
Jeremy Stretch
f89773f4a3 Cleaned up model documentation hierarchy 2020-03-05 17:03:03 -05:00
Jeremy Stretch
363c4acadc Drop GitHub-flavored Markdown (py-gfm) 2020-03-05 16:30:12 -05:00
Jeremy Stretch
b9d66f010f Add missing nav link for device types 2020-03-05 16:26:23 -05:00
Jeremy Stretch
57df250128 Add doc pages for device component templates 2020-03-05 15:24:02 -05:00
Jeremy Stretch
1657d6a0b8 Add missing docs page for tags 2020-03-05 15:16:15 -05:00
Jeremy Stretch
3b200bbffc Remove title from docs modal 2020-03-05 14:54:48 -05:00
Jeremy Stretch
121c7ada1f Add admonition support for embedded docs 2020-03-05 14:49:52 -05:00
Jeremy Stretch
25f4cae3ff Add model doc modal to object add/edit template 2020-03-05 13:56:03 -05:00
Jeremy Stretch
9f42bce16a Update modal template 2020-03-05 13:55:27 -05:00
Jeremy Stretch
defe59d79e Introduce get_docs() template filter for models 2020-03-05 13:52:34 -05:00
Jeremy Stretch
8a23811831 Add missing model doc pages 2020-03-05 13:48:47 -05:00
Jeremy Stretch
5190710aef Refactored device component docs 2020-03-05 11:44:18 -05:00
Jeremy Stretch
04ddc0487a Standardize circuits page 2020-03-05 11:26:10 -05:00
Jeremy Stretch
f9c9cf9ad2 Refactor virtualization docs 2020-03-05 11:24:57 -05:00
Jeremy Stretch
b8b02c7b25 Refactor tenancy docs 2020-03-05 11:21:52 -05:00
Jeremy Stretch
a061a03860 Refactor service docs 2020-03-05 11:20:10 -05:00
Jeremy Stretch
7793f281c5 Refactor secrets docs 2020-03-05 11:18:57 -05:00
Jeremy Stretch
593374764d Refactor IPAM docs 2020-03-05 11:16:54 -05:00
Jeremy Stretch
a320b54c2f Refactor power docs 2020-03-05 11:13:06 -05:00
Jeremy Stretch
6ba24c3296 Refactor site/rack docs 2020-03-05 11:10:09 -05:00
Jeremy Stretch
92949ddcdb Refactor device docs 2020-03-05 11:05:48 -05:00
Jeremy Stretch
b2bc1bf74a Refactor circuits docs 2020-03-05 10:52:56 -05:00
Jeremy Stretch
70397461eb Enable support for Markdown inclusions 2020-03-05 10:47:12 -05:00
Jeremy Stretch
aefed0df89 Add user survey note to README 2020-03-05 08:51:03 -05:00
John Anderson
bc954bc7be Merge branch 'develop-2.8' into 3351-plugins 2020-03-04 22:17:14 -05:00
Jeremy Stretch
e4cfeb1977 Add reminder to reload systemctl daemon if needed 2020-03-04 17:19:16 -05:00
Jeremy Stretch
e4e4af1b2d Delete obsolete old_requirements.txt 2020-03-04 16:07:19 -05:00
Jeremy Stretch
2bd3f1fcc3 Merge pull request #4315 from netbox-community/4195-application-logging
Closes #4195: Application logging
2020-03-04 14:39:12 -05:00
Jeremy Stretch
7454efe648 Documentation and changelog for #4195 2020-03-04 14:33:55 -05:00
Jeremy Stretch
9df2769383 Enable system logging for reports 2020-03-04 14:22:30 -05:00
Jeremy Stretch
36cbbac870 Enable system logging for custom scripts 2020-03-04 14:05:59 -05:00
Jeremy Stretch
406b88777c Add logging for DRF views 2020-03-04 13:32:45 -05:00
Jeremy Stretch
113313e000 Merge pull request #4001 from steffann/738-automatically-check-for-new-releases
Fixes: #738: Automatically check for new versions
2020-03-04 12:22:57 -05:00
Jeremy Stretch
f7c6df6e6a Improved verbosity of upgrade script 2020-03-04 12:20:06 -05:00
Jeremy Stretch
9e92520266 Changelog for #4121 2020-03-04 11:53:53 -05:00
Jeremy Stretch
1dd07337fd Merge pull request #4189 from netbox-community/4121-filter-lookup-expressions
4121 filter lookup expressions
2020-03-04 11:51:19 -05:00
Jeremy Stretch
746bfd8bca Closes #4119: Extend upgrade script to clear expired user sessions 2020-03-04 10:29:22 -05:00
Jeremy Parker
10dee9b57b Fix typo in caching.md (#4310)
Co-authored-by: Jeremy Stretch <jeremy.stretch@networktocode.com>
2020-03-04 10:07:58 -05:00
Jeremy Stretch
31e5d9ffe6 Changelog for #4298 2020-03-04 10:03:39 -05:00
Jeremy Stretch
a45b18b335 Merge pull request #4311 from netbox-community/4298-custom-fields-api
Fixes #4298: Bulk creation of objects with custom fields via API
2020-03-04 10:02:23 -05:00
Jeremy Stretch
57b6ac7cb1 Finish work on improved custom fields API tests 2020-03-04 09:53:49 -05:00
Jeremy Stretch
4611536ca9 Revise custom field API tests to check for single/multiple objects with/without custom field values 2020-03-03 17:07:43 -05:00
Jeremy Stretch
e4abfd192e Introduce CustomFieldDefaultValues class to handle default custom field values 2020-03-03 14:54:48 -05:00
Jeremy Stretch
c85bcbcf31 Merge branch 'develop' into develop-2.8 2020-03-03 13:20:00 -05:00
Jeremy Stretch
cb7932ecda Merge pull request #4308 from kobayashi/4229-docs-python-version
Fix #4229: Describe supported Python version
2020-03-03 12:14:10 -05:00
Jeremy Stretch
e4fc37e91a Merge pull request #4304 from dstarner/4288-incorrect-swagger-type
Set local_context_data serializer on Device and VM to method
2020-03-03 12:13:06 -05:00
Jeremy Stretch
74821c2c17 Closes #4218: Allow negative voltage for DC power feeds 2020-03-03 12:10:08 -05:00
Dan Starner
e6ee9803d4 use FieldInspector for JSONField type 2020-03-03 12:04:46 -05:00
kobayashi
fa992853b0 Describe supported Python version 2020-03-03 10:52:56 -05:00
Jeremy Stretch
1e4dd102bd Closes #4290: Include device name in tooltip on rack elevations 2020-03-03 10:35:07 -05:00
Jeremy Stretch
0f9c37fbc7 Closes #4284: Add MRJ21 port and cable types 2020-03-03 10:13:21 -05:00
Jeremy Stretch
a261060e5c Closes #4305: Add 10-inch option for rack width 2020-03-03 10:07:20 -05:00
Jeremy Stretch
78a1aad6c0 Fixes #4306: Fix toggling of device images for all racks in elevations view 2020-03-03 10:04:35 -05:00
Jeremy Stretch
7b6bd75c22 #4295 follow-up: Tweak handling of initial data for bulk edit forms 2020-03-03 09:43:56 -05:00
Jeremy Stretch
c983dac771 Add logging output to login/logout views 2020-03-02 17:04:54 -05:00
Jeremy Stretch
7a10748355 Add logging output to API viewsets 2020-03-02 16:52:21 -05:00
Jeremy Stretch
ca1186dca1 Add logging output to utility views 2020-03-02 16:38:51 -05:00
Daniel Starner
3070c7e991 fix linting mistake 2020-03-02 15:45:58 -05:00
Dan Starner
406708218b set local_context_data serializer on device and vm to method 2020-03-02 13:47:07 -05:00
Jeremy Stretch
c7b74b2090 Fixes #4300: Pass "commit" argument when executing scripts via REST API 2020-03-02 13:29:32 -05:00
Jeremy Stretch
1b38f3ad3a Merge pull request #4303 from kobayashi/4274-prefix-schema
Fix #4274: Set correct value schema for int typed ChoiceField
2020-03-02 13:14:04 -05:00
Jeremy Stretch
1e1c6526b2 Add BaseFilterSetTest to validate automatic generation of filters 2020-03-02 12:25:21 -05:00
kobayashi
0be5488104 Fix #4274: Set correct value schema for int typed ChoiceField 2020-03-02 11:26:56 -05:00
Jeremy Stretch
13fcdc0c1e Fixes #4301: Fix exception when deleting device type with components 2020-03-02 09:41:37 -05:00
John Anderson
5f5edbc10e added config option to disable plugins 2020-03-01 03:42:05 -05:00
John Anderson
71a8a13644 add api urls and signals interface for detail route buttons 2020-03-01 03:24:17 -05:00
John Anderson
a17c22746d initial work on #3351 2020-02-29 02:23:01 -05:00
John Anderson
e5f8f15293 added lookup map for treenode filter 2020-02-28 19:58:06 -05:00
Jeremy Stretch
22ec11c766 Fix up CentOS installation instructions; add troubleshooting guide 2020-02-28 17:31:51 -05:00
Jeremy Stretch
1b6f721e50 Extend installation docs to include creation of a specific netbox user 2020-02-28 16:25:43 -05:00
Jeremy Stretch
9c88f12abe Add note about Redis config to installation instructions 2020-02-28 15:58:55 -05:00
Jeremy Stretch
e285d0b547 Remove obsolete querydict_to_dict() utility function 2020-02-28 15:47:59 -05:00
Jeremy Stretch
5dc956fbe1 First stab at external authentication support 2020-02-28 15:16:31 -05:00
Jeremy Stretch
1449dfc966 Fixes #4295: Fix assignment of parent LAG during interface bulk edit 2020-02-28 09:44:41 -05:00
Sander Steffann
fcf3b14712 Add unittests 2020-02-27 21:54:43 +01:00
Sander Steffann
28473fa3e0 Disable update check by default 2020-02-27 19:40:06 +01:00
Sander Steffann
8ce106cb4b Move request to background task 2020-02-27 19:36:02 +01:00
Jeremy Stretch
bdf9857e6f Closes #4294: Add tenancy filter tests for all models 2020-02-27 13:28:08 -05:00
Sander Steffann
22ac9f63a1 Don't overwrite the header block, append to it 2020-02-27 18:27:36 +01:00
Sander Steffann
0de7f4712f Fix check for permissions 2020-02-27 18:27:36 +01:00
Sander Steffann
8d92089487 Improve comments and error message on invalid characters in URL 2020-02-27 18:27:36 +01:00
Sander Steffann
3a0849699f Rename settings to be more generic, not GitHub-only 2020-02-27 18:27:36 +01:00
Sander Steffann
008fc5623e Full URL for API, more consistent naming, only enabled for staff and better configuration validation 2020-02-27 18:27:36 +01:00
Sander Steffann
9d66ac4a6a Refactor the code to be more readable 2020-02-27 18:26:15 +01:00
Sander Steffann
405d93c6f2 Update versions.py 2020-02-27 18:26:15 +01:00
Sander Steffann
2fcdc90d3f Automatically check for new versions 2020-02-27 18:26:15 +01:00
dansheps
27e3b6f377 Remove second variables, make widget mandatory on ObjectVar and MultiObjectVar 2020-02-27 07:45:11 -06:00
Jeremy Stretch
faf676e6e0 Closes #4281: Allow filtering device component list views by type 2020-02-26 17:22:53 -05:00
Jeremy Stretch
624566b04e Fixes #4282: Fix label on export button for device types 2020-02-26 16:49:39 -05:00
Jeremy Stretch
5a00939512 Fixes #4285: Include A/Z termination sites in provider circuits table 2020-02-26 16:41:59 -05:00
Jeremy Stretch
4431259cd8 Merge pull request #4287 from netbox-community/3949-virtualenv-install
Closes #3949: Revise installation docs to use a Python virtual environment
2020-02-26 16:04:51 -05:00
Jeremy Stretch
87c914bece Reorganize .gitignore; add /venv/ 2020-02-26 15:59:26 -05:00
Jeremy Stretch
56c26f80b3 Changelog for #3949 2020-02-26 15:56:26 -05:00
Jeremy Stretch
215dbef7a0 Improved formatting of upgrade script messages 2020-02-26 15:40:05 -05:00
Jeremy Stretch
64c9bf27c1 Fix exit statement in upgrade script 2020-02-26 15:34:42 -05:00
Jeremy Stretch
1abc82e718 Update upgrade script & instructions to better accomodate moving to a venv 2020-02-26 15:26:12 -05:00
Jeremy Stretch
be9df3c07d Simplify the systemctl commands 2020-02-26 14:38:25 -05:00
Jeremy Stretch
798ecfc8f0 Clean up the upgrade guide 2020-02-26 14:09:54 -05:00
Jeremy Stretch
015a339202 Update systemd migration guide 2020-02-26 14:09:27 -05:00
Jeremy Stretch
2ee06c13f9 Remove Python 2 migration guide 2020-02-26 13:56:44 -05:00
Jeremy Stretch
0851b97ba5 Update the upgrade script & instructions to use a virtual environment 2020-02-26 13:54:07 -05:00
Jeremy Stretch
1b64f67f2b Update installation instructions to use a Python virtual environment 2020-02-26 12:28:35 -05:00
John Anderson
c908f132ec Merge branch 'develop' into 4121-filter-lookup-expressions 2020-02-26 12:05:27 -05:00
Jeremy Stretch
c78df40cb0 Refactor installtion docs 2020-02-26 11:40:31 -05:00
Jeremy Stretch
5a61bbec26 Fixes #4277: Fix filtering of clusters by tenant 2020-02-26 09:11:38 -05:00
John Anderson
3b4607d30d refactor lookup map logic 2020-02-25 15:16:27 -05:00
Jeremy Stretch
5befe66aa5 Post-release version bump 2020-02-25 15:11:04 -05:00
Jeremy Stretch
3c249a40a0 Merge pull request #4275 from netbox-community/develop
Release v2.7.8
2020-02-25 15:09:41 -05:00
Jeremy Stretch
7e81d5fe11 Release v2.7.8 2020-02-25 15:04:08 -05:00
Jeremy Stretch
6b4858303b Fix object list table width when no filter_form is present 2020-02-25 15:03:27 -05:00
Jeremy Stretch
5000f7f8d7 Extend custom scripts to pass the 'commit' value via run() 2020-02-25 14:49:41 -05:00
Jeremy Stretch
f643af13d7 Fix field label for Prefix.vrf 2020-02-25 14:12:53 -05:00
John Anderson
afc8c9bfe9 fix tenancy filterset bases 2020-02-25 13:50:31 -05:00
Jeremy Stretch
a6e859d9b7 Remove extraneous prefetches from racks queryset 2020-02-25 12:35:27 -05:00
Jeremy Stretch
5bf68493df Changelog & cleanup for #4267 2020-02-25 12:34:48 -05:00
Jeremy Stretch
43f3488270 Merge pull request #4271 from ananace/4267-rack-roles-in-elevations
Fixes #4267: Display rack roles in elevation list view
2020-02-25 12:18:31 -05:00
Jeremy Stretch
62efe0621f Fixes #4272: Interface type should be required by API serializer 2020-02-25 11:20:43 -05:00
Jeremy Stretch
161f03217e Merge pull request #4269 from hSaria/4227-omit-private-changelog
Fixes #4227: Omit internal fields from the change log data
2020-02-25 11:02:22 -05:00
Jeremy Stretch
40b56d7f62 Merge branch 'develop' into 4227-omit-private-changelog 2020-02-25 11:02:11 -05:00
Jeremy Stretch
4eb731cfae Merge pull request #4263 from netbox-community/4237-custom-webhooks
Closes #4237: Enable custom templating for webhook request content
2020-02-25 10:54:30 -05:00
Jeremy Stretch
35786966c6 Changelog for #4237 2020-02-25 10:46:16 -05:00
Jeremy Stretch
c3b64164ba Always use a JSON object to convey change data when no body template is present 2020-02-25 10:43:14 -05:00
Jeremy Stretch
644b4aa42d Revised webhook documentation 2020-02-25 10:24:27 -05:00
Alexander Olofsson
838291c3f3 Display rack roles in elevation list view 2020-02-25 16:00:21 +01:00
Saria Hajjar
3296298d21 Fixes #4227: Omit internal fields from the change log data 2020-02-25 14:48:11 +00:00
Jeremy Stretch
211311be9f Add http_method field to Webhook 2020-02-24 20:42:24 -05:00
Jeremy Stretch
9a532b1eb2 Extend templatization ability to additional_headers field 2020-02-24 17:47:17 -05:00
Jeremy Stretch
1fbd3a2c26 Convert additional_headers to a TextField 2020-02-24 16:59:35 -05:00
Jeremy Stretch
99038ffc44 Enable custom templating for webhook request content 2020-02-24 16:12:46 -05:00
John Anderson
67565ca191 added docs and more tests 2020-02-24 15:03:07 -05:00
Jeremy Stretch
81d001d49e Add a note about X-Frame-Options to the HTTP daemon instructions 2020-02-24 14:30:03 -05:00
Jeremy Stretch
cc4a22b2d1 Merge pull request #4261 from netbox-community/3145-cable-status-decommissioning
Closes #3145: Add a "decommissioning" status for cables
2020-02-24 14:24:34 -05:00
Jeremy Stretch
4d1749cc71 Remove CONNECTION_STATUS_CONNECTED and CONNECTION_STATUS_PLANNED constants 2020-02-24 14:18:19 -05:00
Jeremy Stretch
f7b620c6a2 Closes #3145: Add 'decommissioning' status for cables 2020-02-24 14:09:36 -05:00
Jeremy Stretch
76138f3080 Fixes #4222: Escape double quotes on encapsulated values during CSV export 2020-02-24 13:29:00 -05:00
Jeremy Stretch
36f8d6d259 Disconnect post_save & pre_delete signals after the response has been received 2020-02-24 12:42:51 -05:00
Jeremy Stretch
909971f237 Fixes #4221: Fix exception when deleting a device with interface connections when an interfaces webhook is defined 2020-02-24 12:41:55 -05:00
Jeremy Stretch
4e76e4ec9c Merge pull request #4253 from hSaria/3612-update-screenshots
Fixes #3612: Update screenshots
2020-02-24 11:45:15 -05:00
Saria Hajjar
87d90adaef Downscaled pictures to 50% (~1600 x ~1000) 2020-02-24 16:41:32 +00:00
dansheps
8ed0d0400f Add tests 2020-02-24 10:30:57 -06:00
Jeremy Stretch
cfd813772d Merge pull request #4257 from netbox-community/4250-extend-view-tests
Extend ViewTestCases for create/edit/delete/import views
2020-02-24 11:30:01 -05:00
Jeremy Stretch
2b484955aa Extend ViewTestCases for create/edit/delete/import views to also check non-data-bound GET requests 2020-02-24 11:23:42 -05:00
dansheps
a5853427d4 Update __all__ for #4255 2020-02-24 10:21:17 -06:00
dansheps
d0bd1ad25b Fixes: #4255 - Add new script variable types based on dynamic model fields 2020-02-24 10:18:19 -06:00
dansheps
d9dcc92300 Update release notes for #4230 2020-02-24 09:31:52 -06:00
Daniel Sheppard
d0c82c23bd Merge pull request #4244 from netbox-community/4230-filter_rack_unit_on_elevations
Fixes: #4230 - Fixes rack units filtering on elevation endpoint
2020-02-24 09:25:42 -06:00
Saria Hajjar
6cdb86931e Added separators between screenshots 2020-02-24 15:22:33 +00:00
Saria Hajjar
23d0241865 Updated screenshots with v2.7.7 2020-02-24 15:21:17 +00:00
Jeremy Stretch
61c0a4cc61 Fixes #4252: Fix power port assignment for power outlet templates created via REST API 2020-02-24 10:13:47 -05:00
Jeremy Stretch
b97d3b0716 Fixes #4246: Fix duplication of field attributes when multiple IPNetworkVars are present in a script 2020-02-24 10:01:31 -05:00
Jeremy Stretch
25d126d4ff Call prepare_value() to avoid passing model instances directly to the filterset 2020-02-24 09:31:31 -05:00
Dan Sheppard
2b75e05ea7 Fixes: #4230 - Fixes filtering by position on elevation endpoint
* Add tests for rack elevation filtering
* Add q variable to serializers for RackElevationDetailFilterSerializer
* Add code to allow filtering of position on the rack elevation
2020-02-22 08:24:26 -06:00
Jeremy Stretch
1a997610c7 Fixes #4241: Correct IP address hyperlinks on interface view 2020-02-21 21:43:04 -05:00
Jeremy Stretch
04ee55a40c Fixes #4240: Fix exception when filtering foreign keys by NULL 2020-02-21 21:38:25 -05:00
Jeremy Stretch
1c72d75b62 Fixes #4239: Fix exception when selecting all filtered objects during bulk edit 2020-02-21 20:44:53 -05:00
Jeremy Stretch
9128dc961c Closes #4173: Return graceful error message when webhook queuing fails 2020-02-21 17:21:04 -05:00
Jeremy Stretch
28e3b7af18 Merge branch 'develop' into develop-2.8 2020-02-21 15:26:55 -05:00
Jeremy Stretch
12602a95ea All fields on RenderedGraphSerializer should be read-only 2020-02-21 14:45:07 -05:00
Jeremy Stretch
11d012de4e Fixes #4235: Fix API representation of content_type for export templates 2020-02-21 14:38:38 -05:00
Jeremy Stretch
45cdac6f36 Changelog for #4228 2020-02-21 14:19:02 -05:00
Jeremy Stretch
2c4136f514 Merge pull request #4233 from netbox-community/4228-rack-elevation-images
Fixes #4228: Fix display of device images in rack elevations
2020-02-21 13:55:32 -05:00
Jeremy Stretch
a14c7980f6 Fixes #4232: Enforce consistent background striping in rack elevations 2020-02-21 13:49:28 -05:00
Jeremy Stretch
329740d2a7 Add "Save SVG" link beneath rack elevation display 2020-02-21 13:28:18 -05:00
Jeremy Stretch
8ffba6a279 Clean up rack view CSS 2020-02-21 13:19:45 -05:00
Jeremy Stretch
5a02dc457c Fixes #4228: Fit device images to rack unit; tweak default aspect ratio 2020-02-21 12:43:24 -05:00
Jeremy Stretch
cf312e9690 Changelog for #4224 2020-02-21 09:42:07 -05:00
Jeremy Stretch
20b36f910f Merge pull request #4225 from LuPo/develop
rear rack face doesn't draw if full-height device type assigned only front image
2020-02-21 09:40:23 -05:00
LuPo
0b3111c47f Fix drawing rear elevation when full-height device has been assigned only front image 2020-02-21 13:42:52 +02:00
Jeremy Stretch
493d68a57a Post-release version bump 2020-02-20 14:59:00 -05:00
Jeremy Stretch
5092641157 Merge pull request #4216 from netbox-community/develop
Release v2.7.7
2020-02-20 14:56:27 -05:00
Jeremy Stretch
2b134ea0f0 Release v2.7.7 2020-02-20 14:48:23 -05:00
Jeremy Stretch
58ff08be4e #1529: Add front/rear image fields to DeviceType serializer 2020-02-20 14:37:08 -05:00
Jeremy Stretch
682fd40fff Changelog for #4206 2020-02-20 14:27:26 -05:00
Jeremy Stretch
cdcc63fdf6 Merge pull request #4208 from wtinetworkgear/rj11add
Added serial console_port type rj-11 for a POTS modem connection
2020-02-20 14:26:24 -05:00
Jeremy Stretch
c0052eb416 Closes #4209: Enable filtering interfaces list view by enabled 2020-02-20 14:24:22 -05:00
Jeremy Stretch
74e3e2e5e1 Changelog for #4213 2020-02-20 14:17:18 -05:00
Jeremy Stretch
214470fb84 Rearrange powerfeed view 2020-02-20 14:16:18 -05:00
Jeremy Stretch
e76ea2a03c Merge pull request #4214 from ironick09/develop
Fix Power Feed page to render Custom Fields and Tags
2020-02-20 14:14:57 -05:00
Jeremy Stretch
6c272adb0e Clean up rack headers and border 2020-02-20 14:10:48 -05:00
Jeremy Stretch
51f7b7a5bf Changelog for #1529 2020-02-20 13:49:34 -05:00
Jeremy Stretch
b81622222d Merge pull request #4215 from netbox-community/1529-rack-elevation-images
Closes #1529: Rack elevation images
2020-02-20 13:48:44 -05:00
Jeremy Stretch
e8a8b39c47 Tweak gitignore to include devicetype-images directory 2020-02-20 13:42:23 -05:00
Jeremy Stretch
c78d30d47e Enable toggling of device images on elevations list 2020-02-20 13:20:58 -05:00
Jeremy Stretch
ba6562a5db Add ability to toggle the inclusion of device images when rendering a rack elevation SVG 2020-02-20 13:09:43 -05:00
Josh Niec
b28729baff Fix rendering for powerfeeds_list to show any added custom fields or tags on object
Signed-off-by: Josh Niec <ironick09@gmail.com>
2020-02-20 12:03:09 -06:00
Jeremy Stretch
adf9221bab Refactor rack elevation mixin to RackElevationSVG 2020-02-20 12:48:44 -05:00
Jeremy Stretch
d2157a3423 Add front/rear images for device types; include in rack elevations 2020-02-20 12:11:59 -05:00
Jeremy Stretch
e07ed3de93 Ignore media files 2020-02-20 11:22:04 -05:00
Jeremy Stretch
584539d0a3 #3810: Fix bug in Javascript 2020-02-20 10:20:19 -05:00
Jeremy Stretch
322b328584 Fixes #4211: Include trailing text when naturalizing interface names 2020-02-20 09:49:15 -05:00
Jeremy Stretch
b38eeaebc9 Clarify ciphertext length calculation; remove Python 2 compatibility 2020-02-19 21:14:56 -05:00
Jeremy Stretch
66fa79741d Add min/max length tests for secrets 2020-02-19 21:06:21 -05:00
Ken Partridge
09805ddc4a Added serial console_port type rj-11 for a POTS modem connection 2020-02-19 15:39:53 -08:00
Jeremy Stretch
1130f6b9f0 Remove dependency on RawSQL from IPAddress manager 2020-02-19 17:17:41 -05:00
Jeremy Stretch
38ff01e874 Merge pull request #4207 from netbox-community/3848-django-3.0
Closes #3848: Django 3.0
2020-02-19 15:41:39 -05:00
Jeremy Stretch
be23230938 Update tests to match new string representation of ContentTypes 2020-02-19 15:31:15 -05:00
Jeremy Stretch
7b93155b06 Fix form field ordering; self.fields no longer an OrderedDict 2020-02-19 15:08:15 -05:00
Jeremy Stretch
b7d41bc42c Rename MPTT migration 2020-02-19 14:46:53 -05:00
Jeremy Stretch
e17597a0a9 Update CI build to Python 3.6 and PostgreSQL 9.6 2020-02-19 14:30:49 -05:00
Jeremy Stretch
7a53e24f97 Closes #3810: Preserve slug value when editing existing objects 2020-02-19 13:53:11 -05:00
Jeremy Stretch
f05c7be394 Fixes #4204: Fix assignment of mask length when bulk editing prefixes 2020-02-19 13:28:07 -05:00
Jeremy Stretch
2cf990bd92 Standardize on two-word form of "change log" 2020-02-19 12:45:52 -05:00
Jeremy Stretch
21473548a5 Merge pull request #4181 from hSaria/2511-change-diff
Fixes #2511: Compare object change to the previous change
2020-02-19 12:41:24 -05:00
Jeremy Stretch
626513a8b2 Fixes #4202: Prevent reassignment to master device when bulk editing VC member interfaces 2020-02-19 11:29:42 -05:00
Jeremy Stretch
5871640701 Closes #4199: Update example report to use ChoiceSet 2020-02-19 10:31:10 -05:00
Jeremy Stretch
f1b0421805 Temporary hack to avoid name collision without renaming the secrets app 2020-02-18 18:00:00 -05:00
Jeremy Stretch
8cfb5ac5c6 Fixes #3967: Fix missing migration for interface templates of type "other" 2020-02-18 16:56:50 -05:00
Jeremy Stretch
ae1767b5d0 Remove obsolete InterfaceManager 2020-02-18 16:22:17 -05:00
Jeremy Stretch
84d078a539 Fixes #4196: Fix exception when viewing LLDP neighbors page 2020-02-18 16:21:50 -05:00
Jeremy Stretch
01b9d1a493 Closes #3848: Upgrade to Django 3.0 2020-02-18 16:03:28 -05:00
Jeremy Stretch
2a1de0202f Add helpful links to "new issue" page 2020-02-18 11:43:47 -05:00
Jeremy Stretch
4ea8967c2d Fixes #4194: Role field should not be required when searching/filtering secrets 2020-02-18 11:14:37 -05:00
Jeremy Stretch
a456cbb26c Fixes #4179: Site is required when creating a rack group or power panel 2020-02-18 11:08:16 -05:00
Jeremy Stretch
5b505b21c8 Fixes #4183: Fix representation of NaturalOrderingField values in change log 2020-02-18 10:50:14 -05:00
John Anderson
9116d74cf7 merge develop 2020-02-18 00:39:30 -05:00
John Anderson
a136a0788c #4121 - dynamic filter lookup expressions 2020-02-18 00:32:58 -05:00
Saria Hajjar
89ab6553d6 Changelog for #2511 2020-02-15 23:55:03 +00:00
Saria Hajjar
faa22cb637 Fixes #2511: Compare object change to the previous change 2020-02-15 22:39:08 +00:00
Jeremy Stretch
d6ccf13167 Changelog for #4081 2020-02-14 15:44:52 -05:00
Jeremy Stretch
f6cbce65fa Merge pull request #4178 from netbox-community/4081-drop-ip-family
Closes #4081: Drop the family column from IP objects
2020-02-14 15:42:19 -05:00
Jeremy Stretch
f0ced98dc6 Delete unused test data 2020-02-14 15:17:04 -05:00
Jeremy Stretch
fcdb05238c Restore filters 2020-02-14 15:16:18 -05:00
Jeremy Stretch
8687226cc7 Update family filters in querysets 2020-02-14 15:11:12 -05:00
Jeremy Stretch
047f13ac5d Update tests 2020-02-14 15:10:34 -05:00
Jeremy Stretch
b475a575e4 Drop family column from Aggregate, Prefix, and IPAddress models 2020-02-14 15:04:33 -05:00
Jeremy Stretch
1a8eea5aa9 Fixes #4175: Fix potential exception when bulk editing objects from a filtered list 2020-02-14 14:27:47 -05:00
Jeremy Stretch
8cb6aed8fa Closes #3753: Remove rack units endpoint (replaced with elevation) 2020-02-14 13:59:07 -05:00
Jeremy Stretch
926b1fadf2 Merge branch 'develop' into develop-2.8 2020-02-14 13:44:10 -05:00
Jeremy Stretch
2de8d8b73d Merge pull request #4174 from netbox-community/4164-object-list-template
Closes #4164: Consolidate object list templates
2020-02-14 13:31:25 -05:00
Jeremy Stretch
440f754fec Clean up TODO notes 2020-02-14 13:30:53 -05:00
Jeremy Stretch
815a46bfbe Convert device and VM list views to use obj_list.html 2020-02-14 13:21:32 -05:00
Jeremy Stretch
182fddddd2 Merge branch 'develop' into 4164-object-list-template 2020-02-14 13:11:30 -05:00
Jeremy Stretch
ce89fa74b9 Closes #4170: Improve color contrast in rack elevation drawings 2020-02-14 13:09:01 -05:00
Jeremy Stretch
7ce1289bb2 Clean up unused imports 2020-02-14 12:04:56 -05:00
Jeremy Stretch
e4df02887b Changelog for #3840 2020-02-14 12:04:35 -05:00
Jeremy Stretch
6bc7be7ba5 Merge pull request #3925 from hSaria/3840-limit-vlan-choices
Fixes #3840: Only show valid interface VLAN choices
2020-02-14 11:48:29 -05:00
Saria Hajjar
7aba8e3ec4 Added back clean 2020-02-14 16:43:42 +00:00
Jeremy Stretch
8d5ea5d005 Merge pull request #4169 from dstarner/redis-sentinel-conn-check
[Corollary to #4161] Redis Connection Check when Using Sentinel
2020-02-14 11:43:04 -05:00
Dan Starner
ec0f45e20d remove redis conn check from extras AppConfig 2020-02-14 11:16:59 -05:00
Jeremy Stretch
0c8ad45976 Merge pull request #4172 from dstarner/4171-required-settings-documentation-format
[Fix #4171] fix extraneous formatting of notice boxes in required settings doc
2020-02-14 10:47:40 -05:00
Dan Starner
e431ef09e5 fix extraneous formatting of notice boxes in required settings doc 2020-02-14 10:29:09 -05:00
Dan Starner
03a7f6bbda ammend redis conn check to acccount for sentinel 2020-02-14 09:39:01 -05:00
Jeremy Stretch
a4705fa73a Changelog for #2519 2020-02-14 09:35:43 -05:00
Jeremy Stretch
0a8d39cfe4 Merge pull request #3726 from eSentire/fix-2519
Fix race condition in available-prefix/ip APIs
2020-02-14 09:32:51 -05:00
Jeremy Stretch
1d72436bfc Fixes #4168: Role is not required when creating a virtual machine 2020-02-14 09:13:05 -05:00
Jeremy Stretch
598d23fc03 Post-release version bump 2020-02-13 21:51:03 -05:00
Jeremy Stretch
472a45ddec Merge pull request #4167 from netbox-community/develop
Release v2.7.6
2020-02-13 21:50:44 -05:00
Jeremy Stretch
0863145c7f Release v2.7.6 2020-02-13 21:46:03 -05:00
Jeremy Stretch
909323663e Fixes #4166: Fix schema migrations to enforce maximum character length for naturalized fields 2020-02-13 21:41:00 -05:00
Jeremy Stretch
8212c8f6fc Convert IPAM list views to extend standard template 2020-02-13 17:22:17 -05:00
Jeremy Stretch
8df9bb6fb4 Convert change log view to extend standard template 2020-02-13 17:11:39 -05:00
Jeremy Stretch
ff952fb221 Migrate extras views to use common object list template 2020-02-13 16:39:38 -05:00
John Anderson
9ead2635c5 merge develop 2020-02-13 16:00:07 -05:00
Jeremy Stretch
4d50cad6ed Post-release version bump 2020-02-13 15:39:08 -05:00
Jeremy Stretch
120cbb0159 Merge pull request #4165 from netbox-community/develop
Release v2.7.5
2020-02-13 15:36:50 -05:00
Jeremy Stretch
08ce024473 Release v2.7.5 2020-02-13 15:32:09 -05:00
Jeremy Stretch
807c2f048d Changelog for #3984 2020-02-13 15:16:07 -05:00
Jeremy Stretch
fafcdf7def Merge pull request #4161 from dstarner/issue-3984-redis-sentinel-conn
Fixes #3984: Allow for Redis Sentinel Connection Configuration
2020-02-13 15:14:42 -05:00
Jeremy Stretch
92fab048d1 Add tests for naturalization functions 2020-02-13 15:13:43 -05:00
Jeremy Stretch
6884404957 Migrate virtualization views to use common object list template 2020-02-13 14:24:22 -05:00
Jeremy Stretch
88c917231d Migrate tenancy views to use common object list template 2020-02-13 14:21:14 -05:00
Jeremy Stretch
a054aff3c4 Migrate secrets views to use common object list template 2020-02-13 14:19:14 -05:00
Jeremy Stretch
8fd809ac5e Migrate IPAM views to use common object list template 2020-02-13 14:17:13 -05:00
Jeremy Stretch
fff657cd5a Migrate DCIM views to use common object list template 2020-02-13 14:07:15 -05:00
Jeremy Stretch
4ef15e4dc8 Migrate circuits views to use common object list template 2020-02-13 13:31:04 -05:00
Jeremy Stretch
c5f74cce80 Introduce a common template for object list views 2020-02-13 13:29:50 -05:00
Jeremy Stretch
35498c17d7 Updated the style guide 2020-02-13 11:04:07 -05:00
Jeremy Stretch
874e59b01a Closes #4060: Move secrets panel on home page to righthand column 2020-02-13 10:30:12 -05:00
Dan Starner
72f0e31b84 fixed extraneous linting error 2020-02-13 10:27:56 -05:00
Dan Starner
ba9a2956a8 documentation on redis sentinel 2020-02-13 10:26:03 -05:00
Dan Starner
3538eeda14 allow for redis sentinel connection 2020-02-13 10:26:03 -05:00
Jeremy Stretch
0c89534bfb Closes #4160: Link to full database configuration parameters in configuration docs 2020-02-13 10:08:10 -05:00
Jeremy Stretch
47b15aacef Changelog for #4159 2020-02-13 09:48:12 -05:00
Jeremy Stretch
3e0ab79977 Merge pull request #4162 from netbox-community/4159-caching_redis_using_wrong_key
Fixes: #4159 - Corrects settings.py to use CACHING_REDIS
2020-02-13 09:46:41 -05:00
Jeremy Stretch
344fa72357 renaturalize command should not skip any values 2020-02-13 09:33:01 -05:00
Daniel Sheppard
617fc7659f Fixes: #4159 - Corrects settings.py to use CACHING_REDIS instead of WEBHOOKS_REDIS 2020-02-13 08:26:47 -06:00
Jeremy Stretch
0d91b6b74b Merge pull request #4102 from kobayashi/4093-vm-status-choice
Fixes #4093: Additional status choices for vms
2020-02-12 22:58:43 -05:00
kobayashi
335343642b additional status choices for vms 2020-02-12 22:43:40 -05:00
kobayashi
bc7f5fb33a Modify offline status color for vm 2020-02-12 22:19:17 -05:00
kobayashi
ca56fc709a Fixes #4093: Add decommissioning for vms 2020-02-12 22:19:17 -05:00
Jeremy Stretch
a08ee68033 Exempt pull requests from stalebot 2020-02-12 21:56:23 -05:00
Jeremy Stretch
0d57cb0033 Changelog & docs for #3766 2020-02-12 16:54:40 -05:00
Jeremy Stretch
53804d39bb Merge pull request #4142 from netbox-community/3766-enable_widgets_in_script_fields
Fixes: #3766 - Enable widget usage in scripts
2020-02-12 16:48:08 -05:00
Jeremy Stretch
1e221cd9bb Update changelog 2020-02-12 16:28:19 -05:00
Jeremy Stretch
0c942f18c1 Merge pull request #4068 from netbox-community/4034-prefix_ordering_tests
Fixes: #4034 - Adds Prefix & IPAddress Ordering Tests
2020-02-12 16:27:02 -05:00
Jeremy Stretch
00d32f0a7d Merge pull request #4156 from netbox-community/4153-renaturalize-command
Closes #4153: Add a "renaturalize" management command
2020-02-12 16:20:52 -05:00
Jeremy Stretch
df3fef8bb1 Merge pull request #4154 from netbox-community/4138-device_bays_in_rack_elevations
Fixes: #4138 - Add Device Bay count to rack elevation
2020-02-12 16:19:57 -05:00
Jeremy Stretch
5cc24c055b Tweak docs link for send_mail() to reference stable; formatting 2020-02-12 16:18:08 -05:00
Jeremy Stretch
4064c32a7f Fix nav menu link for configcontext_add 2020-02-12 16:16:23 -05:00
Joshua Corrick
6d7c5d51fe Add email testing example (#4152)
* Add email testing example

Includes an example provided by  Jeremy

* Updated with suggestions

Co-authored-by: Jeremy Stretch <jeremy.stretch@networktocode.com>
2020-02-12 16:15:05 -05:00
Jeremy Stretch
64c0059dd8 Merge pull request #4155 from hSaria/4150-yaml-nested-tags
Fixes #4150: Replace OrderedDict with Dict when rendering YAML
2020-02-12 16:13:32 -05:00
Jeremy Stretch
d0ece2e48d Merge pull request #4144 from netbox-community/3986-rack_positions_svg
Fixes: #3986 - Convert rack units to part of SVG rendered document
2020-02-12 16:06:05 -05:00
Jeremy Stretch
139f18b2e5 Closes #4153: Add a management command to manually renaturalize applicable objects (from #3799) 2020-02-12 15:59:37 -05:00
Saria Hajjar
8eea0331bf Fixes #4150: Replace OrderedDict with Dict when rendering YAML 2020-02-12 19:59:04 +00:00
Daniel Sheppard
62d6e02d6b Modify _draw_elevations
* Add legend_width argument, variable & constant
* Applied legend_width variable where required
* Removed U prefix
2020-02-12 13:15:29 -06:00
Jeremy Stretch
a8601bb1fd Merge pull request #4151 from netbox-community/4146-secretrole-enforcement
Fixes #4146: Fix SecretRole permissions enforcement
2020-02-12 13:51:44 -05:00
Daniel Sheppard
fe452735be Add Device Bay count to rack elevation names 2020-02-12 12:48:13 -06:00
Jeremy Stretch
3b1128f8f3 Establish standard test cases for all models 2020-02-12 13:25:56 -05:00
Daniel Sheppard
0402323ef9 Fixes: #4130
Corrects service name for the RQ worker service in docs/installation/upgrading.md
2020-02-12 11:26:40 -06:00
Jeremy Stretch
5bf85597ed Fixes #4146: Fix SecretRole permissions enforcement 2020-02-12 11:13:32 -05:00
Jeremy Stretch
e4b910fe87 Fixes #4148: Remove dead link to topology maps docs page 2020-02-12 09:44:30 -05:00
Jeremy Stretch
24db573764 Merge pull request #3997 from hSaria/3995-navbar-overflow
Fixes #3995: Navbar scroll when overflowing
2020-02-12 09:41:48 -05:00
Jeremy Stretch
5befa533c6 Merge branch 'develop' into 3995-navbar-overflow 2020-02-12 09:40:31 -05:00
Dan Sheppard
15bc731f61 Convert rack units to part of SVG rendered document 2020-02-11 23:31:51 -06:00
Dan Sheppard
8fb4988fa1 Fix typo in docstring 2020-02-11 21:01:43 -06:00
Daniel Sheppard
ab378ed218 Fixes: #4130
Corrects service name for the RQ worker service in docs/installation/upgrading.md
2020-02-11 20:39:50 -06:00
Daniel Sheppard
56bb053146 Fix test error 2020-02-11 20:27:02 -06:00
Daniel Sheppard
3c3cca8ec1 Enable widget usage (APISelect, APIMultipleSelect, StaticSelect2, etc) in scripts 2020-02-11 20:12:02 -06:00
Dan Sheppard
908586c93a Fix PEP8 errors 2020-02-11 18:21:58 -06:00
Matt Olenik
2e83ce76ed Fix race condition in available-prefix/ip APIs
Implement advisory lock to prevent duplicate records being inserted
when making simultaneous calls. Fixes #2519
2020-02-11 13:36:52 -08:00
Jeremy Stretch
2ab382eec5 Fixes #4137: Disable occupied terminations when connecting a cable to a circuit 2020-02-11 14:56:02 -05:00
Jeremy Stretch
2503978555 Add navigation menu link for adding config contexts 2020-02-11 14:32:41 -05:00
Anton Tokarev
55886d6793 fix typo (#4135)
Co-authored-by: Jeremy Stretch <jeremy.stretch@networktocode.com>
2020-02-11 14:22:32 -05:00
Jeremy Stretch
009c0ba31c Fixes #4134: Device power ports and outlets should inherit type from the parent device type 2020-02-11 14:18:45 -05:00
Jeremy Stretch
ec53e1c74c Merge pull request #4136 from netbox-community/3912-remove-chained-fields
Closes #3912: Remove chained form fields
2020-02-11 14:01:55 -05:00
Jeremy Stretch
7177fcfa61 Use DynamicModelChoiceField for all fields using APISelect 2020-02-11 12:25:40 -05:00
Jeremy Stretch
fb56d5bc66 Account for initial data when binding a DynamicModelChoiceField 2020-02-11 10:21:44 -05:00
Jeremy Stretch
221805a63e Use TreeNode choice fields for region assignment 2020-02-11 09:50:33 -05:00
Jeremy Stretch
da68968d75 Replace FilterChoiceField with DynamicModelMultipleChoiceField 2020-02-11 09:33:41 -05:00
Dan Sheppard
ca795f729f Merge branch '4034-prefix_ordering_tests' of https://github.com/netbox-community/netbox into 4034-prefix_ordering_tests
 Conflicts:
	netbox/ipam/tests/test_ordering.py
2020-02-10 21:38:53 -06:00
Dan Sheppard
ff4e6bd166 Update tests
Add docstrings
Consolidate tests
2020-02-10 21:37:40 -06:00
Jeremy Stretch
5ea30c8628 Replace ChainedModelChoiceField with DynamicModelChoiceField 2020-02-10 17:23:52 -05:00
Jeremy Stretch
a54fcda781 Merge pull request #4133 from netbox-community/4083-serializer-null-choices
Fixes #4083: Permit nullifying applicable choice fields via API requests
2020-02-10 15:16:38 -05:00
Jeremy Stretch
7388fa3556 Fixes #4083: Permit nullifying applicable choice fields via API requests 2020-02-10 15:10:33 -05:00
Jeremy Stretch
a966a4c8ac Closes #4129: Add individual deletion views for device type components 2020-02-10 11:43:51 -05:00
Jeremy Stretch
ebef48e472 Merge pull request #4075 from kobayashi/3507-filter-by-devices
Fixes #3507: Filtering IP by multiple devices
2020-02-10 11:11:18 -05:00
Jeremy Stretch
26ca6b4a84 #4108: Fix null choice population 2020-02-10 10:57:23 -05:00
Jeremy Stretch
3da6f22479 Merge pull request #4128 from netbox-community/4108-apiselect-performance
Closes #4108: Extraneous queryset evaluation by FilterChoiceFields
2020-02-10 10:26:49 -05:00
Jeremy Stretch
d4789b7c9e Changelog for #4108 2020-02-10 10:20:06 -05:00
Jeremy Stretch
5008526db1 Set a default self.to_field_name for FilterChoiceField 2020-02-10 10:08:20 -05:00
Jeremy Stretch
009fc4f301 Remove custom template for APISelect widget 2020-02-10 10:02:42 -05:00
Jeremy Stretch
55f5ede970 Standardize usage of FilterChoiceField 2020-02-10 09:58:33 -05:00
Jeremy Stretch
5ddfde2214 Clean up unneeded code relevant to FilterChoiceField 2020-02-10 09:44:19 -05:00
John Anderson
9284e83270 py3.5 compatibility 2020-02-09 21:32:45 -05:00
John Anderson
a6b43b30e9 functional dynamic filter lookups 2020-02-09 17:46:21 -05:00
John Anderson
a311002141 initial work on dynamic lookup expressions 2020-02-09 03:20:59 -05:00
kobayashi
505cb9cab8 Enabled filtering virtual chassis devices 2020-02-09 00:58:54 -05:00
kobayashi
d5c4a9d159 Fixes #3507: Filtering IP by multiple devices 2020-02-09 00:42:01 -05:00
Saria Hajjar
26ddd96e30 Cleaned duplicate code 2020-02-08 16:18:58 +00:00
Saria Hajjar
f0c83e168e Merge branch 'develop' into 3840-limit-vlan-choices 2020-02-08 16:14:10 +00:00
Jeremy Stretch
885ea8a4d5 Override get_bound_field() on FilterChoiceFieldMixin to restrict the queryset of bound fields 2020-02-07 18:04:40 -05:00
Jeremy Stretch
202a0a0e73 Merge pull request #4122 from netbox-community/3799-natural-ordering-field
Closes #3799: Remove NaturalOrderingManager
2020-02-07 16:26:45 -05:00
Jeremy Stretch
5bfd65b5fe Changelog for #3799 2020-02-07 16:18:15 -05:00
Jeremy Stretch
7c74d2ca65 Convert interface models to use NaturalOrderingField 2020-02-07 15:58:03 -05:00
Jeremy Stretch
9adeed55fb Update table field ordering 2020-02-07 12:44:51 -05:00
Jeremy Stretch
12c7d83a91 Fix PowerOutlet migrations 2020-02-07 12:43:53 -05:00
Jeremy Stretch
dc1b7874ff Store empty names as null 2020-02-07 12:24:38 -05:00
Jeremy Stretch
c72a353733 Enable reverse migration 2020-02-07 12:23:52 -05:00
Jeremy Stretch
35511cfdc1 Remove NaturalOrderingManager 2020-02-07 11:59:32 -05:00
Jeremy Stretch
099c446f38 Convert remaining DCIM models to use NaturalOrderingField 2020-02-07 11:59:16 -05:00
Jeremy Stretch
705c352885 Convert device component templates to use NaturalOrderingField 2020-02-07 11:42:12 -05:00
Jeremy Stretch
12d09e2274 Convert device components to use NaturalOrderingField 2020-02-07 11:36:58 -05:00
Jeremy Stretch
b271fd32bd Introduce NaturalOrderingField 2020-02-07 11:36:22 -05:00
Jeremy Stretch
b3c2b78e8a Chnagelog for #4100 2020-02-07 09:24:51 -05:00
Jeremy Stretch
97a89948c8 Merge pull request #4115 from hSaria/4100-interface-filter-device
Fixes #4100: Added device field to device components filter forms
2020-02-07 09:20:49 -05:00
Jeremy Stretch
1e61fcb485 Merge pull request #4117 from netbox-community/4116-component-bulk-actions
Closes #4116: Enable bulk edit and delete functions for device component list views
2020-02-06 22:03:25 -05:00
Jeremy Stretch
4cc9f2f67d Changelog for #4116 2020-02-06 21:52:10 -05:00
Jeremy Stretch
52257467c3 Tweak bulk edit views to dynamically remove device-dependent fields 2020-02-06 21:44:28 -05:00
Jeremy Stretch
4563749fd9 Enable bulk edit/delete views for all device components 2020-02-06 20:58:14 -05:00
Jeremy Stretch
6d242ec348 Correct typo 2020-02-06 20:46:19 -05:00
Saria Hajjar
d0e00162ed Account for header height 2020-02-07 00:14:05 +00:00
Saria Hajjar
21f2e0b131 Changed navbar scrollbar to auto 2020-02-06 23:30:58 +00:00
hSaria
6ac8d41323 Merge branch 'develop' into 3995-navbar-overflow 2020-02-06 23:18:24 +00:00
Saria Hajjar
bb9e1ad857 Fixes #4100: Added device field to device components filter forms 2020-02-06 23:10:38 +00:00
Jeremy Stretch
98de88de90 Standardize URL paths for VM interfaces 2020-02-06 17:40:04 -05:00
Jeremy Stretch
c571aa68be Changelog for #4113 2020-02-06 16:05:30 -05:00
Jeremy Stretch
091d860ae5 Merge pull request #4114 from netbox-community/4113-component-bulk-editing
Closes #4113: Add bulk edit functionality for device type components
2020-02-06 16:03:37 -05:00
Jeremy Stretch
b5344b0aa7 Fix table links for adding new components 2020-02-06 15:54:52 -05:00
Jeremy Stretch
17e0054941 Fix up bulk editing forms 2020-02-06 15:51:51 -05:00
Jeremy Stretch
1b5969a5ee Add tests for DeviceType component bulk edit views 2020-02-06 15:33:47 -05:00
Jeremy Stretch
3378287b0c Add bulk edit views for DeviceType components 2020-02-06 15:29:10 -05:00
Jeremy Stretch
077d692d6d Merge pull request #4112 from netbox-community/4109-devicetype-component-tests
Closes #4109: Add view tests for device component templates
2020-02-06 14:57:10 -05:00
Jeremy Stretch
5620fdc63e Add tests for device type component views 2020-02-06 14:39:36 -05:00
Jeremy Stretch
f7ca97d51f Fix bulk edit buttons 2020-02-06 13:19:25 -05:00
Jeremy Stretch
d400f92ee8 Overhaul device component template creation views/URLs 2020-02-06 13:13:40 -05:00
Jeremy Stretch
c1792653cc Rename device component edit URLs 2020-02-06 12:18:53 -05:00
Jeremy Stretch
aebfb143e0 Rename component template deletion URLs 2020-02-06 12:16:28 -05:00
Jeremy Stretch
ef4ea06f5d Reorganized device component URLs (again) 2020-02-06 11:51:27 -05:00
Jeremy Stretch
85729f3df8 Simplify help_text for ExpandableNameField 2020-02-06 11:44:29 -05:00
Jeremy Stretch
a2475ee501 Remove obsolete ComponentForm 2020-02-06 11:36:25 -05:00
Jeremy Stretch
71601aad39 Replace HiddenInput widget on device component creation forms with APISelect 2020-02-06 11:29:50 -05:00
Jeremy Stretch
c1c8b5e816 Introduce InventoryItemCreateView to bring inventory items up to par with other components 2020-02-06 10:59:13 -05:00
Jeremy Stretch
2296cdc222 Fixes #4090: Render URL custom fields as links under object view 2020-02-05 17:08:39 -05:00
Jeremy Stretch
070b41e694 Reduce number of changelog entries to improve page loading time 2020-02-05 17:01:46 -05:00
Jeremy Stretch
d04626e75f Fixes #4099: Linkify interfaces on global interfaces list 2020-02-05 16:52:42 -05:00
Jeremy Stretch
68738e683a Fixes #4091: Fix filtering of objects by custom fields using UI search form 2020-02-05 16:39:42 -05:00
Jeremy Stretch
3f2c74f5e7 Merge pull request #4096 from elju/patch-1
Updated forms.py to match current naming (Fix for #4095)
2020-02-05 16:25:34 -05:00
Jeremy Stretch
a58bbccfd3 Fixes #4094: Convert unnecessary regular expressions to strings in URL patterns 2020-02-05 16:12:48 -05:00
Jeremy Stretch
b1e78fa3c4 Merge pull request #4098 from netbox-community/4086-device-component-urls
Closes #4086: Rename device component create/edit/delete URLs
2020-02-05 16:03:14 -05:00
Jeremy Stretch
0d3ff664b6 Move model_to_dict() into assertInstanceEqual(); clean up test data 2020-02-05 15:47:50 -05:00
Jeremy Stretch
b0c0ad7c82 Adapt component creation forms to infer parent device/VM from initial or bound data 2020-02-05 15:31:30 -05:00
Jeremy Stretch
0ad613e6b4 Enable bulk creation tests for device components 2020-02-05 15:22:57 -05:00
Jeremy Stretch
75906f7591 Move component bulk creation views to new URLs 2020-02-05 12:36:38 -05:00
El Ju
c49d977379 Updated forms.py to match current naming 2020-02-05 17:26:44 +01:00
Jeremy Stretch
6b9fa5e76f Enable tests for component bulk edit views 2020-02-05 11:14:07 -05:00
Jeremy Stretch
57a0cf0a33 Fix component bulk edit views 2020-02-05 10:28:39 -05:00
Jeremy Stretch
f8ce67c69f Tweak BulkEditView to improve handling of initial PK values 2020-02-05 09:56:49 -05:00
Jeremy Stretch
d0295f089d Fixes #4089: Selection of power outlet type during bulk update is optional 2020-02-04 20:49:42 -05:00
Jeremy Stretch
f805b57778 Adapt BulkEditView to not require a parent object for device components 2020-02-04 18:08:40 -05:00
Jeremy Stretch
3e79b9d26a Add InterfaceTestCase for virtual machines 2020-02-04 16:40:18 -05:00
Jeremy Stretch
c1639b7781 Move component bulk delete views to new URLs 2020-02-04 16:06:55 -05:00
Jeremy Stretch
fca347e49e Reorder URLs 2020-02-04 15:41:15 -05:00
Jeremy Stretch
32623148dc Post-release version bump 2020-02-04 15:06:58 -05:00
Jeremy Stretch
68fbd9b017 Merge pull request #4088 from netbox-community/develop
Release v2.7.4
2020-02-04 15:04:34 -05:00
Jeremy Stretch
11d67509e0 Release v2.7.4 2020-02-04 14:57:12 -05:00
Jeremy Stretch
c96fc6e21a Merge pull request #4087 from netbox-community/4085-dcim-component-view-tests
Closes #4085: Standardize device component view tests
2020-02-04 14:51:48 -05:00
Jeremy Stretch
763d9b9cf7 Convert all DCIM component view tests to use StandardTestCases 2020-02-04 14:25:02 -05:00
Jeremy Stretch
bece1155ee Introduce create_test_device() to reduce test setup boilerplate 2020-02-04 11:58:52 -05:00
Jeremy Stretch
cbe090cd3c Fixes #4084: Fix exception when creating an interface with tagged VLANs 2020-02-04 11:47:14 -05:00
Jeremy Stretch
c3a6a4520a #3894 follow-up 2020-02-04 10:09:22 -05:00
Jeremy Stretch
67e427403f Merge pull request #3894 from hSaria/2921-tags-select2
Fixes #2921: Replace tags filter with Select2 widget
2020-02-04 09:38:14 -05:00
Jeremy Stretch
0d41d12267 Merge branch 'develop' into 2921-tags-select2 2020-02-04 09:37:31 -05:00
Jeremy Stretch
efb7f151ec Changelog for #3313 2020-02-03 16:20:29 -05:00
Jeremy Stretch
fe22a8d0af Merge pull request #4011 from hSaria/3313-config-context-gui
Fixes #3313: YAML-format the config context in the GUI
2020-02-03 16:13:58 -05:00
Jeremy Stretch
ed99158391 Merge branch 'develop' into 3313-config-context-gui 2020-02-03 16:07:15 -05:00
Jeremy Stretch
b0f7feefa8 Changelog for #3886 2020-02-03 16:04:25 -05:00
Jeremy Stretch
fcd8e93e2e Merge pull request #4014 from hSaria/3886-config-context-cluster
Fixes #3886: Config context cluster (group)
2020-02-03 16:02:56 -05:00
Jeremy Stretch
173c530fab Merge pull request #4064 from netbox-community/3961-change-systemd-instructions
Fixes: #3961 - Update migrate-to-systemd.md documentation
2020-02-03 15:46:20 -05:00
Jeremy Stretch
0a87df48ab Update GitHub issue templates 2020-02-03 14:45:36 -05:00
Jeremy Stretch
eef79e1443 Fixes #4079: Fix assignment of power panel when bulk editing power feeds 2020-02-03 14:34:47 -05:00
Jeremy Stretch
91929aae1b Merge pull request #4080 from netbox-community/4077-view-tests
Closes #4077: Add tests for bulk edit/delete views
2020-02-03 14:32:56 -05:00
Jeremy Stretch
3f13441a5d Add view tests for power panels and power feeds 2020-02-03 14:25:06 -05:00
Jeremy Stretch
7b4f3e8261 Correct view for PowerFeed creation URL 2020-02-03 14:24:32 -05:00
Jeremy Stretch
d431efb7d4 Add bulk edit view tests 2020-02-03 13:53:19 -05:00
Jeremy Stretch
4aa694f044 Skip non-model fields when applying bulk changes 2020-02-03 13:07:46 -05:00
Jeremy Stretch
c3bd1881f5 Correct nullable_fields for ServiceBulkEditForm 2020-02-03 12:25:20 -05:00
Jeremy Stretch
a4aadf730c Correct default_return_url for TagBulkEditView 2020-02-03 11:59:43 -05:00
Jeremy Stretch
24ab082674 Add bulk delete view tests 2020-02-03 10:04:09 -05:00
Saria Hajjar
bceaa4a9a4 Corrected models for cluster and cluster group fields 2020-02-02 23:37:01 +00:00
Jeremy Stretch
5386ed438e Extend standard view test case to validate built-in CSV export 2020-01-31 17:09:50 -05:00
Jeremy Stretch
2ea95941e2 Removed obsolete CSV headers from DeviceType (export is now YAML-based) 2020-01-31 17:08:38 -05:00
Jeremy Stretch
f632b5bc29 Fixes #4067: Correct permission checked when creating a rack (vs. editing) 2020-01-31 16:12:46 -05:00
Jeremy Stretch
cea1e3d090 Fixes #4071: Enforce "view tag" permission on individual tag view 2020-01-31 16:10:16 -05:00
Jeremy Stretch
ce081a6e15 Merge pull request #4072 from netbox-community/4000-view-tests
Closes #4000: Add tests for the create, edit, and delete views of all models
2020-01-31 16:07:32 -05:00
Jeremy Stretch
eb9538d6da Clean up imports 2020-01-31 15:59:26 -05:00
Jeremy Stretch
e50eab2342 Convert virtualization view tests to use StandardTestCases 2020-01-31 15:57:33 -05:00
Jeremy Stretch
5517145ae3 Convert tenancy view tests to use StandardTestCases 2020-01-31 15:44:10 -05:00
Jeremy Stretch
e8e39dc5e3 Convert secrets view tests to use StandardTestCases 2020-01-31 15:37:58 -05:00
Jeremy Stretch
b361cb00f2 Convert IPAM view tests to use StandardTestCases 2020-01-31 15:19:10 -05:00
Jeremy Stretch
3668aa21fe Fix DeviceTypeTestCase permissions assignment for custom tests 2020-01-31 14:29:56 -05:00
Jeremy Stretch
8881bba696 Suppress tag view test until #4071 is fixed 2020-01-31 14:22:56 -05:00
Jeremy Stretch
250bda2bf6 Extend and correct evaluation of view permissions 2020-01-31 14:13:30 -05:00
Jeremy Stretch
936e3424bb Refactor model_to_dict() to better handle tags 2020-01-31 14:12:48 -05:00
Jeremy Stretch
ab7b921641 Convert extras view tests to StandardTestCases 2020-01-31 13:45:09 -05:00
Jeremy Stretch
c9d0dcecf3 model_to_dict(): Convert object lists to PK lists 2020-01-31 13:44:34 -05:00
Jeremy Stretch
86ef739c12 Migrate (most) DCIM view tests to use StandardTestCases 2020-01-31 12:32:33 -05:00
Jeremy Stretch
c14496d0c4 DeviceForm.manufacturer should not be a required field 2020-01-31 12:28:50 -05:00
Jeremy Stretch
a208cbdf0b model_to_dict(): Remove fields that start with an underscore 2020-01-31 12:14:51 -05:00
Jeremy Stretch
6a17be740b post_data(): Ignore iterables 2020-01-31 11:50:12 -05:00
Daniel Sheppard
8e9a0eeef0 Fix PEP8 errors and document functions 2020-01-31 10:05:57 -06:00
Daniel Sheppard
d746448d7d Fixes: #3961 - Edit migrate-to-systemd.md to closely match installation instructions under 3-http-daemon.md 2020-01-31 09:39:27 -06:00
Jeremy Stretch
7daf1df22d Add _get_url() for View test case 2020-01-31 10:30:13 -05:00
Jeremy Stretch
78d43a5d66 Move form/CSV data declaration under setUpTestData 2020-01-31 09:27:41 -05:00
Jeremy Stretch
939b5f2e29 Reorganize test classes to prevent unittest from running the base TestCases 2020-01-31 09:00:01 -05:00
Saria Hajjar
0d18c296a9 Set default config context format to JSON to maintain existing behavior 2020-01-31 11:11:42 +00:00
Jeremy Stretch
98cce7eee4 Added ViewTestCase (WIP) 2020-01-30 21:57:20 -05:00
Jeremy Stretch
e01c984c01 Introduced a custom model_to_dict() 2020-01-30 20:48:26 -05:00
Jeremy Stretch
4522a285e0 Fix headings 2020-01-30 20:05:27 -05:00
Jeremy Stretch
a44c4d14e4 Convert view tests under extras to the new TestCase 2020-01-30 18:13:02 -05:00
Jeremy Stretch
67fafb2b9d Use assertHttpStatus for evaluating HTTP response codes 2020-01-30 18:08:25 -05:00
Jeremy Stretch
179abcc79d Refactor APITestCase to subclass TestCase 2020-01-30 17:57:34 -05:00
Jeremy Stretch
316c0b6168 Merge pull request #4053 from netbox-community/4051-disable-makemigrations
Closes #4051: Disable the makemigrations management command
2020-01-30 16:50:40 -05:00
Jeremy Stretch
ac27759250 Merge branch 'develop' into 4051-disable-makemigrations 2020-01-30 16:49:15 -05:00
Jeremy Stretch
c8c9f78829 Documented the new DEVELOPER configuration parameter 2020-01-30 16:47:44 -05:00
Jeremy Stretch
61ac7c44ba Migrate view tests to use new TestCase class 2020-01-30 16:37:40 -05:00
Jeremy Stretch
43b2c36066 Introduced a custom TestCase 2020-01-30 16:19:51 -05:00
Jeremy Stretch
1a25f5a7f2 Fixes #4030: Fix exception when bulk editing interfaces (revised) 2020-01-30 15:12:10 -05:00
Jeremy Stretch
b9765b857d Merge pull request #4050 from netbox-community/568-customfield-csv-import
Closes #568: Extend CSV import to support custom fields
2020-01-30 14:04:57 -05:00
agrrajag
d0d2af4cab Update 3-http-daemon.md (#4055)
There was no documentation to move back into the netbox folder after installing/configuring nginx. You would move into nginx on line 42 then try and figure out why you couldn't copy gunicorn on line 113.
2020-01-30 14:00:37 -05:00
Jeremy Stretch
4b02d294ce Fixes #4052: Fix error when bulk importing interfaces to virtual machines 2020-01-30 13:55:39 -05:00
Jeremy Stretch
d9b8bc0422 Fix VM interfaces table header alignment 2020-01-30 13:39:50 -05:00
Saria Hajjar
ace8fac2c1 Removed changelog to avoid merge conflicts 2020-01-30 18:29:08 +00:00
Saria Hajjar
ae95b159bc Virtualization interfaces VLAN filtering 2020-01-30 18:26:30 +00:00
Saria Hajjar
ff822743cc Corrected linter warning 2020-01-30 18:10:39 +00:00
Saria Hajjar
7897ebb2ed Corrected changelog 2020-01-30 17:52:30 +00:00
Saria Hajjar
52f7ef4864 Merge branch 'develop' into 2921-tags-select2 2020-01-30 17:51:55 +00:00
Saria Hajjar
5879671971 Avoid overriding private attribute in super 2020-01-30 17:49:42 +00:00
Saria Hajjar
2375d66f75 Added TagFilterField to device components' filter forms 2020-01-30 17:45:03 +00:00
Jeremy Stretch
923c2728b3 Fixes #4056: Repair schema migration for Rack.outer_unit (from #3569) 2020-01-30 12:08:40 -05:00
Jeremy Stretch
4ba2579936 Closes #4051: Disable the makemigrations management command 2020-01-30 10:12:53 -05:00
John Anderson
8274903985 version bump for v2.8.0 2020-01-29 16:46:44 -05:00
Jeremy Stretch
03087e9d01 Fixes #4049: Restore missing tags field in IPAM service serializer 2020-01-29 16:22:06 -05:00
Jeremy Stretch
eafeaab014 Add tests for invalid import data 2020-01-29 16:07:32 -05:00
Jeremy Stretch
c75315fda6 Extend CSV import test 2020-01-29 15:34:55 -05:00
Jeremy Stretch
193435b554 Enable CSV import for custom fields 2020-01-29 14:29:47 -05:00
Dan Sheppard
d30d79b4e3 Cleanup Imports 2020-01-29 12:55:19 -06:00
Dan Sheppard
23155551d1 Remove complex ordering for IP addresses
After review complex ordering does not appear to be required
2020-01-29 12:54:55 -06:00
Jeremy Stretch
e6b018909d Introduced CustomFieldModelCSVForm 2020-01-29 13:53:26 -05:00
Dan Sheppard
22228b58f1 #4034 - Create tests for addresses 2020-01-29 12:52:48 -06:00
Jeremy Stretch
35f2291edc Fix assignment of initial CustomField values when editing an object 2020-01-29 13:31:36 -05:00
Jeremy Stretch
c3f86456d6 Remove get_custom_fields_for_model() 2020-01-29 12:12:47 -05:00
Jeremy Stretch
585ea71d1a Move form field generation logic to CustomField class 2020-01-29 11:44:37 -05:00
Jeremy Stretch
9929a05bfe Update release notes 2020-01-29 11:00:46 -05:00
Jeremy Stretch
f12199dcb5 Rename and simplify CustomFieldChoiceField 2020-01-29 11:00:03 -05:00
Jeremy Stretch
bc7cf63958 Rename and refactor CustomFieldForm 2020-01-29 10:59:18 -05:00
Jeremy Stretch
db3b4505c1 Merge pull request #3885 from hSaria/568-csv-import-cf
Fixes #568: CSV import/export of custom fields
2020-01-29 10:11:40 -05:00
Jeremy Stretch
943c644dc9 Merge pull request #4037 from newlandk/patch-1
Fixes #4039: LDAP Documentation
2020-01-29 10:09:07 -05:00
Jeremy Stretch
e0d538ad31 Fixes #4043: Fix toggling of required fields in custom scripts 2020-01-29 09:40:17 -05:00
Jeremy Stretch
1849473469 Merge pull request #4023 from smutel/UpdateDoc
Fixes #4024: Update nginx documentation
2020-01-29 09:29:50 -05:00
Dan Sheppard
084a68f6d1 #4034 - Create tests for prefixes 2020-01-28 22:11:31 -06:00
Kevin Newland
6fefa3c7dd update ldap documentation
use new ldap cache configuration in documentation
https://github.com/netbox-community/netbox/blob/develop/netbox/netbox/settings.py#L360
2020-01-28 18:34:26 -06:00
Jeremy Stretch
4629cda9ad Post-release version bump 2020-01-28 16:42:33 -05:00
Jeremy Stretch
3143f75a38 Merge pull request #4035 from netbox-community/develop
Release v2.7.3
2020-01-28 16:39:09 -05:00
Jeremy Stretch
be716a3345 Release v2.7.3 2020-01-28 16:33:55 -05:00
Jeremy Stretch
8de9f52151 Fixes #4033: Restore missing comments field label of various bulk edit forms 2020-01-28 16:09:10 -05:00
Jeremy Stretch
0a11fc1221 Fixes #4030: Fix exception when setting interfaces to tagged mode in bulk 2020-01-28 14:19:29 -05:00
Jeremy Stretch
ede576a2ae Changelog for #4022 2020-01-28 13:55:44 -05:00
Jeremy Stretch
12cf69f7e1 Merge pull request #4022 from hSaria/4010-interface-ip-filter
Fixes #4010: Fixes IP addresses table when filtering interfaces
2020-01-28 13:54:21 -05:00
Jeremy Stretch
2a4ccae113 Merge pull request #4031 from kobayashi/3978-add-vrf-filter
Fixes #3978: VRF filtering for NAT IP search
2020-01-28 13:46:54 -05:00
Jeremy Stretch
77292050d4 Changelog for #4025 2020-01-28 13:38:03 -05:00
Jeremy Stretch
e7ef142620 Merge pull request #4026 from hSaria/4025-cable-status-class
Fixes #4025: Cable status class
2020-01-28 13:34:46 -05:00
Jeremy Stretch
07d8476cf5 Merge pull request #4032 from netbox-community/4027-ipaddress-migration
Fixes #4027: Repair schema migration for IP addresses with DHCP status
2020-01-28 13:32:17 -05:00
Jeremy Stretch
9b9e568446 Fixes #4027: Repair schema migration for #3569 to convert IP addresses with DHCP status 2020-01-28 12:49:00 -05:00
Saria Hajjar
8849f4b0a5 Added cluster groups and clusters to serializers 2020-01-28 17:30:26 +00:00
kobayashi
3c5346f60a Fixes #3978: VRF filtering for NAT IP search 2020-01-28 10:22:28 -05:00
Jeremy Stretch
8d547e9906 Fixes #4028: Correct URL patterns to match Unicode characters in tag slugs 2020-01-28 09:47:33 -05:00
Saria Hajjar
720bd87292 Fixed interface mark connected/planned buttons 2020-01-27 22:56:25 +00:00
Saria Hajjar
8306976b3e Removed erroneous double-space 2020-01-27 22:49:36 +00:00
Saria Hajjar
3bce8e9716 Fixes #4025: Cable status class 2020-01-27 22:44:38 +00:00
Jeremy Stretch
9c4f1d5795 Changelog for #3338 2020-01-27 17:24:00 -05:00
Jeremy Stretch
93fa00b673 #3338: Prefetch termination devices to avoid extra database queries 2020-01-27 17:22:31 -05:00
Jeremy Stretch
49a6332d37 Merge pull request #4012 from hSaria/3338-api-circuit-term
Fixes #3338: Added termination A and Z to the circuit
2020-01-27 17:14:40 -05:00
Saria Hajjar
5c5b9c95aa Interface selector restricted to only interface 2020-01-27 22:07:42 +00:00
Jeremy Stretch
7abcc7acaa Merge pull request #3993 from hSaria/3935-swagger-default-info
Fixes #3935: Swagger DEFAULT_INFO
2020-01-27 16:58:03 -05:00
Saria Hajjar
d0f127e575 Fixes #3338: Added termination A and Z to the circuit 2020-01-27 21:53:10 +00:00
Samuel Mutel
73b35e72d8 Update nginx documentation 2020-01-27 21:10:10 +01:00
Jeremy Stretch
00b50f9c65 Remove obsolete constants 2020-01-27 12:34:52 -05:00
Saria Hajjar
46d0e88da3 Fixes #4010: Fixes IP addresses table when filtering interfaces 2020-01-27 15:49:15 +00:00
Jeremy Stretch
1901f63b4c Update changelog 2020-01-27 09:45:18 -05:00
Jeremy Stretch
2662bd0ad8 Merge pull request #4017 from hSaria/4016-duplicate-tenant-field
Fixes #4016: Removed duplicate tenant field for cluster edit form
2020-01-27 09:36:36 -05:00
Jeremy Stretch
27d70b6b51 Merge pull request #4021 from hellerve/veit/fix-4019
SVG Elevation: Add borders on the rear of devices as well
2020-01-27 09:32:53 -05:00
hellerve
011280b0bf dcim: add borders on the rear of devices as well 2020-01-27 13:13:07 +01:00
Saria Hajjar
4e4a05d3b9 Fixes #4016: Removed duplicate tenant field for cluster edit form 2020-01-26 12:52:18 +00:00
Saria Hajjar
4abd3866ab Fixes #3886: Config context cluster (group) 2020-01-26 10:53:58 +00:00
Saria Hajjar
7cfdc5188c Corrected ConfigContext data 2020-01-25 17:55:01 +00:00
Saria Hajjar
265d5c87e7 Format for local and source contexts 2020-01-25 16:12:37 +00:00
Saria Hajjar
724d3b8894 Fixes #3313: YAML-format the config context in the GUI 2020-01-25 15:56:24 +00:00
Saria Hajjar
8ec0ad96bd Formatting 2020-01-24 22:20:41 +00:00
Saria Hajjar
c22024b618 Added CSV import test 2020-01-24 22:15:09 +00:00
Jeremy Stretch
7a548e806d Merge pull request #4009 from netbox-community/4006-remove-fixtures
Closes #4006: remove test fixtures
2020-01-24 16:36:41 -05:00
Jeremy Stretch
47962ea732 Adapt form tests to work without fixture data 2020-01-24 16:30:43 -05:00
Jeremy Stretch
eb4c2e5d7f Remove obsolete fixtures files 2020-01-24 16:29:23 -05:00
hSaria
ca035a72bd Merge branch 'develop' into 2921-tags-select2 2020-01-24 20:56:36 +00:00
hSaria
deb653cbf3 Merge branch 'develop' into 3840-limit-vlan-choices 2020-01-24 20:54:56 +00:00
Jeremy Stretch
a13bddde58 Refactor prefix and IP mask length choice generation to reference constants 2020-01-24 15:50:45 -05:00
Jeremy Stretch
66330418cb Remove obsolete IP_FAMILY_CHOICES constant 2020-01-24 15:40:03 -05:00
Jeremy Stretch
151943bfbc Merge pull request #4007 from netbox-community/3880-use-constants
Closes #3880: Define constants for arbitrary values
2020-01-24 15:29:38 -05:00
Jeremy Stretch
35cbee5107 Fixes #4008: Toggle rack elevation face using front/rear strings 2020-01-24 15:28:15 -05:00
Jeremy Stretch
c6473d654d Add explanatory text for constants 2020-01-24 15:03:38 -05:00
Jeremy Stretch
096814dc33 #3880: Define constants for arbitrary values 2020-01-24 14:42:57 -05:00
Jeremy Stretch
45b66b174c Merge pull request #3955 from kobayashi/3950-not-retain-device-type
Fixes: #3950 "Create and Add Another" does retain device type
2020-01-24 13:49:46 -05:00
Jeremy Stretch
0ec091ffe1 Merge branch 'develop' into 3950-not-retain-device-type 2020-01-24 13:49:30 -05:00
Jeremy Stretch
f24e7652a8 Add changelog for #3982 2020-01-24 12:10:38 -05:00
Jeremy Stretch
9f58c27fcf Merge pull request #4002 from hellerve/veit/fix-3982
Read reserved tooltip on rack elevations
2020-01-24 12:09:39 -05:00
Jeremy Stretch
d3463b596a Closes #4005: Include timezone context in webhook timestamps 2020-01-24 12:00:24 -05:00
kobayashi
66d5cc47a5 Fixes #3950: Cloned Device Form does not retain device type 2020-01-24 03:30:24 -05:00
kobayashi
9694bacb69 3950 not retain device type 2020-01-24 03:13:50 -05:00
hellerve
fcba2baf42 dcim: fix #3982 by readding reserved tooltip 2020-01-24 08:45:55 +01:00
Jeremy Stretch
629712142f Fixes #3999: Do not filter child results by null if non-required parent fields are blank 2020-01-23 17:11:45 -05:00
Jeremy Stretch
cdecf93f00 Add tests for ChoiceSet 2020-01-23 16:19:34 -05:00
Jeremy Stretch
fe402331f2 Handle grouped choices when returning ChoiceSet values 2020-01-23 16:16:52 -05:00
Jeremy Stretch
fcbbb36afc Add tests for home and search views 2020-01-23 15:41:09 -05:00
hSaria
6ce38ffa0f Merge branch 'develop' into 3995-navbar-overflow 2020-01-23 20:36:35 +00:00
Saria Hajjar
09faaff849 Fixes #3995: Navbar scroll when overflowing 2020-01-23 20:34:06 +00:00
hSaria
06398a9ac6 Merge branch 'develop' into 568-csv-import-cf 2020-01-23 20:27:07 +00:00
Saria Hajjar
bed08a7b07 Use model's get_custom_fields 2020-01-23 20:26:21 +00:00
Jeremy Stretch
2e69037c29 Closes #3952: Add test for webhooks_worker; introduce generate_signature() 2020-01-23 15:05:27 -05:00
Saria Hajjar
8f86244b4f Cleaned the CustomField choice field 2020-01-23 18:54:37 +00:00
Saria Hajjar
0a5eecd0e3 Explicitly use the value of the choice, instead of relying on __str__ 2020-01-23 17:37:51 +00:00
Saria Hajjar
0ab19d723d Moved the header join logic after the custom fields are added 2020-01-23 17:18:58 +00:00
Saria Hajjar
9128435113 Removed CustomFieldForm class from models without custom fields 2020-01-23 17:03:14 +00:00
Saria Hajjar
1b26afdfbb Fixes #3935: Swagger DEFAULT_INFO 2020-01-23 14:26:04 +00:00
Jeremy Stretch
7b517abdb6 Fixes #3989: Correct HTTP content type assignment for webhooks 2020-01-22 20:33:57 -05:00
Jeremy Stretch
2445d1896b Merge pull request #3988 from netbox-community/3509-ipaddress-script-vars
Closes #3509: Add IP address vars for custom scripts
2020-01-22 17:56:00 -05:00
Jeremy Stretch
72d1fe0cd7 Changelog for #3509 2020-01-22 17:49:03 -05:00
Jeremy Stretch
b7e71f9f39 Add tests for IP address vars 2020-01-22 17:48:03 -05:00
Jeremy Stretch
f41564b578 Introduce IPAddressVar and IPAddressWithMaskVar 2020-01-22 17:16:40 -05:00
Jeremy Stretch
aa56c020ab Move prefix_validator() to ipam.validators 2020-01-22 16:33:34 -05:00
Jeremy Stretch
ba6df87d10 Move min/max prefix length validators to ipam.validators 2020-01-22 16:26:06 -05:00
Jeremy Stretch
5e7fbc4e42 Merge pull request #3987 from netbox-community/3310-cableform-initial-data
Closes #3310: Pre-select site/rack for B side when creating a new cable
2020-01-22 16:14:17 -05:00
Jeremy Stretch
f826e15603 Closes #3310: Pre-select site/rack for B side when creating a new cable 2020-01-22 16:07:09 -05:00
Jeremy Stretch
b7dea5a9f7 Fixes #3983: Permit the creation of multiple unnamed devices 2020-01-22 09:26:49 -05:00
Jeremy Stretch
ddd9f86031 Add tests for rack elevation API endpoint 2020-01-21 17:36:38 -05:00
Jeremy Stretch
1c13a79961 Suppress extraneous test output 2020-01-21 17:23:50 -05:00
Jeremy Stretch
03436b729d Add test for device graphs API endpoint 2020-01-21 17:11:26 -05:00
Jeremy Stretch
d123664503 Add tests for front/rear port API endpoints 2020-01-21 17:00:30 -05:00
hSaria
bdfead6265 Merge branch 'develop' into 568-csv-import-cf 2020-01-21 21:30:38 +00:00
hSaria
77c8bcef6d Merge branch 'develop' into 2921-tags-select2 2020-01-21 21:29:21 +00:00
hSaria
2684f86594 Merge branch 'develop' into 3840-limit-vlan-choices 2020-01-21 21:27:42 +00:00
Jeremy Stretch
10917123fd Add tests for cable tracing endpoints 2020-01-21 16:24:03 -05:00
Jeremy Stretch
b06bed368b Post-release version bump 2020-01-21 15:13:49 -05:00
Jeremy Stretch
e13d4ffe60 Merge pull request #3980 from netbox-community/develop
Release v2.7.2
2020-01-21 15:12:00 -05:00
Jeremy Stretch
2581a55214 Release v2.7.2 2020-01-21 15:04:09 -05:00
Jeremy Stretch
aa4b89f751 Changelog for #3965 2020-01-21 13:56:25 -05:00
Jeremy Stretch
838aaffc4b Merge pull request #3971 from hellerve/veit/fix-3965
Display occupied rack units correctly
2020-01-21 13:53:21 -05:00
Jeremy Stretch
9dfd0e5b40 Merge pull request #3957 from kobayashi/3923-validate-key-format
Fixes: #3923 validate key format
2020-01-21 13:27:35 -05:00
Jeremy Stretch
3357c050c4 Merge pull request #3959 from hSaria/3135-document-power
Fixes #3135: Documented power modelling
2020-01-21 13:15:57 -05:00
Jeremy Stretch
60c5418516 Add tests for device component filtering by region/site 2020-01-21 12:28:22 -05:00
Jeremy Stretch
48b4695ebe Fixes #3966: Fix filtering of device components by region/site 2020-01-21 12:27:52 -05:00
Jeremy Stretch
737b05d12b Changelog for #3964 2020-01-21 11:41:44 -05:00
Jeremy Stretch
1d0546b3d1 Merge pull request #3972 from hellerve/veit/fix-3964
Display borders around devices in rack elevations
2020-01-21 11:40:20 -05:00
Jeremy Stretch
a7a166a9cb Merge branch 'develop' into veit/fix-3964 2020-01-21 11:39:45 -05:00
Jeremy Stretch
74e1c08324 Changelog for #3963 2020-01-21 11:35:05 -05:00
Jeremy Stretch
007de40ada Merge pull request #3973 from hellerve/veit/fix-3963
dcim: fix tooltips in svg rack display
2020-01-21 11:33:14 -05:00
hellerve
e184eb3521 dcim: make pep happy 2020-01-21 17:01:48 +01:00
hellerve
e421c15bdd dcim: merge elevations as necessary 2020-01-21 16:56:06 +01:00
hellerve
469a088874 dcim: fix tooltips in svg rack display 2020-01-21 16:23:59 +01:00
Jeremy Stretch
63dbee16cc Changelog for #3962 2020-01-21 10:11:27 -05:00
hellerve
5f3f21215a dcim: fix #3964 by moving away from properties to inline styles 2020-01-21 16:06:15 +01:00
Jeremy Stretch
cdd7ed21ee Merge pull request #3970 from hellerve/veit/fix-3962
Display device correctly in SVG
2020-01-21 10:05:37 -05:00
hellerve
255d12309a dcim: fix #3965 by adding an option to get_rack_units 2020-01-21 15:50:38 +01:00
Jeremy Stretch
856d14aaa6 Merge pull request #3969 from kobayashi/3960-legacy-device-status
Fixes: #3960 legacy device status
2020-01-21 09:47:16 -05:00
Jeremy Stretch
134cf38a84 Merge branch 'develop' into 3960-legacy-device-status 2020-01-21 09:47:07 -05:00
Jeremy Stretch
1a56a5561c Add systemd migration doc to pages list 2020-01-21 09:41:55 -05:00
hellerve
eb7fbe4b3a dcim: fix #3962 by moving away from device.name 2020-01-21 15:33:17 +01:00
Jeremy Stretch
9d3215e806 Fixes #3967: Resolve migration of "other" interface type 2020-01-21 09:32:51 -05:00
kobayashi
9e855ac6cd 3960 legacy device status 2020-01-21 00:30:47 -05:00
Saria Hajjar
a6fde3168b Minor corrections 2020-01-20 11:37:51 +00:00
Saria Hajjar
939a7bbe50 Fixes #3135: Documented power modelling 2020-01-19 15:43:31 +00:00
kobayashi
c6d18da2eb 3923 validate key format 2020-01-19 02:19:03 -05:00
Jeremy Stretch
606f3dacbb Fixes #3721: Allow Unicode characters in tag slugs 2020-01-17 17:25:46 -05:00
Jeremy Stretch
aa73a7ad02 Closes #3954: Add device_bays filter for devices and device types 2020-01-17 16:39:31 -05:00
Jeremy Stretch
a4687be5e5 Closes #3842: Add 802.11ax interface type 2020-01-17 16:20:11 -05:00
Jeremy Stretch
302f87e108 Fixes #3937: Suppress warning messages in tests for requests expected to yield a 4XX response 2020-01-17 14:53:33 -05:00
Jeremy Stretch
439fa731ba Fixes #3953: Fix validation error when creating child devices 2020-01-17 14:22:58 -05:00
Jeremy Stretch
c6eb40daa8 #3951: Add tests for webhook queuing 2020-01-17 12:39:14 -05:00
Jeremy Stretch
f15cde0275 Fixes #3951: Fix exception in webhook worker due to missing constant 2020-01-17 11:28:50 -05:00
Jeremy Stretch
83427d5585 Closes #3949: Add tests for IPAM model methods 2020-01-17 11:15:05 -05:00
hSaria
b11224a8b4 Merge branch 'develop' into 568-csv-import-cf 2020-01-17 11:47:01 +00:00
hSaria
8b02cd47fb Merge branch 'develop' into 2921-tags-select2 2020-01-17 11:45:13 +00:00
hSaria
f052b90ec3 Merge branch 'develop' into 3840-limit-vlan-choices 2020-01-17 11:42:15 +00:00
Jeremy Stretch
d3f278400e Post-release version bump 2020-01-16 23:47:38 -05:00
Jeremy Stretch
295d4f0394 Merge pull request #3946 from netbox-community/develop
Release v2.7.1
2020-01-16 23:46:40 -05:00
Jeremy Stretch
8aad11b8d2 Release v2.7.1 2020-01-16 23:43:32 -05:00
Jeremy Stretch
0a1dd64b94 Fixes #3943: Prevent rack elevation links from opening new tabs/windows 2020-01-16 23:41:52 -05:00
Jeremy Stretch
f220b3f128 Merge pull request #3942 from hSaria/3941-ip-assign-exception
Fixes #3941: AttributeError when searching on IP assign
2020-01-16 21:43:15 -05:00
Jeremy Stretch
1c0e0fec4c Merge branch 'develop' into 3941-ip-assign-exception 2020-01-16 21:42:27 -05:00
Jeremy Stretch
5369aef971 Fixes #3944: Fix AttributeError exception when viewing prefixes list 2020-01-16 21:39:46 -05:00
Saria Hajjar
9f569d4b1b Fixes #3941: AttributeError when searching on IP assign 2020-01-16 23:03:16 +00:00
hSaria
c0a3285b8b Merge branch 'develop' into 568-csv-import-cf 2020-01-16 22:47:10 +00:00
hSaria
a30e50ecc4 Merge branch 'develop' into 3840-limit-vlan-choices 2020-01-16 22:45:23 +00:00
hSaria
42962db263 Merge branch 'develop' into 2921-tags-select2 2020-01-16 21:52:14 +00:00
Saria Hajjar
c31c8b1a25 Moved into v2.7.1 2020-01-16 21:51:37 +00:00
Saria Hajjar
e05cecb481 Moved into v2.7.1 2020-01-16 21:51:01 +00:00
Jeremy Stretch
604924231a Post-release version bump 2020-01-16 14:47:55 -05:00
Jeremy Stretch
ea91e09a1b Merge pull request #3938 from netbox-community/develop
Release v2.7.0
2020-01-16 13:03:42 -05:00
Jeremy Stretch
0f1518e4c5 Release v2.7.0 2020-01-16 12:58:17 -05:00
Jeremy Stretch
4cb1facb6a Add PyYAML as a required package 2020-01-16 12:23:36 -05:00
Jeremy Stretch
e640f413ab Revise v2.7 release notes 2020-01-16 11:28:54 -05:00
Saria Hajjar
9f68f8d1a6 Update component CSV forms 2020-01-16 16:07:24 +00:00
Saria Hajjar
a2d5aca1d9 Moved changelog to v2.7 2020-01-16 16:05:45 +00:00
Saria Hajjar
89e6de3652 Merge branch 'develop' into 568-csv-import-cf 2020-01-16 16:05:01 +00:00
Jeremy Stretch
fecbb60c36 Use assertHttpStatus() when evaluating HTTP response status 2020-01-16 10:47:45 -05:00
Saria Hajjar
26ebed0182 Removed legacy work regarding inc/tags_panel.html 2020-01-16 15:42:31 +00:00
Saria Hajjar
2c0f321456 Merge branch '2921-tags-select2' of https://github.com/hSaria/netbox into 2921-tags-select2 2020-01-16 15:34:56 +00:00
Saria Hajjar
8f91e9b079 Added #2921 changelog 2020-01-16 15:34:11 +00:00
Saria Hajjar
2949bfaaa7 Merge branch 'develop' into 2921-tags-select2 2020-01-16 15:33:42 +00:00
Jeremy Stretch
c0f1910493 Update requriements for v2.7 release 2020-01-16 10:16:23 -05:00
Saria Hajjar
c8997868ce Added #3840 changelog 2020-01-16 15:10:25 +00:00
Saria Hajjar
02cf39c85b Merge branch 'develop' into 3840-limit-vlan-choices 2020-01-16 15:09:39 +00:00
Jeremy Stretch
3eb2d45e8d Merge pull request #3936 from netbox-community/develop-2.7
Merge v2.7 changes
2020-01-16 09:52:46 -05:00
Jeremy Stretch
4556eac780 Fix IPAddressTestCase 2020-01-16 09:47:46 -05:00
Jeremy Stretch
c955aeebeb Merge branch 'develop' into develop-2.7 2020-01-16 09:38:23 -05:00
Jeremy Stretch
8bd67b2c17 Add tests for browsable API endpoints 2020-01-15 17:47:55 -05:00
Jeremy Stretch
4073dedff8 Merge pull request #3932 from netbox-community/3892-contenttype-filtering
Closes #3892: Robust ContentType filtering
2020-01-15 16:37:50 -05:00
Jeremy Stretch
bc696f2e11 Make filter test logic more obvious 2020-01-15 16:25:26 -05:00
Jeremy Stretch
c28684a8b3 Remove obsolete utility function model_names_to_filter_dict() 2020-01-15 16:21:41 -05:00
Jeremy Stretch
215b4d0b3f #3892: Convert WEBHOOK_MODELS to a Q object 2020-01-15 16:18:47 -05:00
Jeremy Stretch
d9437a08f0 #3892: Convert EXPORTTEMPLATE_MODELS to a Q object 2020-01-15 16:11:44 -05:00
Jeremy Stretch
f81e7d30e2 #3892: Convert GRAPH_MODELS to a Q object 2020-01-15 16:08:19 -05:00
Jeremy Stretch
09bee75cb3 #3892: Convert CUSTOMLINK_MODELS to a Q object 2020-01-15 16:04:41 -05:00
Jeremy Stretch
9c4ab79bea #3892: Convert CUSTOMFIELD_MODELS to a Q object 2020-01-15 16:00:54 -05:00
Jeremy Stretch
f8dad1744c #3892: Convert CABLE_TERMINATION_TYPES to a Q object 2020-01-15 15:51:51 -05:00
Jeremy Stretch
b98ac64ac2 Fix reference to obsolete constant IFACE_MODE_TAGGED 2020-01-15 14:54:46 -05:00
Jeremy Stretch
88267e9d05 Move BGP_ASN_MIN and BGP_ASN_MAX to ipam.constants 2020-01-15 14:53:46 -05:00
Jeremy Stretch
caf7d02637 Remove obsolete constant CABLE_TERMINATION_TYPE_CHOICES 2020-01-15 14:49:52 -05:00
Jeremy Stretch
aefe2b4196 Move rack elevation CSS to project-static/rack_elevation.css 2020-01-15 14:05:44 -05:00
Jeremy Stretch
fdf8211e9a Fixes #3930: Fix API rendering of the family field for aggregates 2020-01-15 13:56:37 -05:00
Jeremy Stretch
73d1a2df3d Merge pull request #3929 from netbox-community/3830-api-pagination
Fixes #3830: Update model ordering parameters to ensure deterministic ordering
2020-01-15 13:29:27 -05:00
Jeremy Stretch
0893d32665 Clarify naming constraints related to rack groups 2020-01-15 13:27:46 -05:00
Jeremy Stretch
c5ec470a00 Changelog for #3830 2020-01-15 13:25:07 -05:00
Jeremy Stretch
28350d84f9 Update model ordering parameters to ensure deterministic ordering 2020-01-15 13:20:44 -05:00
Jeremy Stretch
1055faf734 Merge pull request #3920 from hSaria/3919-utilization-bar-width
Fixes #3919: Utilization graph bar bounds
2020-01-15 10:55:39 -05:00
Jeremy Stretch
351a6e005e Merge branch 'develop' into 3919-utilization-bar-width 2020-01-15 10:55:28 -05:00
Jeremy Stretch
e5ebe6cebc Fix breadcrumbs for changelog entries for deleted objects 2020-01-15 10:48:30 -05:00
Jeremy Stretch
0053aa2d2e Fix objectchange related changes panel styling 2020-01-15 10:44:31 -05:00
Jeremy Stretch
dda9a2ee1c Fixes #3927: Fix exception when deleting devices with secrets assigned 2020-01-15 10:39:23 -05:00
Jeremy Stretch
1ea820a50e Fixes #3900: Fix exception when deleting device types 2020-01-15 10:23:07 -05:00
Jeremy Stretch
c202c1325b Add test for VM interface type choices 2020-01-15 10:04:12 -05:00
Jeremy Stretch
49f027fae7 Refactor FieldChoicesViewSet; add Interface.type to virtualization _choices endpoint 2020-01-15 09:59:44 -05:00
Jeremy Stretch
deec10efe7 Rename ExportTemplateLanguageChoices to TemplateLanguageChoices 2020-01-15 09:40:05 -05:00
Jeremy Stretch
826f4d313d Move unpack_grouped_choices() to utilities.choices 2020-01-15 09:36:39 -05:00
Jeremy Stretch
685cf50268 Closes #3926: Extend upgrade script to invalidate cache data 2020-01-15 08:57:00 -05:00
Jeremy Stretch
e0ea5b0e0b Allow the Lock bot to lock existing closed issues 2020-01-15 08:49:50 -05:00
Saria Hajjar
201416ba52 Semicolons for completeness 2020-01-15 12:38:09 +00:00
Saria Hajjar
9d846d7b87 Fixes #3840: Only show valid interface VLAN choices 2020-01-15 12:23:34 +00:00
hSaria
a7e87eeadc Merge branch 'develop' into 2921-tags-select2 2020-01-15 09:30:51 +00:00
Jeremy Stretch
b538495a29 Merge pull request #3922 from netbox-community/3921-choices-tests
Closes #3921: Add tests for API _choices endpoints
2020-01-14 16:42:28 -05:00
Jeremy Stretch
8df53eac91 Add tests for dynamic choices 2020-01-14 16:38:14 -05:00
Jeremy Stretch
857e04e90b Add _choices endpoint tests for all apps 2020-01-14 16:13:11 -05:00
Jeremy Stretch
3f37cc461d Reorder operations to avoid "pending trigger events" SQL error 2020-01-14 14:37:50 -05:00
Jeremy Stretch
823e1280d2 Add guide for squashing schema migrations 2020-01-14 14:14:54 -05:00
Saria Hajjar
a9e1e7fc78 Fixes #3919: Utilization graph bar bounds 2020-01-14 18:23:31 +00:00
Jeremy Stretch
f27e06e619 Move utility functions for secrets to secrets/utils.py 2020-01-14 12:13:58 -05:00
Jeremy Stretch
c084547dca Move IPAddressManager to a separate file 2020-01-14 12:07:45 -05:00
Jeremy Stretch
6959785cd1 Define __all__ for models.py within each app 2020-01-14 12:01:23 -05:00
Jeremy Stretch
26a257b794 Don't import constants from inside a migration 2020-01-14 11:47:28 -05:00
Jeremy Stretch
2615906526 Squashed all migrations 2020-01-14 11:06:05 -05:00
Jeremy Stretch
d96f474a5f Merge pull request #3847 from kobayashi/3525
Fixes #3525: Filter muiltiple ipaddress terms
2020-01-14 09:20:39 -05:00
Jeremy Stretch
d33e10b4ce Merge branch 'develop' into 3525 2020-01-14 09:20:02 -05:00
Jeremy Stretch
e536f363f9 Merge pull request #3915 from hSaria/3914-interface-filter-no-user
Fixes #3914: Interface filter field when unauthenticated
2020-01-14 08:53:59 -05:00
Saria Hajjar
e10333bf2b Fetch choices during form initialization 2020-01-14 08:22:27 +00:00
Saria Hajjar
9d0da0f45a Fixes #3914: Interface filter field when unauthenticated 2020-01-14 06:08:19 +00:00
Jeremy Stretch
7b8e82f321 Fix typo in release notes 2020-01-13 17:30:16 -05:00
Jeremy Stretch
5c047faa1d Delete old squashed migrations 2020-01-13 17:01:54 -05:00
hSaria
d075bf5882 Merge branch 'develop' into 568-csv-import-cf 2020-01-13 21:17:29 +00:00
Jeremy Stretch
8f636d9636 Merge pull request #3911 from netbox-community/3801-devicetype-yaml
Closes #3801: Change DeviceType export from CSV to YAML
2020-01-13 15:43:20 -05:00
Jeremy Stretch
ce0e351d76 Changelog for #3801 2020-01-13 15:42:49 -05:00
Jeremy Stretch
f170a579de Add test for DeviceType YAML export 2020-01-13 15:35:01 -05:00
hSaria
83ee83142a Merge branch 'develop' into 2921-tags-select2 2020-01-13 20:17:34 +00:00
Saria Hajjar
865e3e7c9f Updated changelog 2020-01-13 20:17:47 +00:00
Saria Hajjar
2f28dec891 Tag filter field for filter forms 2020-01-13 20:16:13 +00:00
Jeremy Stretch
0dad9f8901 Change DeviceType export from CSV to YAML 2020-01-13 15:10:16 -05:00
Saria Hajjar
a8d9fe799b Removed tags filter field from view 2020-01-13 19:06:05 +00:00
Jeremy Stretch
473d67354f Merge branch 'develop' into develop-2.7 2020-01-13 13:49:22 -05:00
Jeremy Stretch
5d7af0fae9 Post-release version bump 2020-01-13 13:26:50 -05:00
Jeremy Stretch
946779000f Merge pull request #3908 from netbox-community/develop
Release v2.6.12
2020-01-13 13:25:21 -05:00
Jeremy Stretch
c3c3000a53 Release v2.6.12 2020-01-13 13:17:43 -05:00
Jeremy Stretch
66daeda85f Merge pull request #3887 from hSaria/3021-cable-tenant-filter
Fixes #3021: Added tenancy filter for cables
2020-01-13 12:09:53 -05:00
Jeremy Stretch
0fd0e76183 Merge pull request #3888 from hSaria/3491-webhook-error-message
Fixes #3491: Include content of webhook error response
2020-01-13 11:33:25 -05:00
Jeremy Stretch
cf480375f6 Merge pull request #3899 from hSaria/3898-cable-str-pk
Fixes #3898: Call str of cable on delete to save PK in id_string
2020-01-13 11:31:18 -05:00
hSaria
736cd709d9 Merge branch 'develop' into 3898-cable-str-pk 2020-01-13 15:40:22 +00:00
Jeremy Stretch
0f42219b4b Merge pull request #3906 from hSaria/3905-powerfeed-divide-by-zero
Fixes #3905: divide by zero on power feeds with low values
2020-01-13 10:32:59 -05:00
Jeremy Stretch
b64f4b93eb Merge pull request #3903 from hSaria/3902-relax-connect
Fixes #3902: relax non-essential required fields
2020-01-13 10:32:09 -05:00
Saria Hajjar
32ffc1b54b Fixes #3905: divide by zero on power feeds with low values 2020-01-13 15:31:35 +00:00
Saria Hajjar
608006ee77 Set the private pk after super save 2020-01-13 15:21:37 +00:00
Saria Hajjar
3d78a67343 Store a private copy of the pk during init and use that with __str__ 2020-01-13 14:57:21 +00:00
Jeremy Stretch
2f98f133bb Merge pull request #3896 from hSaria/3895-elevations-keyerror
Fixes #3895: Elevations filter regression
2020-01-13 09:44:57 -05:00
Saria Hajjar
fe0fbeab49 Fixes #3902: relax non-essential required fields 2020-01-13 12:05:06 +00:00
kobayashi
e3aacb183b optimize query 2020-01-12 16:44:15 -05:00
Saria Hajjar
49fa243b4f Added post-delete cable ID test 2020-01-12 11:21:02 +00:00
Saria Hajjar
a2308b9c99 Fixes #3898: Call str of cable on delete to save PK in id_string 2020-01-12 11:08:13 +00:00
Saria Hajjar
422c6bad5b Fixes #3895: Elevations filter regression 2020-01-11 15:36:58 +00:00
Saria Hajjar
834fd408bd Fixes #2921: Replace tags filter with Select2 widget 2020-01-11 15:18:27 +00:00
Jeremy Stretch
db57d3830f Merge pull request #3890 from netbox-community/3092-reorganize-models
Closes #3092: Refactor dcim/models.py
2020-01-10 15:44:07 -05:00
Jeremy Stretch
b7e78028ce Closes #3891: Add local_context_data filter for virtual machines 2020-01-10 15:34:38 -05:00
Jeremy Stretch
ca13045515 Closes #3092: Split DCIM models into separate files for easier management 2020-01-10 14:22:22 -05:00
kobayashi
2e9f21e222 Filter muiltiple ipaddress terms 2020-01-10 14:09:25 -05:00
Jeremy Stretch
9f627fd0d3 Merge branch 'develop' into develop-2.7 2020-01-10 13:33:51 -05:00
Jeremy Stretch
509a115f68 Extend section regarding test adaptation 2020-01-10 12:24:47 -05:00
Jeremy Stretch
69a696a8d6 Fix graph:type choices under /api/extras/_choices/ 2020-01-10 12:18:56 -05:00
Jeremy Stretch
830a51d9f5 Merge pull request #3889 from netbox-community/3520-graph-template-language
Fixes #3520: Add template_language to extras.Graph
2020-01-10 11:59:05 -05:00
Jeremy Stretch
3c247ac47d Changelog for #3520 2020-01-10 11:53:29 -05:00
Jeremy Stretch
123a58bf7d Add tests for Graph rendering 2020-01-10 11:51:14 -05:00
Saria Hajjar
f20d16f188 Fixes #3491: include content of webhook error response 2020-01-10 16:42:02 +00:00
Jeremy Stretch
9399652dd0 Add template_language field to Graph 2020-01-10 11:28:50 -05:00
Saria Hajjar
f4514034b8 Fixes #3021: Added tenancy filter to cables 2020-01-10 15:59:56 +00:00
Jeremy Stretch
6bc8f2e50b Fixes #3882: Fix filtering of devices by rack group 2020-01-10 10:21:11 -05:00
Jeremy Stretch
fc1245c49d Merge pull request #3867 from hSaria/3668-address-assign-dns-filter
Fixes #3668: use `q` to search when assigning IP
2020-01-10 10:08:31 -05:00
Saria Hajjar
de1355e6bc Changelog #568 2020-01-10 15:00:57 +00:00
Saria Hajjar
37322fc100 Fixed import choice name 2020-01-10 14:58:15 +00:00
Jeremy Stretch
4be7ca0c78 Merge branch 'develop' into 3668-address-assign-dns-filter 2020-01-10 09:43:35 -05:00
Jeremy Stretch
cb91c9231d Merge pull request #3865 from hSaria/3623-interface-word-expansion
Fixes #3623: Word expansion for interfaces
2020-01-10 09:41:42 -05:00
Saria Hajjar
f1d5e28f13 CSV import/export custom fields 2020-01-10 14:26:39 +00:00
Jeremy Stretch
03b22594e8 Merge pull request #3881 from netbox-community/3729-filterset-naming
Fixes #3729: Standardize FilterSet names
2020-01-10 08:58:17 -05:00
hSaria
a5413a5484 Merge branch 'develop' into 3623-interface-word-expansion 2020-01-10 11:55:27 +00:00
Saria Hajjar
71120d9899 Added tests for alphanumeric 2020-01-10 11:54:43 +00:00
Saria Hajjar
acb66c7dc0 Negative tests for expand_ipaddress_pattern 2020-01-10 11:21:37 +00:00
Saria Hajjar
2eba84dad5 Added tests for IPv6 2020-01-10 11:06:01 +00:00
Saria Hajjar
fe89982d4e Removed redundant list call 2020-01-10 10:26:46 +00:00
Jeremy Stretch
528b345f57 Move TenancyFilterSet to filters.py 2020-01-09 21:05:38 -05:00
Jeremy Stretch
e3807a8937 Update filterset naming for global search view 2020-01-09 21:02:14 -05:00
Jeremy Stretch
da0ac4ff1e Rename filter variables for utility views 2020-01-09 20:57:13 -05:00
Jeremy Stretch
49a6a36f4c Renamed virtualization FilterSets 2020-01-09 20:42:32 -05:00
Jeremy Stretch
a77fadd114 Renamed tenancy FilterSets 2020-01-09 20:40:32 -05:00
Jeremy Stretch
15e1f62919 Renamed secrets FilterSets 2020-01-09 20:38:59 -05:00
Jeremy Stretch
83c0d1ef44 Renamed ipam FilterSets 2020-01-09 20:37:26 -05:00
Jeremy Stretch
97654b7585 Renamed extras FilterSets 2020-01-09 20:35:07 -05:00
Jeremy Stretch
0767de205e Renamed dcim FilterSets 2020-01-09 20:30:40 -05:00
Jeremy Stretch
847cf9d038 Renamed circuits FilterSets 2020-01-09 20:25:33 -05:00
Jeremy Stretch
0296aa240a Clean up Stale bot config formatting 2020-01-09 20:14:31 -05:00
Jeremy Stretch
d88b3456c4 Add configuration file for GitHub Stale bot 2020-01-09 20:13:21 -05:00
Jeremy Stretch
789cf827f2 Merge pull request #3879 from hSaria/3876-asn-field-bounds
Fixes #3876: Min/max values for ASN field
2020-01-09 17:03:29 -05:00
Saria Hajjar
6c19c88e99 Replaced ASN bounds with constants 2020-01-09 21:58:38 +00:00
Jeremy Stretch
c1ed2b6068 Merge pull request #3875 from hSaria/3393-provider-circuit-paginate
Fixes #3393: Paginate circuits at the provider details view
2020-01-09 16:52:19 -05:00
Jeremy Stretch
790cfd7b5b Fix CableTable status coloring 2020-01-09 16:19:47 -05:00
Jeremy Stretch
dc5f5efcfe Fixes #3878: Fix database migration for cable status field 2020-01-09 16:16:24 -05:00
Saria Hajjar
4eacc57522 Fixes #3876: set min and max values for ASN field 2020-01-09 21:12:35 +00:00
Jeremy Stretch
0527626709 Update filter tests for v2.7 2020-01-09 16:03:41 -05:00
Jeremy Stretch
a2ead6af94 Merge branch 'develop' into develop-2.7 2020-01-09 15:27:06 -05:00
Saria Hajjar
1e740a70f7 Corrected placement of changelog 2020-01-09 20:23:16 +00:00
Saria Hajjar
94a7d8e493 Hid the provider column 2020-01-09 20:15:22 +00:00
Saria Hajjar
883655ce71 Fixes #3393: Paginate circuits at the provider details view 2020-01-09 20:10:51 +00:00
Jeremy Stretch
1d3651e255 Use ChoiceSet.values() for access to raw values 2020-01-09 14:56:33 -05:00
Jeremy Stretch
fe490d144a Fixes #3868: Fix creation of interfaces for virtual machines 2020-01-09 14:54:25 -05:00
Jeremy Stretch
40fe6666e3 Closes #3841: Add California-style power connectors 2020-01-09 14:10:37 -05:00
Jeremy Stretch
2a2bc66841 Closes #3842: Add RJ-12 console port type 2020-01-09 13:58:41 -05:00
Jeremy Stretch
6019260374 Merge pull request #3873 from hSaria/3872-limit-related-ips
Fixes #3872: Limit related IPs table
2020-01-09 13:53:59 -05:00
Jeremy Stretch
e5c5a1a101 Fixes #3849: Fix ordering of models when dumping data to JSON 2020-01-09 13:28:39 -05:00
Saria Hajjar
c13b9d8798 Added tests for IPv4 2020-01-09 18:26:10 +00:00
hSaria
03b10b6f73 Merge branch 'develop' into 3872-limit-related-ips 2020-01-09 17:18:42 +00:00
Saria Hajjar
67f4d8fab5 Replaced with pagination 2020-01-09 17:16:58 +00:00
Jeremy Stretch
7e0073d6f5 Merge pull request #3863 from hSaria/2113-napalm-settings
Fixes #2113: NAPALM driver settings
2020-01-09 11:56:32 -05:00
Jeremy Stretch
c66dca399b Merge pull request #3860 from hSaria/1982-swagger-napalm
Fixes #1982: Swagger NAPALM documentation
2020-01-09 11:53:20 -05:00
Saria Hajjar
9d085ad83a Changed NAPALM- prefix to X-NAPALM- 2020-01-09 16:48:26 +00:00
Saria Hajjar
ad565e55f1 Removed exception for empty methods
I'll create a seperate ticket for that
2020-01-09 16:40:13 +00:00
Saria Hajjar
46c712e735 Moved NAPALM parameter to decorator 2020-01-09 16:39:13 +00:00
Jeremy Stretch
989d6f5af3 Merge pull request #3871 from hSaria/3864-disallow-0-masks
Fixes #3864: Disallow /0 masks
2020-01-09 11:37:19 -05:00
Saria Hajjar
86865b91f8 Added changelog for 3009
again as I accidentally removed it while merging
2020-01-09 16:32:01 +00:00
hSaria
b53480dd6a Merge branch 'develop' into 3668-address-assign-dns-filter 2020-01-09 16:31:09 +00:00
Saria Hajjar
581ed52b24 Added changelog for 3009 2020-01-09 16:30:13 +00:00
Saria Hajjar
472486acd6 Changed to q filter 2020-01-09 16:26:11 +00:00
Jeremy Stretch
92ec4bd22f Merge pull request #3859 from hSaria/3440-total-cable-length
Fixes #3440: Total cable trace length
2020-01-09 10:55:30 -05:00
Jeremy Stretch
959a0da0ed Merge pull request #3838 from hSaria/3090-interface-filtering
Fixes #3090: Interface filtering
2020-01-09 10:05:04 -05:00
hSaria
b23eaeca54 Merge branch 'develop' into 3090-interface-filtering 2020-01-09 14:56:36 +00:00
hSaria
4f9271e9ff Merge branch 'develop' into 3440-total-cable-length 2020-01-09 14:55:34 +00:00
hSaria
094553dbe7 Merge branch 'develop' into 3623-interface-word-expansion 2020-01-09 14:54:58 +00:00
hSaria
60e4812b32 Merge branch 'develop' into 2113-napalm-settings 2020-01-09 14:54:31 +00:00
hSaria
40625d1299 Merge branch 'develop' into 3668-address-assign-dns-filter 2020-01-09 14:53:32 +00:00
Jeremy Stretch
c9ec8b71e0 Merge pull request #3821 from hSaria/2365-show-available-toggle
Fixes #2598: Toggle for showing available prefixes/ip addresses
2020-01-09 09:52:10 -05:00
Saria Hajjar
73e456495f Fixes #3872: Limit related IPs table 2020-01-09 14:48:21 +00:00
Jeremy Stretch
54227ca9c7 Fixes #3851: Allow passing initial data to custom script forms 2020-01-09 09:41:10 -05:00
hSaria
f3b323536e Merge branch 'develop' into 3864-disallow-0-masks 2020-01-09 14:35:26 +00:00
Saria Hajjar
6537f35176 Fixes #3864: Disallow /0 masks 2020-01-09 14:33:49 +00:00
Jeremy Stretch
b36d0ca3fc Merge pull request #3858 from hSaria/3857-group-custom-link
Fixes #3857: Fix group custom links rendering
2020-01-09 09:28:03 -05:00
Jeremy Stretch
99809109ab Merge pull request #3866 from netbox-community/3834-filter-tests
Add FilterSet tests for all apps
2020-01-09 08:57:27 -05:00
Saria Hajjar
1cdbfd6d60 Fixes #3668: search address by DNS name when assigning 2020-01-09 10:00:02 +00:00
Jeremy Stretch
4030e5ec24 Add filter tests for extras 2020-01-08 21:41:32 -05:00
Jeremy Stretch
4151e52802 Clean up filter imports 2020-01-08 17:20:31 -05:00
Jeremy Stretch
b1e8145ffb Standardize usage of self.filterset for test cases 2020-01-08 17:06:39 -05:00
Jeremy Stretch
c04d8ca5a7 Add tests for PowerPanel and PowerFeed filters 2020-01-08 15:56:42 -05:00
Jeremy Stretch
e312c30822 Add CableFilter test 2020-01-08 15:30:56 -05:00
Jeremy Stretch
40c30baffa Add tests for InventoryItem, VirtualChassis filters 2020-01-08 14:31:59 -05:00
Jeremy Stretch
bca7435a5a Add remaining tests for device component filters 2020-01-08 14:01:31 -05:00
Saria Hajjar
396bb28967 Added example and handled invalid ranges gracefully 2020-01-08 17:28:31 +00:00
Saria Hajjar
eb40275427 Fixes #3623: Word expansion for interfaces 2020-01-08 17:23:09 +00:00
hSaria
8519f546a6 Merge branch 'develop' into 3857-group-custom-link 2020-01-08 16:47:57 +00:00
Jeremy Stretch
e9b2ad9f5c Fix DeviceTestCase.test_cluster 2020-01-08 11:22:07 -05:00
Jeremy Stretch
39fba4f05d Fix InterfaceTestCase.test_mac_address 2020-01-08 11:19:13 -05:00
Jeremy Stretch
38c16d71b4 Merge branch 'develop' into 3834-filter-tests 2020-01-08 11:14:52 -05:00
Jeremy Stretch
8fef6edb27 Fixes #3862: Allow filtering device components by multiple device names 2020-01-08 11:12:44 -05:00
Jeremy Stretch
5cac900380 Add console port, console server port filter tests 2020-01-08 11:04:50 -05:00
Saria Hajjar
f49467bcb5 Corrected optional arg assignment 2020-01-08 16:01:18 +00:00
Saria Hajjar
98a66f7fbe NAPALM settings changelog 2020-01-08 15:55:36 +00:00
Saria Hajjar
ce8d470860 Added NAPALM documentation 2020-01-08 15:54:09 +00:00
Saria Hajjar
dc475f4755 Fixes #2113: Adjust NAPALM settings with headers 2020-01-08 15:53:48 +00:00
Jeremy Stretch
a7982bb0e1 Add device filter tests 2020-01-08 09:50:22 -05:00
Saria Hajjar
ea05b5b606 Fixes #1982: Swagger NAPALM documentation 2020-01-08 13:34:46 +00:00
Saria Hajjar
996d49de67 Fixes #3440: Total cable trace length 2020-01-08 10:49:58 +00:00
Saria Hajjar
74997a18a5 Fixes #3857: Fix group custom links rendering 2020-01-08 10:14:48 +00:00
Jeremy Stretch
832fd49339 Add DeviceType filter tests 2020-01-07 17:13:05 -05:00
Jeremy Stretch
acb2f32304 Add tests for DCIM filters 2020-01-07 13:53:26 -05:00
Saria Hajjar
32f39e10c9 Changed default to showing available 2020-01-07 17:58:30 +00:00
hSaria
190e683654 Removed cookie-based storage; now based on request 2020-01-07 17:18:36 +00:00
Jeremy Stretch
770f4c962c Fixes #3856: Allow filtering VM interfaces by multiple MAC addresses 2020-01-07 10:31:44 -05:00
Jeremy Stretch
227921e0a0 Add tests for virtualization filters 2020-01-07 10:19:21 -05:00
Jeremy Stretch
39d0261d8a Add tests for tenancy filters 2020-01-07 09:41:43 -05:00
Jeremy Stretch
f267a532f6 Add filter tests for secrets 2020-01-07 09:35:22 -05:00
Jeremy Stretch
e7ee4486a5 Fixes #3853: Fix device role link on config context view 2020-01-07 09:08:31 -05:00
Saria Hajjar
6a3cd83efc Moved regex note to tooltip 2020-01-07 11:09:39 +00:00
Saria Hajjar
a7ec0c14f7 Move toggles js code to static 2020-01-07 11:09:31 +00:00
Jeremy Stretch
05bfe94d3e Add remaining IPAM filter tests 2020-01-06 21:35:34 -05:00
Jeremy Stretch
8d0aaa4ec1 Add IPAM filter tests (WIP) 2020-01-06 17:42:17 -05:00
Jeremy Stretch
4b5c4b7be5 Initial work on filter tests 2020-01-06 15:39:02 -05:00
Saria Hajjar
18333973aa Merge branch '3090-interface-filtering' of https://github.com/hSaria/netbox into 3090-interface-filtering 2020-01-06 20:05:25 +00:00
Saria Hajjar
07a1baef13 Limit toggle selector to visible input fields 2020-01-06 20:05:07 +00:00
Jeremy Stretch
15545b70d6 Merge pull request #3814 from hSaria/3589-interface-tagged-vlans
Fixes #3589: Interface VLAN filtering
2020-01-06 13:20:14 -05:00
hSaria
cfb8b3cf56 Merge branch 'develop' into 3090-interface-filtering 2020-01-06 15:19:46 +00:00
hSaria
206732eb62 Merge branch 'develop' into 2365-show-available-toggle 2020-01-06 15:18:57 +00:00
Jeremy Stretch
258cc4b50e Merge pull request #3846 from hSaria/2050-image-preview
Fixes #2050: Image preview
2020-01-06 10:18:18 -05:00
hSaria
d1f81783ef Merge branch 'develop' into 3589-interface-tagged-vlans 2020-01-06 15:18:06 +00:00
Jeremy Stretch
9bd2af48a3 Merge branch 'develop' into 2050-image-preview 2020-01-06 10:12:13 -05:00
Jeremy Stretch
d4df965f46 Merge pull request #3845 from hSaria/3187-elevation-rack-filter
Fixes #3187: Elevation rack filter
2020-01-06 10:06:20 -05:00
Saria Hajjar
7dddd4734c Updated changelog 2020-01-05 09:11:58 +00:00
Saria Hajjar
c45daca5f2 Removed changes that will be covered in #3840 2020-01-05 09:10:46 +00:00
Saria Hajjar
067af26892 Changelog (may conflict with other merges) 2020-01-04 18:19:05 +00:00
Saria Hajjar
792f38334a Fixes #2050: Image preview for attachments 2020-01-04 18:17:41 +00:00
Saria Hajjar
dba40cd6bc Changelog (may conflict because adding headers) 2020-01-04 13:32:07 +00:00
Saria Hajjar
4b19073b8b Fixed #3187: Rack multi-selection field 2020-01-04 13:30:31 +00:00
Saria Hajjar
28eca9a026 Forgot le seperator 2020-01-03 20:12:21 +00:00
Saria Hajjar
3556051d14 Height was a touch off 2020-01-03 19:58:41 +00:00
Saria Hajjar
e1d1f522ff Closes #3090: Filter field for interface 2020-01-03 19:38:51 +00:00
Saria Hajjar
04f3e58ab4 Line seperator 2020-01-03 19:27:02 +00:00
Jeremy Stretch
1f175031bd #3455: Make ClusterFilterForm a TenancyFilterForm 2020-01-03 14:26:53 -05:00
Saria Hajjar
e1c61c5019 Changelog 2020-01-03 19:25:33 +00:00
Saria Hajjar
1c0de0093b Merge remote-tracking branch 'netbox-community/develop' into 2365-show-available-toggle 2020-01-03 19:24:44 +00:00
Saria Hajjar
9d8ab81e3a Removed changelog (temporarily while merging) 2020-01-03 19:24:39 +00:00
Jeremy Stretch
6e49a0ba6e Merge branch 'develop' into develop-2.7 2020-01-03 14:21:53 -05:00
Saria Hajjar
fa55571503 Merge remote-tracking branch 'netbox-community/develop' into 3589-interface-tagged-vlans 2020-01-03 19:19:12 +00:00
Jeremy Stretch
feb04f0401 Post-release version bump 2020-01-03 14:01:10 -05:00
Jeremy Stretch
5c07b6dc1d Merge pull request #3837 from netbox-community/develop
Release v2.6.11
2020-01-03 14:00:10 -05:00
Jeremy Stretch
e3b448b7ad Release v2.6.11 2020-01-03 13:55:43 -05:00
Jeremy Stretch
57f199f899 Fixes #3833: Add region and region_id filters where missing (#3836) 2020-01-03 13:52:50 -05:00
Jeremy Stretch
b38bb64c81 Fixes #3831: Fix API-driven filter field rendering (#3812 regression) 2020-01-03 11:25:22 -05:00
Jeremy Stretch
1d63a30b7a Merge branch 'develop' into develop-2.7 2020-01-02 17:21:15 -05:00
Jeremy Stretch
c2dc243c7c Post-release version bump 2020-01-02 17:08:04 -05:00
Jeremy Stretch
25c3c1b431 Merge pull request #3829 from netbox-community/develop
Fix v2.6.10 release date
2020-01-02 17:05:21 -05:00
Jeremy Stretch
156fbae7d3 Fix v2.6.10 release date 2020-01-02 17:04:20 -05:00
Jeremy Stretch
a0ae7a227d Merge pull request #3828 from netbox-community/develop
Release v2.6.10
2020-01-02 17:02:52 -05:00
Jeremy Stretch
9ef3e68479 Release v2.6.10 2020-01-02 17:01:05 -05:00
Jeremy Stretch
435d248645 #3122: Allow multiple selections 2020-01-02 16:56:14 -05:00
Jeremy Stretch
53db5090c1 #3827: Fix erroneous filter class 2020-01-02 16:55:36 -05:00
Jeremy Stretch
caa062c8ba Merge pull request #3826 from hSaria/3122-connection-device-select2
Fixes #3122: Select2 for device field
2020-01-02 16:39:50 -05:00
Saria Hajjar
240bbc2944 Select2 site widget 2020-01-02 21:28:06 +00:00
Saria Hajjar
a3861ed492 Update device filters to use IDs 2020-01-02 21:21:52 +00:00
Saria Hajjar
82c70302fd Merge branch 'develop' into 3122-connection-device-select2 2020-01-02 20:40:19 +00:00
Jeremy Stretch
80d1f80b61 Fixes #3827: Allow filtering console/power/interface connections by device ID 2020-01-02 13:44:18 -05:00
hSaria
d3c6caf8a8 Limit tagged validation to tagged interfaces
Co-Authored-By: Jeremy Stretch <jeremy.stretch@networktocode.com>
2020-01-02 17:52:22 +00:00
Saria Hajjar
a707204f98 Select2 for device field 2020-01-02 17:46:37 +00:00
Jeremy Stretch
523a1388db Correct release notes 2020-01-02 11:56:29 -05:00
Jeremy Stretch
970586b07b Merge pull request #3818 from hSaria/2233-move-inventoryitem
Closes #2233: Ability to move inventory items between devices
2020-01-02 11:55:18 -05:00
Saria Hajjar
28ae6849b4 Templatized show_available toggle 2020-01-02 16:29:11 +00:00
Saria Hajjar
8e3a371688 Added default to cookie 2020-01-02 16:19:12 +00:00
Saria Hajjar
2a219eff23 is not None not needed as the value 'false' is a string 2020-01-02 16:13:47 +00:00
Saria Hajjar
f81641ae96 Corrected ticket number 2020-01-02 15:48:30 +00:00
Jeremy Stretch
4f0d3e6b32 Merge pull request #3820 from hSaria/3819-cf-boolean-select2
Select2 for custom fields
2020-01-02 10:11:32 -05:00
Jeremy Stretch
77d1ac8b07 Merge pull request #3817 from hSaria/2988-group-create-warn
Closes #2988
2020-01-02 10:10:11 -05:00
Jeremy Stretch
5d0ac02704 Merge pull request #3816 from hSaria/3815-select2-width
Fixes #3815: Select2 width handling via theme
2020-01-02 10:08:56 -05:00
Jeremy Stretch
fc5d07bb13 Merge pull request #3813 from hSaria/3812-optimize-select-api
Fixes #3812: Only preload selected options for API-based select
2020-01-02 10:05:06 -05:00
Jeremy Stretch
395f23e1d3 Fix for #3822 2020-01-02 09:47:02 -05:00
Jeremy Stretch
dd85448451 Fixes #3822: Fix exception when editing a device bay (regression from #3596) 2020-01-02 09:26:38 -05:00
hSaria
6a7af22dea Merge branch 'develop' into 2365-show-available-toggle 2020-01-02 09:18:53 +00:00
Saria Hajjar
37bc17d3a2 Fixes #2365: Toggle for showing available prefixes/ip addresses 2020-01-02 09:16:18 +00:00
Saria Hajjar
ca131e5b2a Select2 for custom fields 2020-01-01 23:46:51 +00:00
Saria Hajjar
c75795ceda Ability to move inventory items between devices 2020-01-01 23:28:20 +00:00
Saria Hajjar
7dc0591e3e Note about the group existance 2020-01-01 22:38:02 +00:00
Saria Hajjar
cfa078c929 Added theme to select2 of tags 2020-01-01 21:14:38 +00:00
Saria Hajjar
57ea73db46 Turn off Select2 static width calculation 2020-01-01 21:01:08 +00:00
Saria Hajjar
7ad9e8a2fb More informative error message 2020-01-01 19:53:13 +00:00
Saria Hajjar
1a57120b78 3589 changelog 2020-01-01 17:43:39 +00:00
Saria Hajjar
d267aeb621 Filter VLANs to only those in the current site or global 2020-01-01 17:34:26 +00:00
Saria Hajjar
a110b0badb Removed no-longer-used choices (now handled via API-based select) 2020-01-01 16:43:21 +00:00
Saria Hajjar
242ae9eb91 Comment clarification 2020-01-01 16:04:08 +00:00
Saria Hajjar
53625e0dea Fixes #3812: Only preload selected options for API-based select 2020-01-01 15:54:00 +00:00
Saria Hajjar
aa4f73ffbf Removed trailing space 2020-01-01 12:09:51 +00:00
Jeremy Stretch
8c7b0cf670 Close #2892: Extend admin UI to allow deleting old report results 2019-12-31 16:11:47 -05:00
Saria Hajjar
05570ae4ad Clean tagged VLANs 2019-12-31 20:47:13 +00:00
Jeremy Stretch
0cf94cff16 Closes #3062: Add assigned_to_interface filter for IP addresses 2019-12-31 15:24:00 -05:00
Jeremy Stretch
b5455ed882 Closes #3461: Fail gracefully on custom link rendering exception 2019-12-31 15:04:56 -05:00
Jeremy Stretch
8a4293a4cc Introduce render_jinja2() convenience function 2019-12-31 14:00:55 -05:00
Jeremy Stretch
f649b9f04f Fixes #3106: Restrict queryset of chained fields when form validation fails 2019-12-31 12:41:02 -05:00
Jeremy Stretch
5caa04ef2b Fixes #3811: Fix filtering of racks by group on device list 2019-12-31 11:35:18 -05:00
Jeremy Stretch
f2c49063f8 Fixes #3809: Filter platform by manufacturer when editing devices 2019-12-31 11:25:42 -05:00
Jeremy Stretch
ea2351e902 Merge pull request #3804 from hSaria/3803-svg-logo
Fixes 3803
2019-12-30 14:12:44 -05:00
hSaria
8effb54c89 Converted text to path 2019-12-30 18:28:39 +00:00
hSaria
66c99acb9e Converted text to path 2019-12-30 18:28:12 +00:00
Jeremy Stretch
2e5a326315 Merge pull request #3802 from hSaria/3762-datetime-selectors
Fixes 3762
2019-12-30 12:32:08 -05:00
Jeremy Stretch
b5177c608d Merge branch 'develop' into 3762-datetime-selectors 2019-12-30 12:31:50 -05:00
Jeremy Stretch
be7d5a2310 Merge pull request #3807 from hSaria/3712-scroll-offset
Fixes 3712
2019-12-30 11:40:43 -05:00
Jeremy Stretch
65444899af Merge pull request #3798 from steffann/3797-802.1q-vlan-fields
Fix values of mode field
2019-12-30 11:26:15 -05:00
Jeremy Stretch
5230127fde Merge pull request #3800 from kobayashi/3788
implement 3788
2019-12-30 11:23:51 -05:00
Saria Hajjar
405320d8ab Changelog 2019-12-29 21:22:14 +00:00
Saria Hajjar
2f2e193cf9 Account for the header when hash-scrolling 2019-12-29 21:20:02 +00:00
Saria Hajjar
1fc206b9c5 Replace doc logo with svg 2019-12-29 14:10:31 +00:00
Saria Hajjar
44e1a477f2 Fixed Y-coordinate off by 10 2019-12-29 14:06:41 +00:00
Saria Hajjar
e62302c979 Fixes #3803 2019-12-29 13:41:00 +00:00
Saria Hajjar
51b0fe4596 Changelog for 3762 2019-12-29 08:50:08 +00:00
Saria Hajjar
7399aa0c5e Add datetime widgets 2019-12-28 22:55:00 +00:00
Saria Hajjar
aa4588f9ba Load flatpickr using selectors (classes) 2019-12-28 21:33:07 +00:00
Saria Hajjar
4c2e2e0fa3 Include Flatpickr library globally 2019-12-28 21:32:40 +00:00
Saria Hajjar
6dea8ddbce Flatpickr library statics 2019-12-28 21:31:21 +00:00
kobayashi
e6623a6ca8 implement 3788 2019-12-27 16:17:17 -05:00
Sander Steffann
020e485196 Fix values of mode field 2019-12-27 20:42:16 +01:00
Jeremy Stretch
0c5f535689 Merge pull request #3793 from struppinet/develop
Closes #3663: add Filter Tests
2019-12-27 14:14:55 -05:00
Jeremy Stretch
ae9d0d894a Fixes #3695: Include A/Z termination sites for circuits in global search 2019-12-27 14:04:03 -05:00
Jeremy Stretch
14401c30b6 Update contributing guide to reference the issue intake policy 2019-12-27 13:48:41 -05:00
struppi
fbb93c72d0 Closes #3663: improve tests 2019-12-26 22:21:05 +01:00
Jeremy Stretch
280f31955a Merge branch 'master' into develop-2.7 2019-12-26 10:39:07 -05:00
Jeremy Stretch
5fedcd1f4e Fixes #3789: Typo 2019-12-26 10:19:32 -05:00
Jeremy Stretch
adeee0bf5c Docs & changelog for #3705 2019-12-26 10:16:53 -05:00
Jeremy Stretch
84a2b726f5 Merge pull request #3775 from steffann/3705-make-current-user-available-in-custom-scripts
Add request to Custom Script run, if receiver supports it
2019-12-26 10:04:07 -05:00
struppi
407a60dcc4 Closes #3663: fix PEP errors 2019-12-26 12:26:41 +01:00
struppi
d31507985b Closes #3663: add Filter Tests 2019-12-25 18:41:59 +01:00
Sander Steffann
0174c9747b Implement request passing as a property of Script 2019-12-19 23:35:18 +01:00
Jeremy Stretch
55b503da5b Fixes #3780: Fix AttributeError exception in API docs 2019-12-19 14:04:18 -05:00
Jeremy Stretch
aff4ad0f97 Post-release version bump 2019-12-16 16:33:31 -05:00
Jeremy Stretch
50df3acd26 Merge pull request #3774 from netbox-community/develop
Release v2.6.9
2019-12-16 16:32:00 -05:00
Jeremy Stretch
e53e1e31de Release v2.6.9 2019-12-16 16:30:20 -05:00
Daniel Sheppard
70b09446b6 Merge pull request #3768 from markkuleinio/gunicorn-conf
Change gunicorn.conf remains to gunicorn.py
2019-12-15 21:46:21 -06:00
Markku Leiniö
3a18d1df8c Fix gunicorn.conf remains to gunicorn.py 2019-12-14 21:14:48 +02:00
Jeremy Stretch
01883f92d9 Merge pull request #3765 from netbox-community/3760-template-buttons
Introduce clone, edit, and delete button templatetags
2019-12-13 15:59:33 -05:00
Jeremy Stretch
1acdf58a4b Merge pull request #3764 from kobayashi/3679
fix 3757
2019-12-13 15:57:13 -05:00
Jeremy Stretch
8acd3d0a72 Introduced clone, edit, and delete buttons 2019-12-13 15:54:50 -05:00
kobayashi
1d1cb867cd fix 3679 2019-12-13 14:42:10 -05:00
Jeremy Stretch
b46bfaebc1 Merge pull request #3763 from hSaria/3761-token-copy-button
Fixes #3761: copy button for tokens
2019-12-13 14:16:41 -05:00
Jeremy Stretch
a22c7c1539 Fixes #2358: Respect custom field default values when creating objects via the REST API 2019-12-13 14:15:48 -05:00
hSaria
ea51aa97b7 Update version-2.6.md 2019-12-13 18:08:34 +00:00
hSaria
6a6959d041 Fixes #3761: copy button for tokens 2019-12-13 18:06:14 +00:00
Jeremy Stretch
462cede863 Fixes #2170: Prevent the deletion of a virtual chassis when a cross-member LAG is present 2019-12-13 11:36:31 -05:00
Jeremy Stretch
85c11bbd83 Closes #3441: Move virtual machine results near devices in global search 2019-12-13 10:37:58 -05:00
Jeremy Stretch
77e0564d13 Closes #3152: Include direct link to rack elevations on site view 2019-12-13 10:12:46 -05:00
Jeremy Stretch
85563e21db Remove obsolete initial_data fixtures (no longer maintained) 2019-12-12 14:30:43 -05:00
Jeremy Stretch
9352867cec Fix up the installation docs 2019-12-12 14:27:12 -05:00
Jeremy Stretch
93837c5b9e Merge pull request #3756 from netbox-community/csv-import-tests
CSV import tests
2019-12-12 12:09:31 -05:00
Jeremy Stretch
aaf5523378 Add view tests for device components 2019-12-12 11:58:57 -05:00
Jeremy Stretch
8a22f83bc0 Add virtualization CSV import tests 2019-12-12 11:34:02 -05:00
Jeremy Stretch
7550d53d02 Add tenancy CSV import tests 2019-12-12 11:29:41 -05:00
Jeremy Stretch
821cd58825 Add secrets CSV import tests 2019-12-12 11:26:48 -05:00
Jeremy Stretch
526412a1ba Add IPAM CSV import tests 2019-12-12 10:51:17 -05:00
Jeremy Stretch
fae2469dd7 Add DCIM CSV import tests 2019-12-12 10:30:15 -05:00
Jeremy Stretch
27fd351fc2 Add CSV import tests for circuits 2019-12-12 10:08:49 -05:00
John Anderson
ea5c9df095 fixed svg gradient scaling and css flickering issue 2019-12-12 00:30:22 -05:00
Jeremy Stretch
5aa17bc42a Closes #3706: Increase available_power maximum value on PowerFeed 2019-12-11 21:12:18 -05:00
Jeremy Stretch
7bbd9be389 Tweak elevation font 2019-12-11 21:03:24 -05:00
Jeremy Stretch
dbf9a2b452 Fix bug with rendering devices taller than 1U 2019-12-11 20:19:01 -05:00
Jeremy Stretch
e4b8ea8905 Change render_format to render 2019-12-11 20:05:16 -05:00
Jeremy Stretch
fd8913f09b Fix bug in migration 2019-12-11 20:01:10 -05:00
John Anderson
645383509b change render_format to render for svg elevations 2019-12-11 17:33:58 -05:00
Jeremy Stretch
77a5f6ef81 Touched up the release notes 2019-12-11 17:22:41 -05:00
Jeremy Stretch
2ec7259a69 Rack elevation endpoint should return JSON by default; fix typo 2019-12-11 17:17:20 -05:00
Jeremy Stretch
b6f8c248de Addressed lingering TODOs 2019-12-11 17:07:56 -05:00
Jeremy Stretch
b16be577e3 CSVChoiceField should default to a blank string instead of None 2019-12-11 17:04:48 -05:00
Jeremy Stretch
590bbbce7f Fix bug left over from work on #3569 2019-12-11 16:16:14 -05:00
Jeremy Stretch
577b4593de Changelog for #3664 2019-12-11 16:14:41 -05:00
Jeremy Stretch
44e5a63a2a Merge pull request #3755 from netbox-community/3664-configcontext-tags
3664 configcontext tags
2019-12-11 16:10:48 -05:00
Jeremy Stretch
19363add30 Represent and assign ConfigContext tags by their slugs 2019-12-11 16:04:43 -05:00
Jeremy Stretch
fd88ba65b2 Cleanup for #3664 2019-12-11 15:55:33 -05:00
Jeremy Stretch
ce4a5a38a3 Introduce is_taggable utility function for identifying taggable models 2019-12-11 15:52:35 -05:00
John Anderson
05938d60f0 Merge pull request #3754 from netbox-community/2248-svg-rack-elevations
2248 svg rack elevations
2019-12-11 14:26:32 -05:00
Jeremy Stretch
8b189abd58 Merge pull request #3752 from kobayashi/3664
implement 3664
2019-12-11 14:14:48 -05:00
John Anderson
7f788eaa06 review updates to svg rendering 2019-12-11 13:39:10 -05:00
Jeremy Stretch
9f204f72ef Changelog and documentation for #1814 2019-12-11 11:01:31 -05:00
Jeremy Stretch
e02ac133eb Added import error handling and config vlaidation warning for store config 2019-12-11 10:51:32 -05:00
John Anderson
c09aefd509 updated changelog with deprecation notice of rack units endpoint 2019-12-11 10:39:46 -05:00
John Anderson
e0c81fd837 changelog for #2248 2019-12-11 10:34:44 -05:00
Jeremy Stretch
9a8c8012be Merge pull request #3666 from steffann/1814-Ability_to_use_object_store_for_images
Add support for S3 storage for media
2019-12-11 10:20:09 -05:00
Sander Steffann
f1e75b0fbb Implement storage configuration as suggested by @jeremystretch 2019-12-11 16:09:32 +01:00
John Anderson
b4d724b5ae drf-yasg updates for rack elevations 2019-12-11 09:45:08 -05:00
Sander Steffann
f7a1595ce5 Merge branch '1814-Ability_to_use_object_store_for_images' of github.com:steffann/netbox into 1814-Ability_to_use_object_store_for_images 2019-12-11 15:23:47 +01:00
Sander Steffann
378883df2b Fix code for PEP8 2019-12-11 15:19:32 +01:00
Sander Steffann
dafa2513e3 Add support for S3 storage for media 2019-12-11 15:19:32 +01:00
Jeremy Stretch
3b03d68ac7 Merge pull request #3751 from hSaria/3749-attribute-error
Fixes 3749 attribute error
2019-12-11 08:50:09 -05:00
kobayashi
5710f297f1 implement 3664 2019-12-11 04:58:42 -05:00
hSaria
b57d64c72d Changelog for #3751 2019-12-11 07:24:44 +00:00
hSaria
3b76e0203a Fixes 3749 attribute error 2019-12-11 07:03:39 +00:00
Jeremy Stretch
0d8fd45587 Updated static resources 2019-12-10 15:56:52 -05:00
Jeremy Stretch
01b6e73f9b Update dependency versions for DRF & drf_yasg 2019-12-10 15:39:57 -05:00
Jeremy Stretch
b0fb474aa2 Update dependency versions for v2.7 2019-12-10 15:16:20 -05:00
Jeremy Stretch
0787713298 Add deprecation warning for Python 3.5 2019-12-10 13:44:45 -05:00
Jeremy Stretch
6221bc8f43 Merge pull request #3750 from netbox-community/3655-role-descriptions
Add description field to organizational role models
2019-12-10 13:29:44 -05:00
Jeremy Stretch
a6904dc5d5 Add description field to CircuitType (#3655) 2019-12-10 13:25:14 -05:00
Jeremy Stretch
3d5fb2491a Chnagelog for #3655 2019-12-10 13:09:41 -05:00
Jeremy Stretch
24bdd10b4f Add description field to SecretRole model (#3655) 2019-12-10 13:03:09 -05:00
Jeremy Stretch
7845d9b25f Add description field to Role model (#3655) 2019-12-10 12:59:10 -05:00
Jeremy Stretch
1f288175e4 Add description field to RackRole and DeviceRole models (#3655) 2019-12-10 12:53:28 -05:00
Jeremy Stretch
f0a6c881bc Fix inclusion of legacy IDs on choice fields 2019-12-10 12:07:54 -05:00
Jeremy Stretch
9452cebc6a Merge branch 'develop' into develop-2.7 2019-12-10 11:51:10 -05:00
Jeremy Stretch
3c36bec298 Post-release version bump 2019-12-10 10:50:46 -05:00
Jeremy Stretch
425670f52a Merge pull request #3745 from netbox-community/develop
Release v2.6.8
2019-12-10 10:47:48 -05:00
Jeremy Stretch
6a2651991a Release v2.6.8 2019-12-10 10:42:48 -05:00
Jeremy Stretch
12657ebd7c Cable.status to slug (#3569) 2019-12-10 09:55:10 -05:00
John Anderson
d8dd5f00c1 removed rack elevations viewset 2019-12-10 03:19:26 -05:00
John Anderson
1ec191db92 initial cleanup of rack elevations 2019-12-10 03:18:10 -05:00
John Anderson
20c8abe8da Merge branch 'develop-2.7' into 2248-svg-rack-elevations 2019-12-10 02:59:04 -05:00
Jeremy Stretch
086813fc3e Changelog for #2669 2019-12-09 17:28:21 -05:00
Jeremy Stretch
606a73a547 Merge pull request #3740 from netbox-community/2669-device-vm-names
Allow non-unique device and VM names
2019-12-09 17:26:32 -05:00
Jeremy Stretch
f25e2a1922 Fixes #3644: Fix exception when connecting a cable to a RearPort with no corresponding FrontPort 2019-12-09 15:42:04 -05:00
Jeremy Stretch
740cc8b601 Remove deprecated context parameter from from_db_value 2019-12-09 12:32:51 -05:00
Jeremy Stretch
5ac4a3ba79 Omit default uniqueness validator from VirtualMachineSerializer, which implies required fields 2019-12-09 12:11:42 -05:00
Jeremy Stretch
2e37b19e9f #2269: Allow non-unique VirtualMachine names 2019-12-09 11:59:30 -05:00
Jeremy Stretch
a8dd060e32 #2269: Allow non-unique Device names 2019-12-09 11:41:03 -05:00
Jeremy Stretch
95edec5448 #3722: Tweak ordering of permitted characters to avoid creating a regex range 2019-12-09 10:02:56 -05:00
John Anderson
b0adce998b Merge pull request #3702 from hellerve/rack-elevations-api
Rack elevations API
2019-12-09 01:02:40 -05:00
John Anderson
6fe1b9b37c update openapi field type for choice field value fields to string 2019-12-09 00:41:43 -05:00
hellerve
44b042e3fc dcim api: fix face default value in rackviewset 2019-12-08 18:24:13 +01:00
hellerve
e5b49e25b9 dcim api: add feedback from @jeremystretch to rack elevations api 2019-12-08 18:14:59 +01:00
hellerve
b54a05d255 dcim: make linter happy 2019-12-08 17:59:40 +01:00
hellerve
66b6f586f1 tests: update to reflect absence of utility functions 2019-12-08 17:59:40 +01:00
hellerve
82819d5429 dcim: remove elevation getters 2019-12-08 17:59:38 +01:00
hellerve
bc859c6139 css: purge outdated rack styling 2019-12-08 17:58:36 +01:00
hellerve
e1fdc7773a requirements: fix svgwrite version 2019-12-08 17:58:35 +01:00
hellerve
5d5b7e0dd9 dcim: refactor reservations and make them resizable 2019-12-08 17:58:21 +01:00
hellerve
77890ad775 dcim: add inline stylesheet to rack elevation api view 2019-12-08 17:58:21 +01:00
hellerve
1a9b9f50d8 dcim: fix fonts & texts in svg 2019-12-08 17:58:21 +01:00
hellerve
808f5c95e3 dcim: make front and rear work (references #2248) 2019-12-08 17:58:21 +01:00
hellerve
d11de6d021 dcim: add rack-elevations api endpoint (references #2248) 2019-12-08 17:58:20 +01:00
Jeremy Stretch
88c7d95b08 ClusterForm should inherit from TenancyForm 2019-12-06 16:47:29 -05:00
Jeremy Stretch
2956eff051 Closes #648: Pre-populate forms when selecting "create and add another" 2019-12-06 16:40:39 -05:00
Jeremy Stretch
b05566e96f Implement tag replication for #33 2019-12-06 16:22:56 -05:00
Jeremy Stretch
446acbdf82 Closes #33: Add ability to clone objects (pre-populate form fields) 2019-12-06 16:13:52 -05:00
Jeremy Stretch
f2076c9572 Fixed git commit hook 2019-12-06 12:54:13 -05:00
Jeremy Stretch
d71e6698f4 Extend git commit hook to check for missing schema migrations 2019-12-06 12:42:59 -05:00
Jeremy Stretch
9b26225fdd #3720: Update migration to add powerfeeds to termination_type limit list (does not impact database) 2019-12-06 12:29:31 -05:00
Jeremy Stretch
f8c5ca942a #3722: Update migration with new validator (does not impact database) 2019-12-06 12:19:29 -05:00
Jeremy Stretch
47fefbec07 Default to localhost in example Redis configs (needed for CI to work) 2019-12-06 12:00:51 -05:00
Jeremy Stretch
45917f8014 Closes #3408: Remove WEBHOOKS_ENABLE configuration setting 2019-12-06 11:52:28 -05:00
Jeremy Stretch
dd3e7397a4 Add ITA plug/outlet types (#792) 2019-12-06 11:26:44 -05:00
Jeremy Stretch
7518174374 Closes #3731: Change Graph.type to a ContentType foreign key field 2019-12-06 10:32:59 -05:00
Sander Steffann
02a009b7a7 Don't redefine exception but split the code 2019-12-06 16:32:18 +01:00
Jeremy Stretch
16353ce63c Correct stalebot config file name 2019-12-05 21:43:22 -05:00
Jeremy Stretch
7a4b202064 Fixes #3725: Enforce client validation for minimum service port number 2019-12-05 21:22:34 -05:00
Jeremy Stretch
a97ebc6d4c Fixes #3722: Allow the underscore character in IPAddress DNS names 2019-12-05 21:14:29 -05:00
Jeremy Stretch
9e765b1704 Fixes #3730: Add link to docs page for custom links 2019-12-05 21:07:43 -05:00
Jeremy Stretch
ec9443edb8 Changelog updates 2019-12-05 20:52:30 -05:00
Jeremy Stretch
dcb2c4722c Merge pull request #3732 from netbox-community/3569-api-choice-slugs
Replace API integer API choice values with slugs
2019-12-05 17:53:47 -05:00
Jeremy Stretch
b0c0adf6e7 Adapt device component import forms from #3711 2019-12-05 17:49:44 -05:00
Jeremy Stretch
17898a4c57 Merge branch 'develop-2.7' into 3569-api-choice-slugs 2019-12-05 17:43:11 -05:00
Jeremy Stretch
edbf562803 Annotate all migration operation lists 2019-12-05 17:42:33 -05:00
Jeremy Stretch
5d772d7055 Webhook.http_content_type to slug (#3569) 2019-12-05 17:11:59 -05:00
Daniel Sheppard
8cbd2f5c2d Add list view for device components (#3719)
* Initial Work on #3564

* #3564 - Fixup issue with filter on interface

* #3564 - Fix PEP8 errors

* #3564 - Finalize fields, readjust order, reduce repetition

* #3564 - Update Changelog

* #3564 - Fix extra space

* #3564 - Change interface table ordering

* #3564 - Minor cleanup

* #3564 - Add Import Links

* Fix PEP8
2019-12-05 17:10:49 -05:00
Jeremy Stretch
89e720cb77 ExportTemplate.template_language to slug (#3569) 2019-12-05 17:01:00 -05:00
Jeremy Stretch
2583823e5f Delete obsolete user action types 2019-12-05 16:50:44 -05:00
Jeremy Stretch
33890e6b97 Remain consistent with original action strings (e.g. 'created' instead of 'create') 2019-12-05 16:42:10 -05:00
Jeremy Stretch
a2b0da2608 Fix changelog table action labels 2019-12-05 16:37:22 -05:00
Jeremy Stretch
2bcbcd3458 ObjectChange.action to slug (#3569) 2019-12-05 16:30:15 -05:00
Jeremy Stretch
8efde811e9 Fix PowerFeed field defaults 2019-12-05 16:05:45 -05:00
Jeremy Stretch
4e1ee270cf Extend CustomField migration to update CustomFieldChoice.field.limit_choices_to 2019-12-05 16:02:52 -05:00
Jeremy Stretch
7a3c725f51 Convert BUTTON_CLASS_CHOICES to a ChoiceSet 2019-12-05 15:59:16 -05:00
Jeremy Stretch
fe2c682dc3 Changelog updates 2019-12-05 15:54:29 -05:00
Sander Steffann
adb25fd7d7 822 bulk import of device components (#3711)
Closes #822: CSV import for device components

* Implement CSV import for netbox-community#822

* Comment out default_return_url until there is a proper target

* Fix the default value of `enabled` when not included in the import

* rear_port is definitely required here

* Power Ports don't have a type (yet)

* Add import for console-ports and console-server-ports

* Add import for device-bays
2019-12-05 15:36:11 -05:00
Jeremy Stretch
bfea77baa5 CustomField.filter_logic to slug 2019-12-04 21:09:02 -05:00
Jeremy Stretch
3ff22bea56 CustomField.type to slug 2019-12-04 21:01:50 -05:00
Jeremy Stretch
ca11b9a2f5 VirtualMachine.status to slug 2019-12-04 20:40:18 -05:00
John Anderson
1048d3909b fixes #3724 - allow filtering interfaces by more than one device name 2019-12-04 02:00:08 -05:00
Jeremy Stretch
4ecbfc4e5e Service.protocol to slug (#3569) 2019-11-27 22:27:06 -05:00
Jeremy Stretch
213bd1555a VLAN.status to slug (#3569) 2019-11-27 22:15:59 -05:00
Jeremy Stretch
14a7a33cc2 IPAddress.role to slug (#3569) 2019-11-27 22:09:16 -05:00
Jeremy Stretch
ba8f324b12 IPAddress.status to slug (#3569) 2019-11-27 21:54:01 -05:00
Jeremy Stretch
929c0648d0 Prefix.status to slug (#3569) 2019-11-27 21:46:53 -05:00
Jeremy Stretch
21fe5902a8 PowerOutlet.feed_leg to slug (#3569) 2019-11-27 21:30:11 -05:00
Jeremy Stretch
b2caaa6733 Fixes #3312: Fix validation error when editing power cables in bulk 2019-11-27 09:19:34 -05:00
Jeremy Stretch
15722c1871 Fixes #3720: Correctly indicate power feed terminations on cable list 2019-11-26 16:56:11 -05:00
Jeremy Stretch
1d18948307 Fixes #3709: Prevent exception when importing an invalid cable definition 2019-11-26 16:46:51 -05:00
Jeremy Stretch
8c7f6c62b0 PowerFeed.status to slug (#3569) 2019-11-25 21:22:14 -05:00
Jeremy Stretch
2dc07ca30d PowerFeed.phase to slug (#3569) 2019-11-25 21:14:04 -05:00
Jeremy Stretch
bb8b012397 PowerFeed.supply to slug (#3569) 2019-11-25 21:08:34 -05:00
Jeremy Stretch
62494f295e PowerFeed.type to slug (#3569) 2019-11-25 21:03:11 -05:00
Jeremy Stretch
9872a46583 Rack.outer_unit to slug (#3569) 2019-11-25 20:54:24 -05:00
Jeremy Stretch
4846557d61 Cable.length_unit to slug (#3569) 2019-11-25 20:40:29 -05:00
Jeremy Stretch
79a40e22c9 Cable.type to slug (#3569) 2019-11-25 19:57:13 -05:00
Jeremy Stretch
dead5b42be Front/RearPort.type to slug (#3569) 2019-11-25 19:39:25 -05:00
Jeremy Stretch
bcc34f6099 Device.face to slug (#3569) 2019-11-25 19:23:43 -05:00
Jeremy Stretch
6a451e0c0e Merge pull request #3701 from hSaria/3697-custom-scripts-example-typo
Fixes #3697: Correct field_order attribute name
2019-11-22 08:45:21 -05:00
Jeremy Stretch
5c95927a43 Site.status to slug (#3569) 2019-11-21 22:54:01 -05:00
Jeremy Stretch
3fa4ceadb0 Interface.mode to slug (#3569) 2019-11-21 22:50:01 -05:00
Jeremy Stretch
f93cd17fee Consolidate #3569 field migrations by model 2019-11-21 22:26:35 -05:00
Jeremy Stretch
5f5081f719 Interface.type to slug (#3569) 2019-11-21 22:11:02 -05:00
Jeremy Stretch
180d3d0029 Resolved migration discrepancies when dealing with NULL values 2019-11-21 21:44:30 -05:00
Jeremy Stretch
4e2863e4ec Move CircuitTermination.term_side choices to a ChoiceSet 2019-11-21 21:28:59 -05:00
hSaria
b46e52eccc Fixed #3697: Correct field_order attribute name 2019-11-20 17:03:12 +00:00
Jeremy Stretch
f3a41df395 #3455: Correct related_name on Cluster.tenant 2019-11-18 22:12:29 -05:00
Jeremy Stretch
afd82fd9d3 DeviceType.subdevice_role to slug (#3569) 2019-11-18 22:08:33 -05:00
Jeremy Stretch
fbd12e1887 Create a separate migration for each field 2019-11-18 21:41:04 -05:00
Jeremy Stretch
4f0d82ac16 Standardize migration names for #3569 2019-11-18 21:04:12 -05:00
Jeremy Stretch
88b8cf3360 Tweak migrations to handle NULL values 2019-11-18 20:56:22 -05:00
Jeremy Stretch
a8db07e0a8 Device.face to slug (#3569) 2019-11-16 21:46:07 -05:00
Jeremy Stretch
c79c29e769 Rack.status to slug (#3569) 2019-11-15 22:03:41 -05:00
Jeremy Stretch
e1e09bff9b Correct Rack.type migration logic 2019-11-15 21:50:33 -05:00
Jeremy Stretch
07aa036fe8 Convert RACK_WIDTH_CHOICES to ChoiceSet 2019-11-15 21:33:56 -05:00
Jeremy Stretch
8d27b62114 Rack.status to slug (#3569) 2019-11-15 21:31:57 -05:00
Jeremy Stretch
62b45494b6 Convert all DCIM choice classes to ChoiceSets 2019-11-15 21:17:01 -05:00
Jeremy Stretch
de986ec392 Merge pull request #3687 from kobayashi/3679
fix url expressions
2019-11-14 22:03:03 -05:00
Jeremy Stretch
4b415caad2 Changelog for #3663 2019-11-14 22:01:37 -05:00
Jeremy Stretch
bfede60f3d Rename CreatedUpdatedFilter to CreatedUpdatedFilterSet 2019-11-14 22:00:12 -05:00
Jeremy Stretch
03b8759597 'base_name' deprecated in DRF v3.9.0 2019-11-14 21:58:37 -05:00
Jeremy Stretch
bdd623f82c Merge pull request #3680 from struppinet/develop
Closes #3663: API filter by created, last_updated
2019-11-14 21:57:26 -05:00
kobayashi
3c8083ed7f fix url expressions 2019-11-13 00:48:47 -05:00
kobayashi
5904f1f8ee Changelog for #3329 2019-11-12 09:47:31 -05:00
kobayashi
cc848a3f01 Merge pull request #3684 from bbock/docs-remove-p3p
Docs: Remove obsolete P3P policy
2019-11-12 09:38:46 -05:00
Bernhard Bock
1aaa101fb5 Docs: Remove obsolete P3P policy
P3P is obsolete (https://www.w3.org/TR/P3P11/), therefore the HTTP header
should be removed from the recommended config in the installation docs.
2019-11-08 15:13:32 +01:00
struppi
0319450643 Closes #3663: rename filter class 2019-11-07 22:41:09 +01:00
struppi
099774d667 Closes #3663: PEP8 fixes 2019-11-07 22:38:51 +01:00
Jeremy Stretch
e09ad6915f Circuit.status (#3569) 2019-11-07 11:11:10 -05:00
Jeremy Stretch
a2a6b754be Introduce ChoiceSet class for field choices 2019-11-07 10:33:10 -05:00
Jeremy Stretch
d392982fe7 Extend DeviceType import test with power port/outlet types 2019-11-06 16:59:01 -05:00
Jeremy Stretch
8cb7eb0382 Convert console port types to slugs (#3569) 2019-11-06 16:56:46 -05:00
Jeremy Stretch
48dcd2d2b9 Merge pull request #3675 from netbox-community/792-power-types
Introduce power port and outlet types
2019-11-06 16:12:37 -05:00
Jeremy Stretch
6ccaa0d9bd Initial work on #792 2019-11-06 15:30:54 -05:00
Jeremy Stretch
b1761f7856 #3139: Add a message indicating why the user is redirected 2019-11-06 10:01:42 -05:00
Jeremy Stretch
1bc38f66ae Changelog entries for #3139 and #3457 2019-11-06 09:58:30 -05:00
Jeremy Stretch
b4433a8471 Merge pull request #3667 from steffann/3139-disable-user-password-change-if-come-in-with-ldap-auth
Hide password change page when user is logged in using LDAP
2019-11-06 09:57:25 -05:00
Jeremy Stretch
053f49c76a Merge pull request #3673 from ananace/cable-color-display
3457 Display cable colors in device interface list
2019-11-06 09:53:59 -05:00
Jeremy Stretch
fbde6187ea Fixes #3669: Include weight field in prefix/VLAN role form 2019-11-06 09:39:21 -05:00
Jeremy Stretch
5eb5c4bac5 Fixes #3674: Include comments on PowerFeed view 2019-11-06 09:26:49 -05:00
Jeremy Stretch
fb4283ed53 Move alternative installations to the GitHub wiki 2019-11-06 09:05:12 -05:00
Alexander Olofsson
bbd65988f9 3457 Display cable colors in device interface list 2019-11-06 10:15:55 +01:00
struppi
a11fa44170 Closes #3663: fix inheritance error 2019-11-04 21:00:44 +01:00
struppi
99a542e4e4 Closes #3663: API filter by created, last_updated 2019-11-04 20:51:56 +01:00
Sander Steffann
a6f2d5b414 Fix code for PEP8 2019-11-03 16:12:39 +03:00
Sander Steffann
7f779e3942 Hide password change page when user is logged in using LDAP 2019-11-03 16:05:53 +03:00
Sander Steffann
7306d56902 Add support for S3 storage for media 2019-11-03 14:16:12 +03:00
Jeremy Stretch
b8f1585976 Merge branch 'develop' into develop-2.7 2019-11-01 16:19:36 -04:00
Jeremy Stretch
a2a83a4a4c Post-release version bump 2019-11-01 15:54:17 -04:00
Jeremy Stretch
9f7313e492 Merge pull request #3661 from netbox-community/develop
Release v2.6.7
2019-11-01 15:43:38 -04:00
Jeremy Stretch
f6fbf66c8c Merge branch 'master' into develop 2019-11-01 15:39:24 -04:00
Jeremy Stretch
3deedfd177 Release v2.6.7 2019-11-01 15:37:05 -04:00
Jeremy Stretch
e9d5ff095c Suppress migration messages during tests; fix typo 2019-11-01 15:08:59 -04:00
Jeremy Stretch
43d6bfa15f Corrected test 2019-11-01 15:08:20 -04:00
Jeremy Stretch
875e09013c Move TreeNodeMultipleChoiceFilter tests to utilities (follow-up to #3616) 2019-11-01 15:01:24 -04:00
Jeremy Stretch
ee854eff2c Changelog for #3357 2019-11-01 14:31:03 -04:00
Jeremy Stretch
b176e0fafd Merge pull request #3616 from kobayashi/3357
allow null region filtering
2019-11-01 14:29:32 -04:00
Jeremy Stretch
fb24a4d420 Merge pull request #3660 from tyler-8/gunicorn_options
Add max_requests details to example config
2019-11-01 12:32:39 -04:00
Jeremy Stretch
391c42300e Closes #3659: Add filtering for objects in admin UI 2019-11-01 12:22:39 -04:00
Tyler Bigler
2a8fa01a57 Increase request counts for max_requests 2019-11-01 12:09:44 -04:00
Jeremy Stretch
bd4b496d14 Tweak PR template to indicate placement of issue number 2019-11-01 11:52:43 -04:00
Jeremy Stretch
cf5c24ee2d Add new Interface type from #3619 2019-11-01 11:49:17 -04:00
Jeremy Stretch
66f4aac0e8 Changelog for #3619 2019-11-01 11:45:22 -04:00
Jeremy Stretch
267caa348e Merge pull request #3657 from Netnod/3619-new-400G-osfp-interface-type
3619 new 400 g osfp interface type
2019-11-01 11:43:43 -04:00
Tyler Bigler
7bf09a3085 Remove redundant word 2019-11-01 10:26:53 -04:00
Tyler Bigler
a0de0696c5 Add max_requests details to example config 2019-11-01 10:23:25 -04:00
Jeremy Stretch
a63383dc08 Reorganized navigation menu 2019-10-30 16:39:32 -04:00
Jeremy Stretch
0ad19081ac Move slug-based choices to choices.py 2019-10-30 16:31:04 -04:00
Emil Palm
aa6b2b8407 Merge remote-tracking branch 'upstream/develop' into 3619-new-400G-osfp-interface-type 2019-10-30 14:31:17 -05:00
Emil Palm
3e6726ff97 Add IFACE_TYPE_400GE_OSPF 2019-10-30 14:30:23 -05:00
Jeremy Stretch
bb30f64252 Closes #1865: Add console port and console server port types 2019-10-30 14:25:55 -04:00
Jeremy Stretch
c4dd76a748 Updated v2.7 release notes 2019-10-30 10:34:26 -04:00
Jeremy Stretch
56a248e601 Merge pull request #3654 from netbox-community/3538-scripts-api
3538: Add custom script API endpoints
2019-10-30 09:35:22 -04:00
Jeremy Stretch
0f65cf23a5 Only use module.name for human-facing display 2019-10-30 09:13:26 -04:00
Jeremy Stretch
fd3f718a0a Add tests for custom script API 2019-10-29 16:54:27 -04:00
Jeremy Stretch
93d28e6a72 Improve script output serialization 2019-10-29 16:17:59 -04:00
Jeremy Stretch
60ec3fde9d Closes #3652: Limit next/previous rack by assigned rack group 2019-10-29 15:17:00 -04:00
Jeremy Stretch
1cfb8aea23 Initial work on #3538: script execution API 2019-10-28 15:02:21 -04:00
Jeremy Stretch
846acf7e9d Changelog for #3629 2019-10-28 13:19:01 -04:00
kobayashi
fb9279cc74 Merge pull request #3645 from BegBlev/llpd-port-id
Retrieve port-id in LLDP tab
2019-10-28 12:19:10 -04:00
kobayashi
d2aa9b8e79 filtering multiple regions with null 2019-10-28 02:24:44 -04:00
Tyler Bigler
eaeb52de20 Add CONN_MAX_AGE to documentation (#3642)
* Add CONN_MAX_AGE to sample configurations

* Correct alignment

* Restore ghost space

* Correct alignment.

* Use stable docs url
2019-10-25 13:11:48 -04:00
Jeremy Stretch
fdbf41e9fd Fixes #3643: Update all Django documentation links to 'stable' version 2019-10-25 11:09:30 -04:00
Jeremy Stretch
092346c819 Changelog for #3309 2019-10-25 09:57:17 -04:00
Jeremy Stretch
5a5f51fe48 Merge pull request #3632 from netbox-community/3309-changelog-middleware
Rewrite change logging middleware
2019-10-25 09:47:32 -04:00
Jeremy Stretch
800df1ebbe Fixes #3636: Add missing rack_group field to PowerFeed CSV export 2019-10-25 09:27:33 -04:00
John Anderson
8eec67e73a #3635 changelog 2019-10-24 23:31:06 -04:00
John Anderson
33b420652d Merge pull request #3639 from sdktr/patch-1
Fix #3635 - cache circuits.*
2019-10-24 21:16:28 -04:00
Stefan de Kooter
42b679d9a3 Fix #3635 - cache circuits.*
Enable caching for items under the circuits app
2019-10-25 00:46:05 +02:00
Jeremy Stretch
ae4f17264f Fixes #3460: Extend upgrade script to validate Python dependencies 2019-10-23 17:12:32 -04:00
Jeremy Stretch
c7d8083ac6 Closes #3594: Add ChoiceVar for custom scripts 2019-10-23 15:59:27 -04:00
Jeremy Stretch
95fec1a87c Merge pull request #3627 from bdlamprecht/pg_dump-documentation
Adding note on invalidating cache
2019-10-23 12:24:27 -04:00
Jeremy Stretch
657a7aef42 Changelog for #3455 2019-10-23 11:55:45 -04:00
Jeremy Stretch
ea0d232169 Merge pull request #3572 from frelon/cluster-tenant
Add tenancy to cluster
2019-10-23 11:53:22 -04:00
Jeremy Stretch
7467347af1 Fixes #3596: Prevent server error when reassigning a device to a new device bay 2019-10-23 09:28:00 -04:00
Jeremy Stretch
0ebc2e4ac0 Fix reporting of custom fields in webhook data on object deletion 2019-10-22 16:12:25 -04:00
Jeremy Stretch
ccb9f7bfe2 Rewrote ObjectChangeMiddleware to remove the curried handle_deleted_object() function 2019-10-22 15:10:49 -04:00
kobayashi
766b5dff24 allow null region filtering 2019-10-22 00:41:49 -04:00
Vincent Catros
68e0329c1b Retrieve port-id in LLDP tab 2019-10-21 11:57:23 +02:00
Brady Lamprecht
fd99994fdb Adding note on invalidating cache 2019-10-18 14:59:55 -06:00
Jeremy Stretch
f21a63382c Changelog for #3340 2019-10-18 09:08:56 -04:00
Jeremy Stretch
6f0581598b Merge pull request #3613 from kobayashi/3340
modified front port connection type list
2019-10-18 09:07:22 -04:00
kobayashi
244e85e836 modify patch panel port connection type list 2019-10-18 00:01:21 -04:00
Jeremy Stretch
1df6713ad5 Minor improvements pertaining to CII best practices 2019-10-17 20:56:37 -04:00
Jeremy Stretch
c6893731ad Merge pull request #3621 from netbox-community/451-devicetype-import
Enable YAML/JSON-based DeviceType import
2019-10-17 16:43:15 -04:00
Jeremy Stretch
2ffbced47e Rework InterfaceTypes and PortTypes classes 2019-10-17 16:38:31 -04:00
Jeremy Stretch
bfce177a07 Merge pull request #3604 from netbox-community/3282-seperate-redis-config
implements #3282 - seperate webhooks and caching redis configs
2019-10-17 16:03:26 -04:00
Jeremy Stretch
8ca182571c Rebase schema migrations 2019-10-17 15:53:10 -04:00
Jeremy Stretch
801dd384d8 Merge branch 'develop' into develop-2.7 2019-10-17 15:51:33 -04:00
Jeremy Stretch
adc96702db Deleted errant import of graphviz 2019-10-17 15:43:49 -04:00
Jeremy Stretch
af73ce75ce Merge pull request #3607 from netbox-community/3606-stale-bot
implemented #3606 - added stale bot config
2019-10-17 14:32:40 -04:00
Jeremy Stretch
f08968da49 Exempt issues tagged with "status: blocked" 2019-10-17 14:28:27 -04:00
Fredrik Lönnegren
18e0bd8937 Fix typo 2019-10-16 08:22:06 +02:00
John Anderson
24344ccfaf Merge pull request #3615 from markkuleinio/develop
Update examples in webhooks.md
2019-10-15 14:27:20 -04:00
Markku Leiniö
91f045a2e4 Update examples in webhooks.md 2019-10-15 20:51:57 +03:00
Jeremy Stretch
050dfb279d Merge pull request #3597 from dgarros/patch-1
Update pillow version to 6.2.0
2019-10-15 11:54:44 -04:00
Jeremy Stretch
f9b7f18be6 Merge pull request #3609 from ScanPlusGmbH/missing-variable
Add SCRIPTS_ROOT to configuration.example.py
2019-10-14 11:58:28 -04:00
Tobias Genannt
a7380ba353 Add SCRIPTS_ROOT to configuration.example.py
Fixes #3608 by adding the new variable to the example configuration.
2019-10-14 09:29:04 +02:00
John Anderson
b8feba1070 implemented #3606 - added stale bot config 2019-10-13 04:12:58 -04:00
John Anderson
64575fec42 Merge pull request #3605 from netbox-community/3445-webhooks-additional-headers
implemented #3445 - Add support for additional user defined headers t…
2019-10-13 03:15:43 -04:00
John Anderson
c7d9bf839e implemented #3445 - Add support for additional user defined headers to be added to webhook requests 2019-10-13 03:09:58 -04:00
John Anderson
0d15ac15ae implements #3282 - seperate webhooks and caching redis configs 2019-10-13 02:49:54 -04:00
John Anderson
b013a60b12 Merge branch 'develop' into develop-2.7 2019-10-13 02:03:16 -04:00
John Anderson
8480c0da53 Merge pull request #3603 from netbox-community/3499-webhooks-ca-filepath
implemented #3499 - Add  to Webhook model to support user supplied CA certificate verification of webhook requests
2019-10-13 01:50:10 -04:00
John Anderson
5e88313276 typo in change log 2019-10-13 01:45:20 -04:00
John Anderson
09d7d38b04 implemented #3499 - Add to Webhook model to support user supplied CA certificate verrification of webhook requests 2019-10-13 01:43:08 -04:00
Damien Garros
4cc29729f9 Update pillow version to 6.2.0
A new CVE just got reporter regarding Pillow 
http://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2019-16865
it's affecting all version prior to 6.2.0
2019-10-11 13:45:37 -04:00
Jeremy Stretch
d787c353f3 Added slug choices for interface and port types 2019-10-10 23:24:44 -04:00
Jeremy Stretch
553fe0fe97 Merge branch 'develop' into 451-devicetype-import 2019-10-10 13:50:57 -04:00
Jeremy Stretch
aeeb49a6a7 Merge branch 'develop' into develop-2.7 2019-10-10 13:41:10 -04:00
Jeremy Stretch
b25faec159 Post-release version bump 2019-10-10 12:42:57 -04:00
Jeremy Stretch
c2b1556d68 Correct version number 2019-10-10 12:41:02 -04:00
Jeremy Stretch
81acf57518 Merge pull request #3591 from netbox-community/develop
Release v2.6.6
2019-10-10 09:34:17 -07:00
Jeremy Stretch
abbc44a7d1 #3259: Add site and rack fields to cables filter form 2019-10-10 12:28:17 -04:00
Jeremy Stretch
74c259af2e Tweak release notes for v2.6.6 2019-10-10 12:21:40 -04:00
Jeremy Stretch
465304588e Release v2.6.6 2019-10-10 12:18:18 -04:00
Jeremy Stretch
70ad705380 Provide index link to most recent version for release note 2019-10-10 12:10:35 -04:00
Jeremy Stretch
4e6b60b0f4 Rearranged release notes 2019-10-10 12:02:53 -04:00
Jeremy Stretch
d849a49842 Fixes #3588: Enforce object-form JSON for local context data on devices and VMs 2019-10-10 10:41:08 -04:00
Jeremy Stretch
4c7c40a09d Merge pull request #3587 from netbox-community/reorganized-changelog
Reorganized CHANGELOG into release notes based on minor version number
2019-10-10 06:17:42 -07:00
Jeremy Stretch
521d6941fa Merge branch 'develop' into reorganized-changelog 2019-10-10 09:15:57 -04:00
kobayashi
e223c88548 Merge pull request #3553 from chambersh1129/develop
Replace all instances of .extra() in QuerySets with annotations #3117
2019-10-09 21:54:16 -04:00
chambersh1129
52e9369af4 PEP 8 E121 continuation line under-indented for hanging indent fix 2019-10-09 20:11:02 -04:00
chambersh1129
bdb3838d71 Replace all instances of .extra() in QuerySets with annotations, including references in docstrings 2019-10-09 20:11:02 -04:00
Jeremy Stretch
0a921d37f8 Fixes #3582: Enforce view permissions on global search results 2019-10-09 16:45:33 -04:00
Jeremy Stretch
896d58fc3f Fixes #3458: Prevent primary IP address for a device/VM from being reassigned 2019-10-09 16:22:06 -04:00
Jeremy Stretch
c770b13903 Fixes #3474: Fix device status page loading when NAPALM call fails 2019-10-09 15:44:32 -04:00
Jeremy Stretch
6cdeb0ed95 Fixes #3463: Correct CSV headers for exported power feeds 2019-10-09 15:25:31 -04:00
Jeremy Stretch
99f7cfcbd3 Closes #3581: Introduce commit_default custom script attribute to not commit changes by default 2019-10-09 15:16:50 -04:00
Jeremy Stretch
d402b6c3e5 Closes #3545: Add MultiObjectVar for custom scripts 2019-10-09 15:06:00 -04:00
Jeremy Stretch
738368a6a1 Closes #3471: Disallow raw HTML in Markdown-rendered fields 2019-10-09 14:47:40 -04:00
Jeremy Stretch
3dbf94146a Reorganized CHANGELOG into release notes based on minor version number 2019-10-09 13:54:05 -04:00
Jeremy Stretch
7a65930361 Merge pull request #3561 from netbox-community/3560-drf-bootstrap-css
Override DRF's builtin Bootstrap with NetBox's own more recent copy
2019-10-09 08:53:13 -07:00
Jeremy Stretch
6068b1a275 Closes #3580: Render text and URL fields as textareas in the custom link form 2019-10-09 09:40:24 -04:00
Jeremy Stretch
4c677e7fe6 Force checkbox table columns to narrow width 2019-10-07 17:22:35 -04:00
Jeremy Stretch
c668b990e1 Closes #3563: Enable editing of individual DeviceType components 2019-10-07 17:08:51 -04:00
Jeremy Stretch
a9d3d38a41 Changelog for #1941 2019-10-07 15:03:10 -04:00
Jeremy Stretch
f04c321aab Merge pull request #3565 from ananace/add-infiniband
Added InfiniBand interface form factor
2019-10-07 12:02:06 -07:00
Jeremy Stretch
ed785098a6 Fixes #3571: Prevent erroneous redirects when editing tags 2019-10-07 14:27:02 -04:00
Jeremy Stretch
9198d6924e Fixes #3573: Ensure consistent display of changelog retention period 2019-10-07 14:12:16 -04:00
Jeremy Stretch
4ab6aca2ec Fixes #3575: Restore label for comments field when bulk editing circuits 2019-10-07 14:06:41 -04:00
Fredrik Lönnegren
3262805938 Add tenancy to cluster
fix pep8
2019-10-07 16:20:14 +02:00
dansheps
04d9889127 Fixes #3574 - Change device to parent in interface edit form vlan filtering logic 2019-10-07 08:54:39 -05:00
Jeremy Stretch
a3b9bdaff1 Miscellaneous cleanup 2019-10-04 12:59:10 -04:00
Jeremy Stretch
6f83fca216 Delete obsolete IFACE_ORDERING constants 2019-10-03 19:53:32 -04:00
Jeremy Stretch
9f52cdeee9 Closes #3568: Update jQuery library to v3.4.1 2019-10-03 18:53:00 -04:00
Jeremy Stretch
26071903c1 Add stdout progress logging to cable migration 2019-10-03 18:49:56 -04:00
Jeremy Stretch
8a5ee6f8ea Merge pull request #3552 from kobayashi/develop
fixed broken links
2019-10-03 14:33:15 -04:00
Saria Hajjar
0ec8476b4d Added InfiniBand interface form factor 2019-10-03 09:22:19 +02:00
Jeremy Stretch
807d849657 PEP8 fix 2019-10-01 17:07:17 -04:00
Jeremy Stretch
6892b79366 Enforce object creation permissions 2019-10-01 16:54:10 -04:00
Jeremy Stretch
88d61db384 Fix YAMLLoadWarning 2019-10-01 16:39:11 -04:00
Jeremy Stretch
ee4e68b082 Rewrote test for DeviceType import 2019-10-01 16:36:31 -04:00
Jeremy Stretch
63ad93afd0 Merge pull request #3550 from netbox-community/3259-cable-filters
3259 cable filters
2019-10-01 14:25:20 -04:00
Jeremy Stretch
60e03eb841 Override DRF's builtin Bootstrap with NetBox's own more recent copy 2019-10-01 10:11:23 -04:00
kobayashi
b2ac81a78f fixed broken links 2019-09-28 00:41:09 -04:00
Jeremy Stretch
edc1b52f65 Adopted a different approach to importing related objects 2019-09-27 16:51:12 -04:00
Jeremy Stretch
aa9d034b5d Filter by site slug rather than by name 2019-09-27 15:12:16 -04:00
Jeremy Stretch
4889c8ff9b Closes #3259: Add rack and site filters for cables 2019-09-27 12:18:53 -04:00
Jeremy Stretch
d2ab41abfb Cache A/B termination devices on the Cable model 2019-09-26 17:17:12 -04:00
Jeremy Stretch
56ddf79ae7 Update Travis-CI badges in README 2019-09-26 15:03:20 -04:00
Jeremy Stretch
36d4f0d259 Fix typo 2019-09-25 16:39:04 -04:00
Jeremy Stretch
5f3528cf74 Capture MultiObjectField default form field values 2019-09-25 16:19:22 -04:00
Jeremy Stretch
47f1febfc9 Capture import form field default values 2019-09-25 16:06:09 -04:00
Jeremy Stretch
93154abb31 Merge branch 'develop' into 451-devicetype-import 2019-09-25 13:44:48 -04:00
Jeremy Stretch
778e5bed3c Merge branch 'develop' into develop-2.7 2019-09-25 13:44:29 -04:00
Jeremy Stretch
ef1fa55902 Post-release version bump 2019-09-25 13:29:22 -04:00
Jeremy Stretch
963991e246 Merge pull request #3544 from netbox-community/develop
Release v2.6.5
2019-09-25 13:28:17 -04:00
Jeremy Stretch
3e4cd59fc0 Releae v2.6.5 2019-09-25 13:24:28 -04:00
Jeremy Stretch
874247c7ab Merge pull request #3508 from mohahmed13/develop
Adding a reference to deploying NetBox via Kubernetes manifests
2019-09-25 12:11:08 -04:00
Jeremy Stretch
b7b04045de Closes #3515: Enable export templates for inventory items 2019-09-25 12:07:41 -04:00
Daniel Sheppard
a84dbbf482 Fixes: #3543 - Adds inline vlan editing to virtual machine interfaces 2019-09-25 10:49:08 -05:00
Jeremy Stretch
f54774f6a1 Closes #3297: Include reserved units when calculating rack utilization 2019-09-25 10:54:08 -04:00
Daniel Sheppard
a359d88897 Update changelog 2019-09-25 09:29:54 -05:00
Daniel Sheppard
458251683c Fixes: #3540 - Changed interface edit to use new inline vlan edit fields 2019-09-25 09:28:23 -05:00
Jeremy Stretch
eeb3434349 Closes #3347: Extend upgrade script to automatically remove stale content types 2019-09-25 10:22:02 -04:00
Jeremy Stretch
d183a9e7b5 Closes #3352: Enable filtering changelog API by changed_object_id 2019-09-25 10:11:41 -04:00
Jeremy Stretch
86cef1c502 Fixes #3435: Change IP/prefix CSV export to reference VRF name instead of RD 2019-09-25 09:39:03 -04:00
Jeremy Stretch
b8d8cb33ff Closes #3529: Enable filtering circuits list by region 2019-09-25 09:21:21 -04:00
Jeremy Stretch
0615d368f2 Force validation of individual objects within a MultiObjectField 2019-09-24 16:51:59 -04:00
Jeremy Stretch
30ee232654 Move JSON/YAML data valdiation to ImportForm 2019-09-24 16:13:52 -04:00
Daniel Sheppard
a4690ec5ce Fix ordering for rack positioning 2019-09-24 15:08:57 -05:00
Jeremy Stretch
2621f17cde Remove legacy CSV-based DeviceType import 2019-09-24 16:03:10 -04:00
Jeremy Stretch
15b2a7eab0 Fix form rendering; enable toggling of redirect to imported object 2019-09-24 15:58:23 -04:00
Daniel Sheppard
d0597cd289 Fix ordering for Rack Positioning 2019-09-24 14:36:41 -05:00
Jeremy Stretch
fe85dc1186 Closes #3524: Enable bulk editing of power outlet/power port associations 2019-09-24 15:27:47 -04:00
Jeremy Stretch
51baaab74b Changelog for #3464 2019-09-24 15:14:22 -04:00
Jeremy Stretch
35fc0d6847 Merge pull request #3536 from DanSheps/develop
Fixes: #3464 - Change color picker to dynamic coloring from static CSS
2019-09-24 15:13:11 -04:00
Jeremy Stretch
ffc6eec483 Fixes #3519: Prevent cables from being terminated to virtual/wireless interfaces 2019-09-24 15:07:54 -04:00
Daniel Sheppard
17ec9aa170 Fixes: #3464 - Change color picker to dynamic coloring from static CSS 2019-09-24 09:39:06 -05:00
Daniel Sheppard
6fdd35785e Fixes: #3531 - Fix FG Color for Rack Role 2019-09-24 08:50:23 -05:00
Daniel Sheppard
fb34507def Fixes: #3532 - add device to graph type for documentation 2019-09-24 08:45:31 -05:00
Daniel Sheppard
8996c530c9 Fixes: #3534 - Add none option for untagged vlan field 2019-09-24 08:39:41 -05:00
Jeremy Stretch
b0724dfd14 Add developer guidance 2019-09-23 14:57:01 -04:00
Daniel Sheppard
a17060c060 Update CHANGELOG.md 2019-09-23 13:04:13 -05:00
Jeremy Stretch
f8e10f66e1 Remove extraneous demo scripts 2019-09-23 09:21:38 -04:00
Jeremy Stretch
5049c6c0a1 Add test for DeviceType import 2019-09-20 15:57:44 -04:00
Jeremy Stretch
60b70b6c7b Add RearPortTemplate power_port field 2019-09-20 15:16:14 -04:00
Jeremy Stretch
5266fc67c9 Extend DeviceType import to include related objects 2019-09-20 14:02:14 -04:00
Jeremy Stretch
0798533201 Add docs link for custom scripts; arrange links alphabetically 2019-09-20 09:10:32 -04:00
Jeremy Stretch
56dcadb69b Merged v2.6.4 2019-09-20 08:35:14 -04:00
Daniel Sheppard
a1216fc1b7 Fixed thrown error in parseURL 2019-09-19 10:32:47 -05:00
Jeremy Stretch
353195850f Post-release version bump 2019-09-19 09:36:23 -04:00
Jeremy Stretch
b8dd379cef Merge pull request #3518 from netbox-community/develop
Release v2.6.4
2019-09-19 09:34:49 -04:00
Jeremy Stretch
be2417d808 Release v2.6.4 2019-09-19 09:30:16 -04:00
Jeremy Stretch
d4b263dd0c Fixes #3439: Add a note about the Swagger API interface 2019-09-18 16:41:08 -04:00
Jeremy Stretch
37aaf6f4ab Fixes #3429: Update installation docs for Redis 2019-09-18 16:35:45 -04:00
Jeremy Stretch
51fb0b59ec Closes #3485: Enable embedded graphs for devices 2019-09-18 15:59:52 -04:00
Jeremy Stretch
a0545568cd Fixes #3514: Label TextVar fields when rendering custom script forms 2019-09-18 15:39:26 -04:00
Jeremy Stretch
84208d5429 Fixes #3511: Correct API URL for nested device bays 2019-09-18 14:40:47 -04:00
Jeremy Stretch
7264a4ffb6 Fixes #3513: Fix assignment of tags when creating front/rear ports 2019-09-18 14:33:47 -04:00
Daniel Sheppard
e8ee6f1bc5 Clean up extra line that snuck in 2019-09-17 15:45:55 -05:00
Jeremy Stretch
a742d897d7 Closes #3510: Add minimum/maximum prefix length enforcement for IPNetworkVar 2019-09-17 16:36:36 -04:00
Moh Ahmed
0903362334 Adding a reference to deploying NetBox via Kubernetes manifests 2019-09-17 15:51:29 -04:00
Jeremy Stretch
f8fdca4968 Initial work on JSON/YAML-based DeviceType import 2019-09-13 16:18:29 -04:00
Daniel Sheppard
0601619f50 Merge branch 'develop' of https://github.com/netbox-community/netbox into develop 2019-09-13 12:09:02 -05:00
Daniel Sheppard
1a1f6aff7b Closes: #3495 2019-09-13 12:08:48 -05:00
Jeremy Stretch
5962e7c942 Fixes #3501: Fix rendering of checkboxes on custom script forms 2019-09-13 11:45:35 -04:00
Daniel Sheppard
57d35181f0 Fix performance issues when creating/editing interfaces due to unfiltered vlan queryset 2019-09-12 11:13:40 -05:00
Daniel Sheppard
73065fa6e7 Using static element to determine brief parameter, corrected to $(element) 2019-09-11 10:10:43 -05:00
Jeremy Stretch
a8ca536d44 Bump platform name/slug max length to 100 chars (#3318) 2019-09-10 15:50:41 -04:00
Jeremy Stretch
062c65fd67 Changelog cleanup 2019-09-10 15:45:54 -04:00
Jeremy Stretch
f533530693 Moved related projects list to the wiki 2019-09-10 15:30:19 -04:00
Jeremy Stretch
355910e182 Fixes #3489: Prevent exception triggered by webhook upon object deletion 2019-09-09 15:50:10 -04:00
Daniel Sheppard
e67d4fb2e5 Update Changelog with Future Changes 2019-09-06 13:32:21 -05:00
Daniel Sheppard
050f2478d3 Fixes: #3318 - Increases length of platform name and slug to 64 characters (#3353) 2019-09-06 13:01:27 -05:00
Daniel Sheppard
9c6dbd7337 Add in in-line vlan editing and Bulk vlan editing (#3350)
* Fixes #3341 - Added in-line vlan editing
* Fixes #2160 - Added bulk vlan editing

Inconsequential behaviour changes:

* APISelect can now take "full=True" to return a non-brief set
* Select2 will no group by "group & site, group, site, global" if full=True is set in APISelect
2019-09-06 12:45:37 -05:00
Daniel Sheppard
9e258dd31e Fixes: #2902 - Implements systemd (#3017)
* Closes #2902 - Migrate to systemd from supervisord
* Closes #2902 - Migrate to systemd from supervisord

* Update systemd unit and environment file
* Add gunicorn.conf
* Update documentation and CHANGELOG.  Moved parameters around on service file
* Update Gitignore
2019-09-06 11:46:35 -05:00
Daniel Sheppard
8f5e73a598 Add filter for has local context data (#3159)
* Add filter for has local context data
* Broke out filter and form for re-use
* Fix missing StaticSelect2 import
* Fix missing BOOLEAN_WITH_BLANK_CHOICES import
* Fix class resolution
* Fix field ordering
* Fix PEP8 errors
2019-09-06 11:42:56 -05:00
Jeremy Stretch
480db83f39 Renumber remove_topology_maps migration 2019-09-05 10:25:44 -04:00
Jeremy Stretch
cc0f0c4843 Merge v2.6.3 2019-09-04 16:45:33 -04:00
Jeremy Stretch
2ce0ff505a Post-release version bump 2019-09-04 16:28:58 -04:00
Jeremy Stretch
a4d8b92cb1 Merge pull request #3478 from netbox-community/develop
Release v2.6.3
2019-09-04 16:27:32 -04:00
Jeremy Stretch
143a158e4a Release v2.6.3 2019-09-04 16:23:06 -04:00
Jeremy Stretch
4213454234 Tweak docs for custom scripts 2019-09-04 16:21:21 -04:00
Jeremy Stretch
559beffd24 Add documentation for custom links 2019-08-28 12:39:11 -04:00
Jeremy Stretch
5f4bac6076 Closes #3454: Enable filtering circuits by region 2019-08-28 12:12:27 -04:00
Jeremy Stretch
8ff3d2cbf6 Closes #3456: Enable bulk editing of tag color 2019-08-28 11:56:00 -04:00
Jeremy Stretch
273a9793db Fix typo 2019-08-28 10:51:56 -04:00
Jeremy Stretch
5a911aa5a1 Fixes #3392: Add database index for ObjectChange time 2019-08-28 10:48:19 -04:00
Jeremy Stretch
3078e366e2 Simplify changelog cleanup logic 2019-08-28 10:44:05 -04:00
Jeremy Stretch
22b8a45a71 Add tests for changelog 2019-08-28 10:18:37 -04:00
Jeremy Stretch
4756353fbd Merge pull request #3453 from netbox-community/3452-change-logging
Fixes #3452: Queue deletion ObjectChanges until after response is sent
2019-08-28 09:51:54 -04:00
Jeremy Stretch
3e8799b5c7 Fix script form rendering 2019-08-28 09:20:19 -04:00
Jeremy Stretch
a3d9e633c1 Always include 'commit' option 2019-08-26 17:04:04 -04:00
Jeremy Stretch
6e66f8d68a Fixes #3452: Queue deletion ObjectChanges until after response is sent 2019-08-26 16:52:05 -04:00
Jeremy Stretch
03ac2721bc Merge pull request #3423 from netbox-community/3415-custom-scripts
Add custom scripting
2019-08-26 14:06:22 -04:00
Jeremy Stretch
456621695a Wrap script form inside a panel 2019-08-26 13:53:30 -04:00
Jeremy Stretch
9a9660a765 Fix errant changelog entries when executing a script without committing 2019-08-26 11:59:38 -04:00
Jeremy Stretch
6568653d13 Fix typo in link 2019-08-22 10:51:29 -04:00
Jeremy Stretch
5248fc7c7c Merge pull request #3434 from netbox-community/3428-cache-invalidation
Cache invalidation
2019-08-22 10:49:51 -04:00
Jeremy Stretch
6a8f256a56 Fix typo 2019-08-21 15:46:06 -04:00
John Anderson
46bedc6156 missed a merge conflict resolution 2019-08-21 14:30:07 -04:00
John Anderson
63c3f423c2 Merge branch 'develop' into 3428-cache-invalidation 2019-08-20 17:35:54 -04:00
John Anderson
3d2a738f44 #3428 changelog 2019-08-20 17:27:40 -04:00
John Anderson
f0f1ef2ef2 fix signals update call 2019-08-20 17:20:46 -04:00
John Anderson
c359ac5737 convert update() calls to save() calls 2019-08-20 17:16:00 -04:00
Jeremy Stretch
a4936ad0dd Introduce BaseScript for extending Script without creating a new executable script 2019-08-19 14:40:08 -04:00
Jeremy Stretch
a02ded6b01 Import Django User model automatically when running nbshell 2019-08-19 11:47:50 -04:00
Jeremy Stretch
2d2bb3ec0c Fixes #3421: Fix exception when ordering power connections list by PDU 2019-08-19 11:27:36 -04:00
Jeremy Stretch
eb6e95ae9b Add tests for Script Variables 2019-08-19 10:41:44 -04:00
Jeremy Stretch
f56a0aebdb Closes #3430: Linkify platform field on device view 2019-08-19 09:50:41 -04:00
John Anderson
c54f2e3e40 remove blank line after update call 2019-08-19 02:11:54 -04:00
John Anderson
ade844f7a7 fixes #3428 - caching invalidation issues
Mitgate invalidation issues by using prefetch_related instead of select_related.
Also use invalidated_update instead of just update.
2019-08-19 01:53:39 -04:00
Jeremy Stretch
2929621651 Updated docs for IPNetworkVar and FileVar 2019-08-16 15:31:29 -04:00
Jeremy Stretch
de770faf6a Add FileVar for file uploads 2019-08-16 15:27:58 -04:00
Jeremy Stretch
99394de14e Change fields to field_order 2019-08-15 16:19:25 -04:00
Jeremy Stretch
305d330391 Docs updates 2019-08-15 16:07:15 -04:00
Jeremy Stretch
9c41984f6d Changelog for #3426 2019-08-15 15:31:05 -04:00
Jeremy Stretch
aa858fea03 Merge pull request #3427 from candlerb/candlerb/3426
Improve API error handling when a list is given as a choice value
2019-08-15 15:29:47 -04:00
Brian Candler
6e5d527fec Improve API error handling when a list is given as a choice value
Fixes #3426
2019-08-15 17:16:24 +01:00
Jeremy Stretch
b11d3dde46 Closes #3391: Update Bootstrap CSS to v3.4.1 2019-08-15 11:47:57 -04:00
Jeremy Stretch
3df8ccb92f Fixes #3424: Fix tag coloring for non-linked tags 2019-08-15 11:12:52 -04:00
Jeremy Stretch
0b95cab47b Closes #3386: Add mac_address filter for virtual machines 2019-08-15 11:02:40 -04:00
John Anderson
a6511632ad closes #3407 - Added code coverage reporting to the CI pipeline 2019-08-14 20:28:23 -04:00
Jeremy Stretch
cb0dbc0769 Add TextVar for large text entry 2019-08-14 16:20:52 -04:00
Jeremy Stretch
47d60dbb20 Fix table column widths 2019-08-14 15:46:08 -04:00
Jeremy Stretch
f8326ef6df Add markdown rendering for log mesages 2019-08-14 14:38:11 -04:00
Jeremy Stretch
434e656e27 Include stack trace when catching an exception 2019-08-14 14:26:13 -04:00
Jeremy Stretch
8bd1fad7d0 Use TreeNodeChoiceField for MPTT objects 2019-08-14 14:03:11 -04:00
Jeremy Stretch
7f65e009a8 Add convenience functions for loading YAML/JSON data from file 2019-08-14 13:08:21 -04:00
Jeremy Stretch
11e5e1c490 Show script log when an exception occurs 2019-08-14 12:19:36 -04:00
Jeremy Stretch
9c079ead4c Fix notice when form does not require user input 2019-08-14 10:18:25 -04:00
Jeremy Stretch
c562af3a13 Record script execution time 2019-08-14 10:12:30 -04:00
Jeremy Stretch
30e14db881 Tweak form display (cosmetic) 2019-08-14 09:40:23 -04:00
Jeremy Stretch
dab30f50d3 Add IPNetworkVar 2019-08-13 09:48:51 -04:00
Jeremy Stretch
3d6a583ce4 Allow user to override module name 2019-08-13 09:09:12 -04:00
Jeremy Stretch
44fd0ebb2d Meta.fields should be optional 2019-08-12 16:59:09 -04:00
Jeremy Stretch
0d289d660d Add option to commit database changes 2019-08-12 14:28:06 -04:00
Jeremy Stretch
3e75da4307 Implemented run_script() wrapper 2019-08-12 13:51:25 -04:00
Jeremy Stretch
19eb4c510c Move script attributes under a Meta class 2019-08-12 13:16:18 -04:00
Jeremy Stretch
dd4dafa7be Closes #3420: Serial number filter for racks, devices, and inventory items is now case-insensitive 2019-08-12 12:10:36 -04:00
Jeremy Stretch
116c395948 Fixes #3422: Prevent navigation menu from overlapping page content 2019-08-12 11:57:48 -04:00
Jeremy Stretch
ab504439fb Implemented permissions for scripts 2019-08-12 11:39:36 -04:00
Jeremy Stretch
463c636301 Extend example custom script to generate output 2019-08-12 11:13:16 -04:00
Jeremy Stretch
950a09895b BooleanVar cannot be required 2019-08-12 11:13:16 -04:00
Jeremy Stretch
c62a9f1b3f Example script tweak 2019-08-12 11:13:16 -04:00
Jeremy Stretch
3f7f3f88f3 Fix form field ordering 2019-08-12 11:13:16 -04:00
Jeremy Stretch
4fc19742ec Added documentation for custom scripts 2019-08-12 11:13:16 -04:00
Jeremy Stretch
9d054fb345 Add options for script vars; include script output 2019-08-12 11:13:16 -04:00
Jeremy Stretch
a25a27f31f Initial work on custom scripts (#3415) 2019-08-12 11:13:16 -04:00
Jeremy Stretch
15b55f5e62 Remove deprecated form_factor accessor on Interface and InterfaceTemplate 2019-08-08 21:35:59 -04:00
Jeremy Stretch
dccda62f2d Closes #2745: Remove topology maps 2019-08-08 21:33:20 -04:00
Jeremy Stretch
ef432754ee Started 2.7 branch 2019-08-08 21:19:14 -04:00
Jeremy Stretch
f18c3be745 Merge pull request #3412 from netbox-community/3405-bugfix
Move device component creation logic out of Device model
2019-08-08 21:16:11 -04:00
Jeremy Stretch
0516aecb03 Changelog for #3405 2019-08-07 17:49:54 -04:00
Jeremy Stretch
605be30fb2 Add test for device component creation 2019-08-07 17:48:12 -04:00
Jeremy Stretch
86cd044a68 Fixes #3405: Move device component creation logic into template models 2019-08-07 17:47:44 -04:00
Jeremy Stretch
068a0e2257 Removed invalid contact email 2019-08-02 15:02:29 -04:00
Jeremy Stretch
3a2fc43542 Post-release version bump 2019-08-02 10:31:56 -04:00
Jeremy Stretch
7fc60cd667 Merge pull request #3387 from netbox-community/develop
Release v2.6.2
2019-08-02 10:31:34 -04:00
Jeremy Stretch
c90baaa807 Release v2.6.2 2019-08-02 10:29:10 -04:00
Jeremy Stretch
ea9492d4bd Fixes #3384: Maximum and allocated draw fields should be included on power port template creation form 2019-08-02 09:56:02 -04:00
Jeremy Stretch
025f77dcdc Fixes #3385: Fix power panels list when bulk editing power feeds 2019-08-02 09:43:46 -04:00
Jeremy Stretch
eb19b1a39e Changelog for #3367 2019-08-02 09:13:48 -04:00
Jeremy Stretch
25748efd54 Merge pull request #3383 from ragzilla/develop
Closes #3367: Add BNC Front/Rear port types and Coaxial cable type.
2019-08-02 09:10:40 -04:00
Matt Addison
2215a095c8 Closes #3367: Add BNC Front/Rear port types and Coaxial cable type. 2019-08-01 10:33:29 -04:00
Jeremy Stretch
a32d185ff0 Fixes #3018: Components connected via a cable must have an equal number of positions 2019-07-31 10:12:51 -04:00
Jeremy Stretch
ea32853ab3 Fixes #3289: Prevent position from being nullified when moving a device to a new rack 2019-07-30 17:07:58 -04:00
Jeremy Stretch
a6c41e0be5 Changelog for #3368 2019-07-30 16:26:52 -04:00
Jeremy Stretch
f223f9b9c1 Merge pull request #3369 from jlrgraham23/fix-changelog-wording
Indicate when changelog retention configured to be forever.
2019-07-30 16:20:39 -04:00
Daniel Sheppard
bcc7daeac7 Fixes #3370 - Add filter class to VirtualChassis API 2019-07-24 12:22:15 -05:00
Justin L R Graham
890ba3ea94 Indicate when changelog retention configured to be forever. 2019-07-23 13:46:55 -05:00
Jeremy Stretch
cab3c50ae6 Closes #3314: Paginate object changelog entries 2019-07-18 21:40:36 -04:00
Jeremy Stretch
86b6b9bf8b Fixes #3315: Enable filtering devices/interfaces by multiple MAC addresses 2019-07-18 21:21:56 -04:00
Jeremy Stretch
71551893b1 Fixes #3293: Enable filtering device components by multiple device IDs 2019-07-18 20:42:15 -04:00
Jeremy Stretch
0431b296c4 Merge pull request #3325 from lassebm/fix-3324
Fixes #3324: Doc incorrectly states child devices shown as non-racked
2019-07-17 16:27:55 -04:00
Jeremy Stretch
376eae748c Changelog for #3323 2019-07-17 16:25:19 -04:00
Jeremy Stretch
f2a45c5892 Merge pull request #3326 from lassebm/fix-3323
Fixes #3323: Interface Connections view inaccessible with "dcim.view_interface" permission
2019-07-17 16:24:14 -04:00
Jeremy Stretch
88b176ae15 Changelog for #3307 2019-07-17 16:22:30 -04:00
Jeremy Stretch
f1744ef4db Merge pull request #3308 from mmahacek/powerpanel-count
Add Powerpanel count to home page
2019-07-17 16:20:27 -04:00
Jeremy Stretch
892ff0c1ca Changelog for #3342 2019-07-16 11:31:36 -04:00
Jeremy Stretch
647163e2b2 Merge pull request #3337 from robellegate/fix/docs_digitalocean_repo_links
Replacing references to digitalocean org
2019-07-16 10:18:37 -04:00
Jeremy Stretch
8e043b00b8 Closes #3330: Remove .pyc file cleanup step from upgrade script 2019-07-16 10:11:39 -04:00
Jeremy Stretch
154b9e1faf Fixes #3342: Fix cluster delete button permissions reference 2019-07-16 10:07:38 -04:00
Robert Ellegate
30ef4b208c Replacing references to digitalocean org
s/(?<=:\/\/github.com\/)digitalocean(?=\/netbox)/netbox-community/g
2019-07-10 09:23:43 -04:00
Lasse Bang Mikkelsen
6276f5f7b9 Fixes #3323: Interface Connections view inaccessible with "dcim.view_interface" permission 2019-07-04 17:37:28 +02:00
Lasse Bang Mikkelsen
118ec358c0 Fixes #3324: Doc incorrectly states child devices shown as non-racked 2019-07-04 17:28:25 +02:00
Jeremy Stretch
3da9af5a9f Fixes #3317: Fix permissions for ConfigContextBulkDeleteView 2019-07-02 09:39:26 -04:00
mmahacek
ddced4fc2b Add stats.powerpanel_count 2019-06-28 17:04:42 -07:00
mmahacek
7a41b02fdd Add line for PowerPanel count 2019-06-28 17:03:06 -07:00
Jeremy Stretch
6c3c6fba62 Closes #984: Allow ordering circuits by A/Z side 2019-06-27 12:30:17 -04:00
Jeremy Stretch
2bb9464905 Merge pull request #3296 from michaelxniu/patch-1
Create NOTICE file
2019-06-25 14:10:14 -04:00
Michael Niu
821924f57f Create NOTICE file 2019-06-25 13:59:00 -04:00
Jeremy Stretch
74f14c5535 Post-release version bump 2019-06-25 09:44:00 -04:00
Jeremy Stretch
80c8c4c4b2 Merge pull request #3295 from digitalocean/develop
Release v2.6.1
2019-06-25 09:41:29 -04:00
Jeremy Stretch
d219c3ea88 Release v2.6.1 2019-06-25 09:39:30 -04:00
Jeremy Stretch
954ba91c86 Closes #3154: Add virtual_chassis_member device filter 2019-06-24 16:31:21 -04:00
Jeremy Stretch
7effb7e8d4 Fix for #3229 2019-06-24 15:48:49 -04:00
Jeremy Stretch
3fdb655a92 Fixes #3269: Raise validation error when specifying non-existent cable terminationss 2019-06-24 15:42:15 -04:00
Jeremy Stretch
cf770bf40c Closes #3277: Add cable trace buttons for console and power ports 2019-06-24 14:27:34 -04:00
Jeremy Stretch
9f50ced6fc Changelog for #3229 2019-06-24 14:22:03 -04:00
Jeremy Stretch
4dd97eab0c Merge pull request #3232 from hellerve/fix-3229
Filter group by site in rack filter
2019-06-24 14:19:50 -04:00
Jeremy Stretch
5de242fe53 Closes #3281: Hide custom links which render as empty text 2019-06-24 12:20:09 -04:00
Jeremy Stretch
251ba08e09 Fixes #3283: Fix rack group assignment on PowerFeed CSV import 2019-06-24 11:10:35 -04:00
Jeremy Stretch
653770ede9 Fixes #3292: Ignore empty URL query parameters 2019-06-24 11:00:18 -04:00
Jeremy Stretch
70ef6a69ee Fixes #3290: Fix server error when viewing cascaded PDUs 2019-06-24 10:05:21 -04:00
Jeremy Stretch
5a6c928a7c Fixes #3279: Reset the PostgreSQL sequence for Tag and TaggedItem IDs 2019-06-21 17:34:06 -04:00
John Anderson
bd9ef9951b Merge pull request #3284 from cimnine/fix_pwd_protected_redis_cache
Fixes Cacheops with a password protected redis
2019-06-21 16:35:50 -04:00
Jeremy Stretch
c067549f21 Fixes #3275: Fix error when adding power outlets to a device type 2019-06-21 16:24:12 -04:00
Christian Mäder
94ca3abefc Fixes Cacheops with a password protected redis
As per the [`README.rst`][1] of `django-cacheops`, if a password is
added to the connection string, it must be in the form
`redis://:password@host:port/db`. Notice the colon, which was missing
from the implementation in [`settings.py`][2].

[1]: 8ad970d55a/README.rst
[2]: 86d5b48007/netbox/netbox/settings.py (L349)
2019-06-21 22:23:10 +02:00
Jeremy Stretch
86d5b48007 Post-release version bump 2019-06-20 17:01:21 -04:00
Jeremy Stretch
2b7e8c4b9f Merge pull request #3271 from digitalocean/develop
Release v2.6.0
2019-06-20 16:59:31 -04:00
Jeremy Stretch
f888d50a15 Release v2.6.0 2019-06-20 16:55:43 -04:00
Jeremy Stretch
dfcd2c247d Closes #3264: Annotate changelog retention time on UI 2019-06-20 14:05:53 -04:00
Jeremy Stretch
1c54d7ed55 Hide color block if cable color is not defined 2019-06-20 14:00:45 -04:00
Jeremy Stretch
7cb618df5e Fixes #3176: Add cable trace button for console server ports and power outlets 2019-06-20 13:58:32 -04:00
Jeremy Stretch
6778d1398f Added changelog noting #3239 has been fixed 2019-06-20 13:26:15 -04:00
Jeremy Stretch
1dd3e9dab1 Merge pull request #3270 from digitalocean/develop-2.6
Merge develop-2.6
2019-06-20 13:20:42 -04:00
Jeremy Stretch
99f6b3a3bd Merged develop 2019-06-20 13:10:45 -04:00
Jeremy Stretch
b626387b38 Bumped dependencies to latest releases 2019-06-20 10:06:39 -04:00
Jeremy Stretch
dd554ee7b5 Updated django-cors-headers to v3.0.2 2019-06-20 09:48:34 -04:00
Jeremy Stretch
fe28e5befe Cleaned up changelog 2019-06-20 09:31:01 -04:00
Jeremy Stretch
21856c6f0c Merge pull request #3268 from digitalocean/power-utilization-tweaks
Cleaned up logic for calculating power draw
2019-06-20 09:09:06 -04:00
John Anderson
b745401817 prometheus docs updates 2019-06-20 00:04:44 -04:00
John Anderson
625a09785a minor tweaks to error handling to allow for defaulted values from pre v2.6 data 2019-06-19 23:47:48 -04:00
Jeremy Stretch
1a5aaf54dd Cleaned up logic for calculating power draw 2019-06-19 10:51:53 -04:00
John Anderson
ce9f7a8ddc closes #3161 - prometheus env var docs and set prometheus to not be enabled by default 2019-06-17 16:38:05 -04:00
Jeremy Stretch
9747cae773 Fix power outlet connection link 2019-06-17 16:32:21 -04:00
Jeremy Stretch
948286aa32 Fixes #3258: Exception raised when creating/viewing a circuit with a non-connected termination 2019-06-17 16:27:26 -04:00
Jeremy Stretch
8da660f5da Fixes #3231: Fixed cosmetic error indicating a missing schema migration 2019-06-17 15:30:23 -04:00
Jeremy Stretch
b884341d73 Update migration for tweak to available_power 2019-06-17 15:23:37 -04:00
Jeremy Stretch
c9afe96324 Fix power utilization calculation for three-phase feeds 2019-06-17 15:16:52 -04:00
Jeremy Stretch
d529ebc172 Rename power_factor to max_utilization 2019-06-17 14:52:11 -04:00
Jeremy Stretch
d25dd52ec9 Compressed migrations 2019-06-17 14:41:40 -04:00
Jeremy Stretch
97a5f3ea0e Merge pull request #3262 from digitalocean/feature/524-power-utilization-graphs
#524 - Added power utilization graphs to power feeds, devices, and racks
2019-06-17 14:38:12 -04:00
John Anderson
2eeffce924 #524 - Added power utilization graphs to power feeds, devices, and racks 2019-06-16 06:11:32 -04:00
Jeremy Stretch
438b01815a Fix test for tags view 2019-06-05 15:05:35 -04:00
Jeremy Stretch
8b3ec625f6 Add missing PermissionRequiredMixin to TagListView 2019-06-05 14:47:43 -04:00
Jeremy Stretch
50cbfb9360 Fixed merge conflict in requirements.txt 2019-06-05 14:47:20 -04:00
Jeremy Stretch
90f7122fde Closes #3241: Correct terminology in inventory items table header 2019-06-05 12:10:33 -04:00
hellerve
e89343e100 dcim: filter group by site in rack filter (fixes #3229) 2019-06-02 14:26:28 +02:00
Jeremy Stretch
3bb3b85fa2 Merged v2.5.13 2019-05-31 21:37:41 -04:00
Jeremy Stretch
f9dba8a75c Post-release version bump 2019-05-31 09:56:50 -04:00
Jeremy Stretch
1a97a1c9d2 Merge pull request #3230 from digitalocean/develop
Release v2.5.13
2019-05-31 09:54:46 -04:00
Jeremy Stretch
893e327ac6 Release v2.5.13 2019-05-31 09:49:53 -04:00
dansheps
814c50f461 Fix #3228 - UrlEncode full path for next if not on logon page
Include the full path for the ?next= variable in login links if we are not on the logon page.
Additionally include next for post requests that have the next variable set (will only come from the login page itself generally)
2019-05-30 12:01:41 -05:00
dansheps
1958c0b118 Merge remote-tracking branch 'origin/develop' into develop
# Conflicts:
#	netbox/utilities/middleware.py
2019-05-30 10:59:25 -05:00
dansheps
a11b33d214 Fix #3228 - Send full path info instead of just path info and urlencode said path info 2019-05-30 10:58:39 -05:00
dansheps
7d053f8ba4 Fix #3228 - Send full path info instead of just path info and urlencode said path info 2019-05-30 10:54:29 -05:00
Jeremy Stretch
1e1aba73ef Remove request.user assertion from ObjectChangeMiddleware 2019-05-30 10:32:09 -04:00
Jeremy Stretch
b9b009c0b5 Fixes #3227: Fix exception when deleting a circuit with a termination(s) 2019-05-29 17:17:06 -04:00
Jeremy Stretch
a6ff6505c6 Closes #3151: Add inventory item count to manufacturers list 2019-05-29 15:20:36 -04:00
Jeremy Stretch
823257ca72 Closes #3185: Improve performance for custom field access within templates 2019-05-29 15:04:57 -04:00
Jeremy Stretch
0804c1acbd Fixed test from #3211 follow-up work 2019-05-29 10:51:49 -04:00
Jeremy Stretch
28facca291 Changelog & grammar tweak for #3211 2019-05-29 10:33:29 -04:00
Jeremy Stretch
a7ca49c44d Merge pull request #3222 from hellerve/tmp
Fix error message on trying to delete protected models
2019-05-29 10:24:28 -04:00
Jeremy Stretch
5639fc9791 Merge pull request #3195 from TakeMeNL/feature/3156
Closes #3156: Add site link to rack reservations overview
2019-05-29 10:19:10 -04:00
Jeremy Stretch
8b00513175 Changelog for #3031 2019-05-29 10:10:07 -04:00
Jeremy Stretch
00ffa358b2 Merge pull request #3197 from KhaledTo/bug/3031
Fixes #3031: Select2 creates multiple tags for tags with spaces
2019-05-29 10:08:59 -04:00
TakeMeNL
1ff7e1149c Closes #3156: Add site link to rack reservations overview 2019-05-29 16:08:24 +02:00
hellerve
2c7bad9fff utilities: move protectederror handling to modelviewset 2019-05-28 21:11:23 +02:00
Jeremy Stretch
c4f481d705 Bump DRF to 3.9.1 to address WS-2019-0037 2019-05-28 14:21:36 -04:00
Jeremy Stretch
99a3a216c3 Merge pull request #3216 from hellerve/fix-3168
Fix 3168: Update to new path syntax
2019-05-28 13:16:08 -04:00
Jeremy Stretch
87f5dd05f5 Fixes #3223: Fix filtering devices by "has power outlets" 2019-05-28 13:10:54 -04:00
hellerve
cc87d99017 all: fix error message on trying to delete protected models (references #3211) 2019-05-28 17:31:02 +02:00
hellerve
1366730a3f netbox urls: move to re_path as suggested by @jeremystretch 2019-05-27 22:41:10 +02:00
Jeremy Stretch
ab07f721cf Changelog for #3204 & #3207 2019-05-27 15:40:17 -04:00
Jeremy Stretch
3c83a18291 Merge pull request #3205 from ananace/fix-interface-connection
Fixes #3204: Fix connecting cables to interfaces
2019-05-27 15:38:36 -04:00
Jeremy Stretch
8bbb3031e5 Merge pull request #3207 from ananace/fix-connecting-rear
Fixes #3206: Unable to connect to rear ports
2019-05-27 15:31:49 -04:00
Jeremy Stretch
473dafc2c8 Changelog for #3184 2019-05-27 15:03:00 -04:00
Jeremy Stretch
38d5a8fdc0 Merge pull request #3199 from candlerb/candlerb/3184
Add grey border around color-block
2019-05-27 15:00:48 -04:00
hellerve
b114b9d396 utilities: add converters module and use for json/yaml url 2019-05-26 14:56:01 +02:00
hellerve
f9cd89a4a4 urls: fix 3168 by changing url to path 2019-05-26 14:56:00 +02:00
Alexander Olofsson
7ba9675f02 Fixes #3206: Unable to connect to rear ports 2019-05-22 19:58:26 +02:00
Alexander Olofsson
d0e7b052a8 Fixes #3204: Fix connecting cables to interfaces 2019-05-22 19:00:13 +02:00
Brian Candler
4313a717c4 Add grey border around color-block
Fixes #3184
2019-05-20 21:06:53 +01:00
Khaled BEN ABDALLAH
cbace6f831 Fixes #3031: Select2 creates multiple tags for tags with spaces 2019-05-18 22:43:47 +02:00
Jeremy Stretch
edabc8eee9 Closes #3138: Add 2.5GE and 5GE interface form factors 2019-05-16 20:49:00 -04:00
Jeremy Stretch
9b47e57e8e Closes #3183: Enable bulk deletion of sites 2019-05-16 20:24:55 -04:00
Jeremy Stretch
2f32488c25 Fixes #3190: Fix custom field rendering for Jinja2 export templates 2019-05-16 19:45:36 -04:00
Jeremy Stretch
62d497dd0b Closes #3186: Add interface name filter for IP addresses 2019-05-14 19:03:03 -04:00
Jeremy Stretch
e19feb92ea Move TenancyFilterForm to tenancy.forms 2019-05-09 14:36:18 -04:00
Jeremy Stretch
fbde6282b2 Cleanup from #2931 2019-05-09 14:32:49 -04:00
Jeremy Stretch
7895ccfae1 Merge pull request #2931 from DanSheps/2813-addtenantgroupfilter
Closes #2813: Add Filter and View on Lists for TenantGroup
2019-05-09 13:48:46 -04:00
Jeremy Stretch
c24fb8df84 Merge pull request #3165 from digitalocean/3038-filtering-improvements
Closes #3038: Filtering improvements
2019-05-08 21:13:42 -04:00
Jeremy Stretch
53b5fed8ae Tweak docs to indicate deprecation of id__in filter 2019-05-08 21:10:49 -04:00
Jeremy Stretch
dfffd1ea94 Restore id__in filters to retain backward compatability until v2.7 2019-05-08 21:08:35 -04:00
Jeremy Stretch
ffa34c6133 Updated documentation 2019-05-07 14:23:02 -04:00
Jeremy Stretch
8e8c9822ea Correct Device.position filter 2019-05-07 14:12:56 -04:00
Jeremy Stretch
205adeb2e9 Remove NullableCharFieldFilter; add missing filter fields 2019-05-07 13:59:21 -04:00
Jeremy Stretch
3d616baf75 Remove NumericInFilter and id__in filters 2019-05-07 13:07:18 -04:00
Jeremy Stretch
6cb5173e27 Update query filters to OR multiple values 2019-05-07 12:25:33 -04:00
Daniel Sheppard
dfd4a712c9 Merge pull request #3158 from tb-killa/3150
Fixes: #3150- Formatting of cable length in cable trace
2019-05-06 11:54:28 -05:00
Daniel Sheppard
b97339017b Update CHANGELOG.md 2019-05-06 11:54:16 -05:00
Oli
1b862045e3 Formatting of cable length in cable trace 2019-05-06 15:36:44 +02:00
Jeremy Stretch
244c07e5f7 Closes #3085: Catch all exceptions during export template rendering 2019-05-02 15:36:51 -04:00
Jeremy Stretch
eb41bc66a4 Merge pull request #3142 from austin987/upgrade-cwd
upgrade.sh: make sure we are in the right directory
2019-05-02 14:51:37 -04:00
Austin English
01c5d9e909 upgrade.sh: make sure we are in the right directory 2019-05-02 13:02:53 -05:00
Jeremy Stretch
a8c57313d3 Fixes #3140: Add bulk edit capability for power outlets and console server ports 2019-05-02 13:56:30 -04:00
Jeremy Stretch
5f5e4ce1a1 Changelog for #3132 2019-05-02 11:41:37 -04:00
Jeremy Stretch
d50acb39dd Merge pull request #3133 from shanemadden/cable_circuit_endpoint_choice
Fixes: #3132: Add circuittermination to the choices API for cable endpoints
2019-05-02 11:39:18 -04:00
Jeremy Stretch
25c8007b66 Fixes #3137: Add power_port and feed_leg fields to power outlet creation form 2019-05-02 10:12:27 -04:00
Jeremy Stretch
d4db04c649 Fixes #3136: Add power draw fields to power port creation form 2019-05-02 10:02:02 -04:00
John Anderson
250f310a98 fixes #3134 - remove component buttons from power utilization table 2019-05-01 21:48:35 -04:00
Shane Madden
ee4a3bcb02 Add circuittermination as a choice for cable endpoint types, which is not in the choices API for cable termination types but is accepted by the application as a valid endpoint for cables 2019-05-01 13:47:52 -06:00
Jeremy Stretch
d4d355dce6 Fixes #3130: Fix exception when creating a new power outlet 2019-05-01 12:02:18 -04:00
Jeremy Stretch
346b00e215 Merge branch 'develop' into develop-2.6 2019-05-01 11:53:44 -04:00
Jeremy Stretch
ceeac9bae3 Merge pull request #3131 from digitalocean/develop
Release v2.5.12
2019-05-01 11:10:43 -04:00
Jeremy Stretch
49446ffb74 Post-release version bump 2019-05-01 11:09:11 -04:00
Jeremy Stretch
5487ab40af Release v2.5.12 2019-05-01 11:08:32 -04:00
Jeremy Stretch
5a8ba159f2 Fixes #3127: Fix natural ordering of device components 2019-04-30 13:25:37 -04:00
Jeremy Stretch
cb93303f56 Fixes #3126: Incorrect calculation of PowerFeed available power 2019-04-30 12:38:06 -04:00
Jeremy Stretch
088903218d Fixes #3125: Fix exception when viewing PDUs 2019-04-30 12:24:53 -04:00
Jeremy Stretch
73927d2d56 Changelog for #3123 2019-04-30 12:10:00 -04:00
John Anderson
f9a74b68c1 Merge pull request #3124 from larsweiler/develop-2.6-metrics
Exclude /metrics from LOGIN_REQUIRED
2019-04-30 11:08:55 -04:00
dansheps
22e5834d8b Remove tenant group from ipam table 2019-04-30 10:06:27 -05:00
Lars Weiler
2a2026a2cc Forgot the additional brackets for a tuple 2019-04-30 17:04:21 +02:00
dansheps
63b71d43da Merge branch 'develop' of https://github.com/digitalocean/netbox into 2813-addtenantgroupfilter 2019-04-30 10:01:29 -05:00
Lars Weiler
560c8d6f01 More elegant path checking 2019-04-30 16:54:23 +02:00
Lars Weiler
4c5603e6ff Fix PEP 8 errors 2019-04-30 16:47:38 +02:00
Lars Weiler
99f0e7b939 Exclude /metrics from LOGIN_REQUIRED 2019-04-30 16:09:10 +02:00
Jeremy Stretch
7b5c1964b9 Fix broken link 2019-04-29 16:55:17 -04:00
Jeremy Stretch
b7a5afa797 Revert previous change 2019-04-29 16:44:13 -04:00
Jeremy Stretch
66f90f46de Fix mkdocs 2019-04-29 16:37:32 -04:00
Jeremy Stretch
4d2ac1ca53 Release v2.6-beta1 2019-04-29 15:36:21 -04:00
Jeremy Stretch
05a21369ae Bump django-cors-headers version 2019-04-29 15:27:14 -04:00
Jeremy Stretch
9b404facab Cleaned up changelog 2019-04-29 15:24:52 -04:00
Jeremy Stretch
f31d6c55be Fix erroneous merge conflict resolution from v2.5.11 2019-04-29 14:57:28 -04:00
Jeremy Stretch
37c2c4b4a2 Merge v2.5.11 2019-04-29 14:40:18 -04:00
Jeremy Stretch
d5dcb77d99 Post-release version bump 2019-04-29 14:27:22 -04:00
Jeremy Stretch
2b93510c45 Merge pull request #3121 from digitalocean/develop
Release v2.5.11
2019-04-29 14:25:37 -04:00
Jeremy Stretch
9717c6f825 Add a note about Django 2.2 2019-04-29 14:22:47 -04:00
Jeremy Stretch
92c227d103 Release v2.5.11 2019-04-29 14:21:10 -04:00
Jeremy Stretch
1491222642 Fixes #3072: Preserve multiselect filter values when updating per-page count for list views 2019-04-29 12:54:03 -04:00
Jeremy Stretch
39fceeb455 Add device field on cable search form (#3023) 2019-04-29 11:29:07 -04:00
Jeremy Stretch
3562b5552b Fixes #3118: Disable last_login update on login when maintenance mode is enabled 2019-04-29 11:04:32 -04:00
Jeremy Stretch
6d778f686d Closes #3023: Add support for filtering cables by connected device 2019-04-29 10:07:08 -04:00
Jeremy Stretch
245a97176a Closes #2986: Replace DeviceComponentManager with NaturalOrderingManager 2019-04-26 22:23:28 -04:00
Jeremy Stretch
ca56871aaa Changelog & CSS fix for #3070 2019-04-26 17:06:54 -04:00
Jeremy Stretch
bd4086cb50 Merge pull request #3103 from clercrobin/add_decommissioning
Fixes : #3070 Add the decommissioning status for devices
2019-04-26 17:04:36 -04:00
Jeremy Stretch
d8c9b1af27 Fixes #3116: Fix tagged_items count in tags API endpoint 2019-04-26 16:54:13 -04:00
Jeremy Stretch
19d2850b29 Fixes #3112: Fix ordering of interface connections list by termination B name/device 2019-04-26 16:41:01 -04:00
Jeremy Stretch
2c730b08e4 Fix PowerPort connected_endpoint filtering, ordering 2019-04-25 15:06:48 -04:00
Jeremy Stretch
e1bca52d57 Fix regex for IPAddress.dns_name (but see #3106) 2019-04-25 14:49:52 -04:00
Jeremy Stretch
06245f6422 Promote django-rq to a required dependency 2019-04-25 14:25:16 -04:00
John Anderson
f057a2c016 closes #3104 - add support for exposing prometheus metrics 2019-04-25 01:09:19 -04:00
rclerc
f4636537ad Add the decommissioning status for devices 2019-04-24 09:14:29 +02:00
Jeremy Stretch
a026ec45b8 Closes #166: Add dns_name to IPAddress 2019-04-22 18:10:28 -04:00
Jeremy Stretch
695a07daf4 Clean up settings.py and restrict import of LDAP parameters 2019-04-22 16:33:28 -04:00
Jeremy Stretch
c2d0e8fd95 Cleanup from earlier work on caching 2019-04-22 14:49:31 -04:00
Jeremy Stretch
1be5cf8184 Fix pagination logic for detecting QuerySets 2019-04-22 11:09:12 -04:00
Jeremy Stretch
f4aec1e7d0 Change VLAN view columns to a 4/8 split 2019-04-22 07:47:16 -04:00
Jeremy Stretch
e4c06700bb Closes #3094: Remove NullsFirstQuerySet 2019-04-19 20:59:07 -04:00
Jeremy Stretch
46b3512c45 Remove extraneous imports 2019-04-19 16:58:39 -04:00
Jeremy Stretch
017a5011ec Added '*_count' fields for child objects 2019-04-19 16:50:42 -04:00
Jeremy Stretch
f4bbdf30e8 Implement get_subquery() for annotation of child object counts; Rename dcim.Site 'count_*' fields 2019-04-19 16:09:22 -04:00
Jeremy Stretch
7d41a9ccdb Changelog cleanup 2019-04-19 15:28:08 -04:00
Jeremy Stretch
074d0349a1 Increase length of CustomLink text and url fields 2019-04-19 14:58:55 -04:00
Jeremy Stretch
6ab56c3978 Misc cleanup 2019-04-19 14:56:40 -04:00
Jeremy Stretch
5303d2c16d Add device types and power feeds to home page 2019-04-19 14:27:19 -04:00
Jeremy Stretch
30da4594cd Improved enforcement of view permissions for home page 2019-04-19 14:16:55 -04:00
Jeremy Stretch
92567137a5 PowerFeed list improvements 2019-04-19 13:43:09 -04:00
Jeremy Stretch
7b6c104768 Add power_panel_id field to PowerFeedFilterForm 2019-04-19 13:17:43 -04:00
John Anderson
d27d347d21 changelog and docs updates for 2.6 2019-04-19 02:32:50 -04:00
John Anderson
16b4ffa3fa Merge pull request #3080 from digitalocean/2647-cacheops
change cacheing to use cacheops
2019-04-19 01:41:59 -04:00
John Anderson
8b75969d1d fix typo in requirements 2019-04-18 14:39:12 -04:00
John Anderson
a5e1088f1f fixes #2621 - deletion issue in the changelog middleware 2019-04-18 14:37:58 -04:00
Jeremy Stretch
92a450e59c Improve the logic for gathering models from all apps 2019-04-17 14:33:26 -04:00
Jeremy Stretch
2f3c39295c Clean up, update Webhook models 2019-04-17 14:19:57 -04:00
Jeremy Stretch
000fde25c6 Add PowerFeeds to global search 2019-04-17 14:06:45 -04:00
Jeremy Stretch
cd3924520d Clean up limit_to for ForeignKeys referencing ContentType 2019-04-17 13:36:05 -04:00
John Anderson
c7778db7f2 fix timeout expression 2019-04-17 12:38:54 -04:00
John Anderson
2580b026fe change cacheing to use cacheops 2019-04-17 12:29:21 -04:00
Jeremy Stretch
eb86053a53 Merge pull request #3078 from digitalocean/3077-nested-api-writes
Enable dictionary specification of related objects in API
2019-04-17 11:25:40 -04:00
Jeremy Stretch
fd4c5031c7 Add test for dict_to_filter_params 2019-04-17 11:19:59 -04:00
Jeremy Stretch
655e48823a Merge branch 'develop-2.6' into 3077-nested-api-writes 2019-04-17 10:57:01 -04:00
Jeremy Stretch
a108807534 Add tests for WritableNestedSerializer 2019-04-17 10:54:50 -04:00
Jeremy Stretch
dbe0e9506d Cleaned up CHANGELOG 2019-04-16 21:12:16 -04:00
Jeremy Stretch
75b4ba2c3a Removed tags from the admin UI 2019-04-16 21:00:29 -04:00
Jeremy Stretch
de7207de55 Enable dictionary specification of related objects in API 2019-04-16 18:02:52 -04:00
Jeremy Stretch
bf2f314cd4 Remove run_validators() override (fixed upstream) 2019-04-16 15:35:15 -04:00
Jeremy Stretch
6034265dfd Add limit_choices_to to CustomLink.content_type field 2019-04-15 21:53:22 -04:00
Jeremy Stretch
48fe5470d2 Changelog for #969 2019-04-15 21:49:16 -04:00
Jeremy Stretch
2b2de8f8a5 Merge pull request #3074 from digitalocean/969-custom-links
969 custom links
2019-04-15 21:43:17 -04:00
Jeremy Stretch
dd58e78fde Add custom links to templates 2019-04-15 21:38:04 -04:00
Jeremy Stretch
2ec7ac1ea3 Custom link cleanup 2019-04-15 21:29:02 -04:00
Jeremy Stretch
f342a37362 Fix RelatedObjectDoesNotExist when adding a new PowerFeed 2019-04-15 17:55:50 -04:00
Jeremy Stretch
a411e32a9f Changelog for #2647 2019-04-15 17:49:50 -04:00
Jeremy Stretch
1877afc760 Merge pull request #3069 from digitalocean/2647-caching
intial work on #2647 - caching
2019-04-15 17:16:10 -04:00
Jeremy Stretch
6f055792df Corrected typo 2019-04-15 17:14:24 -04:00
Jeremy Stretch
4536754b20 Initial work on #969: Custom links 2019-04-15 17:12:41 -04:00
John Anderson
351736cc6d Merge branch 'develop-2.6' into 2647-caching 2019-04-15 14:46:04 -04:00
John Anderson
4723ddb5ce move caching to views 2019-04-15 14:41:04 -04:00
Jeremy Stretch
20670c546d Updated dependencies for v2.6 2019-04-15 13:14:48 -04:00
John Anderson
cdff29c7d5 add redis to travis builds 2019-04-15 04:16:22 -04:00
John Anderson
c11abbe8ca pep8 and postgres backend 2019-04-15 04:07:52 -04:00
John Anderson
f0505477b8 intial work on #2647 - caching 2019-04-15 03:55:33 -04:00
Jeremy Stretch
c484b27a35 Merge pull request #3068 from digitalocean/1863-api-child-counts
Add child objects counts to API serializers
2019-04-12 17:25:27 -04:00
Jeremy Stretch
04c1945abc Changelog for #1863 2019-04-12 17:21:04 -04:00
Jeremy Stretch
ad4d23fa20 Replace distinct annotations with subqueries for much better performance 2019-04-12 17:18:04 -04:00
Jeremy Stretch
a46b43bff6 Added child counts to API serializers (WIP) 2019-04-12 17:07:56 -04:00
Jeremy Stretch
b1c160f9d4 Merge pull request #3067 from digitalocean/2920-interface-type
Rename Interface.form_factor to Interface.type
2019-04-12 15:36:51 -04:00
Jeremy Stretch
533520ec1f Rename Interface type (classification) filter to kind 2019-04-12 14:09:03 -04:00
Jeremy Stretch
4acd842237 Maintain backward-compatibile support for Interface.form_factor until v2.7 2019-04-12 13:57:33 -04:00
Jeremy Stretch
778d56ac12 Update 'form_factor' in docs 2019-04-12 13:46:37 -04:00
Jeremy Stretch
1a2c9e3bba Rename form_factor to type on dcim.Interface 2019-04-12 13:42:56 -04:00
Jeremy Stretch
067c788df7 Add changelog tabs for power panel, power feed & clean up nav links 2019-04-12 10:16:34 -04:00
Jeremy Stretch
78c90ba24b Changelog for #54 2019-04-12 10:00:43 -04:00
Jeremy Stretch
573af6a236 Merge pull request #3066 from digitalocean/323-view-permissions
Closes #323
2019-04-12 09:33:48 -04:00
Jeremy Stretch
b29944d5d7 Check view permissions for object navigation tabs 2019-04-12 09:29:36 -04:00
Jeremy Stretch
dfa26cc5e2 Hide non-viewable object types on home page 2019-04-12 09:18:05 -04:00
Jeremy Stretch
8c5d544734 Changelog for #323 2019-04-12 09:07:22 -04:00
Jeremy Stretch
df0686a1bd Implement custom auth backend and EXEMPT_VIEW_PERMISSIONS setting 2019-04-11 22:01:26 -04:00
Jeremy Stretch
3e818cde69 Disable navigation links for objects user does not have permission to view 2019-04-11 21:08:40 -04:00
Jeremy Stretch
43a569d18a Enforce view permissions for API views 2019-04-11 17:40:46 -04:00
Jeremy Stretch
e710ccb0e6 Enforce view permissions for UI views 2019-04-11 17:27:38 -04:00
Jeremy Stretch
ea6815b9bb Merge pull request #3061 from digitalocean/54-power-modeling
#54: Power modeling
2019-04-11 15:02:07 -04:00
Jeremy Stretch
3b06251720 Added tests for power panels, power feeds 2019-04-11 12:29:43 -04:00
Jeremy Stretch
bfa07aec39 Fix tests 2019-04-11 11:37:44 -04:00
Jeremy Stretch
05c19af2a3 Misc cleanup 2019-04-11 10:49:43 -04:00
Jeremy Stretch
b22fd2bc44 Rename max_utilization to power_factor 2019-04-10 16:36:38 -04:00
Jeremy Stretch
ac3e899f5e First stab at power utilization tracking 2019-04-10 16:32:13 -04:00
Jeremy Stretch
3d5f85c0ca Add associatiton from power outlet to power port/phase 2019-04-10 14:16:16 -04:00
Jeremy Stretch
0ddd71fc36 Include draw numbers of connected power ports 2019-04-10 13:05:51 -04:00
dansheps
6fa54bed73 Fix PEP8 Errors 2019-04-10 08:42:27 -05:00
dansheps
6e8e6809f3 Move Filter and Form to new file, update all files 2019-04-10 08:37:12 -05:00
Jeremy Stretch
8230ea1c83 Add max/allocated current draw fields to PowerPort 2019-04-09 17:32:04 -04:00
dansheps
a91a79681f Merge branch 'develop' of https://github.com/digitalocean/netbox into 2813-addtenantgroupfilter 2019-04-09 15:57:22 -05:00
Jeremy Stretch
c1127148e2 Provide individual views for each type of cable connection 2019-04-09 16:49:04 -04:00
Jeremy Stretch
ef867e789d Finish power outlet/feed connection forms 2019-04-09 15:37:31 -04:00
Jeremy Stretch
cd655d289b Fix CSV import forms 2019-04-09 14:55:17 -04:00
Jeremy Stretch
f1d1e8b537 Update migrations 2019-04-09 14:22:45 -04:00
Jeremy Stretch
71b674d11a Merge branch 'develop-2.6' into 54-power-modeling 2019-04-09 14:12:45 -04:00
Jeremy Stretch
4f9b666eee Merge branch 'develop' into develop-2.6 2019-04-09 14:11:26 -04:00
Jeremy Stretch
8d79353d9b Post-release version bump 2019-04-08 14:30:06 -04:00
Jeremy Stretch
f3fffc6161 Merge pull request #3053 from digitalocean/develop
Release v2.5.10
2019-04-08 14:26:27 -04:00
Jeremy Stretch
a8d20e13a8 Release v2.5.10 2019-04-08 14:19:37 -04:00
Jeremy Stretch
9a91bdbdb2 Fixes #2937: Redirect to list view after editing an object from list view 2019-04-08 14:10:55 -04:00
Jeremy Stretch
6f8591f769 Closes #3052: Add Jinja2 support for export templates 2019-04-08 12:20:24 -04:00
dansheps
7f6d79362e Fix virtualization test and add to changelog 2019-04-05 09:47:38 -05:00
Daniel Sheppard
c032413201 Remove unneeded import from testing. 2019-04-05 09:39:04 -05:00
dansheps
e556c78599 Fixes #3047: Fix exception string for invalid MAC Address format 2019-04-05 09:36:56 -05:00
Jeremy Stretch
1b389d662b Fixes #3046: Fix exception at reports API endpoint 2019-04-04 17:34:36 -04:00
Jeremy Stretch
090efde21a Fixes #3044: Ignore site/rack fields when connecting a new cable via device search 2019-04-04 16:19:20 -04:00
Jeremy Stretch
74c03e3295 Fixes #3036: DCIM interfaces API endpoint should not include VM interfaces 2019-04-04 15:07:41 -04:00
Jeremy Stretch
858be6d216 Fixes #3039: Fix exception when retrieving change object for a component template via API 2019-04-04 15:00:59 -04:00
Jeremy Stretch
1e160fd9e9 Fixes #3041: Fix form widget for bulk cable label update 2019-04-04 12:43:14 -04:00
Jeremy Stretch
4884f3ac77 Fix column links 2019-04-02 14:49:40 -04:00
Jeremy Stretch
0e5dff212e Fix rack elevation display 2019-04-02 13:50:57 -04:00
Jeremy Stretch
e0085ec819 Fixed table columns 2019-04-02 13:37:53 -04:00
Jeremy Stretch
07bfd7c8e5 Merge branch 'develop-2.6' into 54-power-modeling 2019-04-02 13:15:40 -04:00
Jeremy Stretch
c8cccc30d1 Merge branch 'develop' into develop-2.6 2019-04-02 13:12:34 -04:00
Jeremy Stretch
7c6d2a6281 Post-release version bump 2019-04-02 12:37:39 -04:00
Jeremy Stretch
fdf168934e Merge pull request #3034 from digitalocean/develop
Release v2.5.9
2019-04-02 12:34:34 -04:00
Jeremy Stretch
738a20ad34 Release v2.5.9 2019-04-02 11:54:00 -04:00
Jeremy Stretch
3602d5a84c Fixes #3032: Save assigned tags when creating a new secret 2019-04-02 11:42:49 -04:00
Jeremy Stretch
d23ca041cf Ensure fallback to default serializer when attempting to load nested serializer 2019-04-02 11:17:14 -04:00
Jeremy Stretch
110387e81b Fixes #3019: Fix tag population when running NetBox within a path 2019-04-02 11:05:16 -04:00
Jeremy Stretch
498f132cad Fixes #3027: Ignore empty local context data when rendering config contexts 2019-03-28 10:16:28 -04:00
Jeremy Stretch
dff3165402 Fixes #3026: Tweak prefix/IP filter forms to filter using VRF ID rather than route distinguisher 2019-03-28 10:06:25 -04:00
Jeremy Stretch
3f5f75c71f Fixes #3001: Fix API representation of ObjectChange action and add changed_object_type 2019-03-28 09:57:26 -04:00
John Anderson
2e1887eb0e implements #3025 - Add request ID to outbound webhook requests 2019-03-24 15:35:42 -04:00
John Anderson
2170eedf08 implements #2933 - username in webhooks 2019-03-24 15:31:12 -04:00
Jeremy Stretch
a208cd156d Template and table polish 2019-03-22 21:58:45 -04:00
Jeremy Stretch
3acc8ca3ab Fixes #3022: Add missing cable termination types to DCIM _choices endpoint 2019-03-22 16:26:56 -04:00
Jeremy Stretch
fc76c8eb0f FieldChoicesViewSet should infer field choices from serializer, not model 2019-03-22 16:24:53 -04:00
Jeremy Stretch
681e20133a Further work on power feed modeling 2019-03-21 17:47:43 -04:00
Jeremy Stretch
7d1ee2e94e Changelog for #3011 2019-03-19 10:34:07 -04:00
Jeremy Stretch
3cea92384c Merge pull request #3012 from ajknv/develop
Add support for configuring use of an SSL connection to Redis.
2019-03-19 10:28:01 -04:00
Jeremy Stretch
6ba3d611af Merge pull request #3015 from DanSheps/3014-fix-vm-roles
Changes vm_role from "true" to "True" in virtualization form
2019-03-19 10:24:59 -04:00
Jeremy Stretch
f6345b9a5d Fixes #2998: Limit device query to non-racked devices if no rack selected when creating a cable 2019-03-19 10:22:52 -04:00
Jeremy Stretch
044f7395bb Closes #2995: Added powerbox to community SDK list 2019-03-19 09:48:16 -04:00
Alexander Kinneer
8bda6be65a Merge branch 'develop' of https://github.com/ajknv/netbox into develop 2019-03-18 11:28:48 -05:00
Alexander Kinneer
e544705256 Add support for configuring use of an SSL connection to Redis.
Requires a build or release of django-rq containing
44f3fdd7cb
2019-03-18 11:26:37 -05:00
Alexander Kinneer
f88099eb3b Add documentation for new Redis SSL configuration parameter. 2019-03-18 11:15:40 -05:00
dansheps
5f40be4bd5 Changes vm_role from "true" to "True" in virtualization form 2019-03-18 09:22:36 -05:00
John Anderson
1bf04f2e30 fixes #2936 - device role selection showing duplicate first entry 2019-03-17 01:24:54 -04:00
Alexander Kinneer
7edad4eba9 Add support for configuring use of an SSL connection to Redis.
Requires a build or release of django-rq containing
44f3fdd7cb
2019-03-15 10:35:03 -05:00
Jeremy Stretch
dd7249d2ef Merge pull request #2996 from DanSheps/2207-fix_deterministic_ordering_of_interfaces
Fixes #2207
2019-03-13 16:15:34 -04:00
dansheps
aab84ba6f3 Change ID to PK 2019-03-13 14:02:23 -05:00
Jeremy Stretch
520af82f05 Closes #2924: Add interface type for QSFP28 50GE 2019-03-13 10:00:40 -04:00
dansheps
9292534324 Changelog Updates 2019-03-12 15:54:38 -05:00
dansheps
61efe6102e Fixes #2207
* Added 'id' field sort to InterfaceManager
2019-03-12 15:52:44 -05:00
Jeremy Stretch
705f82e416 Added filters for power panels & feeds 2019-03-12 12:05:58 -04:00
Jeremy Stretch
e06dece00c More power work 2019-03-12 11:36:29 -04:00
Jeremy Stretch
3b9c0e4c67 Fixed up models & forms 2019-03-12 10:17:00 -04:00
Jeremy Stretch
5b753923b6 Initial work on power modeling (WIP) 2019-03-11 22:40:52 -04:00
Jeremy Stretch
0b95016e00 Merge branch 'develop' into develop-2.6 2019-03-11 21:01:18 -04:00
Daniel Sheppard
0022a5a6e2 Merge pull request #2992 from DanSheps/api-documentation-filtering
* Fixes #2991: Fixed typo
* Fixes #2577: Clarified documentation regarding filtering multiple times (some filters can, some cannot)
2019-03-11 15:26:59 -05:00
dansheps
332487efcd API Filtering Documentation Changes
* Fixed typo
* Clarified documentation regarding filtering multiple times (some filters can, some cannot)
2019-03-11 15:11:16 -05:00
Jeremy Stretch
28331dfd53 Post-release version bump 2019-03-11 13:39:30 -04:00
Jeremy Stretch
d112b6027a Merge pull request #2990 from digitalocean/develop
Release v2.5.8
2019-03-11 13:37:07 -04:00
Jeremy Stretch
88933a3120 Release v2.5.8 2019-03-11 13:34:56 -04:00
Jeremy Stretch
e05871b467 Fixes #2982: Correct CSS class assignment on color picker 2019-03-11 13:31:48 -04:00
Jeremy Stretch
7e70bfaacc Fixes #2985: Fix pagination page length for rack elevations 2019-03-11 12:51:03 -04:00
Jeremy Stretch
f4b85751bb Fixes #2940: Allow CSV import of prefixes/IPs to VRF without an RD assigned 2019-03-11 12:34:19 -04:00
Jeremy Stretch
ea11e70e3f Fixes #2984: Fix logging of unlabeled cable ID on cable deletion 2019-03-11 12:26:40 -04:00
Jeremy Stretch
bd8b239e15 Fixes #2980: Improve rendering time for API docs 2019-03-08 10:28:11 -05:00
Jeremy Stretch
d9c8c0cbc1 Fixes #2968: Correct API documentation for SerializerMethodFields 2019-03-08 10:25:09 -05:00
Jeremy Stretch
7a8fc8dfd5 Changelog for #2944 2019-03-07 14:08:36 -05:00
Jeremy Stretch
4334f1bc65 Merge pull request #2979 from TakeMeNL/fix/2944
Fixes: #2944 Adding/removing an IP address is not recorded on the associated interface's changelog
2019-03-07 14:06:00 -05:00
Jeremy Stretch
1995091169 Changelog & renaming for #2065 2019-03-07 13:58:34 -05:00
Jeremy Stretch
ef089d3722 Merge pull request #2957 from axnsan12/ref-name
Resolve drf-yasg `ref_name` conflicts
2019-03-07 13:52:29 -05:00
Marc
1d904b1722 Fix IP address is not recorded in the associated interface's changelog 2019-03-07 10:57:26 +01:00
Jeremy Stretch
ab02f26a0e Fixes #2972: Improve ContentTypeField serializer to elegantly handle invalid data 2019-03-06 12:42:47 -05:00
Jeremy Stretch
f35b4bf768 Fixes #2976: Add delete button to tag view 2019-03-06 12:11:01 -05:00
Jeremy Stretch
f2382dd255 Merge pull request #2969 from DanSheps/2435-PrintingCSS
Closes #2435: Printer friendly CSS
2019-03-06 09:44:04 -05:00
Daniel Sheppard
8df169b170 Remove .noprint from outside of the @media tag 2019-03-05 21:52:54 -06:00
Daniel Sheppard
88aeaaffb0 Remove .noprint from outside of the @media tag 2019-03-05 21:52:37 -06:00
dansheps
e9546b810c * Updated changelog 2019-03-05 15:46:41 -06:00
dansheps
c208d8fc2e * Added CSS to:
* Hide URLs
  * Hide elements with "noprint" class
* Added noprint to:
  * Header Panel
  * Search Panel, Tags Panel
  * Buttons
  * Various list elements
  * Related elements
2019-03-05 15:42:47 -06:00
Jeremy Stretch
8a1d7fdb37 Updated migrations to account for extras/0017_exporttemplate_mime_type_length 2019-03-05 13:46:37 -05:00
Jeremy Stretch
c52d077f92 Merge branch 'develop' into develop-2.6 2019-03-05 13:39:00 -05:00
Jeremy Stretch
7294f43fa3 Changelog for #2966 2019-03-05 13:18:56 -05:00
Jeremy Stretch
0572c66c17 Merge pull request #2967 from Anthony25/fix_cable_length_unit_api
Allow nullable length unit in cable API
2019-03-05 13:17:37 -05:00
Jeremy Stretch
6406e213bd Fixes #2961: Prevent exception when exporting inventory items belonging to unnamed devices 2019-03-05 13:15:09 -05:00
Jeremy Stretch
cfb56f7cfe Fixes #2962: Increase ExportTemplate mime_type field length 2019-03-05 13:08:40 -05:00
Anthony Ruhier
bd65e782bb Allow nullable length unit in cable API
Cables models define it as None by default, but the API rejects a
request containing a null length_unit. Allows it in the API
serializer.
2019-03-05 18:44:44 +01:00
dansheps
37811d3f7e * Resolve conflict with virtualization filters. 2019-03-05 08:19:21 -06:00
dansheps
3bb1cbcdb0 * Resolve conflict with virtualization filters. 2019-03-05 08:18:04 -06:00
dansheps
5fcd673f9f Merge remote-tracking branch 'dansheps/2813-addtenantgroupfilter' into 2813-addtenantgroupfilter
# Conflicts:
#	netbox/ipam/tables.py
2019-03-05 08:11:44 -06:00
dansheps
b4d7f9ea43 Fixes #2781: Fixes filter by regions on site and device list
* Add Device filter
2019-03-05 08:10:10 -06:00
Jeremy Stretch
66d9d9d9cb Rearranged changelog items 2019-03-04 16:01:43 -05:00
Grokzen
b9f4a9e57b Closes #1792 - Add CustomFieldChoices API endpoint (#2941)
* Add new api endpoint for CustomFieldChoices

* Add changelog item for #1792

* Add tests for CustomFieldchoiceAPI endpoint
2019-03-04 15:58:40 -05:00
Jeremy Stretch
80b3a5ffc4 Fixed erroneous addition of 'description' field to unique_together 2019-03-04 15:57:21 -05:00
Jeremy Stretch
0c142f2078 Changelog for #2954 2019-03-04 15:16:35 -05:00
Jeremy Stretch
7295c3554e Merge pull request #2955 from axnsan12/trailing-slashes
Remove trailing slashes from filesystem paths
2019-03-04 15:14:45 -05:00
Jeremy Stretch
78725b8483 Follow-up from #2781 2019-03-04 14:57:35 -05:00
Jeremy Stretch
e97ad3f066 Merge pull request #2935 from DanSheps/2781-fixsitelistfilterregion
Fixes: #2781 - Enable Filtering by Multiple Regions on Site and Device Lists
2019-03-04 14:42:04 -05:00
Cristi Vîjdea
3a62e9a322 Resolve drf-yasg ref_name conflicts
This solves the problem of distinct serializers being confused because they have the same class name (e.g. `InterfaceSerializer`)

Fixes #2065.
2019-03-04 03:49:26 +02:00
Cristi Vîjdea
4d18d9661b Remove trailing slashes from filesystem paths
Paths with trailing slashes do not work on windows, they cause errors such as `django.core.exceptions.SuspiciousFileOperation: The joined path (C:\Projects\netbox\netbox\static\clipboard-2.0.4.min.js) is located outside of the base path component (C:\Projects\netbox\netbox\static\)`.
2019-03-04 03:38:15 +02:00
John Anderson
11976f8968 Merge branch 'develop' into develop-2.6 2019-03-03 19:06:15 -05:00
John Anderson
5991bd368c Merge branch 'develop-2.6' of github.com:digitalocean/netbox into develop-2.6 2019-03-03 19:06:05 -05:00
John Anderson
b381bdec27 fixes #2952 - slug field absent from TenantFilter 2019-03-03 18:52:57 -05:00
John Anderson
231a5aa9fd v2.6.0-dev version update 2019-03-01 23:16:08 -05:00
Jeremy Stretch
6f5c35c278 Force resolution of request User object when logging an object deletion (resolves intermittent test failures) 2019-02-28 11:40:32 -05:00
Jeremy Stretch
3e6033e9ff Fixes #2938: Exclude circuit terminations from API interface connections endpoint 2019-02-28 09:59:17 -05:00
Jeremy Stretch
32f63a18ff Fixes #2938: Enforce deterministic ordering of device components returned by API 2019-02-28 09:49:23 -05:00
dansheps
00aaf500de Fixes #2781: Fixes filter by regions on site and device list
* Add Device filter
2019-02-27 14:46:11 -06:00
dansheps
f2471aedb2 Fixes #2781: Fixes filter by regions on site and device list 2019-02-27 11:41:12 -06:00
Jeremy Stretch
beff774295 Fixes #2705: Fix endpoint grouping in API docs 2019-02-26 16:38:49 -05:00
Daniel Sheppard
679aa0f764 Update tables.py
Fix whitespace
2019-02-26 07:53:59 -06:00
dansheps
8683efe54a Fixes #2813: Add Filter and List View for TenantGroup
Added Filter for TenantGroup to the following Forms and Filter classes

* circuit.Circuit
* dcim.Site
* dcim.Rack
* dcim.RackElevation
* dcim.RackReservation
* dcim.Device
* ipam.IPAddress
* ipam.Prefix
* ipam.VRF
* ipam.VLAN
* virtualization.VirtualMachine

Added List View to the following classes:

* circuit.Circuit
* dcim.Site
* dcim.Rack
* dcim.RackReservation
* dcim.Device
* ipam.IPAddress
* ipam.Prefix
* ipam.VRF
* ipam.VLAN
* virtualization.VirtualMachine
2019-02-23 11:09:02 -06:00
dansheps
f78c228c75 Fixes #2813: Add Filter for TenantGroup to the following Forms and Filter classes:
* circuit.Circuit
* dcim.Site
* dcim.Rack
* dcim.RackElevation
* dcim.RackReservation
* dcim.Device
* ipam.IPAddress
* ipam.Prefix
* ipam.VRF
* ipam.VLAN
* virtualization.VirtualMachine
2019-02-23 10:37:30 -06:00
Jeremy Stretch
8dfef83f1a Changelog for #2923 2019-02-22 12:16:15 -05:00
Jeremy Stretch
d707844c30 Merge pull request #2928 from DanSheps/2923-changecircuitsitefiltermulti
Fixes #2923: Changes Site on ProviderFilterForm to APISelectMultiple
2019-02-22 12:13:56 -05:00
Jeremy Stretch
6a8c935380 Merge branch 'develop' into develop-2.6 2019-02-22 12:10:44 -05:00
Jeremy Stretch
00c4d3dd92 Merge pull request #2918 from digitalocean/2643-description-fields
Closes #2643: Add description field to console/power components and device bays
2019-02-22 12:08:24 -05:00
Daniel Sheppard
3ffea43253 Fixes #2923: Changes Site Filter on Provider List to APISelectMultiple 2019-02-22 07:13:39 -06:00
John Anderson
8e548605c8 added changelog views for Tag 2019-02-22 02:29:00 -05:00
John Anderson
de52f21905 fix circular import for ObjectChange, for now... 2019-02-22 01:42:17 -05:00
John Anderson
b9d11aa4ca refactor tag migrations and add changelog fields to tag 2019-02-22 01:32:31 -05:00
Jeremy Stretch
77c387a559 Post-release version bump 2019-02-21 14:45:23 -05:00
Jeremy Stretch
ac1e4b8e8f Merge pull request #2922 from digitalocean/develop
Release v2.5.7
2019-02-21 14:44:48 -05:00
Jeremy Stretch
36101f50c3 Release v2.5.7 2019-02-21 14:42:44 -05:00
Jeremy Stretch
08dad7f7af Changelog for #2638 2019-02-21 13:30:57 -05:00
hSaria
298152bc50 Closes #2638: Copy Button for Secrets (#2860)
* Added clipboard.min.js

* Added copy button to secrets

* renamed clipboard JS library
2019-02-21 13:26:19 -05:00
Jeremy Stretch
993e94c00c Fixes #2852: Allow filtering devices by null rack position 2019-02-21 10:26:31 -05:00
John Anderson
fba6d28603 removed migration to delete taggit models 2019-02-21 00:15:15 -05:00
Jeremy Stretch
bb6fb81fc0 Closes #2643: Add description field to console/power components and device bays 2019-02-20 14:34:05 -05:00
Jeremy Stretch
4c3a7b84c1 Merge pull request #2881 from candlerb/candlerb/doc-reports
Clarify use of "runreport" CLI
2019-02-20 12:04:35 -05:00
Jeremy Stretch
8961a54a03 Chnagelog for #2890 2019-02-20 12:01:37 -05:00
Jeremy Stretch
2184a9402f Merge pull request #2891 from gdelafond/add-port-types
Fixes #2890: add port type LC/APC, SC/APC, LSH/APC
2019-02-20 12:00:39 -05:00
Jeremy Stretch
b9f1d14d4e Closes #2870: Add Markdown rendering for provider NOC/admin contact fields 2019-02-20 11:48:11 -05:00
Jeremy Stretch
fba154386e Closes #2898: Enable filtering cables list by connection status 2019-02-20 11:36:55 -05:00
Jeremy Stretch
c8366eff8f Fixes #2915: Fix bulk editing of pass-through ports 2019-02-20 11:13:43 -05:00
Jeremy Stretch
161d9ed512 Fixes #2912: Cable type in filter form should be blank by default 2019-02-20 10:21:34 -05:00
Jeremy Stretch
fadc9521f0 Fixes #2913: Fix assigned prefixes link on VRF view 2019-02-20 10:17:36 -05:00
Jeremy Stretch
40cb47868f Fixes #2914: Fix empty connected circuit link on device interfaces list 2019-02-20 10:13:36 -05:00
John Anderson
0a06d92c2e added default values for comments and color fields on tag 2019-02-20 03:56:32 -05:00
John Anderson
fc2bb724fa initial pass on migrating to custom tag model with color and comments fields 2019-02-20 03:52:47 -05:00
John Anderson
e521508de9 #2350 - added virtual machines and test cases 2019-02-18 22:10:05 -05:00
John Anderson
bd573fd5cf implemented #2350 - config context included by default in API 2019-02-18 21:37:00 -05:00
John Anderson
9d055ff4fd fixed #2910 - config context list and edit views not using select2 2019-02-18 21:10:15 -05:00
Jeremy Stretch
9d69f14faa Implement basic view testing for all models (#2909) 2019-02-15 17:02:18 -05:00
Jeremy Stretch
8e3ea6c878 Closes #2878: Add cable types for OS1/OS2 singlemode fiber 2019-02-15 14:42:03 -05:00
Jeremy Stretch
971f3cd63c Closes #2357: Enable filtering of devices by rack face 2019-02-15 11:31:57 -05:00
Jeremy Stretch
a9d7a7e306 Closes #2903: Clarify purpose of tags field on interface edit form 2019-02-15 10:23:46 -05:00
Jeremy Stretch
8797298a71 Fixes #2884: Don't display connect button for wireless interfaces 2019-02-15 10:14:44 -05:00
Jeremy Stretch
3bc182e453 Fixes #2901: Fix ordering regions by site count 2019-02-15 10:10:26 -05:00
Jeremy Stretch
7a0ab3aa15 Fixes #2895: Fix filtering of nullable character fields 2019-02-14 09:43:56 -05:00
Jeremy Stretch
fdbef8ee71 Closes #2836: Deprecate NullableCharField 2019-02-14 09:39:04 -05:00
Jeremy Stretch
d95b127378 Changelog for #2888 and #2893 2019-02-14 09:20:27 -05:00
Jeremy Stretch
008138cd02 Merge pull request #2889 from stuntguy3000/patch-1
Fixes #2888 - Render correct foreground colour for rack devices
2019-02-14 09:14:36 -05:00
Jeremy Stretch
2a1630e068 Merge pull request #2894 from TakeMeNL/bug/duplicate-vrf
Remove duplicate VRF RD on ip address view
2019-02-14 09:09:32 -05:00
TakeMeNL
31611203eb ipaddress.vrf already includes ipaddress.vrf.rd 2019-02-14 14:48:25 +01:00
Guillaume de Lafond
1ee6d16d78 add port type LC/APC, SC/APC, LSH/APC 2019-02-14 10:17:25 +01:00
Luke Anderson
0e8c3a8efe Render correct foreground colour for rack devices 2019-02-14 16:37:27 +10:30
Jeremy Stretch
d084d19675 Post-release version bump 2019-02-13 17:11:51 -05:00
Jeremy Stretch
77954a3796 Merge pull request #2886 from digitalocean/develop
Release v2.5.6
2019-02-13 17:11:26 -05:00
Jeremy Stretch
8152dc4b04 Release v2.5.6 2019-02-13 17:07:15 -05:00
Jeremy Stretch
109b233e14 Closes #2758: Add cable trace button to pass-through ports 2019-02-13 17:05:02 -05:00
Jeremy Stretch
cc3b26998b Fixes #2880: Sanitize user password if an exception is raised during login 2019-02-13 11:34:16 -05:00
Jeremy Stretch
95dea1faaa Closes #2866: Add cellular interface types (GSM/CDMA/LTE) 2019-02-13 10:45:42 -05:00
Jeremy Stretch
57fecdbf17 Closes #2851: Include circuit provider in pass-through port connection details 2019-02-13 10:26:54 -05:00
Jeremy Stretch
3b4bcc881f Fix broken test 2019-02-13 10:09:33 -05:00
Jeremy Stretch
dfa4dfa4a4 Fixes #2877: Fixed device role label display on light background color 2019-02-13 10:06:56 -05:00
Brian Candler
8d86e97247 Clarify use of "runreport" CLI 2019-02-13 08:54:04 +00:00
Jeremy Stretch
5da9d6b46b Closes #2839: Add "110 punch" type for pass-through ports 2019-02-08 09:57:04 -05:00
Jeremy Stretch
100809f11a Closes #2854: Enable bulk editing of pass-through ports 2019-02-08 09:31:10 -05:00
Jeremy Stretch
5256077a3c Fixes #2862: Follow return URL when connecting a cable 2019-02-08 09:10:31 -05:00
Jeremy Stretch
375e66047d Fixes #2864: Correct display of VRF name when no RD is assigned 2019-02-08 09:04:43 -05:00
Jeremy Stretch
42d1d6e1b0 Fixes #2841: Fix filtering by VRF for prefix and IP address lists 2019-02-06 10:48:14 -05:00
Jeremy Stretch
ca51fab4d8 Fixes #2845: Enable filtering of rack unit list by unit ID 2019-02-06 10:44:05 -05:00
Jeremy Stretch
73c983516d Fixes #2856: Fix navigation links between LAG interfaces and their members on device view 2019-02-06 10:28:25 -05:00
Jeremy Stretch
f733d5a4da Fixes #2857: Add display_name to DeviceType API serializer; fix DeviceType list for bulk device edit 2019-02-06 10:23:30 -05:00
Jeremy Stretch
3d2948daf3 Merge pull request #2793 from candlerb/candlerb/doc-inventory
Clarify how chassis-based switches/routers are supposed to be modelled
2019-02-06 10:02:05 -05:00
Jeremy Stretch
69a5d3644a Closes #2844: Correct display of far cable end for pass-through ports 2019-02-01 09:12:48 -05:00
Jeremy Stretch
2f1018c742 Post-release version bump 2019-01-31 16:12:00 -05:00
Jeremy Stretch
d5fc37282f Merge pull request #2838 from digitalocean/develop
Release v2.5.5
2019-01-31 16:10:32 -05:00
Jeremy Stretch
525ed359cd Release v2.5.5 2019-01-31 16:04:14 -05:00
John Anderson
fe00db62d6 fixes #2837 - select2 nullable filter fields add multiple null_option elements when paging 2019-01-31 13:56:36 -05:00
Jeremy Stretch
bcfa760cf9 Closes #2805: Allow null route distinguisher for VRFs 2019-01-31 13:47:24 -05:00
John Anderson
613e8f05c2 fixes #2835 - certain model filters did not support the q query param 2019-01-31 13:36:30 -05:00
Jeremy Stretch
59f8f0c7ea Closes #2825: Include directly connected device for front/rear ports 2019-01-31 12:21:43 -05:00
Jeremy Stretch
ae0c8deec2 Closes #2809: Remove VRF child prefixes table; link to main prefixes view 2019-01-31 10:06:08 -05:00
Jeremy Stretch
b508415983 Fixes #2833: Fix form widget for front port template creation 2019-01-31 09:19:53 -05:00
Jeremy Stretch
a98d014763 Post-release version bump 2019-01-31 09:06:49 -05:00
John Anderson
51e5e49d3b Merge pull request #2832 from cimnine/patch-1
Updated link to netbox-docker, again
2019-01-31 03:06:29 -05:00
Christian Mäder
0eced489da Updated link to netbox-docker, again
After some feedback, that `netbox-community/docker` is not an ideal name, I've renamed the repo back to `netbox-docker`. Hence one more PR to update that link.
2019-01-31 09:02:12 +01:00
TheTrafficNetwork
5138d12942 Typo (#2822) 2019-01-30 14:20:40 -05:00
Jeremy Stretch
fe30276db2 Merge pull request #2828 from cimnine/patch-1
Updated link after the move of `netbox-docker`
2019-01-30 14:19:57 -05:00
Christian Mäder
e51e8b5c8a Updated link after the move of netbox-docker 2019-01-30 16:17:37 +01:00
Jeremy Stretch
170900e80f Fixes #2824: Fix template exception when viewing rack elevations list 2019-01-30 09:59:19 -05:00
Jeremy Stretch
6726403de9 Merge pull request #2821 from digitalocean/develop
Release v2.5.4
2019-01-29 16:38:54 -05:00
Jeremy Stretch
f6d18d243e Release v2.5.4 2019-01-29 16:32:15 -05:00
Jeremy Stretch
8bd9b258a8 Fixes #2816: Handle exception when deleting a device with connected components 2019-01-29 14:27:47 -05:00
Jeremy Stretch
0256448dd8 Closes #2810: Include description fields in interface connections export 2019-01-29 14:08:15 -05:00
Jeremy Stretch
dc70fdbe03 Force string formatting of integer values 2019-01-29 13:57:19 -05:00
Jeremy Stretch
ce1a2875bc Closes #2808: Loosen version pinning for Django to allow patch releases 2019-01-29 13:48:21 -05:00
fouram
b4c9ec27e0 Updated optional-settings.md - Webhook links (#2818)
Corrected (../miscellaneous/webhooks/) to (../additional-features/webhooks/) in two place
2019-01-29 13:38:05 -05:00
Jeremy Stretch
8977ded7b6 Changelog for #2802 2019-01-29 13:36:09 -05:00
ChrisPortman
afb4c636fe Fix #2802 (#2803) 2019-01-29 13:29:22 -05:00
John Anderson
ff40a13f29 fixed select2 paging offset calculation to index at 1 2019-01-29 00:48:41 -05:00
Brian Candler
9991985170 Clarify how chassis-based switches and routers are supposed to be modelled 2019-01-24 13:35:37 +00:00
Jeremy Stretch
61a48320af Add pagination widget to console/power/interface connections views 2019-01-23 14:26:17 -05:00
Jeremy Stretch
d53249060d Closes #2807: Include device site/rack assignment in cable trace view 2019-01-23 13:57:26 -05:00
Jeremy Stretch
22eebbbc71 Fixes #2795: Fix duplicate display of pagination controls on child prefix/IP tables 2019-01-23 13:38:16 -05:00
Jeremy Stretch
4227c6b806 Add select2-bootstrap for consistent widget styling 2019-01-23 10:18:44 -05:00
Jeremy Stretch
14695037da Strip return characters when removing line breaks 2019-01-18 09:24:32 -05:00
Jeremy Stretch
0d717cdc82 Changelog for #2798 2019-01-18 09:23:53 -05:00
Jeremy Stretch
ae8c5ae7b8 Merge pull request #2799 from bgilmore/develop
Fixes #2798: URL encode physical_address in links
2019-01-18 09:18:00 -05:00
Brandon Gilmore
fb0ed3db2f Fixes #2798: URL encode physical_address in links 2019-01-17 17:41:46 -08:00
Jeremy Stretch
c69fad7429 Closes #2733: Enable bulk assignment of MAC addresses to interfaces 2019-01-17 16:20:14 -05:00
Jeremy Stretch
92a2f529e3 Closes #2766: Extend users admin table to include superuser and active fields 2019-01-17 16:14:06 -05:00
Jeremy Stretch
bd74e2f30b Closes #2782: Add is_pool field for prefix filtering 2019-01-17 16:02:16 -05:00
Jeremy Stretch
a950c95416 Merge pull request #2738 from candlerb/candlerb/graphviz-exception
Show exception description on failure to render graphviz
2019-01-16 16:02:11 -05:00
John Anderson
dc9e9fd08f select2 changelog items 2019-01-15 20:01:02 -05:00
John Anderson
1abbaf99dc Merge pull request #2772 from digitalocean/select2-ui
Select2 UI
2019-01-15 16:57:03 -08:00
John Anderson
af6bb53a01 removed debug log 2019-01-15 16:36:51 -05:00
John Anderson
2d7e5a57e7 handle disabled-indicator 2019-01-15 16:33:44 -05:00
Jeremy Stretch
b6737aff59 Remove invalid kwarg (conflict w/ #2779) 2019-01-15 15:47:47 -05:00
Jeremy Stretch
c5f2cbf9fa Syntax fix 2019-01-15 15:44:21 -05:00
John Anderson
d6d8b078b9 Merge branch 'develop' into select2-ui 2019-01-15 10:26:39 -08:00
Jeremy Stretch
1d7a7e2d1d Fixes #2779: Include "none" option when filter IP addresses by role 2019-01-15 11:26:41 -05:00
Jeremy Stretch
4a290f3834 Fixes #2783: Fix AttributeError exception when attempting to delete region(s) 2019-01-15 10:44:11 -05:00
Jeremy Stretch
9e492cbb4d Post-release version bump 2019-01-11 11:35:06 -05:00
Jeremy Stretch
e17d79e10f Merge pull request #2778 from digitalocean/develop
Release v2.5.3
2019-01-11 11:32:49 -05:00
Jeremy Stretch
28a2981a4f Release v2.5.3 2019-01-11 11:27:59 -05:00
Jeremy Stretch
d356e288a2 Expanded the bug report template 2019-01-11 10:30:35 -05:00
Jeremy Stretch
dd5f37391f Fixes #2777: Fix cable validation to handle duplicate connections on import 2019-01-11 10:17:06 -05:00
John Anderson
17d6584ef4 removed deprecated code 2019-01-10 21:23:22 -05:00
John Anderson
ad4fb3ce8b IPAM Select2 forms and changelog 2019-01-10 21:19:13 -05:00
John Anderson
5f1f8ee73b Circuits Select2 forms 2019-01-10 17:50:06 -05:00
John Anderson
60224be272 Merge branch 'develop' of github.com:digitalocean/netbox into select2-ui 2019-01-10 17:32:38 -05:00
John Anderson
6dcd48fef1 Virtulization Select2 forms 2019-01-10 17:32:23 -05:00
John Anderson
951e7a68e9 Secrets Select2 forms 2019-01-09 23:46:45 -05:00
John Anderson
86bafbb760 Tenancy Select2 forms 2019-01-09 23:33:08 -05:00
John Anderson
a6564c49e2 DCIM removed annotates from querysets 2019-01-09 13:44:39 -05:00
Jeremy Stretch
c89735cd4e Disable wrapping of report labels 2019-01-09 11:47:34 -05:00
John Anderson
f3216abebf Merge branch 'develop' of github.com:digitalocean/netbox into select2-ui 2019-01-09 11:25:56 -05:00
Jeremy Stretch
5676bd15dd Closes #2682: Add DAC and AOC cable types 2019-01-09 09:28:44 -05:00
John Anderson
bf8d57c7d1 DCIM filter forms select2 2019-01-08 15:35:34 -08:00
Jeremy Stretch
0d415d94a5 Fixes #2757: Always treat first/last IPs within a /31 or /127 as usable 2019-01-08 12:04:32 -05:00
Jeremy Stretch
73a1d6a7ba Fixes #2762: Add missing DCIM field values to API _choices endpoint 2019-01-08 11:51:13 -05:00
John Anderson
72d5c6fd1b #2590 changelog 2019-01-05 17:46:23 -05:00
John Anderson
6d5d9c8af3 implemented #2590 - improved color picker with actual colors 2019-01-05 17:43:42 -05:00
John Anderson
c27cea981c select2 for all create/edit forms in dcim 2019-01-04 14:41:36 -05:00
Jeremy Stretch
f7f6704fc1 Preserve filtering/ordering parameters when modifying per_page count 2019-01-04 13:17:24 -05:00
John Anderson
fca97f9768 Merge branch 'develop' of github.com:digitalocean/netbox into select2-ui 2019-01-04 12:44:41 -05:00
John Anderson
7a5a73ce34 fixed whitespace 2019-01-04 12:44:31 -05:00
Jeremy Stretch
170e01b549 Closes #1983: Enable regular expressions when bulk renaming device components 2019-01-04 12:30:38 -05:00
Jeremy Stretch
99dc46a89e Fixes #2742: Preserve cluster assignment when editing a device 2019-01-04 11:46:53 -05:00
Jeremy Stretch
848aa0b098 Closes #1870: Add per-page toggle to object lists 2019-01-04 11:07:55 -05:00
John Anderson
81a0889568 initial static select2 fields 2019-01-03 23:02:05 -05:00
Jeremy Stretch
0a820d9c98 Closes #1871: Enable filtering sites by parent region 2019-01-03 16:59:49 -05:00
Jeremy Stretch
209a9f0ffc Closes #1630: Enable bulk editing of prefix/IP mask length 2019-01-03 16:21:21 -05:00
Jeremy Stretch
3101a86381 Changelog updates; import cleanup 2019-01-03 15:30:12 -05:00
Jeremy Stretch
27ca0d0930 Merge pull request #2737 from TakeMeNL/feature/2726
Closes #2726 - Search for Cable Labels
2019-01-03 15:27:21 -05:00
Jeremy Stretch
6ca045e1a9 Merge pull request #2694 from DanSheps/2693-fiber-cable-colors
Closes #2693 - Adds additional colors for cables & roles
2019-01-03 15:24:36 -05:00
dansheps
0c86693dc4 Closes #2693
* Revert CSS Background Hack
2019-01-03 13:20:29 -06:00
John Anderson
5285b6926f updated filter-for attr handling 2019-01-03 03:00:27 -05:00
John Anderson
f3cfc17a52 fix processing of initial tags 2019-01-03 02:25:12 -05:00
Brian Candler
c58166137c Show exception description on failure to render graphviz
This means that problems give a more specific reason.  In the event
that dot is not found, the error is now:

There was an error generating the requested graph: failed to execute ['dot',
'-Tpng'], make sure the Graphviz executables are on your systems' PATH
2019-01-01 11:41:54 +00:00
John Anderson
28a02e9943 initial select2 support 2018-12-30 02:35:18 -05:00
TakeMeNL
c6d9206dd1 Added ability to search for cables in global search 2018-12-29 22:22:12 +01:00
Jeremy Stretch
d144d3a584 Post-release version bump 2018-12-21 11:48:12 -05:00
Jeremy Stretch
8cf8710130 Merge pull request #2725 from digitalocean/develop
Release v2.5.2
2018-12-21 11:46:31 -05:00
Jeremy Stretch
3705e37678 Release v2.5.2 2018-12-21 11:44:30 -05:00
Jeremy Stretch
ebe5193348 Fixes #2724: Limit rear port choices to current device when editing a front port 2018-12-21 11:09:44 -05:00
Jeremy Stretch
a3097d254e Fixes #2721: Detect loops when tracing front/rear ports 2018-12-21 10:54:20 -05:00
Jeremy Stretch
38276d9539 Fixes #2723: Correct permission evaluation when bulk deleting tags 2018-12-21 09:11:07 -05:00
Jeremy Stretch
91a2168952 Fixes #2717: Fix bulk deletion of tags 2018-12-21 09:08:00 -05:00
Jeremy Stretch
4a10b4ece0 Fixes #2704: Fix form select widget population on parent with null value 2018-12-20 15:49:35 -05:00
Jeremy Stretch
853b1fad15 Fixes #2712: Preserve list filtering after editing objects in bulk 2018-12-20 15:33:53 -05:00
Jeremy Stretch
7acbeb55bc Minor tweaks 2018-12-20 09:54:59 -05:00
Jeremy Stretch
8498e0088b Merge pull request #2667 from Jemikwa/develop
#2656 Updating LDAP documentation
2018-12-20 09:53:21 -05:00
Jeremy Stretch
aae10f7d71 Tweaked 200GE and 400GE interface type labels 2018-12-20 09:18:18 -05:00
Jeremy Stretch
6b19a2b101 Fixes #2709: Update example report for compatibility with v2.5 2018-12-19 16:34:35 -05:00
Jeremy Stretch
b44a76e6bd Closes #2537: Added AUTH_LDAP_MIRROR_GROUPS setting to LDAP docs 2018-12-19 16:24:41 -05:00
Jeremy Stretch
7f71fc1d42 Closes #2561: Add 200G and 400G interface types 2018-12-19 16:13:04 -05:00
Jeremy Stretch
ba9fe408bc #2675: Added InventoryItem search form field for 'discovered' 2018-12-19 14:15:22 -05:00
Jeremy Stretch
40cb576e11 Fixes #2673: Fix exception on LLDP neighbors view for device with a circuit connected 2018-12-19 14:04:22 -05:00
Jeremy Stretch
2f1db2fdf3 Fixes #2691: Cable trace should follow circuits 2018-12-19 12:48:20 -05:00
Jeremy Stretch
f4a22e5af3 Introduced fgcolor template filter to render ideal foreground color for any background color 2018-12-19 12:17:40 -05:00
Jeremy Stretch
aca57ec281 Fixes #2698: Remove pagination restriction on bulk component creation for devices/VMs 2018-12-19 10:59:12 -05:00
Jeremy Stretch
68cb8b6895 Closes #2701: Enable filtering of prefixes by exact prefix value 2018-12-19 10:02:18 -05:00
Jeremy Stretch
82e8c0152e Fixes #2707: Correct permission evaluation for circuit termination cabling 2018-12-19 09:36:45 -05:00
dansheps
f499f2dd66 Closes #2693 2018-12-14 11:51:20 -06:00
Jeremy Stretch
d4a9318826 Post-release version bump 2018-12-13 15:24:13 -05:00
Jeremy Stretch
27a893a9a1 Merge pull request #2688 from digitalocean/develop
Release v2.5.1
2018-12-13 15:20:09 -05:00
Jeremy Stretch
9f1fcca5ea Release v2.5.1 2018-12-13 15:03:08 -05:00
Jeremy Stretch
bb564363d5 Fix regression from #2683 2018-12-13 14:59:54 -05:00
Jeremy Stretch
dd2a6a41da Fixes #2687: Correct naming of before/after filters for changelog entries 2018-12-13 14:43:05 -05:00
Jeremy Stretch
a6c8c615eb Closes #2674: Enable filtering changelog by object type under web UI 2018-12-13 14:37:03 -05:00
Jeremy Stretch
0d3b1bfca4 Fixes #2683: Fix exception when connecting a cable to a RearPort with no corresponding FrontPort 2018-12-12 16:40:34 -05:00
Jeremy Stretch
edd763b1aa Fixes #2684: Fix custom field filtering 2018-12-12 16:06:50 -05:00
Jeremy Stretch
2418fed65b Fixes #2663: Prevent duplicate interfaces from appearing under VLAN members view 2018-12-12 13:18:42 -05:00
Jeremy Stretch
785cdcefd6 Closes #2671: Add documentation of API brief format 2018-12-12 10:27:18 -05:00
Jeremy Stretch
3480832bf5 Added changelog for #2662 (fixed under #2680) 2018-12-12 09:59:54 -05:00
Jeremy Stretch
ee038bd77b Closes #2655: Add 128GFC Fibrechannel interface type 2018-12-12 09:48:17 -05:00
Jeremy Stretch
6460c95e00 Fixes #2678: Fix error when viewing webhook in admin UI without write permission 2018-12-12 09:30:31 -05:00
Jeremy Stretch
b0a6781623 Fixes #2680: Disallow POST requests to /dcim/interface-connections/ API endpoint 2018-12-12 09:20:07 -05:00
Jeremy Stretch
8364e56e86 Fixes #2676: Fix exception when passing dictionary value to a ChoiceField 2018-12-11 17:00:20 -05:00
Jeremy Stretch
b8a4316297 Changelog for #2666 2018-12-11 13:47:24 -05:00
Jeremy Stretch
24d1707693 Merge pull request #2670 from DanSheps/2666-fix-length-display
Fixes #2666: Uses correct function for displaying choices label
2018-12-11 13:45:16 -05:00
dansheps
b4f79f1667 Fixes #2666: Uses correct function for displaying choices label
* Changes record.length_type to record.get_length_type_display
2018-12-11 12:40:07 -06:00
Jemikwa
064dd9bef2 Updating LDAP documentation
Adding information on service restarts and logging LDAP queries for troubleshooting.
2018-12-11 11:45:45 -06:00
Jeremy Stretch
b697c30941 #2627: Removed reference to provider from Circuit.__str__() 2018-12-11 11:15:45 -05:00
Jeremy Stretch
93c95fdfa8 Post-release version bump 2018-12-10 10:29:51 -05:00
Jeremy Stretch
8863a3126d Merge pull request #2660 from digitalocean/develop
Release v2.5.0
2018-12-10 10:27:24 -05:00
Jeremy Stretch
acbe5f6418 Release v2.5.0 2018-12-10 10:22:32 -05:00
Jeremy Stretch
4e6652d811 Change pip command to pip3 2018-12-10 09:57:37 -05:00
Jeremy Stretch
7d4fa69595 Fixes #2657: Fix typo 2018-12-10 09:54:30 -05:00
Jeremy Stretch
baeb7937fc Updated requirements for v2.5 release 2018-12-07 15:52:25 -05:00
Jeremy Stretch
2bd9f8a11f Updated installation docs for v2.5 release 2018-12-07 15:29:18 -05:00
Jeremy Stretch
44a2919a29 Django 2.1 requires Python 3.5+ 2018-12-07 14:44:36 -05:00
Jeremy Stretch
77fbc42f75 Relax Python version requirement to 3.4 2018-12-07 14:29:17 -05:00
Jeremy Stretch
65edffea63 Merge v2.5 work 2018-12-07 10:51:28 -05:00
Jeremy Stretch
bf0083552d Merge pull request #2653 from digitalocean/develop
Release v2.4.9
2018-12-07 10:25:46 -05:00
Jeremy Stretch
869194354c Release v2.4.9 2018-12-07 10:19:57 -05:00
Jeremy Stretch
aa8c836b94 Closes #2611: Fix error handling when assigning a clustered device to a different site 2018-12-07 09:57:55 -05:00
Jeremy Stretch
9689ba2c4f Fix representation of connected_endpoint_type for non-connected components 2018-12-06 16:39:03 -05:00
Jeremy Stretch
703be259fd Normalize connection_status for non-connected device components during migration 2018-12-06 16:32:42 -05:00
Jeremy Stretch
45a1dfbd8a Closes #2649: Add connected_endpoint_type to connectable device component API representations 2018-12-06 16:14:03 -05:00
Jeremy Stretch
360303f86c Closes #2474: Add cabled and connection_status filters for device components 2018-12-06 12:39:12 -05:00
Jeremy Stretch
64d37cd450 Closes #2648: Include the connection_status field in nested represenations of connectable device components 2018-12-06 12:14:54 -05:00
Jeremy Stretch
71dee2758b Simplified filter_device() for Interfaces 2018-12-06 11:33:24 -05:00
Jeremy Stretch
870edbb44a Fixes #2626: Remove extraneous permissions generated from proxy models 2018-12-05 16:53:58 -05:00
Jeremy Stretch
2a07e8f3f0 Move queryset_to_csv() utility into ObjectListView to allow overriding by individual views 2018-12-05 16:35:59 -05:00
Jeremy Stretch
686a65880e Closes #2495: Enable deep-merging of config context data 2018-12-05 14:34:49 -05:00
Jeremy Stretch
ab4cb46d94 Additional API change notes 2018-12-05 11:13:29 -05:00
Jeremy Stretch
d3d6c83fbb Fixes #2634: Enforce consistent representation of unnamed devices in rack view 2018-12-04 15:29:58 -05:00
Jeremy Stretch
4e3567659a Add reminder to update static field choices 2018-12-04 15:19:38 -05:00
Jeremy Stretch
f0874f4be0 Add missing choices for new cable and rack fields 2018-12-04 15:15:40 -05:00
Jeremy Stretch
dffa2d3556 Closes #2632: Change representation of null values from 0 to 'null' 2018-12-04 15:09:07 -05:00
Jeremy Stretch
7bbf33ee39 Don't force the docs to open in a new window 2018-12-04 09:44:25 -05:00
Jeremy Stretch
90e7080b63 Closes #2641: Restored link to NetBox shell documentation 2018-12-04 09:19:32 -05:00
John Anderson
e6ee26cf0e CHANGELOG.md 2018-12-04 00:46:36 -05:00
John Anderson
0dcab07519 fixes #2623 - model class being passed to rqworker 2018-12-04 00:40:54 -05:00
Jeremy Stretch
a3ade01224 Fixes #2639: Fix preservation of length/dimensions unit for racks and cables 2018-12-03 11:13:37 -05:00
mmahacek
232e6f5076 #2635 - Update documentation for python3 update (#2636)
Add reference to reinstalling the django-rq module
2018-12-03 09:56:43 -05:00
Jeremy Stretch
d1cd366dc9 Fixes #2616: Convert Rack outer_unit and Cable length_unit to integer-based choice fields 2018-11-30 12:26:28 -05:00
Jeremy Stretch
a1a9396287 Closes #2594: upgrade.sh no longer invokes sudo 2018-11-30 11:12:10 -05:00
Jeremy Stretch
ca0248c3a2 Closes #2089: Add SONET interface form factors 2018-11-30 09:28:56 -05:00
Jeremy Stretch
a43fc0d3d3 Closes #2560: Add slug to DeviceType UI view 2018-11-28 16:19:05 -05:00
Jeremy Stretch
08b4b24296 Fixes #2622: Enable filtering cables by multiple types/colors 2018-11-28 14:22:55 -05:00
Jeremy Stretch
5acd429c55 Fixes #2624: Delete associated content type and permissions when removing InterfaceConnection model 2018-11-28 13:45:02 -05:00
Jeremy Stretch
6c2a9107dd Closes #2597: Add FibreChannel SFP28 (32GFC) interface form factor 2018-11-28 09:56:48 -05:00
Jeremy Stretch
879d879e56 Closes #2617: Explicitly mention that test service runs on port 8000 2018-11-28 09:35:33 -05:00
Jeremy Stretch
c6d048ca51 Fixes #2576: Correct type for count_* fields in site API representation 2018-11-27 16:27:47 -05:00
Jeremy Stretch
112aaea51f Updated changelog for #2400 2018-11-27 16:18:57 -05:00
Tatsushi Demachi
c3cdf8e97e Fix type mismatches in API view (#2429)
* Fix tags field to be shown as array in API view

`tags` field in serializers is defineded as `TagListSerializerField`.
It should be shown as an array value in API view but actually, it is a
simple string value.

This fixes it by introducing a new `FieldInspector` to handle
`TagListSerializerField` type field as an array. It doesn't affects any
other type fields.

* Fix SerializedPKRelatedField type API expression

A field definded as `SerializedPKRelatedField` should be shown as an
array of child serializer objects in a response value definition in API
view but it is shown as an array of primary key values (usually
`integer` type) of a child serializer.

This fixes it by introducing a new `FieldInspector` to handle the field.
It doesn't affect any other type fields.

* Fix request parameter representation in API view

In API view, representation of a parameter defined as a sub class of
`WritableNestedSerializer` should be vary between a request and a
response. For example, `tenant` field in `IPAddressSerializer` should be
shown like following as a request body:

```
tenant: integer ...
```

while it should be shown like following as a response body:

```
tenant: {
    id: integer ...,
    url: string ...,
    name: string ...,
    slug: string ...
}
```

But in both cases, it is shown as a response body type expression. This
causes an error at sending an API request with that type value.

It is only an API view issue, API can handle a request if a request
parameter is structured as an expected request body by ignoring the
wrong expression.

This fixes the issue by replacing an implicitly used default auto schema
generator class by its sub class and returning a pseudo serializer with
'Writable' prefix at generating a request body. The reason to introduce
a new generator class is that there is no other point which can
distinguish a request and a response. It is not enough to distinguish
POST, PUT, PATCH methods from GET because former cases may return a JSON
object as a response but it is also represented as same as a request
body, causes another mismatch.

This also fixes `SerializedPKRelatedField` type field representation. It
should be shown as an array of primary keys in a request body.

Fixed #2400
2018-11-27 16:14:45 -05:00
Jeremy Stretch
d2744700c6 Fixes #2615: Tweak live search widget to use brief format for API requests 2018-11-27 12:41:00 -05:00
Jeremy Stretch
5d07a5a670 Fixes #2613: Decrease live search minimum characters to three 2018-11-27 12:20:52 -05:00
Jeremy Stretch
4da755e75f Formatting cleanup 2018-11-27 11:57:29 -05:00
Jeremy Stretch
bd7aee7c1f Closes #2614: Simplify calls of super() for Python 3 2018-11-27 10:52:24 -05:00
Jeremy Stretch
f3aef37163 Add developer guidance for the introduction of new dependencies 2018-11-27 10:45:10 -05:00
Jeremy Stretch
7d262296e1 Added a description and repo URL for each dependency 2018-11-27 09:51:48 -05:00
Jeremy Stretch
3f1b42d466 Release v2.5-beta2 2018-11-26 16:27:57 -05:00
Jeremy Stretch
90a4b62976 Changelog for #2606 2018-11-26 14:41:09 -05:00
Daniel Sheppard
7346083b26 Fixes #2606 - Added MultipleChoiceFilter for form_factor (#2610)
* Fixes #2606 - Added MultipleChoiceFilter for form_factor

* Fixes #2606 - Add MultipleChoiceField for form_factor
Fixes error with too many lines.
2018-11-26 14:19:05 -05:00
Tyler Bigler
f052bbc36e Refactor Extras Migration Version Check (#2604)
* Add constant for DB_MINIMUM_VERSION

* Refactor verify_postgresql_version to use Django connection pg_version method for comparing versions.

* Remove StrictVersion import

* Remove DB_MINIMUM_VERSION as not necessary in constants.

* Define DB_MINIMUM_VERSION locally to freeze to migration.

* Refactor database version verification to use django builtin methods.
2018-11-26 14:16:37 -05:00
Jeremy Stretch
7d8ae5e763 Fixes #2609: Fixed exception when ChoiceField integer value is passed as a string 2018-11-26 14:05:57 -05:00
Jeremy Stretch
2bae50f501 Enforce consistent ordering of value/label keys for ChoiceField 2018-11-26 14:02:38 -05:00
Jeremy Stretch
a46f68c6e4 Fixes #2608: Fixed null outer_unit error on rack import 2018-11-26 13:41:35 -05:00
Jeremy Stretch
d59be2912e Closes #2601: Added a description field to pass-through ports 2018-11-20 21:28:19 -05:00
Jeremy Stretch
240d22696f Strip annotations from queryset when retrieving object count for API pagination 2018-11-20 21:02:06 -05:00
Jeremy Stretch
2b1516ea79 Changelog for #2602 2018-11-20 13:21:38 -05:00
Jeremy Stretch
89622f1ddf Fixes #2602: Return HTTP 204 when no new IPs/prefixes are available for provisioning 2018-11-20 13:03:59 -05:00
Jeremy Stretch
874acab90f Merge v2.4.8 2018-11-20 12:28:24 -05:00
Jeremy Stretch
8d4329197a Merge pull request #2600 from digitalocean/develop
Release v2.4.8
2018-11-20 11:58:29 -05:00
Jeremy Stretch
34bfb899d1 Post-release version bump 2018-11-20 11:58:19 -05:00
Jeremy Stretch
55c153c5a9 Release v2.4.8 2018-11-20 11:56:14 -05:00
Jeremy Stretch
c29ae9b785 Added missing import buttons to cables list 2018-11-20 09:41:38 -05:00
Jeremy Stretch
5ce955a719 Fixed toggling of connection status for cable path endpoints 2018-11-20 09:23:30 -05:00
Jeremy Stretch
8c3a294384 Standardized behavior and display of connection_status 2018-11-19 15:26:06 -05:00
Jeremy Stretch
55cc327e05 Updated migrations 2018-11-19 13:44:18 -05:00
Jeremy Stretch
a324638f1f Improved logic for recording cable path connection status 2018-11-19 12:37:53 -05:00
Jeremy Stretch
3366a6ae3d Closes #2557: Added object view for tags 2018-11-15 16:47:41 -05:00
Jeremy Stretch
7dde370ee1 Fixes #2593: Fix toggling of connected cable's status 2018-11-15 14:23:23 -05:00
John Anderson
dfe6ba5603 #2583 changelog 2018-11-15 00:55:47 -05:00
John Anderson
fd9b2f2fda cleanup component filters and UI filter forms for device and device type - #2583 2018-11-15 00:42:01 -05:00
John Anderson
3c0181ef35 added logic to append &type=physical to interface API query for cable creation - #2585 2018-11-14 23:35:15 -05:00
Jeremy Stretch
641254b23a Closes #2053: Introduced the LOGIN_TIMEOUT configuration setting 2018-11-14 14:18:32 -05:00
Jeremy Stretch
63bd48003e Clean up cable termination types 2018-11-14 12:17:18 -05:00
Jeremy Stretch
23cde65add Fixes #2589: Virtual machine API serializer should require cluster assignment 2018-11-14 10:38:53 -05:00
Jeremy Stretch
408f632636 Fixes #2588: Catch all exceptions from failed NAPALM API Calls 2018-11-14 10:12:35 -05:00
Jeremy Stretch
83be0b5db4 Closes #2490: Added bulk editing for config contexts 2018-11-13 15:08:55 -05:00
Jeremy Stretch
7bed48f5fe Expanded device interfaces display to include MTU, MAC address, and tags 2018-11-13 14:18:00 -05:00
Jeremy Stretch
2fce7ebd8f Fixes #2565: Improved rendering of Markdown tables 2018-11-13 11:02:48 -05:00
Jeremy Stretch
f8e6cfbeba Closes #2426: Introduced SESSION_FILE_PATH configuration setting for authentication without write access to database 2018-11-13 10:31:44 -05:00
John Anderson
fc41359df6 removed blank line 2018-11-12 23:34:14 -05:00
John Anderson
5649024d93 #2586 changelog 2018-11-12 23:27:14 -05:00
John Anderson
65bc8f0254 resolved #2586 - tests for the Cable model clean method 2018-11-12 23:26:08 -05:00
John Anderson
7887a70b70 #2585 changelog 2018-11-12 23:20:17 -05:00
John Anderson
8a6913fe19 fixed #2585 - connections with virtual interfaces 2018-11-12 23:18:23 -05:00
John Anderson
7cd0e0b244 #2584 changelog 2018-11-12 22:19:30 -05:00
John Anderson
9543b5e716 fixed #2584 - validation for connecting front port to corresponding rear port 2018-11-12 22:15:06 -05:00
Jeremy Stretch
bc8dbfde7c Merge branch 'develop' into develop-2.5 2018-11-12 16:03:52 -05:00
Jeremy Stretch
0c33af2140 Fixes #2558: Filter on all tags when multiple are passed 2018-11-12 15:48:58 -05:00
Jeremy Stretch
b6a256dc5d Expanded the development style guide 2018-11-12 14:36:09 -05:00
Jeremy Stretch
5785fb6ba2 Added development docs for extending a model 2018-11-12 13:59:58 -05:00
Jeremy Stretch
59589fdd29 Fixes #2580: Remove erroneous CSS class from "add components" button 2018-11-12 12:04:04 -05:00
Jeremy Stretch
75f0d8ee90 Closes #2578: Reorganized nested serializers 2018-11-12 11:36:44 -05:00
Jeremy Stretch
04ae6ec7af Fixes #2554: Fix cable trace display when following a rear port with no cable attached 2018-11-09 15:22:34 -05:00
Jeremy Stretch
3bbf4a3352 Fixes #2579: Add missing cable disconnect buttons for front/rear ports 2018-11-09 15:17:42 -05:00
Jeremy Stretch
0316072863 Fixes #2574: Remove duplicate interface links from topology maps 2018-11-09 09:54:30 -05:00
Jeremy Stretch
845d467fd9 Fixes #2575: Correct model specified for rack roles table 2018-11-09 09:46:30 -05:00
Jeremy Stretch
be5bf6b711 Closes #2570: Add bulk disconnect view for front/rear pass-through ports 2018-11-08 15:12:24 -05:00
Jeremy Stretch
788847edaa Fixes #2573: Fix bulk console/power/interface disconnections 2018-11-08 15:04:34 -05:00
Jeremy Stretch
61ca7ee7c2 Closes #2559: Add a pre-commit git hook to enforce PEP8 validation 2018-11-08 13:52:34 -05:00
Jeremy Stretch
30f8fb4c11 Fixes #2572: Add button to disconnect cable from circuit termination 2018-11-08 12:27:15 -05:00
Jeremy Stretch
3e92aa9fe7 Fixes #2571: Enforce deletion of attached cable when deleting a termination point 2018-11-08 12:15:56 -05:00
Jeremy Stretch
bb5432de7d PEP8 fix 2018-11-08 11:13:03 -05:00
Jeremy Stretch
21fd889810 Fix regression from #2566 2018-11-08 11:11:52 -05:00
Jeremy Stretch
a228f1e1c2 Closes #2569: Added LSH fiber type; removed SC duplex/simplex designations 2018-11-08 10:49:26 -05:00
Jeremy Stretch
4b5181d640 Fixes #2566: Prevent both ends of a cable from connecting to the same termination point 2018-11-08 10:40:17 -05:00
Jeremy Stretch
0dee55885b Fixes #2567: Introduced proxy models to represent console/power/interface connections 2018-11-08 09:51:47 -05:00
Jeremy Stretch
1e36a884fa Changelog for #2563 2018-11-08 09:11:28 -05:00
Jeremy Stretch
d4e266d48c Fixes #2563: Enable export templates for cables 2018-11-07 15:49:45 -05:00
Jeremy Stretch
69d829ce8d Fixes #2473: Fix encoding of long (>127 character) secrets 2018-11-07 13:44:16 -05:00
Jeremy Stretch
c1838104ae Add lag description to lag column 2018-11-07 12:20:14 -05:00
Jeremy Stretch
c716ca1e87 Changelog query optimization 2018-11-07 10:42:04 -05:00
mmahacek
c063961e4a Add Cable count to home page (#2556)
* Add stats.cable_count

* Add Cable count to home page
2018-11-07 10:36:04 -05:00
Jeremy Stretch
f61cea695b Release v2.5-beta1 2018-11-06 15:59:46 -05:00
Jeremy Stretch
e806b58ac9 Release v2.5-beta1 2018-11-06 15:58:55 -05:00
Jeremy Stretch
338ce737c8 Removed deprecated expand_numeric_pattern() 2018-11-06 15:39:38 -05:00
Jeremy Stretch
f41f141130 Removed unused class NullableModelMultipleChoiceField 2018-11-06 15:32:59 -05:00
Jeremy Stretch
9f0169286b Standardize usage of NaturalOrderingManager 2018-11-06 14:05:23 -05:00
Jeremy Stretch
60452a7b0c Implemented DeviceComponentManager; removed natsort as a dependency 2018-11-06 12:43:30 -05:00
Jeremy Stretch
6140dd955a Set unit_length to empty string when not specified during cable import 2018-11-06 12:12:06 -05:00
Jeremy Stretch
5e06c5a9ea Added cable connection views for front/rear ports 2018-11-06 12:04:46 -05:00
Jeremy Stretch
ad4e1f01aa Improved templates for cable creation 2018-11-06 11:52:41 -05:00
Jeremy Stretch
bb114ea66b Re-implemented connected device API view & test 2018-11-06 11:44:32 -05:00
Jeremy Stretch
ce00226bc6 Merge release v2.4.7 into develop-2.5 2018-11-06 11:19:38 -05:00
Jeremy Stretch
8bad25b860 Post-release version bump 2018-11-06 10:57:38 -05:00
Jeremy Stretch
cb83eb204b Merge pull request #2552 from digitalocean/develop
Release v2.4.7
2018-11-06 10:55:29 -05:00
Jeremy Stretch
99edb8b8d5 Release v2.4.7 2018-11-06 10:49:44 -05:00
Jeremy Stretch
b4998f4b01 Closes #2388: Enable filtering of devices/VMs by region 2018-11-06 10:31:56 -05:00
John Anderson
51295389c6 add temporary support for hyphenated query params for #2549 2018-11-06 10:08:00 -05:00
Ben Bleything
5baf86dc89 fix prefix length for 172.16.0.0/12 (#2548) 2018-11-06 09:26:05 -05:00
Jeremy Stretch
fd4a9db13e Closes #2512: Add device field to inventory item filter form 2018-11-06 09:24:05 -05:00
John Anderson
e243234c4e changelog for #2549 2018-11-06 00:57:09 -05:00
John Anderson
817dc89279 fixed test for #2549 2018-11-06 00:54:57 -05:00
John Anderson
798a87b31e fixed #2549 - incorrect naming of peer-device and peer-interface 2018-11-06 00:51:55 -05:00
Jeremy Stretch
4d47d848c5 Fixed changelog for #2528 2018-11-05 16:10:33 -05:00
Jeremy Stretch
bd3ccfe020 Fixes #2528: Enable creating circuit terminations with interface assignment via API 2018-11-05 16:10:01 -05:00
Jeremy Stretch
ded90df01b Filter cleanup 2018-11-05 15:45:21 -05:00
Jeremy Stretch
ce7930abfd Changelog for #2427 2018-11-05 15:40:48 -05:00
Daniel Sheppard
82b4aad585 Fixes 2427: Added filtering interfaces by vlan id(vlan=#) and vlan pk(vlan_id=#) (#2521) 2018-11-05 15:37:52 -05:00
Jeremy Stretch
f321e2c705 Changelog for #2501 2018-11-05 15:34:39 -05:00
knobix
0c86fd89ca Update models.py (#2502)
Fix the handling of shared IPs (VIP, VRRF, etc.) when unique IP space enforcement is set.

Add parentheses for the logical OR-statement to make the evaluation valid.

Fixes: #2501
2018-11-05 15:33:10 -05:00
Jeremy Stretch
01628cdd31 Updated base requirements 2018-11-05 15:09:11 -05:00
Jeremy Stretch
e57b3bc4ab Closes #2057: Added description columns to interface connections list 2018-11-05 14:41:51 -05:00
Jeremy Stretch
82076d3ca6 Changelog for #1931 2018-11-05 14:33:50 -05:00
Jeremy Stretch
46e594f1f1 Closes #1931: Added a count of assigned IP addresses to the interface API serializer 2018-11-05 14:32:22 -05:00
Jeremy Stretch
e8caa46484 Expanded v2.5 release notes 2018-11-05 14:01:34 -05:00
Jeremy Stretch
1847e82d04 Closes #867: Add a 'description' field to CircuitTermination 2018-11-05 13:53:22 -05:00
Jeremy Stretch
045856c9ac Introduced a placeholder template filter 2018-11-05 13:00:46 -05:00
Jeremy Stretch
53b6a07a41 Changelog for #2165 2018-11-05 12:07:02 -05:00
Jeremy Stretch
976388f29c Removed 'interface_ordering' field from DeviceType 2018-11-05 12:02:55 -05:00
Jeremy Stretch
e5f12109c5 Closes #2165: Re-implemented natural ordering for interfaces 2018-11-05 11:51:38 -05:00
Juho Juopperi
319869c22e Update django is_safe_url calls to new API (#2546) 2018-11-05 08:52:00 -05:00
Jeremy Stretch
66ef5c726c Removed deprecated CableQuerySet 2018-11-02 15:33:31 -04:00
Jeremy Stretch
f8a961b568 Cleaned up import statements 2018-11-02 15:20:08 -04:00
Jeremy Stretch
521a989d23 Removed Python2 hack 2018-11-02 14:59:48 -04:00
Jeremy Stretch
0a71c63583 Upgraded to Django 2.1 2018-11-02 14:42:15 -04:00
Jeremy Stretch
b05171b126 Upgraded django-tables2 to v2.0.2 2018-11-02 14:27:17 -04:00
Jeremy Stretch
9804db4551 Updated dependencies 2018-11-02 14:14:15 -04:00
Jeremy Stretch
516faac73f Fixed deprecation warnings from DRF 3.9 2018-11-02 13:48:44 -04:00
Jeremy Stretch
29d546a3f1 Upgraded django-filter to 2.0.0 2018-11-02 13:46:28 -04:00
Jeremy Stretch
bb5c0989f3 Fixed compatability with Django REST Framework v3.9.0 2018-11-02 13:16:44 -04:00
Jeremy Stretch
3ea2978df4 Standardized naming of reverse relationships from component templates to DeviceType 2018-11-02 11:55:52 -04:00
Jeremy Stretch
cf9c8f35a0 Normalize ordering of cables by PK 2018-11-02 11:27:26 -04:00
Jeremy Stretch
cefec1be60 Show connected circuit termination on interface view 2018-11-02 11:15:09 -04:00
Jeremy Stretch
16d8308fa8 Deprecated CableTermination.get_connected_cable() 2018-11-02 11:04:21 -04:00
Jeremy Stretch
af95ba48aa Replaced is_console_server, is_pdu, and is_network_device filters on Device and DeviceType 2018-11-02 10:45:31 -04:00
Jeremy Stretch
43446cc642 Added more detail to v2.5.0 release notes 2018-11-02 10:02:44 -04:00
Jeremy Stretch
c60c5502f6 Closes #450: Add 'outer_width' and 'outer_depth' fields to Rack 2018-11-02 09:51:17 -04:00
Jeremy Stretch
4ffe1866c5 Closes #1444: Add field to Rack model 2018-11-02 09:17:51 -04:00
Jeremy Stretch
d4ec309d68 Changelog for #2104 2018-11-02 08:59:51 -04:00
Jeremy Stretch
fa6c4db13b Closes #2104: Add 'status' field to Rack 2018-11-01 16:03:42 -04:00
Jeremy Stretch
91ce6c2420 Cable migration for ExportTemplate 2018-11-01 14:54:53 -04:00
Jeremy Stretch
62da0778ee Suppress print() output from migrations during testing 2018-11-01 14:54:36 -04:00
Jeremy Stretch
7ffb5f16dd Fix color display for cables 2018-11-01 14:32:43 -04:00
Jeremy Stretch
623de7d210 Fixed cable list display for circuit terminations 2018-11-01 14:14:31 -04:00
Jeremy Stretch
1119209fa0 Added CSV export for cables 2018-11-01 13:39:39 -04:00
Jeremy Stretch
c3db7191d2 Added bulk edit/delete views for cables 2018-11-01 13:19:24 -04:00
Jeremy Stretch
2af3685dae Added cables documentation 2018-11-01 12:22:25 -04:00
Jeremy Stretch
841ddd5d83 Add circuit termination as valid termination type for front/rear ports 2018-11-01 11:57:38 -04:00
Jeremy Stretch
a5f0deaea3 Put length and length_unit fields on same line in form 2018-11-01 11:54:34 -04:00
Jeremy Stretch
105f9365bf Fixed Cable model validation 2018-11-01 11:54:15 -04:00
Jeremy Stretch
903dfb6f07 Added validation to Cable model 2018-11-01 11:44:02 -04:00
Jeremy Stretch
571a3e9677 Added cable column to console/power/interface connection tables 2018-11-01 10:51:38 -04:00
Jeremy Stretch
79c110df39 Create id_string on Cable to preserve access to pk after object deletion 2018-11-01 10:25:30 -04:00
Jeremy Stretch
ad03a0925b Fixed cable type filtering 2018-11-01 10:18:37 -04:00
Jeremy Stretch
5e7fccb64e Add blank choice to ColorSelect widget 2018-11-01 10:14:47 -04:00
Jeremy Stretch
3bc6fc5e24 Added changelog view for Cable 2018-11-01 10:04:43 -04:00
Jeremy Stretch
849db8fe44 Finished CableCSVForm 2018-11-01 09:59:53 -04:00
Jeremy Stretch
55c632ace7 Introduce CableBulkImportView 2018-10-31 17:05:25 -04:00
Jeremy Stretch
cd243a90d0 connected_endpoint must be read-only on termination serializers 2018-10-31 16:12:36 -04:00
Jeremy Stretch
4e9ace39ce Optimized queryset for InterfaceConnectionsListView 2018-10-31 16:01:46 -04:00
Jeremy Stretch
18628166dc Removed old console/power connection views 2018-10-31 15:54:29 -04:00
Jeremy Stretch
f7e23d912c Expanded cable connection form 2018-10-31 15:31:44 -04:00
Jeremy Stretch
121a6afb45 Fixed typo in API URL template 2018-10-31 15:23:00 -04:00
Jeremy Stretch
c2656c4ce1 Added tests for Cable model 2018-10-31 15:17:51 -04:00
Jeremy Stretch
d22c23290f Moved cable caching logic from Cable.save() to signals 2018-10-31 15:01:01 -04:00
Jeremy Stretch
8992c57039 Remove reverse relationship to CableTermination.cable 2018-10-31 15:00:09 -04:00
Jeremy Stretch
939a52dcbd Changed variable names for clarity 2018-10-31 14:01:20 -04:00
Jeremy Stretch
6f788fcd23 Tweaked display of connected circuits 2018-10-31 12:53:17 -04:00
Jeremy Stretch
f2f9ff5cbd Cleaned up migrations 2018-10-31 11:52:43 -04:00
Jeremy Stretch
470aabe1d7 Added dedicated cable trace view; removed modal 2018-10-30 16:30:03 -04:00
Jeremy Stretch
669fe1f192 Add missing interfaces table 2018-10-30 15:16:15 -04:00
Jeremy Stretch
62ca511619 Updated documentation 2018-10-30 15:12:14 -04:00
Jeremy Stretch
10492de50d Fix NestedCableSerializer 2018-10-30 14:58:04 -04:00
Jeremy Stretch
e1e9a451da PEP8 fix 2018-10-30 14:57:49 -04:00
Jeremy Stretch
60f5371b31 Fix front ports queryset 2018-10-30 14:54:29 -04:00
Jeremy Stretch
aad4f58633 Add 'cable' field to CircuitTermination serializer 2018-10-30 14:53:41 -04:00
Jeremy Stretch
2fa1c81070 Added initial tests for cable connections 2018-10-30 14:28:46 -04:00
Jeremy Stretch
3420b5fbdf CircuitTermination should inherit from CableTermination 2018-10-30 14:27:45 -04:00
Jeremy Stretch
4df74780b8 Extended Cables to connect CircuitTerminations 2018-10-30 12:16:22 -04:00
Jeremy Stretch
cbfb25f003 Initial work on a cable tracing modal 2018-10-29 16:45:20 -04:00
Jeremy Stretch
e3dc12338b Introduced a 'trace' API endpoint for cable terminations 2018-10-29 15:43:41 -04:00
Jeremy Stretch
e75ef5fd2d Replace references to Interface.connection with connected_endpoint 2018-10-29 14:15:04 -04:00
Jeremy Stretch
8ebf7a7ad0 Standard naming of reverse relationship to Device from component models 2018-10-29 13:42:58 -04:00
Jeremy Stretch
d7766b9828 Replace 'is_connected' boolean with Cable attachment 2018-10-29 13:36:41 -04:00
Jeremy Stretch
427226de8c Optimized API views 2018-10-29 13:26:09 -04:00
Jeremy Stretch
cb1bdccf51 'cable' should be a read-only field 2018-10-29 13:14:41 -04:00
Jeremy Stretch
1ab4344537 Fix front/rear port connection styling 2018-10-29 13:09:23 -04:00
Jeremy Stretch
17a71d3e26 Optimized front/rear port connection displays 2018-10-29 12:56:17 -04:00
Jeremy Stretch
05431aa83b Added 'cable' field to device component serializers 2018-10-29 12:33:43 -04:00
Jeremy Stretch
e21b23cd98 Introduced 'cable' field on CableTermination to cache connected Cable 2018-10-29 12:24:16 -04:00
Jeremy Stretch
dc67028bd9 Corrected cable display 2018-10-29 09:41:03 -04:00
Jeremy Stretch
8f8df2b8e8 Added cable types 2018-10-26 15:45:19 -04:00
Jeremy Stretch
8573c8b8cb Remove is_console_server, is_pdu, and is_network_device from DeviceType 2018-10-26 14:48:22 -04:00
Jeremy Stretch
33cdecbc52 Remove errant print() statement 2018-10-26 14:06:27 -04:00
Jeremy Stretch
0c7510c1a8 PEP8 cleanup 2018-10-26 13:27:54 -04:00
Jeremy Stretch
94946c5854 Swapped the order of cable and connection fields 2018-10-26 13:21:43 -04:00
Jeremy Stretch
83dec3b587 Fixed color display 2018-10-26 13:14:12 -04:00
Jeremy Stretch
3518d023dc Implemented Cable API endpoint 2018-10-26 12:25:11 -04:00
Jeremy Stretch
4ad7882762 Clever icon thing 2018-10-26 11:32:04 -04:00
Jeremy Stretch
957de0cd98 Added cable connections to component lists 2018-10-26 11:29:03 -04:00
Jeremy Stretch
6bea8cc546 Added length and length_unit fields to Cable 2018-10-26 10:28:25 -04:00
Jeremy Stretch
2d90fc608e Introduced CableView and CableEditView 2018-10-25 15:51:12 -04:00
Jeremy Stretch
f134a6ec63 Introduced CableTermination abstract model to ptovide Cable access from termination points 2018-10-25 15:21:16 -04:00
Jeremy Stretch
266429101b Removed 'is_patch_panel' from DeviceType 2018-10-25 12:44:28 -04:00
Jeremy Stretch
b19e2037af Dropped 'Panel' from FrontPanelPort/RearPanelPort names 2018-10-25 12:11:13 -04:00
Jeremy Stretch
e79a156e1f Improved cable tracing 2018-10-25 10:56:47 -04:00
Jeremy Stretch
35f80f5085 First stab at cable path tracing and automatic endpoint connections 2018-10-24 16:17:01 -04:00
Jeremy Stretch
47c523a40b Fixed interface connection rendering 2018-10-24 15:07:11 -04:00
Jeremy Stretch
cca44d44f7 Added cable filter form 2018-10-24 14:59:46 -04:00
Jeremy Stretch
54c917beff Renamed Cable endpoints to terminations 2018-10-24 14:38:44 -04:00
Jeremy Stretch
9985f2cb82 Added CableListView 2018-10-24 14:26:08 -04:00
Jeremy Stretch
f30367e094 Deprecated the InterfaceConnection model 2018-10-24 13:59:44 -04:00
Jeremy Stretch
2ec8dc8319 Renamed PowerPort.power_outlet to connected_endpoint 2018-10-24 11:00:13 -04:00
Jeremy Stretch
1595a5ecd7 Renamed ConsolePort.cs_port to connected_endpoint 2018-10-24 10:37:54 -04:00
Jeremy Stretch
ea0de629df Fixed cable creation form 2018-10-23 13:40:10 -04:00
Jeremy Stretch
471bddea09 WIP: Initial work on the cable connection form 2018-10-22 16:58:24 -04:00
Jeremy Stretch
e97708ada0 Fixes #2526: Bump paramiko and pycryptodome requirements due to vulnerability 2018-10-22 11:23:37 -04:00
Jeremy Stretch
a36b120c8b Merge branch 'develop-2.5' into 20-physical-cabling 2018-10-19 13:34:21 -04:00
Jeremy Stretch
4cfe9fe182 Merge branch 'develop' into develop-2.5 2018-10-19 13:34:03 -04:00
Jeremy Stretch
59af8cc924 Remove ConnectableModel 2018-10-19 11:56:12 -04:00
Jeremy Stretch
d908dffab7 Fixed content type assignment within migration 2018-10-19 10:38:15 -04:00
Jeremy Stretch
ea5121ffe1 Preliminary work on Cables 2018-10-18 15:43:55 -04:00
Jeremy Stretch
0bb5d229e8 Fixes #2514: Prevent new connections to already connected interfaces 2018-10-16 16:42:23 -04:00
mmahacek
409a9256a1 Expand Webhook Documentation #2347 (#2524)
* #2347 - Expand Webhook Documentation

Move "Install Python Packages" section up one header level.  Should make Napalm/Webhook sections appear in table of contents for direct linking.

*  #2347 - Expand Webhook Documentation

Add text for installation to link to other documentation sections with instructions.
2018-10-16 13:19:33 -04:00
Jeremy Stretch
2c37e85a4c Merge pull request #2523 from etcet/patch-1
Fix "cusomizable" typo
2018-10-16 13:16:12 -04:00
Chris James
0ae2dfbff3 Fix "cusomizable" typo 2018-10-16 11:36:32 -05:00
Jeremy Stretch
df5d105f29 Changelog for #2515 2018-10-16 09:42:19 -04:00
Jeremy Stretch
219c9e7d95 Merge pull request #2408 from ScanPlusGmbH/fix-2395
Fix #2515: Modify only when webhooks are enabled
2018-10-16 09:39:28 -04:00
Jeremy Stretch
6832df4699 Fixes #2508: Removed invalid link 2018-10-10 09:49:35 -04:00
Jeremy Stretch
22ed4f1b53 Merge release v2.4.6 2018-10-10 09:36:51 -04:00
Tobias Genannt
c31c7b50b7 Fix #2395: Modify only when webhooks are enabled
This only adds the RQ link when the webhooks setting is enabled.
2018-10-08 07:34:56 +02:00
Jeremy Stretch
7d1f6b7049 Post-release version bump 2018-10-05 15:49:51 -04:00
Jeremy Stretch
74d525364a Merge pull request #2494 from digitalocean/develop
Release v2.4.6
2018-10-05 15:48:11 -04:00
Jeremy Stretch
c2f4cf3407 Release v2.4.6 2018-10-05 15:43:43 -04:00
Jeremy Stretch
83f3dc99ce Changelog entry for #2492 2018-10-05 15:39:30 -04:00
Jeremy Stretch
44d3606ce1 Fixes #2492: Sanitize hostname and port values returned through LLDP 2018-10-05 15:38:32 -04:00
Jeremy Stretch
470d22c835 PEP8 fix 2018-10-05 15:36:48 -04:00
Jeremy Stretch
4c37628784 Fixes #2393: Fix Unicode support for CSV import under Python 2 2018-10-05 15:33:29 -04:00
Marc Heckmann
1daf7f8e2b Sanitize hostname and port values returned through LLDP
If hostname or port are null set to empty string ("").

This avoids breaking the LLDP neighbors (NAPALM) view
2018-10-05 14:30:54 -04:00
Jeremy Stretch
841db3b0c2 Fixes #2491: Fix exception when importing devices with invalid device type 2018-10-05 12:22:46 -04:00
Jeremy Stretch
5d10d8418e Closes #2479: Add user permissions for creating/modifying API tokens 2018-10-05 11:06:59 -04:00
Jeremy Stretch
2fee977b4c Fixes #2485: Fix cancel button when assigning a service to a device/VM 2018-10-05 10:30:13 -04:00
Jeremy Stretch
52f1b1c3bf Changelog entry for #2487 2018-10-04 16:24:09 -04:00
Jeremy Stretch
ab53d0e863 Merge pull request #2488 from digitalocean/2487-api-brief
Closes #2487: Enable brief API output utilizing nested serializers
2018-10-04 16:22:30 -04:00
Jeremy Stretch
259da2d18a #2487: Added API tests 2018-10-04 16:20:01 -04:00
Jeremy Stretch
bf47e7cae3 #2487: Require the 'brief' parameter to evaluate True 2018-10-04 14:50:57 -04:00
Jeremy Stretch
db2721c581 Enable brief API output utilizing nested serializers 2018-10-04 13:43:50 -04:00
John Anderson
1b2e9a6d06 fixes #2484 - Local config context not available on the Virtual Machine Edit Form 2018-10-03 17:16:01 -04:00
Jeremy Stretch
99848aab6a Fixes #2483: Set max item count of API-populated form fields to MAX_PAGE_SIZE 2018-10-03 16:17:17 -04:00
Jeremy Stretch
3eddeeadc5 Initial work on #20 - patch panels 2018-10-03 14:04:16 -04:00
Jeremy Stretch
364bbdeab8 Merged release v2.4.5 2018-10-03 11:23:21 -04:00
Jeremy Stretch
7583912de7 Post-release version bump 2018-10-02 15:30:28 -04:00
Jeremy Stretch
125975832b Merge pull request #2478 from digitalocean/develop
Release v2.4.5
2018-10-02 15:29:13 -04:00
Jeremy Stretch
20fed375d1 Release v2.4.5 2018-10-02 15:24:42 -04:00
Jeremy Stretch
fc1b3d6927 Fixes #2471: Fix ReadTheDocs theme 2018-10-02 11:51:53 -04:00
Jeremy Stretch
aed2a3cd1b Closes #2438: API optimizations for tagged objects 2018-09-28 16:44:05 -04:00
Jeremy Stretch
15babeb584 Fixes #2414: Tags field missing from device/VM component creation forms 2018-09-28 16:26:08 -04:00
Jeremy Stretch
020b5ea870 Fixes #2470: Log the creation of device/VM components as object changes 2018-09-28 16:04:51 -04:00
Jeremy Stretch
2ee5b2344e Changelog and misc cleanup 2018-09-28 14:21:49 -04:00
Jeremy Stretch
7616bcad3d Merge pull request #2445 from digitalocean/local-config-context
Local config context
2018-09-28 14:03:28 -04:00
John Anderson
f76ce980e3 remove templates no longer needed for local config context 2018-09-26 10:30:34 -04:00
Jeremy Stretch
9440ac7640 Fixes #2455: Ignore unique address enforcement for IPs with a shared/virtual role 2018-09-24 16:59:33 -04:00
Jeremy Stretch
0e18997c79 Merge pull request #2446 from hellerve/patch-1
docs: typo fix in devices
2018-09-19 09:47:46 -04:00
Veit Heller
95464772ac docs: typo fix in devices 2018-09-19 10:57:09 +02:00
Jeremy Stretch
b4445dfdf8 Fixes #2442: Nullify "next" link in API when limit=0 is passed 2018-09-18 13:59:50 -04:00
John Anderson
fb5dca2711 Merge branch 'develop' of github.com:digitalocean/netbox into local-config-context 2018-09-18 12:16:07 -04:00
Jeremy Stretch
6cdff955dc Fixes #2444: Improve validation of interface MAC addresses 2018-09-18 12:02:59 -04:00
John Anderson
4039753b2f refactored UI for local config context 2018-09-18 11:52:12 -04:00
Jeremy Stretch
9df33cef8b Fixes #2443: Enforce JSON object format when creating config contexts 2018-09-18 11:46:22 -04:00
John Anderson
e3e9211e8a PEP8 fix 2018-09-16 00:30:51 -04:00
John Anderson
0da113b723 implemnted #2392 - local config context for devices and VMs 2018-09-16 00:25:20 -04:00
John Anderson
e965adad7c changelog for #2432 2018-09-15 17:25:50 -04:00
John Anderson
57b225b680 fixes #2423 - interface connection links 2018-09-15 17:23:58 -04:00
Jeremy Stretch
b97597c645 Merge pull request #2421 from sieben/docs_community
Add content about related projects
2018-09-13 12:29:17 -04:00
Rémy Léone
162828da90 Add a page related to community related projects 2018-09-13 17:54:13 +02:00
Jeremy Stretch
292647da14 Closes #2402: Order and format JSON data in form fields 2018-09-13 11:31:34 -04:00
Jeremy Stretch
3a88e43103 Fixes #2406: Remove hard-coded limit of 1000 objects from API-populated form fields 2018-09-13 11:21:40 -04:00
Jeremy Stretch
2ac60bdf48 Merge branch 'develop' into develop-2.5 (v2.4.4 release) 2018-08-22 12:10:44 -04:00
Jeremy Stretch
010765e131 Post-release version bump 2018-08-22 11:55:51 -04:00
Jeremy Stretch
bcf22831e2 Merge pull request #2387 from digitalocean/develop
Release v2.4.4
2018-08-22 11:53:56 -04:00
Jeremy Stretch
cde6e9757b Release v2.4.4 2018-08-22 11:51:15 -04:00
Jeremy Stretch
f2d9a3e0a1 Added note about CHANGELOG to release checklist 2018-08-22 11:50:25 -04:00
Jeremy Stretch
b917e8d3b0 #2376: Add libapache2-mod-wsgi-py3 to CentOS installation section 2018-08-22 11:46:13 -04:00
Jeremy Stretch
3b26ce6501 Merge pull request #2386 from digitalocean/revert-2376-patch-1
Revert "Add missing library"
2018-08-22 11:44:31 -04:00
Jeremy Stretch
1b2d3bf08b Revert "Add missing library" 2018-08-22 11:44:07 -04:00
Jeremy Stretch
492bc9f86e Merge pull request #2376 from craig/patch-1
Add missing library
2018-08-22 11:43:46 -04:00
Jeremy Stretch
a457a73826 Merge pull request #2382 from consentfactory/develop
Fixed typo for supervisorctl
2018-08-22 11:41:12 -04:00
Jeremy Stretch
ac36339491 Closes #2168: Added Extreme SummitStack interface form factors 2018-08-22 11:33:43 -04:00
Jeremy Stretch
dbbf7ab664 Fixes #2353: Handle DoesNotExist exception when deleting a device with connected interfaces 2018-08-22 10:35:56 -04:00
Jeremy Stretch
66400a98f1 Fixes #2354: Increased maximum MTU for interfaces to 65536 bytes 2018-08-22 10:25:07 -04:00
Jeremy Stretch
aa50e2e385 Fixes #2378: Corrected "edit" link for virtual machine interfaces 2018-08-22 10:06:01 -04:00
Jimmy Taylor
118b8db209 Fixed typo for supervisorctl 2018-08-21 08:28:23 -06:00
Craig
967feb6931 Add missing library
WSGIPassAuthorization fails if libapache2-mod-wsgi-py3 is missing
2018-08-21 00:41:29 +02:00
Jeremy Stretch
e1e41a768a Fixes #2369: Corrected time zone validation on site API serializer 2018-08-20 16:53:23 -04:00
Jeremy Stretch
c333af33dc Fixes #2370: Redirect to parent device after deleting device bays 2018-08-20 14:40:19 -04:00
Jeremy Stretch
9e5b482b1d Fixes #2374: Fix toggling display of IP addresses in virtual machine interfaces list 2018-08-20 13:49:15 -04:00
John Anderson
771747147c #2254 changelog entry 2018-08-17 18:41:58 -04:00
John Anderson
bc49979243 added rack group search #2254 2018-08-17 18:37:48 -04:00
Jeremy Stretch
d46b3e2446 #2368: Append changelog 2018-08-17 14:32:51 -04:00
Jeremy Stretch
2804d89c5e Fixes #2368: Record change in device changelog when altering cluster assignment 2018-08-17 14:26:50 -04:00
Jeremy Stretch
19b737a534 Added v2.5 notes (so far) to changelog 2018-08-16 16:33:13 -04:00
Jeremy Stretch
29380b1120 Merge branch 'develop' into develop-2.5 2018-08-16 16:31:54 -04:00
Jeremy Stretch
fd32a71131 Rename changelog 2018-08-16 16:29:12 -04:00
Jeremy Stretch
1556fd0e92 Added a release changelog 2018-08-16 16:27:41 -04:00
Jeremy Stretch
c4be440cd1 Closes #2367: Remove deprecated RPCClient functionality 2018-08-16 12:21:24 -04:00
Jeremy Stretch
5dce7c4e48 Closes #2356: Include cluster site as read-only field in VirtualMachine serializer 2018-08-16 11:57:20 -04:00
Jeremy Stretch
4bfc32ec99 Closes #2355: Added item count to inventory tab on device view 2018-08-16 10:20:22 -04:00
Jeremy Stretch
ff65f7fd7b Fixes #2362: Implemented custom admin site to properly handle BASE_PATH 2018-08-16 09:44:00 -04:00
Jeremy Stretch
7145f86a6e #2359: Extended exempt attributes to 'migrate' command 2018-08-15 15:02:58 -04:00
Jeremy Stretch
7ec4155845 Closes #2359: Implement custom makemigrations command to ignore extraneous field attributes 2018-08-15 14:18:52 -04:00
Jeremy Stretch
6dd62dc891 Refactored log_change() methods for device components 2018-08-14 14:06:16 -04:00
Jeremy Stretch
5f66710fcd Closes #2292: Remove the deprecated UserAction model 2018-08-14 12:13:43 -04:00
Jeremy Stretch
980d62d579 Removed Python 2 string compatibility 2018-08-14 11:58:42 -04:00
Jeremy Stretch
ac546a9711 Closes #2000: Remove support for Python 2 2018-08-14 11:48:12 -04:00
Jeremy Stretch
cd2aee3053 Post-release version bump 2018-08-09 16:41:11 -04:00
Jeremy Stretch
f224ad2959 Merge pull request #2346 from digitalocean/develop
Release v2.4.3
2018-08-09 16:39:45 -04:00
Jeremy Stretch
9d9318f38a Corrected typo 2018-08-09 16:37:58 -04:00
Jeremy Stretch
f43d861b50 Release v2.4.3 2018-08-09 16:36:23 -04:00
Jeremy Stretch
17714b0c12 Fixes #2342: IntegrityError raised when attempting to assign an invalid IP address as the primary for a VM 2018-08-09 16:34:17 -04:00
Jeremy Stretch
9914576eaa Fixes #2344: AttributeError when assigning VLANs to an interface on a device/VM not assigned to a site 2018-08-09 15:46:18 -04:00
Jeremy Stretch
bf8eff11ea Closes #2333: Added search filters for ConfigContexts 2018-08-09 12:22:34 -04:00
Jeremy Stretch
a6c78b99c4 Fixes #2340: API requires manufacturer field when creating/updating an inventory item 2018-08-09 09:34:54 -04:00
Jeremy Stretch
6a56ffc650 Fixes #2337: Attempting to create the next available prefix within a parent assigned to a VRF raises an AssertionError 2018-08-08 16:16:49 -04:00
Jeremy Stretch
05059606c5 Fixes #2336: Bulk deleting power outlets and console server ports from a device redirects to home page 2018-08-08 15:22:26 -04:00
Jeremy Stretch
a2ff21fab9 Fixes #2334: TypeError raised when WritableNestedSerializer receives a non-integer value 2018-08-08 15:09:30 -04:00
Jeremy Stretch
134370f48d Fixes #2335: API requires group field when creating/updating a rack 2018-08-08 14:58:16 -04:00
Jeremy Stretch
c7fa610842 Post-release version bump 2018-08-08 09:19:33 -04:00
Jeremy Stretch
242cb7c7cb Merge pull request #2332 from digitalocean/develop
Release v2.4.2
2018-08-08 09:16:50 -04:00
Jeremy Stretch
edb49c7f0a Release v2.4.2 2018-08-08 09:12:10 -04:00
Jeremy Stretch
3e0a7e7f8a Added tip about exlcuding the changelog when exporting the database 2018-08-08 09:04:48 -04:00
Jeremy Stretch
cfab9a6a0a Fixes #2330: Incorrect tab link in VRF changelog view 2018-08-08 08:49:23 -04:00
Jeremy Stretch
91b5f6d799 Fixes #2323: DoesNotExist raised when deleting devices or virtual machines 2018-08-07 17:30:26 -04:00
Jeremy Stretch
d5488ca7da Fixes #2322: Webhooks firing on non-enabled event types 2018-08-07 15:41:31 -04:00
Jeremy Stretch
f9911bff0d Added a "view all" link to the changelog panel 2018-08-07 15:19:01 -04:00
Jeremy Stretch
d5239191fe Fixes #2320: TypeError when dispatching a webhook with a secret key configured 2018-08-07 14:19:46 -04:00
Jeremy Stretch
db7148350e Fixes #2321: Allow explicitly setting a null value on nullable ChoiceFields 2018-08-07 14:05:07 -04:00
Jeremy Stretch
c51c20a301 Fixes #2319: Extend ChoiceField to properly handle true/false choice keys 2018-08-07 13:48:29 -04:00
Jeremy Stretch
f4485dc72a Restore reports directory 2018-08-07 13:47:36 -04:00
Jeremy Stretch
f59682a7c9 Fixes #2318: ImportError when viewing a report 2018-08-07 12:10:14 -04:00
Jeremy Stretch
507a023f41 Post-release version bump 2018-08-07 09:26:17 -04:00
Jeremy Stretch
ea7386b04b Merge pull request #2316 from digitalocean/develop
Release v2.4.1
2018-08-07 09:25:10 -04:00
Jeremy Stretch
81479ac177 Release v2.4.1 2018-08-07 09:23:49 -04:00
Jeremy Stretch
c7acddbc5c Fixes #2312: Running a report yields a ValueError exception 2018-08-07 09:12:05 -04:00
Jeremy Stretch
1905516536 Fixes #2314: Serialized representation of object in change log does not incldue assigned tags 2018-08-07 08:52:57 -04:00
Jeremy Stretch
64f34d9cd7 Fixes #2311: Redirect to parent after editing interface from device/VM view 2018-08-07 08:46:41 -04:00
Jeremy Stretch
98bdb0cb3c Fixes #2310: False validation error on certain nested serializers 2018-08-06 17:40:45 -04:00
Jeremy Stretch
bba88b2be4 Fixes #2303: Always redirect to parent object when bulk editing/deleting components 2018-08-06 14:14:40 -04:00
Jeremy Stretch
12dfd4b6e0 Fixes #2308: Custom fields panel absent from object view in UI 2018-08-06 13:32:52 -04:00
Jeremy Stretch
209e721219 Post-release version bump 2018-08-06 12:45:46 -04:00
Jeremy Stretch
7a27dbb374 Merge pull request #2307 from digitalocean/develop
Release v2.4.0
2018-08-06 12:40:00 -04:00
Jeremy Stretch
d039b9e23d Merge branch 'develop-2.4' into develop 2018-08-06 12:28:23 -04:00
Jeremy Stretch
af796871aa Release v2.4.0 2018-08-06 12:18:44 -04:00
Jeremy Stretch
d8580d6174 Bumped drf-yasg to v1.9.2 2018-08-06 11:57:09 -04:00
Jeremy Stretch
24520717e4 Fixes #2305: Make VLAN fields optional when creating a VM interface via the API 2018-08-06 10:35:51 -04:00
Jeremy Stretch
bd5e860be0 Refactored the tests to remove a lot of boilerplate 2018-08-03 11:39:26 -04:00
Jeremy Stretch
1bdfcd1dbe Fixes #2301: Fix model validation on assignment of ManyToMany fields via API patch 2018-08-03 10:45:53 -04:00
Jeremy Stretch
b4f29978b3 Merge pull request #2300 from explody/fix_2299
Updated IPAddressInterfaceSerializer to subclass WritableNestedSerial…
2018-08-03 10:11:37 -04:00
Jeremy Stretch
f1bc88fc0c Adopt django-taggit-serializer for representation of assigned tags in the API 2018-08-03 09:43:03 -04:00
Mike Culbertson
aee01af2a1 Updated IPAddressInterfaceSerializer to subclass WritableNestedSerializer
Also added readonly args to device and virtual_machine attrs to prevent unnecessary validation
2018-08-02 19:00:41 -04:00
Jeremy Stretch
ab37264ae1 Added tests for assigning tags during POST/PATCH 2018-08-02 14:23:30 -04:00
Jeremy Stretch
78b8a582f8 Added release checklist to development docs 2018-08-02 11:53:31 -04:00
Jeremy Stretch
42a970e452 Updated requirements for v2.4 release 2018-08-02 10:09:24 -04:00
Jeremy Stretch
8f127e86ac Mark UserAction as deprecated 2018-08-02 09:38:09 -04:00
Vas Sadvariy
33e45a5292 Closes #971: Implement VLANGroup VLANs view to show available VLANs within a group 2018-08-01 15:59:00 -04:00
Jeremy Stretch
475e0e6c1e Follow-up to #2272: subdevice_role should not be required 2018-08-01 14:22:32 -04:00
Jeremy Stretch
5e97f87a64 PEP8 fix 2018-08-01 14:05:26 -04:00
Jeremy Stretch
4ae7f2337a Closes #2213: Added squashed migrations 2018-08-01 14:01:20 -04:00
Jeremy Stretch
5e5b9683f9 Merge pull request #2290 from lampwins/bug/2137
Force webhooks to use the same JSONEncoder class as DRF - fixes #2137
2018-08-01 12:57:05 -04:00
Jeremy Stretch
0b971aaf84 Extended developer docs 2018-08-01 12:38:57 -04:00
John Anderson
2f33e9724d force webhooks to use the same JSONEncoder class as DRF - fixes #2137 2018-07-31 16:17:24 -04:00
Jeremy Stretch
5f7e21faa0 Fixes #1786: Correct loading of reports from a custom file path 2018-07-31 13:48:07 -04:00
Jeremy Stretch
d4ccaf60cf Fixes #2272: Allow subdevice_role to be null on DeviceTypeSerializer 2018-07-31 11:52:58 -04:00
Jeremy Stretch
27e8841a6d Merge pull request #2287 from TakeMeNL/bug/2286
Fix #2286 : Non working 'mark installed' button
2018-07-31 11:38:32 -04:00
Jeremy Stretch
45ab08aa76 Closes #2288: Fix exception when assigning objects to a ConfigContext via the API 2018-07-31 11:32:49 -04:00
Marc Hagen
c5339c255a Fixes #2286: Fix non working 'mark installed' button 2018-07-31 10:37:57 +02:00
Jeremy Stretch
d6ce4fc9f3 Docs fixes 2018-07-30 17:19:22 -04:00
Jeremy Stretch
5ea41fa7f9 Merge pull request #2285 from digitalocean/2284-object-deletions
Fix #2284: Record object deletions before the request finishes
2018-07-30 16:51:12 -04:00
Jeremy Stretch
249c3d0e81 Fixes #2284: Record object deletions before the request finishes 2018-07-30 16:33:37 -04:00
John Anderson
722d0d5554 Webhook signal refactor - fixes #2282 (#2260)
Refactor of webhook signaling system to use the same middleware mechanics of Changelogging
2018-07-30 14:23:49 -04:00
Jeremy Stretch
9876a2efcd Added a style section 2018-07-30 14:16:45 -04:00
Jeremy Stretch
f7aa259995 Misc cleanup 2018-07-30 14:00:37 -04:00
Jeremy Stretch
f664998d9b Misc cleanup 2018-07-30 12:49:08 -04:00
Jeremy Stretch
c2416411c1 Renamed ChoiceFieldSerializer and ContentTypeFieldSerializer 2018-07-30 12:41:20 -04:00
Jeremy Stretch
524da5a2ff Closes #2225: Add "view elevations" button for site rack groups 2018-07-27 16:25:48 -04:00
Jeremy Stretch
838af2b2d8 Closes #2264: Added "map it" link for site GPS coordinates 2018-07-27 16:15:56 -04:00
Jeremy Stretch
64e86013bf Remove admin UI views for ConfigContexts and ObjectChanges 2018-07-27 16:00:50 -04:00
Jeremy Stretch
a1e8397b6b Closes #2229: Allow mapping of ConfigContexts to tenant groups 2018-07-27 15:47:29 -04:00
Jeremy Stretch
7476f522e1 Fixes #2265: Include parent regions when filtering applicable ConfigContexts (credit: lampwins) 2018-07-27 15:10:43 -04:00
Jeremy Stretch
acb06ee4f1 Merge branch 'v2.4-docs' into develop-2.4 2018-07-27 13:42:34 -04:00
Jeremy Stretch
674a0d481e Additional documentation cleanup 2018-07-27 13:42:18 -04:00
Jeremy Stretch
40efa55ec7 Merged release v2.3.7 2018-07-27 11:43:27 -04:00
Jeremy Stretch
3166d12994 Use real emojis for issue template names 2018-07-26 15:09:19 -04:00
Jeremy Stretch
58a97b4e39 Trying emojis in issue template names 2018-07-26 15:04:47 -04:00
Jeremy Stretch
7b8051d42f Cleaned up GitHub issue templates 2018-07-26 14:59:23 -04:00
Jeremy Stretch
55f93184d3 Post-release version bump 2018-07-26 14:58:15 -04:00
Jeremy Stretch
684a0d9e36 Update issue templates (#2277)
* Update issue templates

* Renamed documentation change template

* Fixed description on bug report template
2018-07-26 14:53:32 -04:00
Jeremy Stretch
a85e6370a8 Merge pull request #2275 from digitalocean/develop
Release v2.3.7
2018-07-26 14:29:15 -04:00
Jeremy Stretch
0497539ef2 Release v2.3.7 2018-07-26 14:24:16 -04:00
Jeremy Stretch
431361efad Introduced purpose-specific GitHub issue templates 2018-07-26 12:17:16 -04:00
Jeremy Stretch
e82bf66a76 ExceptionHandlingMiddleware: Use server_error view for custom templates 2018-07-23 23:12:41 -04:00
Jeremy Stretch
c8a73b5b15 Fixes #2266: Permit additional logging of exceptions beyond custom middleware 2018-07-23 23:00:09 -04:00
Jeremy Stretch
b518258e6d Closes #2250: Include stat counters on report result navigation 2018-07-23 16:10:46 -04:00
Jeremy Stretch
a1d45023ab Fixes #2256: Prevent navigation overlap when jumping to test results on report page 2018-07-23 15:50:44 -04:00
Jeremy Stretch
b7c2a26155 Closes #2259: Add changelog tab to interface view 2018-07-23 15:09:37 -04:00
Jeremy Stretch
86a67e7f32 Fixes #2258: Include changed object type on home page changelog 2018-07-23 15:02:07 -04:00
Jeremy Stretch
ba3ae0d80a Fixes #2257: Corrected casting of RIR utilization stats as floats 2018-07-23 14:52:51 -04:00
Jeremy Stretch
beac676a6e Cleaned up BulkEditView and BulkDeleteView 2018-07-20 21:18:10 -04:00
Jeremy Stretch
97b6038be2 Cleaned up custom fields panel template 2018-07-20 19:56:04 -04:00
Jeremy Stretch
0907a6ce5b Convert CustomFieldModel from object to abstract model 2018-07-20 19:44:04 -04:00
Jeremy Stretch
9eb433a4ef Added instructions for replicating NetBox 2018-07-20 15:26:01 -04:00
Jeremy Stretch
d04727f4b5 Fixes #2255: Corrected display of report results in report list 2018-07-20 09:39:55 -04:00
Jeremy Stretch
206c465e02 Merge branch 'develop' into develop-2.4 2018-07-18 17:51:57 -04:00
Jeremy Stretch
688c421c55 Tweaked Python3 guide to be less disruptive 2018-07-18 17:40:08 -04:00
Jeremy Stretch
93ce0ce670 Further reiterated the policy for pull requests 2018-07-18 16:14:57 -04:00
Jeremy Stretch
c2573774bf Fixes #2222: IP addresses created via the available-ips API endpoint should have the same mask as their parent prefix (not /32) 2018-07-18 15:27:45 -04:00
Jeremy Stretch
6e037e91d3 Fixes #2202: Ditched half-baked concept of tenancy inheritance via VRF 2018-07-18 15:10:12 -04:00
Jeremy Stretch
d665d4d62a Fixes #1992: Isolate errors when one of multiple NAPALM methods fails 2018-07-18 14:46:15 -04:00
Jeremy Stretch
29d9b32b67 Fixes #1977: Don't default master vc_position to 1 when creating a new virtual chassis 2018-07-18 14:17:35 -04:00
Jeremy Stretch
00d218118c Fixes #2231: Remove get_absolute_url() from DeviceRole 2018-07-18 11:24:36 -04:00
Jeremy Stretch
02b6ffd59a Added note about passphrase-protected keys (#2189) 2018-07-18 11:03:22 -04:00
Jeremy Stretch
aa0e4406eb Merge pull request #2167 from lampwins/feature/2166
implements #2166 - asset tag partial string search
2018-07-18 10:40:12 -04:00
Jeremy Stretch
d0349f00ad Misc cleanup 2018-07-18 09:36:05 -04:00
Jeremy Stretch
d77214fef6 Started v2.4 documentation refresh 2018-07-17 17:23:10 -04:00
Jeremy Stretch
8937362433 Release v2.4-beta1 2018-07-17 11:22:25 -04:00
Jeremy Stretch
df6c5dfac5 Established base requirements and pinned package versions for release 2018-07-17 11:10:13 -04:00
Jeremy Stretch
5cf38b5ce9 Enabled export templates for secrets 2018-07-17 10:34:50 -04:00
Jeremy Stretch
6cc9ceb198 Enabled bulk add/remove tags for interfaces 2018-07-17 10:25:16 -04:00
Jeremy Stretch
0c0799f3bf Closes #1739: Enabled custom fields for secrets 2018-07-17 09:43:57 -04:00
Jeremy Stretch
9e2ac7b3f4 Cleaned up imports 2018-07-16 17:09:21 -04:00
Jeremy Stretch
8bc8cf5e2d Include django-rq queues link in admin UI until we implement something cleaner 2018-07-16 16:33:06 -04:00
Jeremy Stretch
277197edd4 Split webhooks documentation into the data model and installation sections 2018-07-16 16:21:46 -04:00
Jeremy Stretch
69ddf046b0 Quick docs update (more to come prior to the v2.4 release) 2018-07-16 14:53:57 -04:00
Jeremy Stretch
ea09023616 Webhook admin form cleanup 2018-07-16 13:54:50 -04:00
Jeremy Stretch
92de67a2ae Enabled webhooks for device components 2018-07-16 13:34:00 -04:00
Jeremy Stretch
57487f38de Link to related object if changed object has no URL 2018-07-16 13:29:57 -04:00
Jeremy Stretch
d334bd4477 Corrected exception handling in get_serializer_for_model() 2018-07-16 13:26:26 -04:00
Jeremy Stretch
d7e40de9da Merged v2.3.6 2018-07-16 12:03:32 -04:00
Jeremy Stretch
786f389be8 Post-release version bump 2018-07-16 11:56:12 -04:00
Jeremy Stretch
09a03565d7 Merge pull request #2244 from digitalocean/develop
Release v2.3.6
2018-07-16 11:54:12 -04:00
Jeremy Stretch
456b058462 Release v2.3.6 2018-07-16 11:52:12 -04:00
Jeremy Stretch
ecaba5b32e Merge pull request #2230 from digitalocean/2125-device-bay-status
Fixes #2125 - Show child status in device bay list
2018-07-16 11:47:16 -04:00
Jeremy Stretch
9f4c77d6d7 Merge pull request #2232 from mmahacek/patch-1
Update sample report in documentation
2018-07-16 11:46:10 -04:00
Jeremy Stretch
1fb67b791f Fixes #2239: Pin django-filter to version 1.1.0 2018-07-16 11:39:37 -04:00
Jeremy Stretch
81b1d54859 Enabled export templates for services 2018-07-12 16:59:22 -04:00
Jeremy Stretch
67dbe02deb Enabled export templates for virtual chassis 2018-07-12 16:55:23 -04:00
Jeremy Stretch
85efdf8e00 Cleaned up objectchange table 2018-07-12 13:54:22 -04:00
Jeremy Stretch
bbaa3a2058 Enabled change logging for circuit terminations 2018-07-12 13:46:30 -04:00
Jeremy Stretch
931c58bc9a Enabled export templates for VRFs 2018-07-12 13:16:34 -04:00
Jeremy Stretch
abd5f17916 Enabled webhooks for all (and only) primary models 2018-07-12 13:09:13 -04:00
Jeremy Stretch
50f4c74688 Tweaked migration to include Service model 2018-07-12 13:08:23 -04:00
Jeremy Stretch
f7f7764a6e Miscellaneous cleanup for tags 2018-07-12 11:34:35 -04:00
Jeremy Stretch
f048cf36ce Implemented a view for interfaces 2018-07-11 15:30:54 -04:00
mmahacek
a26d1812c2 Update sample report
Reference to STATUS_ACTIVE does not work in the current version.  Needs to be changed to DEVICE_STATUS_ACTIVE.
2018-07-11 11:52:33 -07:00
zmoody
b6e354085e Fixes #2125 - Show child status in device bay list
Exposes devicebay.installed_device.status in the parent device detail view.
2018-07-10 20:40:48 -05:00
Jeremy Stretch
484a74defd Misc cleanup for config contexts 2018-07-10 16:16:23 -04:00
Jeremy Stretch
43ed38a6e9 Enabled tags for device components and virtual chassis 2018-07-10 15:36:28 -04:00
Jeremy Stretch
0c4495eb39 Order tags by name only, not item count 2018-07-10 14:25:04 -04:00
Jeremy Stretch
864d49f54d Fixed regex casting to satisfy pycodestyle 2018-07-10 14:21:40 -04:00
Jeremy Stretch
bd2219276f Force custom field values to strings for object change serialization 2018-07-10 14:16:16 -04:00
Jeremy Stretch
df1f33992a Adapted change logging to queue changes in thread-local storage and record them at the end of the request 2018-07-10 13:33:54 -04:00
Jeremy Stretch
663bbd025e Updated custom fields inclusion tag to use 'with' 2018-07-10 11:02:37 -04:00
Jeremy Stretch
4802e516e5 Arranged object tags into a separate panel 2018-07-10 10:48:33 -04:00
Jeremy Stretch
f2512c4fdc Include link to parent object changelog when viewing a change 2018-07-10 10:15:56 -04:00
Jeremy Stretch
29172d045d Added missing import statement 2018-07-10 10:11:09 -04:00
Jeremy Stretch
289a762bf1 Record tags when serializing an object for an ObjectChange 2018-07-10 10:10:22 -04:00
Jeremy Stretch
208409110f Added bulk tag addition/removal 2018-07-10 10:00:21 -04:00
Jeremy Stretch
e27765d965 Added autocompletion for tags form widget 2018-07-05 16:51:38 -04:00
Jeremy Stretch
96d81d7074 Include return_url when editing interfaces in bulk 2018-07-05 15:36:25 -04:00
Jeremy Stretch
edf53d4516 Flip the order of tag and URL name for the tag template tag 2018-07-05 15:20:13 -04:00
Jeremy Stretch
108e9722fa Fixes #2214: Fix bug when assigning a VLAN to an interface on a VM in a cluster with no assigned site 2018-07-05 13:28:26 -04:00
Jeremy Stretch
72cb1cbfff Queryset fixes for virtual chassis 2018-07-05 13:20:27 -04:00
Jeremy Stretch
ed84c4b210 Merge pull request #2115 from DanSheps/develop
Added VirtualChassis Searching
2018-07-05 13:15:57 -04:00
Jeremy Stretch
77518eaf69 Merge pull request #2218 from alexjhart/develop
More verbose LDAP nested groups documentation
2018-07-05 13:11:56 -04:00
Jeremy Stretch
4bd36f0ea9 Closes #2062: Added a note about parent/child device type role 2018-07-05 12:02:32 -04:00
Jeremy Stretch
b19bf791a4 Closes #2138: Added documentation for filtering on custom fields 2018-07-05 11:58:07 -04:00
Alex Hart
f70b7cab21 More verbose LDAP nested groups documentation 2018-07-03 15:53:58 -07:00
Jeremy Stretch
9eb9715e05 Cleaned up IP addresses list under device/VM interfaces 2018-07-03 17:05:04 -04:00
Jeremy Stretch
49ecf5aa8a Wrote tests for config contexts 2018-07-03 15:47:54 -04:00
Jeremy Stretch
3ad8850ada Fixed required fields on ConfigContextSerializer 2018-07-03 15:47:32 -04:00
Jeremy Stretch
d1c9a18d04 Replaced home page user activity with changelog 2018-07-03 14:07:46 -04:00
Jeremy Stretch
89e196e86d Tweak ConfigContext manager to allow for objects with a regionless site 2018-07-03 13:40:47 -04:00
Jeremy Stretch
25b36d6d42 Remove separate config-context API endpoints; include rendered config context when retrieving a single device/VM 2018-07-03 12:29:20 -04:00
Jeremy Stretch
6ddbd79fe6 Fixed object return_url resolution for bulk editing 2018-07-03 09:49:36 -04:00
Jeremy Stretch
d70ef4d3b3 Cleaned up tags table 2018-07-03 09:47:44 -04:00
Jeremy Stretch
d0308e0f58 Merge branch 'develop' into develop-2.4 2018-07-02 17:01:14 -04:00
Jeremy Stretch
b10635a9b1 Added housekeeping as an issue category 2018-07-02 16:39:38 -04:00
Jeremy Stretch
104bd1b45f Closes #2211: Removed Python 2 instructions from the installation docs 2018-07-02 16:33:18 -04:00
Jeremy Stretch
302c14186a Post-release version bump 2018-07-02 15:55:46 -04:00
Jeremy Stretch
6159994552 Merge pull request #2212 from digitalocean/develop
Release v2.3.5
2018-07-02 15:55:25 -04:00
Jeremy Stretch
398041c607 Release v2.3.5 2018-07-02 15:54:09 -04:00
Jeremy Stretch
6ce9f8f291 Merge pull request #2210 from eriktm/develop
Adding Swagger settings to describe API authentication correctly.
2018-07-02 15:50:37 -04:00
Jeremy Stretch
c2c8a139f3 Merge branch 'develop' into develop 2018-07-02 15:45:36 -04:00
Jeremy Stretch
698c0decb4 Fixes #2021: Fix recursion error when viewing API docs under Python 3.4 2018-07-02 15:25:49 -04:00
Jeremy Stretch
ef61c70a9d Fixes 2064: Disable calls to online swagger validator 2018-07-02 14:39:32 -04:00
Jeremy Stretch
97863115ba Merge pull request #2206 from abeutot/switch_to_pycodestyle
Switch to pycodestyle
2018-07-02 13:38:36 -04:00
Anaël Beutot
fa5493a5d8 Update CI to use pycostyle instead of pep8 2018-07-02 19:27:53 +02:00
Jeremy Stretch
cd56e51a61 Closes #1851: Standardize usage of GetReturnURLMixin 2018-07-02 11:54:41 -04:00
Jeremy Stretch
3e9cec3e8e Closes #2159: Allow custom choice field to specify a default choice 2018-06-29 16:01:28 -04:00
Erik Hetland
943ec0b64b Adding Swagger settings to describe API authentication correctly. Fixes #1826 2018-06-29 22:01:01 +02:00
Jeremy Stretch
8008015082 Tweaked API error reporting from #2181 2018-06-29 15:18:30 -04:00
Jeremy Stretch
af54d96d30 Fixes #2181: Raise validation error on invalid prefix_length when allocating next-available prefix 2018-06-29 15:10:30 -04:00
Jeremy Stretch
d98aa03e9d Fixes #2173: Fixed IndexError when automaticating allocating IP addresses from large IPv6 prefixes 2018-06-29 14:52:37 -04:00
Jeremy Stretch
8d4c686ae2 Fixes #2192: Prevent a 0U device from being assigned to a rack position 2018-06-29 14:09:20 -04:00
Jeremy Stretch
982b9454f8 Closes #2194: Added 'address' filter to IPAddress model 2018-06-29 13:54:21 -04:00
Jeremy Stretch
28a2a37ed2 Fixes #2191: Added missing static choices to circuits and DCIM API endpoints 2018-06-29 13:17:07 -04:00
Jeremy Stretch
acfbe9c1b1 Merge branch 'develop-2.4' of https://github.com/digitalocean/netbox into develop-2.4 2018-06-29 12:27:08 -04:00
Jeremy Stretch
4824c75563 Merge pull request #2204 from lampwins/bug/2203
Fix #2203 - webhook content type check
2018-06-29 12:26:54 -04:00
Jeremy Stretch
3f019732b3 Merge pull request #2209 from digitalocean/revert-2169-patch-1
Revert "Closes #2168: Add Extreme SummitStack interface form factors"
2018-06-29 12:19:33 -04:00
Jeremy Stretch
007852a48f Revert "Closes #2168: Add Extreme SummitStack interface form factors" 2018-06-29 12:18:49 -04:00
Jeremy Stretch
3474697a66 Merge pull request #2169 from tradiuz/patch-1
Closes #2168: Add Extreme SummitStack interface form factors
2018-06-29 12:18:37 -04:00
Jeremy Stretch
bf1c7cacc6 Improved rendering of boolean fields in tables 2018-06-29 12:05:56 -04:00
Jeremy Stretch
b9bdd666da Closes #2200: Replaced detail_route API view decorator with action (DRF change) 2018-06-29 11:48:21 -04:00
Jeremy Stretch
35d58d2f7c Closes #2029: Added optional NAPALM arguments to Platform model 2018-06-29 11:21:00 -04:00
Jeremy Stretch
f5f16ce64b Include custom fields in ObjectChange data 2018-06-29 10:40:57 -04:00
Jeremy Stretch
06dab9c468 Merge pull request #2208 from digitalocean/1349-config-contexts
1349 config contexts
2018-06-29 10:02:18 -04:00
Jeremy Stretch
7857480978 Added missing description field 2018-06-29 09:56:04 -04:00
Jeremy Stretch
278bacbce8 Fixed rendered config context ordering 2018-06-29 09:53:33 -04:00
Jeremy Stretch
743cf6d398 Added description to ConfigContext 2018-06-29 09:44:32 -04:00
Jeremy Stretch
ace7e3b108 Fixed is_active table column 2018-06-28 14:19:26 -04:00
Jeremy Stretch
1edc73179a Sort rendered config context 2018-06-28 14:10:20 -04:00
Jeremy Stretch
65dd7a5938 Applied JSON rederer to ConfigContext data 2018-06-28 14:05:57 -04:00
Jeremy Stretch
62989ecb6e Moved object context rendering to ObjectConfigContextView and standardized the template 2018-06-28 13:48:12 -04:00
Jeremy Stretch
b952ec73ce Introduced the render_json template filter 2018-06-28 10:49:52 -04:00
John Anderson
65e18e057f fixed #2203 2018-06-27 22:17:17 -04:00
Jeremy Stretch
c13e4858d7 Initial work on config contexts 2018-06-27 16:02:34 -04:00
Anaël Beutot
4e09b32dd9 Fix pycodestyle errors
Mainly two kind of errors:
* pokemon exceptions
* invalid escape sequences
2018-06-27 17:24:33 +02:00
Jeremy Stretch
ffcbc54522 Merge pull request #2198 from digitalocean/1898-activity-logging
Closes #1898: Change logging
2018-06-25 13:36:48 -04:00
Jeremy Stretch
06143b6c70 Fixes interface logging error 2018-06-25 13:29:23 -04:00
Jeremy Stretch
0af36eb99b Log interface connection changes 2018-06-25 13:12:03 -04:00
Jeremy Stretch
b11c3635b0 Corrected import of reverse() for Django 2.0 2018-06-22 16:34:38 -04:00
Jeremy Stretch
66c4911298 Fixed Region model declaration 2018-06-22 16:34:07 -04:00
Jeremy Stretch
36971b7651 Fixed changelog purging frequency 2018-06-22 16:23:07 -04:00
Jeremy Stretch
3bdfe9c249 Implemented changelog retention setting, automatic purging 2018-06-22 16:18:41 -04:00
Jeremy Stretch
4e6f73e452 Fixed invalid reference to content_type 2018-06-22 15:30:54 -04:00
Jeremy Stretch
ce27a1d211 serialize_object(): Allow extra data to overwrite existing fields 2018-06-22 15:27:22 -04:00
Jeremy Stretch
2d198403c7 Extend ObjectChange to optionally indicate a related object (e.g. a parent device) 2018-06-22 15:05:40 -04:00
Jeremy Stretch
6c1b5fdf3a Moved object serialization into a utility function 2018-06-22 14:00:23 -04:00
Jeremy Stretch
9d419de9dc Merge branch 'develop-2.4' into 1898-activity-logging 2018-06-21 16:53:15 -04:00
Jeremy Stretch
b945dec41b Closes #1687: Enabled custom fields for services 2018-06-21 16:17:18 -04:00
Jeremy Stretch
7819d9c112 Closes #1673: Added object/list views for services 2018-06-21 15:55:27 -04:00
Jeremy Stretch
258373f1a1 Closes #2118: Added latitude and longitude fields to Site 2018-06-21 14:55:10 -04:00
Jeremy Stretch
e1055b7f97 Moved ObjectChange creation logic from middleware to ChangeLoggedModel 2018-06-21 13:24:26 -04:00
Jeremy Stretch
a1f6ed1713 Disabled the creation of new UserActions 2018-06-21 10:56:33 -04:00
Jeremy Stretch
4ffce75b70 Fixed typo 2018-06-21 09:47:20 -04:00
Jeremy Stretch
09212691e2 Added changelog links for organizational models 2018-06-20 14:54:04 -04:00
Jeremy Stretch
ddd878683d Implemented changelog views 2018-06-20 13:52:54 -04:00
Jeremy Stretch
a8b11e45c1 Record a unique request ID with each ObjectChange 2018-06-19 15:45:15 -04:00
Jeremy Stretch
23f91274d6 Added API serializer for ObjectChange 2018-06-19 15:04:56 -04:00
Jeremy Stretch
6dde0f030a Fixes #2182: ValueError raised when viewing the interface connections table 2018-06-19 13:37:12 -04:00
Jeremy Stretch
d154b4cc9e Merge pull request #2178 from chowell5/add-serial-to-bubble
Add a serial number to the popover in rack elevation number
2018-06-18 13:34:44 -04:00
Chris Howells
7c11fa7b50 Add a serial number to the popover in rack elevation number 2018-06-18 14:35:07 +01:00
tradiuz
264bf6c484 Adding SummitStack-256 2018-06-15 13:43:04 -05:00
tradiuz
3854a9d633 Changes for Issue #2168
Adding support for Extreme Networks SummitStack port types.
2018-06-14 16:59:00 -05:00
Jeremy Stretch
38569029d8 Prevent duplicate signals from change logging middleware 2018-06-14 16:18:42 -04:00
Jeremy Stretch
3c2e0b0b17 Added changelog views 2018-06-14 16:15:14 -04:00
Jeremy Stretch
21c4085c51 Moved object header templates into object base templates 2018-06-14 13:34:37 -04:00
John Anderson
82189de78e implements #2166 - asset tag partial string search 2018-06-14 13:17:06 -04:00
Jeremy Stretch
33cf227bc8 Implemented new object change logging to replace UserActions 2018-06-13 17:06:33 -04:00
Jeremy Stretch
b556d2d626 Renamed CreatedUpdatedModel to ChangeLoggedModel and applied it to all primary and organizational models 2018-06-13 15:40:16 -04:00
Jeremy Stretch
81258ea35b Merge pull request #2158 from digitalocean/2157-natural-ordering
Fixes #2157: Natural ordering breaks when sorting objects by name
2018-06-11 16:09:25 -04:00
Jeremy Stretch
90abeedc3e Fix natural ordering within object tables 2018-06-11 15:10:31 -04:00
Jeremy Stretch
048e843c39 Added tests for NaturalOrderByManager 2018-06-08 15:42:10 -04:00
Jeremy Stretch
e4f336a843 Establish tests for the utilities app 2018-06-08 14:32:41 -04:00
Jeremy Stretch
33add12069 Merge branch 'develop' into develop-2.4 2018-06-07 16:23:57 -04:00
Jeremy Stretch
8bad3aee74 Post-release version bump 2018-06-07 16:22:36 -04:00
Jeremy Stretch
a1f624c1cc Merge pull request #2152 from digitalocean/develop
Release v2.3.4
2018-06-07 16:14:18 -04:00
Jeremy Stretch
ff0a0df478 Release v2.3.4 2018-06-07 15:53:05 -04:00
Jeremy Stretch
5dd2f37035 Fixes #2087: Don't overwrite existing vc_position of master device when creating a virtual chassis 2018-06-07 15:32:19 -04:00
Jeremy Stretch
862e44e96f Fixes #2148: Do not force timezone selection when editing sites in bulk 2018-06-07 14:51:27 -04:00
Jeremy Stretch
643b0eaf65 Fixes #2127: Prevent non-conntectable interfaces from being connected 2018-06-07 14:22:56 -04:00
Jeremy Stretch
0af6df3121 Fixes #2150: Fix display of LLDP neighbors when interface name contains a colon 2018-06-07 10:55:30 -04:00
Jeremy Stretch
e0616d933f Merge pull request #2144 from digitalocean/update-site-serializer
Fixes #2143 - PUTs to Site Endpoint Requires Value for time_zone
2018-06-06 11:06:51 -04:00
zmoody
1e7fdbc79a Fixes #2143 - PUTs to Site Endpoint Requires Value for time_zone
Allow null values for `time_zone` field in the writeable serializer for the sites endpoint.
2018-06-05 10:26:33 -05:00
Jeremy Stretch
5591107f95 Merge pull request #2136 from digitalocean/mdl-docs-webhooks-typo2
docs: fix circuits typo
2018-06-01 16:08:58 -04:00
Matt Layher
e3c3e54cbb docs: fix circuits typo 2018-06-01 16:04:44 -04:00
Jeremy Stretch
75525cc83f Merge pull request #2135 from digitalocean/mdl-docs-webhooks-typo
docs: fix typos and markdownlint warnings in webhooks docs
2018-06-01 15:44:54 -04:00
Jeremy Stretch
ff1217fca9 Removed extraneous new_subnet() function on ipam.Prefix 2018-06-01 15:44:03 -04:00
Matt Layher
a61473dd98 docs: fix typos and markdownlint warnings in webhooks docs 2018-06-01 15:07:18 -04:00
Jeremy Stretch
edd8e9e41e Remove print() statements left behind from testing 2018-05-30 16:56:56 -04:00
Jeremy Stretch
efa118c3c8 Tweaked webhooks and Redis settings 2018-05-30 14:51:59 -04:00
Jeremy Stretch
503efe2d9d Miscellaneous cleanup of the Webhook model 2018-05-30 13:59:00 -04:00
Jeremy Stretch
8762f1314d Closes #2131: Added created and last_updated fields to DeviceType 2018-05-30 13:41:14 -04:00
John Anderson
836478c166 Implements #81 - webhook event backend (#1640)
* merge branch develop

* bugfix, signals for virtualization's class wasn't correctly defined

* updated webhooks for 2.4 and cleanup

* updated docs to cover changes to supervisor config

* review changes and further cleanup

* updated redis connection settings

* cleanup settings
2018-05-30 11:19:10 -04:00
dansheps
acc59a9da5 Fix PEP8 2018-05-24 16:03:13 -05:00
dansheps
03ce4bdfca Added VirtualChassis Searching 2018-05-24 15:27:09 -05:00
Jeremy Stretch
1473d90243 Merge pull request #2110 from mandarg/fix-error-message
Add "does" to error messages
2018-05-24 15:19:43 -04:00
Mandar Gokhale
32eee0bede Add "does" to error messages
Those error messages looked a bit strange when I got them, hence the
fix.
2018-05-23 17:41:52 -04:00
Reimann, Timo
131436fc20 Changed upgrading documentation for ease of use 2018-05-22 16:20:10 -04:00
Jeremy Stretch
966c188977 Merge pull request #1939 from dougthor42/patch-1
Add note about copying reports to `upgrading.md`
2018-05-22 16:16:43 -04:00
Jeremy Stretch
afba80bff9 Merge pull request #2083 from Grokzen/add_rack_role_export
Add missing export button to rack roles list view.
2018-05-22 15:52:50 -04:00
Jeremy Stretch
4fd52d46bf Closes #238: Allow racks with the same name within a site (but in different groups) 2018-05-22 15:45:30 -04:00
Jeremy Stretch
8f9fc8fb51 Added migrations for #132 (tags) 2018-05-22 15:06:47 -04:00
Jeremy Stretch
b0985ebd42 Closes #2034: Include the ID when showing nested interface connections 2018-05-22 14:41:11 -04:00
Jeremy Stretch
0d267d97fe Fixes #2075: Enable tenant assignment when creating a rack reservation via the API 2018-05-22 14:09:06 -04:00
Jeremy Stretch
b0cd372af9 Fixes #2066: Catch AddrFormatError on invalid IP addresses 2018-05-22 13:56:11 -04:00
Jeremy Stretch
63100b683d Merge pull request #2103 from digitalocean/132-taggit
132-taggit
2018-05-22 13:01:27 -04:00
Jeremy Stretch
74aa992ec6 Added django-taggit 2018-05-22 12:49:56 -04:00
Jeremy Stretch
dc2f1d7c64 Added API views & tests for tags 2018-05-22 12:46:14 -04:00
Jeremy Stretch
03a1c48b54 Added list and utility views for tags 2018-05-22 12:22:46 -04:00
Jeremy Stretch
918339cfa8 Tweak formatting of message to handle translation strings 2018-05-22 11:19:47 -04:00
Jeremy Stretch
601fb418b5 Tweaked ordering of tags list 2018-05-22 10:51:40 -04:00
Jeremy Stretch
e5af4f6f17 Fixes #2093: Fix link to circuit termination in device interfaces table 2018-05-21 17:31:43 -04:00
Jeremy Stretch
399a633d9d Post-release version bump 2018-05-21 16:50:31 -04:00
Jeremy Stretch
2ef223b5ea Merge pull request #2099 from eriktm/2098-permission-typo
Fixing typo in permission check for ClusterView.
2018-05-21 16:20:09 -04:00
Erik Hetland
2cdb527df9 Fixing typo in permission check for ClusterView. 2018-05-19 11:50:03 +02:00
Jeremy Stretch
b3350490e7 Implemented tag filtering 2018-05-18 16:24:15 -04:00
Jeremy Stretch
1d1553275e Added tags panel to object list view 2018-05-18 15:43:21 -04:00
Jeremy Stretch
0189609137 Fixes URL name 2018-05-18 12:35:04 -04:00
Jeremy Stretch
e6b3983a4e Added template tag for tag links 2018-05-18 11:09:11 -04:00
Jeremy Stretch
5247f10d7e Removed redundant tags field 2018-05-18 10:14:56 -04:00
Jeremy Stretch
9b3869790d Implemented tags for all primary models 2018-05-10 12:53:11 -04:00
Jeremy Stretch
b0dafcf50f Initial work on implementing django-taggit for #132 2018-05-08 16:28:26 -04:00
Grokzen
fc0e8e2aae Add export button to rack roles list view. 2018-05-08 16:06:53 +02:00
Jeremy Stretch
57f6d22c64 Merge branch 'develop' into develop-2.4 2018-04-19 11:24:11 -04:00
Jeremy Stretch
e5454d6714 Post-release version bump 2018-04-19 11:17:17 -04:00
Jeremy Stretch
328958876a Merge pull request #2041 from digitalocean/develop
Release v2.3.3
2018-04-19 11:15:48 -04:00
Jeremy Stretch
a7389de109 Release v2.3.3 2018-04-19 11:07:19 -04:00
Jeremy Stretch
b911ab01d2 Merge pull request #2038 from DirtyCajunRice/develop
stop force value split w ArrayFieldSelectMultiple. Fixes #2037
2018-04-19 10:55:25 -04:00
Nicholas St. Germain
9153c71cbf stop force value split w ArrayFieldSelectMultiple 2018-04-18 14:02:40 -05:00
Jeremy Stretch
b44aa9d32e Fixes #2014: Allow assignment of VLANs to VM interfaces via the API 2018-04-18 12:37:20 -04:00
Jeremy Stretch
7805848e6c Merge pull request #2024 from digitalocean/1794-writable-nested-serializers
1794 writable nested serializers
2018-04-16 10:46:23 -04:00
Jeremy Stretch
bcb1d9af0b Fixes #2012: Fixed deselection of an IP address as the primary IP for its parent device/VM 2018-04-12 13:03:20 -04:00
Jeremy Stretch
ef84889a57 Fixes #2022: Show 0 for zero-value fields on CSV export 2018-04-12 12:54:21 -04:00
Jeremy Stretch
81c027e7cf Fixes #2023: Manufacturer should not be a required field when importing platforms 2018-04-12 12:45:25 -04:00
Jeremy Stretch
fd62a248ee Merge pull request #2020 from Wikia/intfix
#2019 : avoid illegal casts on large integers
2018-04-12 12:06:44 -04:00
frankfarmer
2c8bea1b59 avoid illegal casts on large integers
A similar fix was applied in e5e32d82d00e454ba5edf25316828c1cdcd7673e
2018-04-09 17:42:54 -07:00
Jeremy Stretch
aeaa47e91d Avoid a bug in DRF v3.8.2 2018-04-06 14:40:16 -04:00
Jeremy Stretch
9de1a8c363 Introduced SerializedPKRelatedField to represent serialized ManyToManyFields 2018-04-06 12:42:25 -04:00
Jeremy Stretch
c72d70d114 Removed nested serializers for ManyToMany relationships temporarily 2018-04-05 16:26:29 -04:00
Jeremy Stretch
821fb1e01e Finished merging writable serializers 2018-04-05 14:12:43 -04:00
Jeremy Stretch
7241783249 Started merging writable serializers (WIP) 2018-04-04 17:01:24 -04:00
Jeremy Stretch
db3cbaf83b Introduced WritableNestedSerializer 2018-04-04 15:39:14 -04:00
Jeremy Stretch
72c518bcb7 Updated tests for recently added model fields 2018-04-04 15:10:06 -04:00
Jeremy Stretch
9725f19bae Code formatting cleanup 2018-03-30 13:57:26 -04:00
Jeremy Stretch
0bb632c642 Allow Django 1.11 2018-03-30 10:54:35 -04:00
Jeremy Stretch
0969c458b3 Closes #1842: Implement support for Django 2.0 2018-03-30 10:39:22 -04:00
Jeremy Stretch
07364abf9e Fixes #1988: Order interfaces naturally when bulk renaming 2018-03-29 15:15:13 -04:00
Jeremy Stretch
20cb13e1bb Fixes #1975: Correct filtering logic for custom boolean fields 2018-03-29 14:47:35 -04:00
Jeremy Stretch
3f3b385de7 Fixes #1999: Added missing description field to site edit form 2018-03-29 13:49:50 -04:00
Jeremy Stretch
94b12e506e Fixes #1993: Corrected status choices in site CSV import form 2018-03-29 09:50:29 -04:00
Jeremy Stretch
4ec6e52e73 Closes #1990: Improved search function when assigning an IP address to an interface 2018-03-29 09:45:17 -04:00
Jeremy Stretch
88adc5ca86 Post-release version bump 2018-03-22 15:06:59 -04:00
Jeremy Stretch
68f73c7f94 Merge pull request #1987 from digitalocean/develop
Release v2.3.2
2018-03-22 15:05:59 -04:00
Jeremy Stretch
223c95adbc Release v2.3.2 2018-03-22 14:59:23 -04:00
Jeremy Stretch
3aaca1ca02 Require validation dependencies when installing drf-yasg 2018-03-22 11:51:27 -04:00
Jeremy Stretch
6a4d17b8a5 Merge pull request #1985 from lampwins/docs/apache-header
added X-Forwarded-Proto header to apache config
2018-03-22 11:43:43 -04:00
Jeremy Stretch
720c5fabaf Merge pull request #1643 from RyanBreaker/wildcard
Implements #1586, add additional variants for ExpandableNameFields
2018-03-22 11:40:54 -04:00
John Anderson
1c5239a4d0 added X-Forwarded-Proto header to apache config 2018-03-22 10:51:12 -04:00
Jeremy Stretch
05b5609d86 Merge pull request #1930 from davcamer/drf-yasg
Use drf_yasg to generate swagger
2018-03-21 15:43:05 -04:00
Jeremy Stretch
7e92aeb7ac Merge pull request #1981 from luto/patch-1
compare strings using "==" not "is", fix crash bug
2018-03-21 15:22:00 -04:00
Jeremy Stretch
6e2eb15a80 Fixes #1978: Include all virtual chassis member interfaces in LLDP neighbors view 2018-03-21 15:12:15 -04:00
luto
0b825ac3d0 compare strings using "==" not "is", fixes #1980 2018-03-21 14:28:59 +01:00
Dave Cameron
b5f1d74d6f Definition for /dcim/connected-device/ endpoint 2018-03-16 16:48:08 -04:00
Dave Cameron
e071b7dfd5 The id__in field is a csv-separated string of ids
drf_yasg is interpreting it as a number because NumericInFilter inherits
from django's NumberFilter which explicitly identifies as being a
DecimalField.
2018-03-15 17:07:58 -04:00
Dave Cameron
53e4e74930 Differentiate better between boolean and 0, 1 choices 2018-03-15 17:07:58 -04:00
Dave Cameron
b83de7eb11 Use drf_yasg to generate swagger
drf_yasg provides more complete swagger output, allowing for generation
of usable clients.

Some custom work was needed to accommodate Netbox's custom field
serializers, and to provide x-nullable attributes where appropriate.
2018-03-15 17:07:58 -04:00
Jeremy Stretch
38a208242b Closes #1945: Implemented a VLAN members view 2018-03-15 15:33:13 -04:00
Jeremy Stretch
4acd8e180d Merge pull request #1902 from lae/feature/ansible-alt-install
Add Ansible alternative installation to README
2018-03-14 15:26:33 -04:00
Jeremy Stretch
debc8521a5 Closes #1968: Link device type instance count to filtered device list 2018-03-14 15:18:24 -04:00
Jeremy Stretch
8bd268d81c Closes #1944: Enable assigning VLANs to virtual machine interfaces 2018-03-14 14:53:28 -04:00
Jeremy Stretch
ae6848b194 Fixed Slack URL 2018-03-14 10:30:55 -04:00
Jeremy Stretch
b22744b031 Removed validation constraint prohibitting a VLAN from being both tagged and untagged 2018-03-09 14:00:48 -05:00
Jeremy Stretch
a75d7079df Fixed tests 2018-03-08 13:36:14 -05:00
Jeremy Stretch
aa8442a345 Removed VLAN assignments from interface bulk editing 2018-03-08 13:29:08 -05:00
Jeremy Stretch
70625a5cb0 Improved validation and workflow 2018-03-08 13:25:51 -05:00
Jeremy Stretch
7c043d9b4f Replaced tagged/untagged VLAN assignment widgets with a VLAN table; separate view for adding VLANs 2018-03-07 17:01:51 -05:00
Jeremy Stretch
546f17ab50 Closes #1866: Introduced AnnotatedMultipleChoiceField for filter forms 2018-03-07 14:16:38 -05:00
Jeremy Stretch
1c9986efc4 Closes #1949: Added a button to view elevations on rack groups list 2018-03-07 11:37:05 -05:00
Jeremy Stretch
8ae13e29f5 Fixes #1955: Require a plaintext value when creating a new secret 2018-03-07 11:20:10 -05:00
Jeremy Stretch
f5bb072f28 Fixes #1953: Ignore duplicate IPs when calculating prefix utilization 2018-03-07 11:08:28 -05:00
Jeremy Stretch
37eef0ba6d Fixes #1951: Fix TypeError exception when importing platforms 2018-03-06 12:10:02 -05:00
Jeremy Stretch
603b80db1b Fixes #1948: Fix TypeError when attempting to add a member to an existing virtual chassis 2018-03-06 11:48:26 -05:00
Douglas Thor
8d9543cb6a Add note about copying reports to upgrading.md
The `upgrading.md` file does not mention reports. If the user created reports in the old version's default directory (`./netbox/reports`), then the reports will not be transferred to the new version.
2018-03-01 15:05:51 -08:00
Jeremy Stretch
c823660a8f Post-release version bump 2018-03-01 15:36:32 -05:00
Jeremy Stretch
ec4d28ac6c Merge pull request #1937 from digitalocean/develop
Release v2.3.1
2018-03-01 15:36:10 -05:00
Jeremy Stretch
0c5ad85b35 Release v2.3.1 2018-03-01 15:30:09 -05:00
Jeremy Stretch
bdecf7a3e3 Fixes #1936: Trigger validation error when attempting to create a virtual chassis without specifying member positions 2018-03-01 14:40:39 -05:00
Jeremy Stretch
6b62720daf Closes #1910: Added filters for cluter group and cluster type 2018-03-01 13:22:43 -05:00
Jeremy Stretch
d48c450018 Merge pull request #1925 from lampwins/bug/1921
fixed #1921 - create interfaces with 802.1q in api
2018-03-01 13:17:16 -05:00
Jeremy Stretch
078404fb59 Fixes #1926: Prevent reassignment of parent device when bulk editing VC member interfaces 2018-03-01 13:10:36 -05:00
Jeremy Stretch
4bb526896f Fixes #1934: Fixed exception when rendering export template on an object type with custom fields assigned 2018-03-01 12:37:12 -05:00
Jeremy Stretch
0476006ef2 Merge pull request #1929 from lampwins/bug/1928
Fixed #1928 form bound check for site and vlan group
2018-03-01 12:22:17 -05:00
John Anderson
19831f0177 Merge branch 'develop' into bug/1921 2018-03-01 12:11:46 -05:00
Jeremy Stretch
fc9871fba3 Fixes #1935: Correct API validation of VLANs assigned to interfaces 2018-03-01 12:05:25 -05:00
John Anderson
b34f4f8e43 refactor to handle M2M validation in ValidatedModelSerializer 2018-03-01 11:31:56 -05:00
John Anderson
0357d8522c Merge branch 'develop' into bug/1921 2018-03-01 11:26:52 -05:00
Jeremy Stretch
08d06bd781 Fixes #1921: Ignore ManyToManyFields when validating a new object created via the API 2018-03-01 11:16:28 -05:00
Jeremy Stretch
01a97add2a Fixes #1927: Include all VC member interaces on A side when creating a new interface connection 2018-03-01 09:49:17 -05:00
John Anderson
3cb351dceb fixed form bound check for site and vlan group 2018-02-28 16:31:53 -05:00
Jeremy Stretch
9e11591b3b Post-release version bump (a bit late) 2018-02-27 17:56:18 -05:00
John Anderson
e4c1cece75 fixed #1921 - create interfaces with 801.1q in api 2018-02-27 16:19:28 -05:00
Jeremy Stretch
6881a98048 Fixes #1924: Include VID in VLAN lists when editing an interface 2018-02-27 16:10:02 -05:00
Jeremy Stretch
36de9f10d6 Closes #1918: Add note about copying media directory to upgrade doc 2018-02-27 15:54:25 -05:00
Jeremy Stretch
1cc135f01f Fixes #1919: Prevent exception when attempting to create a virtual machine without selecting devices 2018-02-27 15:40:24 -05:00
Jeremy Stretch
079c8894fa Fixes #1915: Redirect to device view after deleting a component 2018-02-27 14:59:45 -05:00
Jeremy Stretch
957074a134 Merge pull request #1913 from digitalocean/develop
Release v2.3.0
2018-02-26 14:23:03 -05:00
Jeremy Stretch
970759ed8b Release v2.3.0 2018-02-26 14:19:38 -05:00
Jeremy Stretch
22f17a1424 Merge branch 'develop-2.3' into develop 2018-02-26 14:14:47 -05:00
Jeremy Stretch
5ed797cfc9 Fixes #1907: Allow removing an IP as the primary for a device when editing the IP directly 2018-02-26 14:13:34 -05:00
Jeremy Stretch
8ad59058a5 Updated requirements list 2018-02-26 13:54:19 -05:00
Jeremy Stretch
ec7bbcf90d Closes #1899: Prefer binary package of psycopg2 2018-02-26 13:40:04 -05:00
Jeremy Stretch
37dde72c8f Corrected order of arguments on DeviceVCMembershipForm 2018-02-26 13:28:05 -05:00
Jeremy Stretch
972f9be291 Formatting correction 2018-02-26 13:20:28 -05:00
Jeremy Stretch
8b33b888b2 Merge branch 'develop' into develop-2.3 2018-02-21 16:16:20 -05:00
Jeremy Stretch
d29fd338eb Post-release version bump 2018-02-21 16:13:29 -05:00
Jeremy Stretch
c4f7e8121a Merge pull request #1903 from digitalocean/develop
Release v2.2.10
2018-02-21 16:05:45 -05:00
Jeremy Stretch
8b5dba25f5 Release v2.2.10 2018-02-21 16:04:15 -05:00
Musee Ullah
e18b5f5fd4 Add Ansible alternative installation to README 2018-02-22 05:56:33 +09:00
Jeremy Stretch
a5dc9537e5 Closes #1693: Allow specifying loose or exact matching for custom field filters 2018-02-21 15:40:11 -05:00
Jeremy Stretch
3064948d8c Closes #1801: Update list of rack groups when selecting a site to filter by in rack elevations list 2018-02-21 14:06:38 -05:00
John Eismeier
e6bcc4a3fe Propose fix typos (#1897) 2018-02-21 12:39:29 -05:00
Jeremy Stretch
6967b6bdc5 Fixes #1892: Removed convenience function from an old migration (see #632) to fix database error on extras/0009_topologymap_type 2018-02-21 12:00:38 -05:00
Jeremy Stretch
a8977a5dec Closes #1885: Added a device filter field for primary IP 2018-02-21 10:55:49 -05:00
Jeremy Stretch
b837e8ea0b Fixes #1886: Allow setting the primary IPv4/v6 address for a VirtualMachine via the web UI 2018-02-21 10:49:40 -05:00
Jeremy Stretch
110052fa0f Fixes #1889: Consistent ordering of interface fields on add/edit 2018-02-21 10:38:45 -05:00
Jeremy Stretch
84bb977d2e Finished VirtualChassis list view 2018-02-21 09:53:23 -05:00
Jeremy Stretch
2d93c2b2da Closes #78: Implemented ability to render topology maps for console/power 2018-02-15 12:10:29 -05:00
Jeremy Stretch
9e4f2a9614 Fixed panel heading CSS class 2018-02-15 10:01:02 -05:00
Jeremy Stretch
5412a9f8ea Exclude devices already assigned to a VC from the list of potential VC members 2018-02-14 13:36:05 -05:00
Jeremy Stretch
d7177d3e05 Fixed typo in template 2018-02-14 13:35:25 -05:00
Jeremy Stretch
a21bd81681 VirtualChassis form validation cleanup 2018-02-14 12:47:10 -05:00
Jeremy Stretch
e653f35bf1 Fixes #1884: Provide additional context to identify devices when creating/editing avirtual chassis 2018-02-14 11:14:04 -05:00
John Anderson
28ea06a8bc Fix for bulk interface edit form 802.1Q settings (#1882)
* fixes #1881 - bulk interface 802.1Q settings form

* fix PEP8 newline

* PEP8 fixup
2018-02-14 10:42:12 -05:00
Jeremy Stretch
86b0491b68 Closes #1876: Added explanatory title text to disabled NAPALM buttons on device view 2018-02-13 11:03:31 -05:00
Jeremy Stretch
c8309581be Fixes #1869: Corrected ordering of VRFs with duplicate names 2018-02-07 13:40:08 -05:00
Jeremy Stretch
376c531fe4 Template libraries cleanup 2018-02-07 13:35:19 -05:00
Jeremy Stretch
b2c5bcd4f1 Upgraded jquery to v3.3.1 2018-02-06 15:11:29 -05:00
Jeremy Stretch
73c64272d8 Merge branch 'develop' into develop-2.3 2018-02-06 14:58:11 -05:00
Jeremy Stretch
11fe54753e Fixes #1867: Allow filtering on device status with multiple values 2018-02-06 14:10:42 -05:00
Jeremy Stretch
69f921aea9 Closes #1864: Added a 'status' field to the circuit model 2018-02-06 14:06:05 -05:00
Jeremy Stretch
594ef71027 Fixes #1860: Do not populate initial values for custom fields when editing objects in bulk 2018-02-02 21:30:16 -05:00
Jeremy Stretch
d25d8c21f6 Eliminated queries for distinct related object counts for better performance 2018-02-02 17:46:23 -05:00
Jeremy Stretch
835d13542f Fixes #1858: Include device/CM count for cluster list in global search results 2018-02-02 17:11:46 -05:00
Jeremy Stretch
7f5a3fffd3 Fixed related object links for platform/role tables 2018-02-02 16:49:38 -05:00
Jeremy Stretch
1890e710cb Fixed quoting of line breaks inside a CSV field 2018-02-02 16:31:23 -05:00
Jeremy Stretch
a9fefbec5c Added missing CSV header 2018-02-02 16:23:07 -05:00
Jeremy Stretch
b96e3af6c7 Closes #1714: Standardized CSV export functionality for all object lists 2018-02-02 16:12:57 -05:00
Jeremy Stretch
12e6fe1d50 Standardized declaration of csv_headers on models 2018-02-02 14:26:16 -05:00
Jeremy Stretch
60c03a646c Fixes #1859: Implemented support for line breaks within CSV fields 2018-02-02 13:32:16 -05:00
Jeremy Stretch
59dcbce417 Refactored CSV export logic 2018-02-02 11:36:45 -05:00
Jeremy Stretch
df10fa87d3 Replaced IRC with Slack; formatting cleanup 2018-02-01 16:52:24 -05:00
Jeremy Stretch
a954406d1f Changed IRC to Slack; added warning about noisy comments 2018-02-01 16:39:48 -05:00
Jeremy Stretch
e2213f458f Allow assignment of services to IPs on any VC member 2018-02-01 16:11:04 -05:00
Jeremy Stretch
55adcc1f0c Additional validation cleanup 2018-02-01 15:53:59 -05:00
Jeremy Stretch
d6eaa3d0cc Added virtual chassis tests 2018-02-01 13:52:41 -05:00
Jeremy Stretch
25ad58d42c Cleaned up API for virtual chassis 2018-02-01 13:02:34 -05:00
Jeremy Stretch
b61bccbb67 Added virtual chassis member remove view 2018-02-01 12:49:23 -05:00
Jeremy Stretch
f1da517c84 Added virtual chassis member add view 2018-02-01 11:39:13 -05:00
Jeremy Stretch
a4019be28c Collapsed VCMembership into the Device model (WIP) 2018-01-31 22:47:27 -05:00
Jeremy Stretch
36090d9f02 Post-release version bump 2018-01-31 11:15:26 -05:00
Jeremy Stretch
6b101d2c49 Merge branch 'develop' into develop-2.3 2018-01-31 11:13:17 -05:00
Jeremy Stretch
6436d703f5 Merge pull request #1852 from digitalocean/develop
Release v2.2.9
2018-01-31 10:43:20 -05:00
Jeremy Stretch
b3243704df Release v.2.2.9 2018-01-31 10:30:55 -05:00
Jeremy Stretch
8bedfcfc64 Added warning message about automatically deleting child inventory items 2018-01-31 10:25:06 -05:00
Jeremy Stretch
e0aa2c33e9 Fixes #1850: Fix TypeError when attempting IP address import if only unnamed devices exist 2018-01-31 10:03:05 -05:00
Jeremy Stretch
49f268a14c Added report results to the home page 2018-01-30 21:01:08 -05:00
Jeremy Stretch
2bb0e65aea Closes #144: Implemented list and bulk edit/delete views for InventoryItems 2018-01-30 17:46:00 -05:00
Jeremy Stretch
8b6d731cb6 Fixes #1838: Fix KeyError when attempting to create a VirtualChassis with no devicesselected 2018-01-30 16:42:52 -05:00
Jeremy Stretch
1cd629efb3 #1843: Allow assignment of VC member interfaces to VC master LAG 2018-01-30 16:34:42 -05:00
Jeremy Stretch
2f7f5425d8 Fixes #1848: Allow null value for interface encapsulation mode 2018-01-30 16:20:50 -05:00
Jeremy Stretch
215156c333 Fixes #1847: Fix RecursionError when VC master device is unnamed 2018-01-30 16:08:43 -05:00
Jeremy Stretch
a5d2055c11 Closes #1073: Include prefixes/IPs from all VRFs when viewing the children of a container prefix in the global table 2018-01-30 13:39:33 -05:00
Jeremy Stretch
ffc2c564b8 Cleaned up InventoryItem add/edit/delete links and return URL 2018-01-30 13:07:10 -05:00
Jeremy Stretch
16f222b0ab Closes #1366: Enable searching for regions by name/slug 2018-01-30 12:11:20 -05:00
Jeremy Stretch
3edf90714a Closes #1406: Display tenant description as title text in object tables 2018-01-30 11:57:21 -05:00
Jeremy Stretch
4e8fc03c2b Fixes #1845: Correct display of VMs in list with no role assigned 2018-01-30 11:18:37 -05:00
Jeremy Stretch
5037283b62 Removed support for NAPALM 1.x 2018-01-25 14:35:19 -05:00
Jeremy Stretch
f2c9135b96 Merge branch 'develop' into develop-2.3 2018-01-25 14:21:25 -05:00
Jeremy Stretch
7378d82bc4 Closes #1821: Added 'description' field to Site model 2018-01-25 13:29:09 -05:00
Jeremy Stretch
ed10a99771 Closes #1758: Added 'status' field to Site model 2018-01-25 13:07:04 -05:00
Jeremy Stretch
4df128d34e Renamed device status constants for clarity 2018-01-25 12:20:24 -05:00
Jeremy Stretch
33d0db5854 Highlight renamed components and allow for multiple previews 2018-01-25 11:59:43 -05:00
Jeremy Stretch
4a57a554da Allow interface mode to be null (for routed interfaces) 2018-01-25 11:45:12 -05:00
Jeremy Stretch
21fe7c57d8 Closes #1835: Consistent position of previous/next rack buttons 2018-01-25 10:19:45 -05:00
Jeremy Stretch
3bcc1429dd Merge pull request #1833 from lampwins/api-docs
added statement and example for using ForeignKey ID's in write actions in api docs
2018-01-22 16:57:08 -05:00
Jeremy Stretch
9a6a479452 Added VirtualChassis to the docs 2018-01-22 16:54:39 -05:00
Jeremy Stretch
c43487b741 Extend IP address device filter to match virtual chassis members 2018-01-22 16:42:19 -05:00
John Anderson
6b50755a5a fixed duplicate api docs example and grammar 2018-01-22 16:26:51 -05:00
Jeremy Stretch
53998e0fff Closes #1828: Added warning about media directory permissions 2018-01-22 16:04:19 -05:00
John Anderson
7341ae087c added statement and exaple for using ForeignKey ID's in write actions 2018-01-22 10:43:19 -05:00
Jeremy Stretch
9ea8dca4e3 Evaluate device_id rather than pulling entire device (DB optimization) 2018-01-19 16:16:45 -05:00
Jeremy Stretch
d80e64b2cc Reflect virtual chassis membership in display_name 2018-01-19 15:53:49 -05:00
Jeremy Stretch
d7354f4dab Completed virtual chassis API serializers 2018-01-19 13:34:37 -05:00
Jeremy Stretch
8d1676db54 Implemented a view for adding individual devices to an existing virtual chassis 2018-01-19 12:34:09 -05:00
Jeremy Stretch
0714a40509 Merge branch 'develop' into develop-2.3 2018-01-19 10:54:26 -05:00
Jeremy Stretch
5262156e1a Fixes #1818: InventoryItem API serializer no longer requires specifying a null value for items with no parent 2018-01-19 10:30:26 -05:00
Jeremy Stretch
7ac27b59c6 Closes #1824: Add virtual machine count to platforms list 2018-01-19 09:25:16 -05:00
Jeremy Stretch
fc7a43f23e Closes #1781: Enable bulk renaming of device components 2018-01-10 15:48:07 -05:00
Jeremy Stretch
d5ecfe7bef Fixes #1809: Populate tenant assignment from parent when creating a new prefix 2018-01-10 09:38:55 -05:00
Jeremy Stretch
e58d1ac87e Fixes #1807: Populate VRF from parent when creating a new prefix 2018-01-05 15:31:48 -05:00
Jeremy Stretch
bb653e733c Fixes #1621: Tweaked LLDP interface name evaluation logic 2018-01-05 15:19:27 -05:00
Jeremy Stretch
9c27d18d6c Fix bulk creation of Secrets via API 2018-01-02 17:07:21 -05:00
Jeremy Stretch
e5c13d2d72 Fix bulk creation of VCMemberships via API 2018-01-02 16:40:52 -05:00
Jeremy Stretch
b27529d927 Added bulk creation API tests 2018-01-02 16:29:44 -05:00
Jeremy Stretch
95257114df Merge pull request #1803 from bonki/doc-typo-ldap
Fixes #1802: Typo in ldap.md
2018-01-02 11:21:32 -05:00
Adrian Frühwirth
935da0d51f Fixes #1802: Typo in ldap.md 2017-12-29 13:29:07 +01:00
Jeremy Stretch
78ed85943b Fixes #1765: Improved rendering of null options for model choice fields in filter forms 2017-12-26 12:08:22 -05:00
Jeremy Stretch
7d87cc498a Converted remaining legacy views to class-based views for the DCIM app 2017-12-21 15:08:05 -05:00
Jeremy Stretch
a523d25c0d More table cleanup 2017-12-21 13:33:41 -05:00
Jeremy Stretch
d84e5d1839 Cleaned up component tables and checkbox toggling 2017-12-21 13:29:02 -05:00
Jeremy Stretch
063e79451f Closes #1321: Added created and last_updated fields for relevant models to their API serializers 2017-12-21 10:49:40 -05:00
Jeremy Stretch
b4a842d9da Post-release version bump 2017-12-20 15:32:57 -05:00
Jeremy Stretch
ec0cb7a8bc Merge pull request #1789 from digitalocean/develop
Release v2.2.8
2017-12-20 15:27:22 -05:00
Jeremy Stretch
841471104b Release v2.2.8 2017-12-20 15:24:07 -05:00
Jeremy Stretch
ac71416eb9 Closes #1775: Added instructions for enabling STARTTLS for LDAP authentication 2017-12-20 14:48:42 -05:00
Jeremy Stretch
779d685335 Closes #1784: Added cluster_type filters for virtual machines 2017-12-20 14:24:12 -05:00
Jeremy Stretch
4d1e798c56 Merge pull request #1780 from explody/fix_1778
Fix for #1778.
2017-12-20 14:17:45 -05:00
Jeremy Stretch
a598035236 Closes #1774: Include a button to refine search results for all object types under global search 2017-12-20 14:09:52 -05:00
Jeremy Stretch
50395aa821 Closes #1773: Moved child prefixes table to its own view 2017-12-20 14:01:37 -05:00
Jeremy Stretch
6d9c8fd85b Fixes #1787: Added missing site field to virtualization cluster CSV export 2017-12-20 13:18:30 -05:00
Jeremy Stretch
b65d994397 Fixes #1136: Enforce model validation during bulk update 2017-12-20 13:04:00 -05:00
Jeremy Stretch
b20258c66e Closes #1283: Added a time zone field to the site model 2017-12-19 17:24:14 -05:00
Jeremy Stretch
9984238f2a Closes #1744: Allow associating a platform with a specific manufacturer 2017-12-19 16:15:26 -05:00
Jeremy Stretch
c3599bacf2 Fixes #1785: Omit filter forms from browsable API 2017-12-19 15:30:55 -05:00
Jeremy Stretch
c10481b99d Fixes #1783: Added vm_role filter for device roles 2017-12-19 09:37:26 -05:00
Jeremy Stretch
02e01b7386 Merge pull request #1782 from digitalocean/99-virtual-chassis
Virtual Chassis Support
2017-12-18 17:09:53 -05:00
Jeremy Stretch
ca7147a0a7 PEP8 fixes 2017-12-18 16:52:49 -05:00
Jeremy Stretch
022c360964 Ignore VC member interfaces where mgmt_only=True 2017-12-18 16:44:44 -05:00
Jeremy Stretch
d41f4d2db3 Return all VC member interfaces when filtering for the master device; remove virtual_chassis_id filter 2017-12-18 16:22:49 -05:00
Jeremy Stretch
4871682dc6 Allow designating primary IPs assigned to a device's peer VC members 2017-12-18 16:08:46 -05:00
Mike Culbertson
1cebc1248b Fix for #1778.
This will set initial values for visible bulk-add form fields from query args.
2017-12-16 12:28:37 -05:00
Jeremy Stretch
70d235f99e Added virtual chassis tests 2017-12-15 17:21:43 -05:00
Jeremy Stretch
153409d37e Obsoleted ComponentEditView and ComponentDeleteView 2017-12-15 15:57:49 -05:00
Jeremy Stretch
67a30fdf91 Added virtual_chassis_id API filter for interfaces 2017-12-15 15:31:35 -05:00
Jeremy Stretch
911ce3f047 Display member interfaces when viewing VC master device 2017-12-15 15:24:03 -05:00
Jeremy Stretch
c97f7041a7 Closes #1772: Added position filter for devices 2017-12-14 13:12:04 -05:00
Jeremy Stretch
89bfb4f722 Closes #1771: Added name filter for racks 2017-12-14 13:05:26 -05:00
Jeremy Stretch
da3935ff36 Fixes #1766: Fixed display of "select all" button on device power outlets list 2017-12-13 15:23:35 -05:00
Jeremy Stretch
06810bff91 Fixes #1764: Fixed typos in export buttons 2017-12-13 11:55:31 -05:00
Jeremy Stretch
a9af75bbd1 Fixes #1767: Use proper template for 404 responses 2017-12-13 11:49:36 -05:00
Jeremy Stretch
da2bff691b Added views for editing/deleting VCMemberships 2017-12-08 12:51:52 -05:00
Jeremy Stretch
a85b3aa69f Added a form to edit virtual chassis 2017-12-07 17:05:03 -05:00
Jeremy Stretch
859f89101e Fixes #1727: Added missing import for M2M_FIELD_TYPES 2017-12-07 15:36:08 -05:00
Jeremy Stretch
2545912532 Merge branch 'develop-2.3' into 99-virtual-chassis 2017-12-07 15:30:58 -05:00
Jeremy Stretch
2fc1519bc6 Merge branch 'develop' into develop-2.3 2017-12-07 14:56:16 -05:00
Jeremy Stretch
be6ef15ffa Post-release version bump 2017-12-07 14:54:16 -05:00
Jeremy Stretch
e98f0c39d1 Merge pull request #1757 from digitalocean/develop
Release v2.2.7
2017-12-07 14:52:28 -05:00
Jeremy Stretch
5666079d92 Release v2.2.7 2017-12-07 14:50:44 -05:00
Jeremy Stretch
85f5ba9a25 Fixes #1756: Improved natural ordering of console server ports and power outlets 2017-12-07 13:22:48 -05:00
Jeremy Stretch
df141a48d9 Fixed typo 2017-12-06 12:17:04 -05:00
Jeremy Stretch
fed6fc131b Fixes #1751: Corrected filtering for IPv6 addresses containing letters 2017-12-05 16:10:45 -05:00
Jeremy Stretch
cf49891853 Fixes #1740: Delete session_key cookie on logout 2017-12-05 14:19:24 -05:00
Jeremy Stretch
de2a894269 Closes #1737: Added a 'contains' API filter to find all prefixes containing a given IP or prefix 2017-11-30 12:37:41 -05:00
Jeremy Stretch
34d10f8db7 Fixes #1741: Fixed Unicode support for secret plaintexts 2017-11-29 15:16:11 -05:00
Jeremy Stretch
68f76465cf Fixes #1743: Include number of instances for device types in global search 2017-11-29 14:07:41 -05:00
Jeremy Stretch
5f91413023 Added initial UI views for virtual chassis assignment 2017-11-29 12:58:36 -05:00
Jeremy Stretch
45d6955260 Fixed search field length in search view 2017-11-28 09:27:31 -05:00
Jeremy Stretch
3b801d43bc Moved VC master designation to membership model 2017-11-27 15:59:13 -05:00
Jeremy Stretch
30df060357 Closes #1722: Added VM count to site view 2017-11-27 10:59:24 -05:00
Jeremy Stretch
252be84bf0 Corrected tenant inheritance for new IP addresses created from a parent prefix 2017-11-22 13:00:48 -05:00
Jeremy Stretch
40ab272995 Fixes #1721: Differentiated child IP count from utilization percentage for prefixes 2017-11-22 12:40:58 -05:00
Jeremy Stretch
0ec3b5db8b Closes #1722: Added virtual machine count to sites list 2017-11-22 12:19:04 -05:00
Jeremy Stretch
55e07c1c9a Initial work on virtual chassis support 2017-11-17 16:47:26 -05:00
Jeremy Stretch
7e475511b6 Fixed version number 2017-11-17 12:06:52 -05:00
Jeremy Stretch
ca77e4545a Merge branch 'develop' into develop-2.3 2017-11-17 12:05:38 -05:00
Jeremy Stretch
5dc9723585 Post-release version bump 2017-11-16 12:01:09 -05:00
Jeremy Stretch
50a451eddc Merge pull request #1720 from digitalocean/develop
Release v2.2.6
2017-11-16 12:00:34 -05:00
Jeremy Stretch
3f8350b78f Release v2.2.6 2017-11-16 11:57:43 -05:00
Jeremy Stretch
500a56b869 Fixes #1718: Set empty label to 'Global' or VRF field in IP assignment form 2017-11-16 11:54:23 -05:00
Jeremy Stretch
e50b7174bf Closes #1669: Clicking "add an IP" from the prefix view will default to the first available IP within the prefix 2017-11-15 15:26:00 -05:00
Jeremy Stretch
8299c735b1 Fixes #1599: Reduce mobile cut-off for navigation menu to 960px 2017-11-15 14:57:56 -05:00
Jeremy Stretch
124878ed22 Fixes #1599: Display global search in navigation menu unless display is less than 1200px wide 2017-11-15 14:44:33 -05:00
Jeremy Stretch
1c09570805 Added nested representations of user and tenant to the rack reservation serializer 2017-11-15 14:15:44 -05:00
Jeremy Stretch
e56797737d A bit of cosmetic cleanup from #1672 2017-11-15 14:06:58 -05:00
Jeremy Stretch
81852de1fa Resolved migration collision from #1672 2017-11-15 13:57:19 -05:00
Nicholas Totsch
fbd39da8ca Add Tenancy to Rack Reservations; Fixes #1592 (#1672)
* fixed prefix header to represent new serial "vlan_vid"

* shows option in creation now

* fixed visibility on rack page

* cleanup

* Added view to Tenant page

* Moved migration for update from #1666 and fixed tenant enumeration in FilterForm

* Fixed conflict #1

* Fixed filters from merge and made migration merge

* added tenant to api

* Fixed migrations problem

* Added Tenant to bulkedit option
2017-11-15 13:54:49 -05:00
Jeremy Stretch
db0ef95fe3 Cleaned up bulk IP provisioning a bit 2017-11-15 13:52:14 -05:00
Jeremy Stretch
d888aa67f9 Fixes #1715: Added missing import buttons on object lists 2017-11-15 12:52:21 -05:00
Jeremy Stretch
0cb3e1749b Fixes #1717: Fixed inteface validation for virtual machines 2017-11-15 12:37:08 -05:00
Jeremy Stretch
b5a51aced3 Fixes #1645: Simplified interface serialzier for IP addresses and optimized API view queryset 2017-11-15 12:21:52 -05:00
Jeremy Stretch
04ba57cb38 Fixed up validation of Interface VLAN assignments 2017-11-14 16:15:23 -05:00
Jeremy Stretch
ba42ad2115 Merge branch '150-interface-vlans' into develop-2.3 2017-11-14 15:36:14 -05:00
Jeremy Stretch
5c13382071 Closes #1706: Added deprecation warning for Python 2 2017-11-14 15:07:13 -05:00
Jeremy Stretch
3df8c63d5c Merge branch 'develop' into develop-2.3 2017-11-14 14:38:32 -05:00
Jeremy Stretch
8ff10d5995 Post-release version bump 2017-11-14 13:29:46 -05:00
Jeremy Stretch
a5a7358d26 Merge pull request #1708 from digitalocean/develop
Release v2.2.5
2017-11-14 13:25:11 -05:00
Jeremy Stretch
63ac8863f3 Release v2.2.5 2017-11-14 13:20:15 -05:00
Jeremy Stretch
2047a16a57 Fixes #1703: Added API serializer validation for custom integer fields 2017-11-14 13:15:09 -05:00
Jeremy Stretch
8d6d55d628 Fixes #1705: Fixed filtering of devices with a status of offline 2017-11-14 12:58:47 -05:00
Karl
9a7dd5ea19 Update 0008_reports.py (#1702)
* Update 0008_reports.py

PG10 version string appears to, at least on Windows, contain a comma.

* Fix missing re import.

Fix missing re import.

* Update 0008_reports.py
2017-11-13 15:11:41 -05:00
Jeremy Stretch
30b544a743 Fixes #1642: Validate device type classification when creating console server ports and power outlets 2017-11-10 15:01:46 -05:00
Jeremy Stretch
a0bb7b08bd Closes #1512: Added a view to search for an IP address being assigned to an interface 2017-11-10 11:58:59 -05:00
Jeremy Stretch
e1d655cb23 Fixes #1471: Correct bulk selection of IP addresses within a prefix assigned to a VRF 2017-11-10 09:34:30 -05:00
Jeremy Stretch
5d46a112f8 #1694: Initial work on "next available" prefix provisioning 2017-11-09 16:59:50 -05:00
Jeremy Stretch
a1b1e261de Fixes #1699: Correct nested representation in the API of primary IPs for virtual machines and add missing primary_ip property 2017-11-09 09:33:40 -05:00
Jeremy Stretch
e01e5e6b0e Standardize on JSON data format for all POST/PUT test client requests 2017-11-08 13:54:35 -05:00
Jeremy Stretch
4f2dc50b5c Extended prefix 'available-ips' endpoint to accept multiple objects (related to #1553) 2017-11-08 13:48:33 -05:00
Jeremy Stretch
c3e5106b04 Restored search method on prefix filter 2017-11-08 10:33:30 -05:00
Jeremy Stretch
593ae295e3 Removed prefix parent filter (see #1684) 2017-11-08 09:57:35 -05:00
Jeremy Stretch
9d50b78b69 Fixes #1696: Fix for NAPALM v2.0+ 2017-11-08 09:51:37 -05:00
Jeremy Stretch
198170ca48 Closes #1553: Introduced support for bulk object creation via the API 2017-11-07 15:36:10 -05:00
Jeremy Stretch
00986fd7bf Closes #1691: Cleaned up and reorganized import statements 2017-11-07 11:08:23 -05:00
Jeremy Stretch
2519ebff9d Tweaked exception-handling middleware to preserve tracebacks 2017-11-06 17:48:13 -05:00
Jeremy Stretch
c33775d71e #1689: Fix for Python 2 2017-11-06 17:44:19 -05:00
Jeremy Stretch
6b0721cc21 Fixed PermissionError handling for Python 2 2017-11-06 17:24:09 -05:00
Jeremy Stretch
d306e76420 Fixes #1689: Disregard IP address mask when filtering for child IPs of a prefix 2017-11-06 10:07:44 -05:00
Jeremy Stretch
73cd76932a Closes #1679: Added IP address roles to device/VM interface lists 2017-11-03 17:00:08 -04:00
Jeremy Stretch
5d19a9f50f Rearranged device/VM view and expanded component lists 2017-11-03 16:58:56 -04:00
Jeremy Stretch
368c30ef9d Removed unused imports 2017-11-03 14:36:28 -04:00
Jeremy Stretch
f77bf72de8 Closes #1683: Replaced default 500 handler with custom middleware to provide preliminary troubleshooting assistance 2017-11-03 13:24:31 -04:00
Jeremy Stretch
f2fbd92f78 Tweaked the issue template 2017-11-03 10:50:02 -04:00
Jeremy Stretch
480134302f Refreshed contributing docs 2017-11-03 10:10:08 -04:00
Jeremy Stretch
74cc8c022c Fixes #1650: Correct numeric ordering for interfaces with no alphabetic type 2017-11-02 13:58:30 -04:00
Jeremy Stretch
c6f3b00f0e Fixes #1676: Correct filtering of child prefixes upon bulk edit/delete from the parent prefix view 2017-11-02 13:21:19 -04:00
Jeremy Stretch
626fbd1d10 Closes #1684: Replaced prefix 'parent' filter with 'within' and 'within_include' 2017-11-02 13:15:25 -04:00
Ichabond
b8df05cf88 Fixes #1655. Removed explicit field references. (#1656)
* Fixes #1655

Further field name references were found in `consoleport.html`. These have now been removed, so we rely on proper a proper `__str__` implementation of both `ConsolePort` and `ConsoleServerPort`.

* Fixes #1655: Removed explicit field references

Cleaned up all (notable) .name references, and removed them so __str__ can do the lifting. Did not remove the references where it was explicitly referenced to .name (eg. in details). Extended the Secret model to also include the name in __str__, since that was weirdly absent.

* Adapted PR to comply with comments

Re-introduced certain references to make sure explicit references are still used where needed.
2017-11-02 11:51:27 -04:00
Ryan Breaker
57973f62c5 Fix bug with numbers >10 2017-10-31 22:03:57 -05:00
Jeremy Stretch
e56fc4b1ee Post-release version bump 2017-10-31 15:25:59 -04:00
Jeremy Stretch
f9452163c5 Merge pull request #1671 from digitalocean/develop
Release v2.2.4
2017-10-31 15:21:23 -04:00
Jeremy Stretch
76ebd2d34f Release v2.2.4 2017-10-31 15:17:35 -04:00
Jeremy Stretch
85c273c8ca Fixes #1670: Corrected filter names (regression from #1649) 2017-10-31 14:47:14 -04:00
Jeremy Stretch
b9cd834e95 Post-release version bump 2017-10-31 14:07:19 -04:00
Jeremy Stretch
3067c3f262 Merge pull request #1668 from digitalocean/develop
Release v2.2.3
2017-10-31 14:02:15 -04:00
Jeremy Stretch
cfa6bee081 Release v2.2.3 2017-10-31 13:58:27 -04:00
Jeremy Stretch
b46cc2c1a9 Closes #1666: Allow modifying the owner of a rack reservation 2017-10-31 13:52:35 -04:00
Jeremy Stretch
5e734fc5a6 Merge pull request #1664 from wanglf/develop
Fixed #1612 missing field 'serial' in function to_csv()
2017-10-31 13:14:52 -04:00
wanglf
d08bc7767e Fixed missing field 'serial' in function to_csv() 2017-10-31 22:05:30 +08:00
Jeremy Stretch
bbd0761887 Fixes #1653: Remove outdated description for DeviceType's is_network_device flag 2017-10-30 17:45:05 -04:00
Jeremy Stretch
4668149943 Fixes #1649: Correct fitlering on null values (e.g. ?tenant_id=0) for django-filters v1.1.0+ 2017-10-30 17:20:22 -04:00
Jeremy Stretch
a5b7c057eb Merge pull request #1604 from RyanBreaker/virt-initial_data
Added virtualization fixture for initial_data
2017-10-30 15:30:28 -04:00
Jeremy Stretch
0a04bb110a Fixes #1603: Hide selection checkboxes for tables with no available actions 2017-10-27 10:33:58 -04:00
Jeremy Stretch
9c0b414676 Fixed vertical heigh of checboxes in tables 2017-10-27 10:31:54 -04:00
Jeremy Stretch
5be4b0c4fd Closes #1631: Added a post_run method to the Report class 2017-10-27 10:02:27 -04:00
Jeremy Stretch
8e0eab20e2 Merge pull request #1652 from Ichabond/develop
Fixes #1651: Remove explicit reference to the `name` field
2017-10-26 21:15:14 -04:00
Tom Strickx
1b5aa67f5d Remove explicit reference to the name field
Remove the explicit usage of the `name` field, and let the __str__ method of the ConsoleServerPort class handle the display
2017-10-26 09:24:39 -07:00
Ryan Breaker
02c278f393 Add Digital Ocean as an initial cluster 2017-10-26 10:05:18 -05:00
Ryan Breaker
e57b8aa26f E226 fix 2017-10-24 20:43:02 -05:00
Ryan Breaker
3d023126ba Refactor pattern check 2017-10-24 20:22:15 -05:00
Ryan Breaker
53f58d4496 Update comment 2017-10-24 20:03:10 -05:00
Ryan Breaker
1a6ee237f6 Update help text for ExpandableNameField (again) 2017-10-24 19:59:37 -05:00
Ryan Breaker
33a99441a4 Update help text for ExpandableNameField 2017-10-24 19:55:50 -05:00
Ryan Breaker
3df7e283e3 Prevent mismatch of cases in ranges 2017-10-24 19:46:12 -05:00
Ryan Breaker
b295849f53 Prevent mismatch of types in ranges 2017-10-24 19:30:43 -05:00
Ryan Breaker
c107f35118 Merge letters and numbers into one function 2017-10-24 17:55:00 -05:00
Ryan Breaker
3d91153275 Add alphabetic variants to interface expansions 2017-10-24 00:09:38 -05:00
Jeremy Stretch
54472b3806 Fixes #1634: Cluster should not be a required field when importing child devices 2017-10-23 13:17:51 -04:00
Jeremy Stretch
14e5f89feb Fixes #1624: Add VM count to device roles table 2017-10-23 13:15:34 -04:00
Jeremy Stretch
a0b93bb4df Fixes #1513: Correct filtering of custom field choices 2017-10-20 16:39:13 -04:00
Jeremy Stretch
85347d9675 Closes #999: Display devices on which circuits are terminated in circuits list 2017-10-20 16:27:19 -04:00
Ryan Breaker
060f7a7191 Add Hyper-V and Azure to Virtualization initial_data 2017-10-19 20:18:09 -05:00
Jeremy Stretch
81ca6f7cba #1621: Allow for loose matching of short-form IOS interface names when validating LLDP neighbors 2017-10-19 17:12:28 -04:00
Jeremy Stretch
515645bb4d Fixes #1620: Loosen IP address search filter to match all IPs that start with the given string 2017-10-18 14:29:56 -04:00
Jeremy Stretch
6ae6209457 Fixes #1619: Correct text-based filtering of IP network and address fields 2017-10-18 13:01:49 -04:00
Jeremy Stretch
272325ff05 Fixes #1618: Allow bulk deletion of all virtual machines 2017-10-18 12:31:58 -04:00
Jeremy Stretch
a84b49b92d Merge pull request #1597 from RyanBreaker/validations
Additional data validation for Rack model
2017-10-18 11:22:26 -04:00
Jeremy Stretch
b63efdd80b Post-release version bump 2017-10-17 11:25:12 -04:00
Jeremy Stretch
7a64404299 Merge pull request #1614 from digitalocean/develop
Release v2.2.2
2017-10-17 11:24:02 -04:00
Jeremy Stretch
2afa6ed2cb Release v2.2.2 2017-10-17 11:21:58 -04:00
Jeremy Stretch
34f1a9ebfb Fixes #1579: Devices already assigned to a cluster cannot be added to a different cluster 2017-10-17 09:59:35 -04:00
Jeremy Stretch
6f2f8697ae Fixes #1609: Added missing virtual_machine field to IP address interface serializer 2017-10-17 09:23:53 -04:00
Jeremy Stretch
6ec9d1d6ce Merge pull request #1598 from candlerb/candlerb/1498
Avoid creating repeated graph nodes where device matches multiple regexps
2017-10-16 17:16:46 -04:00
Jeremy Stretch
047f22e110 Fixes #1605: Added clusters and virtual machines to object list for global search 2017-10-16 16:44:15 -04:00
Ryan Breaker
a91fcbb310 Added virtualization fixture for loaddata initial_data 2017-10-16 14:59:39 -05:00
root
5fc3eac0f6 Avoid creating repeated graph nodes where device matches multiple regexps
Fixes #1498
2017-10-16 10:13:39 +00:00
Ryan Breaker
937faaf149 Add test for validation of device within rack height. 2017-10-15 19:03:28 -05:00
Ryan Breaker
115e7d6e50 Add group and site matching validation to Rack.clean() and testing 2017-10-15 18:35:03 -05:00
Jeremy Stretch
34259d5d9d Removed deprecated xstr and expand_pattern functions 2017-10-13 14:29:55 -04:00
Jeremy Stretch
91b6ebb0c0 Closes #1580: Allow cluster assignment when bulk importing devices 2017-10-13 14:19:41 -04:00
Jeremy Stretch
60b4f1f89f Fixes #1585: Fixed slug-based filtering of virtual machines 2017-10-13 12:14:19 -04:00
Jeremy Stretch
023ff6834a Designated new Docker build repo; removed stale Heroku build repo 2017-10-13 11:50:06 -04:00
Jeremy Stretch
d00cab0b0a Merge branch 'develop' of github.com:digitalocean/netbox into develop 2017-10-13 10:54:24 -04:00
Jeremy Stretch
17493ff655 Closes #1587: Add primary IP column for virtual machines in global search results 2017-10-13 10:53:25 -04:00
Jeremy Stretch
6c27e6c4fe Fixes #1584: Colorized virtual machine role column 2017-10-13 10:45:34 -04:00
Jeremy Stretch
4cb0be4df3 Fixes #1582: Add virtual_machine attribute to IPAddress 2017-10-13 10:42:45 -04:00
Jeremy Stretch
40f555a3b6 Merge pull request #1545 from digitalocean/mdl-ldap-docs-formatting
Minor LDAP documentation formatting cleanup
2017-10-12 23:42:29 -04:00
Jeremy Stretch
881fdbe893 Post-release version bump 2017-10-12 16:39:51 -04:00
Matt Layher
a01c9ff379 Minor LDAP documentation formatting cleanup 2017-09-29 13:22:42 -04:00
1640 changed files with 164307 additions and 24388 deletions

View File

@@ -1,41 +0,0 @@
<!--
Before opening a new issue, please search through the existing issues to
see if your topic has already been addressed. Note that you may need to
remove the "is:open" filter from the search bar to include closed issues.
Check the appropriate type for your issue below by placing an x between the
brackets. If none of the below apply, please raise your issue for
discussion on our mailing list:
https://groups.google.com/forum/#!forum/netbox-discuss
Please note that issues which do not fall under any of the below categories
will be closed.
--->
### Issue type
[ ] Feature request <!-- Requesting the implementation of a new feature -->
[ ] Bug report <!-- Reporting unexpected or erroneous behavior -->
[ ] Documentation <!-- Proposing a modification to the documentation -->
<!--
Please describe the environment in which you are running NetBox. (Be sure
to verify that you are running the latest stable release of NetBox before
submitting a bug report.)
-->
### Environment
* Python version: <!-- Example: 3.5.4 -->
* NetBox version: <!-- Example: 2.1.3 -->
<!--
BUG REPORTS must include:
* A list of the steps needed to reproduce the bug
* A description of the expected behavior
* Any relevant error messages (screenshots may also help)
FEATURE REQUESTS must include:
* A detailed description of the proposed functionality
* A use case for the new feature
* A rough description of any necessary changes to the database schema
* Any relevant third-party libraries which would be needed
-->
### Description

43
.github/ISSUE_TEMPLATE/bug_report.md vendored Normal file
View File

@@ -0,0 +1,43 @@
---
name: 🐛 Bug Report
about: Report a reproducible bug in the current release of NetBox
---
<!--
NOTE: IF YOUR ISSUE DOES NOT FOLLOW THIS TEMPLATE, IT WILL BE CLOSED.
This form is only for reproducible bugs. If you need assistance with
NetBox installation, or if you have a general question, DO NOT open an
issue. Instead, post to our mailing list:
https://groups.google.com/forum/#!forum/netbox-discuss
Please describe the environment in which you are running NetBox. Be sure
that you are running an unmodified instance of the latest stable release
before submitting a bug report, and that any plugins have been disabled.
-->
### Environment
* Python version:
* NetBox version:
<!--
Describe in detail the exact steps that someone else can take to reproduce
this bug using the current stable release of NetBox. Begin with the
creation of any necessary database objects and call out every operation
being performed explicitly. If reporting a bug in the REST API, be sure to
reconstruct the raw HTTP request(s) being made: Don't rely on a client
library such as pynetbox.
-->
### Steps to Reproduce
1. Disable any installed plugins by commenting out the `PLUGINS` setting in
`configuration.py`.
2.
3.
<!-- What did you expect to happen? -->
### Expected Behavior
<!-- What happened instead? -->
### Observed Behavior

9
.github/ISSUE_TEMPLATE/config.yml vendored Normal file
View File

@@ -0,0 +1,9 @@
# Reference: https://help.github.com/en/github/building-a-strong-community/configuring-issue-templates-for-your-repository#configuring-the-template-chooser
blank_issues_enabled: false
contact_links:
- name: 📖 Contributing Policy
url: https://github.com/netbox-community/netbox/blob/develop/CONTRIBUTING.md
about: Please read through our contributing policy before opening an issue or pull request
- name: 💬 Discussion Group
url: https://groups.google.com/forum/#!forum/netbox-discuss
about: Join our discussion group for assistance with installation issues and other problems

View File

@@ -0,0 +1,28 @@
---
name: 📖 Documentation Change
about: Suggest an addition or modification to the NetBox documentation
---
<!--
NOTE: IF YOUR ISSUE DOES NOT FOLLOW THIS TEMPLATE, IT WILL BE CLOSED.
Please indicate the nature of the change by placing an X in one of the
boxes below.
-->
### Change Type
[ ] Addition
[ ] Correction
[ ] Deprecation
[ ] Cleanup (formatting, typos, etc.)
### Area
[ ] Installation instructions
[ ] Configuration parameters
[ ] Functionality/features
[ ] REST API
[ ] Administration/development
[ ] Other
<!-- Describe the proposed change(s). -->
### Proposed Changes

View File

@@ -0,0 +1,56 @@
---
name: ✨ Feature Request
about: Propose a new NetBox feature or enhancement
---
<!--
NOTE: IF YOUR ISSUE DOES NOT FOLLOW THIS TEMPLATE, IT WILL BE CLOSED.
This form is only for proposing specific new features or enhancements.
If you have a general idea or question, please post to our mailing list
instead of opening an issue:
https://groups.google.com/forum/#!forum/netbox-discuss
NOTE: Due to an excessive backlog of feature requests, we are not currently
accepting any proposals which significantly extend NetBox's feature scope.
Please describe the environment in which you are running NetBox. Be sure
that you are running an unmodified instance of the latest stable release
before submitting a bug report.
-->
### Environment
* Python version: <!-- Example: 3.6.9 -->
* NetBox version: <!-- Example: 2.7.3 -->
<!--
Describe in detail the new functionality you are proposing. Include any
specific changes to work flows, data models, or the user interface.
-->
### Proposed Functionality
<!--
Convey an example use case for your proposed feature. Write from the
perspective of a NetBox user who would benefit from the proposed
functionality and describe how.
--->
### Use Case
<!--
Note any changes to the database schema necessary to support the new
feature. For example, does the proposal require adding a new model or
field? (Not all new features require database changes.)
--->
### Database Changes
<!--
List any new dependencies on external libraries or services that this new
feature would introduce. For example, does the proposal require the
installation of a new Python package? (Not all new features introduce new
dependencies.)
-->
### External Dependencies

16
.github/ISSUE_TEMPLATE/housekeeping.md vendored Normal file
View File

@@ -0,0 +1,16 @@
---
name: 🏡 Housekeeping
about: A change pertaining to the codebase itself (developers only)
---
<!--
NOTE: This template is for use by maintainers only. Please do not submit
an issue using this template unless you have been specifically asked to
do so.
-->
### Proposed Changes
<!-- Provide justification for the proposed change(s). -->
### Justification

View File

@@ -6,9 +6,10 @@
be able to accept.
Please indicate the relevant feature request or bug report below.
IF YOUR PULL REQUEST DOES NOT REFERENCE AN ACCEPTED BUG REPORT OR
FEATURE REQUEST, IT WILL BE MARKED AS INVALID AND CLOSED.
-->
### Fixes:
### Fixes: <ISSUE NUMBER GOES HERE>
<!--
Please include a summary of the proposed changes below.
-->

23
.github/lock.yml vendored Normal file
View File

@@ -0,0 +1,23 @@
# Configuration for Lock (https://github.com/apps/lock)
# Number of days of inactivity before a closed issue or pull request is locked
daysUntilLock: 90
# Skip issues and pull requests created before a given timestamp. Timestamp must
# follow ISO 8601 (`YYYY-MM-DD`). Set to `false` to disable
skipCreatedBefore: false
# Issues and pull requests with these labels will be ignored. Set to `[]` to disable
exemptLabels: []
# Label to add before locking, such as `outdated`. Set to `false` to disable
lockLabel: false
# Comment to post before locking. Set to `false` to disable
lockComment: false
# Assign `resolved` as the reason for locking. Set to `false` to disable
setLockReason: true
# Limit to only `issues` or `pulls`
# only: issues

33
.github/stale.yml vendored Normal file
View File

@@ -0,0 +1,33 @@
# Configuration for Stale (https://github.com/apps/stale)
# Pull requests are exempt from being marked as stale
only: issues
# Number of days of inactivity before an issue becomes stale
daysUntilStale: 14
# Number of days of inactivity before a stale issue is closed
daysUntilClose: 7
# Issues with these labels will never be considered stale
exemptLabels:
- "status: accepted"
- "status: gathering feedback"
- "status: blocked"
# Label to use when marking an issue as stale
staleLabel: wontfix
# Comment to post when marking an issue as stale. Set to `false` to disable
markComment: >
This issue has been automatically marked as stale because it has not had
recent activity. It will be closed if no further activity occurs. NetBox
is governed by a small group of core maintainers which means not all opened
issues may receive direct feedback. Please see our [contributing guide](https://github.com/netbox-community/netbox/blob/develop/CONTRIBUTING.md).
# Comment to post when closing a stale issue. Set to `false` to disable
closeComment: >
This issue has been automatically closed due to lack of activity. In an
effort to reduce noise, please do not comment any further. Note that the
core maintainers may elect to reopen this issue at a later date if deemed
necessary.

14
.gitignore vendored
View File

@@ -1,12 +1,20 @@
*.pyc
*.swp
/netbox/netbox/configuration.py
/netbox/netbox/ldap_config.py
/netbox/reports/*
!/netbox/reports/__init__.py
/netbox/scripts/*
!/netbox/scripts/__init__.py
/netbox/static
.idea
/venv/
/*.sh
!upgrade.sh
fabfile.py
*.swp
gunicorn_config.py
gunicorn.py
netbox.log
netbox.pid
.DS_Store
.idea
.coverage
.vscode

View File

@@ -1,15 +1,17 @@
sudo: required
services:
- postgresql
- redis-server
addons:
postgresql: "9.4"
postgresql: "9.6"
language: python
python:
- "2.7"
- "3.5"
- "3.6"
- "3.7"
install:
- pip install -r requirements.txt
- pip install pep8
- pip install pycodestyle
- pip install coverage
before_script:
- psql --version
- psql -U postgres -c 'SELECT version();'

1
CHANGELOG.md Normal file
View File

@@ -0,0 +1 @@
The changelog has been moved to the [project release notes](https://netbox.readthedocs.io/en/stable/release-notes/).

View File

@@ -1,8 +1,8 @@
## Getting Help
If you encounter any issues installing or using NetBox, try one of the
following resources to get assistance. Please **do not** open a GitHub
issue except to report bugs or request features.
following resources to get assistance. Please **do not** open a GitHub issue
except to report bugs or request features.
### Mailing List
@@ -10,112 +10,159 @@ We have established a Google Groups Mailing List for issues and general
discussion. This is the best forum for obtaining assistance with NetBox
installation. You can find us [here](https://groups.google.com/forum/#!forum/netbox-discuss).
### Freenode IRC
### Slack
For real-time discussion, you can join the #netbox channel on [Freenode](https://freenode.net/).
You can connect to Freenode at irc.freenode.net using an IRC client, or
you can use their [webchat client](https://webchat.freenode.net/).
For real-time discussion, you can join the #netbox Slack channel on [NetworkToCode](https://slack.networktocode.com/).
## Reporting Bugs
* First, ensure that you've installed the [latest stable version](https://github.com/digitalocean/netbox/releases) of
NetBox. If you're running an older version, it's possible that the bug
has already been fixed.
* First, ensure that you're running the [latest stable version](https://github.com/netbox-community/netbox/releases)
of NetBox. If you're running an older version, it's possible that the bug has
already been fixed.
* Next, check the GitHub [issues list](https://github.com/digitalocean/netbox/issues) to see if the bug you've found has
already been reported. If you think you may be experiencing a reported
issue that hasn't already been resolved, please click "add a reaction"
in the top right corner of the issue and add a thumbs up (+1). You might
also want to add a comment describing how it's affecting your
installation. This will allow us to prioritize bugs based on how many
users are affected.
* Next, check the GitHub [issues list](https://github.com/netbox-community/netbox/issues)
to see if the bug you've found has already been reported. If you think you may
be experiencing a reported issue that hasn't already been resolved, please
click "add a reaction" in the top right corner of the issue and add a thumbs
up (+1). You might also want to add a comment describing how it's affecting your
installation. This will allow us to prioritize bugs based on how many users are
affected.
* If you haven't found an existing issue that describes your suspected
bug, please inquire about it on the mailing list. **Do not** file an
issue until you have received confirmation that it is in fact a bug.
Invalid issues are very distracting and slow the pace at which NetBox is
developed.
* When submitting an issue, please be as descriptive as possible. Be
sure to include:
* When submitting an issue, please be as descriptive as possible. Be sure to
provide all information request in the issue template, including:
* The environment in which NetBox is running
* The exact steps that can be taken to reproduce the issue (if
applicable)
* The exact steps that can be taken to reproduce the issue
* Expected and observed behavior
* Any error messages generated
* Screenshots (if applicable)
* Please avoid prepending any sort of tag (e.g. "[Bug]") to the issue title.
The issue will be reviewed by a moderator after submission and the appropriate
labels will be applied.
The issue will be reviewed by a maintainer after submission and the appropriate
labels will be applied for categorization.
* Keep in mind that we prioritize bugs based on their severity and how
much work is required to resolve them. It may take some time for someone
to address your issue.
* Keep in mind that we prioritize bugs based on their severity and how much
work is required to resolve them. It may take some time for someone to address
your issue.
* For more information on how bug reports are handled, please see our [issue
intake policy](https://github.com/netbox-community/netbox/wiki/Issue-Intake-Policy).
## Feature Requests
* First, check the GitHub [issues list](https://github.com/digitalocean/netbox/issues) to see if the feature you're
requesting is already listed. (Be sure to search closed issues as well,
since some feature requests are rejected.) If the feature you'd like to
see has already been requested, click "add a reaction" in the top right
corner of the issue and add a thumbs up (+1). This ensures that the
issue has a better chance of making it onto the roadmap. Also feel free
to add a comment with any additional justification for the feature.
* First, check the GitHub [issues list](https://github.com/netbox-community/netbox/issues)
to see if the feature you're requesting is already listed. (Be sure to search
closed issues as well, since some feature requests have been rejected.) If the
feature you'd like to see has already been requested and is open, click "add a
reaction" in the top right corner of the issue and add a thumbs up (+1). This
ensures that the issue has a better chance of receiving attention. Also feel
free to add a comment with any additional justification for the feature.
(However, note that comments with no substance other than a "+1" will be
deleted. Please use GitHub's reactions feature to indicate your
support.)
deleted. Please use GitHub's reactions feature to indicate your support.)
* While suggestions for new features are welcome, it's important to
limit the scope of NetBox's feature set to avoid feature creep. For
example, the following features would be firmly out of scope for NetBox:
* Ticket management
* Network state monitoring
* Acting as a DNS server
* Acting as an authentication server
* Due to a large backlog of feature requests, we are not currently accepting
any proposals which substantially extend NetBox's functionality beyond its
current feature set. This includes the introduction of any new views or models
which have not already been proposed in an existing feature request.
* Before filing a new feature request, consider raising your idea on the
mailing list first. Feedback you receive there will help validate and
shape the proposed feature before filing a formal issue.
mailing list first. Feedback you receive there will help validate and shape the
proposed feature before filing a formal issue.
* Good feature requests are very narrowly defined. Be sure to enumerate
specific functionality and data schema. The more effort you put into
writing a feature request, the better its chance is of being
* Good feature requests are very narrowly defined. Be sure to thoroughly
describe the functionality and data model(s) being proposed. The more effort
you put into writing a feature request, the better its chance is of being
implemented. Overly broad feature requests will be closed.
* When submitting a feature request on GitHub, be sure to include the
following:
* When submitting a feature request on GitHub, be sure to include all
information requested by the issue template, including:
* A detailed description of the proposed functionality
* A use case for the feature; who would use it and what value it
would add to NetBox
* A rough description of changes necessary to the database schema
(if applicable)
* Any third-party libraries or other resources which would be
involved
* A use case for the feature; who would use it and what value it would add
to NetBox
* A rough description of changes necessary to the database schema (if
applicable)
* Any third-party libraries or other resources which would be involved
* Please avoid prepending any sort of tag (e.g. "[Feature]") to the issue title.
The issue will be reviewed by a moderator after submission and the appropriate
labels will be applied.
* Please avoid prepending any sort of tag (e.g. "[Feature]") to the issue
title. The issue will be reviewed by a moderator after submission and the
appropriate labels will be applied for categorization.
* For more information on how feature requests are handled, please see our
[issue intake policy](https://github.com/netbox-community/netbox/wiki/Issue-Intake-Policy).
## Submitting Pull Requests
* Be sure to open an issue before starting work on a pull request, and
discuss your idea with the NetBox maintainers before beginning work.
This will help prevent wasting time on something that might we might not
be able to implement. When suggesting a new feature, also make sure it
won't conflict with any work that's already in progress.
* Be sure to open an issue **before** starting work on a pull request, and
discuss your idea with the NetBox maintainers before beginning work. This will
help prevent wasting time on something that might we might not be able to
implement. When suggesting a new feature, also make sure it won't conflict with
any work that's already in progress.
* When submitting a pull request, please be sure to work off of the
`develop` branch, rather than `master`. In NetBox, the `develop` branch
is used for ongoing development, while `master` is used for tagging new
stable releases.
* Any pull request which does _not_ relate to an accepted issue will be closed.
* All code submissions should meet the following criteria (CI will
enforce these checks):
* All major new functionality must include relevant tests where applicable.
* When submitting a pull request, please be sure to work off of the `develop`
branch, rather than `master`. The `develop` branch is used for ongoing
development, while `master` is used for tagging stable releases.
* All code submissions should meet the following criteria (CI will enforce
these checks):
* Python syntax is valid
* All tests pass when run with `./manage.py test`
* PEP 8 compliance is enforced, with the exception that lines may be
greater than 80 characters in length
## Commenting
Only comment on an issue if you are sharing a relevant idea or constructive
feedback. **Do not** comment on an issue just to show your support (give the
top post a :+1: instead) or ask for an ETA. These comments will be deleted to
reduce noise in the discussion.
## Issue Lifecycle
New issues are handled according to our [issue intake policy](https://github.com/netbox-community/netbox/wiki/Issue-Intake-Policy).
Maintainers will assign label(s) and/or close new issues as the policy
dictates. This helps ensure a productive development environment and avoid
accumulating a large backlog of work.
The core maintainers group has chosen to make use of GitHub's [Stale bot](https://github.com/apps/stale)
to aid in issue management.
* Issues will be marked as stale after 14 days of no activity.
* Then after 7 more days of inactivity, the issue will be closed.
* Any issue bearing one of the following labels will be exempt from all Stale
bot actions:
* `status: accepted`
* `status: gathering feedback`
* `status: blocked`
It is natural that some new issues get more attention than others. Often this
is a metric of an issues's overall value to the project. In other cases in
which issues merely get lost in the shuffle, notifications from Stale bot can
bring renewed attention to potentially meaningful issues.
## Maintainer Guidance
* Maintainers are expected to contribute at least four hours per week to the
project on average. This can be employer-sponsored or individual time, with
the understanding that all contributions are submitted under the Apache 2.0
license and that your employer may not make claim to any contributions.
Contributions include code work, issue management, and community support. All
development must be in accordance with our [development guidance](https://netbox.readthedocs.io/en/stable/development/).
* Maintainers are expected to attend (where feasible) our biweekly ~30-minute
sync to review agenda items. This meeting provides opportunity to present and
discuss pressing topics. Meetings are held as virtual audio/video conferences.
* Official channels for communication include:
* GitHub issues/pull requests
* The [netbox-discuss](https://groups.google.com/forum/#!forum/netbox-discuss) mailing list
* The **#netbox** channel on [NetworkToCode Slack](https://networktocode.slack.com/)
* Maintainers with no substantial recorded activity in a 60-day period will be
removed from the project.

1
NOTICE Normal file
View File

@@ -0,0 +1 @@
Copyrighted and licensed under Apache License 2.0 by DigitalOcean, LLC.

View File

@@ -1,36 +1,54 @@
![NetBox](docs/netbox_logo.png "NetBox logo")
![NetBox](docs/netbox_logo.svg "NetBox logo")
NetBox is an IP address management (IPAM) and data center infrastructure management (DCIM) tool. Initially conceived by the network engineering team at [DigitalOcean](https://www.digitalocean.com/), NetBox was developed specifically to address the needs of network and infrastructure engineers.
NetBox is an IP address management (IPAM) and data center infrastructure
management (DCIM) tool. Initially conceived by the network engineering team at
[DigitalOcean](https://www.digitalocean.com/), NetBox was developed specifically
to address the needs of network and infrastructure engineers. It is intended to
function as a domain-specific source of truth for network operations.
NetBox runs as a web application atop the [Django](https://www.djangoproject.com/) Python framework with a [PostgreSQL](http://www.postgresql.org/) database. For a complete list of requirements, see `requirements.txt`. The code is available [on GitHub](https://github.com/digitalocean/netbox).
NetBox runs as a web application atop the [Django](https://www.djangoproject.com/)
Python framework with a [PostgreSQL](http://www.postgresql.org/) database. For a
complete list of requirements, see `requirements.txt`. The code is available [on GitHub](https://github.com/netbox-community/netbox).
The complete documentation for NetBox can be found at [Read the Docs](http://netbox.readthedocs.io/en/stable/).
Questions? Comments? Please subscribe to [the netbox-discuss mailing list](https://groups.google.com/forum/#!forum/netbox-discuss), or join us on IRC in **#netbox** on **irc.freenode.net**!
Questions? Comments? Please subscribe to [the netbox-discuss mailing list](https://groups.google.com/forum/#!forum/netbox-discuss),
or join us in the #netbox Slack channel on [NetworkToCode](https://networktocode.slack.com/)!
### Build Status
NetBox is built against both Python 2.7 and 3.5. Python 3.5 is recommended.
| | status |
|-------------|------------|
| **master** | [![Build Status](https://travis-ci.org/digitalocean/netbox.svg?branch=master)](https://travis-ci.org/digitalocean/netbox) |
| **develop** | [![Build Status](https://travis-ci.org/digitalocean/netbox.svg?branch=develop)](https://travis-ci.org/digitalocean/netbox) |
| **master** | [![Build Status](https://travis-ci.org/netbox-community/netbox.svg?branch=master)](https://travis-ci.com/netbox-community/netbox/) |
| **develop** | [![Build Status](https://travis-ci.org/netbox-community/netbox.svg?branch=develop)](https://travis-ci.com/netbox-community/netbox/) |
## Screenshots
### Screenshots
![Screenshot of main page](docs/media/screenshot1.png "Main page")
---
![Screenshot of rack elevation](docs/media/screenshot2.png "Rack elevation")
---
![Screenshot of prefix hierarchy](docs/media/screenshot3.png "Prefix hierarchy")
# Installation
## Installation
Please see [the documentation](http://netbox.readthedocs.io/en/stable/) for instructions on installing NetBox. To upgrade NetBox, please download the [latest release](https://github.com/digitalocean/netbox/releases) and run `upgrade.sh`.
Please see [the documentation](http://netbox.readthedocs.io/en/stable/) for
instructions on installing NetBox. To upgrade NetBox, please download the [latest release](https://github.com/netbox-community/netbox/releases)
and run `upgrade.sh`.
## Alternative Installations
## Providing Feedback
* [Docker container](https://github.com/digitalocean/netbox-docker)
* [Heroku deployment](https://heroku.com/deploy?template=https://github.com/BILDQUADRAT/netbox/tree/heroku) (via [@mraerino](https://github.com/BILDQUADRAT/netbox/tree/heroku))
* [Vagrant deployment](https://github.com/ryanmerolle/netbox-vagrant)
Feature requests and bug reports must be submitted as GiHub issues. (Please be
sure to use the [appropriate template](https://github.com/netbox-community/netbox/issues/new/choose).)
For general discussion, please consider joining our [mailing list](https://groups.google.com/forum/#!forum/netbox-discuss).
If you are interested in contributing to the development of NetBox, please read
our [contributing guide](CONTRIBUTING.md) prior to beginning any work.
## Related projects
Please see [our wiki](https://github.com/netbox-community/netbox/wiki/Community-Contributions) for a list of relevant community projects.

99
base_requirements.txt Normal file
View File

@@ -0,0 +1,99 @@
# The Python web framework on which NetBox is built
# https://github.com/django/django
Django
# Django caching using Redis
# https://github.com/Suor/django-cacheops
django-cacheops
# Django middleware which permits cross-domain API requests
# https://github.com/OttoYiu/django-cors-headers
django-cors-headers
# Runtime UI tool for debugging Django
# https://github.com/jazzband/django-debug-toolbar
django-debug-toolbar
# Library for writing reusable URL query filters
# https://github.com/carltongibson/django-filter
django-filter
# Modified Preorder Tree Traversal (recursive nesting of objects)
# https://github.com/django-mptt/django-mptt
django-mptt
# Context managers for PostgreSQL advisory locks
# https://github.com/Xof/django-pglocks
django-pglocks
# Prometheus metrics library for Django
# https://github.com/korfuri/django-prometheus
django-prometheus
# Django integration for RQ (Reqis queuing)
# https://github.com/rq/django-rq
django-rq
# Abstraction models for rendering and paginating HTML tables
# https://github.com/jieter/django-tables2
django-tables2
# User-defined tags for objects
# https://github.com/alex/django-taggit
django-taggit
# A Django REST Framework serializer which represents tags
# https://github.com/glemmaPaul/django-taggit-serializer
django-taggit-serializer
# A Django field for representing time zones
# https://github.com/mfogel/django-timezone-field/
django-timezone-field
# A REST API framework for Django projects
# https://github.com/encode/django-rest-framework
djangorestframework
# Swagger/OpenAPI schema generation for REST APIs
# https://github.com/axnsan12/drf-yasg
drf-yasg[validation]
# WSGI HTTP server
# https://gunicorn.org/
gunicorn
# Platform-agnostic template rendering engine
# https://github.com/pallets/jinja
Jinja2
# Simple markup language for rendering HTML
# https://github.com/Python-Markdown/markdown
Markdown
# Library for manipulating IP prefixes and addresses
# https://github.com/drkjam/netaddr
netaddr
# Fork of PIL (Python Imaging Library) for image processing
# https://github.com/python-pillow/Pillow
Pillow
# PostgreSQL database adapter for Python
# https://github.com/psycopg/psycopg2
psycopg2-binary
# Extensive cryptographic library (fork of pycrypto)
# https://github.com/Legrandin/pycryptodome
pycryptodome
# YAML rendering library
# https://github.com/yaml/pyyaml
PyYAML
# In-memory key/value store used for caching and queuing
# https://github.com/andymccurdy/redis-py
redis
# SVG image rendering (used for rack elevations)
# https://github.com/mozman/svgwrite
svgwrite

26
contrib/apache.conf Normal file
View File

@@ -0,0 +1,26 @@
<VirtualHost *:443>
ProxyPreserveHost On
# CHANGE THIS TO YOUR SERVER'S NAME
ServerName netbox.example.com
SSLEngine on
SSLCertificateFile /etc/ssl/certs/netbox.crt
SSLCertificateKeyFile /etc/ssl/private/netbox.key
Alias /static /opt/netbox/netbox/static
<Directory /opt/netbox/netbox/static>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Require all granted
</Directory>
<Location /static>
ProxyPass !
</Location>
RequestHeader set "X-Forwarded-Proto" expr=%{REQUEST_SCHEME}
ProxyPass / http://127.0.0.1:8001/
ProxyPassReverse / http://127.0.0.1:8001/
</VirtualHost>

16
contrib/gunicorn.py Normal file
View File

@@ -0,0 +1,16 @@
# The IP address (typically localhost) and port that the Netbox WSGI process should listen on
bind = '127.0.0.1:8001'
# Number of gunicorn workers to spawn. This should typically be 2n+1, where
# n is the number of CPU cores present.
workers = 5
# Number of threads per worker process
threads = 3
# Timeout (in seconds) for a request to complete
timeout = 120
# The maximum number of requests a worker can handle before being respawned
max_requests = 5000
max_requests_jitter = 500

21
contrib/netbox-rq.service Normal file
View File

@@ -0,0 +1,21 @@
[Unit]
Description=NetBox Request Queue Worker
Documentation=https://netbox.readthedocs.io/en/stable/
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
User=netbox
Group=netbox
WorkingDirectory=/opt/netbox
ExecStart=/opt/netbox/venv/bin/python3 /opt/netbox/netbox/manage.py rqworker
Restart=on-failure
RestartSec=30
PrivateTmp=true
[Install]
WantedBy=multi-user.target

22
contrib/netbox.service Normal file
View File

@@ -0,0 +1,22 @@
[Unit]
Description=NetBox WSGI Service
Documentation=https://netbox.readthedocs.io/en/stable/
After=network-online.target
Wants=network-online.target
[Service]
Type=simple
User=netbox
Group=netbox
PIDFile=/var/tmp/netbox.pid
WorkingDirectory=/opt/netbox
ExecStart=/opt/netbox/venv/bin/gunicorn --pid /var/tmp/netbox.pid --pythonpath /opt/netbox/netbox --config /opt/netbox/gunicorn.py netbox.wsgi
Restart=on-failure
RestartSec=30
PrivateTmp=true
[Install]
WantedBy=multi-user.target

29
contrib/nginx.conf Normal file
View File

@@ -0,0 +1,29 @@
server {
listen 443 ssl;
# CHANGE THIS TO YOUR SERVER'S NAME
server_name netbox.example.com;
ssl_certificate /etc/ssl/certs/netbox.crt;
ssl_certificate_key /etc/ssl/private/netbox.key;
client_max_body_size 25m;
location /static/ {
alias /opt/netbox/netbox/static/;
}
location / {
proxy_pass http://127.0.0.1:8001;
proxy_set_header X-Forwarded-Host $http_host;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
}
}
server {
# Redirect HTTP traffic to HTTPS
listen 80;
server_name _;
return 301 https://$host$request_uri;
}

View File

@@ -0,0 +1,21 @@
# Caching
To improve performance, NetBox supports caching for most object and list views. Caching is implemented using Redis,
and [django-cacheops](https://github.com/Suor/django-cacheops)
Several management commands are avaliable for administrators to manually invalidate cache entries in extenuating circumstances.
To invalidate a specifc model instance (for example a Device with ID 34):
```
python netbox/manage.py invalidate dcim.Device.34
```
To invalidate all instance of a model:
```
python netbox/manage.py invalidate dcim.Device
```
To flush the entire cache database:
```
python netbox/manage.py invalidate all
```

View File

@@ -0,0 +1,9 @@
# Change Logging
Every time an object in NetBox is created, updated, or deleted, a serialized copy of that object is saved to the database, along with meta data including the current time and the user associated with the change. These records form a running changelog both for each individual object as well as NetBox as a whole (Organization > Changelog).
A serialized representation is included for each object in JSON format. This is similar to how objects are conveyed within the REST API, but does not include any nested representations. For instance, the `tenant` field of a site will record only the tenant's ID, not a representation of the tenant.
When a request is made, a random request ID is generated and attached to any change records resulting from the request. For example, editing multiple objects in bulk will create a change record for each object, and each of those objects will be assigned the same request ID. This makes it easy to identify all the change records associated with a particular request.
Change records are exposed in the API via the read-only endpoint `/api/extras/object-changes/`. They may also be exported in CSV format.

View File

@@ -0,0 +1,3 @@
# Context Data
{!docs/models/extras/configcontext.md!}

View File

@@ -0,0 +1,26 @@
# Custom Fields
Each object in NetBox is represented in the database as a discrete table, and each attribute of an object exists as a column within its table. For example, sites are stored in the `dcim_site` table, which has columns named `name`, `facility`, `physical_address`, and so on. As new attributes are added to objects throughout the development of NetBox, tables are expanded to include new rows.
However, some users might want to associate with objects attributes that are somewhat esoteric in nature, and that would not make sense to include in the core NetBox database schema. For instance, suppose your organization needs to associate each device with a ticket number pointing to the support ticket that was opened to have it installed. This is certainly a legitimate use for NetBox, but it's perhaps not a common enough need to warrant expanding the internal data schema. Instead, you can create a custom field to hold this data.
Custom fields must be created through the admin UI under Extras > Custom Fields. To create a new custom field, select the object(s) to which you want it to apply, and the type of field it will be. NetBox supports six field types:
* Free-form text (up to 255 characters)
* Integer
* Boolean (true/false)
* Date
* URL
* Selection
Assign the field a name. This should be a simple database-friendly string, e.g. `tps_report`. You may optionally assign the field a human-friendly label (e.g. "TPS report") as well; the label will be displayed on forms. If a description is provided, it will appear beneath the field in a form.
Marking the field as required will require the user to provide a value for the field when creating a new object or when saving an existing object. A default value for the field may also be provided. Use "true" or "false" for boolean fields. (The default value has no effect for selection fields.)
When creating a selection field, you should create at least two choices. These choices will be arranged first by weight, with lower weights appearing higher in the list, and then alphabetically.
## Using Custom Fields
When a single object is edited, the form will include any custom fields which have been defined for the object type. These fields are included in the "Custom Fields" panel. On the backend, each custom field value is saved separately from the core object as an independent database call, so it's best to avoid adding too many custom fields per object.
When editing multiple objects, custom field values are saved in bulk. There is no significant difference in overhead when saving a custom field value for 100 objects versus one object. However, the bulk operation must be performed separately for each custom field.

View File

@@ -0,0 +1,43 @@
# Custom Links
Custom links allow users to place arbitrary hyperlinks within NetBox views. These are helpful for cross-referencing related records in external systems. For example, you might create a custom link on the device view which links to the current device in a network monitoring system.
Custom links are created under the admin UI. Each link is associated with a particular NetBox object type (site, device, prefix, etc.) and will be displayed on relevant views. Each link is assigned text and a URL, both of which support Jinja2 templating. The text and URL are rendered with the context variable `obj` representing the current object.
For example, you might define a link like this:
* Text: `View NMS`
* URL: `https://nms.example.com/nodes/?name={{ obj.name }}`
When viewing a device named Router4, this link would render as:
```
<a href="https://nms.example.com/nodes/?name=Router4">View NMS</a>
```
Custom links appear as buttons at the top right corner of the page. Numeric weighting can be used to influence the ordering of links.
## Conditional Rendering
Only links which render with non-empty text are included on the page. You can employ conditional Jinja2 logic to control the conditions under which a link gets rendered.
For example, if you only want to display a link for active devices, you could set the link text to
```
{% if obj.status == 1 %}View NMS{% endif %}
```
The link will not appear when viewing a device with any status other than "active."
Another example, if you want to only show an object of a certain manufacturer, you could set the link text to:
```
{% if obj.device_type.manufacturer.name == 'Cisco' %}View NMS {% endif %}
```
The link will only appear when viewing a device with a manufacturer name of "Cisco."
## Link Groups
You can specify a group name to organize links into related sets. Grouped links will render as a dropdown menu beneath a
single button bearing the name of the group.

View File

@@ -0,0 +1,268 @@
# Custom Scripts
Custom scripting was introduced to provide a way for users to execute custom logic from within the NetBox UI. Custom scripts enable the user to directly and conveniently manipulate NetBox data in a prescribed fashion. They can be used to accomplish myriad tasks, such as:
* Automatically populate new devices and cables in preparation for a new site deployment
* Create a range of new reserved prefixes or IP addresses
* Fetch data from an external source and import it to NetBox
Custom scripts are Python code and exist outside of the official NetBox code base, so they can be updated and changed without interfering with the core NetBox installation. And because they're written from scratch, a custom script can be used to accomplish just about anything.
## Writing Custom Scripts
All custom scripts must inherit from the `extras.scripts.Script` base class. This class provides the functionality necessary to generate forms and log activity.
```
from extras.scripts import Script
class MyScript(Script):
..
```
Scripts comprise two core components: variables and a `run()` method. Variables allow your script to accept user input via the NetBox UI. The `run()` method is where your script's execution logic lives. (Note that your script can have as many methods as needed: this is merely the point of invocation for NetBox.)
```
class MyScript(Script):
var1 = StringVar(...)
var2 = IntegerVar(...)
var3 = ObjectVar(...)
def run(self, data, commit):
...
```
The `run()` method should accept two arguments:
* `data` - A dictionary containing all of the variable data passed via the web form.
* `commit` - A boolean indicating whether database changes will be committed.
!!! note
The `commit` argument was introduced in NetBox v2.7.8. Backward compatibility is maintained for scripts which accept only the `data` argument, however moving forward scripts should accept both arguments.
Defining variables is optional: You may create a script with only a `run()` method if no user input is needed.
Returning output from your script is optional. Any raw output generated by the script will be displayed under the "output" tab in the UI.
## Module Attributes
### `name`
You can define `name` within a script module (the Python file which contains one or more scripts) to set the module name. If `name` is not defined, the filename will be used.
## Script Attributes
Script attributes are defined under a class named `Meta` within the script. These are optional, but encouraged.
### `name`
This is the human-friendly names of your script. If omitted, the class name will be used.
### `description`
A human-friendly description of what your script does.
### `field_order`
A list of field names indicating the order in which the form fields should appear. This is optional, and should not be required on Python 3.6 and above. For example:
```
field_order = ['var1', 'var2', 'var3']
```
### `commit_default`
The checkbox to commit database changes when executing a script is checked by default. Set `commit_default` to False under the script's Meta class to leave this option unchecked by default.
```
commit_default = False
```
## Accessing Request Data
Details of the current HTTP request (the one being made to execute the script) are available as the instance attribute `self.request`. This can be used to infer, for example, the user executing the script and the client IP address:
```python
username = self.request.user.username
ip_address = self.request.META.get('HTTP_X_FORWARDED_FOR') or self.request.META.get('REMOTE_ADDR')
self.log_info("Running as user {} (IP: {})...".format(username, ip_address))
```
For a complete list of available request parameters, please see the [Django documentation](https://docs.djangoproject.com/en/stable/ref/request-response/).
## Reading Data from Files
The Script class provides two convenience methods for reading data from files:
* `load_yaml`
* `load_json`
These two methods will load data in YAML or JSON format, respectively, from files within the local path (i.e. `SCRIPTS_ROOT`).
## Logging
The Script object provides a set of convenient functions for recording messages at different severity levels:
* `log_debug`
* `log_success`
* `log_info`
* `log_warning`
* `log_failure`
Log messages are returned to the user upon execution of the script. Markdown rendering is supported for log messages.
## Variable Reference
### StringVar
Stores a string of characters (i.e. a line of text). Options include:
* `min_length` - Minimum number of characters
* `max_length` - Maximum number of characters
* `regex` - A regular expression against which the provided value must match
Note: `min_length` and `max_length` can be set to the same number to effect a fixed-length field.
### TextVar
Arbitrary text of any length. Renders as multi-line text input field.
### IntegerVar
Stored a numeric integer. Options include:
* `min_value` - Minimum value
* `max_value` - Maximum value
### BooleanVar
A true/false flag. This field has no options beyond the defaults.
### ChoiceVar
A set of choices from which the user can select one.
* `choices` - A list of `(value, label)` tuples representing the available choices. For example:
```python
CHOICES = (
('n', 'North'),
('s', 'South'),
('e', 'East'),
('w', 'West')
)
direction = ChoiceVar(choices=CHOICES)
```
### ObjectVar
A NetBox object. The list of available objects is defined by the queryset parameter. Each instance of this variable is limited to a single object type.
* `queryset` - A [Django queryset](https://docs.djangoproject.com/en/stable/topics/db/queries/)
### FileVar
An uploaded file. Note that uploaded files are present in memory only for the duration of the script's execution: They will not be save for future use.
### IPAddressVar
An IPv4 or IPv6 address, without a mask. Returns a `netaddr.IPAddress` object.
### IPAddressWithMaskVar
An IPv4 or IPv6 address with a mask. Returns a `netaddr.IPNetwork` object which includes the mask.
### IPNetworkVar
An IPv4 or IPv6 network with a mask. Returns a `netaddr.IPNetwork` object. Two attributes are available to validate the provided mask:
* `min_prefix_length` - Minimum length of the mask (default: none)
* `max_prefix_length` - Maximum length of the mask (default: none)
### Default Options
All variables support the following default options:
* `default` - The field's default value
* `description` - A brief description of the field
* `label` - The name of the form field
* `required` - Indicates whether the field is mandatory (default: true)
* `widget` - The class of form widget to use (see the [Django documentation](https://docs.djangoproject.com/en/stable/ref/forms/widgets/))
## Example
Below is an example script that creates new objects for a planned site. The user is prompted for three variables:
* The name of the new site
* The device model (a filtered list of defined device types)
* The number of access switches to create
These variables are presented as a web form to be completed by the user. Once submitted, the script's `run()` method is called to create the appropriate objects.
```
from django.utils.text import slugify
from dcim.choices import DeviceStatusChoices, SiteStatusChoices
from dcim.models import Device, DeviceRole, DeviceType, Site
from extras.scripts import *
class NewBranchScript(Script):
class Meta:
name = "New Branch"
description = "Provision a new branch site"
field_order = ['site_name', 'switch_count', 'switch_model']
site_name = StringVar(
description="Name of the new site"
)
switch_count = IntegerVar(
description="Number of access switches to create"
)
switch_model = ObjectVar(
description="Access switch model",
queryset = DeviceType.objects.filter(
manufacturer__name='Cisco',
model__in=['Catalyst 3560X-48T', 'Catalyst 3750X-48T']
)
)
def run(self, data, commit):
# Create the new site
site = Site(
name=data['site_name'],
slug=slugify(data['site_name']),
status=SiteStatusChoices.STATUS_PLANNED
)
site.save()
self.log_success("Created new site: {}".format(site))
# Create access switches
switch_role = DeviceRole.objects.get(name='Access Switch')
for i in range(1, data['switch_count'] + 1):
switch = Device(
device_type=data['switch_model'],
name='{}-switch{}'.format(site.slug, i),
site=site,
status=DeviceStatusChoices.STATUS_PLANNED,
device_role=switch_role
)
switch.save()
self.log_success("Created new switch: {}".format(switch))
# Generate a CSV table of new devices
output = [
'name,make,model'
]
for switch in Device.objects.filter(site=site):
attrs = [
switch.name,
switch.device_type.manufacturer.name,
switch.device_type.model
]
output.append(','.join(attrs))
return '\n'.join(output)
```

View File

@@ -0,0 +1,52 @@
# Export Templates
NetBox allows users to define custom templates that can be used when exporting objects. To create an export template, navigate to Extras > Export Templates under the admin interface.
Each export template is associated with a certain type of object. For instance, if you create an export template for VLANs, your custom template will appear under the "Export" button on the VLANs list.
Export templates are written in [Django's template language](https://docs.djangoproject.com/en/stable/ref/templates/language/), which is very similar to Jinja2. The list of objects returned from the database is stored in the `queryset` variable, which you'll typically want to iterate through using a `for` loop. Object properties can be access by name. For example:
```
{% for rack in queryset %}
Rack: {{ rack.name }}
Site: {{ rack.site.name }}
Height: {{ rack.u_height }}U
{% endfor %}
```
To access custom fields of an object within a template, use the `cf` attribute. For example, `{{ obj.cf.color }}` will return the value (if any) for a custom field named `color` on `obj`.
A MIME type and file extension can optionally be defined for each export template. The default MIME type is `text/plain`.
## Example
Here's an example device export template that will generate a simple Nagios configuration from a list of devices.
```
{% for device in queryset %}{% if device.status and device.primary_ip %}define host{
use generic-switch
host_name {{ device.name }}
address {{ device.primary_ip.address.ip }}
}
{% endif %}{% endfor %}
```
The generated output will look something like this:
```
define host{
use generic-switch
host_name switch1
address 192.0.2.1
}
define host{
use generic-switch
host_name switch2
address 192.0.2.2
}
define host{
use generic-switch
host_name switch3
address 192.0.2.3
}
```

View File

@@ -0,0 +1,30 @@
# Graphs
NetBox does not have the ability to generate graphs natively, but this feature allows you to embed contextual graphs from an external resources (such as a monitoring system) inside the site, provider, and interface views. Each embedded graph must be defined with the following parameters:
* **Type:** Site, device, provider, or interface. This determines in which view the graph will be displayed.
* **Weight:** Determines the order in which graphs are displayed (lower weights are displayed first). Graphs with equal weights will be ordered alphabetically by name.
* **Name:** The title to display above the graph.
* **Source URL:** The source of the image to be embedded. The associated object will be available as a template variable named `obj`.
* **Link URL (optional):** A URL to which the graph will be linked. The associated object will be available as a template variable named `obj`.
Graph names and links can be rendered using the Django or Jinja2 template languages.
!!! warning
Support for the Django templating language will be removed in NetBox v2.8. Jinja2 is recommended.
## Examples
You only need to define one graph object for each graph you want to include when viewing an object. For example, if you want to include a graph of traffic through an interface over the past five minutes, your graph source might looks like this:
```
https://my.nms.local/graphs/?node={{ obj.device.name }}&interface={{ obj.name }}&duration=5m
```
You can define several graphs to provide multiple contexts when viewing an object. For example:
```
https://my.nms.local/graphs/?type=throughput&node={{ obj.device.name }}&interface={{ obj.name }}&duration=60m
https://my.nms.local/graphs/?type=throughput&node={{ obj.device.name }}&interface={{ obj.name }}&duration=24h
https://my.nms.local/graphs/?type=errors&node={{ obj.device.name }}&interface={{ obj.name }}&duration=60m
```

View File

@@ -0,0 +1,65 @@
# NAPALM
NetBox supports integration with the [NAPALM automation](https://napalm-automation.net/) library. NAPALM allows NetBox to fetch live data from devices and return it to a requester via its REST API.
!!! info
To enable the integration, the NAPALM library must be installed. See [installation steps](../../installation/3-netbox/#napalm-automation-optional) for more information.
```
GET /api/dcim/devices/1/napalm/?method=get_environment
{
"get_environment": {
...
}
}
```
## Authentication
By default, the [`NAPALM_USERNAME`](../../configuration/optional-settings/#napalm_username) and [`NAPALM_PASSWORD`](../../configuration/optional-settings/#napalm_password) are used for NAPALM authentication. They can be overridden for an individual API call through the `X-NAPALM-Username` and `X-NAPALM-Password` headers.
```
$ curl "http://localhost/api/dcim/devices/1/napalm/?method=get_environment" \
-H "Authorization: Token f4b378553dacfcfd44c5a0b9ae49b57e29c552b5" \
-H "Content-Type: application/json" \
-H "Accept: application/json; indent=4" \
-H "X-NAPALM-Username: foo" \
-H "X-NAPALM-Password: bar"
```
## Method Support
The list of supported NAPALM methods depends on the [NAPALM driver](https://napalm.readthedocs.io/en/latest/support/index.html#general-support-matrix) configured for the platform of a device. NetBox only supports [get](https://napalm.readthedocs.io/en/latest/support/index.html#getters-support-matrix) methods.
## Multiple Methods
More than one method in an API call can be invoked by adding multiple `method` parameters. For example:
```
GET /api/dcim/devices/1/napalm/?method=get_ntp_servers&method=get_ntp_peers
{
"get_ntp_servers": {
...
},
"get_ntp_peers": {
...
}
}
```
## Optional Arguments
The behavior of NAPALM drivers can be adjusted according to the [optional arguments](https://napalm.readthedocs.io/en/latest/support/index.html#optional-arguments). NetBox exposes those arguments using headers prefixed with `X-NAPALM-`.
For instance, the SSH port is changed to 2222 in this API call:
```
$ curl "http://localhost/api/dcim/devices/1/napalm/?method=get_environment" \
-H "Authorization: Token f4b378553dacfcfd44c5a0b9ae49b57e29c552b5" \
-H "Content-Type: application/json" \
-H "Accept: application/json; indent=4" \
-H "X-NAPALM-port: 2222"
```

View File

@@ -0,0 +1,34 @@
# Prometheus Metrics
NetBox supports optionally exposing native Prometheus metrics from the application. [Prometheus](https://prometheus.io/) is a popular time series metric platform used for monitoring.
NetBox exposes metrics at the `/metrics` HTTP endpoint, e.g. `https://netbox.local/metrics`. Metric exposition can be toggled with the `METRICS_ENABLED` configuration setting. Metrics are not exposed by default.
## Metric Types
NetBox makes use of the [django-prometheus](https://github.com/korfuri/django-prometheus) library to export a number of different types of metrics, including:
- Per model insert, update, and delete counters
- Per view request counters
- Per view request latency histograms
- Request body size histograms
- Response body size histograms
- Response code counters
- Database connection, execution, and error counters
- Cache hit, miss, and invalidation counters
- Django middleware latency histograms
- Other Django related metadata metrics
For the exhaustive list of exposed metrics, visit the `/metrics` endpoint on your NetBox instance.
## Multi Processing Notes
When deploying NetBox in a multiprocess mannor--such as using Gunicorn as recomented in the installation docs--the Prometheus client library requires the use of a shared directory
to collect metrics from all the worker processes. This can be any arbitrary directory to which the processes have read/write access. This directory is then made available by use of the
`prometheus_multiproc_dir` environment variable.
This can be setup by first creating a shared directory and then adding this line (with the appropriate directory) to the `[program:netbox]` section of the supervisor config file.
```
environment=prometheus_multiproc_dir=/tmp/prometheus_metrics
```

View File

@@ -12,7 +12,7 @@ A NetBox report is a mechanism for validating the integrity of data within NetBo
## Writing Reports
Reports must be saved as files in the [`REPORTS_ROOT`](../configuration/optional-settings/#reports_root) path (which defaults to `netbox/reports/`). Each file created within this path is considered a separate module. Each module holds one or more reports (Python classes), each of which performs a certain function. The logic of each report is broken into discrete test methods, each of which applies a small portion of the logic comprising the overall test.
Reports must be saved as files in the [`REPORTS_ROOT`](../../configuration/optional-settings/#reports_root) path (which defaults to `netbox/reports/`). Each file created within this path is considered a separate module. Each module holds one or more reports (Python classes), each of which performs a certain function. The logic of each report is broken into discrete test methods, each of which applies a small portion of the logic comprising the overall test.
!!! warning
The reports path includes a file named `__init__.py`, which registers the path as a Python module. Do not delete this file.
@@ -32,7 +32,8 @@ class DeviceIPsReport(Report):
Within each report class, we'll create a number of test methods to execute our report's logic. In DeviceConnectionsReport, for instance, we want to ensure that every live device has a console connection, an out-of-band management connection, and two power connections.
```
from dcim.constants import CONNECTION_STATUS_PLANNED, STATUS_ACTIVE
from dcim.choices import DeviceStatusChoices
from dcim.constants import CONNECTION_STATUS_PLANNED
from dcim.models import ConsolePort, Device, PowerPort
from extras.reports import Report
@@ -43,8 +44,9 @@ class DeviceConnectionsReport(Report):
def test_console_connection(self):
# Check that every console port for every active device has a connection defined.
for console_port in ConsolePort.objects.select_related('device').filter(device__status=STATUS_ACTIVE):
if console_port.cs_port is None:
active = DeviceStatusChoices.STATUS_ACTIVE
for console_port in ConsolePort.objects.prefetch_related('device').filter(device__status=active):
if console_port.connected_endpoint is None:
self.log_failure(
console_port.device,
"No console connection defined for {}".format(console_port.name)
@@ -60,10 +62,10 @@ class DeviceConnectionsReport(Report):
def test_power_connections(self):
# Check that every active device has at least two connected power supplies.
for device in Device.objects.filter(status=STATUS_ACTIVE):
for device in Device.objects.filter(status=DeviceStatusChoices.STATUS_ACTIVE):
connected_ports = 0
for power_port in PowerPort.objects.filter(device=device):
if power_port.power_outlet is not None:
if power_port.connected_endpoint is not None:
connected_ports += 1
if power_port.connection_status == CONNECTION_STATUS_PLANNED:
self.log_warning(
@@ -94,6 +96,8 @@ The following methods are available to log results within a report:
The recording of one or more failure messages will automatically flag a report as failed. It is advised to log a success for each object that is evaluated so that the results will reflect how many objects are being reported on. (The inclusion of a log message is optional for successes.) Messages recorded with `log()` will appear in a report's results but are not associated with a particular object or status.
To perform additional tasks, such as sending an email or calling a webhook, after a report has been run, extend the `post_run()` method. The status of the report is available as `self.failed` and the results object is `self.result`.
Once you have created a report, it will appear in the reports list. Initially, reports will have no results associated with them. To generate results, run the report.
## Running Reports
@@ -126,4 +130,4 @@ Reports can be run on the CLI by invoking the management command:
python3 manage.py runreport <module>
```
One or more report modules may be specified.
where ``<module>`` is the name of the python file in the ``reports`` directory without the ``.py`` extension. One or more report modules may be specified.

View File

@@ -0,0 +1,3 @@
# Tagging
{!docs/models/extras/tag.md!}

View File

@@ -0,0 +1,106 @@
# Webhooks
A webhook is a mechanism for conveying to some external system a change that took place in NetBox. For example, you may want to notify a monitoring system whenever a device status is changed in NetBox. This can be done by creating a webhook for the device model in NetBox. When NetBox detects a change to a device, an HTTP request containing the details of the change and who made it be sent to the specified receiver. Webhooks are configured in the admin UI under Extras > Webhooks.
## Configuration
* **Name** - A unique name for the webhook. The name is not included with outbound messages.
* **Object type(s)** - The type or types of NetBox object that will trigger the webhook.
* **Enabled** - If unchecked, the webhook will be inactive.
* **Events** - A webhook may trigger on any combination of create, update, and delete events. At least one event type must be selected.
* **HTTP method** - The type of HTTP request to send. Options include GET, POST, PUT, PATCH, and DELETE.
* **URL** - The fuly-qualified URL of the request to be sent. This may specify a destination port number if needed.
* **HTTP content type** - The value of the request's `Content-Type` header. (Defaults to `application/json`)
* **Additional headers** - Any additional headers to include with the request (optional). Add one header per line in the format `Name: Value`. Jinja2 templating is supported for this field (see below).
* **Body template** - The content of the request being sent (optional). Jinja2 templating is supported for this field (see below). If blank, NetBox will populate the request body with a raw dump of the webhook context. (If the HTTP cotent type is set to `application/json`, this will be formatted as a JSON object.)
* **Secret** - A secret string used to prove authenticity of the request (optional). This will append a `X-Hook-Signature` header to the request, consisting of a HMAC (SHA-512) hex digest of the request body using the secret as the key.
* **SSL verification** - Uncheck this option to disable validation of the receiver's SSL certificate. (Disable with caution!)
* **CA file path** - The file path to a particular certificate authority (CA) file to use when validating the receiver's SSL certificate (optional).
## Jinja2 Template Support
[Jinja2 templating](https://jinja.palletsprojects.com/) is supported for the `additional_headers` and `body_template` fields. This enables the user to convey change data in the request headers as well as to craft a customized request body. Request content can be crafted to enable the direct interaction with external systems by ensuring the outgoing message is in a format the receiver expects and understands.
For example, you might create a NetBox webhook to [trigger a Slack message](https://api.slack.com/messaging/webhooks) any time an IP address is created. You can accomplish this using the following configuration:
* Object type: IPAM > IP address
* HTTP method: POST
* URL: <Slack incoming webhook URL>
* HTTP content type: `application/json`
* Body template: `{"text": "IP address {{ data['address'] }} was created by {{ username }}!"}`
### Available Context
The following data is available as context for Jinja2 templates:
* `event` - The type of event which triggered the webhook: created, updated, or deleted.
* `model` - The NetBox model which triggered the change.
* `timestamp` - The time at which the event occurred (in [ISO 8601](https://en.wikipedia.org/wiki/ISO_8601) format).
* `username` - The name of the user account associated with the change.
* `request_id` - The unique request ID. This may be used to correlate multiple changes associated with a single request.
* `data` - A serialized representation of the object _after_ the change was made. This is typically equivalent to the model's representation in NetBox's REST API.
### Default Request Body
If no body template is specified, the request body will be populated with a JSON object containing the context data. For example, a newly created site might appear as follows:
```no-highlight
{
"event": "created",
"timestamp": "2020-02-25 15:10:26.010582+00:00",
"model": "site",
"username": "jstretch",
"request_id": "fdbca812-3142-4783-b364-2e2bd5c16c6a",
"data": {
"id": 19,
"name": "Site 1",
"slug": "site-1",
"status":
"value": "active",
"label": "Active",
"id": 1
},
"region": null,
...
}
}
```
## Webhook Processing
When a change is detected, any resulting webhooks are placed into a Redis queue for processing. This allows the user's request to complete without needing to wait for the outgoing webhook(s) to be processed. The webhooks are then extracted from the queue by the `rqworker` process and HTTP requests are sent to their respective destinations. The current webhook queue and any failed webhooks can be inspected in the admin UI under Django RQ > Queues.
A request is considered successful if the response has a 2XX status code; otherwise, the request is marked as having failed. Failed requests may be retried manually via the admin UI.
## Troubleshooting
To assist with verifying that the content of outgoing webhooks is rendered correctly, NetBox provides a simple HTTP listener that can be run locally to receive and display webhook requests. First, modify the target URL of the desired webhook to `http://localhost:9000/`. This will instruct NetBox to send the request to the local server on TCP port 9000. Then, start the webhook receiver service from the NetBox root directory:
```no-highlight
$ python netbox/manage.py webhook_receiver
Listening on port http://localhost:9000. Stop with CONTROL-C.
```
You can test the receiver itself by sending any HTTP request to it. For example:
```no-highlight
$ curl -X POST http://localhost:9000 --data '{"foo": "bar"}'
```
The server will print output similar to the following:
```no-highlight
[1] Tue, 07 Apr 2020 17:44:02 GMT 127.0.0.1 "POST / HTTP/1.1" 200 -
Host: localhost:9000
User-Agent: curl/7.58.0
Accept: */*
Content-Length: 14
Content-Type: application/x-www-form-urlencoded
{"foo": "bar"}
------------
```
Note that `webhook_receiver` does not actually _do_ anything with the information received: It merely prints the request headers and body for inspection.
Now, when the NetBox webhook is triggered and processed, you should see its headers and content appear in the terminal where the webhook receiver is listening. If you don't, check that the `rqworker` process is running and that webhook events are being placed into the queue (visible under the NetBox admin UI).

View File

@@ -1,15 +1,17 @@
NetBox includes a Python shell withing which objects can be directly queried, created, modified, and deleted. To enter the shell, run the following command:
# The NetBox Python Shell
NetBox includes a Python shell within which objects can be directly queried, created, modified, and deleted. To enter the shell, run the following command:
```
./manage.py nbshell
```
This will launch a customized version of [the built-in Django shell](https://docs.djangoproject.com/en/dev/ref/django-admin/#shell) with all relevant NetBox models pre-loaded. (If desired, the stock Django shell is also available by executing `./manage.py shell`.)
This will launch a customized version of [the built-in Django shell](https://docs.djangoproject.com/en/stable/ref/django-admin/#shell) with all relevant NetBox models pre-loaded. (If desired, the stock Django shell is also available by executing `./manage.py shell`.)
```
$ ./manage.py nbshell
### NetBox interactive shell (jstretch-laptop)
### Python 2.7.6 | Django 1.11.3 | NetBox 2.1.0-dev
### NetBox interactive shell (localhost)
### Python 3.6.9 | Django 2.2.11 | NetBox 2.7.10
### lsmodels() will show available models. Use help(<model>) for more info.
```
@@ -28,7 +30,7 @@ DCIM:
## Querying Objects
Objects are retrieved by forming a [Django queryset](https://docs.djangoproject.com/en/dev/topics/db/queries/#retrieving-objects). The base queryset for an object takes the form `<model>.objects.all()`, which will return a (truncated) list of all objects of that type.
Objects are retrieved by forming a [Django queryset](https://docs.djangoproject.com/en/stable/topics/db/queries/#retrieving-objects). The base queryset for an object takes the form `<model>.objects.all()`, which will return a (truncated) list of all objects of that type.
```
>>> Device.objects.all()
@@ -86,7 +88,7 @@ The `count()` method can be appended to the queryset to return a count of object
982
```
Relationships with other models can be traversed by concatenting field names with a double-underscore. For example, the following will return all devices assigned to the tenant named "Pied Piper."
Relationships with other models can be traversed by concatenating field names with a double-underscore. For example, the following will return all devices assigned to the tenant named "Pied Piper."
```
>>> Device.objects.filter(tenant__name='Pied Piper')
@@ -99,7 +101,7 @@ This approach can span multiple levels of relations. For example, the following
```
!!! note
While the above query is functional, it is very inefficient. There are ways to optimize such requests, however they are out of the scope of this document. For more information, see the [Django queryset method reference](https://docs.djangoproject.com/en/dev/ref/models/querysets/) documentation.
While the above query is functional, it is very inefficient. There are ways to optimize such requests, however they are out of the scope of this document. For more information, see the [Django queryset method reference](https://docs.djangoproject.com/en/stable/ref/models/querysets/) documentation.
Reverse relationships can be traversed as well. For example, the following will find all devices with an interface named "em0":
@@ -137,7 +139,7 @@ To return the inverse of a filtered queryset, use `exclude()` instead of `filter
```
!!! info
The examples above are intended only to provide a cursory introduction to queryset filtering. For an exhaustive list of the available filters, please consult the [Django queryset API docs](https://docs.djangoproject.com/en/dev/ref/models/querysets/).
The examples above are intended only to provide a cursory introduction to queryset filtering. For an exhaustive list of the available filters, please consult the [Django queryset API docs](https://docs.djangoproject.com/en/stable/ref/models/querysets/).
## Creating and Updating Objects

View File

@@ -0,0 +1,70 @@
# Replicating NetBox
## Replicating the Database
NetBox uses [PostgreSQL](https://www.postgresql.org/) for its database, so general PostgreSQL best practices will apply to NetBox. You can dump and restore the database using the `pg_dump` and `psql` utilities, respectively.
!!! note
The examples below assume that your database is named `netbox`.
### Export the Database
Use the `pg_dump` utility to export the entire database to a file:
```no-highlight
pg_dump netbox > netbox.sql
```
When replicating a production database for development purposes, you may find it convenient to exclude changelog data, which can easily account for the bulk of a database's size. To do this, exclude the `extras_objectchange` table data from the export. The table will still be included in the output file, but will not be populated with any data.
```no-highlight
pg_dump --exclude-table-data=extras_objectchange netbox > netbox.sql
```
### Load an Exported Database
!!! warning
This will destroy and replace any existing instance of the database.
```no-highlight
psql -c 'drop database netbox'
psql -c 'create database netbox'
psql netbox < netbox.sql
```
Keep in mind that PostgreSQL user accounts and permissions are not included with the dump: You will need to create those manually if you want to fully replicate the original database (see the [installation docs](../installation/1-postgresql.md)). When setting up a development instance of NetBox, it's strongly recommended to use different credentials anyway.
### Export the Database Schema
If you want to export only the database schema, and not the data itself (e.g. for development reference), do the following:
```no-highlight
pg_dump -s netbox > netbox_schema.sql
```
If you are migrating your instance of NetBox to a different machine, please make sure you invalidate the cache by performing this command:
```no-highlight
python3 manage.py invalidate all
```
---
## Replicating Media
NetBox stored uploaded files (such as image attachments) in its media directory. To fully replicate an instance of NetBox, you'll need to copy both the database and the media files.
### Archive the Media Directory
Execute the following command from the root of the NetBox installation path (typically `/opt/netbox`):
```no-highlight
tar -czf netbox_media.tar.gz netbox/media/
```
### Restore the Media Directory
To extract the saved archive into a new installation, run the following from the installation root:
```no-highlight
tar -xf netbox_media.tar.gz
```

View File

@@ -1,16 +1,21 @@
# REST API Authentication
The NetBox API employs token-based authentication. For convenience, cookie authentication can also be used when navigating the browsable API.
# Tokens
## Tokens
A token is a unique identifier that identifies a user to the API. Each user in NetBox may have one or more tokens which he or she can use to authenticate to the API. To create a token, navigate to the API tokens page at `/user/api-tokens/`.
!!! note
The creation and modification of API tokens can be restricted per user by an administrator. If you don't see an option to create an API token, ask an administrator to grant you access.
Each token contains a 160-bit key represented as 40 hexadecimal characters. When creating a token, you'll typically leave the key field blank so that a random key will be automatically generated. However, NetBox allows you to specify a key in case you need to restore a previously deleted token to operation.
By default, a token can be used for all operations available via the API. Deselecting the "write enabled" option will restrict API requests made with the token to read operations (e.g. GET) only.
Additionally, a token can be set to expire at a specific time. This can be useful if an external client needs to be granted temporary access to NetBox.
# Authenticating to the API
## Authenticating to the API
By default, read operations will be available without authentication. In this case, a token may be included in the request, but is not necessary.
@@ -24,7 +29,7 @@ $ curl -H "Accept: application/json; indent=4" http://localhost/api/dcim/sites/
}
```
However, if the [`LOGIN_REQUIRED`](../configuration/optional-settings/#login_required) configuration setting has been set to `True`, all requests must be authenticated.
However, if the [`LOGIN_REQUIRED`](../../configuration/optional-settings/#login_required) configuration setting has been set to `True`, all requests must be authenticated.
```
$ curl -H "Accept: application/json; indent=4" http://localhost/api/dcim/sites/

View File

@@ -5,7 +5,7 @@ Supported HTTP methods:
* `GET`: Retrieve an object or list of objects
* `POST`: Create a new object
* `PUT`: Update an existing object, all mandatory fields must be specified
* `PATCH`: Updates an existing object, only specifiying the field to be changed
* `PATCH`: Updates an existing object, only specifying the field to be changed
* `DELETE`: Delete an existing object
To authenticate a request, attach your token in an `Authorization` header:
@@ -14,7 +14,7 @@ To authenticate a request, attach your token in an `Authorization` header:
curl -H "Authorization: Token d2f763479f703d80de0ec15254237bc651f9cdc0"
```
### Retrieving a list of sites
## Retrieving a list of sites
Send a `GET` request to the object list endpoint. The response contains a paginated list of JSON objects.
@@ -51,7 +51,7 @@ $ curl -H "Accept: application/json; indent=4" http://localhost/api/dcim/sites/
}
```
### Retrieving a single site by ID
## Retrieving a single site by ID
Send a `GET` request to the object detail endpoint. The response contains a single JSON object.
@@ -80,17 +80,17 @@ $ curl -H "Accept: application/json; indent=4" http://localhost/api/dcim/sites/6
}
```
### Creating a new site
## Creating a new site
Send a `POST` request to the site list endpoint with token authentication and JSON-formatted data. Only mandatory fields are required.
Send a `POST` request to the site list endpoint with token authentication and JSON-formatted data. Only mandatory fields are required. This example includes one non required field, "region."
```
$ curl -X POST -H "Authorization: Token d2f763479f703d80de0ec15254237bc651f9cdc0" -H "Content-Type: application/json" -H "Accept: application/json; indent=4" http://localhost:8000/api/dcim/sites/ --data '{"name": "My New Site", "slug": "my-new-site"}'
$ curl -X POST -H "Authorization: Token d2f763479f703d80de0ec15254237bc651f9cdc0" -H "Content-Type: application/json" -H "Accept: application/json; indent=4" http://localhost:8000/api/dcim/sites/ --data '{"name": "My New Site", "slug": "my-new-site", "region": 5}'
{
"id": 16,
"name": "My New Site",
"slug": "my-new-site",
"region": null,
"region": 5,
"tenant": null,
"facility": "",
"asn": null,
@@ -102,8 +102,9 @@ $ curl -X POST -H "Authorization: Token d2f763479f703d80de0ec15254237bc651f9cdc0
"comments": ""
}
```
Note that in this example we are creating a site bound to a region with the ID of 5. For write API actions (`POST`, `PUT`, and `PATCH`) the integer ID value is used for `ForeignKey` (related model) relationships, instead of the nested representation that is used in the `GET` (list) action.
### Modify an existing site
## Modify an existing site
Make an authenticated `PUT` request to the site detail endpoint. As with a create (`POST`) request, all mandatory fields must be included.
@@ -111,19 +112,19 @@ Make an authenticated `PUT` request to the site detail endpoint. As with a creat
$ curl -X PUT -H "Authorization: Token d2f763479f703d80de0ec15254237bc651f9cdc0" -H "Content-Type: application/json" -H "Accept: application/json; indent=4" http://localhost:8000/api/dcim/sites/16/ --data '{"name": "Renamed Site", "slug": "renamed-site"}'
```
### Modify an object by changing a field
## Modify an object by changing a field
Make an authenticated `PATCH` request to the device endpoint. With `PATCH`, unlike `POST` and `PUT`, we only specify the field that is being changed. In this example, we add a serial number to a device.
```
$ curl -X PATCH -H "Authorization: Token d2f763479f703d80de0ec15254237bc651f9cdc0" -H "Content-Type: application/json" -H "Accept: application/json; indent=4" http://localhost:8000/api/dcim/devices/2549/ --data '{"serial": "FTX1123A090"}'
```
### Delete an existing site
## Delete an existing site
Send an authenticated `DELETE` request to the site detail endpoint.
```
$ curl -v X DELETE -H "Authorization: Token d2f763479f703d80de0ec15254237bc651f9cdc0" -H "Content-Type: application/json" -H "Accept: application/json; indent=4" http://localhost:8000/api/dcim/sites/16/
$ curl -v -X DELETE -H "Authorization: Token d2f763479f703d80de0ec15254237bc651f9cdc0" -H "Content-Type: application/json" -H "Accept: application/json; indent=4" http://localhost:8000/api/dcim/sites/16/
* Connected to localhost (127.0.0.1) port 8000 (#0)
> DELETE /api/dcim/sites/16/ HTTP/1.1
> User-Agent: curl/7.35.0
@@ -143,4 +144,4 @@ $ curl -v X DELETE -H "Authorization: Token d2f763479f703d80de0ec15254237bc651f9
* Closing connection 0
```
The response to a successfull `DELETE` request will have code 204 (No Content); the body of the response will be empty.
The response to a successful `DELETE` request will have code 204 (No Content); the body of the response will be empty.

71
docs/api/filtering.md Normal file
View File

@@ -0,0 +1,71 @@
# API Filtering
The NetBox API supports robust filtering of results based on the fields of each model.
Generally speaking you are able to filter based on the attributes (fields) present in
the response body. Please note however that certain read-only or metadata fields are not
filterable.
Filtering is achieved by passing HTTP query parameters and the parameter name is the
name of the field you wish to filter on and the value is the field value.
E.g. filtering based on a device's name:
```
/api/dcim/devices/?name=DC-SPINE-1
```
## Multi Value Logic
While you are able to filter based on an arbitrary number of fields, you are also able to
pass multiple values for the same field. In most cases filtering on multiple values is
implemented as a logical OR operation. A notible exception is the `tag` filter which
is a logical AND. Passing multiple values for one field, can be combined with other fields.
For example, filtering for devices with either the name of DC-SPINE-1 _or_ DC-LEAF-4:
```
/api/dcim/devices/?name=DC-SPINE-1&name=DC-LEAF-4
```
Filtering for devices with tag `router` and `customer-a` will return only devices with
_both_ of those tags applied:
```
/api/dcim/devices/?tag=router&tag=customer-a
```
## Lookup Expressions
Certain model fields also support filtering using additonal lookup expressions. This allows
for negation and other context specific filtering.
These lookup expressions can be applied by adding a suffix to the desired field's name.
E.g. `mac_address__n`. In this case, the filter expression is for negation and it is seperated
by two underscores. Below are the lookup expressions that are supported across different field
types.
### Numeric Fields
Numeric based fields (ASN, VLAN ID, etc) support these lookup expressions:
- `n` - not equal (negation)
- `lt` - less than
- `lte` - less than or equal
- `gt` - greater than
- `gte` - greater than or equal
### String Fields
String based (char) fields (Name, Address, etc) support these lookup expressions:
- `n` - not equal (negation)
- `ic` - case insensitive contains
- `nic` - negated case insensitive contains
- `isw` - case insensitive starts with
- `nisw` - negated case insensitive starts with
- `iew` - case insensitive ends with
- `niew` - negated case insensitive ends with
- `ie` - case sensitive exact match
- `nie` - negated case sensitive exact match
### Foreign Keys & Other Fields
Certain other fields, namely foreign key relationships support just the negation
expression: `n`.

View File

@@ -1,6 +1,6 @@
NetBox v2.0 and later includes a full-featured REST API that allows its data model to be read and manipulated externally.
# The NetBox REST API
# What is a REST API?
## What is a REST API?
REST stands for [representational state transfer](https://en.wikipedia.org/wiki/Representational_state_transfer). It's a particular type of API which employs HTTP to create, retrieve, update, and delete objects from a database. (This set of operations is commonly referred to as CRUD.) Each type of operation is associated with a particular HTTP verb:
@@ -34,7 +34,11 @@ $ curl -s http://localhost:8000/api/ipam/ip-addresses/2954/ | jq '.'
Each attribute of the NetBox object is expressed as a field in the dictionary. Fields may include their own nested objects, as in the case of the `status` field above. Every object includes a primary key named `id` which uniquely identifies it in the database.
# URL Hierarchy
## Interactive Documentation
Comprehensive, interactive documentation of all API endpoints is available on a running NetBox instance at `/api/docs/`. This interface provides a convenient sandbox for researching and experimenting with NetBox's various API endpoints and different request types.
## URL Hierarchy
NetBox's entire API is housed under the API root at `https://<hostname>/api/`. The URL structure is divided at the root level by application: circuits, DCIM, extras, IPAM, secrets, and tenancy. Within each application, each model has its own path. For example, the provider and circuit objects are located under the "circuits" application:
@@ -60,7 +64,9 @@ Lists of objects can be filtered using a set of query parameters. For example, t
GET /api/dcim/interfaces/?device_id=123
```
# Serialization
See [filtering](filtering.md) for more details.
## Serialization
The NetBox API employs three types of serializers to represent model data:
@@ -104,56 +110,84 @@ The base serializer is used to represent the default view of a model. This inclu
}
```
Related objects (e.g. `ForeignKey` fields) are represented using a nested serializer. A nested serializer provides a minimal representation of an object, including only its URL and enough information to construct its name.
### Related Objects
When a base serializer includes one or more nested serializers, the hierarchical structure precludes it from being used for write operations. Thus, a flat representation of an object may be provided using a writable serializer. This serializer includes only raw database values and is not typically used for retrieval, except as part of the response to the creation or updating of an object.
Related objects (e.g. `ForeignKey` fields) are represented using a nested serializer. A nested serializer provides a minimal representation of an object, including only its URL and enough information to display the object to a user. When performing write API actions (`POST`, `PUT`, and `PATCH`), related objects may be specified by either numeric ID (primary key), or by a set of attributes sufficiently unique to return the desired object.
For example, when creating a new device, its rack can be specified by NetBox ID (PK):
```
{
"id": 1201,
"site": 7,
"group": 4,
"vid": 102,
"name": "Users-Floor2",
"tenant": null,
"status": 1,
"role": 9,
"description": ""
"name": "MyNewDevice",
"rack": 123,
...
}
```
## Static Choice Fields
Some model fields, such as the `status` field in the above example, utilize static integers corresponding to static choices. The available choices can be retrieved from the read-only `_choices` endpoint within each app. A specific `model:field` tuple may optionally be specified in the URL.
Each choice includes a human-friendly label and its corresponding numeric value. For example, `GET /api/ipam/_choices/prefix:status/` will return:
Or by a set of nested attributes used to identify the rack:
```
[
{
"value": 0,
"label": "Container"
{
"name": "MyNewDevice",
"rack": {
"site": {
"name": "Equinix DC6"
},
"name": "R204"
},
{
...
}
```
Note that if the provided parameters do not return exactly one object, a validation error is raised.
### Brief Format
Most API endpoints support an optional "brief" format, which returns only a minimal representation of each object in the response. This is useful when you need only a list of the objects themselves without any related data, such as when populating a drop-down list in a form.
For example, the default (complete) format of an IP address looks like this:
```
GET /api/ipam/prefixes/13980/
{
"id": 13980,
"family": 4,
"prefix": "192.0.2.0/24",
"site": null,
"vrf": null,
"tenant": null,
"vlan": null,
"status": {
"value": 1,
"label": "Active"
},
{
"value": 2,
"label": "Reserved"
},
{
"value": 3,
"label": "Deprecated"
}
]
"role": null,
"is_pool": false,
"description": "",
"tags": [],
"custom_fields": {},
"created": "2018-12-11",
"last_updated": "2018-12-11T16:27:55.073174-05:00"
}
```
Thus, to set a prefix's status to "Reserved," it would be assigned the integer `2`.
The brief format is much more terse, but includes a link to the object's full representation:
A request for `GET /api/ipam/_choices/` will return choices for _all_ fields belonging to models within the IPAM app.
```
GET /api/ipam/prefixes/13980/?brief=1
# Pagination
{
"id": 13980,
"url": "https://netbox/api/ipam/prefixes/13980/",
"family": 4,
"prefix": "192.0.2.0/24"
}
```
The brief format is supported for both lists and individual objects.
## Pagination
API responses which contain a list of objects (for example, a request to `/api/dcim/devices/`) will be paginated to avoid unnecessary overhead. The root JSON object will contain the following attributes:
@@ -185,7 +219,7 @@ Vary: Accept
}
```
The default page size derives from the [`PAGINATE_COUNT`](../configuration/optional-settings/#paginate_count) configuration setting, which defaults to 50. However, this can be overridden per request by specifying the desired `offset` and `limit` query parameters. For example, if you wish to retrieve a hundred devices at a time, you would make a request for:
The default page size derives from the [`PAGINATE_COUNT`](../../configuration/optional-settings/#paginate_count) configuration setting, which defaults to 50. However, this can be overridden per request by specifying the desired `offset` and `limit` query parameters. For example, if you wish to retrieve a hundred devices at a time, you would make a request for:
```
http://localhost:8000/api/dcim/devices/?limit=100
@@ -202,7 +236,56 @@ The response will return devices 1 through 100. The URL provided in the `next` a
}
```
The maximum number of objects that can be returned is limited by the [`MAX_PAGE_SIZE`](../configuration/optional-settings/#max_page_size) setting, which is 1000 by default. Setting this to `0` or `None` will remove the maximum limit. An API consumer can then pass `?limit=0` to retrieve _all_ matching objects with a single request.
The maximum number of objects that can be returned is limited by the [`MAX_PAGE_SIZE`](../../configuration/optional-settings/#max_page_size) setting, which is 1000 by default. Setting this to `0` or `None` will remove the maximum limit. An API consumer can then pass `?limit=0` to retrieve _all_ matching objects with a single request.
!!! warning
Disabling the page size limit introduces a potential for very resource-intensive requests, since one API request can effectively retrieve an entire table from the database.
## Filtering
A list of objects retrieved via the API can be filtered by passing one or more query parameters. The same parameters used by the web UI work for the API as well. For example, to return only prefixes with a status of "Active" (`1`):
```
GET /api/ipam/prefixes/?status=1
```
The choices available for fixed choice fields such as `status` can be retrieved by sending an `OPTIONS` API request for the desired endpoint:
```no-highlight
$ curl -s -X OPTIONS \
-H "Content-Type: application/json" \
-H "Accept: application/json; indent=4" \
http://localhost:8000/api/ipam/prefixes/ | jq ".actions.POST.status.choices"
[
{
"value": "container",
"display_name": "Container"
},
{
"value": "active",
"display_name": "Active"
},
{
"value": "reserved",
"display_name": "Reserved"
},
{
"value": "deprecated",
"display_name": "Deprecated"
}
]
```
For most fields, when a filter is passed multiple times, objects matching _any_ of the provided values will be returned. For example, `GET /api/dcim/sites/?name=Foo&name=Bar` will return all sites named "Foo" _or_ "Bar". The exception to this rule is ManyToManyFields which may have multiple values assigned. Tags are the most common example of a ManyToManyField. For example, `GET /api/dcim/sites/?tag=foo&tag=bar` will return only sites tagged with both "foo" _and_ "bar".
### Custom Fields
To filter on a custom field, prepend `cf_` to the field name. For example, the following query will return only sites where a custom field named `foo` is equal to 123:
```
GET /api/dcim/sites/?cf_foo=123
```
!!! note
Full versus partial matching when filtering is configurable per custom field. Filtering can be toggled (or disabled) for a custom field in the admin UI.

View File

@@ -1,8 +1,10 @@
# Working with Secrets
As with most other objects, the NetBox API can be used to create, modify, and delete secrets. However, additional steps are needed to encrypt or decrypt secret data.
# Generating a Session Key
## Generating a Session Key
In order to encrypt or decrypt secret data, a session key must be attached to the API request. To generate a session key, send an authenticated request to the `/api/secrets/get-session-key/` endpoint with the private RSA key which matches your [UserKey](../data-model/secrets/#user-keys). The private key must be POSTed with the name `private_key`.
In order to encrypt or decrypt secret data, a session key must be attached to the API request. To generate a session key, send an authenticated request to the `/api/secrets/get-session-key/` endpoint with the private RSA key which matches your [UserKey](../../core-functionality/secrets/#user-keys). The private key must be POSTed with the name `private_key`.
```
$ curl -X POST http://localhost:8000/api/secrets/get-session-key/ \
@@ -19,7 +21,7 @@ $ curl -X POST http://localhost:8000/api/secrets/get-session-key/ \
The request uses your private key to unlock your stored copy of the master key and generate a session key which can be attached in the `X-Session-Key` header of future API requests.
# Retrieving Secrets
## Retrieving Secrets
A session key is not needed to retrieve unencrypted secrets: The secret is returned like any normal object with its `plaintext` field set to null.
@@ -112,7 +114,7 @@ $ curl http://localhost:8000/api/secrets/secrets/?limit=3 \
}
```
# Creating Secrets
## Creating Secrets
Session keys are also used to decrypt new or modified secrets. This is done by setting the `plaintext` field of the submitted object:

View File

@@ -0,0 +1,18 @@
# NetBox Configuration
NetBox's local configuration is stored in `netbox/netbox/configuration.py`. An example configuration is provided at `netbox/netbox/configuration.example.py`. You may copy or rename the example configuration and make changes as appropriate. NetBox will not run without a configuration file.
While NetBox has many configuration settings, only a few of them must be defined at the time of installation.
## Configuration Parameters
* [Required settings](required-settings.md)
* [Optional settings](optional-settings.md)
## Changing the Configuration
Configuration settings may be changed at any time. However, the NetBox service must be restarted before the changes will take effect:
```no-highlight
# sudo supervisorctl restart netbox
```

View File

@@ -1,45 +0,0 @@
NetBox's local configuration is held in `netbox/netbox/configuration.py`. An example configuration is provided at `netbox/netbox/configuration.example.py`. You may copy or rename the example configuration and make changes as appropriate. NetBox will not run without a configuration file.
## ALLOWED_HOSTS
This is a list of valid fully-qualified domain names (FQDNs) that is used to reach the NetBox service. Usually this is the same as the hostname for the NetBox server, but can also be different (e.g. when using a reverse proxy serving the NetBox website under a different FQDN than the hostname of the NetBox server). NetBox will not permit access to the server via any other hostnames (or IPs). The value of this option is also used to set `CSRF_TRUSTED_ORIGINS`, which restricts `HTTP POST` to the same set of hosts (more about this [here](https://docs.djangoproject.com/en/1.9/ref/settings/#std:setting-CSRF_TRUSTED_ORIGINS)). Keep in mind that NetBox, by default, has `USE_X_FORWARDED_HOST = True` (in `netbox/netbox/settings.py`) which means that if you're using a reverse proxy, it's the FQDN used to reach that reverse proxy which needs to be in this list (more about this [here](https://docs.djangoproject.com/en/1.9/ref/settings/#allowed-hosts)).
Example:
```
ALLOWED_HOSTS = ['netbox.example.com', '192.0.2.123']
```
---
## DATABASE
NetBox requires access to a PostgreSQL database service to store data. This service can run locally or on a remote system. The following parameters must be defined within the `DATABASE` dictionary:
* NAME - Database name
* USER - PostgreSQL username
* PASSWORD - PostgreSQL password
* HOST - Name or IP address of the database server (use `localhost` if running locally)
* PORT - TCP port of the PostgreSQL service; leave blank for default port (5432)
Example:
```
DATABASE = {
'NAME': 'netbox', # Database name
'USER': 'netbox', # PostgreSQL username
'PASSWORD': 'J5brHrAXFLQSif0K', # PostgreSQL password
'HOST': 'localhost', # Database server
'PORT': '', # Database port (leave blank for default)
}
```
---
## SECRET_KEY
This is a secret cryptographic key is used to improve the security of cookies and password resets. The key defined here should not be shared outside of the configuration file. `SECRET_KEY` can be changed at any time, however be aware that doing so will invalidate all existing sessions.
Please note that this key is **not** used for hashing user passwords or for the encrypted storage of secret data in NetBox.
`SECRET_KEY` should be at least 50 characters in length and contain a random mix of letters, digits, and symbols. The script located at `netbox/generate_secret_key.py` may be used to generate a suitable key.

View File

@@ -1,4 +1,4 @@
The following are optional settings which may be declared in `netbox/netbox/configuration.py`.
# Optional Configuration Settings
## ADMINS
@@ -44,6 +44,22 @@ BASE_PATH = 'netbox/'
---
## CACHE_TIMEOUT
Default: 900
The number of seconds to retain cache entries before automatically invalidating them.
---
## CHANGELOG_RETENTION
Default: 90
The number of days to retain logged changes (object creations, updates, and deletions). Set this to `0` to retain changes in the database indefinitely. (Warning: This will greatly increase database size over time.)
---
## CORS_ORIGIN_ALLOW_ALL
Default: False
@@ -56,7 +72,13 @@ If True, cross-origin resource sharing (CORS) requests will be accepted from all
## CORS_ORIGIN_REGEX_WHITELIST
These settings specify a list of origins that are authorized to make cross-site API requests. Use `CORS_ORIGIN_WHITELIST` to define a list of exact hostnames, or `CORS_ORIGIN_REGEX_WHITELIST` to define a set of regular expressions. (These settings have no effect if `CORS_ORIGIN_ALLOW_ALL` is True.)
These settings specify a list of origins that are authorized to make cross-site API requests. Use `CORS_ORIGIN_WHITELIST` to define a list of exact hostnames, or `CORS_ORIGIN_REGEX_WHITELIST` to define a set of regular expressions. (These settings have no effect if `CORS_ORIGIN_ALLOW_ALL` is True.) For example:
```
CORS_ORIGIN_WHITELIST = [
'https://example.com',
]
```
---
@@ -68,6 +90,22 @@ This setting enables debugging. This should be done only during development or t
---
## DEVELOPER
Default: False
This parameter serves as a safeguard to prevent some potentially dangerous behavior, such as generating new database schema migrations. Set this to `True` **only** if you are actively developing the NetBox code base.
---
## DOCS_ROOT
Default: `$INSTALL_DIR/docs/`
The file path to NetBox's documentation. This is used when presenting context-sensitive documentation in the web UI. by default, this will be the `docs/` directory within the root NetBox installation path. (Set this to `None` to disable the embedded documentation.)
---
## EMAIL
In order to send email, NetBox needs an email server configured. The following items can be defined within the `EMAIL` setting:
@@ -79,9 +117,47 @@ In order to send email, NetBox needs an email server configured. The following i
* TIMEOUT - Amount of time to wait for a connection (seconds)
* FROM_EMAIL - Sender address for emails sent by NetBox
Email is sent from NetBox only for critical events. If you would like to test the email server configuration please use the django function [send_mail()](https://docs.djangoproject.com/en/stable/topics/email/#send-mail):
```
# python ./manage.py nbshell
>>> from django.core.mail import send_mail
>>> send_mail(
'Test Email Subject',
'Test Email Body',
'noreply-netbox@example.com',
['users@example.com'],
fail_silently=False
)
```
---
# ENFORCE_GLOBAL_UNIQUE
## EXEMPT_VIEW_PERMISSIONS
Default: Empty list
A list of models to exempt from the enforcement of view permissions. Models listed here will be viewable by all users and by anonymous users.
List models in the form `<app>.<model>`. For example:
```
EXEMPT_VIEW_PERMISSIONS = [
'dcim.site',
'dcim.region',
'ipam.prefix',
]
```
To exempt _all_ models from view permission enforcement, set the following. (Note that `EXEMPT_VIEW_PERMISSIONS` must be an iterable.)
```
EXEMPT_VIEW_PERMISSIONS = ['*']
```
---
## ENFORCE_GLOBAL_UNIQUE
Default: False
@@ -93,7 +169,7 @@ Enforcement of unique IP space can be toggled on a per-VRF basis. To enforce uni
By default, all messages of INFO severity or higher will be logged to the console. Additionally, if `DEBUG` is False and email access has been configured, ERROR and CRITICAL messages will be emailed to the users defined in `ADMINS`.
The Django framework on which NetBox runs allows for the customization of logging, e.g. to write logs to file. Please consult the [Django logging documentation](https://docs.djangoproject.com/en/1.11/topics/logging/) for more information on configuring this setting. Below is an example which will write all INFO and higher messages to a file:
The Django framework on which NetBox runs allows for the customization of logging, e.g. to write logs to file. Please consult the [Django logging documentation](https://docs.djangoproject.com/en/stable/topics/logging/) for more information on configuring this setting. Below is an example which will write all INFO and higher messages to a file:
```
LOGGING = {
@@ -115,6 +191,14 @@ LOGGING = {
}
```
### Available Loggers
* `netbox.auth.*` - Authentication events
* `netbox.api.views.*` - Views which handle business logic for the REST API
* `netbox.reports.*` - Report execution (`module.name`)
* `netbox.scripts.*` - Custom script execution (`module.name`)
* `netbox.views.*` - Views which handle business logic for the web UI
---
## LOGIN_REQUIRED
@@ -125,6 +209,14 @@ Setting this to True will permit only authenticated users to access any part of
---
## LOGIN_TIMEOUT
Default: 1209600 seconds (14 days)
The liftetime (in seconds) of the authentication cookie issued to a NetBox user upon login.
---
## MAINTENANCE_MODE
Default: False
@@ -149,6 +241,14 @@ The file path to the location where media files (such as image attachments) are
---
## METRICS_ENABLED
Default: False
Toggle exposing Prometheus metrics at `/metrics`. See the [Prometheus Metrics](../../additional-features/prometheus-metrics/) documentation for more details.
---
## NAPALM_USERNAME
## NAPALM_PASSWORD
@@ -199,6 +299,39 @@ Determine how many objects to display per page within each list of objects.
---
## PLUGINS
Default: Empty
A list of installed [NetBox plugins](../../plugins/) to enable. Plugins will not take effect unless they are listed here.
!!! warning
Plugins extend NetBox by allowing external code to run with the same access and privileges as NetBox itself. Only install plugins from trusted sources. The NetBox maintainers make absolutely no guarantees about the integrity or security of your installation with plugins enabled.
---
## PLUGINS_CONFIG
Default: Empty
This parameter holds configuration settings for individual NetBox plugins. It is defined as a dictionary, with each key using the name of an installed plugin. The specific parameters supported are unique to each plugin: Reference the plugin's documentation to determine the supported parameters. An example configuration is shown below:
```python
PLUGINS_CONFIG = {
'plugin1': {
'foo': 123,
'bar': True
},
'plugin2': {
'foo': 456,
},
}
```
Note that a plugin must be listed in `PLUGINS` for its configuration to take effect.
---
## PREFER_IPV4
Default: False
@@ -207,6 +340,72 @@ When determining the primary IP address for a device, IPv6 is preferred over IPv
---
## REMOTE_AUTH_ENABLED
Default: `False`
NetBox can be configured to support remote user authentication by inferring user authentication from an HTTP header set by the HTTP reverse proxy (e.g. nginx or Apache). Set this to `True` to enable this functionality. (Local authentication will still take effect as a fallback.)
---
## REMOTE_AUTH_BACKEND
Default: `'utilities.auth_backends.RemoteUserBackend'`
Python path to the custom [Django authentication backend](https://docs.djangoproject.com/en/stable/topics/auth/customizing/) to use for external user authentication, if not using NetBox's built-in backend. (Requires `REMOTE_AUTH_ENABLED`.)
---
## REMOTE_AUTH_HEADER
Default: `'HTTP_REMOTE_USER'`
When remote user authentication is in use, this is the name of the HTTP header which informs NetBox of the currently authenticated user. (Requires `REMOTE_AUTH_ENABLED`.)
---
## REMOTE_AUTH_AUTO_CREATE_USER
Default: `True`
If true, NetBox will automatically create local accounts for users authenticated via a remote service. (Requires `REMOTE_AUTH_ENABLED`.)
---
## REMOTE_AUTH_DEFAULT_GROUPS
Default: `[]` (Empty list)
The list of groups to assign a new user account when created using remote authentication. (Requires `REMOTE_AUTH_ENABLED`.)
---
## REMOTE_AUTH_DEFAULT_PERMISSIONS
Default: `[]` (Empty list)
The list of permissions to assign a new user account when created using remote authentication. (Requires `REMOTE_AUTH_ENABLED`.)
---
## RELEASE_CHECK_TIMEOUT
Default: 86,400 (24 hours)
The number of seconds to retain the latest version that is fetched from the GitHub API before automatically invalidating it and fetching it from the API again. This must be set to at least one hour (3600 seconds).
---
## RELEASE_CHECK_URL
Default: None
The releases of this repository are checked to detect new releases, which are shown on the home page of the web interface. You can change this to your own fork of the NetBox repository, or set it to `None` to disable the check. The URL provided **must** be compatible with the GitHub API.
Use `'https://api.github.com/repos/netbox-community/netbox/releases'` to check for release in the official NetBox repository.
---
## REPORTS_ROOT
Default: $BASE_DIR/netbox/reports/
@@ -215,6 +414,42 @@ The file path to the location where custom reports will be kept. By default, thi
---
## SCRIPTS_ROOT
Default: $BASE_DIR/netbox/scripts/
The file path to the location where custom scripts will be kept. By default, this is the `netbox/scripts/` directory within the base NetBox installation path.
---
## SESSION_FILE_PATH
Default: None
Session data is used to track authenticated users when they access NetBox. By default, NetBox stores session data in the PostgreSQL database. However, this inhibits authentication to a standby instance of NetBox without write access to the database. Alternatively, a local file path may be specified here and NetBox will store session data as files instead of using the database. Note that the user as which NetBox runs must have read and write permissions to this path.
---
## STORAGE_BACKEND
Default: None (local storage)
The backend storage engine for handling uploaded files (e.g. image attachments). NetBox supports integration with the [`django-storages`](https://django-storages.readthedocs.io/en/stable/) package, which provides backends for several popular file storage services. If not configured, local filesystem storage will be used.
The configuration parameters for the specified storage backend are defined under the `STORAGE_CONFIG` setting.
---
## STORAGE_CONFIG
Default: Empty
A dictionary of configuration parameters for the storage backend configured as `STORAGE_BACKEND`. The specific parameters to be used here are specific to each backend; see the [`django-storages` documentation](https://django-storages.readthedocs.io/en/stable/) for more detail.
If `STORAGE_BACKEND` is not defined, this setting will be ignored.
---
## TIME_ZONE
Default: UTC
@@ -225,7 +460,7 @@ The time zone NetBox will use when dealing with dates and times. It is recommend
## Date and Time Formatting
You may define custom formatting for date and times. For detailed instructions on writing format strings, please see [the Django documentation](https://docs.djangoproject.com/en/dev/ref/templates/builtins/#date).
You may define custom formatting for date and times. For detailed instructions on writing format strings, please see [the Django documentation](https://docs.djangoproject.com/en/stable/ref/templates/builtins/#date).
Defaults:

View File

@@ -0,0 +1,141 @@
# Required Configuration Settings
## ALLOWED_HOSTS
This is a list of valid fully-qualified domain names (FQDNs) that is used to reach the NetBox service. Usually this is the same as the hostname for the NetBox server, but can also be different (e.g. when using a reverse proxy serving the NetBox website under a different FQDN than the hostname of the NetBox server). NetBox will not permit access to the server via any other hostnames (or IPs). The value of this option is also used to set `CSRF_TRUSTED_ORIGINS`, which restricts `HTTP POST` to the same set of hosts (more about this [here](https://docs.djangoproject.com/en/stable/ref/settings/#std:setting-CSRF_TRUSTED_ORIGINS)). Keep in mind that NetBox, by default, has `USE_X_FORWARDED_HOST = True` (in `netbox/netbox/settings.py`) which means that if you're using a reverse proxy, it's the FQDN used to reach that reverse proxy which needs to be in this list (more about this [here](https://docs.djangoproject.com/en/stable/ref/settings/#allowed-hosts)).
Example:
```
ALLOWED_HOSTS = ['netbox.example.com', '192.0.2.123']
```
---
## DATABASE
NetBox requires access to a PostgreSQL database service to store data. This service can run locally or on a remote system. The following parameters must be defined within the `DATABASE` dictionary:
* `NAME` - Database name
* `USER` - PostgreSQL username
* `PASSWORD` - PostgreSQL password
* `HOST` - Name or IP address of the database server (use `localhost` if running locally)
* `PORT` - TCP port of the PostgreSQL service; leave blank for default port (5432)
* `CONN_MAX_AGE` - Lifetime of a [persistent database connection](https://docs.djangoproject.com/en/stable/ref/databases/#persistent-connections), in seconds (150-300 is recommended)
Example:
```python
DATABASE = {
'NAME': 'netbox', # Database name
'USER': 'netbox', # PostgreSQL username
'PASSWORD': 'J5brHrAXFLQSif0K', # PostgreSQL password
'HOST': 'localhost', # Database server
'PORT': '', # Database port (leave blank for default)
'CONN_MAX_AGE': 300, # Max database connection age
}
```
!!! note
NetBox supports all PostgreSQL database options supported by the underlying Django framework. For a complete list of available parameters, please see [the Django documentation](https://docs.djangoproject.com/en/stable/ref/settings/#databases).
---
## REDIS
[Redis](https://redis.io/) is an in-memory data store similar to memcached. While Redis has been an optional component of
NetBox since the introduction of webhooks in version 2.4, it is required starting in 2.6 to support NetBox's caching
functionality (as well as other planned features). In 2.7, the connection settings were broken down into two sections for
task queuing and caching, allowing the user to connect to different Redis instances/databases per feature.
Redis is configured using a configuration setting similar to `DATABASE` and these settings are the same for both of the `tasks` and `caching` subsections:
* `HOST` - Name or IP address of the Redis server (use `localhost` if running locally)
* `PORT` - TCP port of the Redis service; leave blank for default port (6379)
* `PASSWORD` - Redis password (if set)
* `DATABASE` - Numeric database ID
* `DEFAULT_TIMEOUT` - Connection timeout in seconds
* `SSL` - Use SSL connection to Redis
Example:
```python
REDIS = {
'tasks': {
'HOST': 'redis.example.com',
'PORT': 1234,
'PASSWORD': 'foobar',
'DATABASE': 0,
'DEFAULT_TIMEOUT': 300,
'SSL': False,
},
'caching': {
'HOST': 'localhost',
'PORT': 6379,
'PASSWORD': '',
'DATABASE': 1,
'DEFAULT_TIMEOUT': 300,
'SSL': False,
}
}
```
!!! note
If you are upgrading from a version prior to v2.7, please note that the Redis connection configuration settings have
changed. Manual modification to bring the `REDIS` section inline with the above specification is necessary
!!! warning
It is highly recommended to keep the task and cache databases separate. Using the same database number on the
same Redis instance for both may result in queued background tasks being lost during cache flushing events.
### Using Redis Sentinel
If you are using [Redis Sentinel](https://redis.io/topics/sentinel) for high-availability purposes, there is minimal
configuration necessary to convert NetBox to recognize it. It requires the removal of the `HOST` and `PORT` keys from
above and the addition of two new keys.
* `SENTINELS`: List of tuples or tuple of tuples with each inner tuple containing the name or IP address
of the Redis server and port for each sentinel instance to connect to
* `SENTINEL_SERVICE`: Name of the master / service to connect to
Example:
```python
REDIS = {
'tasks': {
'SENTINELS': [('mysentinel.redis.example.com', 6379)],
'SENTINEL_SERVICE': 'netbox',
'PASSWORD': '',
'DATABASE': 0,
'DEFAULT_TIMEOUT': 300,
'SSL': False,
},
'caching': {
'SENTINELS': [
('mysentinel.redis.example.com', 6379),
('othersentinel.redis.example.com', 6379)
],
'SENTINEL_SERVICE': 'netbox',
'PASSWORD': '',
'DATABASE': 1,
'DEFAULT_TIMEOUT': 300,
'SSL': False,
}
}
```
!!! note
It is possible to have only one or the other Redis configurations to use Sentinel functionality. It is possible
for example to have the tasks database use sentinel via `HOST`/`PORT` and for caching to use Sentinel via
`SENTINELS`/`SENTINEL_SERVICE`.
---
## SECRET_KEY
This is a secret cryptographic key is used to improve the security of cookies and password resets. The key defined here should not be shared outside of the configuration file. `SECRET_KEY` can be changed at any time, however be aware that doing so will invalidate all existing sessions.
Please note that this key is **not** used for hashing user passwords or for the encrypted storage of secret data in NetBox.
`SECRET_KEY` should be at least 50 characters in length and contain a random mix of letters, digits, and symbols. The script located at `netbox/generate_secret_key.py` may be used to generate a suitable key.

View File

@@ -0,0 +1,9 @@
# Circuits
{!docs/models/circuits/provider.md!}
---
{!docs/models/circuits/circuit.md!}
{!docs/models/circuits/circuittype.md!}
{!docs/models/circuits/circuittermination.md!}

View File

@@ -0,0 +1,40 @@
# Device Types
{!docs/models/dcim/devicetype.md!}
{!docs/models/dcim/manufacturer.md!}
---
## Device Component Templates
Each device type is assigned a number of component templates which define the physical components within a device. These are:
* Console ports
* Console server ports
* Power ports
* Power outlets
* Network interfaces
* Front ports
* Rear ports
* Device bays (which house child devices)
Whenever a new device is created, its components are automatically created per the templates assigned to its device type. For example, a Juniper EX4300-48T device type might have the following component templates defined:
* One template for a console port ("Console")
* Two templates for power ports ("PSU0" and "PSU1")
* 48 templates for 1GE interfaces ("ge-0/0/0" through "ge-0/0/47")
* Four templates for 10GE interfaces ("xe-0/2/0" through "xe-0/2/3")
Once component templates have been created, every new device that you create as an instance of this type will automatically be assigned each of the components listed above.
!!! note
Assignment of components from templates occurs only at the time of device creation. If you modify the templates of a device type, it will not affect devices which have already been created. However, you always have the option of adding, modifying, or deleting components on existing devices.
{!docs/models/dcim/consoleporttemplate.md!}
{!docs/models/dcim/consoleserverporttemplate.md!}
{!docs/models/dcim/powerporttemplate.md!}
{!docs/models/dcim/poweroutlettemplate.md!}
{!docs/models/dcim/interfacetemplate.md!}
{!docs/models/dcim/frontporttemplate.md!}
{!docs/models/dcim/rearporttemplate.md!}
{!docs/models/dcim/devicebaytemplate.md!}

View File

@@ -0,0 +1,27 @@
# Devices and Cabling
{!docs/models/dcim/device.md!}
{!docs/models/dcim/devicerole.md!}
{!docs/models/dcim/platform.md!}
---
## Device Components
{!docs/models/dcim/consoleport.md!}
{!docs/models/dcim/consoleserverport.md!}
{!docs/models/dcim/powerport.md!}
{!docs/models/dcim/poweroutlet.md!}
{!docs/models/dcim/interface.md!}
{!docs/models/dcim/frontport.md!}
{!docs/models/dcim/rearport.md!}
{!docs/models/dcim/devicebay.md!}
{!docs/models/dcim/inventoryitem.md!}
---
{!docs/models/dcim/virtualchassis.md!}
---
{!docs/models/dcim/cable.md!}

View File

@@ -0,0 +1,16 @@
# IP Address Management
{!docs/models/ipam/aggregate.md!}
{!docs/models/ipam/rir.md!}
---
{!docs/models/ipam/prefix.md!}
---
{!docs/models/ipam/ipaddress.md!}
---
{!docs/models/ipam/vrf.md!}

View File

@@ -0,0 +1,38 @@
# Power Tracking
{!docs/models/dcim/powerpanel.md!}
{!docs/models/dcim/powerfeed.md!}
# Example Power Topology
Below is a simple diagram demonstrating how power is modeled in NetBox.
!!! note
The power feeds are connected to the same power panel for illustrative purposes; usually, you would have such feeds diversely connected to panels to avoid the single point of failure.
```
+---------------+
| Power panel 1 |
+---------------+
| |
| |
+--------------+ +--------------+
| Power feed 1 | | Power feed 2 |
+--------------+ +--------------+
| |
| |
| | <-- Power ports
+---------+ +---------+
| PDU 1 | | PDU 2 |
+---------+ +---------+
| \ / | <-- Power outlets
| \ / |
| \ / |
| X |
| / \ |
| / \ |
| / \ | <-- Power ports
+--------+ +--------+
| Server | | Router |
+--------+ +--------+
```

View File

@@ -0,0 +1,8 @@
# Secrets
{!docs/models/secrets/secret.md!}
{!docs/models/secrets/secretrole.md!}
---
{!docs/models/secrets/userkey.md!}

View File

@@ -0,0 +1,3 @@
# Service Mapping
{!docs/models/ipam/service.md!}

View File

@@ -0,0 +1,11 @@
# Sites and Racks
{!docs/models/dcim/site.md!}
{!docs/models/dcim/region.md!}
---
{!docs/models/dcim/rack.md!}
{!docs/models/dcim/rackgroup.md!}
{!docs/models/dcim/rackrole.md!}
{!docs/models/dcim/rackreservation.md!}

View File

@@ -0,0 +1,4 @@
# Tenancy Assignment
{!docs/models/tenancy/tenant.md!}
{!docs/models/tenancy/tenantgroup.md!}

View File

@@ -0,0 +1,9 @@
# Virtual Machines and Clusters
{!docs/models/virtualization/cluster.md!}
{!docs/models/virtualization/clustertype.md!}
{!docs/models/virtualization/clustergroup.md!}
---
{!docs/models/virtualization/virtualmachine.md!}

View File

@@ -0,0 +1,4 @@
# VLAN Management
{!docs/models/ipam/vlan.md!}
{!docs/models/ipam/vlangroup.md!}

View File

@@ -1,33 +0,0 @@
The circuits component of NetBox deals with the management of long-haul Internet and private transit links and providers.
# Providers
A provider is any entity which provides some form of connectivity. While this obviously includes carriers which offer Internet and private transit service, it might also include Internet exchange (IX) points and even organizations with whom you peer directly.
Each provider may be assigned an autonomous system number (ASN), an account number, and contact information.
---
# Circuits
A circuit represents a single physical data link connecting two endpoints. Each circuit belongs to a provider and must be assigned a circuit ID which is unique to that provider.
### Circuit Types
Circuits are classified by type. For example, you might define circuit types for:
* Internet transit
* Out-of-band connectivity
* Peering
* Private backhaul
Circuit types are fully customizable.
### Circuit Terminations
A circuit may have one or two terminations, annotated as the "A" and "Z" sides of the circuit. A single-termination circuit can be used when you don't know (or care) about the far end of a circuit (for example, an Internet access circuit which connects to a transit provider). A dual-termination circuit is useful for tracking circuits which connect two sites.
Each circuit termination is tied to a site, and optionally to a specific device and interface within that site. Each termination can be assigned a separate downstream and upstream speed independent from one another. Fields are also available to track cross-connect and patch panel details.
!!! note
A circuit represents a physical link, and cannot have more than two endpoints. When modeling a multi-point topology, each leg of the topology must be defined as a discrete circuit.

View File

@@ -1,114 +0,0 @@
Data center infrastructure management (DCIM) entails all physical assets: sites, racks, devices, cabling, etc.
# Sites
How you choose to use sites will depend on the nature of your organization, but typically a site will equate to a building or campus. For example, a chain of banks might create a site to represent each of its branches, a site for its corporate headquarters, and two additional sites for its presence in two colocation facilities.
Sites can be assigned an optional facility ID to identify the actual facility housing colocated equipment, and an Autonomous System (AS) number.
### Regions
Sites can be arranged geographically using regions. A region might represent a continent, country, city, campus, or other area depending on your use case. Regions can be nested recursively to construct a hierarchy. For example, you might define several country regions, and within each of those several state or city regions to which sites are assigned.
---
# Racks
The rack model represents a physical two- or four-post equipment rack in which equipment is mounted. Each rack is assigned to a site. Rack height is measured in *rack units* (U); racks are commonly between 42U and 48U, but NetBox allows you to define racks of arbitrary height. Each rack has two faces (front and rear) on which devices can be mounted.
Each rack is assigned a name and (optionally) a separate facility ID. This is helpful when leasing space in a data center your organization does not own: The facility will often assign a seemingly arbitrary ID to a rack (for example, "M204.313") whereas internally you refer to is simply as "R113." The facility ID can alternatively be used to store a rack's serial number.
The available rack types include 2- and 4-post frames, 4-post cabinet, and wall-mounted frame and cabinet. Rail-to-rail width may be 19 or 23 inches.
### Rack Groups
Racks can be arranged into groups. As with sites, how you choose to designate rack groups will depend on the nature of your organization. For example, if each site represents a campus, each group might represent a building within a campus. If each site represents a building, each rack group might equate to a floor or room.
Each group is assigned to a parent site for easy navigation. Hierarchical recursion of rack groups is not supported.
### Rack Roles
Each rack can optionally be assigned a functional role. For example, you might designate a rack for compute or storage resources, or to house colocated customer devices. Rack roles are fully customizable.
### Rack Space Reservations
Users can reserve units within a rack for future use. Multiple non-contiguous rack units can be associated with a single reservation (but reservations cannot span multiple racks).
---
# Device Types
A device type represents a particular hardware model that exists in the real world. Device types describe the physical attributes of a device (rack height and depth), its class (e.g. console server, PDU, etc.), and its individual components (console, power, and data).
Device types are instantiated as devices installed within racks. For example, you might define a device type to represent a Juniper EX4300-48T network switch with 48 Ethernet interfaces. You can then create multiple devices of this type named "switch1," "switch2," and so on. Each device will inherit the components (such as interfaces) of its device type.
### Manufacturers
Each device type belongs to one manufacturer; e.g. Cisco, Opengear, or APC. The model number of a device type must be unique to its manufacturer.
### Component Templates
Each device type is assigned a number of component templates which define the physical interfaces a device has. These are:
* Console ports
* Console server ports
* Power ports
* Power outlets
* Interfaces
* Device bays
Whenever a new device is created, it is automatically assigned components per the templates assigned to its device type. For example, a Juniper EX4300-48T device type might have the following component templates:
* One template for a console port ("Console")
* Two templates for power ports ("PSU0" and "PSU1")
* 48 templates for 1GE interfaces ("ge-0/0/0" through "ge-0/0/47")
* Four templates for 10GE interfaces ("xe-0/2/0" through "xe-0/2/3")
Once component templates have been created, every new device that you create as an instance of this type will automatically be assigned each of the components listed above.
!!! note
Assignment of components from templates occurs only at the time of device creation. If you modify the templates of a device type, it will not affect devices which have already been created. However, you always have the option of adding, modifying, or deleting components of existing devices individually.
---
# Devices
Every piece of hardware which is installed within a rack exists in NetBox as a device. Devices are measured in rack units (U) and depth. 0U devices which can be installed in a rack but don't consume vertical rack space (such as a vertically-mounted power distribution unit) can also be defined.
When assigning a multi-U device to a rack, it is considered to be mounted in the lowest-numbered rack unit which it occupies. For example, a 3U device which occupies U8 through U10 shows as being mounted in U8. This logic applies to racks with both ascending and descending unit numbering.
A device is said to be "full depth" if its installation on one rack face prevents the installation of any other device on the opposite face within the same rack unit(s). This could be either because the device is physically too deep to allow a device behind it, or because the installation of an opposing device would impede air flow.
### Roles
NetBox allows for the definition of arbitrary device roles by which devices can be organized. For example, you might create roles for core switches, distribution switches, and access switches. In the interest of simplicity, a device can belong to only one role.
### Platforms
A device's platform is used to denote the type of software running on it. This can be helpful when it is necessary to distinguish between, for instance, different feature sets. Note that two devices of same type may be assigned different platforms: for example, one Juniper MX240 running Junos 14 and another running Junos 15.
The assignment of platforms to devices is an optional feature, and may be disregarded if not desired.
### Inventory Items
Inventory items represent hardware components installed within a device, such as a power supply or CPU. Currently, these are used merely for inventory tracking, although future development might see their functionality expand. Each item can optionally be assigned a manufacturer.
!!! note
Prior to version 2.0, inventory items were called modules.
### Components
There are six types of device components which comprise all of the interconnection logic with NetBox:
* Console ports
* Console server ports
* Power ports
* Power outlets
* Interfaces
* Device bays
Console ports connect only to console server ports, and power ports connect only to power outlets. Interfaces connect to one another in a symmetric manner: If interface A connects to interface B, interface B therefore connects to interface A. (The relationship between two interfaces is actually represented in the database by an InterfaceConnection object, but this is transparent to the user.) Each type of connection can be classified as either *planned* or *connected*. This allows for easily denoting connections which have not yet been installed.
Each interface is a assigned a form factor denoting its physical properties. Two special form factors exist: the "virtual" form factor can be used to designate logical interfaces (such as SVIs), and the "LAG" form factor can be used to desinate link aggregation groups to which physical interfaces can be assigned. Each interface can also be designated as management-only (for out-of-band management) and assigned a short description.
Device bays represent the ability of a device to house child devices. For example, you might install four blade servers into a 2U chassis. The chassis would appear in the rack elevation as a 2U device with four device bays. Each server within it would be defined as a 0U device installed in one of the device bays. Child devices do not appear on rack elevations, but they are included in the "Non-Racked Devices" list within the rack view.

View File

@@ -1,132 +0,0 @@
This section entails features of NetBox which are not crucial to its primary functions, but provide additional value.
# Custom Fields
Each object in NetBox is represented in the database as a discrete table, and each attribute of an object exists as a column within its table. For example, sites are stored in the `dcim_site` table, which has columns named `name`, `facility`, `physical_address`, and so on. As new attributes are added to objects throughout the development of NetBox, tables are expanded to include new rows.
However, some users might want to associate with objects attributes that are somewhat esoteric in nature, and that would not make sense to include in the core NetBox database schema. For instance, suppose your organization needs to associate each device with a ticket number pointing to the support ticket that was opened to have it installed. This is certainly a legitimate use for NetBox, but it's perhaps not a common enough need to warrant expanding the internal data schema. Instead, you can create a custom field to hold this data.
Custom fields must be created through the admin UI under Extras > Custom Fields. To create a new custom field, select the object(s) to which you want it to apply, and the type of field it will be. NetBox supports six field types:
* Free-form text (up to 255 characters)
* Integer
* Boolean (true/false)
* Date
* URL
* Selection
Assign the field a name. This should be a simple database-friendly string, e.g. `tps_report`. You may optionally assign the field a human-friendly label (e.g. "TPS report") as well; the label will be displayed on forms. If a description is provided, it will appear beneath the field in a form.
Marking the field as required will require the user to provide a value for the field when creating a new object or when saving an existing object. A default value for the field may also be provided. Use "true" or "false" for boolean fields. (The default value has no effect for selection fields.)
When creating a selection field, you should create at least two choices. These choices will be arranged first by weight, with lower weights appearing higher in the list, and then alphabetically.
## Using Custom Fields
When a single object is edited, the form will include any custom fields which have been defined for the object type. These fields are included in the "Custom Fields" panel. On the backend, each custom field value is saved separately from the core object as an independent database call, so it's best to avoid adding too many custom fields per object.
When editing multiple objects, custom field values are saved in bulk. There is no significant difference in overhead when saving a custom field value for 100 objects versus one object. However, the bulk operation must be performed separately for each custom field.
# Export Templates
NetBox allows users to define custom templates that can be used when exporting objects. To create an export template, navigate to Extras > Export Templates under the admin interface.
Each export template is associated with a certain type of object. For instance, if you create an export template for VLANs, your custom template will appear under the "Export" button on the VLANs list.
Export templates are written in [Django's template language](https://docs.djangoproject.com/en/1.9/ref/templates/language/), which is very similar to Jinja2. The list of objects returned from the database is stored in the `queryset` variable, which you'll typically want to iterate through using a `for` loop. Object properties can be access by name. For example:
```
{% for rack in queryset %}
Rack: {{ rack.name }}
Site: {{ rack.site.name }}
Height: {{ rack.u_height }}U
{% endfor %}
```
To access custom fields of an object within a template, use the `cf` attribute. For example, `{{ obj.cf.color }}` will return the value (if any) for a custom field named `color` on `obj`.
A MIME type and file extension can optionally be defined for each export template. The default MIME type is `text/plain`.
## Example
Here's an example device export template that will generate a simple Nagios configuration from a list of devices.
```
{% for device in queryset %}{% if device.status and device.primary_ip %}define host{
use generic-switch
host_name {{ device.name }}
address {{ device.primary_ip.address.ip }}
}
{% endif %}{% endfor %}
```
The generated output will look something like this:
```
define host{
use generic-switch
host_name switch1
address 192.0.2.1
}
define host{
use generic-switch
host_name switch2
address 192.0.2.2
}
define host{
use generic-switch
host_name switch3
address 192.0.2.3
}
```
# Graphs
NetBox does not have the ability to generate graphs natively, but this feature allows you to embed contextual graphs from an external resources (such as a monitoring system) inside the site, provider, and interface views. Each embedded graph must be defined with the following parameters:
* **Type:** Site, provider, or interface. This determines in which view the graph will be displayed.
* **Weight:** Determines the order in which graphs are displayed (lower weights are displayed first). Graphs with equal weights will be ordered alphabetically by name.
* **Name:** The title to display above the graph.
* **Source URL:** The source of the image to be embedded. The associated object will be available as a template variable named `obj`.
* **Link URL (optional):** A URL to which the graph will be linked. The associated object will be available as a template variable named `obj`.
## Examples
You only need to define one graph object for each graph you want to include when viewing an object. For example, if you want to include a graph of traffic through an interface over the past five minutes, your graph source might looks like this:
```
https://my.nms.local/graphs/?node={{ obj.device.name }}&interface={{ obj.name }}&duration=5m
```
You can define several graphs to provide multiple contexts when viewing an object. For example:
```
https://my.nms.local/graphs/?type=throughput&node={{ obj.device.name }}&interface={{ obj.name }}&duration=60m
https://my.nms.local/graphs/?type=throughput&node={{ obj.device.name }}&interface={{ obj.name }}&duration=24h
https://my.nms.local/graphs/?type=errors&node={{ obj.device.name }}&interface={{ obj.name }}&duration=60m
```
# Topology Maps
NetBox can generate simple topology maps from the physical network connections recorded in its database. First, you'll need to create a topology map definition under the admin UI at Extras > Topology Maps.
Each topology map is associated with a site. A site can have multiple topology maps, which might each illustrate a different aspect of its infrastructure (for example, production versus backend infrastructure).
To define the scope of a topology map, decide which devices you want to include. The map will only include interface connections with both points terminated on an included device. Specify the devices to include in the **device patterns** field by entering a list of [regular expressions](https://en.wikipedia.org/wiki/Regular_expression) matching device names. For example, if you wanted to include "mgmt-switch1" through "mgmt-switch99", you might use the regex `mgmt-switch\d+`.
Each line of the **device patterns** field represents a hierarchical layer within the topology map. For example, you might map a traditional network with core, distribution, and access tiers like this:
```
core-switch-[abcd]
dist-switch\d
access-switch\d+;oob-switch\d+
```
Note that you can combine multiple regexes onto one line using semicolons. The order in which regexes are listed on a line is significant: devices matching the first regex will be rendered first, and subsequent groups will be rendered to the right of those.
# Image Attachments
Certain objects within NetBox (namely sites, racks, and devices) can have photos or other images attached to them. (Note that _only_ image files are supported.) Each attachment may optionally be assigned a name; if omitted, the attachment will be represented by its file name.
!!! note
If you experience a server error while attempting to upload an image attachment, verify that the system user NetBox runs as has write permission to the media root directory (`netbox/media/`).

View File

@@ -1,99 +0,0 @@
IP address management (IPAM) entails the allocation of IP networks, addresses, and related numeric resources.
# VRFs
A VRF object in NetBox represents a virtual routing and forwarding (VRF) domain within a network. Each VRF is essentially a separate routing table: the same IP prefix or address can exist in multiple VRFs. VRFs are commonly used to isolate customers or organizations from one another within a network.
Each VRF is assigned a name and a unique route distinguisher (RD). VRFs are an optional feature of NetBox: Any IP prefix or address not assigned to a VRF is said to belong to the "global" table.
!!! note
By default, NetBox allows for overlapping IP space both in the global table and within each VRF. Unique space enforcement can be toggled per-VRF as well as in the global table using the `ENFORCE_GLOBAL_UNIQUE` configuration setting.
---
# Aggregates
IP address space is organized as a hierarchy, with more-specific (smaller) prefixes arranged as child nodes under less-specific (larger) prefixes. For example:
* 10.0.0.0/8
* 10.1.0.0/16
* 10.1.2.0/24
The root of the IPv4 hierarchy is 0.0.0.0/0, which encompasses all possible IPv4 addresses (and similarly, ::/0 for IPv6). However, even the largest organizations use only a small fraction of the global address space. Therefore, it makes sense to track in NetBox only the address space which is of interest to your organization.
Aggregates serve as arbitrary top-level nodes in the IP space hierarchy. They allow you to easily construct your IP scheme without any clutter of unused address space. For instance, most organizations utilize some portion of the private IPv4 space set aside in RFC 1918. So, you might define three aggregates for this space:
* 10.0.0.0/8
* 172.16.0.0/12
* 192.168.0.0/16
Additionally, you might define an aggregate for each large swath of public IPv4 space your organization uses. You'd also create aggregates for both globally routable and unique local IPv6 space. (Most organizations will not have a need to track IPv6 link local space.)
Prefixes you create in NetBox (discussed below) will be automatically organized under their respective aggregates. Any space within an aggregate which is not covered by an existing prefix will be annotated as available for allocation. Total utilization for each aggregate is displayed in the aggregates list.
Aggregates cannot overlap with one another; they can only exist in parallel. For instance, you cannot define both 10.0.0.0/8 and 10.16.0.0/16 as aggregates, because they overlap. 10.16.0.0/16 in this example would be created as a prefix and automatically grouped under 10.0.0.0/8.
### RIRs
Regional Internet Registries (RIRs) are responsible for the allocation of global address space. The five RIRs are ARIN, RIPE, APNIC, LACNIC, and AFRINIC. However, some address space has been set aside for private or internal use only, such as defined in RFCs 1918 and 6598. NetBox considers these RFCs as a sort of RIR as well; that is, an authority which "owns" certain address space.
Each aggregate must be assigned to one RIR. You are free to define whichever RIRs you choose (or create your own). Each RIR can be annotated as representing only private space.
---
# Prefixes
A prefix is an IPv4 or IPv6 network and mask expressed in CIDR notation (e.g. 192.0.2.0/24). A prefix entails only the "network portion" of an IP address; all bits in the address not covered by the mask must be zero.
Each prefix may be assigned to one VRF; prefixes not assigned to a VRF are assigned to the "global" table. Prefixes are also organized under their respective aggregates, irrespective of VRF assignment.
A prefix may optionally be assigned to one VLAN; a VLAN may have multiple prefixes assigned to it. Each prefix may also be assigned a short description.
### Statuses
Each prefix is assigned an operational status. This is one of the following:
* Container - A summary of child prefixes
* Active - Provisioned and in use
* Reserved - Designated for future use
* Deprecated - No longer in use
### Roles
Whereas a status describes a prefix's operational state, a role describes its function. For example, roles might include:
* Access segment
* Infrastructure
* NAT
* Lab
* Out-of-band
Role assignment is optional and roles are fully customizable.
---
# IP Addresses
An IP address comprises a single address (either IPv4 or IPv6) and its subnet mask. Its mask should match exactly how the IP address is configured on an interface in the real world.
Like prefixes, an IP address can optionally be assigned to a VRF (or it will appear in the "global" table). IP addresses are automatically organized under parent prefixes within their respective VRFs. Each IP address can also be assigned a short description.
An IP address can be assigned to a device's interface; an interface may have multiple IP addresses assigned to it. Further, each device may have one of its interface IPs designated as its primary IP address (for both IPv4 and IPv6).
One IP address can be designated as the network address translation (NAT) IP address for exactly one other IP address. This is useful primarily to denote the public address for a private internal IP. Tracking one-to-many NAT (or PAT) assignments is not supported.
---
# VLANs
A VLAN represents an isolated layer two domain, identified by a name and a numeric ID (1-4094) as defined in [IEEE 802.1Q](https://en.wikipedia.org/wiki/IEEE_802.1Q). Each VLAN may be assigned to a site and/or VLAN group. Like prefixes, each VLAN is assigned an operational status and (optionally) a functional role, and may include a short description.
### VLAN Groups
VLAN groups can be employed for administrative organization within NetBox. Each VLAN within a group must have a unique ID and name. VLANs which are not assigned to a group may have overlapping names and IDs, including within a site.
---
# Services
A service represents a TCP or UDP service available on a device or virtual machine. Each service must be defined with a name, protocol, and port number; for example, "SSH (TCP/22)." A service may optionally be bound to one or more specific IP addresses belonging to its parent. (If no IP addresses are bound, the service is assumed to be reachable via any assigned IP address.)

View File

@@ -1,20 +0,0 @@
NetBox supports the assignment of resources to tenant organizations. Typically, these are used to represent individual customers of or internal departments within the organization using NetBox.
# Tenants
A tenant represents a discrete organization. The following objects can be assigned to tenants:
* Sites
* Racks
* Devices
* VRFs
* Prefixes
* IP addresses
* VLANs
* Circuits
If a prefix or IP address is not assigned to a tenant, it will appear to inherit the tenant to which its parent VRF is assigned, if any.
### Tenant Groups
Tenants can be grouped by type. For instance, you might create one group called "Customers" and one called "Acquisitions." The assignment of tenants to groups is optional.

View File

@@ -1,29 +0,0 @@
NetBox supports the definition of virtual machines arranged in clusters. A cluster can optionally have physical host devices associated with it.
# Clusters
A cluster is a logical grouping of physical resources within which virtual machines run. A cluster must be assigned a type, and may optionally be assigned an organizational group.
Physical devices (from NetBox's DCIM component) may be associated with clusters as hosts. This allows users to track on which host(s) a particular VM may reside. However, NetBox does not support pinning a specific VM within a cluster to a particular host device.
### Cluster Types
A cluster type represents a technology or mechanism by which a cluster is formed. For example, you might create a cluster type named "VMware vSphere" for a locally hosted cluster or "DigitalOcean NYC3" for one hosted by a cloud provider.
### Cluster Groups
Cluster groups may be created for the purpose of organizing clusters.
---
# Virtual Machines
A virtual machine represents a virtual compute instance hosted within a cluster. Each VM must be associated with exactly one cluster.
Like devices, each VM can have interfaces created on it. These behave similarly to device interfaces, and can be assigned IP addresses, however given their virtual nature they cannot be connected to other interfaces. VMs can also be assigned layer four services. Unlike physical devices, VMs cannot be assigned console or power ports, or device bays.
The following resources can be defined for each VM:
* vCPU count
* Memory (MB)
* Disk space (GB)

View File

@@ -0,0 +1,55 @@
# Application Registry
The registry is an in-memory data structure which houses various miscellaneous application-wide parameters, such as installed plugins. It is not exposed to the user and is not intended to be modified by any code outside of NetBox core.
The registry behaves essentially like a Python dictionary, with the notable exception that once a store (key) has been declared, it cannot be deleted or overwritten. The value of a store can, however, me modified; e.g. by appending a value to a list. Store values generally do not change once the application has been initialized.
## Stores
### `model_features`
A dictionary of particular features (e.g. custom fields) mapped to the NetBox models which support them, arranged by app. For example:
```python
{
'custom_fields': {
'circuits': ['provider', 'circuit'],
'dcim': ['site', 'rack', 'devicetype', ...],
...
},
'webhooks': {
...
},
...
}
```
### `plugin_menu_items`
Navigation menu items provided by NetBox plugins. Each plugin is registered as a key with the list of menu items it provides. An example:
```python
{
'Plugin A': (
<MenuItem>, <MenuItem>, <MenuItem>,
),
'Plugin B': (
<MenuItem>, <MenuItem>, <MenuItem>,
),
}
```
### `plugin_template_extensions`
Plugin content that gets embedded into core NetBox templates. The store comprises NetBox models registered as dictionary keys, each pointing to a list of applicable template extension classes that exist. An example:
```python
{
'dcim.site': [
<TemplateExtension>, <TemplateExtension>, <TemplateExtension>,
],
'dcim.rack': [
<TemplateExtension>, <TemplateExtension>,
],
}
```

View File

@@ -0,0 +1,82 @@
# Extending Models
Below is a list of items to consider when adding a new field to a model:
## 1. Generate and run database migration
Django migrations are used to express changes to the database schema. In most cases, Django can generate these automatically, however very complex changes may require manual intervention. Always remember to specify a short but descriptive name when generating a new migration.
```
./manage.py makemigrations <app> -n <name>
./manage.py migrate
```
Where possible, try to merge related changes into a single migration. For example, if three new fields are being added to different models within an app, these can be expressed in the same migration. You can merge a new migration with an existing one by combining their `operations` lists.
!!! note
Migrations can only be merged within a release. Once a new release has been published, its migrations cannot be altered.
## 2. Add validation logic to `clean()`
If the new field introduces additional validation requirements (beyond what's included with the field itself), implement them in the model's `clean()` method. Remember to call the model's original method using `super()` before or agter your custom validation as appropriate:
```
class Foo(models.Model):
def clean(self):
super(DeviceCSVForm, self).clean()
# Custom validation goes here
if self.bar is None:
raise ValidationError()
```
## 3. Add CSV helpers
Add the name of the new field to `csv_headers` and included a CSV-friendly representation of its data in the model's `to_csv()` method. These will be used when exporting objects in CSV format.
## 4. Update relevant querysets
If you're adding a relational field (e.g. `ForeignKey`) and intend to include the data when retreiving a list of objects, be sure to include the field using `prefetch_related()` as appropriate. This will optimize the view and avoid excessive database lookups.
## 5. Update API serializer
Extend the model's API serializer in `<app>.api.serializers` to include the new field. In most cases, it will not be necessary to also extend the nested serializer, which produces a minimal represenation of the model.
## 6. Add choices to API view
If the new field has static choices, add it to the `FieldChoicesViewSet` for the app.
## 7. Add field to forms
Extend any forms to include the new field as appropriate. Common forms include:
* **Credit/edit** - Manipulating a single object
* **Bulk edit** - Performing a change on mnay objects at once
* **CSV import** - The form used when bulk importing objects in CSV format
* **Filter** - Displays the options available for filtering a list of objects (both UI and API)
## 8. Extend object filter set
If the new field should be filterable, add it to the `FilterSet` for the model. If the field should be searchable, remember to reference it in the FilterSet's `search()` method.
## 9. Add column to object table
If the new field will be included in the object list view, add a column to the model's table. For simple fields, adding the field name to `Meta.fields` will be sufficient. More complex fields may require explicitly declaring a new column.
## 10. Update the UI templates
Edit the object's view template to display the new field. There may also be a custom add/edit form template that needs to be updated.
## 11. Create/extend test cases
Create or extend the relevant test cases to verify that the new field and any accompanying validation logic perform as expected. This is especially important for relational fields. NetBox incorporates various test suites, including:
* API serializer/view tests
* Filter tests
* Form tests
* Model tests
* View tests
Be diligent to ensure all of the relevant test suites are adapted or extended as necessary to test any new functionality.

30
docs/development/index.md Normal file
View File

@@ -0,0 +1,30 @@
# NetBox Development
NetBox is maintained as a [GitHub project](https://github.com/netbox-community/netbox) under the Apache 2 license. Users are encouraged to submit GitHub issues for feature requests and bug reports, however we are very selective about pull requests. Please see the `CONTRIBUTING` guide for more direction on contributing to NetBox.
## Communication
Communication among developers should always occur via public channels:
* [GitHub issues](https://github.com/netbox-community/netbox/issues) - All feature requests, bug reports, and other substantial changes to the code base **must** be documented in an issue.
* [The mailing list](https://groups.google.com/forum/#!forum/netbox-discuss) - The preferred forum for general discussion and support issues. Ideal for shaping a feature request prior to submitting an issue.
* [#netbox on NetworkToCode](http://slack.networktocode.com/) - Good for quick chats. Avoid any discussion that might need to be referenced later on, as the chat history is not retained long.
## Governance
NetBox follows the [benevolent dictator](http://oss-watch.ac.uk/resources/benevolentdictatorgovernancemodel) model of governance, with [Jeremy Stretch](https://github.com/jeremystretch) ultimately responsible for all changes to the code base. While community contributions are welcomed and encouraged, the lead maintainer's primary role is to ensure the project's long-term maintainability and continued focus on its primary functions (in other words, avoid scope creep).
## Project Structure
All development of the current NetBox release occurs in the `develop` branch; releases are packaged from the `master` branch. The `master` branch should _always_ represent the current stable release in its entirety, such that installing NetBox by either downloading a packaged release or cloning the `master` branch provides the same code base.
NetBox components are arranged into functional subsections called _apps_ (a carryover from Django verancular). Each app holds the models, views, and templates relevant to a particular function:
* `circuits`: Communications circuits and providers (not to be confused with power circuits)
* `dcim`: Datacenter infrastructure management (sites, racks, and devices)
* `extras`: Additional features not considered part of the core data model
* `ipam`: IP address management (VRFs, prefixes, IP addresses, and VLANs)
* `secrets`: Encrypted storage of sensitive data (e.g. login credentials)
* `tenancy`: Tenants (such as customers) to which NetBox objects may be assigned
* `utilities`: Resources which are not user-facing (extendable classes, etc.)
* `virtualization`: Virtual machines and clusters

View File

@@ -0,0 +1,92 @@
# Release Checklist
## Minor Version Bumps
### Update Requirements
Required Python packages are maintained in two files. `base_requirements.txt` contains a list of all the packages required by NetBox. Some of them may be pinned to a specific version of the package due to a known issue. For example:
```
# https://github.com/encode/django-rest-framework/issues/6053
djangorestframework==3.8.1
```
The other file is `requirements.txt`, which lists each of the required packages pinned to its current stable version. When NetBox is installed, the Python environment is configured to match this file. This helps ensure that a new release of a dependency doesn't break NetBox.
Every minor version release should refresh `requirements.txt` so that it lists the most recent stable release of each package. To do this:
1. Create a new virtual environment.
2. Install the latest version of all required packages via pip:
```
pip install -U -r base_requirements.txt
```
3. Run all tests and check that the UI and API function as expected.
4. Update the package versions in `requirements.txt` as appropriate.
### Update Static Libraries
Update the following static libraries to their most recent stable release:
* Bootstrap 3
* Font Awesome 4
* Select2
* jQuery
* jQuery UI
### Squash Schema Migrations
Database schema migrations should be squashed for each new minor release. See the [squashing guide](squashing-migrations.md) for the detailed process.
### Create a new Release Notes Page
Create a file at `/docs/release-notes/X.Y.md` to establish the release notes for the new release. Add the file to the table of contents within `mkdocs.yml`.
### Manually Perform a New Install
Create a new installation of NetBox by following [the current documentation](http://netbox.readthedocs.io/en/latest/). This should be a manual process, so that issues with the documentation can be identified and corrected.
### Close the Release Milestone
Close the release milestone on GitHub. Ensure that there are no remaining open issues associated with it.
---
## All Releases
### Verify CI Build Status
Ensure that continuous integration testing on the `develop` branch is completing successfully.
### Update Version and Changelog
Update the `VERSION` constant in `settings.py` to the new release version and annotate the current data in the release notes for the new version.
### Submit a Pull Request
Submit a pull request title **"Release vX.Y.Z"** to merge the `develop` branch into `master`. Include a brief change log listing the features, improvements, and/or bugs addressed in the release.
Once CI has completed on the PR, merge it.
### Create a New Release
Draft a [new release](https://github.com/netbox-community/netbox/releases/new) with the following parameters.
* **Tag:** Current version (e.g. `v2.3.4`)
* **Target:** `master`
* **Title:** Version and date (e.g. `v2.3.4 - 2018-08-02`)
Copy the description from the pull request into the release notes.
### Update the Development Version
On the `develop` branch, update `VERSION` in `settings.py` to point to the next release. For example, if you just released v2.3.4, set:
```
VERSION = 'v2.3.5-dev'
```
### Announce the Release
Announce the release on the [mailing list](https://groups.google.com/forum/#!forum/netbox-discuss). Include a link to the release and the (HTML-formatted) release notes.

View File

@@ -0,0 +1,168 @@
# Squashing Database Schema Migrations
## What are Squashed Migrations?
The Django framework on which NetBox is built utilizes [migration files](https://docs.djangoproject.com/en/stable/topics/migrations/) to keep track of changes to the PostgreSQL database schema. Each time a model is altered, the resulting schema change is captured in a migration file, which can then be applied to effect the new schema.
As changes are made over time, more and more migration files are created. Although not necessarily problematic, it can be beneficial to merge and compress these files occasionally to reduce the total number of migrations that need to be applied upon installation of NetBox. This merging process is called _squashing_ in Django vernacular, and results in two parallel migration paths: individual and squashed.
Below is an example showing both individual and squashed migration files within an app:
| Individual | Squashed |
|------------|----------|
| 0001_initial | 0001_initial_squashed_0004_add_field |
| 0002_alter_field | . |
| 0003_remove_field | . |
| 0004_add_field | . |
| 0005_another_field | 0005_another_field |
In the example above, a new installation can leverage the squashed migrations to apply only two migrations:
* `0001_initial_squashed_0004_add_field`
* `0005_another_field`
This is because the squash file contains all of the operations performed by files `0001` through `0004`.
However, an existing installation that has already applied some of the individual migrations contained within the squash file must continue applying individual migrations. For instance, an installation which currently has up to `0002_alter_field` applied must apply the following migrations to become current:
* `0003_remove_field`
* `0004_add_field`
* `0005_another_field`
Squashed migrations are opportunistic: They are used only if applicable to the current environment. Django will fall back to using individual migrations if the squashed migrations do not agree with the current database schema at any point.
## Squashing Migrations
During every minor (i.e. 2.x) release, migrations should be squashed to help simplify the migration process for new installations. The process below describes how to squash migrations efficiently and with minimal room for error.
### 1. Create a New Branch
Create a new branch off of the `develop-2.x` branch. (Migrations should be squashed _only_ in preparation for a new minor release.)
```
git checkout -B squash-migrations
```
### 2. Delete Existing Squash Files
Delete the most recent squash file within each NetBox app. This allows us to extend squash files where the opportunity exists. For example, we might be able to replace `0005_to_0008` with `0005_to_0011`.
### 3. Generate the Current Migration Plan
Use Django's `showmigrations` utility to display the order in which all migrations would be applied for a new installation.
```
manage.py showmigrations --plan
```
From the resulting output, delete all lines which reference an external migration. Any migrations imposed by Django itself on an external package are not relevant.
### 4. Create Squash Files
Begin iterating through the migration plan, looking for successive sets of migrations within an app. These are candidates for squashing. For example:
```
[X] extras.0014_configcontexts
[X] extras.0015_remove_useraction
[X] extras.0016_exporttemplate_add_cable
[X] extras.0017_exporttemplate_mime_type_length
[ ] extras.0018_exporttemplate_add_jinja2
[ ] extras.0019_tag_taggeditem
[X] dcim.0062_interface_mtu
[X] dcim.0063_device_local_context_data
[X] dcim.0064_remove_platform_rpc_client
[ ] dcim.0065_front_rear_ports
[X] circuits.0001_initial_squashed_0010_circuit_status
[ ] dcim.0066_cables
...
```
Migrations `0014` through `0019` in `extras` can be squashed, as can migrations `0062` through `0065` in `dcim`. Migration `0066` cannot be included in the same squash file, because the `circuits` migration must be applied before it. (Note that whether or not each migration is currently applied to the database does not matter.)
Squash files are created using Django's `squashmigrations` utility:
```
manage.py squashmigrations <app> <start> <end>
```
For example, our first step in the example would be to run `manage.py squashmigrations extras 0014 0019`.
!!! note
Specifying a migration file's numeric index is enough to uniquely identify it within an app. There is no need to specify the full filename.
This will create a new squash file within the app's `migrations` directory, named as a concatenation of its beginning and ending migration. Some manual editing is necessary for each new squash file for housekeeping purposes:
* Remove the "automatically generated" comment at top (to indicate that a human has reviewed the file).
* Reorder `import` statements as necessary per PEP8.
* It may be necessary to copy over custom functions from the original migration files (this will be indicated by a comment near the top of the squash file). It is safe to remove any functions that exist solely to accomodate reverse migrations (which we no longer support).
Repeat this process for each candidate set of migrations until you reach the end of the migration plan.
### 5. Check for Missing Migrations
If everything went well, at this point we should have a completed squashed path. Perform a dry run to check for any missing migrations:
```
manage.py migrate --dry-run
```
### 5. Run Migrations
Next, we'll apply the entire migration path to an empty database. Begin by dropping and creating your development database.
!!! warning
Obviously, first back up any data you don't want to lose.
```
sudo -u postgres psql -c 'drop database netbox'
sudo -u postgres psql -c 'create database netbox'
```
Apply the migrations with the `migrate` management command. It is not necessary to specify a particular migration path; Django will detect and use the squashed migrations automatically. You can verify the exact migrations being applied by enabling verboes output with `-v 2`.
```
manage.py migrate -v 2
```
### 6. Commit the New Migrations
If everything is successful to this point, commit your changes to the `squash-migrations` branch.
### 7. Validate Resulting Schema
To ensure our new squashed migrations do not result in a deviation from the original schema, we'll compare the two. With the new migration file safely commit, check out the `develop-2.x` branch, which still contains only the individual migrations.
```
git checkout develop-2.x
```
Temporarily install the [django-extensions](https://django-extensions.readthedocs.io/) package, which provides the `sqldiff utility`:
```
pip install django-extensions
```
Also add `django_extensions` to `INSTALLED_APPS` in `netbox/netbox/settings.py`.
At this point, our database schema has been defined by using the squashed migrations. We can run `sqldiff` to see if it differs any from what the current (non-squashed) migrations would generate. `sqldiff` accepts a list of apps against which to run:
```
manage.py sqldiff circuits dcim extras ipam secrets tenancy users virtualization
```
It is safe to ignore errors indicating an "unknown database type" for the following fields:
* `dcim_interface.mac_address`
* `ipam_aggregate.prefix`
* `ipam_prefix.prefix`
It is also safe to ignore the message "Table missing: extras_script".
Resolve any differences by correcting migration files in the `squash-migrations` branch.
!!! warning
Don't forget to remove `django_extension` from `INSTALLED_APPS` before committing your changes.
### 8. Merge the Squashed Migrations
Once all squashed migrations have been validated and all tests run successfully, merge the `squash-migrations` branch into `develop-2.x`. This completes the squashing process.

View File

@@ -0,0 +1,62 @@
# Style Guide
NetBox generally follows the [Django style guide](https://docs.djangoproject.com/en/stable/internals/contributing/writing-code/coding-style/), which is itself based on [PEP 8](https://www.python.org/dev/peps/pep-0008/). [Pycodestyle](https://github.com/pycqa/pycodestyle) is used to validate code formatting, ignoring certain violations. See `scripts/cibuild.sh`.
## PEP 8 Exceptions
* Wildcard imports (for example, `from .constants import *`) are acceptable under any of the following conditions:
* The library being import contains only constant declarations (`constants.py`)
* The library being imported explicitly defines `__all__` (e.g. `<app>.api.nested_serializers`)
* Maximum line length is 120 characters (E501)
* This does not apply to HTML templates or to automatically generated code (e.g. database migrations).
* Line breaks are permitted following binary operators (W504)
## Enforcing Code Style
The `pycodestyle` utility (previously `pep8`) is used by the CI process to enforce code style. It is strongly recommended to include as part of your commit process. A git commit hook is provided in the source at `scripts/git-hooks/pre-commit`. Linking to this script from `.git/hooks/` will invoke `pycodestyle` prior to every commit attempt and abort if the validation fails.
```
$ cd .git/hooks/
$ ln -s ../../scripts/git-hooks/pre-commit
```
To invoke `pycodestyle` manually, run:
```
pycodestyle --ignore=W504,E501 netbox/
```
## Introducing New Dependencies
The introduction of a new dependency is best avoided unless it is absolutely necessary. For small features, it's generally preferable to replicate functionality within the NetBox code base rather than to introduce reliance on an external project. This reduces both the burden of tracking new releases and our exposure to outside bugs and attacks.
If there's a strong case for introducing a new dependency, it must meet the following criteria:
* Its complete source code must be published and freely accessible without registration.
* Its license must be conducive to inclusion in an open source project.
* It must be actively maintained, with no longer than one year between releases.
* It must be available via the [Python Package Index](https://pypi.org/) (PyPI).
When adding a new dependency, a short description of the package and the URL of its code repository must be added to `base_requirements.txt`. Additionally, a line specifying the package name pinned to the current stable release must be added to `requirements.txt`. This ensures that NetBox will install only the known-good release and simplify support efforts.
## General Guidance
* When in doubt, remain consistent: It is better to be consistently incorrect than inconsistently correct. If you notice in the course of unrelated work a pattern that should be corrected, continue to follow the pattern for now and open a bug so that the entire code base can be evaluated at a later point.
* Prioritize readability over concision. Python is a very flexible language that typically gives us several options for expressing a given piece of logic, but some may be more friendly to the reader than others. (List comprehensions are particularly vulnerable to over-optimization.) Always remain considerate of the future reader who may need to interpret your code without the benefit of the context within which you are writing it.
* No easter eggs. While they can be fun, NetBox must be considered as a business-critical tool. The potential, however minor, for introducing a bug caused by unnecessary logic is best avoided entirely.
* Constants (variables which generally do not change) should be declared in `constants.py` within each app. Wildcard imports from the file are acceptable.
* Every model should have a docstring. Every custom method should include an explanation of its function.
* Nested API serializers generate minimal representations of an object. These are stored separately from the primary serializers to avoid circular dependencies. Always import nested serializers from other apps directly. For example, from within the DCIM app you would write `from ipam.api.nested_serializers import NestedIPAddressSerializer`.
## Branding
* When referring to NetBox in writing, use the proper form "NetBox," with the letters N and B capitalized. The lowercase form "netbox" should be used in code, filenames, etc. But never "Netbox" or any other deviation.
* There is an SVG form of the NetBox logo at [docs/netbox_logo.svg](../netbox_logo.svg). It is preferred to use this logo for all purposes as it scales to arbitrary sizes without loss of resolution. If a raster image is required, the SVG logo should be converted to a PNG image of the prescribed size.

19
docs/extra.css Normal file
View File

@@ -0,0 +1,19 @@
/* Images */
img {
display: block;
margin-left: auto;
margin-right: auto;
}
/* Tables */
table {
margin-bottom: 24px;
width: 100%;
}
th {
background-color: #f0f0f0;
padding: 6px;
}
td {
padding: 6px;
}

View File

@@ -1,3 +1,5 @@
![NetBox](netbox_logo.svg "NetBox logo")
# What is NetBox?
NetBox is an open source web application designed to help manage and document computer networks. Initially conceived by the network engineering team at [DigitalOcean](https://www.digitalocean.com/), NetBox was developed specifically to address the needs of network and infrastructure engineers. It encompasses the following aspects of network management:
@@ -10,7 +12,7 @@ NetBox is an open source web application designed to help manage and document co
* **Data circuits** - Long-haul communications circuits and providers
* **Secrets** - Encrypted storage of sensitive credentials
# What NetBox Isn't
## What NetBox Is Not
While NetBox strives to cover many areas of network management, the scope of its feature set is necessarily limited. This ensures that development focuses on core functionality and that scope creep is reasonably contained. To that end, it might help to provide some examples of functionality that NetBox **does not** provide:
@@ -22,33 +24,39 @@ While NetBox strives to cover many areas of network management, the scope of its
That said, NetBox _can_ be used to great effect in populating external tools with the data they need to perform these functions.
# Design Philosophy
## Design Philosophy
NetBox was designed with the following tenets foremost in mind.
## Replicate the Real World
### Replicate the Real World
Careful consideration has been given to the data model to ensure that it can accurately reflect a real-world network. For instance, IP addresses are assigned not to devices, but to specific interfaces attached to a device, and an interface may have multiple IP addresses assigned to it.
## Serve as a "Source of Truth"
### Serve as a "Source of Truth"
NetBox intends to represent the _desired_ state of a network versus its _operational_ state. As such, automated import of live network state is strongly discouraged. All data created in NetBox should first be vetted by a human to ensure its integrity. NetBox can then be used to populate monitoring and provisioning systems with a high degree of confidence.
## Keep it Simple
### Keep it Simple
When given a choice between a relatively simple [80% solution](https://en.wikipedia.org/wiki/Pareto_principle) and a much more complex complete solution, the former will typically be favored. This ensures a lean codebase with a low learning curve.
# Application Stack
## Application Stack
NetBox is built on the [Django](https://djangoproject.com/) Python framework and utilizes a [PostgreSQL](https://www.postgresql.org/) database. It runs as a WSGI service behind your choice of HTTP server.
| Function | Component |
|--------------|-------------------|
| HTTP Service | nginx or Apache |
| WSGI Service | gunicorn or uWSGI |
| Application | Django/Python |
| Database | PostgreSQL 9.4+ |
| Function | Component |
|--------------------|-------------------|
| HTTP service | nginx or Apache |
| WSGI service | gunicorn or uWSGI |
| Application | Django/Python |
| Database | PostgreSQL 9.4+ |
| Task queuing | Redis/django-rq |
| Live device access | NAPALM |
# Getting Started
## Supported Python Versions
See the [installation guide](installation/postgresql.md) for help getting NetBox up and running quickly.
NetBox supports Python 3.6 and 3.7 environments currently. (Support for Python 3.5 was removed in NetBox v2.8.)
## Getting Started
See the [installation guide](installation/index.md) for help getting NetBox up and running quickly.

View File

@@ -1,14 +1,15 @@
NetBox requires a PostgreSQL database to store data. This can be hosted locally or on a remote server. (Please note that MySQL is not supported, as NetBox leverages PostgreSQL's built-in [network address types](https://www.postgresql.org/docs/current/static/datatype-net-types.html).)
# PostgreSQL Database Installation
!!! note
The installation instructions provided here have been tested to work on Ubuntu 16.04 and CentOS 7.4. The particular commands needed to install dependencies on other distributions may vary significantly. Unfortunately, this is outside the control of the NetBox maintainers. Please consult your distribution's documentation for assistance with any errors.
This section entails the installation and configuration of a local PostgreSQL database. If you already have a PostgreSQL database service in place, skip to [the next section](2-redis.md).
!!! warning
NetBox v2.2 and later requires PostgreSQL 9.4 or higher.
NetBox requires PostgreSQL 9.4 or higher. Please note that MySQL and other relational databases are **not** supported.
# Installation
The installation instructions provided here have been tested to work on Ubuntu 18.04 and CentOS 7.5. The particular commands needed to install dependencies on other distributions may vary significantly. Unfortunately, this is outside the control of the NetBox maintainers. Please consult your distribution's documentation for assistance with any errors.
**Ubuntu**
## Installation
#### Ubuntu
If a recent enough version of PostgreSQL is not available through your distribution's package manager, you'll need to install it from an official [PostgreSQL repository](https://wiki.postgresql.org/wiki/Apt).
@@ -17,13 +18,13 @@ If a recent enough version of PostgreSQL is not available through your distribut
# apt-get install -y postgresql libpq-dev
```
**CentOS**
#### CentOS
CentOS 7.4 does not ship with a recent enough version of PostgreSQL, so it will need to be installed from an external repository. The instructions below show the installation of PostgreSQL 9.6.
CentOS 7.5 does not ship with a recent enough version of PostgreSQL, so it will need to be installed from an external repository. The instructions below show the installation of PostgreSQL 9.6.
```no-highlight
# yum install https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm
# yum install postgresql96 postgresql96-server postgresql96-devel
# yum install -y https://download.postgresql.org/pub/repos/yum/9.6/redhat/rhel-7-x86_64/pgdg-centos96-9.6-3.noarch.rpm
# yum install -y postgresql96 postgresql96-server postgresql96-devel
# /usr/pgsql-9.6/bin/postgresql96-setup initdb
```
@@ -41,7 +42,7 @@ Then, start the service and enable it to run at boot:
# systemctl enable postgresql-9.6
```
# Database Creation
## Database Creation
At a minimum, we need to create a database for NetBox and assign it a username and password for authentication. This is done with the following commands.
@@ -62,6 +63,8 @@ GRANT
postgres=# \q
```
## Verify Service Status
You can verify that authentication works issuing the following command and providing the configured password. (Replace `localhost` with your database server if using a remote database.)
```no-highlight

View File

@@ -0,0 +1,31 @@
# Redis Installation
## Install Redis
[Redis](https://redis.io/) is an in-memory key-value store which NetBox employs for caching and queuing. This section entails the installation and configuration of a local Redis instance. If you already have a Redis service in place, skip to [the next section](3-netbox.md).
### Ubuntu
```no-highlight
# apt-get install -y redis-server
```
### CentOS
```no-highlight
# yum install -y epel-release
# yum install -y redis
# systemctl start redis
# systemctl enable redis
```
You may wish to modify the Redis configuration at `/etc/redis.conf` or `/etc/redis/redis.conf`, however in most cases the default configuration is sufficient.
## Verify Service Status
Use the `redis-cli` utility to ensure the Redis service is functional:
```no-highlight
$ redis-cli ping
PONG
```

View File

@@ -0,0 +1,271 @@
# NetBox Installation
This section of the documentation discusses installing and configuring the NetBox application itself.
## Install System Packages
Begin by installing all system packages required by NetBox and its dependencies. Note that beginning with NetBox v2.8, Python 3.6 or later is required.
### Ubuntu
```no-highlight
# apt-get install -y python3.6 python3-pip python3-venv python3-dev build-essential libxml2-dev libxslt1-dev libffi-dev libpq-dev libssl-dev zlib1g-dev
```
### CentOS
```no-highlight
# yum install -y gcc python36 python36-devel python36-setuptools libxml2-devel libxslt-devel libffi-devel openssl-devel redhat-rpm-config
# easy_install-3.6 pip
```
## Download NetBox
You may opt to install NetBox either from a numbered release or by cloning the master branch of its repository on GitHub.
### Option A: Download a Release
Download the [latest stable release](https://github.com/netbox-community/netbox/releases) from GitHub as a tarball or ZIP archive and extract it to your desired path. In this example, we'll use `/opt/netbox`.
```no-highlight
# wget https://github.com/netbox-community/netbox/archive/vX.Y.Z.tar.gz
# tar -xzf vX.Y.Z.tar.gz -C /opt
# cd /opt/
# ln -s netbox-X.Y.Z/ netbox
# cd /opt/netbox/
```
### Option B: Clone the Git Repository
Create the base directory for the NetBox installation. For this guide, we'll use `/opt/netbox`.
```no-highlight
# mkdir -p /opt/netbox/ && cd /opt/netbox/
```
If `git` is not already installed, install it:
#### Ubuntu
```no-highlight
# apt-get install -y git
```
#### CentOS
```no-highlight
# yum install -y git
```
Next, clone the **master** branch of the NetBox GitHub repository into the current directory:
```no-highlight
# git clone -b master https://github.com/netbox-community/netbox.git .
Cloning into '.'...
remote: Counting objects: 1994, done.
remote: Compressing objects: 100% (150/150), done.
remote: Total 1994 (delta 80), reused 0 (delta 0), pack-reused 1842
Receiving objects: 100% (1994/1994), 472.36 KiB | 0 bytes/s, done.
Resolving deltas: 100% (1495/1495), done.
Checking connectivity... done.
```
## Create the NetBox User
Create a system user account named `netbox`. We'll configure the WSGI and HTTP services to run under this account. We'll also assign this user ownership of the media directory. This ensures that NetBox will be able to save local files.
!!! note
CentOS users may need to create the `netbox` group first.
```
# adduser --system --group netbox
# chown --recursive netbox /opt/netbox/netbox/media/
```
## Set Up Python Environment
We'll use a Python [virtual environment](https://docs.python.org/3.6/tutorial/venv.html) to ensure NetBox's required packages don't conflict with anything in the base system. This will create a directory named `venv` in our NetBox root.
```no-highlight
# python3 -m venv /opt/netbox/venv
```
Next, activate the virtual environment and install the required Python packages. You should see your console prompt change to indicate the active environment. (Activating the virtual environment updates your command shell to use the local copy of Python that we just installed for NetBox instead of the system's Python interpreter.)
```no-highlight
# source venv/bin/activate
(venv) # pip3 install -r requirements.txt
```
### NAPALM Automation (Optional)
NetBox supports integration with the [NAPALM automation](https://napalm-automation.net/) library. NAPALM allows NetBox to fetch live data from devices and return it to a requester via its REST API. Installation of NAPALM is optional. To enable it, install the `napalm` package:
```no-highlight
(venv) # pip3 install napalm
```
To ensure NAPALM is automatically re-installed during future upgrades, create a file named `local_requirements.txt` in the NetBox root directory (alongside `requirements.txt`) and list the `napalm` package:
```no-highlight
# echo napalm >> local_requirements.txt
```
### Remote File Storage (Optional)
By default, NetBox will use the local filesystem to storage uploaded files. To use a remote filesystem, install the [`django-storages`](https://django-storages.readthedocs.io/en/stable/) library and configure your [desired backend](../../configuration/optional-settings/#storage_backend) in `configuration.py`.
```no-highlight
(venv) # pip3 install django-storages
```
Don't forget to add the `django-storages` package to `local_requirements.txt` to ensure it gets re-installed during future upgrades:
```no-highlight
# echo django-storages >> local_requirements.txt
```
## Configuration
Move into the NetBox configuration directory and make a copy of `configuration.example.py` named `configuration.py`.
```no-highlight
(venv) # cd netbox/netbox/
(venv) # cp configuration.example.py configuration.py
```
Open `configuration.py` with your preferred editor and set the following variables:
* `ALLOWED_HOSTS`
* `DATABASE`
* `REDIS`
* `SECRET_KEY`
### ALLOWED_HOSTS
This is a list of the valid hostnames by which this server can be reached. You must specify at least one name or IP address.
Example:
```python
ALLOWED_HOSTS = ['netbox.example.com', '192.0.2.123']
```
### DATABASE
This parameter holds the database configuration details. You must define the username and password used when you configured PostgreSQL. If the service is running on a remote host, replace `localhost` with its address. See the [configuration documentation](../../configuration/required-settings/#database) for more detail on individual parameters.
Example:
```python
DATABASE = {
'NAME': 'netbox', # Database name
'USER': 'netbox', # PostgreSQL username
'PASSWORD': 'J5brHrAXFLQSif0K', # PostgreSQL password
'HOST': 'localhost', # Database server
'PORT': '', # Database port (leave blank for default)
'CONN_MAX_AGE': 300, # Max database connection age
}
```
### REDIS
Redis is a in-memory key-value store required as part of the NetBox installation. It is used for features such as webhooks and caching. Redis typically requires minimal configuration; the values below should suffice for most installations. See the [configuration documentation](../../configuration/required-settings/#redis) for more detail on individual parameters.
```python
REDIS = {
'tasks': {
'HOST': 'redis.example.com',
'PORT': 1234,
'PASSWORD': 'foobar',
'DATABASE': 0,
'DEFAULT_TIMEOUT': 300,
'SSL': False,
},
'caching': {
'HOST': 'localhost',
'PORT': 6379,
'PASSWORD': '',
'DATABASE': 1,
'DEFAULT_TIMEOUT': 300,
'SSL': False,
}
}
```
### SECRET_KEY
Generate a random secret key of at least 50 alphanumeric characters. This key must be unique to this installation and must not be shared outside the local system.
You may use the script located at `netbox/generate_secret_key.py` to generate a suitable key.
!!! note
In the case of a highly available installation with multiple web servers, `SECRET_KEY` must be identical among all servers in order to maintain a persistent user session state.
## Run Database Migrations
Before NetBox can run, we need to install the database schema. This is done by running `python3 manage.py migrate` from the `netbox` directory (`/opt/netbox/netbox/` in our example):
```no-highlight
(venv) # cd /opt/netbox/netbox/
(venv) # python3 manage.py migrate
Operations to perform:
Apply all migrations: dcim, sessions, admin, ipam, utilities, auth, circuits, contenttypes, extras, secrets, users
Running migrations:
Rendering model states... DONE
Applying contenttypes.0001_initial... OK
Applying auth.0001_initial... OK
Applying admin.0001_initial... OK
...
```
If this step results in a PostgreSQL authentication error, ensure that the username and password created in the database match what has been specified in `configuration.py`
## Create a Super User
NetBox does not come with any predefined user accounts. You'll need to create a super user to be able to log into NetBox:
```no-highlight
(venv) # python3 manage.py createsuperuser
Username: admin
Email address: admin@example.com
Password:
Password (again):
Superuser created successfully.
```
## Collect Static Files
```no-highlight
(venv) # python3 manage.py collectstatic --no-input
959 static files copied to '/opt/netbox/netbox/static'.
```
## Test the Application
At this point, NetBox should be able to run. We can verify this by starting a development instance:
```no-highlight
(venv) # python3 manage.py runserver 0.0.0.0:8000 --insecure
Performing system checks...
System check identified no issues (0 silenced).
November 28, 2018 - 09:33:45
Django version 2.0.9, using settings 'netbox.settings'
Starting development server at http://0.0.0.0:8000/
Quit the server with CONTROL-C.
```
Next, connect to the name or IP of the server (as defined in `ALLOWED_HOSTS`) on port 8000; for example, <http://127.0.0.1:8000/>. You should be greeted with the NetBox home page. Note that this built-in web service is for development and testing purposes only. **It is not suited for production use.**
!!! warning
If the test service does not run, or you cannot reach the NetBox home page, something has gone wrong. Do not proceed with the rest of this guide until the installation has been corrected.
Note that the initial UI will be locked down for non-authenticated users.
![NetBox UI as seen by a non-authenticated user](../media/installation/netbox_ui_guest.png)
After logging in as the superuser you created earlier, all areas of the UI will be available.
![NetBox UI as seen by an administrator](../media/installation/netbox_ui_admin.png)

View File

@@ -0,0 +1,135 @@
# HTTP Server Setup
We'll set up a simple WSGI front end using [gunicorn](http://gunicorn.org/) for the purposes of this guide. For web servers, we provide example configurations for both [nginx](https://www.nginx.com/resources/wiki/) and [Apache](http://httpd.apache.org/docs/2.4). (You are of course free to use whichever combination of HTTP and WSGI services you'd like.) We'll use systemd to enable service persistence.
!!! info
For the sake of brevity, only Ubuntu 18.04 instructions are provided here, but this sort of web server and WSGI configuration is not unique to NetBox. Please consult your distribution's documentation for assistance if needed.
## Obtain an SSL Certificate
To enable HTTPS access to NetBox, you'll need a valid SSL certificate. You can purchase one from a trusted commercial provider, obtain one for free from [Let's Encrypt](https://letsencrypt.org/getting-started/), or generate your own (although self-signed certificates are generally untrusted). Both the public certificate and private key files need to be installed on your NetBox server in a location that is readable by the `netbox` user.
The command below can be used to generate a self-signed certificate for testing purposes, however it is strongly recommended to use a certificate from a trusted authority in production. Two files will be created: the public certificate (`netbox.crt`) and the private key (`netbox.key`). The certificate is published to the world, whereas the private key must be kept secret at all times.
```no-highlight
# openssl req -x509 -nodes -days 365 -newkey rsa:2048 \
-keyout /etc/ssl/private/netbox.key \
-out /etc/ssl/certs/netbox.crt
```
## HTTP Daemon Installation
### Option A: nginx
The following will serve as a minimal nginx configuration. Be sure to modify your server name and installation path appropriately.
```no-highlight
# apt-get install -y nginx
```
Once nginx is installed, copy the default nginx configuration file to `/etc/nginx/sites-available/netbox`. Be sure to replace `netbox.example.com` with the domain name or IP address of your installation. (This should match the value configured for `ALLOWED_HOSTS` in `configuration.py`.)
```no-highlight
# cp /opt/netbox/contrib/nginx.conf /etc/nginx/sites-available/netbox
```
Then, delete `/etc/nginx/sites-enabled/default` and create a symlink in the `sites-enabled` directory to the configuration file you just created.
```no-highlight
# cd /etc/nginx/sites-enabled/
# rm default
# ln -s /etc/nginx/sites-available/netbox
```
Finally, restart the `nginx` service to use the new configuration.
```no-highlight
# service nginx restart
```
### Option B: Apache
Begin by installing Apache:
```no-highlight
# apt-get install -y apache2
```
Next, copy the default configuration file to `/etc/apache2/sites-available/`. Be sure to modify the `ServerName` parameter appropriately.
```no-highlight
# cp /opt/netbox/contrib/apache.conf /etc/apache2/sites-available/netbox.conf
```
Finally, ensure that the required Apache modules are enabled, enable the `netbox` site, and reload Apache:
```no-highlight
# a2enmod ssl proxy proxy_http headers
# a2ensite netbox
# service apache2 restart
```
!!! note
Certain components of NetBox (such as the display of rack elevation diagrams) rely on the use of embedded objects. Ensure that your HTTP server configuration does not override the `X-Frame-Options` response header set by NetBox.
## Gunicorn Configuration
Copy `/opt/netbox/contrib/gunicorn.py` to `/opt/netbox/gunicorn.py`. (We make a copy of this file to ensure that any changes to it do not get overwritten by a future upgrade.)
```no-highlight
# cd /opt/netbox
# cp contrib/gunicorn.py /opt/netbox/gunicorn.py
```
You may wish to edit this file to change the bound IP address or port number, or to make performance-related adjustments. See [the Gunicorn documentation](https://docs.gunicorn.org/en/stable/configure.html) for the available configuration parameters.
## systemd Configuration
We'll use systemd to control the daemonization of NetBox services. First, copy `contrib/netbox.service` and `contrib/netbox-rq.service` to the `/etc/systemd/system/` directory:
```no-highlight
# cp contrib/*.service /etc/systemd/system/
```
Then, start the `netbox` and `netbox-rq` services and enable them to initiate at boot time:
```no-highlight
# systemctl daemon-reload
# systemctl start netbox netbox-rq
# systemctl enable netbox netbox-rq
```
You can use the command `systemctl status netbox` to verify that the WSGI service is running:
```no-highlight
# systemctl status netbox.service
● netbox.service - NetBox WSGI Service
Loaded: loaded (/etc/systemd/system/netbox.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2019-12-12 19:23:40 UTC; 25s ago
Docs: https://netbox.readthedocs.io/en/stable/
Main PID: 11993 (gunicorn)
Tasks: 6 (limit: 2362)
CGroup: /system.slice/netbox.service
├─11993 /usr/bin/python3 /usr/local/bin/gunicorn --pid /var/tmp/netbox.pid --pythonpath /opt/netbox/...
├─12015 /usr/bin/python3 /usr/local/bin/gunicorn --pid /var/tmp/netbox.pid --pythonpath /opt/netbox/...
├─12016 /usr/bin/python3 /usr/local/bin/gunicorn --pid /var/tmp/netbox.pid --pythonpath /opt/netbox/...
...
```
At this point, you should be able to connect to the HTTP service at the server name or IP address you provided.
!!! info
Please keep in mind that the configurations provided here are bare minimums required to get NetBox up and running. You may want to make adjustments to better suit your production environment.
## Troubleshooting
If you are unable to connect to the HTTP server, check that:
* Nginx/Apache is running and configured to listen on the correct port.
* Access is not being blocked by a firewall. (Try connecting locally from the server itself.)
If you are able to connect but receive a 502 (bad gateway) error, check the following:
* The NetBox system process (gunicorn) is running: `systemctl status netbox`
* nginx/Apache is configured to connect to the port on which gunicorn is listening (default is 8001).
* SELinux is not preventing the reverse proxy connection. You may need to allow HTTP network connections with the command `setsebool -P httpd_can_network_connect 1`

View File

@@ -1,32 +1,44 @@
# LDAP Configuration
This guide explains how to implement LDAP authentication using an external server. User authentication will fall back to built-in Django users in the event of a failure.
# Requirements
## Install Requirements
## Install openldap-devel
### Install System Packages
On Ubuntu:
```no-highlight
sudo apt-get install -y python-dev libldap2-dev libsasl2-dev libssl-dev
# apt-get install -y libldap2-dev libsasl2-dev libssl-dev
```
On CentOS:
```no-highlight
sudo yum install -y python-devel openldap-devel
# yum install -y openldap-devel
```
## Install django-auth-ldap
### Install django-auth-ldap
Activate the Python virtual environment and install the `django-auth-ldap` package using pip:
```no-highlight
sudo pip install django-auth-ldap
# cd /opt/netbox/
# source venv/bin/activate
(venv) # pip3 install django-auth-ldap
```
# Configuration
Once installed, add the package to `local_requirements.txt` to ensure it is re-installed during future rebuilds of the virtual environment:
Create a file in the same directory as `configuration.py` (typically `netbox/netbox/`) named `ldap_config.py`. Define all of the parameters required below in `ldap_config.py`.
```no-highlight
(venv) # echo django-auth-ldap >> local_requirements.txt
```
## General Server Configuration
## Configuration
Create a file in the same directory as `configuration.py` (typically `netbox/netbox/`) named `ldap_config.py`. Define all of the parameters required below in `ldap_config.py`. Complete documentation of all `django-auth-ldap` configuration options is included in the project's [official documentation](http://django-auth-ldap.readthedocs.io/).
### General Server Configuration
!!! info
When using Windows Server 2012 you may need to specify a port on `AUTH_LDAP_SERVER_URI`. Use `3269` for secure, or `3268` for non-secure.
@@ -52,10 +64,12 @@ AUTH_LDAP_BIND_PASSWORD = "demo"
LDAP_IGNORE_CERT_ERRORS = True
```
## User Authentication
STARTTLS can be configured by setting `AUTH_LDAP_START_TLS = True` and using the `ldap://` URI scheme.
### User Authentication
!!! info
When using Windows Server, `2012 AUTH_LDAP_USER_DN_TEMPLATE` should be set to None.
When using Windows Server 2012, `AUTH_LDAP_USER_DN_TEMPLATE` should be set to None.
```python
from django_auth_ldap.config import LDAPSearch
@@ -77,15 +91,16 @@ AUTH_LDAP_USER_ATTR_MAP = {
}
```
# User Groups for Permissions
!!! Info
When using Microsoft Active Directory, Support for nested Groups can be activated by using `GroupOfNamesType()` instead of `NestedGroupOfNamesType()` for AUTH_LDAP_GROUP_TYPE.
### User Groups for Permissions
!!! info
When using Microsoft Active Directory, support for nested groups can be activated by using `NestedGroupOfNamesType()` instead of `GroupOfNamesType()` for `AUTH_LDAP_GROUP_TYPE`. You will also need to modify the import line to use `NestedGroupOfNamesType` instead of `GroupOfNamesType` .
```python
from django_auth_ldap.config import LDAPSearch, GroupOfNamesType
# This search ought to return all groups to which the user belongs. django_auth_ldap uses this to determine group
# heirarchy.
# hierarchy.
AUTH_LDAP_GROUP_SEARCH = LDAPSearch("dc=example,dc=com", ldap.SCOPE_SUBTREE,
"(objectClass=group)")
AUTH_LDAP_GROUP_TYPE = GroupOfNamesType()
@@ -93,6 +108,9 @@ AUTH_LDAP_GROUP_TYPE = GroupOfNamesType()
# Define a group required to login.
AUTH_LDAP_REQUIRE_GROUP = "CN=NETBOX_USERS,DC=example,DC=com"
# Mirror LDAP group assignments.
AUTH_LDAP_MIRROR_GROUPS = True
# Define special user types using groups. Exercise great caution when assigning superuser status.
AUTH_LDAP_USER_FLAGS_BY_GROUP = {
"is_active": "cn=active,ou=groups,dc=example,dc=com",
@@ -104,10 +122,31 @@ AUTH_LDAP_USER_FLAGS_BY_GROUP = {
AUTH_LDAP_FIND_GROUP_PERMS = True
# Cache groups for one hour to reduce LDAP traffic
AUTH_LDAP_CACHE_GROUPS = True
AUTH_LDAP_GROUP_CACHE_TIMEOUT = 3600
AUTH_LDAP_CACHE_TIMEOUT = 3600
```
* `is_active` - All users must be mapped to at least this group to enable authentication. Without this, users cannot log in.
* `is_staff` - Users mapped to this group are enabled for access to the administration tools; this is the equivalent of checking the "staff status" box on a manually created user. This doesn't grant any specific permissions.
* `is_superuser` - Users mapped to this group will be granted superuser status. Superusers are implicitly granted all permissions.
!!! warning
Authentication will fail if the groups (the distinguished names) do not exist in the LDAP directory.
## Troubleshooting LDAP
`supervisorctl restart netbox` restarts the Netbox service, and initiates any changes made to `ldap_config.py`. If there are syntax errors present, the NetBox process will not spawn an instance, and errors should be logged to `/var/log/supervisor/`.
For troubleshooting LDAP user/group queries, add the following lines to the start of `ldap_config.py` after `import ldap`.
```python
import logging, logging.handlers
logfile = "/opt/netbox/logs/django-ldap-debug.log"
my_logger = logging.getLogger('django_auth_ldap')
my_logger.setLevel(logging.DEBUG)
handler = logging.handlers.RotatingFileHandler(
logfile, maxBytes=1024 * 500, backupCount=5)
my_logger.addHandler(handler)
```
Ensure the file and path specified in logfile exist and are writable and executable by the application service account. Restart the netbox service and attempt to log into the site to trigger log entries to this file.

View File

@@ -0,0 +1,19 @@
# Installation
The following sections detail how to set up a new instance of NetBox:
1. [PostgreSQL database](1-postgresql.md)
1. [Redis](2-redis.md)
3. [NetBox components](3-netbox.md)
4. [HTTP daemon](4-http-daemon.md)
5. [LDAP authentication](5-ldap.md) (optional)
Below is a simplified overview of the NetBox application stack for reference:
![NetBox UI as seen by a non-authenticated user](../media/installation/netbox_application_stack.png)
## Upgrading
If you are upgrading from an existing installation, please consult the [upgrading guide](upgrading.md).
Netbox v2.5.9 and later moved to using systemd instead of supervisord. Please see the instructions for [migrating to systemd](migrating-to-systemd.md) if you are still using supervisord.

View File

@@ -1,33 +0,0 @@
# Migration
Remove Python 2 packages
```no-highlight
# apt-get remove --purge -y python-dev python-pip
```
Install Python 3 packages
```no-highlight
# apt-get install -y python3 python3-dev python3-pip
```
Install Python Packages
```no-highlight
# cd /opt/netbox
# pip3 install -r requirements.txt
```
Gunicorn Update
```no-highlight
# pip uninstall gunicorn
# pip3 install gunicorn
```
Re-install LDAP Module (optional if using LDAP for auth)
```no-highlight
sudo pip3 install django-auth-ldap
```

View File

@@ -0,0 +1,55 @@
# Migrating to systemd
This document contains instructions for migrating from a legacy NetBox deployment using [supervisor](http://supervisord.org/) to a systemd-based approach.
## Ubuntu
### Uninstall supervisord
```no-highlight
# apt-get remove -y supervisor
```
### Configure systemd
!!! note
These instructions assume the presence of a Python virtual environment at `/opt/netbox/venv`. If you have not created this environment, please refer to the [installation instructions](3-netbox.md#set-up-python-environment) for direction.
We'll use systemd to control the daemonization of NetBox services. First, copy `contrib/netbox.service` and `contrib/netbox-rq.service` to the `/etc/systemd/system/` directory:
```no-highlight
# cp contrib/*.service /etc/systemd/system/
```
!!! note
You may need to modify the user that the systemd service runs as. Please verify the user for httpd on your specific release and edit both files to match your httpd service under user and group. The username could be "nobody", "nginx", "apache", "www-data", or something else.
Then, start the `netbox` and `netbox-rq` services and enable them to initiate at boot time:
```no-highlight
# systemctl daemon-reload
# systemctl start netbox netbox-rq
# systemctl enable netbox netbox-rq
```
You can use the command `systemctl status netbox` to verify that the WSGI service is running:
```
# systemctl status netbox.service
● netbox.service - NetBox WSGI Service
Loaded: loaded (/etc/systemd/system/netbox.service; enabled; vendor preset: enabled)
Active: active (running) since Thu 2019-12-12 19:23:40 UTC; 25s ago
Docs: https://netbox.readthedocs.io/en/stable/
Main PID: 11993 (gunicorn)
Tasks: 6 (limit: 2362)
CGroup: /system.slice/netbox.service
├─11993 /usr/bin/python3 /usr/local/bin/gunicorn --pid /var/tmp/netbox.pid --pythonpath /opt/netbox/...
├─12015 /usr/bin/python3 /usr/local/bin/gunicorn --pid /var/tmp/netbox.pid --pythonpath /opt/netbox/...
├─12016 /usr/bin/python3 /usr/local/bin/gunicorn --pid /var/tmp/netbox.pid --pythonpath /opt/netbox/...
...
```
At this point, you should be able to connect to the HTTP service at the server name or IP address you provided. If you are unable to connect, check that the nginx service is running and properly configured. If you receive a 502 (bad gateway) error, this indicates that gunicorn is misconfigured or not running. Issue the command `journalctl -xe` to see why the services were unable to start.
!!! info
Please keep in mind that the configurations provided here are bare minimums required to get NetBox up and running. You may want to make adjustments to better suit your production environment.

View File

@@ -1,249 +0,0 @@
# Installation
This section of the documentation discusses installing and configuring the NetBox application.
!!! note
Python 3 is strongly encouraged for new installations. Support for Python 2 will be discontinued in the near future. This documentation includes a guide on [migrating from Python 2 to Python 3](migrating-to-python3).
**Ubuntu**
Python 3:
```no-highlight
# apt-get install -y python3 python3-dev python3-setuptools build-essential libxml2-dev libxslt1-dev libffi-dev graphviz libpq-dev libssl-dev zlib1g-dev
# easy_install3 pip
```
Python 2:
```no-highlight
# apt-get install -y python2.7 python-dev python-setuptools build-essential libxml2-dev libxslt1-dev libffi-dev graphviz libpq-dev libssl-dev zlib1g-dev
# easy_install pip
```
**CentOS**
Python 3:
```no-highlight
# yum install -y epel-release
# yum install -y gcc python34 python34-devel python34-setuptools libxml2-devel libxslt-devel libffi-devel graphviz openssl-devel redhat-rpm-config
# easy_install-3.4 pip
```
Python 2:
```no-highlight
# yum install -y epel-release
# yum install -y gcc python2 python-devel python-setuptools libxml2-devel libxslt-devel libffi-devel graphviz openssl-devel redhat-rpm-config
# easy_install pip
```
You may opt to install NetBox either from a numbered release or by cloning the master branch of its repository on GitHub.
## Option A: Download a Release
Download the [latest stable release](https://github.com/digitalocean/netbox/releases) from GitHub as a tarball or ZIP archive and extract it to your desired path. In this example, we'll use `/opt/netbox`.
```no-highlight
# wget https://github.com/digitalocean/netbox/archive/vX.Y.Z.tar.gz
# tar -xzf vX.Y.Z.tar.gz -C /opt
# cd /opt/
# ln -s netbox-X.Y.Z/ netbox
# cd /opt/netbox/
```
## Option B: Clone the Git Repository
Create the base directory for the NetBox installation. For this guide, we'll use `/opt/netbox`.
```no-highlight
# mkdir -p /opt/netbox/ && cd /opt/netbox/
```
If `git` is not already installed, install it:
**Ubuntu**
```no-highlight
# apt-get install -y git
```
**CentOS**
```no-highlight
# yum install -y git
```
Next, clone the **master** branch of the NetBox GitHub repository into the current directory:
```no-highlight
# git clone -b master https://github.com/digitalocean/netbox.git .
Cloning into '.'...
remote: Counting objects: 1994, done.
remote: Compressing objects: 100% (150/150), done.
remote: Total 1994 (delta 80), reused 0 (delta 0), pack-reused 1842
Receiving objects: 100% (1994/1994), 472.36 KiB | 0 bytes/s, done.
Resolving deltas: 100% (1495/1495), done.
Checking connectivity... done.
```
## Install Python Packages
Install the required Python packages using pip. (If you encounter any compilation errors during this step, ensure that you've installed all of the system dependencies listed above.)
Python 3:
```no-highlight
# pip3 install -r requirements.txt
```
Python 2:
```no-highlight
# pip install -r requirements.txt
```
!!! note
If you encounter errors while installing the required packages, check that you're running a recent version of pip (v9.0.1 or higher) with the command `pip -V` or `pip3 -V`.
### NAPALM Automation
As of v2.1.0, NetBox supports integration with the [NAPALM automation](https://napalm-automation.net/) library. NAPALM allows NetBox to fetch live data from devices and return it to a requester via its REST API. Installation of NAPALM is optional. To enable it, install the `napalm` package using pip or pip3:
```no-highlight
# pip3 install napalm
```
# Configuration
Move into the NetBox configuration directory and make a copy of `configuration.example.py` named `configuration.py`.
```no-highlight
# cd netbox/netbox/
# cp configuration.example.py configuration.py
```
Open `configuration.py` with your preferred editor and set the following variables:
* ALLOWED_HOSTS
* DATABASE
* SECRET_KEY
## ALLOWED_HOSTS
This is a list of the valid hostnames by which this server can be reached. You must specify at least one name or IP address.
Example:
```python
ALLOWED_HOSTS = ['netbox.example.com', '192.0.2.123']
```
## DATABASE
This parameter holds the database configuration details. You must define the username and password used when you configured PostgreSQL. If the service is running on a remote host, replace `localhost` with its address.
Example:
```python
DATABASE = {
'NAME': 'netbox', # Database name
'USER': 'netbox', # PostgreSQL username
'PASSWORD': 'J5brHrAXFLQSif0K', # PostgreSQL password
'HOST': 'localhost', # Database server
'PORT': '', # Database port (leave blank for default)
}
```
## SECRET_KEY
Generate a random secret key of at least 50 alphanumeric characters. This key must be unique to this installation and must not be shared outside the local system.
You may use the script located at `netbox/generate_secret_key.py` to generate a suitable key.
!!! note
In the case of a highly available installation with multiple web servers, `SECRET_KEY` must be identical among all servers in order to maintain a persistent user session state.
# Run Database Migrations
!!! warning
The examples on the rest of this page call the `python3` executable. Replace this with `python2` or `python` if you're using Python 2.
Before NetBox can run, we need to install the database schema. This is done by running `python3 manage.py migrate` from the `netbox` directory (`/opt/netbox/netbox/` in our example):
```no-highlight
# cd /opt/netbox/netbox/
# python3 manage.py migrate
Operations to perform:
Apply all migrations: dcim, sessions, admin, ipam, utilities, auth, circuits, contenttypes, extras, secrets, users
Running migrations:
Rendering model states... DONE
Applying contenttypes.0001_initial... OK
Applying auth.0001_initial... OK
Applying admin.0001_initial... OK
...
```
If this step results in a PostgreSQL authentication error, ensure that the username and password created in the database match what has been specified in `configuration.py`
# Create a Super User
NetBox does not come with any predefined user accounts. You'll need to create a super user to be able to log into NetBox:
```no-highlight
# python3 manage.py createsuperuser
Username: admin
Email address: admin@example.com
Password:
Password (again):
Superuser created successfully.
```
# Collect Static Files
```no-highlight
# python3 manage.py collectstatic --no-input
You have requested to collect static files at the destination
location as specified in your settings:
/opt/netbox/netbox/static
This will overwrite existing files!
Are you sure you want to do this?
Type 'yes' to continue, or 'no' to cancel: yes
```
# Load Initial Data (Optional)
NetBox ships with some initial data to help you get started: RIR definitions, common devices roles, etc. You can delete any seed data that you don't want to keep.
!!! note
This step is optional. It's perfectly fine to start using NetBox without using this initial data if you'd rather create everything from scratch.
```no-highlight
# python3 manage.py loaddata initial_data
Installed 43 object(s) from 4 fixture(s)
```
# Test the Application
At this point, NetBox should be able to run. We can verify this by starting a development instance:
```no-highlight
# python3 manage.py runserver 0.0.0.0:8000 --insecure
Performing system checks...
System check identified no issues (0 silenced).
June 17, 2016 - 16:17:36
Django version 1.9.7, using settings 'netbox.settings'
Starting development server at http://0.0.0.0:8000/
Quit the server with CONTROL-C.
```
Now if we navigate to the name or IP of the server (as defined in `ALLOWED_HOSTS`) we should be greeted with the NetBox home page. Note that this built-in web service is for development and testing purposes only. **It is not suited for production use.**
!!! warning
If the test service does not run, or you cannot reach the NetBox home page, something has gone wrong. Do not proceed with the rest of this guide until the installation has been corrected.

View File

@@ -1,39 +1,61 @@
# Install the Latest Code
# Upgrading to a New NetBox Release
## Review the Release Notes
Prior to upgrading your NetBox instance, be sure to carefully review all [release notes](../../release-notes/) that have been published since your current version was released. Although the upgrade process typically does not involve additional work, certain releases may introduce breaking or backward-incompatible changes. These are called out in the release notes under the version in which the change went into effect.
!!! note
Beginning with version 2.8, NetBox requires Python 3.6 or later.
## Install the Latest Code
As with the initial installation, you can upgrade NetBox by either downloading the latest release package or by cloning the `master` branch of the git repository.
## Option A: Download a Release
### Option A: Download a Release
Download the [latest stable release](https://github.com/digitalocean/netbox/releases) from GitHub as a tarball or ZIP archive. Extract it to your desired path. In this example, we'll use `/opt/netbox`.
Download the [latest stable release](https://github.com/netbox-community/netbox/releases) from GitHub as a tarball or ZIP archive. Extract it to your desired path. In this example, we'll use `/opt/netbox`.
Download and extract the latest version:
```no-highlight
# wget https://github.com/digitalocean/netbox/archive/vX.Y.Z.tar.gz
# wget https://github.com/netbox-community/netbox/archive/vX.Y.Z.tar.gz
# tar -xzf vX.Y.Z.tar.gz -C /opt
# cd /opt/
# ln -sf netbox-X.Y.Z/ netbox
# ln -sfn netbox-X.Y.Z/ netbox
```
Copy the 'configuration.py' you created when first installing to the new version:
```no-highlight
# cp /opt/netbox-X.Y.Z/netbox/netbox/configuration.py /opt/netbox/netbox/netbox/configuration.py
# cp netbox-X.Y.Z/netbox/netbox/configuration.py netbox/netbox/netbox/configuration.py
```
Also copy the LDAP configuration if using LDAP:
```no-highlight
# cp netbox-X.Y.Z/netbox/netbox/ldap_config.py netbox/netbox/netbox/ldap_config.py
```
Be sure to replicate your uploaded media as well. (The exact action necessary will depend on where you choose to store your media, but in general moving or copying the media directory will suffice.)
```no-highlight
# cp -pr netbox-X.Y.Z/netbox/media/ netbox/netbox/
```
Also make sure to copy over any custom scripts and reports that you've made. Note that if these are stored outside the project root, you will not need to copy them. (Check the `SCRIPTS_ROOT` and `REPORTS_ROOT` parameters in the configuration file above if you're unsure.)
```no-highlight
# cp -r /opt/netbox-X.Y.Z/netbox/scripts /opt/netbox/netbox/scripts/
# cp -r /opt/netbox-X.Y.Z/netbox/reports /opt/netbox/netbox/reports/
```
If you followed the original installation guide to set up gunicorn, be sure to copy its configuration as well:
```no-highlight
# cp /opt/netbox-X.Y.Z/gunicorn_config.py /opt/netbox/gunicorn_config.py
# cp netbox-X.Y.Z/gunicorn.py netbox/gunicorn.py
```
Copy the LDAP configuration if using LDAP:
```no-highlight
# cp /opt/netbox-X.Y.Z/netbox/netbox/ldap_config.py /opt/netbox/netbox/netbox/ldap_config.py
```
## Option B: Clone the Git Repository (latest master release)
### Option B: Clone the Git Repository
This guide assumes that NetBox is installed at `/opt/netbox`. Pull down the most recent iteration of the master branch:
@@ -44,26 +66,24 @@ This guide assumes that NetBox is installed at `/opt/netbox`. Pull down the most
# git status
```
# Run the Upgrade Script
## Run the Upgrade Script
Once the new code is in place, run the upgrade script (which may need to be run as root depending on how your environment is configured).
Once the new code is in place, verify that any optional Python packages required by your deployment (e.g. `napalm` or `django-auth-ldap`) are listed in `local_requirements.txt`. Then, run the upgrade script:
```no-highlight
# ./upgrade.sh
```
!!! warning
The upgrade script will prefer Python3 and pip3 if both executables are available. To force it to use Python2 and pip, use the `-2` argument as below.
```no-highlight
# ./upgrade.sh -2
```
This script:
* Installs or upgrades any new required Python packages
* Destroys and rebuilds the Python virtual environment
* Installs all required Python packages (listed in `requirements.txt`)
* Installs any additional packages from `local_requirements.txt`
* Applies any database migrations that were included in the release
* Collects all static files to be served by the HTTP service
* Deletes stale content types from the database
* Deletes all expired user sessions from the database
* Clears all cached data to prevent conflicts with the new release
!!! note
It's possible that the upgrade script will display a notice warning of unreflected database migrations:
@@ -73,10 +93,16 @@ This script:
This may occur due to semantic differences in environment, and can be safely ignored. Never attempt to create new migrations unless you are intentionally modifying the database schema.
# Restart the WSGI Service
## Restart the NetBox Services
Finally, restart the WSGI service to run the new code. If you followed this guide for the initial installation, this is done using `supervisorctl`:
!!! warning
If you are upgrading from an installation that does not use a Python virtual environment, you'll need to update the systemd service files to reference the new Python and gunicorn executables before restarting the services. These are located in `/opt/netbox/venv/bin/`. See the example service files in `/opt/netbox/contrib/` for reference.
Finally, restart the gunicorn and RQ services:
```no-highlight
# sudo supervisorctl restart netbox
# sudo systemctl restart netbox netbox-rq
```
!!! note
It's possible you are still using supervisord instead of systemd. If so, please see the instructions for [migrating to systemd](migrating-to-systemd.md).

View File

@@ -1,145 +0,0 @@
We'll set up a simple WSGI front end using [gunicorn](http://gunicorn.org/) for the purposes of this guide. For web servers, we provide example configurations for both [nginx](https://www.nginx.com/resources/wiki/) and [Apache](http://httpd.apache.org/docs/2.4). (You are of course free to use whichever combination of HTTP and WSGI services you'd like.) We'll also use [supervisord](http://supervisord.org/) to enable service persistence.
!!! info
For the sake of brevity, only Ubuntu 16.04 instructions are provided here, but this sort of web server and WSGI configuration is not unique to NetBox. Please consult your distribution's documentation for assistance if needed.
# Web Server Installation
## Option A: nginx
The following will serve as a minimal nginx configuration. Be sure to modify your server name and installation path appropriately.
```no-highlight
# apt-get install -y nginx
```
Once nginx is installed, save the following configuration to `/etc/nginx/sites-available/netbox`. Be sure to replace `netbox.example.com` with the domain name or IP address of your installation. (This should match the value configured for `ALLOWED_HOSTS` in `configuration.py`.)
```nginx
server {
listen 80;
server_name netbox.example.com;
client_max_body_size 25m;
location /static/ {
alias /opt/netbox/netbox/static/;
}
location / {
proxy_pass http://127.0.0.1:8001;
proxy_set_header X-Forwarded-Host $server_name;
proxy_set_header X-Real-IP $remote_addr;
proxy_set_header X-Forwarded-Proto $scheme;
add_header P3P 'CP="ALL DSP COR PSAa PSDa OUR NOR ONL UNI COM NAV"';
}
}
```
Then, delete `/etc/nginx/sites-enabled/default` and create a symlink in the `sites-enabled` directory to the configuration file you just created.
```no-highlight
# cd /etc/nginx/sites-enabled/
# rm default
# ln -s /etc/nginx/sites-available/netbox
```
Restart the nginx service to use the new configuration.
```no-highlight
# service nginx restart
```
To enable SSL, consider this guide on [securing nginx with Let's Encrypt](https://www.digitalocean.com/community/tutorials/how-to-secure-nginx-with-let-s-encrypt-on-ubuntu-16-04).
## Option B: Apache
```no-highlight
# apt-get install -y apache2
```
Once Apache is installed, proceed with the following configuration (Be sure to modify the `ServerName` appropriately):
```apache
<VirtualHost *:80>
ProxyPreserveHost On
ServerName netbox.example.com
Alias /static /opt/netbox/netbox/static
# Needed to allow token-based API authentication
WSGIPassAuthorization on
<Directory /opt/netbox/netbox/static>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Require all granted
</Directory>
<Location /static>
ProxyPass !
</Location>
ProxyPass / http://127.0.0.1:8001/
ProxyPassReverse / http://127.0.0.1:8001/
</VirtualHost>
```
Save the contents of the above example in `/etc/apache2/sites-available/netbox.conf`, enable the `proxy` and `proxy_http` modules, and reload Apache:
```no-highlight
# a2enmod proxy
# a2enmod proxy_http
# a2ensite netbox
# service apache2 restart
```
To enable SSL, consider this guide on [securing Apache with Let's Encrypt](https://www.digitalocean.com/community/tutorials/how-to-secure-apache-with-let-s-encrypt-on-ubuntu-16-04).
# gunicorn Installation
Install gunicorn using `pip3` (Python 3) or `pip` (Python 2):
```no-highlight
# pip3 install gunicorn
```
Save the following configuration in the root netbox installation path as `gunicorn_config.py` (e.g. `/opt/netbox/gunicorn_config.py` per our example installation). Be sure to verify the location of the gunicorn executable on your server (e.g. `which gunicorn`) and to update the `pythonpath` variable if needed. If using CentOS/RHEL, change the username from `www-data` to `nginx` or `apache`.
```no-highlight
command = '/usr/bin/gunicorn'
pythonpath = '/opt/netbox/netbox'
bind = '127.0.0.1:8001'
workers = 3
user = 'www-data'
```
# supervisord Installation
Install supervisor:
```no-highlight
# apt-get install -y supervisor
```
Save the following as `/etc/supervisor/conf.d/netbox.conf`. Update the `command` and `directory` paths as needed. If using CentOS/RHEL, change the username from `www-data` to `nginx` or `apache`.
```no-highlight
[program:netbox]
command = gunicorn -c /opt/netbox/gunicorn_config.py netbox.wsgi
directory = /opt/netbox/netbox/
user = www-data
```
Then, restart the supervisor service to detect and run the gunicorn service:
```no-highlight
# service supervisor restart
```
At this point, you should be able to connect to the nginx HTTP service at the server name or IP address you provided. If you are unable to connect, check that the nginx service is running and properly configured. If you receive a 502 (bad gateway) error, this indicates that gunicorn is misconfigured or not running.
!!! info
Please keep in mind that the configurations provided here are bare minimums required to get NetBox up and running. You will almost certainly want to make some changes to better suit your production environment.

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 77 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 76 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 98 KiB

After

Width:  |  Height:  |  Size: 336 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 134 KiB

After

Width:  |  Height:  |  Size: 336 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 112 KiB

After

Width:  |  Height:  |  Size: 339 KiB

View File

@@ -0,0 +1,3 @@
# Circuits
A circuit represents a single _physical_ link connecting exactly two endpoints. (A circuit with more than two endpoints is a virtual circuit, which is not currently supported by NetBox.) Each circuit belongs to a provider and must be assigned a circuit ID which is unique to that provider.

View File

@@ -0,0 +1,11 @@
# Circuit Terminations
A circuit may have one or two terminations, annotated as the "A" and "Z" sides of the circuit. A single-termination circuit can be used when you don't know (or care) about the far end of a circuit (for example, an Internet access circuit which connects to a transit provider). A dual-termination circuit is useful for tracking circuits which connect two sites.
Each circuit termination is tied to a site, and may optionally be connected via a cable to a specific device interface or pass-through port. Each termination can be assigned a separate downstream and upstream speed independent from one another. Fields are also available to track cross-connect and patch panel details.
!!! note
A circuit represents a physical link, and cannot have more than two endpoints. When modeling a multi-point topology, each leg of the topology must be defined as a discrete circuit.
!!! note
A circuit may terminate only to a physical interface. Circuits may not terminate to LAG interfaces, which are virtual interfaces: You must define each physical circuit within a service bundle separately and terminate it to its actual physical interface.

View File

@@ -0,0 +1,10 @@
# Circuit Types
Circuits are classified by type. For example, you might define circuit types for:
* Internet transit
* Out-of-band connectivity
* Peering
* Private backhaul
Circuit types are fully customizable.

View File

@@ -0,0 +1,5 @@
# Providers
A provider is any entity which provides some form of connectivity. While this obviously includes carriers which offer Internet and private transit service, it might also include Internet exchange (IX) points and even organizations with whom you peer directly.
Each provider may be assigned an autonomous system number (ASN), an account number, and relevant contact information.

19
docs/models/dcim/cable.md Normal file
View File

@@ -0,0 +1,19 @@
# Cables
A cable represents a physical connection between two termination points, such as between a console port and a patch panel port, or between two network interfaces. Cables can be traced through pass-through ports to form a complete path between two endpoints. In the example below, three individual cables comprise a path between the two connected endpoints.
```
|<------------------------------------------ Cable Path ------------------------------------------->|
Device A Patch Panel A Patch Panel B Device B
+-----------+ +-------------+ +-------------+ +-----------+
| Interface | --- Cable --- | Front Port | | Front Port | --- Cable --- | Interface |
+-----------+ +-------------+ +-------------+ +-----------+
+-------------+ +-------------+
| Rear Port | --- Cable --- | Rear Port |
+-------------+ +-------------+
```
All connections between device components in NetBox are represented using cables. However, defining the actual cable plant is optional: Components can be be directly connected using cables with no type or other attributes assigned.
Cables are also used to associated ports and interfaces with circuit terminations. To do this, first create the circuit termination, then navigate the desired component and connect a cable between the two.

View File

@@ -0,0 +1,5 @@
## Console Ports
A console port provides connectivity to the physical console of a device. Console ports are typically used for temporary access by someone who is physically near the device, or for remote out-of-band access via a console server.
Console ports can be connected to console server ports.

View File

@@ -0,0 +1,3 @@
## Console Port Templates
A template for a console port that will be created on all instantiations of the parent device type.

View File

@@ -0,0 +1,5 @@
## Console Server Ports
A console server is a device which provides remote access to the local consoles of connected devices. This is typically done to provide remote out-of-band access to network devices.
Console server ports can be connected to console ports.

View File

@@ -0,0 +1,3 @@
## Console Server Port Templates
A template for a console server port that will be created on all instantiations of the parent device type.

View File

@@ -0,0 +1,7 @@
# Devices
Every piece of hardware which is installed within a rack exists in NetBox as a device. Devices are measured in rack units (U) and can be half depth or full depth. A device may have a height of 0U: These devices do not consume vertical rack space and cannot be assigned to a particular rack unit. A common example of a 0U device is a vertically-mounted PDU.
When assigning a multi-U device to a rack, it is considered to be mounted in the lowest-numbered rack unit which it occupies. For example, a 3U device which occupies U8 through U10 is said to be mounted in U8. This logic applies to racks with both ascending and descending unit numbering.
A device is said to be full depth if its installation on one rack face prevents the installation of any other device on the opposite face within the same rack unit(s). This could be either because the device is physically too deep to allow a device behind it, or because the installation of an opposing device would impede airflow.

View File

@@ -0,0 +1,7 @@
## Device Bays
Device bays represent the ability of a device to house child devices. For example, you might install four blade servers into a 2U chassis. The chassis would appear in the rack elevation as a 2U device with four device bays. Each server within it would be defined as a 0U device installed in one of the device bays. Child devices do not appear within rack elevations or the "Non-Racked Devices" list within the rack view.
Child devices are first-class Devices in their own right: that is, fully independent managed entities which don't share any control plane with the parent. Just like normal devices, child devices have their own platform (OS), role, tags, and interfaces. You cannot create a LAG between interfaces in different child devices.
Therefore, Device bays are **not** suitable for modeling chassis-based switches and routers. These should instead be modeled as a single Device, with the line cards as Inventory Items.

Some files were not shown because too many files have changed in this diff Show More