from optparse import OptionParser
from sfa.util.config import Config
import sfa.util.xmlrpcprotocol as xmlrpcprotocol
-import sfa.util.misc as misc
+from sfa.util.namepace import *
from sfa.trust.certificate import Keypair, Certificate
from sfa.trust.credential import Credential
from sfa.trust.gid import GID
# this call requires no authentication,
# so we can generate a random keypair here
subject="component"
- keyfile = tempfile.mktemp()
- certfile = tempfile.mktemp()
+ (kfd, keyfile) = tempfile.mkstemp()
+ (cfd, certfile) = tempfile.mkstemp()
key = Keypair(create=True)
key.save_to_file(keyfile)
cert = Certificate(subject=subject)
cert.sign()
cert.save_to_file(certfile, save_parents=True)
-def get_credential(registry=None, verbose=False):
+def get_credential(registry=None, force=False, verbose=False):
config = Config()
hierarchy = Hierarchy()
key_dir= hierarchy.basedir
config_dir = config.config_path
credfile = data_dir + os.sep + 'node.cred'
# check for existing credential
- if os.path.exists(credfile):
+ if not force and os.path.exists(credfile):
if verbose:
print "Loading Credential from %(credfile)s " % locals()
cred = Credential(filename=credfile).save_to_string(save_parents=True)
for gid_str in trusted_certs:
gid = GID(string=gid_str)
gid.decode()
- trusted_gid_names.append(gid.get_hrn())
- gid_filename = trusted_certs_dir + os.sep + gid.get_hrn() + ".gid"
+ relative_filename = gid.get_hrn() + ".gid"
+ trusted_gid_names.append(relative_filename)
+ gid_filename = trusted_certs_dir + os.sep + relative_filename
if verbose:
print "Writing GID for %s as %s" % (gid.get_hrn(), gid_filename)
gid.save_to_file(gid_filename, save_parents=True)
from sfa.plc.api import ComponentAPI
api = ComponentAPI()
slicenames = api.nodemanager.GetXIDs().keys()
- slicename_to_hrn = lambda name: ".".join([interface_hrn, name.replace('_', '.')])
- hrns = map(slicename_to_hrn, slicenames)
+ hrns = [slicename_to_hrn(interface_hrn, slicename) for slicename in slicenames]
+
if verbose:
print "Getting gids for slices on this node from registry"
# if this isnt a slice record skip it
if not record['type'] == 'slice':
continue
- slicename = misc.hrn_to_pl_slicename(record['hrn'])
+ slicename = hrn_to_pl_slicename(record['hrn'])
# if this slice isnt really instatiated skip it
if not os.path.exists("/vservers/%(slicename)s" % locals()):
continue
# save the slice gid in /etc/sfa/ in the vservers filesystem
- vserver_path = "/vserver/%(slicename)s" % locals()
+ vserver_path = "/vservers/%(slicename)s" % locals()
gid = record['gid']
- slice_gid_filename = os.sep.join([vserver_path, config_dir, "slice.gid"])
+ slice_gid_filename = os.sep.join([vserver_path, "etc", "slice.gid"])
if verbose:
print "Saving GID for %(slicename)s as %(slice_gid_filename)s" % locals()
GID(string=gid).save_to_file(slice_gid_filename, save_parents=True)
# save the node gid in /etc/sfa
- node_gid_filename = os.sep.join([vserver_path, config_dir, "node.gid"])
+ node_gid_filename = os.sep.join([vserver_path, "etc", "node.gid"])
if verbose:
- print "Saving node GID for %(slicename)s as %(slice_gid_filename)s" % locals()
+ print "Saving node GID for %(slicename)s as %(node_gid_filename)s" % locals()
node_gid.save_to_file(node_gid_filename, save_parents=True)