summaryrefslogtreecommitdiffstats
path: root/ipa-python/ipautil.py
diff options
context:
space:
mode:
authorJohn Dennis <jdennis@redhat.com>2007-11-03 12:22:20 -0400
committerJohn Dennis <jdennis@redhat.com>2007-11-03 12:22:20 -0400
commit8cfd270f3441094390d16df9c0d59b0c7ce42284 (patch)
tree1fbd3e64fe4ae3526b893025b147c250357d6c35 /ipa-python/ipautil.py
parent8f4362f2f2ace9ed017dc5307c54290eb103842e (diff)
downloadfreeipa-8cfd270f3441094390d16df9c0d59b0c7ce42284.tar.gz
freeipa-8cfd270f3441094390d16df9c0d59b0c7ce42284.tar.xz
freeipa-8cfd270f3441094390d16df9c0d59b0c7ce42284.zip
merge initial radius work
Diffstat (limited to 'ipa-python/ipautil.py')
-rw-r--r--ipa-python/ipautil.py37
1 files changed, 37 insertions, 0 deletions
diff --git a/ipa-python/ipautil.py b/ipa-python/ipautil.py
index 1979ceb45..96a74d757 100644
--- a/ipa-python/ipautil.py
+++ b/ipa-python/ipautil.py
@@ -30,6 +30,7 @@ from string import lower
import re
import xmlrpclib
import datetime
+import rpm
def realm_to_suffix(realm_name):
s = realm_name.split(".")
@@ -330,3 +331,39 @@ def parse_generalized_time(timestr):
except ValueError:
return None
+
+#-------------------------------------------------------------------------------
+
+def get_rpm_nvr_from_header(hdr):
+ 'Given an RPM header return the package NVR as a string'
+ name = hdr['name']
+ version = hdr['version']
+ release = hdr['release']
+
+ return '%s-%s-%s' % (name, version, release)
+
+def get_rpm_nvr_by_name(name):
+ if name is None:
+ return None
+
+ nvr = None
+ try:
+ ts = rpm.ts()
+ mi = ts.dbMatch(rpm.RPMTAG_NAME, name)
+ for h in mi:
+ nvr = get_rpm_nvr_from_header(h)
+ break
+ except:
+ logging.exception('failed to retrieve rpm info for %s', name)
+ return nvr
+
+def split_rpm_nvr(nvr):
+ components = nvr.split('-')
+ release = components[-1]
+ version = components[-2]
+ name = '-'.join(components[:-2])
+ return (name, version, release)
+
+
+
+