2011-05-05 13:55:29 -07:00

47 lines
1.4 KiB
Python

#!/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})