diff --git a/core/src/com/cloud/agent/resource/virtualnetwork/VirtualRoutingResource.java b/core/src/com/cloud/agent/resource/virtualnetwork/VirtualRoutingResource.java index ee803e0ebe8..c12a35b4948 100755 --- a/core/src/com/cloud/agent/resource/virtualnetwork/VirtualRoutingResource.java +++ b/core/src/com/cloud/agent/resource/virtualnetwork/VirtualRoutingResource.java @@ -224,19 +224,21 @@ public class VirtualRoutingResource implements Manager { } else { dataBytes = data.getBytes(); } - - try { - tmpFile = File.createTempFile("vmdata_", null); - FileOutputStream outStream = new FileOutputStream(tmpFile); - outStream.write(dataBytes); - outStream.close(); - } catch (IOException e) { - String tmpDir = System.getProperty("java.io.tmpdir"); - s_logger.warn("Failed to create temporary file: is " + tmpDir + " full?", e); - return new Answer(cmd, false, "Failed to create or write to temporary file: is " + tmpDir + " full? " + e.getMessage() ); - } } + try { + tmpFile = File.createTempFile("vmdata_", null); + FileOutputStream outStream = new FileOutputStream(tmpFile); + if (dataBytes != null) + outStream.write(dataBytes); + outStream.close(); + } catch (IOException e) { + String tmpDir = System.getProperty("java.io.tmpdir"); + s_logger.warn("Failed to create temporary file: is " + tmpDir + " full?", e); + return new Answer(cmd, false, "Failed to create or write to temporary file: is " + tmpDir + " full? " + e.getMessage() ); + } + + final Script command = new Script(_vmDataPath, _timeout, s_logger); command.add("-r", cmd.getAccessDetail(NetworkElementCommand.ROUTER_IP)); command.add("-v", cmd.getVmIpAddress()); diff --git a/scripts/vm/hypervisor/xenserver/vmops b/scripts/vm/hypervisor/xenserver/vmops index 811c8bb0169..915d436f117 100755 --- a/scripts/vm/hypervisor/xenserver/vmops +++ b/scripts/vm/hypervisor/xenserver/vmops @@ -152,23 +152,25 @@ def vm_data(session, args): fd = None tmp_path = None - if (vmDataValue != "none"): - try: - fd,tmp_path = tempfile.mkstemp() - tmpfile = open(tmp_path, 'w') + + try: + fd,tmp_path = tempfile.mkstemp() + tmpfile = open(tmp_path, 'w') - if (vmDataFolder == "userdata"): - vmDataValue = base64.urlsafe_b64decode(vmDataValue) - + 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: - util.SMlog(" vmdata failed to write tempfile " ) - os.close(fd) - os.remove(tmp_path) - return '' + + tmpfile.close() + cmd.append("-d") + cmd.append(tmp_path) + except: + util.SMlog(" vmdata failed to write tempfile " ) + os.close(fd) + os.remove(tmp_path) + return '' try: txt = util.pread2(cmd)