#!/usr/bin/python # Copyright 2012 Citrix Systems, Inc. Licensed under the # Apache License, Version 2.0 (the "License"); you may not use this # file except in compliance with the License. Citrix Systems, Inc. # reserves all rights not expressly granted by 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. # # Automatically generated by addcopyright.py at 04/03/2012 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]))