static void Test_CreateVmExisting(Host host) { //Get vm iso XenConnect conn = new XenConnect(host, testServerId, testip); List <VirtualDisk> disks = conn.getISOStorageList(); string filename = null; //check if the disk exists foreach (VirtualDisk disk in disks) { if (disk.NameCanonical.Contains("Ubuntu14")) { filename = disk.Name; break; } } string vmName = "SeniorBuntu"; int memory = 2000000; int vcpus = 1; VirtualMachineBuilder.DomainType domType = VirtualMachineBuilder.DomainType.TRANSIENT; VirtualMachineBuilder builder = new VirtualMachineBuilder(vmName, memory, vcpus, VirtualMachineBuilder.XEN_PATH_DEFAULT_ISO + filename, domType); //builder.setHardDrive(20000, true); //set hard drive size to 20 GB (20k MB) builder.setHardDriveExisting(true, false, VirtualMachineBuilder.XEN_PATH_DEFAULT_DISK + "BuntuMaster.img"); conn.createVm(builder); //string xml = builder.toXMLString(); }
public void TestNotEmpty() { MemoryStream xvaStream = new MemoryStream(); VirtualMachineBuilder vmb = new VirtualMachineBuilder(); MemoryStream ms = new MemoryStream(); for (int i = 0; i < 1024 * 1024; ++i) { ms.Position = i * 10; ms.WriteByte((byte)(i ^ (i >> 8) ^ (i >> 16) ^ (i >> 24))); } vmb.AddDisk("Foo", ms, Ownership.Dispose); vmb.Build(xvaStream); Assert.NotEqual(0, xvaStream.Length); VirtualMachine vm = new VirtualMachine(xvaStream); List <Disk> disks = new List <Disk>(vm.Disks); Assert.Equal(1, disks.Count); Assert.Equal(10 * 1024 * 1024, disks[0].Capacity); Stream diskContent = disks[0].Content; for (int i = 0; i < 1024 * 1024; ++i) { diskContent.Position = i * 10; if ((byte)(i ^ (i >> 8) ^ (i >> 16) ^ (i >> 24)) != diskContent.ReadByte()) { Assert.True(false, "Mismatch at offset " + i); } } }
// // Driven by user IDE subs: public bool NewIDEbyUser(out IIDE newIde) { if (VirtualMachineBuilder?.VisibleTypes.Count < 1) { OnShowingMessage("There're no available Virtual Machine types to add in a new IDE. Check types settings via Component Manager." , "Workplace Configuration Warning in " + Title, MessageBoxIcon.Exclamation); newIde = null; return(false); } if (CodeEditorBuilder?.VisibleTypes.Count < 1) { OnShowingMessage("There're no available Code Editor types to add in a new IDE. Check types settings via Component Manager." , "Workplace Configuration Warning in " + Title, MessageBoxIcon.Exclamation); newIde = null; return(false); } // IVirtualMachine machine = null; ICodeEditor codeEditor = null; IInputPort inputPort = null; int withInputPortIndex = -1; IOutputPort outputPort = null; int withOutputPortIndex = -1; bool withConsole = false; newIde = null; DialogResult newIDEdialogResult; using (var newIDEdialog = new NewIdeDialog(VirtualMachineBuilder.VisibleTypes, CodeEditorBuilder.VisibleTypes , InputPortBuilder.VisibleTypes, OutputPortBuilder.VisibleTypes , InputDeviceBuilder.VisibleTypes.Any(t => t.TypeName == typeof(ConsoleDevice).Name) || OutputDeviceBuilder.VisibleTypes.Any(t => t.TypeName == typeof(ConsoleDevice).Name))) { newIDEdialogResult = newIDEdialog.ShowDialog(MainForm as Form); if (newIDEdialogResult == DialogResult.OK) { machine = VirtualMachineBuilder.GetNew(VirtualMachineBuilder.VisibleTypes[newIDEdialog.ChosenMachineTypeIndex]); machine.CurrentLanguage = newIDEdialog.ChosenLanguage; codeEditor = CodeEditorBuilder.GetNew(CodeEditorBuilder.VisibleTypes[newIDEdialog.ChosenCodeEditorTypeIndex]); inputPort = newIDEdialog.ChosenInputPortTypeFullName.IsNotNullOrEmpty() ? InputPortBuilder.GetNew(InputPortBuilder.VisibleTypes[newIDEdialog.ChosenInputPortTypeIndex]) : null; withInputPortIndex = newIDEdialog.ChosenInputPortIndex; outputPort = newIDEdialog.ChosenOutputPortTypeFullName.IsNotNullOrEmpty() ? OutputPortBuilder.GetNew(OutputPortBuilder.VisibleTypes[newIDEdialog.ChosenOutputPortTypeIndex]) : null; withOutputPortIndex = newIDEdialog.ChosenOutputPortIndex; withConsole = newIDEdialog.ChosenWithConsole; } } if (newIDEdialogResult != DialogResult.OK) { return(false); } newIde = NewIDE(machine, codeEditor, inputPort, withInputPortIndex , outputPort, withOutputPortIndex, withConsole); return(true); }
public void TestEmpty() { MemoryStream xvaStream = new MemoryStream(); VirtualMachineBuilder vmb = new VirtualMachineBuilder(); vmb.AddDisk("Foo", new MemoryStream(), Ownership.Dispose); vmb.Build(xvaStream); Assert.NotEqual(0, xvaStream.Length); VirtualMachine vm = new VirtualMachine(xvaStream); List <Disk> disks = new List <Disk>(vm.Disks); Assert.Equal(1, disks.Count); Assert.Equal(0, disks[0].Capacity); }
static void Test_CreateVmExisting2(Host host) { //Get vm iso XenConnect conn = new XenConnect(host, testServerId, testip); string vmName = "IntrospectionTestBuntu"; int memory = 2000000; int vcpus = 1; VirtualMachineBuilder.DomainType domType = VirtualMachineBuilder.DomainType.TRANSIENT; VirtualMachineBuilder builder = new VirtualMachineBuilder(vmName, "Ubuntu14-04", memory, vcpus, domType); //builder.setHardDrive(20000, true); //set hard drive size to 20 GB (20k MB) builder.setHardDriveExisting(true, false, ""); string xml = builder.toXMLString(); conn.createVm(builder); //string xml = builder.toXMLString(); }
public static LibvirtMessageWrapper BuildMessage(LIBVIRT_MESSAGE_TYPE type, object Payload, string requestor, string requestorid) { LibvirtMessageWrapper wrapper = new LibvirtMessageWrapper(); switch (type) { case LIBVIRT_MESSAGE_TYPE.CREATE_VM: LibvirtCommand createVmMessage = new LibvirtCommand(); wrapper.Message = createVmMessage; wrapper.Command = MessageTypeToString(type); wrapper.Requestor = requestor; wrapper.RequestorId = requestorid; VirtualMachineBuilder builder = (VirtualMachineBuilder)Payload; wrapper.VirtualMachineBuilder = builder; break; } return(wrapper); }
private void btn_create_vm_Click(object sender, RoutedEventArgs e) { XenConnect conn = new XenConnect(_selectedHost, _settings.SystemIdentifier, _settings.SystemIp); string iso = (string)combobox_os_image.SelectedItem; string vmName = textbox_vm_name.Text; int memory = int.Parse(textbox_vm_memory.Text.Replace(",", "")); int vcpus = int.Parse(textbox_vm_vcpu.Text.Replace(",", "")); int diskMem = int.Parse(textbox_vm_hd.Text.Replace(",", "")); VirtualMachineBuilder builder = null; if (!(bool)checkbox_existing.IsChecked) { VirtualMachineBuilder.DomainType domType = VirtualMachineBuilder.DomainType.TRANSIENT; builder = new VirtualMachineBuilder(vmName, memory * 1000, vcpus, VirtualMachineBuilder.XEN_PATH_DEFAULT_ISO + iso + ".iso", domType); builder.setHardDrive(diskMem * 1000, true); //set hard drive size to n GB (nk MB) } else { List <VirtualDisk> disks = conn.getISOStorageList(); string filename = null; //hard coded for fluff foreach (VirtualDisk disk in disks) { if (disk.NameCanonical.Contains("Ubuntu14")) { filename = disk.Name; break; } } VirtualMachineBuilder.DomainType domType = VirtualMachineBuilder.DomainType.TRANSIENT; builder = new VirtualMachineBuilder(vmName, memory * 1000, vcpus, VirtualMachineBuilder.XEN_PATH_DEFAULT_ISO + filename, domType); builder.setHardDriveExisting(true, false, VirtualMachineBuilder.XEN_PATH_DEFAULT_DISK + ((string)combobox_os_image.SelectedItem) + ".img"); conn.createVm(builder); } XenError status = conn.createVm(builder); MessageBoxResult mbr; if (status.Type == XenError.XenErrorType.SUCCESS) { mbr = MessageBox.Show("Succesessfully created virtual machine " + vmName, "Create Virtual Machine", MessageBoxButton.OK, MessageBoxImage.Information); } else { mbr = MessageBox.Show(status.Message, "Create Virtual Machine", MessageBoxButton.OK, MessageBoxImage.Information); } if (mbr.CompareTo(MessageBoxResult.OK) == 0) { if (status.Type == XenError.XenErrorType.SUCCESS) { Close(); } } }