summaryrefslogtreecommitdiffstats
path: root/bin/openshift_ansible/utils.py
diff options
context:
space:
mode:
authorWesley Hearn <wesley.s.hearn@gmail.com>2015-05-06 10:27:44 -0400
committerWesley Hearn <wesley.s.hearn@gmail.com>2015-05-06 10:27:44 -0400
commit803b9191f1a3a2bffe94528a8a5cd82adf6f3a42 (patch)
tree8f3370fd2d9537a568d97e48ece9e18f3d0032bb /bin/openshift_ansible/utils.py
parent519e097df31e2148ac520ab273d0bd2fb2f7bb43 (diff)
parente0b2d98a6cac21cfa555afe4d660cb62c1180856 (diff)
downloadopenshift-803b9191f1a3a2bffe94528a8a5cd82adf6f3a42.tar.gz
openshift-803b9191f1a3a2bffe94528a8a5cd82adf6f3a42.tar.bz2
openshift-803b9191f1a3a2bffe94528a8a5cd82adf6f3a42.tar.xz
openshift-803b9191f1a3a2bffe94528a8a5cd82adf6f3a42.zip
Merge pull request #209 from openshift/master
Merge Master Into Stage
Diffstat (limited to 'bin/openshift_ansible/utils.py')
-rw-r--r--bin/openshift_ansible/utils.py30
1 files changed, 30 insertions, 0 deletions
diff --git a/bin/openshift_ansible/utils.py b/bin/openshift_ansible/utils.py
new file mode 100644
index 000000000..e6243aa5a
--- /dev/null
+++ b/bin/openshift_ansible/utils.py
@@ -0,0 +1,30 @@
+#!/usr/bin/env python
+# vim: expandtab:tabstop=4:shiftwidth=4
+
+''' The purpose of this module is to contain small utility functions.
+'''
+
+import re
+
+def normalize_dnsname(name, padding=10):
+ ''' The purpose of this function is to return a dns name with zero padding,
+ so that it sorts properly (as a human would expect).
+
+ Example: name=ex-lrg-node10.prod.rhcloud.com
+ Returns: ex-lrg-node0000000010.prod.rhcloud.com
+
+ Example Usage:
+ sorted(['a3.example.com', 'a10.example.com', 'a1.example.com'],
+ key=normalize_dnsname)
+
+ Returns: ['a1.example.com', 'a3.example.com', 'a10.example.com']
+ '''
+ parts = re.split(r'(\d+)', name)
+ retval = []
+ for part in parts:
+ if re.match(r'^\d+$', part):
+ retval.append(part.zfill(padding))
+ else:
+ retval.append(part)
+
+ return ''.join(retval)