In the last week I’ve managed to prove, and improve, the extensibility of ModiPY to be able to provision anything with a command and control interface. I have extended the base classes to use NetApp’s ZAPI, which is a form of XML-RPC. In so doing, I’ve cleaned up a lot of the abstraction required in the base classes to be able to deal with arbitrary extensions that people might want.
So ModiPY can now use the native ZAPI interface to talk to NetApp filers. It can do so for whatever you might want to do, just by writing change templates that do some specific task, such as ‘add a volume’ or ‘change an option’, and then chaining these templates together as a changeset/dependency tree.
I’ve also added the ability for the configuration loader to automatically find the appropriate Provisioner for a given change (assuming you’ve defined one) based on the Interface that the Provisioner implements.
It all adds up to a remarkably flexible change management system that also happens to be quite easy to use.