def main():
    try:
        if len(sys.argv) < 2:
            raise Exception("Usage: remotestores.py <list>|<create>|<remove>|<createDisk>|<removeDisk>")
        action = sys.argv[1]
        stores = StoreList()
        if action == "list":
            stores.write(sys.stdout)
        elif action == "create":
            if len(sys.argv) < 5:
                raise Exception("Usage: remotestores.py create <disk uuid> <store uuid> <type>")
            ret = stores.addStore(sys.argv[2], sys.argv[3], sys.argv[4])
            return xmlmsg("result", ret)
        elif action == "remove":
            if len(sys.argv) < 3:
                raise Exception("Usage: remotestores.py remove <store uuid>")
            ret = stores.removeStore(sys.argv[2])
            return xmlmsg("result", ret)
        elif action == "createDisk":
            if len(sys.argv) < 4:
                raise Exception("Usage: remotestores.py createDisk <disk uuid> <host>")
            ret = stores.addDisk(sys.argv[2], sys.argv[3])
            return xmlmsg("result", ret)
        elif action == "removeDisk":
            if len(sys.argv) < 3:
                raise Exception("Usage: remotestores.py removeDisk <disk uuid>")
            ret = stores.removeDisk(sys.argv[2])
            return xmlmsg("result", ret)
        else:
            raise Exception("Usage: stores.py <list>|<create>|<remove>|<createDisk>|<removeDisk>")
    except Exception, e:
        return xmlmsg("error", str(e))