Closed
Description
NetBox version
v3.6.4
Python version
3.8
Steps to Reproduce
- Create a couple of device roles and a config context that is assigned to those two roles:
{
"id": 1,
"url": "https://demo.netbox.dev/api/extras/config-contexts/1/",
"display": "Test Context",
"name": "Test Context",
"weight": 1000,
"description": "",
"is_active": true,
"regions": [],
"site_groups": [],
"sites": [],
"locations": [],
"device_types": [],
"roles": [
{
"id": 13,
"url": "https://demo.netbox.dev/api/dcim/device-roles/13/",
"display": "Test Role",
"name": "Test Role",
"slug": "test-role"
},
{
"id": 14,
"url": "https://demo.netbox.dev/api/dcim/device-roles/14/",
"display": "Test Role 2",
"name": "Test Role 2",
"slug": "test-role-2"
}
],
"platforms": [],
"cluster_types": [],
"cluster_groups": [],
"clusters": [],
"tenant_groups": [],
"tenants": [],
"tags": [],
"data_source": null,
"data_path": "",
"data_file": null,
"data_synced": null,
"data": {
"foo": 123
},
"created": "2023-10-18T22:07:46.872083Z",
"last_updated": "2023-10-18T22:07:46.872120Z"
}
- Delete one of the roles
Expected Behavior
This should result in two change log entries: one for the device role deletion and one for the update to the config context.
Observed Behavior
Only a single change log entry is created:
GET /api/extras/object-changes/?request_id=8f69edb2-918f-40da-ac13-2fd1b8d5a3e6
{
"count": 1,
"next": null,
"previous": null,
"results": [
{
"id": 5179,
"url": "https://demo.netbox.dev/api/extras/object-changes/5179/",
"display": "dcim | device role Test Role deleted by admin",
"time": "2023-10-18T22:08:46.787241Z",
"user": {
"id": 54,
"url": "https://demo.netbox.dev/api/users/users/54/",
"display": "admin",
"username": "admin"
},
"user_name": "admin",
"request_id": "8f69edb2-918f-40da-ac13-2fd1b8d5a3e6",
"action": {
"value": "delete",
"label": "Deleted"
},
"changed_object_type": "dcim.devicerole",
"changed_object_id": 13,
"changed_object": null,
"prechange_data": {
"name": "Test Role",
"slug": "test-role",
"tags": [],
"color": "9e9e9e",
"created": "2023-10-18T22:07:13.945Z",
"vm_role": true,
"description": "",
"last_updated": "2023-10-18T22:07:13.945Z",
"custom_fields": {},
"config_template": null
},
"postchange_data": null
}
]
}
But the config context is updated:
{
"id": 1,
"url": "https://demo.netbox.dev/api/extras/config-contexts/1/",
"display": "Test Context",
"name": "Test Context",
"weight": 1000,
"description": "",
"is_active": true,
"regions": [],
"site_groups": [],
"sites": [],
"locations": [],
"device_types": [],
"roles": [
{
"id": 14,
"url": "https://demo.netbox.dev/api/dcim/device-roles/14/",
"display": "Test Role 2",
"name": "Test Role 2",
"slug": "test-role-2"
}
],
"platforms": [],
"cluster_types": [],
"cluster_groups": [],
"clusters": [],
"tenant_groups": [],
"tenants": [],
"tags": [],
"data_source": null,
"data_path": "",
"data_file": null,
"data_synced": null,
"data": {
"foo": 123
},
"created": "2023-10-18T22:07:46.872083Z",
"last_updated": "2023-10-18T22:07:46.872120Z"
}
Note: I believe this affects all models that use ManyToManyField
relations.