private void buttonOK_Click(object sender, EventArgs e) { vmEntry entry = new vmEntry(); entry.vmName = textBoxName.Text; entry.vmFile = textBoxFile.Text; entry.snapshotName = textBoxSnapshotname.Text; entry.indexNum = vmList.Count+1; entry.busy = false; vmList.Add(entry); this.Dispose(); vmUI.shouldSelect = vmList.Count-1; vmUI.updateList(); }
public byte[] CreateNewUserInVM(vmEntry entry) { bool done = false; byte[] request = new byte[CLIENT_REQ_LEN]; request[0] = CREATE_NEW_USER; byte[] clientResp = null; /* Process the request in clientData */ Client vmClient = new Client(); Debug.WriteLine("Connecting to VM "); if ((entry.busy == false) && vmClient.ConnectToVM(entry.vmName))//"129.49.16.93"))//""192.168.20.174")) { Debug.WriteLine("Sending Request to VM"); clientResp = vmClient.sendReqToVM(request); if (clientResp.Length > RESP_LEN_OFFSET) { entry.timestamp = DateTime.Now; string[] temp = System.Text.Encoding.ASCII.GetString(clientResp).Split(':'); if (temp.Length == 3) { entry.username = temp[1].ToString(); entry.password = temp[2].ToString(); } entry.busy = true; WriteEntryToReg(entry); done = true; } } return clientResp; }
private void WriteEntryToReg(vmEntry entry) { try { ownWrite = true; Debug.WriteLine("Opening Registry"); RegistryKey key = Registry.LocalMachine.CreateSubKey(regDir); int vmNumber; string tempVMFile, tempVMTimestamp, tempVMUsername, tempVMPassword; if (key != null) { tempVMUsername = vmUsername + entry.indexNum; tempVMPassword = vmPassword + entry.indexNum; tempVMTimestamp = vmTimestamp + entry.indexNum; key.SetValue(tempVMTimestamp, entry.timestamp.ToString()); key.SetValue(tempVMUsername, entry.username); key.SetValue(tempVMPassword, entry.password); key.Close(); } ownWrite = false; } catch (Exception e) { Debug.WriteLine("Exception while adding entry to Reg " + e.Message); } }
private void GetVMInfo() { try { vmList = new List<vmEntry>(); Debug.WriteLine("Opening Registry"); RegistryKey key = Registry.LocalMachine.OpenSubKey(regDir); string tempVMName, tempVMFile, tempVMSnapshot, tempVMUsername, tempVMPassword, tempVMTimestamp, fileConv; if (key != null) { Debug.WriteLine("Successfully opened Registry"); if (key.GetValue(numVM) != null) { numVMs = Convert.ToInt32(key.GetValue(numVM).ToString()); if (key.GetValue(interval) != null) { numInterval = Convert.ToInt32(key.GetValue(interval).ToString()); } if (key.GetValue(valid) != null) { numValid = Convert.ToInt32(key.GetValue(valid).ToString()); } for (int i = 1; i <= numVMs; i++) { tempVMName = vmName + i; tempVMFile = vmFile + i; tempVMSnapshot = vmSnapshot + i; tempVMUsername = vmUsername + i; tempVMPassword = vmPassword + i; tempVMTimestamp = vmTimestamp + i; Debug.WriteLine("Temp VM String " + tempVMName + " " + tempVMFile + " " + tempVMSnapshot); vmEntry entry = new vmEntry(); entry.indexNum = i; if (key.GetValue(tempVMName) != null) { entry.vmName = key.GetValue(tempVMName).ToString(); } if (key.GetValue(tempVMFile) != null) { fileConv = key.GetValue(tempVMFile).ToString(); fileConv = fileConv.Substring(1, fileConv.Length - 2); entry.vmFile = Path.GetFullPath(fileConv); } if (key.GetValue(tempVMSnapshot) != null) { entry.snapshotName = key.GetValue(tempVMSnapshot).ToString(); } if (key.GetValue(tempVMUsername) != null) { entry.username = key.GetValue(tempVMUsername).ToString(); entry.password = key.GetValue(tempVMPassword).ToString(); entry.timestamp = Convert.ToDateTime(key.GetValue(tempVMTimestamp).ToString()); entry.busy = true; } else { entry.busy = false; } vmList.Add(entry); } } key.Close(); } } catch (Exception e) { Debug.WriteLine("Exception while reading from reg " + e.Message); } }
private void DeleteEntryFromReg(vmEntry entry) { try { Debug.WriteLine("Opening Registry"); RegistryKey key = Registry.LocalMachine.CreateSubKey(regDir); // int vmNumber; string tempVMTimestamp, tempUsername, tempPassword; if (key != null) { if (key.GetValue(numVM) != null) { Debug.WriteLine("entry index in delete reg"); tempVMTimestamp = vmTimestamp + entry.indexNum; tempUsername = vmUsername + entry.indexNum; tempPassword = vmPassword + entry.indexNum; key.DeleteValue(tempVMTimestamp); key.DeleteValue(tempUsername); key.DeleteValue(tempPassword); } key.Close(); } } catch (Exception e) { Debug.WriteLine("Exception while deleting entry from Reg " + e.Message); } }
public void restoreVM(vmEntry entry) { string fileNameJoined; string [] tempVMFileArray = entry.vmFile.Split('\\'); fileNameJoined = String.Join("\\\\", tempVMFileArray, 0, tempVMFileArray.Length); fileNameJoined = "\"" + fileNameJoined + "\""; try { /* Now restore the VM to a snapshot */ string vmrun = "C:\\Program Files\\VMware\\VMware Workstation\\vmrun.exe"; string command = " revertToSnapshot " + fileNameJoined + " " + entry.snapshotName; Debug.WriteLine("command " + command); // string command = " stop " + entry.vmPath; System.Diagnostics.ProcessStartInfo procStartInfo = new System.Diagnostics.ProcessStartInfo(vmrun, command); procStartInfo.UseShellExecute = false; procStartInfo.RedirectStandardOutput = true; Debug.WriteLine("Dequeue3"); // Now we create a process, assign its ProcessStartInfo and start it System.Diagnostics.Process proc = new System.Diagnostics.Process(); proc.StartInfo = procStartInfo; proc.Start(); string result = proc.StandardOutput.ReadToEnd(); proc.WaitForExit(); // Display the command output. Debug.WriteLine("Result " + result); Debug.WriteLine("Dequeue4"); Debug.WriteLine("Dequeue1"); System.Threading.Thread.Sleep(5000); command = " start " + fileNameJoined; procStartInfo = new System.Diagnostics.ProcessStartInfo(vmrun, command); procStartInfo.UseShellExecute = false; // Do not create the black window. procStartInfo.CreateNoWindow = false; procStartInfo.RedirectStandardOutput = true; proc.StartInfo = procStartInfo; proc.Start(); result = proc.StandardOutput.ReadToEnd(); proc.WaitForExit(); Debug.WriteLine("Result2 " + result); Debug.WriteLine("Dequeue2"); entry.busy = false; DeleteEntryFromReg(entry); } catch (Exception exc) { Debug.WriteLine("Exception while stopping VM " + exc.Message); } }
public vmEntry getEntryfromReg(int index) { string tempvmFile, temVMSnapshotName, tempVMName, tempUsername; vmEntry entry = new vmEntry(); try { RegistryKey key = Registry.LocalMachine.CreateSubKey(regDir); if (key != null) { if (key.GetValue(numVM) != null) { tempVMName = vmName + index; tempvmFile = vmFile + index; temVMSnapshotName = vmSnapshot + index; if (key.GetValue(tempVMName) != null) { entry.vmName = key.GetValue(tempVMName).ToString(); } if (key.GetValue(tempvmFile) != null) { entry.vmFile = key.GetValue(tempvmFile).ToString(); } if (key.GetValue(temVMSnapshotName) != null) { entry.snapshotName = key.GetValue(temVMSnapshotName).ToString(); } } } currentEntry = entry; } catch (Exception exe) { } return null; }