summaryrefslogtreecommitdiffstats
path: root/ipa-admintools/ipa-addradiusprofile
diff options
context:
space:
mode:
Diffstat (limited to 'ipa-admintools/ipa-addradiusprofile')
-rw-r--r--ipa-admintools/ipa-addradiusprofile39
1 files changed, 20 insertions, 19 deletions
diff --git a/ipa-admintools/ipa-addradiusprofile b/ipa-admintools/ipa-addradiusprofile
index 8e097c38..0872437f 100644
--- a/ipa-admintools/ipa-addradiusprofile
+++ b/ipa-admintools/ipa-addradiusprofile
@@ -21,7 +21,6 @@
import sys
import os
from optparse import OptionParser
-import copy
import ipa.ipaclient as ipaclient
import ipa.ipautil as ipautil
@@ -36,7 +35,10 @@ import ldap
#------------------------------------------------------------------------------
radius_attrs = radius_util.radius_profile_attr_to_ldap_attr.keys()
+radius_attr_to_ldap_attr = radius_util.radius_profile_attr_to_ldap_attr
+ldap_attr_to_radius_attr = radius_util.radius_profile_ldap_attr_to_radius_attr
mandatory_radius_attrs = ['UID']
+distinguished_attr = 'UID'
#------------------------------------------------------------------------------
@@ -60,7 +62,6 @@ def main():
opt_parser.add_option("-d", "--Description", dest="desc",
help="description of the RADIUS client")
-
opt_parser.add_option("-h", "--help", action="callback", callback=help_option_callback,
help="detailed help information")
opt_parser.add_option("-i", "--interactive", dest="interactive", action='store_true', default=False,
@@ -72,16 +73,16 @@ def main():
opt_parser.add_option("-v", "--verbose", dest="verbose", action='store_true',
help="print information")
- opt_parser.set_usage("Usage: %s [options] UID" % (os.path.basename(sys.argv[0])))
+ opt_parser.set_usage("Usage: %s [options] %s" % (distinguished_attr, os.path.basename(sys.argv[0])))
args = ipa.config.init_config(sys.argv)
options, args = opt_parser.parse_args(args)
if len(args) < 2:
- opt_parser.error("missing UID")
+ opt_parser.error('missing %s' % (distinguished_attr))
uid = args[1]
- pairs['UID'] = uid
+ pairs[distinguished_attr] = uid
# Get pairs from a file or stdin
if options.pair_file:
@@ -103,16 +104,16 @@ def main():
# Get pairs interactively
if options.interactive:
- # Remove any mandatory attriubtes which have been previously specified
- interactive_mandatory_attrs = copy.copy(mandatory_radius_attrs)
- for attr in pairs.keys():
- try:
- interactive_mandatory_attrs.remove(attr)
- except ValueError:
- pass
+ # Prompt first for mandatory attributes which have not been previously specified
+ prompted_mandatory_attrs = []
+ existing_attrs = pairs.keys():
+ for attr in mandatory_radius_attrs:
+ if not attr in existing_attrs:
+ prompted_mandatory_attrs.append(attr)
+
c = ipautil.AttributeValueCompleter(radius_attrs, pairs)
c.open()
- av = c.get_pairs("Enter: ", interactive_mandatory_attrs, radius_util.validate)
+ av = c.get_pairs("Enter: ", prompted_mandatory_attrs, radius_util.validate)
pairs.update(av)
c.close()
@@ -120,9 +121,9 @@ def main():
# Data collection done, assure mandatory data has been specified
- if pairs.has_key('UID') and pairs['UID'] != uid:
- print "ERROR, uid specified on command line (%s) does not match value found in pairs (%s)" % \
- (uid, pairs['UID'])
+ if pairs.has_key(distinguished_attr) and pairs[distinguished_attr] != uid:
+ print "ERROR, %s specified on command line (%s) does not match value found in pairs (%s)" % \
+ (distinguished_attr, uid, pairs[distinguished_attr])
return 1
valid = True
@@ -158,13 +159,13 @@ def main():
for attr,value in pairs.items():
print "\t%s = %s" % (attr, value)
- radius_profile = radius_util.RadiusProfile()
+ radius_entity = radius_util.RadiusProfile()
for attr,value in pairs.items():
- radius_profile.setValue(radius_util.radius_profile_attr_to_ldap_attr[attr], value)
+ radius_entity.setValue(radius_attr_to_ldap_attr[attr], value)
try:
ipa_client = ipaclient.IPAClient()
- ipa_client.add_radius_profile(radius_profile)
+ ipa_client.add_radius_profile(radius_entity)
print "successfully added"
except xmlrpclib.Fault, f:
print f.faultString