From: Thierry Parmentelat Date: Tue, 12 Oct 2010 17:23:30 +0000 (+0200) Subject: sfadump more usable X-Git-Tag: sfa-1.0-3~4 X-Git-Url: http://git.onelab.eu/?p=sfa.git;a=commitdiff_plain;h=dbce495b6f2e7d8dccbfb18c5507907d784c143b sfadump more usable add filename in *.dump for tracking the filesystem cleanup imports of namespace --- diff --git a/config/sfa_component_config b/config/sfa_component_config index 137405eb..d51c93b1 100644 --- a/config/sfa_component_config +++ b/config/sfa_component_config @@ -108,7 +108,6 @@ SFA_CM_PORT=12346 # Directory internal data gets stored -# using /etc/sfa until gec5 but /var/lib/sfa would be a more reasonable choice SFA_CONFIG_DIR="/etc/sfa" # Directory internal data gets stored diff --git a/sfa/client/getRecord.py b/sfa/client/getRecord.py index 546e90a2..cb765e03 100755 --- a/sfa/client/getRecord.py +++ b/sfa/client/getRecord.py @@ -7,8 +7,6 @@ Filters/Prints record objects faiyaza at cs dot princeton dot edu Copyright (c) 2009 Board of Trustees, Princeton University -$Id$ -$HeadURL$ """ import sys diff --git a/sfa/client/setRecord.py b/sfa/client/setRecord.py index fd7fa83b..5f48e68a 100755 --- a/sfa/client/setRecord.py +++ b/sfa/client/setRecord.py @@ -7,8 +7,6 @@ Updates record objects faiyaza at cs dot princeton dot edu Copyright (c) 2009 Board of Trustees, Princeton University -$Id$ -$HeadURL$ """ import sys diff --git a/sfa/client/sfadump.py b/sfa/client/sfadump.py index 7560819c..b1169b90 100755 --- a/sfa/client/sfadump.py +++ b/sfa/client/sfadump.py @@ -10,22 +10,31 @@ from optparse import OptionParser from sfa.trust.certificate import Certificate from sfa.trust.credential import Credential +from sfa.trust.gid import GID from sfa.util.record import SfaRecord from sfa.util.rspec import RSpec from sfa.util.sfalogging import sfa_logger, sfa_logger_goes_to_console def determine_sfa_filekind(fn): - try: - cert = Certificate(filename = fn) - return 'certificate' - except: - pass + + if fn.endswith('.gid'): return 'gid' + elif fn.endswith('.cert'): return 'certificate' + elif fn.endswith('cred'): return 'credential' try: cred=Credential(filename=fn) return 'credential' - except: - pass + except: pass + + try: + gid=GID(filename=fn) + if gid.uuid: return 'gid' + except: pass + + try: + cert = Certificate(filename = fn) + return 'certificate' + except: pass # to be completed # if "gidCaller" in dict: @@ -65,20 +74,27 @@ def extract_gids(cred, extract_parents): # extract_gids(parent, extract_parents) def handle_input (filename, options): - kind = determine_sfa_filekind(filename) + handle_input_kind (filename,options,kind) + +def handle_input_kind (filename, options, kind): + +# dump methods current do 'print' so let's go this road for now if kind=="certificate": cert=Certificate (filename=filename) -# cert.dump(dump_parents=options.dump_parents) - cert.dump() + print '--------------------',filename,'IS A',kind + cert.dump(show_extensions=options.show_extensions) elif kind=="credential": cred = Credential(filename = filename) + print '--------------------',filename,'IS A',kind cred.dump(dump_parents = options.dump_parents) if options.extract_gids: + print '--------------------',filename,'embedded GIDS' extract_gids(cred, extract_parents = options.dump_parents) elif kind=="gid": - gid = Gid(filename = filename) + gid = GID(filename = filename) + print '--------------------',filename,'IS A',kind gid.dump(dump_parents = options.dump_parents) else: print "%s: unknown filekind '%s'"% (filename,kind) @@ -89,8 +105,9 @@ def main(): display info on input files""" parser = OptionParser(usage=usage) - parser.add_option("-e", "--extractgids", action="store_true", dest="extract_gids", default=False, help="Extract GIDs from credentials") - parser.add_option("-p", "--dumpparents", action="store_true", dest="dump_parents", default=False, help="Show parents") + parser.add_option("-g", "--extract-gids", action="store_true", dest="extract_gids", default=False, help="Extract GIDs from credentials") + parser.add_option("-p", "--dump-parents", action="store_true", dest="dump_parents", default=False, help="Show parents") + parser.add_option("-e", "--extensions", action="store_true", dest="show_extensions", default="False", help="Show certificate extensions") parser.add_option("-v", "--verbose", action='count', dest='verbose', default=0) (options, args) = parser.parse_args() diff --git a/sfa/managers/aggregate_manager_eucalyptus.py b/sfa/managers/aggregate_manager_eucalyptus.py index 06a1f703..7b50d2a2 100644 --- a/sfa/managers/aggregate_manager_eucalyptus.py +++ b/sfa/managers/aggregate_manager_eucalyptus.py @@ -1,8 +1,7 @@ from __future__ import with_statement -from sfa.util.faults import * -from sfa.util.namespace import * -from sfa.util.rspec import RSpec -from sfa.server.registry import Registries + +import sys +import os import boto from boto.ec2.regioninfo import RegionInfo @@ -12,8 +11,10 @@ from xmlbuilder import XMLBuilder from lxml import etree as ET from sqlobject import * -import sys -import os +from sfa.util.faults import * +from sfa.util.namespace import urn_to_hrn +from sfa.util.rspec import RSpec +from sfa.server.registry import Registries ## # The data structure used to represent a cloud. diff --git a/sfa/managers/aggregate_manager_max.py b/sfa/managers/aggregate_manager_max.py index 14168a0d..4467026f 100644 --- a/sfa/managers/aggregate_manager_max.py +++ b/sfa/managers/aggregate_manager_max.py @@ -3,7 +3,7 @@ from sfa.util.rspec import RSpec import sys import pdb -from sfa.util.namespace import * +from sfa.util.namespace import hrn_to_pl_slicename, urn_to_hrn, get_authority from sfa.util.rspec import * from sfa.util.specdict import * from sfa.util.faults import * diff --git a/sfa/managers/aggregate_manager_openflow.py b/sfa/managers/aggregate_manager_openflow.py index d2507ebf..6d12446d 100755 --- a/sfa/managers/aggregate_manager_openflow.py +++ b/sfa/managers/aggregate_manager_openflow.py @@ -1,18 +1,19 @@ -from sfa.util.faults import * -from sfa.util.namespace import * -from sfa.util.rspec import RSpec -from sfa.server.registry import Registries -from sfa.util.config import Config -from sfa.plc.nodes import * import sys +import socket +import struct + #The following is not essential #from soaplib.wsgi_soap import SimpleWSGISoapApp #from soaplib.serializers.primitive import * #from soaplib.serializers.clazz import * -import socket -import struct +from sfa.util.faults import * +from sfa.util.namespace import urn_to_hrn +from sfa.util.rspec import RSpec +from sfa.server.registry import Registries +from sfa.util.config import Config +from sfa.plc.nodes import * # Message IDs for all the SFA light calls # This will be used by the aggrMgr controller diff --git a/sfa/managers/aggregate_manager_pl.py b/sfa/managers/aggregate_manager_pl.py index 8a30f1cb..05a1de21 100644 --- a/sfa/managers/aggregate_manager_pl.py +++ b/sfa/managers/aggregate_manager_pl.py @@ -1,13 +1,11 @@ -### $Id: slices.py 15842 2009-11-22 09:56:13Z anil $ -### $URL: https://svn.planet-lab.org/svn/sfa/trunk/sfa/plc/slices.py $ - import datetime import time import traceback import sys import re from types import StringTypes -from sfa.util.namespace import * + +from sfa.util.namespace import get_authority, urn_to_hrn, slicename_to_hrn, hrn_to_pl_slicename, hrn_to_urn from sfa.util.rspec import * from sfa.util.specdict import * from sfa.util.faults import * diff --git a/sfa/managers/aggregate_manager_vini.py b/sfa/managers/aggregate_manager_vini.py index 2ec4999a..d974259d 100644 --- a/sfa/managers/aggregate_manager_vini.py +++ b/sfa/managers/aggregate_manager_vini.py @@ -1,13 +1,10 @@ -### $Id: slices.py 15842 2009-11-22 09:56:13Z anil $ -### $URL: https://svn.planet-lab.org/svn/sfa/trunk/sfa/plc/slices.py $ - import datetime import time import traceback import sys from types import StringTypes -from sfa.util.namespace import * +from sfa.util.namespace import hrn_to_pl_slicename, urn_to_hrn from sfa.util.rspec import * from sfa.util.specdict import * from sfa.util.faults import * diff --git a/sfa/managers/component_manager_pl.py b/sfa/managers/component_manager_pl.py index c26ca4d2..5c9506df 100644 --- a/sfa/managers/component_manager_pl.py +++ b/sfa/managers/component_manager_pl.py @@ -1,7 +1,8 @@ import os import xmlrpclib + from sfa.util.faults import * -from sfa.util.namespace import * +from sfa.util.namespace import urn_to_hrn, hrn_to_pl_slicename from sfa.util.sfaticket import SfaTicket def init_server(): diff --git a/sfa/managers/registry_manager_pl.py b/sfa/managers/registry_manager_pl.py index f5f4b48f..31496c2b 100644 --- a/sfa/managers/registry_manager_pl.py +++ b/sfa/managers/registry_manager_pl.py @@ -5,7 +5,7 @@ from sfa.util.record import SfaRecord from sfa.util.table import SfaTable from sfa.util.record import SfaRecord from sfa.trust.gid import GID -from sfa.util.namespace import * +from sfa.util.namespace import get_leaf, get_authority, hrn_to_urn, hrn_to_pl_login_base, urn_to_hrn from sfa.trust.credential import * from sfa.trust.certificate import * from sfa.util.faults import * diff --git a/sfa/managers/slice_manager_pl.py b/sfa/managers/slice_manager_pl.py index 03bd9941..eee8693a 100644 --- a/sfa/managers/slice_manager_pl.py +++ b/sfa/managers/slice_manager_pl.py @@ -11,7 +11,7 @@ from lxml import etree from sfa.util.sfalogging import sfa_logger from sfa.util.rspecHelper import merge_rspecs -from sfa.util.namespace import * +from sfa.util.namespace import urn_to_hrn, hrn_to_urn from sfa.util.rspec import * from sfa.util.specdict import * from sfa.util.faults import * diff --git a/sfa/methods/CreateSliver.py b/sfa/methods/CreateSliver.py index 8b45917e..e32f9fdc 100644 --- a/sfa/methods/CreateSliver.py +++ b/sfa/methods/CreateSliver.py @@ -1,5 +1,5 @@ from sfa.util.faults import * -from sfa.util.namespace import * +from sfa.util.namespace import urn_to_hrn from sfa.util.method import Method from sfa.util.parameter import Parameter, Mixed from sfa.util.sfatablesRuntime import run_sfatables diff --git a/sfa/methods/DeleteSliver.py b/sfa/methods/DeleteSliver.py index 3ed3b47b..8715407d 100644 --- a/sfa/methods/DeleteSliver.py +++ b/sfa/methods/DeleteSliver.py @@ -2,7 +2,7 @@ ### $URL: https://svn.planet-lab.org/svn/sfa/trunk/sfa/methods/stop_slice.py $ from sfa.util.faults import * -from sfa.util.namespace import * +from sfa.util.namespace import urn_to_hrn from sfa.util.method import Method from sfa.util.parameter import Parameter, Mixed from sfa.trust.auth import Auth diff --git a/sfa/methods/GetCredential.py b/sfa/methods/GetCredential.py index 9bd5cd14..849da807 100644 --- a/sfa/methods/GetCredential.py +++ b/sfa/methods/GetCredential.py @@ -1,8 +1,7 @@ # -from sfa.trust.credential import * from sfa.trust.rights import * from sfa.util.faults import * -from sfa.util.namespace import * +from sfa.util.namespace import urn_to_hrn from sfa.util.method import Method from sfa.util.parameter import Parameter, Mixed from sfa.trust.credential import Credential diff --git a/sfa/methods/GetSelfCredential.py b/sfa/methods/GetSelfCredential.py index 3d2bf8b4..647e6369 100644 --- a/sfa/methods/GetSelfCredential.py +++ b/sfa/methods/GetSelfCredential.py @@ -1,12 +1,12 @@ -from sfa.trust.credential import * -from sfa.trust.rights import * from sfa.util.faults import * -from sfa.util.namespace import * +from sfa.util.namespace import urn_to_hrn from sfa.util.method import Method from sfa.util.parameter import Parameter, Mixed from sfa.util.record import SfaRecord +from sfa.trust.credential import Credential from sfa.trust.certificate import Certificate +from sfa.trust.rights import Right, Rights class GetSelfCredential(Method): """ @@ -33,12 +33,12 @@ class GetSelfCredential(Method): """ GetSelfCredential a degenerate version of GetCredential used by a client to get his initial credential when de doesnt have one. This is the same as - get_credetial(..., cred = None, ...) + GetCredential(..., cred = None, ...) The registry ensures that the client is the principal that is named by (type, name) by comparing the public key in the record's GID to the private key used to encrypt the client side of the HTTPS connection. Thus - it is impossible for one principal to retrive another principal's + it is impossible for one principal to retrieve another principal's credential without having the appropriate private key. @param type type of object (user | slice | sa | ma | node) @@ -67,8 +67,11 @@ class GetSelfCredential(Method): # authenticate the certificate against the gid in the db certificate = Certificate(string=cert) if not certificate.is_pubkey(gid.get_pubkey()): - self.api.logger.info("ConnectionKeyGIDMismatch, CERT: %s"%certificate.get_pubkey().get_pubkey_string()) - self.api.logger.info("ConnectionKeyGIDMismatch, GID: %s"%gid.get_pubkey().get_pubkey_string()) + for (obj,name) in [ (certificate,"CERT"), (gid,"GID"), ]: + self.api.logger.debug("ConnectionKeyGIDMismatch, %s pubkey: %s"%(name,obj.get_pubkey().get_pubkey_string())) + self.api.logger.debug("ConnectionKeyGIDMismatch, %s dump: %s"%(name,obj.dump_string())) + if hasattr (obj,'filename'): + self.api.logger.debug("ConnectionKeyGIDMismatch, %s filename: %s"%(name,obj.filename)) raise ConnectionKeyGIDMismatch(gid.get_subject()) return manager.get_credential(self.api, xrn, type, is_self=True) diff --git a/sfa/methods/GetTicket.py b/sfa/methods/GetTicket.py index 119ae48d..f9b8c22c 100644 --- a/sfa/methods/GetTicket.py +++ b/sfa/methods/GetTicket.py @@ -2,7 +2,7 @@ ### $URL: https://svn.planet-lab.org/svn/sfa/trunk/sfa/methods/get_ticket.py $ import time from sfa.util.faults import * -from sfa.util.namespace import * +from sfa.util.namespace import urn_to_hrn from sfa.util.method import Method from sfa.util.parameter import Parameter, Mixed from sfa.trust.auth import Auth diff --git a/sfa/methods/GetVersion.py b/sfa/methods/GetVersion.py index 8552daf7..fef87906 100644 --- a/sfa/methods/GetVersion.py +++ b/sfa/methods/GetVersion.py @@ -1,5 +1,4 @@ from sfa.util.faults import * -from sfa.util.namespace import * from sfa.util.method import Method from sfa.util.parameter import Parameter diff --git a/sfa/methods/List.py b/sfa/methods/List.py index 0730f2bb..a812c867 100644 --- a/sfa/methods/List.py +++ b/sfa/methods/List.py @@ -2,7 +2,7 @@ ### $URL: https://svn.planet-lab.org/svn/sfa/trunk/sfa/methods/list.py $ from sfa.util.faults import * -from sfa.util.namespace import * +from sfa.util.namespace import urn_to_hrn from sfa.util.method import Method from sfa.util.parameter import Parameter, Mixed from sfa.util.record import SfaRecord diff --git a/sfa/methods/ListResources.py b/sfa/methods/ListResources.py index 80b483e1..04258530 100644 --- a/sfa/methods/ListResources.py +++ b/sfa/methods/ListResources.py @@ -1,5 +1,5 @@ from sfa.util.faults import * -from sfa.util.namespace import * +from sfa.util.namespace import urn_to_hrn from sfa.util.method import Method from sfa.util.parameter import Parameter, Mixed from sfa.trust.credential import Credential diff --git a/sfa/methods/ListSlices.py b/sfa/methods/ListSlices.py index 236d34f9..271bf9ed 100644 --- a/sfa/methods/ListSlices.py +++ b/sfa/methods/ListSlices.py @@ -1,8 +1,4 @@ -### $Id: stop_slice.py 17732 2010-04-19 21:10:45Z tmack $ -### $URL: https://svn.planet-lab.org/svn/sfa/trunk/sfa/methods/stop_slice.py $ - from sfa.util.faults import * -from sfa.util.namespace import * from sfa.util.method import Method from sfa.util.parameter import Parameter, Mixed from sfa.trust.auth import Auth diff --git a/sfa/methods/RegisterPeerObject.py b/sfa/methods/RegisterPeerObject.py index dae8f6e1..51fbe25c 100644 --- a/sfa/methods/RegisterPeerObject.py +++ b/sfa/methods/RegisterPeerObject.py @@ -5,7 +5,7 @@ from sfa.trust.certificate import Keypair, convert_public_key from sfa.trust.gid import * from sfa.util.faults import * -from sfa.util.namespace import * +from sfa.util.namespace import get_authority from sfa.util.method import Method from sfa.util.parameter import Parameter, Mixed from sfa.util.record import SfaRecord diff --git a/sfa/methods/Remove.py b/sfa/methods/Remove.py index d9911592..f13c95df 100644 --- a/sfa/methods/Remove.py +++ b/sfa/methods/Remove.py @@ -2,7 +2,7 @@ ### $URL: https://svn.planet-lab.org/svn/sfa/trunk/sfa/methods/remove.py $ from sfa.util.faults import * -from sfa.util.namespace import * +from sfa.util.namespace import urn_to_hrn from sfa.util.method import Method from sfa.util.parameter import Parameter, Mixed from sfa.trust.credential import Credential diff --git a/sfa/methods/RenewSliver.py b/sfa/methods/RenewSliver.py index efce45dd..267410db 100644 --- a/sfa/methods/RenewSliver.py +++ b/sfa/methods/RenewSliver.py @@ -1,5 +1,5 @@ from sfa.util.faults import * -from sfa.util.namespace import * +from sfa.util.namespace import urn_to_hrn from sfa.util.method import Method from sfa.util.parameter import Parameter from sfa.trust.credential import Credential diff --git a/sfa/methods/Resolve.py b/sfa/methods/Resolve.py index 3f7a61ab..d8a536e9 100644 --- a/sfa/methods/Resolve.py +++ b/sfa/methods/Resolve.py @@ -3,7 +3,7 @@ import traceback import types from sfa.util.faults import * -from sfa.util.namespace import * +from sfa.util.namespace import urn_to_hrn from sfa.util.method import Method from sfa.util.parameter import Parameter, Mixed from sfa.trust.credential import Credential diff --git a/sfa/methods/ResolveGENI.py b/sfa/methods/ResolveGENI.py index c223bbe8..cfca1b9a 100644 --- a/sfa/methods/ResolveGENI.py +++ b/sfa/methods/ResolveGENI.py @@ -1,5 +1,4 @@ from sfa.util.faults import * -from sfa.util.namespace import * from sfa.util.method import Method from sfa.util.parameter import Parameter from sfa.trust.credential import Credential diff --git a/sfa/methods/Shutdown.py b/sfa/methods/Shutdown.py index f8e32942..00142b64 100644 --- a/sfa/methods/Shutdown.py +++ b/sfa/methods/Shutdown.py @@ -1,5 +1,4 @@ from sfa.util.faults import * -from sfa.util.namespace import * from sfa.util.method import Method from sfa.util.parameter import Parameter from sfa.methods.Stop import Stop diff --git a/sfa/methods/SliverStatus.py b/sfa/methods/SliverStatus.py index 2233b702..0842c14a 100644 --- a/sfa/methods/SliverStatus.py +++ b/sfa/methods/SliverStatus.py @@ -1,5 +1,5 @@ from sfa.util.faults import * -from sfa.util.namespace import * +from sfa.util.namespace import urn_to_hrn from sfa.util.method import Method from sfa.util.parameter import Parameter, Mixed diff --git a/sfa/methods/Start.py b/sfa/methods/Start.py index 958e34fa..3619106f 100644 --- a/sfa/methods/Start.py +++ b/sfa/methods/Start.py @@ -2,7 +2,7 @@ ### $URL: https://svn.planet-lab.org/svn/sfa/trunk/sfa/methods/stop_slice.py $ from sfa.util.faults import * -from sfa.util.namespace import * +from sfa.util.namespace import urn_to_hrn from sfa.util.method import Method from sfa.util.parameter import Parameter, Mixed from sfa.trust.auth import Auth diff --git a/sfa/methods/Stop.py b/sfa/methods/Stop.py index c871e05b..13106e75 100644 --- a/sfa/methods/Stop.py +++ b/sfa/methods/Stop.py @@ -2,7 +2,7 @@ ### $URL: https://svn.planet-lab.org/svn/sfa/trunk/sfa/methods/stop_slice.py $ from sfa.util.faults import * -from sfa.util.namespace import * +from sfa.util.namespace import urn_to_hrn from sfa.util.method import Method from sfa.util.parameter import Parameter, Mixed from sfa.trust.auth import Auth diff --git a/sfa/methods/UpdateSliver.py b/sfa/methods/UpdateSliver.py index 37252f20..6c1c5bea 100644 --- a/sfa/methods/UpdateSliver.py +++ b/sfa/methods/UpdateSliver.py @@ -1,5 +1,4 @@ from sfa.util.faults import * -from sfa.util.namespace import * from sfa.util.method import Method from sfa.util.parameter import Parameter, Mixed import sys diff --git a/sfa/methods/get_aggregates.py b/sfa/methods/get_aggregates.py index c9609744..cfc9daac 100644 --- a/sfa/methods/get_aggregates.py +++ b/sfa/methods/get_aggregates.py @@ -1,8 +1,6 @@ -### $Id: get_slices.py 14387 2009-07-08 18:19:11Z faiyaza $ -### $URL: https://svn.planet-lab.org/svn/sfa/trunk/sfa/methods/get_aggregates.py $ from types import StringTypes from sfa.util.faults import * -from sfa.util.namespace import * +from sfa.util.namespace import urn_to_hrn from sfa.util.method import Method from sfa.util.parameter import Parameter, Mixed from sfa.trust.auth import Auth diff --git a/sfa/methods/get_key.py b/sfa/methods/get_key.py index 46af3695..5e3f3fd6 100644 --- a/sfa/methods/get_key.py +++ b/sfa/methods/get_key.py @@ -4,7 +4,7 @@ import os import tempfile import commands from sfa.util.faults import * -from sfa.util.namespace import * +from sfa.util.namespace import hrn_to_urn from sfa.util.method import Method from sfa.util.parameter import Parameter, Mixed from sfa.trust.auth import Auth diff --git a/sfa/methods/get_registries.py b/sfa/methods/get_registries.py index 358874c8..e2331433 100644 --- a/sfa/methods/get_registries.py +++ b/sfa/methods/get_registries.py @@ -2,7 +2,7 @@ ### $URL: https://svn.planet-lab.org/svn/sfa/trunk/sfa/methods/get_registries.py $ from types import StringTypes from sfa.util.faults import * -from sfa.util.namespace import * +from sfa.util.namespace import urn_to_hrn from sfa.util.method import Method from sfa.util.parameter import Parameter, Mixed from sfa.trust.auth import Auth diff --git a/sfa/methods/register_peer_object.py b/sfa/methods/register_peer_object.py index dae8f6e1..51fbe25c 100644 --- a/sfa/methods/register_peer_object.py +++ b/sfa/methods/register_peer_object.py @@ -5,7 +5,7 @@ from sfa.trust.certificate import Keypair, convert_public_key from sfa.trust.gid import * from sfa.util.faults import * -from sfa.util.namespace import * +from sfa.util.namespace import get_authority from sfa.util.method import Method from sfa.util.parameter import Parameter, Mixed from sfa.util.record import SfaRecord diff --git a/sfa/methods/reset_slice.py b/sfa/methods/reset_slice.py index cd9026c4..21fec61f 100644 --- a/sfa/methods/reset_slice.py +++ b/sfa/methods/reset_slice.py @@ -2,7 +2,7 @@ ### $URL: https://svn.planet-lab.org/svn/sfa/trunk/sfa/methods/reset_slices.py $ from sfa.util.faults import * -from sfa.util.namespace import * +from sfa.util.namespace import urn_to_hrn from sfa.util.method import Method from sfa.util.parameter import Parameter, Mixed from sfa.trust.auth import Auth diff --git a/sfa/plc/api-dev.py b/sfa/plc/api-dev.py index 52411592..21d4ae8c 100644 --- a/sfa/plc/api-dev.py +++ b/sfa/plc/api-dev.py @@ -16,7 +16,7 @@ from sfa.trust.auth import Auth from sfa.util.config import * from sfa.util.faults import * from sfa.trust.rights import * -from sfa.trust.credential import * +from sfa.trust.credential import Credential from sfa.trust.certificate import * from sfa.util.namespace import * from sfa.util.api import * diff --git a/sfa/plc/api.py b/sfa/plc/api.py index 5a882918..d5786988 100644 --- a/sfa/plc/api.py +++ b/sfa/plc/api.py @@ -1,9 +1,6 @@ # # SFA XML-RPC and SOAP interfaces # -### $Id$ -### $URL$ -# import sys import os @@ -11,16 +8,16 @@ import traceback import string import xmlrpclib +from sfa.util.faults import * +from sfa.util.api import * +from sfa.util.config import * from sfa.util.sfalogging import sfa_logger import sfa.util.xmlrpcprotocol as xmlrpcprotocol from sfa.trust.auth import Auth -from sfa.util.config import * -from sfa.util.faults import * -from sfa.trust.rights import * -from sfa.trust.credential import * -from sfa.trust.certificate import * -from sfa.util.namespace import * -from sfa.util.api import * +from sfa.trust.rights import Right, Rights +from sfa.trust.credential import Credential,Keypair +from sfa.trust.certificate import Certificate +from sfa.util.namespace import get_authority, hrn_to_pl_slicename, hrn_to_pl_slicename, hrn_to_urn, slicename_to_hrn, hostname_to_hrn from sfa.util.nodemanager import NodeManager try: from collections import defaultdict diff --git a/sfa/plc/network.py b/sfa/plc/network.py index 3e9603b2..42933019 100644 --- a/sfa/plc/network.py +++ b/sfa/plc/network.py @@ -1,7 +1,7 @@ from __future__ import with_statement import re import socket -from sfa.util.namespace import * +from sfa.util.namespace import get_authority, hrn_to_pl_slicename from sfa.util.faults import * from xmlbuilder import XMLBuilder from lxml import etree diff --git a/sfa/plc/sfa-import-plc.py b/sfa/plc/sfa-import-plc.py index 9b280abc..1c5ad98f 100755 --- a/sfa/plc/sfa-import-plc.py +++ b/sfa/plc/sfa-import-plc.py @@ -20,7 +20,7 @@ import tempfile from sfa.util.record import * from sfa.util.table import SfaTable -from sfa.util.namespace import * +from sfa.util.namespace import get_leaf, get_auth_info, hostname_to_hrn, slicename_to_hrn, email_to_hrn, hrn_to_pl_slicename from sfa.util.config import Config from sfa.trust.certificate import convert_public_key, Keypair from sfa.trust.trustedroot import * diff --git a/sfa/plc/sfaImport.py b/sfa/plc/sfaImport.py index 015b680a..2e8f9d9a 100644 --- a/sfa/plc/sfaImport.py +++ b/sfa/plc/sfaImport.py @@ -16,7 +16,7 @@ from sfa.util.sfalogging import sfa_logger_goes_to_import,sfa_logger from sfa.util.record import * from sfa.util.table import SfaTable -from sfa.util.namespace import * +from sfa.util.namespace import get_authority, hrn_to_urn, email_to_hrn from sfa.util.config import Config from sfa.trust.certificate import convert_public_key, Keypair from sfa.trust.trustedroot import * diff --git a/sfa/plc/slices.py b/sfa/plc/slices.py index a3c7c1a0..9df40c8b 100644 --- a/sfa/plc/slices.py +++ b/sfa/plc/slices.py @@ -1,13 +1,10 @@ -### $Id$ -### $URL$ - import datetime import time import traceback import sys from types import StringTypes -from sfa.util.namespace import * +from sfa.util.namespace import get_leaf, get_authority, hrn_to_urn, hrn_to_pl_slicename, urn_to_hrn from sfa.util.rspec import * from sfa.util.specdict import * from sfa.util.faults import * diff --git a/sfa/rspecs/aggregates/rspec_manager_max.py b/sfa/rspecs/aggregates/rspec_manager_max.py index 51d7d14c..99b390ae 100644 --- a/sfa/rspecs/aggregates/rspec_manager_max.py +++ b/sfa/rspecs/aggregates/rspec_manager_max.py @@ -3,7 +3,7 @@ from sfa.util.rspec import RSpec import sys import pdb -from sfa.util.namespace import * +from sfa.util.namespace import get_authority, hrn_to_pl_slicename, from sfa.util.rspec import * from sfa.util.specdict import * from sfa.util.faults import * diff --git a/sfa/rspecs/aggregates/rspec_manager_openflow.py b/sfa/rspecs/aggregates/rspec_manager_openflow.py index a745b6ea..48715099 100755 --- a/sfa/rspecs/aggregates/rspec_manager_openflow.py +++ b/sfa/rspecs/aggregates/rspec_manager_openflow.py @@ -1,9 +1,3 @@ -from sfa.util.faults import * -from sfa.util.namespace import * -from sfa.util.rspec import RSpec -from sfa.server.registry import Registries -from sfa.util.config import Config -from sfa.plc.nodes import * import sys #The following is not essential @@ -14,6 +8,12 @@ import sys import socket import struct +from sfa.util.faults import * +from sfa.util.rspec import RSpec +from sfa.server.registry import Registries +from sfa.util.config import Config +from sfa.plc.nodes import * + # Message IDs for all the SFA light calls # This will be used by the aggrMgr controller SFA_GET_RESOURCES = 101 diff --git a/sfa/server/interface.py b/sfa/server/interface.py index 9a1ceeaa..7ae027d1 100644 --- a/sfa/server/interface.py +++ b/sfa/server/interface.py @@ -5,7 +5,7 @@ from sfa.util.faults import * from sfa.util.storage import * -from sfa.util.namespace import * +from sfa.util.namespace import get_authority, hrn_to_urn from sfa.trust.gid import GID from sfa.util.record import SfaRecord import traceback diff --git a/sfa/server/sfa-clean-peer-records.py b/sfa/server/sfa-clean-peer-records.py index e3d81289..f821f4ce 100644 --- a/sfa/server/sfa-clean-peer-records.py +++ b/sfa/server/sfa-clean-peer-records.py @@ -3,7 +3,6 @@ import sys import os import traceback -from sfa.util.namespace import * from sfa.util.table import SfaTable from sfa.util.prefixTree import prefixTree from sfa.plc.api import SfaAPI diff --git a/sfa/server/sfa_component_setup.py b/sfa/server/sfa_component_setup.py index db1c965d..80a03a84 100755 --- a/sfa/server/sfa_component_setup.py +++ b/sfa/server/sfa_component_setup.py @@ -5,7 +5,7 @@ import tempfile from optparse import OptionParser from sfa.util.config import Config import sfa.util.xmlrpcprotocol as xmlrpcprotocol -from sfa.util.namespace import * +from sfa.util.namespace import hrn_to_pl_slicename, slicename_to_hrn from sfa.util.faults import * from sfa.trust.certificate import Keypair, Certificate from sfa.trust.credential import Credential diff --git a/sfa/trust/auth.py b/sfa/trust/auth.py index d0498e55..39522727 100644 --- a/sfa/trust/auth.py +++ b/sfa/trust/auth.py @@ -9,7 +9,7 @@ from sfa.trust.trustedroot import TrustedRootList from sfa.util.faults import * from sfa.trust.hierarchy import Hierarchy from sfa.util.config import * -from sfa.util.namespace import * +from sfa.util.namespace import get_authority from sfa.util.sfaticket import * from sfa.util.sfalogging import sfa_logger diff --git a/sfa/trust/certificate.py b/sfa/trust/certificate.py index f12c86b8..98588a97 100644 --- a/sfa/trust/certificate.py +++ b/sfa/trust/certificate.py @@ -34,9 +34,6 @@ # This module exports two classes: Keypair and Certificate. ## # -### $Id$ -### $URL$ -# import os import tempfile @@ -125,6 +122,7 @@ class Keypair: def save_to_file(self, filename): open(filename, 'w').write(self.as_pem()) + self.filename=filename ## # Load the private key from a file. Implicity the private key includes the public key. @@ -132,6 +130,7 @@ class Keypair: def load_from_file(self, filename): buffer = open(filename, 'r').read() self.load_from_string(buffer) + self.filename=filename ## # Load the private key from a string. Implicitly the private key includes the public key. @@ -170,6 +169,7 @@ class Keypair: # get the pyopenssl pkey from the pyopenssl x509 self.key = pyx509.get_pubkey() + self.filename=filename ## # Load the public key from a string. No private key is loaded. @@ -208,7 +208,6 @@ class Keypair: def get_openssl_pkey(self): return self.key - ## # Given another Keypair object, return TRUE if the two keys are the same. @@ -230,6 +229,20 @@ class Keypair: def compute_hash(self, value): return self.sign_string(str(value)) + # only informative + def get_filename(self): + return getattr(self,'filename',None) + + def dump (self, *args, **kwargs): + print self.dump_string(*args, **kwargs) + + def dump_string (self): + result="" + result += "KEYPAIR: pubkey=%40s..."%self.get_pubkey_string() + filename=self.get_filename() + if filename: result += "Filename %s\n"%filename + return result + ## # The certificate class implements a general purpose X509 certificate, making # use of the appropriate pyOpenSSL or M2Crypto abstractions. It also adds @@ -328,6 +341,7 @@ class Certificate: file = open(filename) string = file.read() self.load_from_string(string) + self.filename=filename ## # Save the certificate to a string. @@ -352,6 +366,7 @@ class Certificate: f = open(filename, 'w') f.write(string) f.close() + self.filename=filename ## # Save the certificate to a random file in /tmp/ @@ -637,16 +652,25 @@ class Certificate: triples.append( (name,self.get_data(name),'data',) ) return triples + # only informative + def get_filename(self): + return getattr(self,'filename',None) + def dump (self, *args, **kwargs): print self.dump_string(*args, **kwargs) - def dump_string (self): + def dump_string (self,show_extensions=False): result = "" - result += "Certificate for %s\n"%self.get_subject() + result += "CERTIFICATE for %s\n"%self.get_subject() result += "Issued by %s\n"%self.get_issuer() - for (n,v,c) in self.get_all_datas(): - if c=='data': - result += " data: %s=%s\n"%(n,v) - else: - result += " ext: %s=%s (%s)\n"%(n,v,c) + filename=self.get_filename() + if filename: result += "Filename %s\n"%filename + if show_extensions: + all_datas=self.get_all_datas() + result += " has %d extensions/data attached"%len(all_datas) + for (n,v,c) in all_datas: + if c=='data': + result += " data: %s=%s\n"%(n,v) + else: + result += " ext: %s (crit=%s)=<<<%s>>>\n"%(n,c,v) return result diff --git a/sfa/trust/credential.py b/sfa/trust/credential.py index 4e1fe0f1..1290532d 100644 --- a/sfa/trust/credential.py +++ b/sfa/trust/credential.py @@ -41,7 +41,7 @@ from sfa.trust.certificate import Keypair from sfa.trust.credential_legacy import CredentialLegacy from sfa.trust.rights import Right, Rights from sfa.trust.gid import GID -from sfa.util.namespace import * +from sfa.util.namespace import urn_to_hrn # Two years, in seconds DEFAULT_CREDENTIAL_LIFETIME = 60 * 60 * 24 * 365 * 2 @@ -215,6 +215,7 @@ class Credential(object): str = string elif filename: str = file(filename).read() + self.filename=filename if str.strip().startswith("-----"): self.legacy = CredentialLegacy(False,string=str) @@ -451,6 +452,7 @@ class Credential(object): f = open(filename, "w") f.write(self.xml) f.close() + self.filename=filename def save_to_string(self, save_parents=True): if not self.xml: @@ -823,17 +825,20 @@ class Credential(object): dcred.sign() return dcred - ## - # Dump the contents of a credential to stdout in human-readable format - # - # @param dump_parents If true, also dump the parent certificates + # only informative + def get_filename(self): + return getattr(self,'filename',None) + + # @param dump_parents If true, also dump the parent certificates def dump (self, *args, **kwargs): print self.dump_string(*args, **kwargs) def dump_string(self, dump_parents=False): result="" result += "CREDENTIAL %s\n" % self.get_subject() + filename=self.get_filename() + if filename: result += "Filename %s\n"%filename result += " privs: %s\n" % self.get_privileges().save_to_string() gidCaller = self.get_gid_caller() if gidCaller: diff --git a/sfa/trust/gid.py b/sfa/trust/gid.py index 2f273a12..5976b662 100644 --- a/sfa/trust/gid.py +++ b/sfa/trust/gid.py @@ -32,7 +32,7 @@ import uuid from sfa.util.sfalogging import sfa_logger from sfa.trust.certificate import Certificate -from sfa.util.namespace import * +from sfa.util.namespace import hrn_to_urn, urn_to_hrn ## # Create a new uuid. Returns the UUID as a string. @@ -182,10 +182,12 @@ class GID(Certificate): print self.dump_string(*args,**kwargs) def dump_string(self, indent=0, dump_parents=False): - result="" - result += " "*indent + "hrn:" + self.get_hrn() +"\n" - result += " "*indent + "urn:" + self.get_urn() +"\n" + result="GID\n" + result += " "*indent + "hrn:" + str(self.get_hrn()) +"\n" + result += " "*indent + "urn:" + str(self.get_urn()) +"\n" result += " "*indent + "uuid:" + str(self.get_uuid()) + "\n" + filename=self.get_filename() + if filename: result += "Filename %s\n"%filename if self.parent and dump_parents: result += " "*indent + "parent:\n" diff --git a/sfa/trust/hierarchy.py b/sfa/trust/hierarchy.py index 790b10c3..0ae7e4be 100644 --- a/sfa/trust/hierarchy.py +++ b/sfa/trust/hierarchy.py @@ -12,16 +12,13 @@ # *.DBINFO - database info ## -### $Id$ -### $URL$ - import os from sfa.util.sfalogging import sfa_logger from sfa.trust.certificate import Keypair from sfa.trust.credential import * from sfa.trust.gid import GID, create_uuid -from sfa.util.namespace import * +from sfa.util.namespace import get_leaf, get_authority, hrn_to_urn, urn_to_hrn from sfa.util.config import Config from sfa.util.sfaticket import SfaTicket diff --git a/sfa/util/api.py b/sfa/util/api.py index 28c5a30e..f9aed1cf 100644 --- a/sfa/util/api.py +++ b/sfa/util/api.py @@ -1,9 +1,6 @@ # # SFA XML-RPC and SOAP interfaces # -### $Id$ -### $URL$ -# import sys import os @@ -17,7 +14,6 @@ from sfa.util.config import * from sfa.util.faults import * from sfa.trust.credential import * from sfa.trust.certificate import * -from sfa.util.namespace import * # See "2.2 Characters" in the XML specification: # diff --git a/sfa/util/namespace.py b/sfa/util/namespace.py index 93186c96..1595a633 100644 --- a/sfa/util/namespace.py +++ b/sfa/util/namespace.py @@ -1,5 +1,3 @@ -### $Id$ -### $URL$ import re from sfa.util.faults import * URN_PREFIX = "urn:publicid:IDN" diff --git a/sfa/util/record.py b/sfa/util/record.py index 87360be6..6cb9d37d 100644 --- a/sfa/util/record.py +++ b/sfa/util/record.py @@ -13,7 +13,7 @@ from sfa.trust.gid import * from sfa.util.rspec import * from sfa.util.parameter import * -from sfa.util.namespace import * +from sfa.util.namespace import get_authority from sfa.util.row import Row class SfaRecord(Row):