From: Thierry Parmentelat Date: Thu, 27 Oct 2011 20:16:07 +0000 (+0200) Subject: solve conflicts X-Git-Tag: sfa-1.1-1~6 X-Git-Url: http://git.onelab.eu/?p=sfa.git;a=commitdiff_plain;h=d42c0e79549cbc940fd160f4e9cb1f75e59029ce;hp=-c solve conflicts --- d42c0e79549cbc940fd160f4e9cb1f75e59029ce diff --combined sfa/server/sfaapi.py index 87f7935e,48ff6e52..1c462575 --- a/sfa/server/sfaapi.py +++ b/sfa/server/sfaapi.py @@@ -1,18 -1,14 +1,18 @@@ +import os.path +import datetime + from sfa.util.faults import SfaAPIError from sfa.util.config import Config from sfa.util.cache import Cache - from sfa.trust.auth import Auth from sfa.trust.certificate import Keypair, Certificate from sfa.trust.credential import Credential -# this is wrong all right, but temporary + - # this is wrong all right, but temporary ++# this is wrong all right, but temporary, will use generic from sfa.managers.managerwrapper import ManagerWrapper, import_manager - from sfa.server.xmlrpcapi import XmlrpcApi + import os + import datetime #################### class SfaApi (XmlrpcApi): @@@ -22,7 -18,6 +22,7 @@@ augmented with the local cryptographic material and hrn It also has the notion of neighbour sfa services as defined in /etc/sfa/{aggregates,registries}.xml + Finally it contains a cache instance It has no a priori knowledge of the underlying testbed """ @@@ -38,7 -33,6 +38,7 @@@ return # Load configuration self.config = Config(config) + self.credential = None self.auth = Auth(peer_cert) self.interface = interface self.hrn = self.config.SFA_INTERFACE_HRN @@@ -49,6 -43,7 +49,6 @@@ self.cache = cache if self.cache is None: self.cache = Cache() - self.credential = None # load registries from sfa.server.registry import Registries @@@ -109,7 -104,7 +109,7 @@@ type = 'authority' path = self.config.SFA_DATA_DIR filename = ".".join([self.interface, self.hrn, type, "cred"]) - cred_filename = path + os.sep + filename + cred_filename = os.path.join(path,filename) cred = None if os.path.isfile(cred_filename): cred = Credential(filename = cred_filename) @@@ -198,11 -193,10 +198,11 @@@ # see if this file exists # XX This is really the aggregate's credential. Using this is easier than getting - # the registry's credential from iteslf (ssl errors). - ma_cred_filename = self.config.SFA_DATA_DIR + os.sep + self.interface + self.hrn + ".ma.cred" + # the registry's credential from iteslf (ssl errors). + filename = self.interface + self.hrn + ".ma.cred" + ma_cred_path = os.path.join(self.config.SFA_DATA_DIR,filename) try: - self.credential = Credential(filename = ma_cred_filename) + self.credential = Credential(filename = ma_cred_path) except IOError: self.credential = self.getCredentialFromRegistry() diff --combined sfa/server/threadedserver.py index b9b3ba54,8139b0c5..7a9c368b --- a/sfa/server/threadedserver.py +++ b/sfa/server/threadedserver.py @@@ -21,8 -21,8 +21,9 @@@ from sfa.util.config import Confi from sfa.util.cache import Cache from sfa.trust.certificate import Certificate from sfa.trust.trustedroots import TrustedRoots -#can we get rid of that ? -from sfa.plc.plcsfaapi import PlcSfaApi ++ +# don't hard code an api class anymore here +from sfa.generic import Generic ## # Verification callback for pyOpenSSL. We do our own checking of keys because @@@ -95,18 -95,11 +96,18 @@@ class SecureXMLRpcRequestHandler(Simple try: peer_cert = Certificate() peer_cert.load_from_pyopenssl_x509(self.connection.get_peer_certificate()) - self.api = PlcSfaApi(peer_cert = peer_cert, - interface = self.server.interface, - key_file = self.server.key_file, - cert_file = self.server.cert_file, - cache = self.cache) + generic=Generic.the_flavour() + self.api = generic.make_api (peer_cert = peer_cert, + interface = self.server.interface, + key_file = self.server.key_file, + cert_file = self.server.cert_file, + cache = self.cache) + #logger.info("SecureXMLRpcRequestHandler.do_POST:") + #logger.info("interface=%s"%self.server.interface) + #logger.info("key_file=%s"%self.server.key_file) + #logger.info("api=%s"%self.api) + #logger.info("server=%s"%self.server) + #logger.info("handler=%s"%self) # get arguments request = self.rfile.read(int(self.headers["content-length"])) remote_addr = (remote_ip, remote_port) = self.connection.getpeername() @@@ -134,7 -127,6 +135,7 @@@ ## # Taken from the web (XXX find reference). Implements an HTTPS xmlrpc server class SecureXMLRPCServer(BaseHTTPServer.HTTPServer,SimpleXMLRPCServer.SimpleXMLRPCDispatcher): + def __init__(self, server_address, HandlerClass, key_file, cert_file, logRequests=True): """Secure XML-RPC server.