示例#1
0
        public HardDiskConfigDialog(VirtualHardDisk disk, bool capacitySensitive, Window parent)
            : base(Catalog.GetString ("Configure Hard Disk"),
                                                                                  parent, DialogFlags.NoSeparator,
                                                                                  Stock.Cancel, ResponseType.Cancel,
                                                                                  Stock.Ok, ResponseType.Ok)
        {
            this.disk = disk;

            IconThemeUtils.SetWindowIcon (this);

            Glade.XML xml = new Glade.XML ("vmx-manager.glade", "diskConfigContent");
            xml.Autoconnect (this);

            busTypeCombo.Changed += delegate {
                PopulateDeviceNumberCombo ();
            };

            VBox.Add (diskConfigContent);
            diskConfigContent.ShowAll ();

            diskSizeSpin.Sensitive = capacitySensitive;

            Response += delegate (object o, ResponseArgs args) {
                if (args.ResponseId == ResponseType.Ok) {
                    Save ();
                }

                this.Destroy ();
            };

            allocateDiskCheck.Sensitive = capacitySensitive;

            Load ();
        }
示例#2
0
        private void LoadDisks(DiskBusType busType)
        {
            for (ushort i = 0; i < 2; i++) {
                for (ushort j = 0; j < 6; j++) {
                    string basekey = String.Format ("{0}{1}:{2}.", busType == DiskBusType.Ide ? "ide" : "scsi",
                                                    i, j);

                    if (this[basekey + "present"] != null && this[basekey + "present"] == "TRUE") {
                        string diskFile = this[basekey + "fileName"];
                        if (diskFile != null && diskFile != "auto detect" && !Path.IsPathRooted (diskFile)) {
                            diskFile = Path.Combine (Path.GetDirectoryName (file), diskFile);
                        }

                        ScsiDeviceType scsiType = OperatingSystem.SuggestedScsiDeviceType;
                        if (this[basekey + "virtualDev"] != null) {
                            scsiType = Utility.ParseScsiDeviceType (this[basekey + "virtualDev"]);
                        }

                        string devtype = this[basekey + "deviceType"];
                        if (devtype == null || devtype == "disk") {
                            VirtualHardDisk disk = new VirtualHardDisk (diskFile,
                                                                        i, j, busType);
                            disk.ScsiDeviceType = scsiType;
                            hardDisks.Add (disk);
                        } else {
                            VirtualCdDrive drive = new VirtualCdDrive (diskFile, i, j, busType,
                                                                       Utility.ParseCdDeviceType (devtype));
                            drive.ScsiDeviceType = scsiType;
                            cds.Add (drive);
                        }
                    }
                }
            }
        }
示例#3
0
        public void RemoveHardDisk(VirtualHardDisk disk)
        {
            if (hardDisks.Contains (disk)) {
                hardDisks.Remove (disk);

                RemoveDiskValues (disk);

                VirtualHardDiskHandler handler = HardDiskRemoved;
                if (handler != null) {
                    handler (this, new VirtualHardDiskArgs (disk));
                }
            }
        }
示例#4
0
        public void AddHardDisk(VirtualHardDisk disk)
        {
            hardDisks.Add (disk);

            VirtualHardDiskHandler handler = HardDiskAdded;
            if (handler != null) {
                handler (this, new VirtualHardDiskArgs (disk));
            }
        }
示例#5
0
        private void OnAddHardDisk(object o, EventArgs args)
        {
            VirtualHardDisk disk = new VirtualHardDisk (0, 0, DiskBusType.Ide, (long) 6 * 1024 * 1024 * 1024);

            HardDiskConfigDialog dialog = new HardDiskConfigDialog (disk, true, this);
            dialog.Response += delegate (object b, ResponseArgs rargs) {
                if (rargs.ResponseId == ResponseType.Ok) {
                    machine.AddHardDisk (disk);
                }
            };

            dialog.Show ();
        }
        public VirtualMachine CreateDefaultMachine(string baseName)
        {
            for (int i = 0;; i++) {
                string name;

                if (i == 0) {
                    name = baseName;
                } else {
                    name = String.Format (Catalog.GetString ("{0} #{1}"), baseName, i);
                }

                if (GetMachine (name) == null && GetMachineByFileName (name) == null) {
                    VirtualMachine machine = CreateMachine (name);

                    // add one network interface
                     VirtualEthernet ethernet = new VirtualEthernet (Utility.GetDefaultNetworkType (), null,
                                                                     machine.OperatingSystem.SuggestedEthernetDeviceType);
                     machine.AddEthernetDevice (ethernet);

                    // add a default 6gb disk
                    VirtualHardDisk disk = new VirtualHardDisk (0, 0, DiskBusType.Ide, (long) 6 * 1024 * 1024 * 1024);
                    disk.HardDiskType = HardDiskType.SplitSparse;
                    machine.AddHardDisk (disk);

                    // add virtual cd devices for each physical one (up to two)
                    ushort numdevs = 0;
                    foreach (string dev in Utility.FindCdDrives ()) {
                        if (numdevs > 1)
                            break;

                        VirtualCdDrive drive = new VirtualCdDrive (dev, 1, numdevs++, DiskBusType.Ide,
                                                                   CdDeviceType.Raw);
                        machine.AddCdDrive (drive);
                    }

                    return machine;
                }
            }
        }
示例#7
0
 public VirtualHardDiskArgs(VirtualHardDisk disk)
 {
     this.disk = disk;
 }