/// <summary>
        /// Creates an IDE CD-ROM as either a master or a slave device with the
        ///  specified backing type
        /// </summary>
        /// <param name="backingType">backing type for CD-ROM</param>
        /// <param name="isMaster">true, if CD-ROM should be created as a
        ///  master device, false otherwise </param>
        private void CreateIdeCdromAsSpecificDevice(
            CdromTypes.BackingType backingType, bool isMaster)
        {
            CdromTypes.CreateSpec cdromCreateSpec;
            String cdromId = null;

            cdromCreateSpec = new CdromTypes.CreateSpec();
            CdromTypes.BackingSpec backingSpec =
                new CdromTypes.BackingSpec();
            backingSpec.SetType(backingType);
            cdromCreateSpec.SetBacking(backingSpec);
            cdromCreateSpec.SetType(CdromTypes.HostBusAdapterType.IDE);

            IdeAddressSpec ideAddressSpec = new IdeAddressSpec();

            ideAddressSpec.SetMaster(isMaster);
            cdromCreateSpec.SetIde(ideAddressSpec);

            cdromId = this.cdromService.Create(this.vmId, cdromCreateSpec);
            Console.WriteLine(cdromCreateSpec);
            CdromTypes.Info cdromInfo =
                this.cdromService.Get(this.vmId, cdromId);
            Console.WriteLine("VM ID=" + this.vmId);
            Console.WriteLine("CD-ROM ID=" + cdromId);
            Console.WriteLine(cdromInfo);
            this.createdCdroms.Add(cdromId);
        }
        /// <summary>
        /// Creates a SATA CD-ROM on a specific bus/unit number with the
        ///  specified backing type.
        /// </summary>
        /// <param name="backingType">backing type for CD-ROM</param>
        /// <param name="bus">bus number</param>
        /// <param name="unit">unit number</param>
        private void CreateSataCdromAtSpecificLocation(
            CdromTypes.BackingType backingType, long?bus, long?unit)
        {
            CdromTypes.CreateSpec cdromCreateSpec;
            String cdromId = null;

            if (unit == null)
            {
                cdromCreateSpec = new CdromTypes.CreateSpec();
                CdromTypes.BackingSpec backingSpec =
                    new CdromTypes.BackingSpec();
                backingSpec.SetType(backingType);
                cdromCreateSpec.SetBacking(backingSpec);
                cdromCreateSpec.SetType(CdromTypes.HostBusAdapterType.SATA);
                SataAddressSpec sataAddressSpec = new SataAddressSpec();
                sataAddressSpec.SetBus(0L);
                cdromCreateSpec.SetSata(sataAddressSpec);

                cdromId = this.cdromService.Create(this.vmId, cdromCreateSpec);
                Console.WriteLine(cdromCreateSpec);
                CdromTypes.Info cdromInfo = this.cdromService.Get(this.vmId,
                                                                  cdromId);
                Console.WriteLine("VM ID=" + this.vmId);
                Console.WriteLine("CD-ROM ID=" + cdromId);
                Console.WriteLine(cdromInfo);
            }
            else
            {
                cdromCreateSpec = new CdromTypes.CreateSpec();
                CdromTypes.BackingSpec backingSpec =
                    new CdromTypes.BackingSpec();
                backingSpec.SetType(backingType);
                cdromCreateSpec.SetBacking(backingSpec);
                cdromCreateSpec.SetType(CdromTypes.HostBusAdapterType.SATA);
                SataAddressSpec sataAddressSpec = new SataAddressSpec();
                sataAddressSpec.SetBus(0L);
                sataAddressSpec.SetUnit(10L);
                cdromCreateSpec.SetSata(sataAddressSpec);

                cdromId = this.cdromService.Create(this.vmId, cdromCreateSpec);
                Console.WriteLine(cdromCreateSpec);
                CdromTypes.Info cdromInfo = this.cdromService.Get(this.vmId,
                                                                  cdromId);
                Console.WriteLine("VM ID=" + this.vmId);
                Console.WriteLine("CD-ROM ID=" + cdromId);
                Console.WriteLine(cdromInfo);
            }
            this.createdCdroms.Add(cdromId);
        }
        /// <summary>
        /// Creates a CD-ROM device for the specified host bus adapter type
        ///  and backing type
        /// </summary>
        /// <param name="hostBusAdapterType">host bus adapter type for CD-ROM
        /// </param>
        /// <param name="backingType">backing type for the CD-ROM</param>
        private void CreateCdromForAdapterType(
            CdromTypes.HostBusAdapterType hostBusAdapterType,
            CdromTypes.BackingType backingType)
        {
            CdromTypes.CreateSpec cdromCreateSpec =
                new CdromTypes.CreateSpec();

            CdromTypes.BackingSpec backingSpec =
                new CdromTypes.BackingSpec();
            backingSpec.SetType(backingType);
            cdromCreateSpec.SetBacking(backingSpec);
            cdromCreateSpec.SetType(hostBusAdapterType);
            String cdromId =
                this.cdromService.Create(this.vmId, cdromCreateSpec);

            Console.WriteLine(cdromCreateSpec);
            this.createdCdroms.Add(cdromId);
            CdromTypes.Info cdromInfo =
                this.cdromService.Get(this.vmId, cdromId);
            Console.WriteLine("VM ID=" + this.vmId);
            Console.WriteLine("CD-ROM ID=" + cdromId);
            Console.WriteLine(cdromInfo);
        }
        /// <summary>
        /// Creates a CD-ROM device with the specified backing type
        /// </summary>
        /// <param name="backingType">backing type for the CD-ROM device
        /// </param>
        private void CreateCdrom(CdromTypes.BackingType backingType)
        {
            CdromTypes.CreateSpec cdromCreateSpec =
                new CdromTypes.CreateSpec();
            CdromTypes.BackingSpec backingSpec = new CdromTypes.BackingSpec();
            backingSpec.SetType(backingType);
            cdromCreateSpec.SetBacking(backingSpec);

            if (backingType.Equals(CdromTypes.BackingType.ISO_FILE))
            {
                cdromCreateSpec.GetBacking().SetIsoFile(IsoDatastorePath);
            }

            String cdromId =
                this.cdromService.Create(this.vmId, cdromCreateSpec);

            Console.WriteLine(cdromCreateSpec);
            this.createdCdroms.Add(cdromId);
            CdromTypes.Info cdromInfo =
                this.cdromService.Get(this.vmId, cdromId);
            Console.WriteLine("VM ID=" + this.vmId);
            Console.WriteLine("CD-ROM ID=" + cdromId);
            Console.WriteLine(cdromInfo);
        }