class Chef::Provider::AzureVirtualNetwork

Public Instance Methods

create_or_update_virtual_network() click to toggle source
# File lib/chef/provider/azure_virtual_network.rb, line 55
def create_or_update_virtual_network
  virtual_network = Azure::ARM::Network::Models::VirtualNetwork.new

  virtual_network.tags = new_resource.tags
  virtual_network.location = new_resource.location

  virtual_network.properties = create_virtual_network_properties(
    new_resource.address_prefixes, new_resource.subnets, new_resource.dns_servers)

  action_handler.report_progress 'Creating or Updating Virtual Network...'

  try_azure_operation('creating or updating network interface') do
    network_management_client.virtual_networks.create_or_update(new_resource.resource_group, new_resource.name, virtual_network)
  end
end
create_subnet(subnet_name, subnet_address) click to toggle source
# File lib/chef/provider/azure_virtual_network.rb, line 90
def create_subnet(subnet_name, subnet_address)
  subnet = Azure::ARM::Network::Models::Subnet.new
  subnet.name = subnet_name
  subnet.properties = Azure::ARM::Network::Models::SubnetPropertiesFormat.new
  subnet.properties.address_prefix = subnet_address

  subnet
end
create_virtual_network_properties(address_prefixes, subnets, dns_servers) click to toggle source
# File lib/chef/provider/azure_virtual_network.rb, line 71
def create_virtual_network_properties(address_prefixes, subnets, dns_servers)
  props = Azure::ARM::Network::Models::VirtualNetworkPropertiesFormat.new

  props.address_space = Azure::ARM::Network::Models::AddressSpace.new
  props.address_space.address_prefixes = address_prefixes

  if dns_servers
    props.dhcp_options = Azure::ARM::Network::Models::DhcpOptions.new
    props.dhcp_options.dns_servers = dns_servers
  end

  props.subnets = []
  subnets.each do |subnet|
    props.subnets.push(create_subnet(subnet[:name], subnet[:address_prefix]))
  end

  props
end
destroy_virtual_network() click to toggle source
# File lib/chef/provider/azure_virtual_network.rb, line 48
def destroy_virtual_network
  action_handler.report_progress 'Destroying Virtual Network...'
  try_azure_operation('destroying virtual network') do
    network_management_client.virtual_networks.delete(new_resource.resource_group, new_resource.name)
  end
end
does_virtual_network_exist() click to toggle source
# File lib/chef/provider/azure_virtual_network.rb, line 37
def does_virtual_network_exist
  virtual_network_list = try_azure_operation('listing virtual networks') do
    network_management_client.virtual_networks.list(new_resource.resource_group)
  end

  virtual_network_list.value.each do |virtual_network|
    return true if virtual_network.name == new_resource.name
  end
  false
end
whyrun_supported?() click to toggle source
# File lib/chef/provider/azure_virtual_network.rb, line 8
def whyrun_supported?
  true
end