protected override bool AllowSriovNetwork(XenAPI.Network network, string sysId) { var vhs = OVF.FindVirtualHardwareSectionByAffinity(SelectedOvfEnvelope, sysId, "xen"); var data = vhs.VirtualSystemOtherConfigurationData; foreach (var s in data) { if (s.Name == "recommendations") { try { XmlDocument xdRecommendations = new XmlDocument(); xdRecommendations.LoadXml(s.Value.Value); XmlNode xn = xdRecommendations.SelectSingleNode(@"restrictions/restriction[@field='allow-network-sriov']"); if (xn == null || xn.Attributes == null) { return(false); } return(Convert.ToInt32(xn.Attributes["value"].Value) != 0); } catch { return(false); } } } return(false); }
private List <Xen_ConfigurationSettingData_Type> FindVgpuSettings(EnvelopeType envelopeType) { var list = new List <Xen_ConfigurationSettingData_Type>(); foreach (VirtualSystem_Type vsType in ((VirtualSystemCollection_Type)envelopeType.Item).Content) { VirtualHardwareSection_Type vhs = OVF.FindVirtualHardwareSectionByAffinity(envelopeType, vsType.id, "xen"); var data = vhs.VirtualSystemOtherConfigurationData; if (data != null) { list.AddRange(vhs.VirtualSystemOtherConfigurationData.Where(s => s.Name == "vgpu")); } } return(list); }
public override void PageLoaded(PageLoadedDirection direction) { base.PageLoaded(direction); if (direction == PageLoadedDirection.Forward) { ShowWarning(null); vgpuSettings.Clear(); hardwarePlatformSettings.Clear(); vendorDeviceSettings.Clear(); if (SelectedOvfEnvelope != null) { foreach (var vsType in ((VirtualSystemCollection_Type)SelectedOvfEnvelope.Item).Content) { var vhs = OVF.FindVirtualHardwareSectionByAffinity(SelectedOvfEnvelope, vsType.id, "xen"); var data = vhs.VirtualSystemOtherConfigurationData; if (data == null) { continue; } foreach (var s in data) { if (s.Name == "vgpu") { vgpuSettings.Add(s); } else if (s.Name == "hardware_platform_version") { hardwarePlatformSettings.Add(s); } else if (s.Name == "VM_has_vendor_device") { vendorDeviceSettings.Add(s); } } } } } PopulateComboBox(); }