Ignore:
Timestamp:
Nov 24, 2010 3:45:50 PM (13 years ago)
Author:
Ted Faber <faber@…>
Branches:
axis_example, compt_changes, info-ops, master
Children:
725c55d
Parents:
de7cb08
Message:

Checkpoint. Still lots to do

File:
1 edited

Legend:

Unmodified
Added
Removed
  • fedd/fedd_create.py

    rde7cb08 rc573278  
    44import re
    55import subprocess
     6
     7import ABAC
    68
    79from string import join
     
    1214        wrangle_standard_options, do_rpc, get_experiment_names, save_certfile,\
    1315        get_abac_certs
    14 from federation.util import abac_split_cert
     16from federation.util import abac_split_cert, abac_context_to_creds
    1517
    1618class fedd_create_opts(client_opts):
     
    101103    value if the filename in which the certificate was stored.
    102104    '''
    103 
    104105    certfile = keyfile = None
    105106    expid = "%s" % fedid
     
    110111    try:
    111112        keyfile, certfile = abac_split_cert(cert)
    112         print "%s %s" % (keyfile, certfile)
    113113
    114114        rv = 0
    115         if name: fn = '%s/%s_attr.der' % (dir, name)
    116         else: fn = '%s/%s_attr.der' % (dir, expid)
     115        if name:
     116            fn ='%s/%s_attr.der' % (dir, name)
     117            id_fn = '%s/%s_id.pem' % (dir, name)
     118        else:
     119            fn = '%s/%s_attr.der' % (dir, expid)
     120            id_fn = '%s/%s_id.pem' % (dir, expid)
    117121
    118122        cmd = [creddy, '--attribute', '--issuer=%s' % certfile,
     
    122126        if not debug:
    123127            if subprocess.call(cmd) != 0:
    124                 return None
     128                return []
    125129        else:
    126130            print join(cmd)
    127             return None
    128 
    129         f = open(fn, 'r')
    130         rv = f.read()
    131         f.close()
    132         return rv
     131            return []
     132
     133        context = ABAC.Context()
     134        if context.load_id_file(certfile) != ABAC.ABAC_CERT_SUCCESS or \
     135                context.load_attribute_file(fn) != ABAC.ABAC_CERT_SUCCESS:
     136            return []
     137        ids, attrs = abac_context_to_creds(context)
     138
     139        return ids + attrs
     140
    133141
    134142    finally:
     
    236244if e_fedid and opts.delegate:
    237245    try:
    238         cred = delegate(e_fedid, cert, opts.abac_dir, name=opts.exp_name)
    239         if cred:
    240             acerts.append(cred)
     246        creds = delegate(e_fedid, cert, opts.abac_dir, name=opts.exp_name)
     247        if creds:
     248            acerts.extend(creds)
    241249    except EnvironmentError, e:
    242250        sys.exit("Cannot delegate rights %s: %s" % (e.filename, e.strerror));
Note: See TracChangeset for help on using the changeset viewer.