public static IEnumerable <INIC> GetRelated(IComputerSystem host, IComputerSystem vm, IVirtualSystemSettingData vssd, ILogger logger) { foreach (ICommonEthernetPortSettingData adapterSettingData in CommonEthernetPortSettingData.GetRelated(vssd)) { yield return((INIC) new NIC(host, vm, adapterSettingData, logger)); } }
public Host(IComputerSystem host, ILogger logger) { Invariant.ArgumentNotNull((object)host, "host IComputerSystem object"); Invariant.ArgumentNotNull((object)((IWMICommon)host).Object, "Host ComputerSystem instance"); this._Host = host; this._Logger = logger; }
protected NIC(IComputerSystem host, IComputerSystem vm, ICommonEthernetPortSettingData adapterSettingData, ILogger logger) { this._Host = host; this._Vm = vm; this._AdapterSettingData = adapterSettingData; this._Logger = logger; }
public static IEmulatedEthernetPortSettingData GetDefaultLegacyAdapter(IComputerSystem host) { IResourcePool resource = ResourcePool.Query(host, "ResourceSubType = 'Microsoft:Hyper-V:Emulated Ethernet Port' and Primordial = True").FirstOrDefault <IResourcePool>(); Invariant.ArgumentNotNull((object)resource, "Legacy Adapter not found"); using (resource) return(EmulatedEthernetPortSettingData.GetDefaultFromResourcePool(resource)); }
public void DestroySystem(IComputerSystem target) { using (ManagementBaseObject methodParameters = this._Instance.GetMethodParameters(nameof(DestroySystem))) { methodParameters["AffectedSystem"] = (object)((IWMICommon)target).Object; this._Instance.InvokeAndWait(nameof(DestroySystem), methodParameters).TryDispose(); } }
public static IResourceAllocationSettingData GetDefaultEmulatedIDEController(IComputerSystem host) { IResourcePool resource = ResourcePool.Query(host, "ResourceSubType = 'Microsoft:Hyper-V:Emulated IDE Controller' and Primordial = True").FirstOrDefault <IResourcePool>(); Invariant.ArgumentNotNull((object)resource, "Emulated IDE Controller"); using (resource) return(ResourceAllocationSettingData.GetDefaultFromResourcePool(resource)); }
public static IResourceAllocationSettingData GetDefaultSyntheticDVDDrive(IComputerSystem host) { IResourcePool resource = ResourcePool.Query(host, "ResourceSubType = 'Microsoft:Hyper-V:Synthetic DVD Drive' and Primordial = True").FirstOrDefault <IResourcePool>(); Invariant.ArgumentNotNull((object)resource, "Synthetic DVD Drive not found"); using (resource) return(ResourceAllocationSettingData.GetDefaultFromResourcePool(resource)); }
public static IMemorySettingData CreateMemorySettingData(IComputerSystem host) { ManagementScope scope = ((IWMICommon)host).Scope; using (ManagementClass managementClass = new ManagementClass("Msvm_MemorySettingData")) { managementClass.Scope = scope; return((IMemorySettingData) new MemorySettingData(managementClass.CreateInstance())); } }
public static IImageManagementService GetImageManagementService(IComputerSystem host) { ManagementObject instance = ((IWMICommon)host).Scope.QueryFirst("Select * from Msvm_ImageManagementService Where SystemName='{0}'", (object)host.ElementName); if (instance == null) { throw new HyperVException(string.Format("Unable to get the image service for: {0}", (object)host.ElementName)); } return((IImageManagementService) new ImageManagementService(instance)); }
public static ulong GetMaxConsumableResource(IComputerSystem host) { using (IResourcePool resourcePool = ResourcePool.Query(host, "ResourceType = 4").FirstOrDefault <IResourcePool>()) { if (resourcePool == null) { throw new HyperVException("Unable to find the default settings for the Memory resource"); } return(resourcePool.MaxConsumableResource); } }
public IVirtualSystemSettingData CreateSnapshot(IComputerSystem affectedSystem, string snapshotSettings, ushort snapshotType) { using (ManagementBaseObject methodParameters = this._Instance.GetMethodParameters(nameof(CreateSnapshot))) { methodParameters["AffectedSystem"] = (object)((IWMICommon)affectedSystem).Object; methodParameters["SnapshotSettings"] = (object)snapshotSettings; methodParameters["SnapshotType"] = (object)snapshotType; using (ManagementBaseObject managementBaseObject = this._Instance.InvokeAndWait(nameof(CreateSnapshot), methodParameters)) return(VirtualSystemSettingData.CreateFromObject(new ManagementObject((string)managementBaseObject["ResultingSnapshot"]))); } }
public static MountedStorageImage GetMountedStorageImage(IComputerSystem host, string path) { foreach (MountedStorageImage mountedStorageImage in MountedStorageImage.GetAllMountedStorageImages(host)) { if (string.Equals(mountedStorageImage.Name, path, StringComparison.OrdinalIgnoreCase)) { return(mountedStorageImage); } mountedStorageImage.Dispose(); } throw new HyperVException("MountedStorageImage not found for " + path); }
public static INIC Create(IComputerSystem host, IComputerSystem vm, VirtualNicType nicType, string nicGuid, ILogger logger) { ICommonEthernetPortSettingData ethernetPortSettingData; switch (nicType) { case VirtualNicType.Default: case VirtualNicType.Legacy: ethernetPortSettingData = (ICommonEthernetPortSettingData)EmulatedEthernetPortSettingData.GetDefaultLegacyAdapter(host); ethernetPortSettingData.ElementName = "Legacy Network Adapter"; break; case VirtualNicType.Synthetic: ethernetPortSettingData = (ICommonEthernetPortSettingData)SyntheticEthernetPortSettingData.GetDefaultSyntheticAdapter(host); ((ISyntheticEthernetPortSettingData)ethernetPortSettingData).VirtualSystemIdentifiers = new string[1] { nicGuid }; ethernetPortSettingData.ElementName = "Synthetic Network Adapter"; break; default: throw new HyperVException("I don't know about the nic type " + (object)nicType); } ethernetPortSettingData.StaticMacAddress = false; using (IVirtualSystemManagementService managmentService = VirtualSystemManagementService.GetVirtualSystemManagmentService(host)) { using (IVirtualSystemSettingData systemSettingData = vm.GetVirtualSystemSettingData()) { IResourceAllocationSettingData adapter = managmentService.AddResourceSettings(systemSettingData, new string[1] { ((IWMICommon)ethernetPortSettingData).Object.GetText(TextFormat.WmiDtd20) }).FirstOrDefault <IResourceAllocationSettingData>(); try { ICommonEthernetPortSettingData adapterSettingData = CommonEthernetPortSettingData.GetRelated(systemSettingData).Where <ICommonEthernetPortSettingData>((Func <ICommonEthernetPortSettingData, bool>)(cepsd => adapter.InstanceID == cepsd.InstanceID)).FirstOrDefault <ICommonEthernetPortSettingData>(); if (adapterSettingData == null) { throw new HyperVException("Couldn't find the network adapter we just created"); } return((INIC) new NIC(host, vm, adapterSettingData, logger)); } finally { if (adapter != null) { adapter.Dispose(); } } } } }
public static IVirtualSystemSettingData CreateVirtualSystemSettingData(IComputerSystem host) { ManagementObject instance = new ManagementClass(((IWMICommon)host).Scope, new ManagementPath("Msvm_VirtualSystemSettingData"), (ObjectGetOptions)null).CreateInstance(); instance.SetPropertyValue("BootOrder", (object)new ushort[4] { (ushort)2, (ushort)1, (ushort)0, (ushort)3 }); return((IVirtualSystemSettingData) new VirtualSystemSettingData(instance)); }
public static IMemorySettingData GetRelated(IComputerSystem vm) { using (IVirtualSystemSettingData systemSettingData = vm.GetVirtualSystemSettingData()) { using (ManagementObjectCollection related = systemSettingData.Object.GetRelated("Msvm_MemorySettingData")) { using (ManagementObjectCollection.ManagementObjectEnumerator enumerator = related.GetEnumerator()) { if (enumerator.MoveNext()) { return((IMemorySettingData) new MemorySettingData((ManagementObject)enumerator.Current)); } } } } throw new HyperVException("No related Msvm_MemorySettingData objects found"); }
public static IEnumerable <IVirtualEthernetSwitch> Query(IComputerSystem host, string condition, params object[] args) { ManagementObjectCollection virtualEthernetSwitches = ((IWMICommon)host).Scope.Query("Select * From Msvm_VirtualEthernetSwitch Where " + condition, args); try { foreach (ManagementObject instance in virtualEthernetSwitches) { yield return((IVirtualEthernetSwitch) new VirtualEthernetSwitch(instance)); } } finally { if (virtualEthernetSwitches != null) { virtualEthernetSwitches.Dispose(); } } virtualEthernetSwitches = (ManagementObjectCollection)null; }
public static IEnumerable <IShutdownComponent> GetRelated(IComputerSystem vm) { ManagementObjectCollection shutdownComponents = ((IWMICommon)vm).Object.GetRelated("Msvm_ShutdownComponent"); try { foreach (ManagementObject instance in shutdownComponents) { yield return((IShutdownComponent) new ShutdownComponent(instance)); } } finally { if (shutdownComponents != null) { shutdownComponents.Dispose(); } } shutdownComponents = (ManagementObjectCollection)null; }
public static IEnumerable <INIC> GetRelated(IComputerSystem host, IComputerSystem vm, ILogger logger) { IVirtualSystemSettingData vssd = vm.GetVirtualSystemSettingData(); try { foreach (ICommonEthernetPortSettingData adapterSettingData in CommonEthernetPortSettingData.GetRelated(vssd)) { yield return((INIC) new NIC(host, vm, adapterSettingData, logger)); } } finally { if (vssd != null) { vssd.Dispose(); } } vssd = (IVirtualSystemSettingData)null; }
public static IEnumerable <IProcessor> GetRelated(IComputerSystem computerSystem) { ManagementObjectCollection relatedProcessors = ((IWMICommon)computerSystem).Object.GetRelated("Msvm_Processor"); try { foreach (ManagementObject instance in relatedProcessors) { yield return((IProcessor) new Processor(instance)); } } finally { if (relatedProcessors != null) { relatedProcessors.Dispose(); } } relatedProcessors = (ManagementObjectCollection)null; }
public static IEnumerable <IVirtualSystemSettingData> GetRelated(IComputerSystem vm) { ManagementObjectCollection vssds = ((IWMICommon)vm).Object.GetRelated("Msvm_VirtualSystemSettingData"); try { foreach (ManagementObject instance in vssds) { yield return((IVirtualSystemSettingData) new VirtualSystemSettingData(instance)); } } finally { if (vssds != null) { vssds.Dispose(); } } vssds = (ManagementObjectCollection)null; }
public static IEnumerable <IKvpExchangeComponent> GetRelated(IComputerSystem vm) { ManagementObjectCollection kvpExchangeComponents = ((IWMICommon)vm).Object.GetRelated("Msvm_KvpExchangeComponent"); try { foreach (ManagementObject instance in kvpExchangeComponents) { yield return((IKvpExchangeComponent) new KvpExchangeComponent(instance)); } } finally { if (kvpExchangeComponents != null) { kvpExchangeComponents.Dispose(); } } kvpExchangeComponents = (ManagementObjectCollection)null; }
public static IEnumerable <IResourcePool> Query(IComputerSystem host, string condition) { ManagementObjectCollection resourcePools = ((IWMICommon)host).Scope.Query("Select * From Msvm_ResourcePool Where " + condition); try { foreach (ManagementObject instance in resourcePools) { yield return((IResourcePool) new ResourcePool(instance)); } } finally { if (resourcePools != null) { resourcePools.Dispose(); } } resourcePools = (ManagementObjectCollection)null; }
public static IEnumerable <IMemory> GetRelated(IComputerSystem computerSystem) { ManagementObjectCollection relatedMemorys = ((IWMICommon)computerSystem).Object.GetRelated("Msvm_Memory"); try { foreach (ManagementObject instance in relatedMemorys) { yield return((IMemory) new Memory(instance)); } } finally { if (relatedMemorys != null) { relatedMemorys.Dispose(); } } relatedMemorys = (ManagementObjectCollection)null; }
public static IEnumerable <IDiskDrive> Query(IComputerSystem host) { Invariant.ArgumentNotNull((object)host, nameof(host)); ManagementObjectCollection moc = new ManagementScope(string.Format("\\\\{0}\\root\\cimv2", (object)((IWMICommon)host).Scope.Path.Server)).Query("Select * from Win32_DiskDrive"); try { foreach (ManagementObject instance in moc) { yield return((IDiskDrive) new DiskDrive(instance)); } } finally { if (moc != null) { moc.Dispose(); } } moc = (ManagementObjectCollection)null; }
public static IEnumerable <MountedStorageImage> GetAllMountedStorageImages(IComputerSystem host) { ManagementScope scope = ((IWMICommon)host).Scope; ManagementClass managementClass = new ManagementClass("Msvm_MountedStorageImage"); managementClass.Scope = scope; ManagementObjectCollection instances = managementClass.GetInstances(); try { foreach (ManagementObject instance in instances) { yield return(new MountedStorageImage(instance)); } } finally { if (instances != null) { instances.Dispose(); } } instances = (ManagementObjectCollection)null; }
public static IVirtualSystemSnapshotService GetVirtualSystemSnapshotService(IComputerSystem host) { return(VirtualSystemSnapshotService.GetVirtualSystemSnapshotService(((IWMICommon)host).Scope)); }
public static IEthernetPortAllocationSettingData CreateVirtualSystemSettingData(IComputerSystem host) { return((IEthernetPortAllocationSettingData) new EthernetPortAllocationSettingData(new ManagementClass(((IWMICommon)host).Scope, new ManagementPath("Msvm_EthernetPortAllocationSettingData"), (ObjectGetOptions)null).CreateInstance())); }
public static IEthernetPortAllocationSettingData GetDefaultEthernetPortAllocationSettingData(IComputerSystem host) { IResourcePool resourcePool = ResourcePool.Query(host, "ResourceType = 33 and Primordial = True").FirstOrDefault <IResourcePool>(); if (resourcePool == null) { throw new HyperVException("Unable to find the default settings for the resource"); } ManagementObject managementObject = (ManagementObject)null; using (ManagementObjectCollection related = ((IWMICommon)resourcePool).Object.GetRelated("Msvm_AllocationCapabilities", "Msvm_ElementCapabilities", (string)null, (string)null, (string)null, (string)null, false, (EnumerationOptions)null)) { using (ManagementObject firstElement = related.GetFirstElement()) { foreach (ManagementObject relationship in firstElement.GetRelationships("Msvm_SettingsDefineCapabilities")) { if ((int)(ushort)relationship["ValueRole"] == 0) { managementObject = relationship; break; } relationship.Dispose(); } } } if (managementObject == null) { throw new HyperVException("Unable to find the default settings for the resource"); } string path = (string)managementObject["PartComponent"]; managementObject.Dispose(); ManagementObject instance = new ManagementObject(path); instance.Scope = ((IWMICommon)resourcePool).Scope; instance.Get(); return((IEthernetPortAllocationSettingData) new EthernetPortAllocationSettingData(instance)); }
public static IVirtualHardDiskState CreateVirtualHardDiskState(IComputerSystem host) { return(VirtualHardDiskState.CreateVirtualHardDiskState(((IWMICommon)host).Scope)); }
public void Dispose() { this._Host.TryDispose(); this._Host = (IComputerSystem)null; }