mirror of
				https://github.com/apache/cloudstack.git
				synced 2025-10-26 08:42:29 +01:00 
			
		
		
		
	Signed-off-by: Chip Childers <chip.childers@gmail.com> I've assumed that Gavin's commit is appropriate, based on an assumption that we will keep these files in the source tree. If https://issues.apache.org/jira/browse/LEGAL-146 results in a different opionion from the members, then we will end up having to do something more drastic anyway.
		
			
				
	
	
		
			93 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
			
		
		
	
	
			93 lines
		
	
	
		
			2.4 KiB
		
	
	
	
		
			Python
		
	
	
	
	
	
| #!/usr/bin/python
 | |
| # Licensed to the Apache Software Foundation (ASF) under one
 | |
| # or more contributor license agreements.  See the NOTICE file
 | |
| # distributed with this work for additional information
 | |
| # regarding copyright ownership.  The ASF licenses this file
 | |
| # to you under the Apache License, Version 2.0 (the
 | |
| # "License"); you may not use this file except in compliance
 | |
| # with the License.  You may obtain a copy of the License at
 | |
| #
 | |
| #   http://www.apache.org/licenses/LICENSE-2.0
 | |
| #
 | |
| # Unless required by applicable law or agreed to in writing,
 | |
| # software distributed under the License is distributed on an
 | |
| # "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
 | |
| # KIND, either express or implied.  See the License for the
 | |
| # specific language governing permissions and limitations
 | |
| # under the License.
 | |
|  
 | |
| 
 | |
| 
 | |
| import sys
 | |
| import base64
 | |
| import string 
 | |
| import os
 | |
| import tempfile
 | |
| from subprocess import call
 | |
| 
 | |
| def vm_data(args):
 | |
| 
 | |
|     router_ip = args.pop('routerIP')
 | |
|     vm_ip = args.pop('vmIP')
 | |
| 
 | |
|     for pair in args:
 | |
|         pairList = pair.split(',')
 | |
|         vmDataFolder = pairList[0]
 | |
|         vmDataFile = pairList[1]
 | |
|         vmDataValue = args[pair]
 | |
|         cmd = ["/bin/bash", "/root/userdata.sh", "-v", vm_ip, "-F", vmDataFolder, "-f", vmDataFile]
 | |
|         
 | |
|         fd = None
 | |
|         tmp_path = None
 | |
|        
 | |
|         try:
 | |
|             fd,tmp_path = tempfile.mkstemp()
 | |
|             tmpfile = open(tmp_path, 'w')
 | |
| 
 | |
|             if (vmDataFolder == "userdata" and vmDataValue != "none"):
 | |
|                 vmDataValue = base64.urlsafe_b64decode(vmDataValue)
 | |
|             
 | |
|             if vmDataValue != "none":
 | |
|                 tmpfile.write(vmDataValue)
 | |
|             
 | |
|             tmpfile.close()
 | |
|             cmd.append("-d")
 | |
|             cmd.append(tmp_path)
 | |
|         except:
 | |
|             if fd !=None:
 | |
|                 os.close(fd)
 | |
|                 os.remove(tmp_path)
 | |
|                 return ''
 | |
|         
 | |
|         try:
 | |
|             call(cmd)
 | |
|             txt = 'success'
 | |
|         except:
 | |
|             txt = ''
 | |
| 
 | |
|         if (fd != None):
 | |
|             os.close(fd)
 | |
|             os.remove(tmp_path)
 | |
| 
 | |
|     return txt
 | |
| 
 | |
| def parseFileData(fileName):
 | |
|     args = {} 
 | |
|     fd = open(fileName)
 | |
| 
 | |
|     line = fd.readline()
 | |
|     while (line != ""):
 | |
|         key=string.strip(line[:], '\n')
 | |
|         if (key == ""):
 | |
|             break
 | |
| 	  
 | |
|         line=fd.readline()
 | |
|         val=string.strip(line[:], '\n')
 | |
|         args[key]=val
 | |
|         line=fd.readline()
 | |
|     return args
 | |
| 
 | |
| if __name__ == "__main__":
 | |
| 	vm_data(parseFileData("/tmp/" + sys.argv[1]))
 | |
| 
 |