[Twisted-Python] Transparent Remote Objects
Justin Johnson
justinjohnson at fastmail.fm
Fri May 16 09:23:12 MDT 2003
Hello,
I have a bunch of servers I have to support and I want to be able to
connect remotely to the servers to run commands. I actually got this
working by taking the pbsimple.py example and adding the remote methods I
want and then creating a command-line tool to interact with the service.
It works great!
However, I have some commands that require a command to be run on one
machine (exporting a packet) and then connecting remotely to another
machine to complete the operation (importing a packet). Adding callbacks
to Deffereds looks a little cumbersome and makes it harder to read the
code. Is there a way to make this more transparent? Like Defining
Remote objects that can have methods called on them? I'm picture
something like the following, on a high level. VOB is just a repository
I create on one machine and then export to multiple sites where I have to
import them.
start_site = "some_site" # The place where the original VOB will be
created
sites = ["site1","site2","site3"]
for tag in vobs:
v = RemoteVOB(tag,start_site)
v.make() # Runs a command to create the VOB
for s in sites:
v.export(s) # Creates a packet and exports it to the destination
site
rv = RemoteVOB(tag,s) # Creates a remote object at the
destination site
rv.import() # Import the packet, completing the creation of the
VOB replica
Is there anything in twisted that works this way? If not, does anyone
have any suggestions on how to simplify the callback coding? I'm pretty
new to this and my understanding of what's going on under the covers is
quite lacking.
I must say though, it was exceptionally easy to take the pbsimple example
and create a tremendously useful service to simplify administration.
This is some cool stuff!
Thanks.
-Justin
More information about the Twisted-Python
mailing list