72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
|
# File 'lib/azure/virtual_network_management/serialization.rb', line 72
def self.virtual_network_to_xml(vnet_name,
affinity_group,
address_spaces,
options = {})
options[:dns] ||= {}
options[:subnet] ||= {}
options[:subnet].each do |subnet|
IPAddr.validate_ip_and_prefix(subnet[:ip_address], subnet[:cidr])
end
address_spaces = address_spaces.compact.uniq.reject(&:empty?)
address_spaces.each do |address_space|
IPAddr.validate_address_space(address_space)
end
vnet_service = Azure::VirtualNetworkManagementService.new
vnets = vnet_service.list_virtual_networks
builder = Nokogiri::XML::Builder.new do |xml|
xml.NetworkConfiguration(
'xmlns' => 'http://schemas.microsoft.com/ServiceHosting'\
'/2011/07/NetworkConfiguration') do
xml.VirtualNetworkConfiguration do
xml.Dns do
xml.DnsServers do
dns = vnets.map(&:dns_servers)
dns.flatten! unless dns.empty?
dns_server_to_xml(xml, dns, options[:dns])
end
end
xml.VirtualNetworkSites do
vnets.each do |vnet|
if vnet.name != vnet_name
others = {
subnet: vnet.subnets, dns: vnet.dns_servers
}
virtual_network_site(xml,
vnet.name,
vnet.affinity_group,
vnet.address_space,
others)
end
end
virtual_network_site(xml,
vnet_name,
affinity_group,
address_spaces,
options)
end
end
end
end
builder.doc.to_xml
end
|