Changeset 7:39e2245da71c in mailjam for postman/daemon.py


Ignore:
Timestamp:
May 18, 2012, 5:54:56 PM (12 years ago)
Author:
Francisco de Borja Lopez Rio <borja@…>
Branch:
default
Phase:
public
Message:

Added some fixes to the XMLRPC server code

Added more tests for the XMLRPC server

File:
1 edited

Legend:

Unmodified
Added
Removed
  • postman/daemon.py

    r6 r7  
    152152
    153153    def _listMethods(self):
    154         return list_public_methods(self)
     154        public_methods = []
     155        public_methods += ['lists.'+i for i in dir(MailingListXMLRPC) if '_' not in i]
     156        public_methods += ['members.'+i for i in dir(MemberXMLRPC) if '_' not in i]
     157        return public_methods
    155158
    156159    def _methodHelp(self, method):
     
    165168    def add(self, info={}):
    166169        self.postman.add_mailing_list(info)
     170    def addresses(self):
     171        return self.postman.mailings_addresses
    167172
    168173
     
    185190        self.configfile = configfile
    186191
     192        # FIXME: These should be loaded from a config file
     193        self.address='localhost'
     194        self.port = 9000
     195       
    187196        self.logfile = os.path.join(os.path.dirname(__file__), 'server.log')
    188197        logging.basicConfig(filename=self.logfile, level=logging.DEBUG)
     
    196205        of SimpleXMLRPCServer in that attribute. If there is already a server
    197206        initialized there, simply return True
    198         """
    199         address='localhost'
    200         port = 9000       
     207        """           
    201208        if not self.server:
    202             msg = 'Creating XMLRPC server object on {}:{}'.format(address,port)
     209            msg = 'Creating XMLRPC server object on {}:{}'.format(self.address,
     210                                                                  self.port)
    203211            logging.info(msg)
    204             self.server = SimpleXMLRPCServer((address, port), allow_none=True,
    205                                              logRequests=True)
     212            self.server = SimpleXMLRPCServer((self.address, self.port),
     213                                             allow_none=True,
     214                                             logRequests=False)
    206215            self.server.register_introspection_functions()
    207216        return True
     
    225234        self.server.register_instance(root, allow_dotted_names=True)
    226235        self.ready_to_serve = True
     236        return self.ready_to_serve
    227237           
    228238    def run(self):
     
    234244        if not self.ready_to_serve:
    235245            self.add_methods()
    236         msg = 'Starting XMLRPC server on {}:{}'.format(address,port)
     246        msg = 'Starting XMLRPC server on {}:{}'.format(self.address,
     247                                                       self.port)
    237248        logging.info(msg)
    238         self.server.serve_forever()
     249        try:
     250            self.server.serve_forever()
     251        except KeyboardInterrupt:
     252            msg = 'Stopping server'
     253            logging.info(msg)
Note: See TracChangeset for help on using the changeset viewer.