Changeset 62f3dd9


Ignore:
Timestamp:
Dec 10, 2010 9:00:16 AM (13 years ago)
Author:
Ted Faber <faber@…>
Branches:
axis_example, compt_changes, info-ops, master
Children:
913dc7a
Parents:
fbee30a
git-author:
Ted Faber <faber@…> (12/09/10 11:41:45)
git-committer:
Ted Faber <faber@…> (12/10/10 09:00:16)
Message:

allow command line progams to expand tildes. Added a class derived from OptionParser? to make that easily available.

Location:
fedd
Files:
17 edited

Legend:

Unmodified
Added
Removed
  • fedd/access_to_abac.py

    rfbee30a r62f3dd9  
    1212from federation.fedid import fedid
    1313from federation.authorizer import abac_authorizer
    14 from federation.util import abac_split_cert, abac_pem_type
     14from federation.util import abac_split_cert, abac_pem_type, file_expanding_opts
    1515
    1616
     
    224224
    225225
    226 class access_opts(OptionParser):
     226class access_opts(file_expanding_opts):
    227227    '''
    228228    Parse the options for this program.  Most are straightforward, but the
     
    247247
    248248    def __init__(self):
    249         OptionParser.__init__(self, usage='%prog [opts] file [...]')
     249        file_expanding_opts.__init__(self, usage='%prog [opts] file [...]')
    250250        self.add_option('--cert', dest='cert', default=None,
     251                type='str', action='callback', callback=self.expand_file,
    251252                help='my fedid as an X.509 certificate')
    252253        self.add_option('--key', dest='key', default=None,
     254                type='str', action='callback', callback=self.expand_file,
    253255                help='key for the certificate')
    254256        self.add_option('--dir', dest='dir', default=None,
     257                type='str', action='callback', callback=self.expand_file,
    255258                help='Output directory for credentials')
    256259        self.add_option('--type', action='callback', nargs=1, type='str',
     
    263266                default=False,
    264267                help='Do not print credential to local attribute map')
    265         self.add_option('--create-creds', action='store_true',
     268        self.add_option('--create_creds', action='store_true',
    266269                dest='create_creds', default=False,
    267270                help='create credentials for rules.  Requires ' + \
    268271                        '--cert, --key, and --dir to be given.')
    269272        self.add_option('--file', dest='file', default=None,
     273                type='str', action='callback', callback=self.expand_file,
    270274                help='Access DB to parse.  If this is present, ' + \
    271275                        'omit the positional filename')
    272276        self.add_option('--mapfile', dest='map', default=None,
     277                type='str', action='callback', callback=self.expand_file,
    273278                help='File for the attribute to local authorization data')
    274279        self.add_option('--no-delegate', action='store_false', dest='delegate',
  • fedd/cert_to_fedid.py

    rfbee30a r62f3dd9  
    33import sys, os
    44import subprocess, tempfile
     5import os.path
    56
    67from string import join
    7 from optparse import OptionParser
    8 from federation.util import abac_pem_type, abac_split_cert
     8from federation.util import abac_pem_type, abac_split_cert, file_expanding_opts
    99
    10 class Parser(OptionParser):
     10class Parser(file_expanding_opts):
    1111    def __init__(self):
    12         OptionParser.__init__(self, usage='%prog [options]')
     12        file_expanding_opts.__init__(self, usage='%prog [options]')
    1313        self.add_option('--out', dest='out', help='destination file',
     14                action='callback', callback=self.expand_file, type='str',
    1415                default='./cert.pem')
    1516        self.add_option('--debug', dest='debug', action='store_true',
  • fedd/confirm_sshkey.py

    rfbee30a r62f3dd9  
    33import os, sys
    44import MySQLdb
    5 from optparse import OptionParser
     5from federation.util import file_expanding_opts
    66
    77
    8 class opt_parser(OptionParser):
     8class opt_parser(file_expanding_opts):
    99    def __init__(self):
    1010        OptionParser.__init__(self, usage="%prog [opts] (--help for details)",
     
    1212        self.add_option('-u', '--user', dest='user', action='store',
    1313                default=None, help="User to confirm key of")
    14         self.add_option('-f', '--keyfile', dest='keyfile', action='store',
     14        self.add_option('-f', '--keyfile', dest='keyfile',
     15                action='callback', callback=self.expand_file, type='str',
    1516                default=None, help="file containing pubkey to confirm")
    16         self.add_option('-k', '--key', dest='key',
    17                 default=None, action='store',
     17        self.add_option('-k', '--key', dest='key', default=None,
     18                action='callback', callback=self.expand_file, type='str',
    1819                help='Key on the command line')
    1920        self.add_option('-q', '--quiet', dest='verbose', action='store_false',
  • fedd/creddy_split.py

    rfbee30a r62f3dd9  
    55import os
    66
    7 from optparse import OptionParser
    8 from federation.util import abac_split_cert, abac_pem_type
     7from federation.util import abac_split_cert, abac_pem_type, file_expanding_opts
    98
    109# Options
    11 class Parser(OptionParser):
     10class Parser(file_expanding_opts):
    1211    def __init__(self):
    13         OptionParser.__init__(self, usage="%prog [options] file.pem")
     12        file_expanding_opts.__init__(self, usage="%prog [options] file.pem")
    1413        self.add_option('--cert', dest='cert', default='./cert.pem',
     14                action='callback', callback=self.expand_file, type='str',
    1515                help='File to extract certificate into, default: [%default]')
    1616        self.add_option('--key', dest='key', default='./key.pem',
     17                action='callback', callback=self.expand_file, type='str',
    1718                help='File to extract key into, default: [%default]')
    1819        self.add_option('--force', action='store_true', dest='force',
  • fedd/fedd.py

    rfbee30a r62f3dd9  
    77from federation import config_parser
    88from federation.server import server, xmlrpc_handler, soap_handler
    9 from federation.util import fedd_ssl_context
     9from federation.util import fedd_ssl_context, file_expanding_opts
    1010from federation.deter_impl import new_feddservice
    1111
     
    1818import logging
    1919import M2Crypto
    20 
    21 class fedd_opts(OptionParser):
     20import os.path
     21
     22class fedd_opts(file_expanding_opts):
    2223    """Encapsulate option processing in this class, rather than in main"""
     24
    2325    def __init__(self):
    24         OptionParser.__init__(self, usage="%prog [opts] (--help for details)",
     26        file_expanding_opts.__init__(self,
     27                usage="%prog [opts] (--help for details)",
    2528                version="0.1")
    2629
     
    2932        self.add_option("-d", "--debug", action="count", dest="debug",
    3033                help="Set debug.  Repeat for more information")
    31         self.add_option("-f", "--configfile", action="store",
     34        self.add_option("-f", "--configfile", action="callback",
     35                callback=self.expand_file, type='str',
    3236                default="/usr/local/etc/fedd.conf",
    33                 dest="configfile", help="Configuration file (required)")
     37                dest="configfile", help="Configuration file")
    3438        self.add_option("-l", "--logfile", action="store", dest="logfile",
    3539                help="File to send log messages to")
  • fedd/fedd_create.py

    rfbee30a r62f3dd9  
    2626        client_opts.__init__(self)
    2727        self.add_option("--experiment_cert", dest="out_certfile",
     28                action="callback", callback=self.expand_file,
    2829                type="string", help="output certificate file")
    2930        self.add_option("--experiment_name", dest="exp_name",
    3031                type="string", help="Suggested experiment name")
    31         self.add_option("--file", dest="file",
     32        self.add_option("--file", dest="file", action="callback",
     33                callback=self.expand_file, type="str",
    3234                help="experiment description file")
    3335        self.add_option("--project", action="store", dest="project",
  • fedd/fedd_ftopo.py

    rfbee30a r62f3dd9  
    1212        client_opts.__init__(self)
    1313        self.add_option("--experiment_cert", dest="exp_certfile",
    14                 type="string", help="experiment certificate file")
     14                action='callback', callback=self.expand_file, type='str',
     15                help="experiment certificate file")
    1516        self.add_option("--experiment_name", dest="exp_name",
    1617                type="string", help="human readable experiment name")
  • fedd/fedd_image.py

    rfbee30a r62f3dd9  
    1717        client_opts.__init__(self)
    1818        self.add_option("--experiment_cert", dest="exp_certfile",
    19                 type="string", help="experiment certificate file")
     19                action='callback', callback=self.expand_file, type='str',
     20                help="experiment certificate file")
    2021        self.add_option("--experiment_name", dest="exp_name",
    2122                type="string", help="human readable experiment name")
    22         self.add_option("--output", dest="outfile", type="string",
     23        self.add_option("--output", dest="outfile",
     24                action='callback', callback=self.expand_file, type='str',
    2325                help="output image file")
    2426        self.add_option("--format", dest="format", type="choice",
     
    3840                help="Size of output in pixels (diagrams are square")
    3941        self.add_option("--file", dest="file",
     42                action='callback', callback=self.expand_file, type='str',
    4043                help="experiment description file")
    4144        self.add_option("--group", dest="group", action="append", default=[],
  • fedd/fedd_info.py

    rfbee30a r62f3dd9  
    1111        client_opts.__init__(self)
    1212        self.add_option("--experiment_cert", dest="exp_certfile",
    13                 type="string", help="experiment certificate file")
     13                action='callback', callback=self.expand_file, type='str',
     14                help="experiment certificate file")
    1415        self.add_option("--experiment_name", dest="exp_name",
    1516                type="string", help="human readable experiment name")
  • fedd/fedd_new.py

    rfbee30a r62f3dd9  
    1414        client_opts.__init__(self)
    1515        self.add_option("--experiment_cert", dest="out_certfile",
    16                 type="string", help="output certificate file")
     16                action='callback', callback=self.expand_file, type='str',
     17                help="output certificate file")
    1718        self.add_option("--experiment_name", dest="exp_name",
    1819                type="string", help="Suggested experiment name")
  • fedd/fedd_ns2topdl.py

    rfbee30a r62f3dd9  
    1212        client_opts.__init__(self)
    1313        self.add_option("--file", dest="file",
     14                action='callback', callback=self.expand_file, type='str',
    1415                help="experiment description file")
    1516        self.add_option("--output", dest="outfile", type="string",
  • fedd/fedd_spewlog.py

    rfbee30a r62f3dd9  
    1212        client_opts.__init__(self)
    1313        self.add_option("--experiment_cert", dest="exp_certfile",
    14                 type="string", help="experiment name certificate file")
     14                action='callback', callback=self.expand_file, type='str',
     15                help="experiment name certificate file")
    1516        self.add_option("--experiment_name", dest="exp_name",
    1617                type="string", help="human readable experiment name")
    1718        self.add_option("--logfile", dest="logfile", default=None,
     19                action='callback', callback=self.expand_file, type='str',
    1820                help="File to write log to")
    1921        self.add_option('--update_time', dest='update', type='int', default=10,
  • fedd/fedd_terminate.py

    rfbee30a r62f3dd9  
    1212        client_opts.__init__(self)
    1313        self.add_option("--experiment_cert", dest="exp_certfile",
    14                 type="string", help="experiment certificate file")
     14                action='callback', callback=self.expand_file, type='str',
     15                help="experiment certificate file")
    1516        self.add_option("--experiment_name", dest="exp_name",
    1617                type="string", help="human readable experiment name")
     
    1920                help="Force termination if experiment is in strange state")
    2021        self.add_option("--logfile", dest="logfile", default=None,
     22                action='callback', callback=self.expand_file, type='str',
    2123                help="File to write log to")
    2224        self.add_option("--print_log", dest="print_log", default=False,
  • fedd/fedd_to_abac.py

    rfbee30a r62f3dd9  
    99
    1010from string import join
    11 from optparse import OptionParser
    1211
    13 from federation.util import abac_pem_type, abac_split_cert
     12from federation.util import abac_pem_type, abac_split_cert, file_expanding_opts
    1413
    15 class Parser(OptionParser):
     14class Parser(file_expanding_opts):
    1615    def __init__(self):
    17         OptionParser.__init__(self)
     16        file_expanding_opts.__init__(self)
    1817        self.add_option('--cert', dest='cert', default=None,
     18                action='callback', callback=self.expand_file, type='str',
    1919                help='my fedid as an X.509 certificate')
    2020        self.add_option('--key', dest='key', default=None,
     21                action='callback', callback=self.expand_file, type='str',
    2122                help='key for the certificate')
    2223        self.add_option('--dir', dest='dir', default=None,
     24                action='callback', callback=self.expand_file, type='str',
    2325                help='Output directory for credentials')
    2426        self.add_option('--make-dir', action='store_true', dest='make_dir',
  • fedd/federation/client_lib.py

    rfbee30a r62f3dd9  
    1010
    1111from fedid import fedid
    12 from util import fedd_ssl_context
     12from util import fedd_ssl_context, file_expanding_opts
    1313from remote_service import service_caller
    1414from service_error import service_error
     
    1717
    1818
    19 class client_opts(OptionParser):
     19class client_opts(file_expanding_opts):
    2020    """
    2121    Standatd set of options that all clients talking to fedd can probably use.
    2222    Client code usually specializes this.
    2323    """
     24
    2425    def __init__(self):
    25         OptionParser.__init__(self, usage="%prog [opts] (--help for details)",
     26        file_expanding_opts.__init__(self,
     27                usage="%prog [opts] (--help for details)",
    2628                version="0.1")
    2729
    28         self.add_option("--cert", action="store", dest="cert",
     30        self.add_option("--cert", action="callback", dest="cert",
     31                callback=self.expand_file,
    2932                type="string", help="my certificate file")
    30         self.add_option("--abac", action="store", dest="abac_dir",
    31                 type="string", help="Directory with abac certs")
     33        self.add_option("--abac", action="callback", dest="abac_dir",
     34                callback=self.expand_file,
     35                type="string", default=os.path.expanduser('~/.abac'),
     36                help="Directory with abac certs")
     37        self.add_option('--no_abac', action='store_const', const=None,
     38                dest='abac_dir', help='Do not use abac authorization')
    3239        self.add_option( "--debug", action="count", dest="debug",
    3340                default=0, help="Set debug.  Repeat for more information")
     
    3542                dest="serialize_only", default=False,
    3643                help="Print the SOAP request that would be sent and exit")
    37         self.add_option("--trusted", action="store", dest="trusted",
     44        self.add_option("--trusted", action="callback", dest="trusted",
     45                callback=self.expand_file,
    3846                type="string", help="Trusted certificates (required)")
    3947        self.add_option("--url", action="store", dest="url",
     
    98106    '''
    99107    rv = [ ]
    100     if dir:
     108    if dir and os.path.isdir(dir):
    101109        for fn in ["%s/%s" % (dir, p) for p in os.listdir(dir) \
    102110                if os.path.isfile("%s/%s" % (dir,p))]:
  • fedd/federation/util.py

    rfbee30a r62f3dd9  
    88
    99import httplib
     10
     11from optparse import OptionParser
    1012
    1113from socket import sslerror
     
    9597            self.set_allow_unknown_ca(True)
    9698            self.set_verify(SSL.verify_peer, 10, callback=callb)
     99
     100class file_expanding_opts(OptionParser):
     101    def expand_file(self, option, opt_str, v, p):
     102        """
     103        Store the given value to the given destination after expanding home
     104        directories.
     105        """
     106        setattr(p.values, option.dest, os.path.expanduser(v))
     107
     108    def __init__(self, usage=None, version=None):
     109        OptionParser.__init__(self)
     110
    97111
    98112def read_simple_accessdb(fn, auth, mask=[]):
  • fedd/init_abac_authorizer.py

    rfbee30a r62f3dd9  
    55
    66from optparse import OptionParser
    7 from federation.authorizer import abac_authorizer
     7from federation.authorizer import abac_authorizer, file_expanding_opts
    88
    99class Parser(OptionParser):
    1010    def __init__(self):
    1111        OptionParser.__init__(self, usage='%prog [options]')
    12         self.add_option('--cert', dest='cert', help='Identity certificate')
    13         self.add_option('--key', dest='key', help='Identity key')
     12        self.add_option('--cert', dest='cert',
     13                action='callback', callback=self.expand_file, type='str',
     14                help='Identity certificate')
     15        self.add_option('--key', dest='key',
     16                action='callback', callback=self.expand_file, type='str',
     17                help='Identity key')
    1418        self.add_option('--policy', dest='policy',
     19                action='callback', callback=self.expand_file, type='str',
    1520                help='ABAC policy certificates')
    16         self.add_option('--dir', dest='out_dir', help='directory to save into')
     21        self.add_option('--dir', dest='out_dir',
     22                action='callback', callback=self.expand_file, type='str',
     23                help='directory to save into')
    1724
    1825parser = Parser()
Note: See TracChangeset for help on using the changeset viewer.