Changeset 40

Show
Ignore:
Timestamp:
07/19/07 20:08:18 (1 year ago)
Author:
edsuom
Message:

Got arbitrary module/package defined services loading, yay exec

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • projects/twisted-goodies/trunk/misc/etc_simpleserver_server.conf

    r39 r40  
    66 
    77# Services provided 
    8 services = HTTP, POP3 
     8services = POP3, HTTP 
    99 
    1010# Passwords file for authenticated access 
  • projects/twisted-goodies/trunk/twisted_goodies/simpleserver/http/startup.py

    r17 r40  
    3636reactor.installResolver(client.createResolver()) 
    3737 
    38 from dynamicsite import util 
     38import util 
    3939 
    4040 
  • projects/twisted-goodies/trunk/twisted_goodies/simpleserver/service.py

    r39 r40  
    6161        package path and return a function named 'factory' within that module. 
    6262        """ 
    63         def getModuleInfo(resourceName): 
    64             path = pkg_resources.resource_filename(__name__, resourceName) 
    65             if os.path.isdir(path): 
    66                 pkg = imp.load_module(name, None, '', ('', '', 5)) 
    67                 path = os.path.join(path, '__init__.py') 
    68             fd = open(path) 
    69             return fd, '', ('.py', 'U', 1)     
    70          
    7163        name = name.lower() 
    72         if pkg_resources.resource_exists(__name__, name): 
    73             info = getModuleInfo(name) 
    74         else: 
    75             info = getModuleInfo(name + '.py') 
    76         print info 
    77         module = imp.load_module(name, *info) 
    78         print name, dir(module) 
    79         result = getattr(module, 'factory', None) 
    80         if info[0] is not None: 
    81             info[0].close() 
    82         return result 
     64        exec "from %s import factory" % name 
     65        return factory 
    8366     
    8467    def _serviceGenerator(self): 
     
    9376                continue 
    9477            serviceConfig = self.config[key] 
    95             print key, serviceConfig 
    9678            factory = factoryFunction(self, serviceConfig) 
    9779            for portName in ('tcp', 'ssl'): 
     
    10991                serviceName = "%s-%s" % \ 
    11092                              tuple([x.upper() for x in (key, portName)]) 
    111                 print serviceName 
     93                print "...subordinate service %s" % serviceName 
    11294                serviceObject.setName(serviceName) 
    11395                yield serviceObject