aboutsummaryrefslogtreecommitdiffstats
path: root/os_net_config/utils.py
diff options
context:
space:
mode:
authorJenkins <jenkins@review.openstack.org>2015-11-04 09:44:09 +0000
committerGerrit Code Review <review@openstack.org>2015-11-04 09:44:09 +0000
commitf0c42a7cda2997c4ce81096ffc778f565e1c9d1d (patch)
tree9eedc939f88d78c643e250b11175524557748f60 /os_net_config/utils.py
parent7f10579c4a75e3055adbbce4ae8c9557f545dc8d (diff)
parent455cabdee3158e7b2181c96e6d3b791f812c7fee (diff)
Merge "Added natural sort for interfaces in utils.ordered_active_nics()"
Diffstat (limited to 'os_net_config/utils.py')
-rw-r--r--os_net_config/utils.py13
1 files changed, 12 insertions, 1 deletions
diff --git a/os_net_config/utils.py b/os_net_config/utils.py
index f0ab307..ab7f3b3 100644
--- a/os_net_config/utils.py
+++ b/os_net_config/utils.py
@@ -17,6 +17,7 @@
import glob
import logging
import os
+import re
logger = logging.getLogger(__name__)
@@ -75,6 +76,12 @@ def _is_active_nic(interface_name):
return False
+def _natural_sort_key(s):
+ nsre = re.compile('([0-9]+)')
+ return [int(text) if text.isdigit() else text
+ for text in re.split(nsre, s)]
+
+
def ordered_active_nics():
embedded_nics = []
nics = []
@@ -86,7 +93,11 @@ def ordered_active_nics():
embedded_nics.append(nic)
else:
nics.append(nic)
- return sorted(embedded_nics) + sorted(nics)
+ # NOTE: we could just natural sort all active devices,
+ # but this ensures em, eno, and eth are ordered first
+ # (more backwards compatible)
+ return (sorted(embedded_nics, key=_natural_sort_key) +
+ sorted(nics, key=_natural_sort_key))
def diff(filename, data):