class Fog::Network::AzureRM::VirtualNetwork

This class is giving implementation of create/save and delete/destroy for virtual network.

Public Class Methods

parse(vnet) click to toggle source
# File lib/fog/azurerm/models/network/virtual_network.rb, line 15
def self.parse(vnet)
  hash = {}
  hash['id'] = vnet.id
  hash['name'] = vnet.name
  hash['resource_group'] = get_resource_group_from_id(vnet.id)
  hash['location'] = vnet.location
  hash['dns_servers'] = vnet.dhcp_options.dns_servers unless vnet.dhcp_options.nil?
  hash['address_prefixes'] = vnet.address_space.address_prefixes unless vnet.address_space.address_prefixes.nil?

  subnets = []
  vnet.subnets.each do |subnet|
    subnet_object = Fog::Network::AzureRM::Subnet.new
    subnets.push(subnet_object.merge_attributes(Fog::Network::AzureRM::Subnet.parse(subnet)))
  end
  hash['subnets'] = subnets
  hash
end

Public Instance Methods

add_address_prefixes(address_prefixes_list) click to toggle source
# File lib/fog/azurerm/models/network/virtual_network.rb, line 53
def add_address_prefixes(address_prefixes_list)
  virtual_network = service.add_address_prefixes_in_virtual_network(resource_group, name, address_prefixes_list)
  merge_attributes(Fog::Network::AzureRM::VirtualNetwork.parse(virtual_network))
end
add_dns_servers(dns_servers_list) click to toggle source
# File lib/fog/azurerm/models/network/virtual_network.rb, line 43
def add_dns_servers(dns_servers_list)
  virtual_network = service.add_dns_servers_in_virtual_network(resource_group, name, dns_servers_list)
  merge_attributes(Fog::Network::AzureRM::VirtualNetwork.parse(virtual_network))
end
add_subnets(subnets_list) click to toggle source
# File lib/fog/azurerm/models/network/virtual_network.rb, line 63
def add_subnets(subnets_list)
  validate_subnets!(subnets_list)
  virtual_network = service.add_subnets_in_virtual_network(resource_group, name, subnets_list)
  merge_attributes(Fog::Network::AzureRM::VirtualNetwork.parse(virtual_network))
end
destroy() click to toggle source
# File lib/fog/azurerm/models/network/virtual_network.rb, line 82
def destroy
  service.delete_virtual_network(resource_group, name)
end
remove_address_prefixes(address_prefixes_list) click to toggle source
# File lib/fog/azurerm/models/network/virtual_network.rb, line 58
def remove_address_prefixes(address_prefixes_list)
  virtual_network = service.remove_address_prefixes_from_virtual_network(resource_group, name, address_prefixes_list)
  merge_attributes(Fog::Network::AzureRM::VirtualNetwork.parse(virtual_network))
end
remove_dns_servers(dns_servers_list) click to toggle source
# File lib/fog/azurerm/models/network/virtual_network.rb, line 48
def remove_dns_servers(dns_servers_list)
  virtual_network = service.remove_dns_servers_from_virtual_network(resource_group, name, dns_servers_list)
  merge_attributes(Fog::Network::AzureRM::VirtualNetwork.parse(virtual_network))
end
remove_subnets(subnet_names_list) click to toggle source
# File lib/fog/azurerm/models/network/virtual_network.rb, line 69
def remove_subnets(subnet_names_list)
  virtual_network = service.remove_subnets_from_virtual_network(resource_group, name, subnet_names_list)
  merge_attributes(Fog::Network::AzureRM::VirtualNetwork.parse(virtual_network))
end
save() click to toggle source
# File lib/fog/azurerm/models/network/virtual_network.rb, line 33
def save
  requires :name
  requires :location
  requires :resource_group
  validate_subnets!(subnets) unless subnets.nil?

  virtual_network = service.create_or_update_virtual_network(resource_group, name, location, dns_servers, subnets, address_prefixes)
  merge_attributes(Fog::Network::AzureRM::VirtualNetwork.parse(virtual_network))
end
update(vnet_hash) click to toggle source
# File lib/fog/azurerm/models/network/virtual_network.rb, line 74
def update(vnet_hash)
  raise('Provided hash can not be empty.') if vnet_hash.empty? || vnet_hash.nil?
  validate_update_attributes!(vnet_hash)
  merge_attributes(vnet_hash)
  virtual_network = service.create_or_update_virtual_network(resource_group, name, location, dns_servers, subnets, address_prefixes)
  merge_attributes(Fog::Network::AzureRM::VirtualNetwork.parse(virtual_network))
end

Private Instance Methods

validate_subnets!(subnets) click to toggle source
# File lib/fog/azurerm/models/network/virtual_network.rb, line 95
def validate_subnets!(subnets)
  raise ':subnets must be an Array' unless subnets.is_a?(Array)
  raise ':subnets must not be an empty Array' if subnets.empty?

  subnets.each do |subnet|
    raise ':subnets must be an Array of Hashes' unless subnet.is_a?(Hash)
    validate_params([:name, :address_prefix], subnet)
  end
end
validate_update_attributes!(vnet_hash) click to toggle source
# File lib/fog/azurerm/models/network/virtual_network.rb, line 88
def validate_update_attributes!(vnet_hash)
  forbidden_attributes = [:id, :name, :location, :resource_group]
  invalid_attributes = forbidden_attributes & vnet_hash.keys
  raise "#{invalid_attributes.join(', ')} cannot be changed." if invalid_attributes.any?
  validate_subnets!(vnet_hash[:subnets]) if vnet_hash.key?(:subnets)
end