internal void GetVirtualNetworkConfiguration() { if (_virtualNetworkManagementClient != null) { _networkConfig = _virtualNetworkManagementClient.Networks.GetConfiguration(); Console.Write(_networkConfig.Configuration); } }
internal async Task GetVirtualNetworkConfigurationAsync() { if (_virtualNetworkManagementClient != null) { _networkConfig = await _virtualNetworkManagementClient.Networks.GetConfigurationAsync(); Console.Write(_networkConfig.Configuration); } }
internal async Task AddVirtualNetworkSiteAsync() { if (_virtualNetworkManagementClient != null && _managementClient != null) { try { // Get the existing netwirking configuration if (_networkConfig == null) { _networkConfig = await _virtualNetworkManagementClient.Networks.GetConfigurationAsync(); } // create affinity group await CreateAffinityGroupAsync(); // use the new affinity group for the virtual network string newVirtualNetworkElement = string.Format(_parameters.VirtualNetworkSite, _parameters.AffinityGroupName); // add the new virtual network element to the existing network configuration under VirtualNetworkSites string newNetworkConfig = AddXmlElement(_networkConfig.Configuration, "VirtualNetworkSites", newVirtualNetworkElement); await _virtualNetworkManagementClient.Networks.SetConfigurationAsync( new NetworkSetConfigurationParameters() { Configuration = newNetworkConfig }); } catch (Exception e) { Console.WriteLine("\n Error: \n {0}", e.ToString()); } } }
/// <summary> /// Exports Vnetconfig data from Source Subscription. Serializes the exported configurations into NetworkConfiguration class /// </summary> /// <param name="configuration">The network configuration for subscription</param> /// <param name="affinityGroupNames">List of affinity group</param> /// <returns>Network configurations </returns> private NetworkConfiguration ExportVNetConfiguration(NetworkGetConfigurationResponse configuration, List<string> affinityGroupNames) { string methodName = System.Reflection.MethodBase.GetCurrentMethod().Name; Logger.Info(methodName, ProgressResources.ExportVNetConfigurationStarted, ResourceType.VirtualNetwork.ToString()); try { if (configuration == null) { return null; } var reader = new StringReader(configuration.Configuration); var serializer = new XmlSerializer(typeof(NetworkConfiguration)); NetworkConfiguration netConfiguration = (NetworkConfiguration)serializer.Deserialize(reader); ////Check condition for any virtual network is available or not ////Issue Work item:3865 if (netConfiguration.VirtualNetworkConfiguration.VirtualNetworkSites == null) { return null; } if (netConfiguration.VirtualNetworkConfiguration != null && netConfiguration.VirtualNetworkConfiguration.VirtualNetworkSites != null) { // Filter the virtaul networks - Find the networks for which we have considered affinity groups var requiredVirtualNetworkSites = (netConfiguration.VirtualNetworkConfiguration.VirtualNetworkSites. Where(vn => affinityGroupNames.Contains(vn.AffinityGroup) || string.Compare(vn.Location, exportParameters.SourceDCName, StringComparison.CurrentCultureIgnoreCase) == 0)).ToArray(); List<string> dnsNames = new List<string>(); List<string> localNetNames = new List<string>(); foreach (var vns in requiredVirtualNetworkSites) { if (vns.DnsServersRef != null) { dnsNames.AddRange(vns.DnsServersRef.Select(dns => dns.name).ToList()); } if (vns.Gateway != null && vns.Gateway.ConnectionsToLocalNetwork != null && vns.Gateway.ConnectionsToLocalNetwork.LocalNetworkSiteRef != null) { localNetNames.Add(vns.Gateway.ConnectionsToLocalNetwork.LocalNetworkSiteRef.name); } } if (netConfiguration.VirtualNetworkConfiguration.Dns != null && netConfiguration.VirtualNetworkConfiguration.Dns.DnsServers != null) { ////Remove DnsServers which are not related to required virtual networks netConfiguration.VirtualNetworkConfiguration.Dns.DnsServers = netConfiguration.VirtualNetworkConfiguration.Dns.DnsServers.Where(dns => dnsNames.Distinct().Contains(dns.name)).ToArray(); } if (netConfiguration.VirtualNetworkConfiguration.LocalNetworkSites != null) { ////Remove LocalNetworks which are not related to required virtual networks netConfiguration.VirtualNetworkConfiguration.LocalNetworkSites = netConfiguration.VirtualNetworkConfiguration.LocalNetworkSites.Where(lns => localNetNames.Distinct().Contains(lns.name)).ToArray(); } ////Set VirtualNetworkSites netConfiguration.VirtualNetworkConfiguration.VirtualNetworkSites = requiredVirtualNetworkSites; Logger.Info(methodName, ProgressResources.ExportVNetConfigurationCompleted, ResourceType.VirtualNetwork.ToString()); } return netConfiguration; } catch (Exception ex) { Logger.Error(methodName, ex, ResourceType.VirtualNetwork.ToString()); throw; } }