Rewrite parts of the Virtual Machine class and start to use it to load and save VM's

svn path=/trunk/tools/RosTE/; revision=673
This commit is contained in:
Ged Murphy 2008-02-08 15:56:05 +00:00
parent e8cd61e823
commit e31c37a87c
7 changed files with 476 additions and 493 deletions

View File

@ -75,87 +75,6 @@ namespace RosTEGUI
return null;
}
private bool LoadVirtMachs()
{
bool bRet = false;
if (dataSet != null)
{
if (virtMachs == null)
{
virtMachs = new List<MainVmInfo>();
}
try
{
foreach (DataRow dr in dataSet.Tables["VirtMach"].Rows)
{
virtMachs.Add(new MainVmInfo((int)dr["VMConfigID"], (string)dr["Path"]));
}
bRet = true;
}
catch (Exception ex)
{
Debug.LogMessage("Failed loading virtual machines", ex.Message, ex.StackTrace, true);
}
}
return bRet;
}
private void SaveVirtMachs()
{
if (dataSet != null && virtMachs != null)
{
try
{
DataTable virtMachTable = dataSet.Tables["VirtMach"];
virtMachTable.Clear();
foreach (MainVmInfo vm in virtMachs)
{
DataRow dr = virtMachTable.NewRow();
dr["VMConfigID"] = vm.id;
dr["Path"] = vm.path;
virtMachTable.Rows.Add(dr);
}
}
catch (Exception ex)
{
Debug.LogMessage("Failed to save virtual machine table", ex.Message, ex.StackTrace, true);
}
}
}
public int AddVirtMach(string pathIn)
{
if (dataSet != null && virtMachs != null)
{
int id = virtMachs.Count;
virtMachs.Add(new MainVmInfo(id, pathIn));
}
return virtMachs.Count;
}
public bool DeleteVirtMach(int index)
{
bool bRet = false;
foreach (MainVmInfo vm in virtMachs)
{
if (vm.id == index)
{
virtMachs.Remove(vm);
bRet = true;
}
}
return bRet;
}
public int GetNumberOfVms()
{
return virtMachs.Count;
@ -238,10 +157,12 @@ namespace RosTEGUI
settingsRow["DefVmPath"] = defVmPath;
settingsRow["UpdateSched"] = updateSched;
settingsRow["AppDebug"] = appDebug;
}
catch (Exception ex)
{
Debug.LogMessage("Failed to read settings from mainConf dataset", ex.Message);
Debug.LogMessage("Failed to write settings to mainConf dataset", ex.Message);
}
}
}
@ -290,26 +211,87 @@ namespace RosTEGUI
return;
}
SaveVirtMachs();
try
if (SaveVirtMachs())
{
FileStream fs = new FileStream(fileName, FileMode.Create, FileAccess.Write);
xtw = new XmlTextWriter(fs, System.Text.Encoding.Unicode);
dataSet.WriteXml(xtw, System.Data.XmlWriteMode.WriteSchema);
}
catch (Exception ex)
{
Debug.LogMessage("Failed to save main config file", ex.Message, ex.StackTrace, true);
}
finally
{
if (xtw != null)
xtw.Close();
try
{
FileStream fs = new FileStream(fileName, FileMode.Create, FileAccess.Write);
xtw = new XmlTextWriter(fs, System.Text.Encoding.Unicode);
dataSet.WriteXml(xtw, System.Data.XmlWriteMode.WriteSchema);
}
catch (Exception ex)
{
Debug.LogMessage("Failed to save main config file", ex.Message, ex.StackTrace, true);
}
finally
{
if (xtw != null)
xtw.Close();
}
}
}
#region private methods
private bool LoadVirtMachs()
{
bool bRet = false;
if (dataSet != null)
{
if (virtMachs == null)
{
virtMachs = new List<MainVmInfo>();
}
try
{
foreach (DataRow dr in dataSet.Tables["VirtMach"].Rows)
{
virtMachs.Add(new MainVmInfo((int)dr["VMConfigID"], (string)dr["Path"]));
}
bRet = true;
}
catch (Exception ex)
{
Debug.LogMessage("Failed loading virtual machines", ex.Message, ex.StackTrace, true);
}
}
return bRet;
}
private bool SaveVirtMachs()
{
bool bRet = false;
if (dataSet != null && virtMachs != null)
{
try
{
DataTable virtMachTable = dataSet.Tables["VirtMach"];
virtMachTable.Clear();
foreach (MainVmInfo vm in virtMachs)
{
DataRow dr = virtMachTable.NewRow();
dr["VMConfigID"] = vm.id;
dr["Path"] = vm.path;
virtMachTable.Rows.Add(dr);
}
bRet = true;
}
catch (Exception ex)
{
Debug.LogMessage("Failed to save virtual machine table", ex.Message, ex.StackTrace, true);
}
}
return bRet;
}
private bool LoadMainSchema()
{
XmlTextReader xtr = null;
@ -343,26 +325,6 @@ namespace RosTEGUI
}
public struct VirtMachInfo
{
public int virtMachID;
public string name;
public string machType;
public string defDir;
public int memSize;
public bool setClockToHost;
public bool cdRomEnable;
public bool cdRomUsePhys;
public string cdRomPhysDrv;
public bool cdRomUseIso;
public string cdRomIsoImg;
public bool floppyEnable;
public bool floppyUsePhys;
public string floppyPhysDrv;
public bool floppyUseImg;
public string floppyIsoImg;
}
public class VirtMachConfig
{
private DataSet dataSet = null;
@ -406,6 +368,35 @@ namespace RosTEGUI
vmi.floppyUseImg = (bool)vmRow["FloppyUseImg"];
vmi.floppyIsoImg = (string)vmRow["FloppyIsoImg"];
vmi.hardDrives = new List<HardDriveInfo>();
foreach (DataRow hdRow in dataSet.Tables["HardDisks"].Rows)
{
HardDriveInfo hdi = new HardDriveInfo();
hdi.diskID = (int)hdRow["DiskID"];
hdi.name = (string)hdRow["Name"];
hdi.drive = (string)hdRow["Drive"];
hdi.path = (string)hdRow["Path"];
hdi.size = (int)hdRow["Size"];
hdi.bootImg = (bool)hdRow["BootImg"];
vmi.hardDrives.Add(hdi);
}
vmi.netCards = new List<NetCardInfo>();
foreach (DataRow hdRow in dataSet.Tables["NetCards"].Rows)
{
NetCardInfo nci = new NetCardInfo();
nci.cardID = (int)hdRow["CardID"];
nci.virtMachID = (int)hdRow["VirtMachID"];
nci.option = (string)hdRow["Option"];
nci.vlan = (int)hdRow["Vlan"];
nci.macAddr = (string)hdRow["MacAddr"];
nci.model = (string)hdRow["Model"];
nci.hostname = (string)hdRow["HostName"];
vmi.netCards.Add(nci);
}
virtMachInfo.Add(vmi);
}
@ -420,34 +411,62 @@ namespace RosTEGUI
return bRet;
}
public void SaveVmSettings()
public void SaveVmSettings(VirtMachInfo vmi)
{
if (dataSet != null)
{
dataSet.Tables["VirtMach"].Rows.Clear();
try
{
foreach (VirtMachInfo vmi in virtMachInfo)
{
DataRow vmRow = dataSet.Tables["VirtMach"].NewRow();
dataSet.Tables["VMConfig"].Rows.Clear();
vmRow["VirtMachID"] = vmi.virtMachID;
vmRow["Name"] = vmi.name;
vmRow["MachType"] = vmi.machType;
vmRow["DefDir"] = vmi.defDir;
vmRow["MemSize"] = vmi.memSize;
vmRow["SetClockToHost"] = vmi.setClockToHost;
vmRow["CdRomEnable"] = vmi.cdRomEnable;
vmRow["CdRomUsePhys"] = vmi.cdRomUsePhys;
vmRow["CdRomPhysDrv"] = vmi.cdRomPhysDrv;
vmRow["CdRomUseIso"] = vmi.cdRomUseIso;
vmRow["CdRomIsoImg"] = vmi.cdRomIsoImg;
vmRow["FloppyEnable"] = vmi.floppyEnable;
vmRow["FloppyUsePhys"] = vmi.floppyUsePhys;
vmRow["FloppyPhysDrv"] = vmi.floppyPhysDrv;
vmRow["FloppyUseImg"] = vmi.floppyUseImg;
vmRow["FloppyIsoImg"] = vmi.floppyIsoImg;
DataRow vmRow = dataSet.Tables["VMConfig"].NewRow();
vmRow["VirtMachID"] = vmi.virtMachID;
vmRow["Name"] = vmi.name;
vmRow["MachType"] = vmi.machType;
vmRow["DefDir"] = vmi.defDir;
vmRow["MemSize"] = vmi.memSize;
vmRow["SetClockToHost"] = vmi.setClockToHost;
vmRow["CdRomEnable"] = vmi.cdRomEnable;
vmRow["CdRomUsePhys"] = vmi.cdRomUsePhys;
vmRow["CdRomPhysDrv"] = vmi.cdRomPhysDrv;
vmRow["CdRomUseIso"] = vmi.cdRomUseIso;
vmRow["CdRomIsoImg"] = vmi.cdRomIsoImg;
vmRow["FloppyEnable"] = vmi.floppyEnable;
vmRow["FloppyUsePhys"] = vmi.floppyUsePhys;
vmRow["FloppyPhysDrv"] = vmi.floppyPhysDrv;
vmRow["FloppyUseImg"] = vmi.floppyUseImg;
vmRow["FloppyIsoImg"] = vmi.floppyIsoImg;
dataSet.Tables["VMConfig"].Rows.Add(vmRow);
foreach (HardDriveInfo hdi in vmi.hardDrives)
{
DataRow hdRow = dataSet.Tables["HardDisks"].NewRow();
hdRow["DiskID"] = hdi.diskID;
hdRow["Name"] = hdi.name;
hdRow["Drive"] = hdi.drive;
hdRow["Path"] = hdi.path;
hdRow["Size"] = hdi.size;
hdRow["BootImg"] = hdi.bootImg;
dataSet.Tables["HardDisks"].Rows.Add(hdRow);
}
foreach (NetCardInfo nci in vmi.netCards)
{
DataRow ncRow = dataSet.Tables["NetCards"].NewRow();
ncRow["CardID"] = nci.cardID;
ncRow["VirtMachID"] = nci.virtMachID;
ncRow["Option"] = nci.option;
ncRow["Vlan"] = nci.vlan;
ncRow["MacAddr"] = nci.macAddr;
ncRow["Model"] = nci.model;
ncRow["HostName"] = nci.hostname;
dataSet.Tables["NetCards"].Rows.Add(ncRow);
}
}
catch (Exception ex)
@ -491,13 +510,13 @@ namespace RosTEGUI
return ret;
}
public void SaveVMConfig(string path)
public void SaveVMConfig(VirtualMachine vm)
{
XmlTextWriter xtw = null;
string fileName = path + "\\Config.xml";
string fileName = vm.VMInfo.defDir + "\\Config.xml";
if (!Directory.Exists(fileName))
Directory.CreateDirectory(fileName);
if (!Directory.Exists(vm.VMInfo.defDir))
Directory.CreateDirectory(vm.VMInfo.defDir);
if (dataSet == null)
{
@ -505,6 +524,8 @@ namespace RosTEGUI
return;
}
SaveVmSettings(vm.VMInfo);
try
{
FileStream fs = new FileStream(fileName, FileMode.Create, FileAccess.Write);

232
GUI/MainForm.Designer.cs generated
View File

@ -39,32 +39,32 @@ namespace RosTEGUI
this.toolbarSep2 = new System.Windows.Forms.ToolStripSeparator();
this.toolbarSep4 = new System.Windows.Forms.ToolStripSeparator();
this.mainToolbar = new System.Windows.Forms.ToolStrip();
this.toolbarSep3 = new System.Windows.Forms.ToolStripSeparator();
this.mainMenu = new System.Windows.Forms.MenuStrip();
this.mainmenuFile = new System.Windows.Forms.ToolStripMenuItem();
this.newToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.virtualMachineToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.mainmenuFileExit = new System.Windows.Forms.ToolStripMenuItem();
this.mainmenuOptions = new System.Windows.Forms.ToolStripMenuItem();
this.mainmenuHelp = new System.Windows.Forms.ToolStripMenuItem();
this.mainmenuHelpContent = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();
this.MainMenuHelpAbout = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator();
this.settingsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.toolbarLaunch = new System.Windows.Forms.ToolStripButton();
this.toolbarStop = new System.Windows.Forms.ToolStripButton();
this.toolbarImageAdd = new System.Windows.Forms.ToolStripButton();
this.toolbarImageDel = new System.Windows.Forms.ToolStripButton();
this.toolbarSnapShot = new System.Windows.Forms.ToolStripButton();
this.toolbarScreenShot = new System.Windows.Forms.ToolStripButton();
this.toolbarSep3 = new System.Windows.Forms.ToolStripSeparator();
this.toolbarHelpContents = new System.Windows.Forms.ToolStripButton();
this.toolbarExit = new System.Windows.Forms.ToolStripButton();
this.mainMenu = new System.Windows.Forms.MenuStrip();
this.mainmenuFile = new System.Windows.Forms.ToolStripMenuItem();
this.newToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.virtualMachineToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.mainmenuFileExit = new System.Windows.Forms.ToolStripMenuItem();
this.mainmenuOptions = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripSeparator2 = new System.Windows.Forms.ToolStripSeparator();
this.settingsToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.snapshotToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.takeSnapshotToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.loadSnapshotToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripSeparator3 = new System.Windows.Forms.ToolStripSeparator();
this.deleteSnapshotToolStripMenuItem = new System.Windows.Forms.ToolStripMenuItem();
this.mainmenuHelp = new System.Windows.Forms.ToolStripMenuItem();
this.mainmenuHelpContent = new System.Windows.Forms.ToolStripMenuItem();
this.toolStripSeparator1 = new System.Windows.Forms.ToolStripSeparator();
this.MainMenuHelpAbout = new System.Windows.Forms.ToolStripMenuItem();
this.mainToolbar.SuspendLayout();
this.mainMenu.SuspendLayout();
this.SuspendLayout();
@ -162,109 +162,12 @@ namespace RosTEGUI
this.mainToolbar.Size = new System.Drawing.Size(540, 25);
this.mainToolbar.TabIndex = 10;
//
// toolbarSep3
//
this.toolbarSep3.Name = "toolbarSep3";
this.toolbarSep3.Size = new System.Drawing.Size(6, 25);
//
// mainMenu
//
this.mainMenu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.mainmenuFile,
this.mainmenuOptions,
this.snapshotToolStripMenuItem,
this.mainmenuHelp});
this.mainMenu.Location = new System.Drawing.Point(0, 0);
this.mainMenu.Name = "mainMenu";
this.mainMenu.Size = new System.Drawing.Size(540, 24);
this.mainMenu.TabIndex = 11;
//
// mainmenuFile
//
this.mainmenuFile.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.newToolStripMenuItem,
this.mainmenuFileExit});
this.mainmenuFile.Name = "mainmenuFile";
this.mainmenuFile.Size = new System.Drawing.Size(35, 20);
this.mainmenuFile.Text = "File";
//
// newToolStripMenuItem
//
this.newToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.virtualMachineToolStripMenuItem});
this.newToolStripMenuItem.Name = "newToolStripMenuItem";
this.newToolStripMenuItem.Size = new System.Drawing.Size(106, 22);
this.newToolStripMenuItem.Text = "New";
//
// virtualMachineToolStripMenuItem
//
this.virtualMachineToolStripMenuItem.Name = "virtualMachineToolStripMenuItem";
this.virtualMachineToolStripMenuItem.Size = new System.Drawing.Size(157, 22);
this.virtualMachineToolStripMenuItem.Text = "Virtual Machine";
this.virtualMachineToolStripMenuItem.Click += new System.EventHandler(this.CreateNewVirtMach);
//
// mainmenuFileExit
//
this.mainmenuFileExit.Name = "mainmenuFileExit";
this.mainmenuFileExit.Size = new System.Drawing.Size(106, 22);
this.mainmenuFileExit.Text = "Exit";
this.mainmenuFileExit.Click += new System.EventHandler(this.exitToolStripMenuItem_Click);
//
// mainmenuOptions
//
this.mainmenuOptions.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.toolStripSeparator2,
this.settingsToolStripMenuItem});
this.mainmenuOptions.Name = "mainmenuOptions";
this.mainmenuOptions.Size = new System.Drawing.Size(56, 20);
this.mainmenuOptions.Text = "Options";
//
// mainmenuHelp
//
this.mainmenuHelp.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.mainmenuHelpContent,
this.toolStripSeparator1,
this.MainMenuHelpAbout});
this.mainmenuHelp.Name = "mainmenuHelp";
this.mainmenuHelp.Size = new System.Drawing.Size(40, 20);
this.mainmenuHelp.Text = "Help";
//
// mainmenuHelpContent
//
this.mainmenuHelpContent.Name = "mainmenuHelpContent";
this.mainmenuHelpContent.Size = new System.Drawing.Size(124, 22);
this.mainmenuHelpContent.Text = "Content";
//
// toolStripSeparator1
//
this.toolStripSeparator1.Name = "toolStripSeparator1";
this.toolStripSeparator1.Size = new System.Drawing.Size(121, 6);
//
// MainMenuHelpAbout
//
this.MainMenuHelpAbout.Name = "MainMenuHelpAbout";
this.MainMenuHelpAbout.Size = new System.Drawing.Size(124, 22);
this.MainMenuHelpAbout.Text = "About";
this.MainMenuHelpAbout.Click += new System.EventHandler(this.MainMenuHelpAbout_Click);
//
// toolStripSeparator2
//
this.toolStripSeparator2.Name = "toolStripSeparator2";
this.toolStripSeparator2.Size = new System.Drawing.Size(149, 6);
//
// settingsToolStripMenuItem
//
this.settingsToolStripMenuItem.Name = "settingsToolStripMenuItem";
this.settingsToolStripMenuItem.Size = new System.Drawing.Size(152, 22);
this.settingsToolStripMenuItem.Text = "Settings";
this.settingsToolStripMenuItem.Click += new System.EventHandler(this.settingsToolStripMenuItem_Click);
//
// toolbarLaunch
//
this.toolbarLaunch.Image = ((System.Drawing.Image)(resources.GetObject("toolbarLaunch.Image")));
this.toolbarLaunch.ImageTransparentColor = System.Drawing.Color.Magenta;
this.toolbarLaunch.Name = "toolbarLaunch";
this.toolbarLaunch.Size = new System.Drawing.Size(61, 22);
this.toolbarLaunch.Size = new System.Drawing.Size(66, 22);
this.toolbarLaunch.Text = "Launch";
this.toolbarLaunch.ToolTipText = "Starts the virtual machine";
//
@ -317,6 +220,11 @@ namespace RosTEGUI
this.toolbarScreenShot.Text = "toolStripButton2";
this.toolbarScreenShot.ToolTipText = "Grab a screenshot of the display";
//
// toolbarSep3
//
this.toolbarSep3.Name = "toolbarSep3";
this.toolbarSep3.Size = new System.Drawing.Size(6, 25);
//
// toolbarHelpContents
//
this.toolbarHelpContents.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;
@ -336,6 +244,70 @@ namespace RosTEGUI
this.toolbarExit.ToolTipText = "Exits application";
this.toolbarExit.Click += new System.EventHandler(this.toolbarExit_Click);
//
// mainMenu
//
this.mainMenu.Items.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.mainmenuFile,
this.mainmenuOptions,
this.snapshotToolStripMenuItem,
this.mainmenuHelp});
this.mainMenu.Location = new System.Drawing.Point(0, 0);
this.mainMenu.Name = "mainMenu";
this.mainMenu.Size = new System.Drawing.Size(540, 24);
this.mainMenu.TabIndex = 11;
//
// mainmenuFile
//
this.mainmenuFile.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.newToolStripMenuItem,
this.mainmenuFileExit});
this.mainmenuFile.Name = "mainmenuFile";
this.mainmenuFile.Size = new System.Drawing.Size(37, 20);
this.mainmenuFile.Text = "File";
//
// newToolStripMenuItem
//
this.newToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.virtualMachineToolStripMenuItem});
this.newToolStripMenuItem.Name = "newToolStripMenuItem";
this.newToolStripMenuItem.Size = new System.Drawing.Size(98, 22);
this.newToolStripMenuItem.Text = "New";
//
// virtualMachineToolStripMenuItem
//
this.virtualMachineToolStripMenuItem.Name = "virtualMachineToolStripMenuItem";
this.virtualMachineToolStripMenuItem.Size = new System.Drawing.Size(157, 22);
this.virtualMachineToolStripMenuItem.Text = "Virtual Machine";
this.virtualMachineToolStripMenuItem.Click += new System.EventHandler(this.CreateNewVirtMach);
//
// mainmenuFileExit
//
this.mainmenuFileExit.Name = "mainmenuFileExit";
this.mainmenuFileExit.Size = new System.Drawing.Size(98, 22);
this.mainmenuFileExit.Text = "Exit";
this.mainmenuFileExit.Click += new System.EventHandler(this.exitToolStripMenuItem_Click);
//
// mainmenuOptions
//
this.mainmenuOptions.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.toolStripSeparator2,
this.settingsToolStripMenuItem});
this.mainmenuOptions.Name = "mainmenuOptions";
this.mainmenuOptions.Size = new System.Drawing.Size(61, 20);
this.mainmenuOptions.Text = "Options";
//
// toolStripSeparator2
//
this.toolStripSeparator2.Name = "toolStripSeparator2";
this.toolStripSeparator2.Size = new System.Drawing.Size(113, 6);
//
// settingsToolStripMenuItem
//
this.settingsToolStripMenuItem.Name = "settingsToolStripMenuItem";
this.settingsToolStripMenuItem.Size = new System.Drawing.Size(116, 22);
this.settingsToolStripMenuItem.Text = "Settings";
this.settingsToolStripMenuItem.Click += new System.EventHandler(this.settingsToolStripMenuItem_Click);
//
// snapshotToolStripMenuItem
//
this.snapshotToolStripMenuItem.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
@ -344,32 +316,60 @@ namespace RosTEGUI
this.toolStripSeparator3,
this.deleteSnapshotToolStripMenuItem});
this.snapshotToolStripMenuItem.Name = "snapshotToolStripMenuItem";
this.snapshotToolStripMenuItem.Size = new System.Drawing.Size(64, 20);
this.snapshotToolStripMenuItem.Size = new System.Drawing.Size(68, 20);
this.snapshotToolStripMenuItem.Text = "Snapshot";
//
// takeSnapshotToolStripMenuItem
//
this.takeSnapshotToolStripMenuItem.Name = "takeSnapshotToolStripMenuItem";
this.takeSnapshotToolStripMenuItem.Size = new System.Drawing.Size(163, 22);
this.takeSnapshotToolStripMenuItem.Size = new System.Drawing.Size(158, 22);
this.takeSnapshotToolStripMenuItem.Text = "Take snapshot";
//
// loadSnapshotToolStripMenuItem
//
this.loadSnapshotToolStripMenuItem.Name = "loadSnapshotToolStripMenuItem";
this.loadSnapshotToolStripMenuItem.Size = new System.Drawing.Size(163, 22);
this.loadSnapshotToolStripMenuItem.Size = new System.Drawing.Size(158, 22);
this.loadSnapshotToolStripMenuItem.Text = "Load snapshot";
//
// toolStripSeparator3
//
this.toolStripSeparator3.Name = "toolStripSeparator3";
this.toolStripSeparator3.Size = new System.Drawing.Size(160, 6);
this.toolStripSeparator3.Size = new System.Drawing.Size(155, 6);
//
// deleteSnapshotToolStripMenuItem
//
this.deleteSnapshotToolStripMenuItem.Name = "deleteSnapshotToolStripMenuItem";
this.deleteSnapshotToolStripMenuItem.Size = new System.Drawing.Size(163, 22);
this.deleteSnapshotToolStripMenuItem.Size = new System.Drawing.Size(158, 22);
this.deleteSnapshotToolStripMenuItem.Text = "Delete snapshot";
//
// mainmenuHelp
//
this.mainmenuHelp.DropDownItems.AddRange(new System.Windows.Forms.ToolStripItem[] {
this.mainmenuHelpContent,
this.toolStripSeparator1,
this.MainMenuHelpAbout});
this.mainmenuHelp.Name = "mainmenuHelp";
this.mainmenuHelp.Size = new System.Drawing.Size(44, 20);
this.mainmenuHelp.Text = "Help";
//
// mainmenuHelpContent
//
this.mainmenuHelpContent.Name = "mainmenuHelpContent";
this.mainmenuHelpContent.Size = new System.Drawing.Size(117, 22);
this.mainmenuHelpContent.Text = "Content";
//
// toolStripSeparator1
//
this.toolStripSeparator1.Name = "toolStripSeparator1";
this.toolStripSeparator1.Size = new System.Drawing.Size(114, 6);
//
// MainMenuHelpAbout
//
this.MainMenuHelpAbout.Name = "MainMenuHelpAbout";
this.MainMenuHelpAbout.Size = new System.Drawing.Size(117, 22);
this.MainMenuHelpAbout.Text = "About";
this.MainMenuHelpAbout.Click += new System.EventHandler(this.MainMenuHelpAbout_Click);
//
// MainForm
//
this.AutoScaleBaseSize = new System.Drawing.Size(5, 13);

View File

@ -14,6 +14,7 @@ namespace RosTEGUI
public partial class MainForm : Form
{
private MainConfig mainConf;
private ArrayList virtualMachines;
public MainForm()
{
@ -47,7 +48,7 @@ namespace RosTEGUI
{
foreach (VirtMachInfo vmInfo in vmConfig.VMInfo)
{
VirtualMachine vm = new VirtualMachine();
VirtualMachine vm = new VirtualMachine(vmInfo);
ListViewItem lvi = VirtMachListView.Items.Add(vmConfig.ToString(), 0);
lvi.SubItems.Add(vm.MemSize.ToString() + " MB");
@ -97,53 +98,30 @@ namespace RosTEGUI
if (wizFrm.ShowDialog() == DialogResult.OK)
{
if (wizFrm.Option == 1)
VirtualMachine virtMach = new VirtualMachine();
virtMach.Name = wizFrm.VMName;
switch (wizFrm.Option)
{
try
{
case 1:
if (!Directory.Exists(wizFrm.DefDir))
Directory.CreateDirectory(wizFrm.DefDir);
}
catch (Exception ex)
{
MessageBox.Show("Failed to create " + wizFrm.DefDir + '\n' + ex.Message);
return;
}
int i = mainConf.AddVirtMach(wizFrm.DefDir);
virtMach.DefDir = wizFrm.DefDir;
break;
VirtualMachine VirtMach = new VirtualMachine();
VirtMach.CreateVMConfig(wizFrm.VMName,
wizFrm.DefDir,
wizFrm.DiskSizeGB,
wizFrm.ExistImg,
wizFrm.MemSizeMB);
case 2:
ListViewItem lvi = VirtMachListView.Items.Add(VirtMach.ToString(), 0);
lvi.Tag = VirtMach;
break;
case 3:
virtMach.DefDir = "Images\\" + wizFrm.VMName;
break;
}
else if (wizFrm.Option == 2)
{
DirectoryInfo di = Directory.GetParent(wizFrm.ExistImg);
int i = mainConf.AddVirtMach(di.FullName);
VirtualMachine VirtMach = new VirtualMachine();
VirtMach.CreateVMConfig(wizFrm.VMName,
wizFrm.ExistImg,
wizFrm.MemSizeMB);
ListViewItem lvi = VirtMachListView.Items.Add(VirtMach.ToString(), 0);
lvi.Tag = VirtMach;
}
else
{
int i = mainConf.AddVirtMach("Images\\" + wizFrm.VMName);
VirtualMachine VirtMach = new VirtualMachine();
VirtMach.CreateVMConfig(wizFrm.VMName);
ListViewItem lvi = VirtMachListView.Items.Add(VirtMach.ToString(), 0);
lvi.Tag = VirtMach;
}
ListViewItem lvi = VirtMachListView.Items.Add(virtMach.Name, 0);
lvi.SubItems.Add(virtMach.MemSize.ToString() + " MB");
lvi.Tag = virtMach;
}
}
@ -174,7 +152,7 @@ namespace RosTEGUI
}
}
mainConf.DeleteVirtMach(lvi.Index/*lvi.Tag*/);
//mainConf.DeleteVirtMach(lvi.Index/*lvi.Tag*/);
VirtMachListView.Items.Remove(lvi);
}
}
@ -182,10 +160,12 @@ namespace RosTEGUI
private void MainForm_FormClosing(object sender, FormClosingEventArgs e)
{
foreach(ListViewItem lvi in VirtMachListView.Items)
VirtMachConfig vmc = new VirtMachConfig();
foreach (ListViewItem lvi in VirtMachListView.Items)
{
VirtMachConfig vm = (VirtMachConfig)lvi.Tag;
vm.SaveVMConfig("err");
VirtualMachine vm = (VirtualMachine)lvi.Tag;
vmc.SaveVMConfig(vm);
}
mainConf.SaveSettings();

View File

@ -164,9 +164,6 @@
<metadata name="mainToolbar.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>358, 23</value>
</metadata>
<metadata name="mainMenu.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>242, 22</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="toolbarLaunch.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
@ -190,12 +187,12 @@
<data name="toolbarImageAdd.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAPtJREFUOE9jYKAV
8PDwYE9LS2Otr69nIscOxtDw4P/2DvZ/gfQ/EDs+Pp6DJIPCImz+3L5z6/+u3Tv/h0WE/Pbx8eEiyQCQ
7Xfu3v6/e8+u/0DNv0JDQ3kIGgDyr729PQtQMRvI6TADIqLCfkZHR/PhNQDkTyj+B7LdycXh7917d8Au
iIwO/4MkD1aHYRhI8M7dW0B8+z9II4gG4QMH96Pgg4cO4DYAFGhHjh7+f/jIIbwYpwvQnXnm7On/IOzg
BI5OmBexuwDdTyANV65eBuPwSNs/JKcDkAHXb1wDY7INuHzl0n8QJssAUOIJjwz9DcIgNihvEExIA6IA
ADzE3xfN6Q2vAAAAAElFTkSuQmCC
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAPpJREFUOE9jYKAV
8PDwYE9LS2Otr69nIscOxtDw4P/29vZ/gfQ/EDs+Pp6DJIPCIqz/3L5z6/+u3Tv/h0WE/Pbx8eEiyQCQ
7Xfu3v6/e8+u/0DNv0JDQ3kIGgDyL1AjC1AxG8jpMAMiosJ+RkdH8+E1AORPKP4Hst3R2f7v3Xt3wC6I
jA7/gyQPVodhGEjwzt1bQHz7P0gjiAbhAwf3o+CDhw7gNgAUaEeOHv5/+MghvBinC9Cdeebs6f8gbO8I
jk6YF7G7AN1PIA1Xrl4G4/BImz8kpwOQAddvXANjsg24fOXSfxAmywBQ4gmPDP0NwiA2KG8QTEgDogAA
Is/fC3RwXJUAAAAASUVORK5CYII=
</value>
</data>
<data name="toolbarImageDel.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
@ -241,20 +238,20 @@
<data name="toolbarHelpContents.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAthJREFUOE+FU11I
U2EYXllBF3VjW91JklGUmCnSxBIVR+aSfgjMm0FKpgRezFwQdCIbQi5N259DcOBMUOjCfpSwFuRkRngj
FhRIprmpzJ2/eXbOztnbeT9Tcl104OF853zP+37P+7zvt0OT8jiuVJVIuaeqlb37zic18iHc3qnZFU4T
uLHdX7723x4cnkiNId8URe3xnNMHB48fUz76/QrPcyBJEoiiCDQdBf/bMeX50SwFOcjdlmRoaCjNk5MT
em+5I0uhEAhTQWAYGqLRCAHDRCEWmID1mRkYq78pIxdjtpJ4zhZ+6DeZEtLcHDB1dUAXFwMT+kWSsCwN
THgJ6LIyYCwtIExPQ5/KxRiSwHm1KteWeVgWZmeBMZmAKS2FSHU1+C4aE6rUOMJ3qSoRra0FtrISGLMZ
+MkA2DIyZPdl42lNh/WBY7THneRfvwK6qAjWamrArtMmXRXlTqqL2o/wqGv7QV0y2thIlHCjb8D/Ylix
Pbzn0nR22n5EIquqUWvAhkMwYjRK7rLip6lOOw0lT97pz8j86jLhhtWyMBbdj8diPDEL30S2empqAqJG
3ROE9T/G0oRLEmDLsFWCEPtvAlGMEy4aTBKgjJWVZdVtFgSOhZe36kV3RXl7qgK3obRj1GyOi6oClmVg
aWlxowQ0wj/gU/jeXmAbGoAeHwdfZqbirjA4Nk10XTDYB7KOKNz3b8BaHwFnfwZ+l1PBBmiwFQ6tNslb
LEDr9cBTFDCBAIzctUjddiqOGKEoKfZzHmJeL9AFBcDeuAH29PQkjgBR6tUXTATz8yHW3Ax0YSFwLS2A
UmU5oUKGhCQC191Fgjl1HiazswFjtsrEsew7eWI1mJcHXFMTcD1uUidO4QYY4Bx2cjIGI3fbKG9eJq9e
/9mh0yU/tVnlxcUF4jZiYWEBpqytskN7IImcfy7T347br18r6my932Oztc8/trWJCFzjP7zqqd35DfRf
Lu+Mc2gnAAAAAElFTkSuQmCC
YQUAAAAgY0hSTQAAeiYAAICEAAD6AAAAgOgAAHUwAADqYAAAOpgAABdwnLpRPAAAAttJREFUOE+FU11I
U2EYXllBF3VjW91JklGUmCnWxBIVR+aSfgjMm4FKpgRezFwQdMK0oC1Nd/bjEBypCQpdWKmEtQgnM8Ib
saBAspmbytz5m2fn7Jzzdr7PlFwXHXg43znf877f8z7v++3QJD2OqxVFYvapSnnvvguKRjqEtndqdoVT
eHZ895evfbcHhyeTY/A3QRB7POf1gcHjx+SPPp/McSyIogiCIABFRcH3dlx+cTRDRhzE3ZZkaGgoxZOV
FXpvuSOJoRDw0wGgaQqi0QgGTUch5p+E9dlZGK+7KSEuitlK4jmX/+G5yZQQ5+eBrq0FqrAQ6NAvnIRh
KKDDS0CVlABtaQZ+ZgZ6VS6KwQmc1yqyremHJX5uDmiTCejiYohUVkLfJWNClRpH6LtckYjW1ABTXg60
2QzclB+saWmS+4rxtKa97YFj1O1SuDevgSoogLWqKrDrtIqrrNRJdBL7ETzq2n5Qp0QbGrASdmwUfC+H
ZVvLPZemo8P2IxJZVY1aAyYcghGjUXSXFD5LdtppKHr67uwZiVtdxtywWhaKRe7HYzEOm4XeWLZ6anIC
rEbd4/n1P8ZSmIsToJahVvF87L8JBCGOuchgnADJWFlZVt1mgGcZeHWrTnCXlVqTFbgNxe1jZnNcUBUw
DA1LS4sbJSAjfAP9MtfTA0x9PVATE9Cfni67ywyOTRNdFw3kQMYRmf3+DZi2VmBJO/hcThk1QINaQWq1
CmexAKXXA0cQQPv9MHLXInaRRBxhhCDE2M8FiHm9QOXlAVNdDfbUVAWNAFbq1edNBnJzIdbUBFR+PrDN
zYCkSlJChQQJUQC2qxMHs+o8TGVmAorZKhONZe/JE6uBnBxgGxuB7XbjOtEUboAG1kHik1Ew4m4b5c3L
5NXrP5M6nfLpUau0uBjEbiMEg0GYbm2RSO0BBXH+uUx/O07euF7Q8fB+t81mXXhieywgoDX6h656cnd+
A8q3Lto1lVQmAAAAAElFTkSuQmCC
</value>
</data>
<data name="toolbarExit.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
@ -269,6 +266,9 @@
LCXCNDrnyf/3rlL671en+j+gTut/QL02TgPAyZuYjIQ1L5CTswFNRoUxygqSMgAAAABJRU5ErkJggg==
</value>
</data>
<metadata name="mainMenu.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>242, 22</value>
</metadata>
<data name="$this.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
AAABAAkAEBAAAAEACABoBQAAlgAAACAgAAABAAgAqAgAAP4FAAAwMAAAAQAIAKgOAACmDgAAEBAAAAEA

View File

@ -13,6 +13,7 @@ namespace RosTEGUI
{
private MainConfig mainConf;
#region properties
public string VMName
{
get { return nameTxtBox.Text; }
@ -42,6 +43,7 @@ namespace RosTEGUI
else return 3;
}
}
#endregion
public NewVMWizard(MainConfig mainConfIn)
{

View File

@ -87,10 +87,9 @@ namespace RosTEGUI
private void LoadHardDiskPage()
{
ArrayList hardDrives = VirtMach.GetHardDisks();
foreach (VMHardDrive vmhd in hardDrives)
foreach (HardDriveInfo hdi in VirtMach.HardDrives)
{
harddiskLstBox.Items.Add(vmhd);
harddiskLstBox.Items.Add(hdi);
}
if (harddiskLstBox.Items.Count > 0)
@ -308,12 +307,12 @@ namespace RosTEGUI
ListBox lb = (ListBox)sender;
if (lb.SelectedItem != null)
{
VMHardDrive vmhd = (VMHardDrive)lb.SelectedItem;
HardDriveInfo hdi = (HardDriveInfo)lb.SelectedItem;
harddiskDriveName.Text = vmhd.Drive;
harddiskFileNameTxtBox.Text = vmhd.Path;
harddiskSizeLbl.Text = vmhd.Size.ToString();
harddiskBootImageChk.Checked = vmhd.BootImg;
harddiskDriveName.Text = hdi.name;
harddiskFileNameTxtBox.Text = hdi.path;
harddiskSizeLbl.Text = hdi.size.ToString();
harddiskBootImageChk.Checked = hdi.bootImg;
}
}

View File

@ -9,6 +9,50 @@ using System.Collections.Generic;
namespace RosTEGUI
{
public struct VirtMachInfo
{
public int virtMachID;
public string name;
public string machType;
public string defDir;
public int memSize;
public bool setClockToHost;
public bool cdRomEnable;
public bool cdRomUsePhys;
public string cdRomPhysDrv;
public bool cdRomUseIso;
public string cdRomIsoImg;
public bool floppyEnable;
public bool floppyUsePhys;
public string floppyPhysDrv;
public bool floppyUseImg;
public string floppyIsoImg;
public List<HardDriveInfo> hardDrives;
public List<NetCardInfo> netCards;
}
public struct HardDriveInfo
{
public int diskID;
public string name;
public string drive;
public string path;
public int size;
public bool bootImg;
}
public struct NetCardInfo
{
public int cardID;
public int virtMachID;
public string option;
public int vlan;
public string macAddr;
public string model;
public string hostname;
}
public class VMHardDrive
{
private DataRow hdDataRow;
@ -109,222 +153,120 @@ namespace RosTEGUI
}
}
public class VMNetCard
{
}
public class VirtualMachine
{
private DataRow vmDataRow;
private ArrayList hardDrives;
private VirtMachInfo vmInfo;
private ArrayList netCards;
private ArrayList hardDrives;
#region Virtual machine properties
public int VirtMachID
{
get { return GetIntValue("VirtMachID"); }
get { return vmInfo.virtMachID; }
}
public string Name
{
get { return GetStringValue("Name"); }
set { SetStringValue("Name", value); }
get { return vmInfo.name; }
set { vmInfo.name = value; }
}
public string MachType
{
get { return GetStringValue("MachType"); }
set { SetStringValue("MachType", value); }
get { return vmInfo.machType; }
set { vmInfo.machType = value; }
}
public string DefDir
{
get { return GetStringValue("DefDir"); }
set { SetStringValue("DefDir", value); }
get { return vmInfo.defDir; }
set { vmInfo.defDir = value; }
}
public int MemSize
{
get { return GetIntValue("MemSize"); }
set { SetIntValue("MemSize", value); }
get { return vmInfo.memSize; }
set { vmInfo.memSize = value; }
}
public bool SetClockToHost
{
get { return GetBoolValue("SetClockToHost"); }
set { SetBoolValue("SetClockToHost", value); }
get { return vmInfo.setClockToHost; }
set { vmInfo.setClockToHost = value; }
}
public bool CdRomEnable
{
get { return GetBoolValue("CdRomEnable"); }
set { SetBoolValue("CdRomEnable", value); }
get { return vmInfo.cdRomEnable; }
set { vmInfo.cdRomEnable = value; }
}
public bool CdRomUsePhys
{
get { return GetBoolValue("CdRomUsePhys"); }
set { SetBoolValue("CdRomUsePhys", value); }
get { return vmInfo.cdRomUsePhys; }
set { vmInfo.cdRomUsePhys = value; }
}
public string CdRomPhysDrv
{
get { return GetStringValue("CdRomPhysDrv"); }
set { SetStringValue("CdRomPhysDrv", value); }
get { return vmInfo.cdRomPhysDrv; }
set { vmInfo.cdRomPhysDrv = value; }
}
public bool CdRomUseIso
{
get { return GetBoolValue("CdRomUseIso"); }
set { SetBoolValue("CdRomUseIso", value); }
get { return vmInfo.cdRomUseIso; }
set { vmInfo.cdRomUseIso = value; }
}
public string CdRomIsoImg
{
get { return GetStringValue("CdRomIsoImg"); }
set { SetStringValue("CdRomIsoImg", value); }
get { return vmInfo.cdRomIsoImg; }
set { vmInfo.cdRomIsoImg = value; }
}
public bool FloppyEnable
{
get { return GetBoolValue("FloppyEnable"); }
set { SetBoolValue("FloppyEnable", value); }
get { return vmInfo.floppyEnable; }
set { vmInfo.floppyEnable = value; }
}
public bool FloppyUsePhys
{
get { return GetBoolValue("FloppyUsePhys"); }
set { SetBoolValue("FloppyUsePhys", value); }
get { return vmInfo.floppyUsePhys; }
set { vmInfo.floppyUsePhys = value; }
}
public string FloppyPhysDrv
{
get { return GetStringValue("FloppyPhysDrv"); }
set { SetStringValue("FloppyPhysDrv", value); }
get { return vmInfo.floppyPhysDrv; }
set { vmInfo.floppyPhysDrv = value; }
}
public bool FloppyUseIso
public bool FloppyUseImg
{
get { return GetBoolValue("FloppyUseIso"); }
set { SetBoolValue("FloppyUseIso", value); }
get { return vmInfo.floppyUseImg; }
set { vmInfo.floppyUseImg = value; }
}
public string FloppyIsoImg
{
get { return GetStringValue("FloppyIsoImg"); }
set { SetStringValue("FloppyIsoImg", value); }
get { return vmInfo.floppyIsoImg; }
set { vmInfo.floppyIsoImg = value; }
}
#endregion
#region property helper functions
private int GetIntValue(string key)
public VirtMachInfo VMInfo
{
try
{
return (int)vmDataRow[key];
}
catch (ArgumentException e)
{
string message = "Failed to get " + key + " value";
Debug.LogMessage(message, e.Message, e.StackTrace, true);
return 0;
}
get { return vmInfo; }
}
private bool GetBoolValue(string key)
public List<HardDriveInfo> HardDrives
{
try
{
return (bool)vmDataRow[key];
}
catch (ArgumentException e)
{
string message = "Failed to get " + key + " value";
Debug.LogMessage(message, e.Message, e.StackTrace, true);
return false;
}
get { return vmInfo.hardDrives; }
}
private string GetStringValue(string key)
public List<NetCardInfo> NetCards
{
try
{
return (string)vmDataRow[key];
}
catch (ArgumentException e)
{
string message = "Failed to get " + key + " value";
Debug.LogMessage(message, e.Message, e.StackTrace, true);
return string.Empty;
}
get { return vmInfo.netCards; }
}
private void SetIntValue(string key, int value)
{
try
{
vmDataRow[key] = value;
}
catch (ArgumentException e)
{
string message = "Failed to set " + key + " value";
Debug.LogMessage(message, e.Message, e.StackTrace, true);
}
}
private void SetBoolValue(string key, bool value)
{
try
{
vmDataRow[key] = value;
}
catch (ArgumentException e)
{
string message = "Failed to set " + key + " value";
Debug.LogMessage(message, e.Message, e.StackTrace, true);
}
}
private void SetStringValue(string key, string value)
{
try
{
vmDataRow[key] = value;
}
catch (ArgumentException e)
{
string message = "Failed to set " + key + " value";
Debug.LogMessage(message, e.Message, e.StackTrace, true);
}
}
#endregion
#region database functions
private bool PopulateVMDatabase(string name,
string dir,
float diskSize,
string existImg,
int memSize)
{
bool ret = false;
return ret;
}
#endregion
public VirtualMachine()
{/*
vmConfig = new VMConfig();
if (!vmConfig.LoadVirtMachData())
MessageBox.Show("Failed to load VM Schema");
{
vmInfo = new VirtMachInfo();
CreateDefaultConfig();
}
hardDrives = new ArrayList(3);
netCards = new ArrayList();*/
public VirtualMachine(VirtMachInfo vmInfoIn)
{
vmInfo = vmInfoIn;
}
public override string ToString()
@ -369,11 +311,7 @@ namespace RosTEGUI
;//FIXME: create a vm image 'qemu-img.exe create'
}
return PopulateVMDatabase(name,
dir,
diskSize,
existImg,
memSize);
return false;
}
public VMHardDrive AddHardDisk(string nameIn,
@ -402,5 +340,48 @@ namespace RosTEGUI
{
return hardDrives;
}
private void CreateDefaultConfig()
{
vmInfo.virtMachID = 0;
vmInfo.name = "New VM " + vmInfo.virtMachID.ToString();
vmInfo.machType = string.Empty;
vmInfo.defDir = string.Empty;
vmInfo.memSize = 0;
vmInfo.setClockToHost = true;
vmInfo.cdRomEnable = true;
vmInfo.cdRomUsePhys = true;
vmInfo.cdRomPhysDrv = string.Empty;
vmInfo.cdRomUseIso = false;
vmInfo.cdRomIsoImg = string.Empty;
vmInfo.floppyEnable = false;
vmInfo.floppyUsePhys = false;
vmInfo.floppyPhysDrv = string.Empty;
vmInfo.floppyUseImg = false;
vmInfo.floppyIsoImg = string.Empty;
HardDriveInfo hdi = new HardDriveInfo();
hdi.bootImg = true;
hdi.diskID = 1;
hdi.drive = string.Empty;
hdi.name = "root";
hdi.path = string.Empty;
hdi.size = 0;
vmInfo.hardDrives = new List<HardDriveInfo>();
vmInfo.hardDrives.Add(hdi);
NetCardInfo nci = new NetCardInfo();
nci.cardID = 1;
nci.hostname = string.Empty;
nci.macAddr = string.Empty;
nci.model = string.Empty;
nci.option = string.Empty;
nci.virtMachID = 0;
nci.vlan = 0;
vmInfo.netCards = new List<NetCardInfo>();
vmInfo.netCards.Add(nci);
}
}
}