sfadump more usable
Thierry Parmentelat [Tue, 12 Oct 2010 17:23:30 +0000 (19:23 +0200)]
add filename in *.dump for tracking the filesystem
cleanup imports of namespace

55 files changed:
config/sfa_component_config
sfa/client/getRecord.py
sfa/client/setRecord.py
sfa/client/sfadump.py
sfa/managers/aggregate_manager_eucalyptus.py
sfa/managers/aggregate_manager_max.py
sfa/managers/aggregate_manager_openflow.py
sfa/managers/aggregate_manager_pl.py
sfa/managers/aggregate_manager_vini.py
sfa/managers/component_manager_pl.py
sfa/managers/registry_manager_pl.py
sfa/managers/slice_manager_pl.py
sfa/methods/CreateSliver.py
sfa/methods/DeleteSliver.py
sfa/methods/GetCredential.py
sfa/methods/GetSelfCredential.py
sfa/methods/GetTicket.py
sfa/methods/GetVersion.py
sfa/methods/List.py
sfa/methods/ListResources.py
sfa/methods/ListSlices.py
sfa/methods/RegisterPeerObject.py
sfa/methods/Remove.py
sfa/methods/RenewSliver.py
sfa/methods/Resolve.py
sfa/methods/ResolveGENI.py
sfa/methods/Shutdown.py
sfa/methods/SliverStatus.py
sfa/methods/Start.py
sfa/methods/Stop.py
sfa/methods/UpdateSliver.py
sfa/methods/get_aggregates.py
sfa/methods/get_key.py
sfa/methods/get_registries.py
sfa/methods/register_peer_object.py
sfa/methods/reset_slice.py
sfa/plc/api-dev.py
sfa/plc/api.py
sfa/plc/network.py
sfa/plc/sfa-import-plc.py
sfa/plc/sfaImport.py
sfa/plc/slices.py
sfa/rspecs/aggregates/rspec_manager_max.py
sfa/rspecs/aggregates/rspec_manager_openflow.py
sfa/server/interface.py
sfa/server/sfa-clean-peer-records.py
sfa/server/sfa_component_setup.py
sfa/trust/auth.py
sfa/trust/certificate.py
sfa/trust/credential.py
sfa/trust/gid.py
sfa/trust/hierarchy.py
sfa/util/api.py
sfa/util/namespace.py
sfa/util/record.py

index 137405e..d51c93b 100644 (file)
@@ -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
index 546e90a..cb765e0 100755 (executable)
@@ -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
index fd7fa83..5f48e68 100755 (executable)
@@ -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
index 7560819..b1169b9 100755 (executable)
@@ -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()
 
index 06a1f70..7b50d2a 100644 (file)
@@ -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.
index 14168a0..4467026 100644 (file)
@@ -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 *
index d2507eb..6d12446 100755 (executable)
@@ -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
index 8a30f1c..05a1de2 100644 (file)
@@ -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 *
index 2ec4999..d974259 100644 (file)
@@ -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 *
index c26ca4d..5c9506d 100644 (file)
@@ -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():
index f5f4b48..31496c2 100644 (file)
@@ -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 *
index 03bd994..eee8693 100644 (file)
@@ -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 *
index 8b45917..e32f9fd 100644 (file)
@@ -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
index 3ed3b47..8715407 100644 (file)
@@ -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
index 9bd5cd1..849da80 100644 (file)
@@ -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
index 3d2bf8b..647e636 100644 (file)
@@ -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)
index 119ae48..f9b8c22 100644 (file)
@@ -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
index 8552daf..fef8790 100644 (file)
@@ -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
 
index 0730f2b..a812c86 100644 (file)
@@ -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
index 80b483e..0425853 100644 (file)
@@ -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
index 236d34f..271bf9e 100644 (file)
@@ -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
index dae8f6e..51fbe25 100644 (file)
@@ -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
index d991159..f13c95d 100644 (file)
@@ -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
index efce45d..267410d 100644 (file)
@@ -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
index 3f7a61a..d8a536e 100644 (file)
@@ -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
index c223bbe..cfca1b9 100644 (file)
@@ -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
index f8e3294..00142b6 100644 (file)
@@ -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
index 2233b70..0842c14 100644 (file)
@@ -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
 
index 958e34f..3619106 100644 (file)
@@ -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
index c871e05..13106e7 100644 (file)
@@ -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
index 37252f2..6c1c5be 100644 (file)
@@ -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
index c960974..cfc9daa 100644 (file)
@@ -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
index 46af369..5e3f3fd 100644 (file)
@@ -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
index 358874c..e233143 100644 (file)
@@ -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
index dae8f6e..51fbe25 100644 (file)
@@ -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
index cd9026c..21fec61 100644 (file)
@@ -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
index 5241159..21d4ae8 100644 (file)
@@ -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 *
index 5a88291..d578698 100644 (file)
@@ -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
index 3e9603b..4293301 100644 (file)
@@ -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
index 9b280ab..1c5ad98 100755 (executable)
@@ -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 *
index 015b680..2e8f9d9 100644 (file)
@@ -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 *
index a3c7c1a..9df40c8 100644 (file)
@@ -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 *
index 51d7d14..99b390a 100644 (file)
@@ -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 *
index a745b6e..4871509 100755 (executable)
@@ -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
index 9a1ceea..7ae027d 100644 (file)
@@ -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
index e3d8128..f821f4c 100644 (file)
@@ -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
index db1c965..80a03a8 100755 (executable)
@@ -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
index d0498e5..3952272 100644 (file)
@@ -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
index f12c86b..98588a9 100644 (file)
@@ -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
index 4e1fe0f..1290532 100644 (file)
@@ -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:
index 2f273a1..5976b66 100644 (file)
@@ -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"
index 790b10c..0ae7e4b 100644 (file)
 #      *.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
 
index 28c5a30..f9aed1c 100644 (file)
@@ -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:
 #
index 93186c9..1595a63 100644 (file)
@@ -1,5 +1,3 @@
-### $Id$
-### $URL$
 import re
 from sfa.util.faults import *
 URN_PREFIX = "urn:publicid:IDN"
index 87360be..6cb9d37 100644 (file)
@@ -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):