main_transport.py should now have same functionality as transporter doctest.
git-svn-id: svn://svn.cy55.de/Zope3/src/cybertools/trunk@2732 fd906abe-77d9-0310-91a1-e0d9ade77398
This commit is contained in:
		
							parent
							
								
									a9058f441e
								
							
						
					
					
						commit
						f0373140fa
					
				
					 3 changed files with 88 additions and 2 deletions
				
			
		|  | @ -27,6 +27,7 @@ import os | ||||||
| from twisted.internet import reactor | from twisted.internet import reactor | ||||||
| 
 | 
 | ||||||
| from cybertools.agent.base.agent import Master | from cybertools.agent.base.agent import Master | ||||||
|  | from cybertools.agent.crawl.base import Metadata, Resource | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| application = None  # contains application object if started via twistd | application = None  # contains application object if started via twistd | ||||||
|  | @ -70,5 +71,8 @@ if __name__ == '__main__': | ||||||
|     master = setup() |     master = setup() | ||||||
|     controller = master.controllers[0] |     controller = master.controllers[0] | ||||||
|     controller.createAgent('transport.remote', 'sample03') |     controller.createAgent('transport.remote', 'sample03') | ||||||
|     controller.enterJob('sample', 'sample03', params=dict(resource='xxx')) |     metadata01 = Metadata(dict(filename='dummy.txt')) | ||||||
|  |     res01 = Resource() | ||||||
|  |     res01.metadata = metadata01 | ||||||
|  |     controller.enterJob('sample', 'sample03', params=dict(resource=res01)) | ||||||
|     startReactor() |     startReactor() | ||||||
|  |  | ||||||
							
								
								
									
										79
									
								
								agent/testing/test_rpcserver.py
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										79
									
								
								agent/testing/test_rpcserver.py
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,79 @@ | ||||||
|  | # | ||||||
|  | #  Copyright (c) 2008 Helmut Merz helmutm@cy55.de | ||||||
|  | # | ||||||
|  | #  This program is free software; you can redistribute it and/or modify | ||||||
|  | #  it under the terms of the GNU General Public License as published by | ||||||
|  | #  the Free Software Foundation; either version 2 of the License, or | ||||||
|  | #  (at your option) any later version. | ||||||
|  | # | ||||||
|  | #  This program is distributed in the hope that it will be useful, | ||||||
|  | #  but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||||
|  | #  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||||
|  | #  GNU General Public License for more details. | ||||||
|  | # | ||||||
|  | #  You should have received a copy of the GNU General Public License | ||||||
|  | #  along with this program; if not, write to the Free Software | ||||||
|  | #  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA | ||||||
|  | # | ||||||
|  | 
 | ||||||
|  | """ | ||||||
|  | Providing access for remote agent instances by listening for requests | ||||||
|  | from remote transport agents. | ||||||
|  | 
 | ||||||
|  | $Id$ | ||||||
|  | """ | ||||||
|  | 
 | ||||||
|  | from twisted.web import xmlrpc, server, resource | ||||||
|  | from twisted.internet import defer, reactor | ||||||
|  | from cybertools.agent.base.agent import Agent | ||||||
|  | 
 | ||||||
|  | application = None | ||||||
|  | 
 | ||||||
|  | class RPCServer(xmlrpc.XMLRPC): | ||||||
|  | 
 | ||||||
|  |     serverURL = '' | ||||||
|  |     method = '' | ||||||
|  |     machineName = '' | ||||||
|  |     userName = '' | ||||||
|  |     password = '' | ||||||
|  |     controller = '' | ||||||
|  |     close = reactor.stop | ||||||
|  | 
 | ||||||
|  |     def __init__(self, serverURL = '', method = '', machineName = '', | ||||||
|  |                  userName = '', password = '', controlObj= None): | ||||||
|  |         self.serverURL = serverURL | ||||||
|  |         self.method = method | ||||||
|  |         self.machineName = machineName | ||||||
|  |         self.userName = userName | ||||||
|  |         self.password = password | ||||||
|  |         self.controller = controlObj | ||||||
|  |         xmlrpc.XMLRPC.__init__(self) | ||||||
|  | 
 | ||||||
|  |     def xmlrpc_transfer(self, resource): | ||||||
|  |         if self.controller is not None: | ||||||
|  |             # pass resource object to controller | ||||||
|  |             # this is done BEFORE the metadata is handed over | ||||||
|  |             # call notify method of controller | ||||||
|  |             pass | ||||||
|  |         print resource | ||||||
|  |         return "Resource received: ", resource | ||||||
|  | 
 | ||||||
|  |     def xmlrpc_getMetadata(self, metadata): | ||||||
|  |         if self.controller is not None: | ||||||
|  |             # pass metadata to controller | ||||||
|  |             # this is done AFTER the resource (like e.g. file or mail) | ||||||
|  |             # is handed over | ||||||
|  |             pass | ||||||
|  |         print metadata | ||||||
|  |         metadata = "Echo: ", metadata | ||||||
|  |         return metadata | ||||||
|  | 
 | ||||||
|  |     def xmlrpc_shutdownRPCServer(): | ||||||
|  |         self.close() | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | if __name__ == '__main__': | ||||||
|  |     from twisted.internet import reactor | ||||||
|  |     site = RPCServer() | ||||||
|  |     reactor.listenTCP(8082, server.Site(site)) | ||||||
|  |     reactor.run() | ||||||
|  | @ -3,8 +3,11 @@ | ||||||
| # | # | ||||||
| #   $Id$ | #   $Id$ | ||||||
| # | # | ||||||
|  | # transportserver.xmlrpc='testing' | ||||||
| 
 | 
 | ||||||
| controller(names=['core.sample']) | controller(names=['core.sample']) | ||||||
| scheduler(name='core') | scheduler(name='core') | ||||||
| logger(name='default', standard=30) | logger(name='default', standard=30) | ||||||
| transportserver.xmlrpc='testing' | transport.remote.server = 'testing' | ||||||
|  | transport.remote.url = 'http://localhost:8123' | ||||||
|  | 
 | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		
		Reference in a new issue
	
	 scrat
						scrat