Skip to content

Commit 8a19633

Browse files
authored
Merge pull request #765 from nautobot/release-v3.6.0
Release v3.6.0
2 parents 285c486 + 9b18450 commit 8a19633

File tree

92 files changed

+4193
-2423
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

92 files changed

+4193
-2423
lines changed

.cookiecutter.json

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
"_drift_manager": {
2222
"template": "https://github.com/nautobot/cookiecutter-nautobot-app.git",
2323
"template_dir": "nautobot-app",
24-
"template_ref": "refs/tags/nautobot-app-v2.4.1",
24+
"template_ref": "refs/tags/nautobot-app-v2.4.2",
2525
"cookie_dir": "",
2626
"branch_prefix": "drift-manager",
2727
"pull_request_strategy": "create",
@@ -30,7 +30,7 @@
3030
"poetry"
3131
],
3232
"draft": false,
33-
"baked_commit_ref": "1c99457b09d05553ef7193e0dda021b2d1caa407"
33+
"baked_commit_ref": "a9ba090fb8fb08d173c3c720a6dbe92a59f4c6f8"
3434
}
3535
}
3636
}

.github/workflows/ci.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -139,7 +139,7 @@ jobs:
139139
strategy:
140140
fail-fast: true
141141
matrix:
142-
python-version: ["3.8", "3.12"]
142+
python-version: ["3.9", "3.12"]
143143
db-backend: ["postgresql"]
144144
nautobot-version: ["stable"]
145145
include:

README.md

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -100,8 +100,6 @@ The SSoT framework includes a number of integrations with external Systems of Re
100100
* Slurpit
101101
* SolarWinds
102102

103-
> Note that the Arista CloudVision integration is currently incompatible with the [Arista Labs](https://labs.arista.com/) environment due to a TLS issue. It has been confirmed to work in on-prem environments previously.
104-
105103
### Contributing to the Documentation
106104

107105
You can find all the Markdown source for the App documentation under the [`docs`](https://github.com/nautobot/nautobot-app-ssot/tree/develop/docs) folder in this repository. For simple edits, a Markdown capable editor is sufficient: clone the repository and edit away.
@@ -179,3 +177,7 @@ This project includes code originally written in separate Nautobot apps, which h
179177
[@glennmatthews](https://github.com/glennmatthews),
180178
[@qduk](https://github.com/qduk),
181179
[@ubajze](https://github.com/ubajze)
180+
- [nautobot-plugin-ssot-solarwinds](https://github.com/nautobot/nautobot-app-ssot-solarwinds):
181+
Thanks
182+
[@jdrew82](https://github.com/jdrew82),
183+
[@nopg](https://github.com/nopg)

development/nautobot_config.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -211,6 +211,7 @@
211211
"vrf": True,
212212
"prefix": True,
213213
"scheduled_job": True,
214+
"custom_field": True,
214215
},
215216
"citrix_adm_update_sites": is_truthy(os.getenv("NAUTOBOT_SSOT_CITRIX_ADM_UPDATE_SITES", "true")),
216217
"enable_aci": is_truthy(os.getenv("NAUTOBOT_SSOT_ENABLE_ACI")),

docs/admin/compatibility_matrix.md

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,4 +31,5 @@ While that last supported version will not be strictly enforced--via the max_ver
3131
| 3.2.0 | 2.1.0 | 2.99.99 |
3232
| 3.3.0 | 2.1.0 | 2.99.99 |
3333
| 3.4.0 | 2.1.0 | 2.99.99 |
34-
| 3.5.0 | 2.1.0 | 2.99.99 |
34+
| 3.5.0 | 2.1.0 | 2.99.99 |
35+
| 3.6.0 | 2.1.0 | 2.99.99 |

docs/admin/integrations/bootstrap_setup.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@ PLUGINS_CONFIG = {
3030
"git_repository": True,
3131
"dynamic_group": True,
3232
"computed_field": True,
33+
"custom_field": True,
3334
"tag": True,
3435
"graph_ql_query": True,
3536
"software": False,

docs/admin/integrations/infoblox_setup.md

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -128,6 +128,24 @@ The above filters will allow the loading of the following data from Infoblox and
128128
- Only IPv4 prefixes and IP addresses, contained within the `192.168.0.0/16` container, located in Infoblox network view "dev" and Nautobot namespace "dev". All IPv6 prefixes and IP addresses in the Infoblox network view "dev" and Nautobot namespace "dev".
129129
- Only IPv4 prefixes and IP addresses, contained within the `10.0.0.0/8` container, located in Infoblox network view "test" and Nautobot namespace "test". Only IPv6 prefixes and IP addresses contained withing the `2001:5b0:4100::/40` container that are located in the Infoblox network view "test" and Nautobot namespace "test".
130130

131+
### Configuring Infoblox Network Views to Nautbot Namespace map
132+
133+
This setting allows you to create mappings between Infoblox network views and Nautobot namespaces. By default, the **default** network view maps to the **Global** Nautobot namespace.
134+
135+
The purpose of this setting is to provide flexibility, enabling you to:
136+
137+
- Assign a different namespace instead of **Global** for the default Infoblox network view.
138+
- Define additional mappings based on your environment’s requirements.
139+
140+
The setting is represented as a dictionary, where the keys are Infoblox network views, and the values are the corresponding Nautobot namespaces.
141+
142+
```json
143+
[
144+
{
145+
"default": "Global"
146+
}
147+
]
148+
```
131149

132150
### Configuring Infoblox DNS View Mapping
133151

docs/admin/release_notes/version_3.4.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ This document describes all new features and changes in the release. The format
55

66
## Release Overview
77

8-
This release adds two new integrations to the project, one for Solarwinds Orion and one for LibreNMS! There are also a lot of bug fixes for various integrations.
8+
This release adds two new integrations to the project, one for SolarWinds Orion and one for LibreNMS! There are also a lot of bug fixes for various integrations.
99

1010
## [v3.4.0 (2025-01-14)](https://github.com/nautobot/nautobot-app-ssot/releases/tag/v3.4.0)
1111

Lines changed: 65 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,65 @@
1+
2+
# v3.6 Release Notes
3+
4+
This document describes all new features and changes in the release. The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/) and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
5+
6+
## Release Overview
7+
8+
The major thing to note about this release is that we've removed support for Python 3.8 from the project. There have been some additional features added to the Bootstrap and DNA Center integrations. In addition there have been a multitude of bugfixes and tweaks made to the project.
9+
10+
## [v3.6.0 (2025-04-04)](https://github.com/nautobot/nautobot-app-ssot/releases/tag/v3.6.0)
11+
12+
### Added
13+
14+
- [#632](https://github.com/nautobot/nautobot-app-ssot/issues/632) - Added support for Object Metadata to track last synchronization from DNA Center to imported Locations, Devices, Prefixes, and IPAddresses.
15+
- [#705](https://github.com/nautobot/nautobot-app-ssot/issues/705) - Added custom_field creation to Bootstrap integration.
16+
- [#744](https://github.com/nautobot/nautobot-app-ssot/issues/744) - Added extra check when determiming device_type for 'wireless' in Cisco model names.
17+
- [#745](https://github.com/nautobot/nautobot-app-ssot/issues/745) - Added enabled option for ScheduledJob in Bootstrap SSOT.
18+
19+
### Changed
20+
21+
- [#692](https://github.com/nautobot/nautobot-app-ssot/issues/692) - Improve the replace_dashed_custom_fields migration (0007_replace_dashed_custom_fields.py) by iterating over a generator instead of loading all objects into a list.
22+
- [#726](https://github.com/nautobot/nautobot-app-ssot/issues/726) - Create a new setting in the SSoT Infoblox integration that allows users to define mappings between Infoblox network views and Nautobot namespaces.
23+
- [#731](https://github.com/nautobot/nautobot-app-ssot/issues/731) - Changed Aruba/Cisco Platform values to enable better differentation between Operating Systems.
24+
- [#732](https://github.com/nautobot/nautobot-app-ssot/issues/732) - Allowed custom_property to be used for filtering without requiring location_override.
25+
- [#732](https://github.com/nautobot/nautobot-app-ssot/issues/732) - Added location_override ability to be used without requiring custom_property.
26+
27+
### Fixed
28+
29+
- [#687](https://github.com/nautobot/nautobot-app-ssot/issues/687) - Fixed Location structure being imported incorrectly in DNA Center.
30+
- [#695](https://github.com/nautobot/nautobot-app-ssot/issues/695) - Add check for parent of Location before looking for parent of parent.
31+
- [#697](https://github.com/nautobot/nautobot-app-ssot/issues/697) - ACI integration: Change _tag.validated_save() to _tag.save()
32+
- [#702](https://github.com/nautobot/nautobot-app-ssot/issues/702) - Fixed handling of timezones in scheduled jobs when timezone is specified in the yaml.
33+
- [#703](https://github.com/nautobot/nautobot-app-ssot/issues/703) - Added catching of `ValueError` on `validated_save` in contrib models.
34+
- [#707](https://github.com/nautobot/nautobot-app-ssot/issues/707) - Added exception handling to Slurpit functions to catch if an object already exists.
35+
- [#708](https://github.com/nautobot/nautobot-app-ssot/issues/708) - Fixed bug that was causing all Devices to be assigned to same Building when Location structure included multiple Buildings of same name under differing Areas.
36+
- [#710](https://github.com/nautobot/nautobot-app-ssot/issues/710) - Allowed Slurpit sync to be scheduled.
37+
- [#710](https://github.com/nautobot/nautobot-app-ssot/issues/710) - Fix issue with duplicate prefixes from Nautobot causing exception during sync with Slurpit.
38+
- [#710](https://github.com/nautobot/nautobot-app-ssot/issues/710) - Enable custom fields to accept `None` in the Slurpit models.
39+
- [#710](https://github.com/nautobot/nautobot-app-ssot/issues/710) - Remove Napalm driver sync
40+
- [#710](https://github.com/nautobot/nautobot-app-ssot/issues/710) - Add exception catch ObjectDoesNotExist
41+
- [#717](https://github.com/nautobot/nautobot-app-ssot/issues/717) - Fixed missing import of Interfaces and IPAddresses for uplink Interfaces on small selection of APs in Meraki.
42+
- [#721](https://github.com/nautobot/nautobot-app-ssot/issues/721) - Updated source and destination labels for Infoblox "Prefix -> VLAN" relationship
43+
- [#729](https://github.com/nautobot/nautobot-app-ssot/issues/729) - Fixed the synchronization of the prefix location from Infoblox extensibility attributes.
44+
- [#732](https://github.com/nautobot/nautobot-app-ssot/issues/732) - Fixed failure scenario with a user-friendly error message, if neither a location_type or location_override was specified.
45+
- [#732](https://github.com/nautobot/nautobot-app-ssot/issues/732) - Fixed missing container name error, if comma separated container names included a space before or after a comma.
46+
- [#734](https://github.com/nautobot/nautobot-app-ssot/issues/734) - Fixed bug where non-existing Building ID is found in SiteHierarchy for a device.
47+
- [#737](https://github.com/nautobot/nautobot-app-ssot/issues/737) - Fixed Meraki AP port not being loaded and created correctly.
48+
- [#737](https://github.com/nautobot/nautobot-app-ssot/issues/737) - Fixed Meraki location_map feature not updating Locations parent and name as expected.
49+
- [#739](https://github.com/nautobot/nautobot-app-ssot/issues/739) - Fixes key errors if keys don't exist in global_settings.yaml and are enabled in models_to_sync.
50+
- [#740](https://github.com/nautobot/nautobot-app-ssot/issues/740) - Added migration for SolarWinds integration to update CustomFields from Solarwinds to SolarWinds to match update in #696.
51+
- [#748](https://github.com/nautobot/nautobot-app-ssot/issues/748) - Fixes handling empty keys in tag and location models
52+
- [#750](https://github.com/nautobot/nautobot-app-ssot/issues/750) - Fixed ServiceNow instance configuration loading.
53+
54+
### Dependencies
55+
56+
- [#762](https://github.com/nautobot/nautobot-app-ssot/issues/762) - Removed support for Python 3.8.
57+
58+
### Documentation
59+
60+
- [#696](https://github.com/nautobot/nautobot-app-ssot/issues/696) - Corrected spelling of SolarWinds and removed note about Arista Labs.
61+
- [#743](https://github.com/nautobot/nautobot-app-ssot/issues/743) - Added Mermaid diagrams for SSoT models to documentation.
62+
63+
### Housekeeping
64+
65+
- Rebaked from the cookie `nautobot-app-v2.4.2`.

docs/dev/diagrams.md

Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
# Model Diagrams
2+
3+
To aide developers in understanding the various models and how they interoperate for the SSoT project.
4+
5+
```mermaid
6+
erDiagram
7+
DiffSyncModel{
8+
ClassVar[str] _modelname
9+
ClassVar[Tuple[str]] _identifiers
10+
ClassVar[Tuple[str]] _shortname
11+
ClassVar[Tuple[str]] _attributes
12+
ClassVar[Dict[str]] _children
13+
DiffSyncModelFlags model_flags
14+
Optional[Adapter] adapter
15+
DiffSyncStatus _status
16+
string _status_message
17+
ConfigDict model_config
18+
}
19+
Adapter{
20+
Optional[str] type
21+
ClassVar[List[str]] top_level
22+
}
23+
"nautobot_app_ssot.Sync"[Sync]{
24+
string source
25+
string target
26+
datetime start_time
27+
duration source_load_time
28+
duration target_load_time
29+
duration diff_time
30+
duration sync_time
31+
PositiveBigIntegerField source_load_memory_final
32+
PositiveBigIntegerField source_load_memory_peak
33+
PositiveBigIntegerField target_load_memory_final
34+
PositiveBigIntegerField target_load_memory_peak
35+
PositiveBigIntegerField diff_memory_final
36+
PositiveBigIntegerField diff_memory_peak
37+
PositiveBigIntegerField sync_memory_final
38+
PositiveBigIntegerField sync_memory_peak
39+
boolean dry_run
40+
json diff
41+
JobResult job_result FK
42+
}
43+
"nautobot_app_ssot.SyncLogEntry"[SyncLogEntry]{
44+
Sync sync FK
45+
datetime timestamp
46+
string action
47+
string status
48+
json diff
49+
ContentType synced_object_type FK
50+
uuid synced_object_id
51+
GenericForeignKey synced_object
52+
string object_repr
53+
string message
54+
}
55+
"extras.JobResult"[JobResult]{}
56+
"nautobot_app_ssot.SyncLogEntry" }o--|| "nautobot_app_ssot.Sync" : "must have"
57+
"nautobot_app_ssot.Sync" }o--o| "extras.JobResult" : "may have"
58+
DiffSyncModel||--|{Adapter : adapter
59+
```

0 commit comments

Comments
 (0)