Songs of Doom

Sleek Migrate - A server migration tool.

November 30, 2008, 4:55 pm

Taking a quick break from writing on XMPP: The Definitive Guide, someone in the jdev room reminded me that I started on a project a while ago to make migrating xmpp server software easier.

I wanted to migrate from ejabberd to another server, and didn’t fancy writing yet another one-way conversion script, so threw some code together that lets you plug multiple import/export filters in. Currently it supports two filters for getting data in to servers, Tigase’s (quite limited) import filter (roster entries only), and the XEP-0227 generic format. Ideally, all servers will support XEP-0227 for both import and export natively at some point, but at the moment not many servers support even import with it (although some do!), and thanks to Dave Cridland for finding and fixing some of my bugs in this. The only filter I have for getting data out of a server at the moment does it over the wire (and so should work for any server implementation) - it takes a list of uname/password pairs (which can be sucked out of most servers quite easily), and then connects an IM-less session for each of these to extract their roster (including subscription states), their vcard, some iq:private nodes (useful for muc bookmarks etc) etc.

It’s based on Nathan Fritz’s excellent SleekXMPP library (Python) to drive it, and the code’s currently available from http://github.com/Kev/sleekmigrate/tree/master - I may set up a more permanent home for it some day, if it starts to see real-world use. It’s quite raw, so if you want to use it, either use the source, or contact me and I’ll see about cleaning it up a bit or helping.

Bad Behavior has blocked 758 access attempts in the last 7 days.