From 61efe6102e4eed5aa4f3f5a51be90eae9feeb7c2 Mon Sep 17 00:00:00 2001 From: dansheps Date: Tue, 12 Mar 2019 15:52:44 -0500 Subject: [PATCH 1/3] Fixes #2207 * Added 'id' field sort to InterfaceManager --- netbox/dcim/managers.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/netbox/dcim/managers.py b/netbox/dcim/managers.py index feaa09d74..3afc3234c 100644 --- a/netbox/dcim/managers.py +++ b/netbox/dcim/managers.py @@ -64,11 +64,15 @@ class InterfaceManager(Manager): The original `name` field is considered in its entirety to serve as a fallback in the event interfaces do not match any of the prescribed fields. + + The `id` field is included to enforce deterministic ordering of interfaces in similar vein of other device + components. """ sql_col = '{}.name'.format(self.model._meta.db_table) ordering = [ - '_slot', '_subslot', '_position', '_subposition', '_type', '_id', '_channel', '_vc', 'name', + '_slot', '_subslot', '_position', '_subposition', '_type', '_id', '_channel', '_vc', 'name', 'id' + ] fields = { From 929253432476058088a75db419ee39aa7d894268 Mon Sep 17 00:00:00 2001 From: dansheps Date: Tue, 12 Mar 2019 15:54:38 -0500 Subject: [PATCH 2/3] Changelog Updates --- CHANGELOG.md | 1 + 1 file changed, 1 insertion(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 86af60918..3f95bdb63 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -2,6 +2,7 @@ v2.5.9 (FUTURE) ## Bug Fixes +* [#2207](https://github.com/digitalocean/netbox/issues/2207) - Fixes Deterministic Ordering of Interfaces * [#2577](https://github.com/digitalocean/netbox/issues/2577) - Clarification of wording in API regarding filtering * [#2991](https://github.com/digitalocean/netbox/issues/2991) - Correct documentation for API Filtering From aab84ba6f3777c305df2186568b6031c2ebb766d Mon Sep 17 00:00:00 2001 From: dansheps Date: Wed, 13 Mar 2019 14:02:23 -0500 Subject: [PATCH 3/3] Change ID to PK --- netbox/dcim/managers.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/netbox/dcim/managers.py b/netbox/dcim/managers.py index 3afc3234c..9e4e5fca2 100644 --- a/netbox/dcim/managers.py +++ b/netbox/dcim/managers.py @@ -71,7 +71,7 @@ class InterfaceManager(Manager): sql_col = '{}.name'.format(self.model._meta.db_table) ordering = [ - '_slot', '_subslot', '_position', '_subposition', '_type', '_id', '_channel', '_vc', 'name', 'id' + '_slot', '_subslot', '_position', '_subposition', '_type', '_id', '_channel', '_vc', 'name', 'pk' ]