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})
 |