mirror of
https://github.com/apache/cloudstack.git
synced 2025-10-26 08:42:29 +01:00
47 lines
1.4 KiB
Python
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})
|