Merge "Added natural sort for interfaces in utils.ordered_active_nics()"
This commit is contained in:
commit
f0c42a7cda
@ -33,7 +33,8 @@ class TestUtils(base.TestCase):
|
|||||||
return True
|
return True
|
||||||
self.stubs.Set(utils, '_is_active_nic', test_is_active_nic)
|
self.stubs.Set(utils, '_is_active_nic', test_is_active_nic)
|
||||||
|
|
||||||
for nic in ['a1', 'em1', 'em2', 'eth2', 'z1']:
|
for nic in ['a1', 'em1', 'em2', 'eth2', 'z1',
|
||||||
|
'enp8s0', 'enp10s0', 'enp1s0f0']:
|
||||||
with open(os.path.join(tmpdir, nic), 'w') as f:
|
with open(os.path.join(tmpdir, nic), 'w') as f:
|
||||||
f.write(nic)
|
f.write(nic)
|
||||||
|
|
||||||
@ -42,6 +43,9 @@ class TestUtils(base.TestCase):
|
|||||||
self.assertEqual('em2', nics[1])
|
self.assertEqual('em2', nics[1])
|
||||||
self.assertEqual('eth2', nics[2])
|
self.assertEqual('eth2', nics[2])
|
||||||
self.assertEqual('a1', nics[3])
|
self.assertEqual('a1', nics[3])
|
||||||
self.assertEqual('z1', nics[4])
|
self.assertEqual('enp1s0f0', nics[4])
|
||||||
|
self.assertEqual('enp8s0', nics[5])
|
||||||
|
self.assertEqual('enp10s0', nics[6])
|
||||||
|
self.assertEqual('z1', nics[7])
|
||||||
|
|
||||||
shutil.rmtree(tmpdir)
|
shutil.rmtree(tmpdir)
|
||||||
|
@ -17,6 +17,7 @@
|
|||||||
import glob
|
import glob
|
||||||
import logging
|
import logging
|
||||||
import os
|
import os
|
||||||
|
import re
|
||||||
|
|
||||||
|
|
||||||
logger = logging.getLogger(__name__)
|
logger = logging.getLogger(__name__)
|
||||||
@ -75,6 +76,12 @@ def _is_active_nic(interface_name):
|
|||||||
return False
|
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():
|
def ordered_active_nics():
|
||||||
embedded_nics = []
|
embedded_nics = []
|
||||||
nics = []
|
nics = []
|
||||||
@ -86,7 +93,11 @@ def ordered_active_nics():
|
|||||||
embedded_nics.append(nic)
|
embedded_nics.append(nic)
|
||||||
else:
|
else:
|
||||||
nics.append(nic)
|
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):
|
def diff(filename, data):
|
||||||
|
Loading…
x
Reference in New Issue
Block a user