#!/usr/bin/python # Version @VERSION@ # # A plugin for executing script needed by cloud stack import os, sys, time import XenAPIPlugin import util def echo(fn): def wrapped(*v, **k): name = fn.__name__ util.SMlog("#### VMOPS enter %s ####" % name ) res = fn(*v, **k) util.SMlog("#### VMOPS exit %s ####" % name ) return res return wrapped @echo def swift(session, args): op = args['op'] hostname = args['hostname'] account = args['account'] username = args['username'] token = args['token'] rfilename = args['rfilename'] lfilename = args['lfilename'] if op == 'upload': cmd = ["st", "-A https://" + hostname + ":8080/auth/v1.0 -U " + account + ":" + username + " -K " + token + " upload " + rfilename + " " + lfilename] elif op == 'download': cmd = ["st", "-A https://" + hostname + ":8080/auth/v1.0 -U " + account + ":" + username + " -K " + token + " download " + rfilename + " " + lfilename] elif op == 'delete' : cmd = ["st", "-A https://" + hostname + ":8080/auth/v1.0 -U " + account + ":" + username + " -K " + token + " delete " + rfilename] else : util.SMlog("doesn't support swift operation %s " % op ) return 'false' try: util.pread2(cmd) return 'true' except: return 'false' if __name__ == "__main__": XenAPIPlugin.dispatch({"swift": swift})