Class: Fog::Network::AzureRM::Real

Inherits:
Object
  • Object
show all
Defined in:
lib/fog/azurerm/network.rb,
lib/fog/azurerm/requests/network/get_subnet.rb,
lib/fog/azurerm/requests/network/list_subnets.rb,
lib/fog/azurerm/requests/network/create_subnet.rb,
lib/fog/azurerm/requests/network/delete_subnet.rb,
lib/fog/azurerm/requests/network/list_public_ips.rb,
lib/fog/azurerm/requests/network/create_public_ip.rb,
lib/fog/azurerm/requests/network/delete_public_ip.rb,
lib/fog/azurerm/requests/network/add_security_rules.rb,
lib/fog/azurerm/requests/network/check_for_public_ip.rb,
lib/fog/azurerm/requests/network/get_virtual_network.rb,
lib/fog/azurerm/requests/network/list_load_balancers.rb,
lib/fog/azurerm/requests/network/create_load_balancer.rb,
lib/fog/azurerm/requests/network/delete_load_balancer.rb,
lib/fog/azurerm/requests/network/remove_security_rule.rb,
lib/fog/azurerm/requests/network/get_network_interface.rb,
lib/fog/azurerm/requests/network/list_virtual_networks.rb,
lib/fog/azurerm/requests/network/attach_resource_to_nic.rb,
lib/fog/azurerm/requests/network/delete_virtual_network.rb,
lib/fog/azurerm/requests/network/list_network_interfaces.rb,
lib/fog/azurerm/requests/network/delete_network_interface.rb,
lib/fog/azurerm/requests/network/detach_resource_from_nic.rb,
lib/fog/azurerm/requests/network/check_for_virtual_network.rb,
lib/fog/azurerm/requests/network/list_application_gateways.rb,
lib/fog/azurerm/requests/network/create_application_gateway.rb,
lib/fog/azurerm/requests/network/delete_application_gateway.rb,
lib/fog/azurerm/requests/network/get_network_security_group.rb,
lib/fog/azurerm/requests/network/get_traffic_manager_profile.rb,
lib/fog/azurerm/requests/network/attach_route_table_to_subnet.rb,
lib/fog/azurerm/requests/network/list_network_security_groups.rb,
lib/fog/azurerm/requests/network/delete_network_security_group.rb,
lib/fog/azurerm/requests/network/list_traffic_manager_profiles.rb,
lib/fog/azurerm/requests/network/add_subnets_in_virtual_network.rb,
lib/fog/azurerm/requests/network/create_traffic_manager_profile.rb,
lib/fog/azurerm/requests/network/delete_traffic_manager_profile.rb,
lib/fog/azurerm/requests/network/detach_route_table_from_subnet.rb,
lib/fog/azurerm/requests/network/create_traffic_manager_endpoint.rb,
lib/fog/azurerm/requests/network/delete_traffic_manager_endpoint.rb,
lib/fog/azurerm/requests/network/create_or_update_virtual_network.rb,
lib/fog/azurerm/requests/network/add_dns_servers_in_virtual_network.rb,
lib/fog/azurerm/requests/network/create_or_update_network_interface.rb,
lib/fog/azurerm/requests/network/remove_subnets_from_virtual_network.rb,
lib/fog/azurerm/requests/network/add_address_prefixes_in_virtual_network.rb,
lib/fog/azurerm/requests/network/attach_network_security_group_to_subnet.rb,
lib/fog/azurerm/requests/network/create_or_update_network_security_group.rb,
lib/fog/azurerm/requests/network/remove_dns_servers_from_virtual_network.rb,
lib/fog/azurerm/requests/network/detach_network_security_group_from_subnet.rb,
lib/fog/azurerm/requests/network/remove_address_prefixes_from_virtual_network.rb

Overview

Real class for Network Request

Instance Method Summary collapse

Constructor Details

#initialize(options) ⇒ Real

Returns a new instance of Real.



112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
# File 'lib/fog/azurerm/network.rb', line 112

def initialize(options)
  begin
    require 'azure_mgmt_network'
  rescue LoadError => e
    retry if require('rubygems')
    raise e.message
  end

  credentials = Fog::Credentials::AzureRM.get_credentials(options[:tenant_id], options[:client_id], options[:client_secret])
  @network_client = ::Azure::ARM::Network::NetworkManagementClient.new(credentials)
  @network_client.subscription_id = options[:subscription_id]
  @tenant_id = options[:tenant_id]
  @client_id = options[:client_id]
  @client_secret = options[:client_secret]
  @subscription_id = options[:subscription_id]
end

Instance Method Details

#add_address_prefixes_in_virtual_network(resource_group_name, virtual_network_name, address_prefixes) ⇒ Object



6
7
8
9
10
11
12
# File 'lib/fog/azurerm/requests/network/add_address_prefixes_in_virtual_network.rb', line 6

def add_address_prefixes_in_virtual_network(resource_group_name, virtual_network_name, address_prefixes)
  Fog::Logger.debug "Adding Address Prefixes: #{address_prefixes.join(', ')} in Virtual Network: #{virtual_network_name}"
  virtual_network = get_virtual_network_object_for_add_address_prefixes!(resource_group_name, virtual_network_name, address_prefixes)
  virtual_network = create_or_update_vnet(resource_group_name, virtual_network_name, virtual_network)
  Fog::Logger.debug "Address Prefixes: #{address_prefixes.join(', ')} added successfully."
  Azure::ARM::Network::Models::VirtualNetwork.serialize_object(virtual_network)
end

#add_dns_servers_in_virtual_network(resource_group_name, virtual_network_name, dns_servers) ⇒ Object



6
7
8
9
10
11
12
# File 'lib/fog/azurerm/requests/network/add_dns_servers_in_virtual_network.rb', line 6

def add_dns_servers_in_virtual_network(resource_group_name, virtual_network_name, dns_servers)
  Fog::Logger.debug "Adding DNS Servers: #{dns_servers.join(', ')} in Virtual Network: #{virtual_network_name}"
  virtual_network = get_virtual_network_object_for_add_dns!(resource_group_name, virtual_network_name, dns_servers)
  virtual_network = create_or_update_vnet(resource_group_name, virtual_network_name, virtual_network)
  Fog::Logger.debug "DNS Servers: #{dns_servers.join(', ')} added successfully."
  Azure::ARM::Network::Models::VirtualNetwork.serialize_object(virtual_network)
end

#add_security_rules(resource_group_name, security_group_name, security_rules) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/fog/azurerm/requests/network/add_security_rules.rb', line 6

def add_security_rules(resource_group_name, security_group_name, security_rules)
  Fog::Logger.debug "Updating security rules in Network Security Group #{security_group_name}."
  promise = @network_client.network_security_groups.get(resource_group_name, security_group_name)
  result = promise.value!
  nsg = result.body
  security_rules_objects = create_security_rule_objects(security_rules)
  security_rules_objects.each do |security_rule|
    nsg.properties.security_rules.push(security_rule)
  end

  begin
    promise = @network_client.network_security_groups.begin_create_or_update(resource_group_name, security_group_name, nsg)
    result = promise.value!
    Fog::Logger.debug "Security Rules updated in Network Security Group #{security_group_name} successfully!"
    Azure::ARM::Network::Models::NetworkSecurityGroup.serialize_object(result.body)
  rescue MsRestAzure::AzureOperationError => e
    msg = "Exception updating Security Rules in Network Security Group #{security_group_name} . #{e.body['error']['message']}"
    raise msg
  end
end

#add_subnets_in_virtual_network(resource_group_name, virtual_network_name, subnets) ⇒ Object



6
7
8
9
10
11
12
# File 'lib/fog/azurerm/requests/network/add_subnets_in_virtual_network.rb', line 6

def add_subnets_in_virtual_network(resource_group_name, virtual_network_name, subnets)
  Fog::Logger.debug "Adding Subnets: in Virtual Network: #{virtual_network_name}"
  virtual_network = get_virtual_network_object_for_subnets!(resource_group_name, virtual_network_name, subnets)
  virtual_network = create_or_update_vnet(resource_group_name, virtual_network_name, virtual_network)
  Fog::Logger.debug 'Subnets added successfully.'
  Azure::ARM::Network::Models::VirtualNetwork.serialize_object(virtual_network)
end

#attach_network_security_group_to_subnet(resource_group, subnet_name, virtual_network_name, address_prefix, route_table_id, network_security_group_id) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
# File 'lib/fog/azurerm/requests/network/attach_network_security_group_to_subnet.rb', line 6

def attach_network_security_group_to_subnet(resource_group, subnet_name, virtual_network_name, address_prefix, route_table_id, network_security_group_id)
  Fog::Logger.debug "Attaching Network Security Group with Subnet: #{subnet_name}."

  subnet = get_subnet_object_for_attach_network_security_group(address_prefix, network_security_group_id, route_table_id)
  begin
    promise = @network_client.subnets.create_or_update(resource_group, virtual_network_name, subnet_name, subnet)
    result = promise.value!
    Fog::Logger.debug 'Network Security Group attached successfully.'
    Azure::ARM::Network::Models::Subnet.serialize_object(result.body)
  rescue  MsRestAzure::AzureOperationError => e
    msg = "Exception Attaching Network Security Group with Subnet: #{subnet_name}. #{e.body['error']['message']}"
    raise msg
  end
end

#attach_resource_to_nic(resource_group_name, nic_name, resource_type, resource_id) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
# File 'lib/fog/azurerm/requests/network/attach_resource_to_nic.rb', line 6

def attach_resource_to_nic(resource_group_name, nic_name, resource_type, resource_id)
  Fog::Logger.debug "Updating #{resource_type} in Network Interface #{nic_name}."
  begin
    nic = get_network_interface_with_attached_resource(nic_name, resource_group_name, resource_id, resource_type)

    promise = @network_client.network_interfaces.create_or_update(resource_group_name, nic_name, nic)
    result = promise.value!
    Fog::Logger.debug "#{resource_type} updated in Network Interface #{nic_name} successfully!"
    Azure::ARM::Network::Models::NetworkInterface.serialize_object(result.body)
  rescue MsRestAzure::AzureOperationError => e
    msg = "Exception updating #{resource_type} in Network Interface #{nic_name} . #{e.body['error']['message']}"
    raise msg
  end
end

#attach_route_table_to_subnet(resource_group, subnet_name, virtual_network_name, address_prefix, network_security_group_id, route_table_id) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
# File 'lib/fog/azurerm/requests/network/attach_route_table_to_subnet.rb', line 6

def attach_route_table_to_subnet(resource_group, subnet_name, virtual_network_name, address_prefix, network_security_group_id, route_table_id)
  Fog::Logger.debug "Attaching Route Table with Subnet: #{subnet_name}."

  subnet = get_subnet_object_for_attach_route_table(address_prefix, network_security_group_id, route_table_id)
  begin
    promise = @network_client.subnets.create_or_update(resource_group, virtual_network_name, subnet_name, subnet)
    result = promise.value!
    Fog::Logger.debug 'Route Table attached successfully.'
    Azure::ARM::Network::Models::Subnet.serialize_object(result.body)
  rescue  MsRestAzure::AzureOperationError => e
    msg = "Exception Attaching Route Table with Subnet: #{subnet_name}. #{e.body['error']['message']}"
    raise msg
  end
end

#check_for_public_ip(resource_group, name) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
# File 'lib/fog/azurerm/requests/network/check_for_public_ip.rb', line 6

def check_for_public_ip(resource_group, name)
  begin
    promise = @network_client.public_ipaddresses.get(resource_group, name)
    promise.value!
    return true
  rescue MsRestAzure::AzureOperationError => e
    msg = "Exception checking name availability: #{e.body['error']['message']}"
    raise msg if e.body['error']['code'] == 'ResourceGroupNotFound'
    return false if e.body['error']['code'] == 'ResourceNotFound'
  end
end

#check_for_virtual_network(resource_group, name) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
# File 'lib/fog/azurerm/requests/network/check_for_virtual_network.rb', line 6

def check_for_virtual_network(resource_group, name)
  begin
    promise = @network_client.virtual_networks.get(resource_group, name)
    promise.value!
    return true
  rescue MsRestAzure::AzureOperationError => e
    msg = "Exception checking name availability: #{e.body['error']['message']}"
    raise msg if e.body['error']['code'] == 'ResourceGroupNotFound'
    return false if e.body['error']['code'] == 'ResourceNotFound'
  end
end

#create_application_gateway(name, location, resource_group, sku_name, sku_tier, sku_capacity, gateway_ip_configurations, ssl_certificates, frontend_ip_configurations, frontend_ports, probes, backend_address_pools, backend_http_settings_list, http_listeners, url_path_maps, request_routing_rules) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
# File 'lib/fog/azurerm/requests/network/create_application_gateway.rb', line 6

def create_application_gateway(name, location, resource_group, sku_name, sku_tier, sku_capacity, gateway_ip_configurations, ssl_certificates, frontend_ip_configurations, frontend_ports, probes, backend_address_pools, backend_http_settings_list, http_listeners, url_path_maps, request_routing_rules)
  Fog::Logger.debug "Creating Application Gateway: #{name}..."
  gateway = define_application_gateway(name, location, sku_name, sku_tier, sku_capacity, gateway_ip_configurations, ssl_certificates, frontend_ip_configurations, frontend_ports, probes, backend_address_pools, backend_http_settings_list, http_listeners, url_path_maps, request_routing_rules)
  begin
    promise = @network_client.application_gateways.create_or_update(resource_group, name, gateway)
    result = promise.value!
    Fog::Logger.debug "Application Gateway #{name} created successfully."
    Azure::ARM::Network::Models::ApplicationGateway.serialize_object(result.body)
  rescue MsRestAzure::AzureOperationError => e
    msg = "Exception creating Application Gateway #{name} in Resource Group: #{resource_group}. #{e.body['error']['message']}"
    raise msg
  end
end

#create_load_balancer(name, location, resource_group, frontend_ip_configurations, backend_address_pool_names, load_balancing_rules, probes, inbound_nat_rules, inbound_nat_pools) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
# File 'lib/fog/azurerm/requests/network/create_load_balancer.rb', line 6

def create_load_balancer(name, location, resource_group, frontend_ip_configurations, backend_address_pool_names, load_balancing_rules, probes, inbound_nat_rules, inbound_nat_pools)
  Fog::Logger.debug "Creating Load-Balancer: #{name}..."
  load_balancer = define_load_balancer(name, location, frontend_ip_configurations, backend_address_pool_names, load_balancing_rules, probes, inbound_nat_rules, inbound_nat_pools)
  begin
    promise = @network_client.load_balancers.create_or_update(resource_group, name, load_balancer)
    result = promise.value!
    Fog::Logger.debug "Load-Balancer #{name} created successfully."
    Azure::ARM::Network::Models::LoadBalancer.serialize_object(result.body)
  rescue MsRestAzure::AzureOperationError => e
    msg = "Exception creating Load-Balancer #{name} in Resource Group: #{resource_group}. #{e.body['error']['message']}"
    raise msg
  end
end

#create_or_update_network_interface(resource_group_name, name, location, subnet_id, public_ip_address_id, ip_config_name, private_ip_allocation_method, private_ip_address) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
19
# File 'lib/fog/azurerm/requests/network/create_or_update_network_interface.rb', line 7

def create_or_update_network_interface(resource_group_name, name, location, subnet_id, public_ip_address_id, ip_config_name, private_ip_allocation_method, private_ip_address)
  Fog::Logger.debug "Creating/Updating Network Interface Card: #{name}..."
  network_interface = get_network_interface_object(name, location, subnet_id, public_ip_address_id, ip_config_name, private_ip_allocation_method, private_ip_address)
  begin
    promise = @network_client.network_interfaces.create_or_update(resource_group_name, name, network_interface)
    result = promise.value!
    Fog::Logger.debug "Network Interface #{name} created/updated successfully."
    Azure::ARM::Network::Models::NetworkInterface.serialize_object(result.body)
  rescue MsRestAzure::AzureOperationError => e
    msg = "Exception creating/updating Network Interface #{name} in Resource Group: #{resource_group_name}. #{e.body['error']['message']}"
    raise msg
  end
end

#create_or_update_network_security_group(resource_group_name, security_group_name, location, security_rules) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/fog/azurerm/requests/network/create_or_update_network_security_group.rb', line 6

def create_or_update_network_security_group(resource_group_name, security_group_name, location, security_rules)
  Fog::Logger.debug "Creating/Updating Network Security Group #{security_group_name} in Resource Group #{resource_group_name}."
  properties = Azure::ARM::Network::Models::NetworkSecurityGroupPropertiesFormat.new
  properties.security_rules = create_security_rule_objects(security_rules)

  params = Azure::ARM::Network::Models::NetworkSecurityGroup.new
  params.location = location
  params.properties = properties
  begin
    promise = @network_client.network_security_groups.begin_create_or_update(resource_group_name, security_group_name, params)
    result = promise.value!
    Fog::Logger.debug "Network Security Group #{security_group_name} Created/Updated Successfully!"
    Azure::ARM::Network::Models::NetworkSecurityGroup.serialize_object(result.body)
  rescue MsRestAzure::AzureOperationError => e
    msg = "Exception creating/updating Network Security Group #{security_group_name} in Resource Group: #{resource_group_name}. #{e.body['error']['message']}"
    raise msg
  end
end

#create_or_update_virtual_network(resource_group_name, virtual_network_name, location, dns_servers, subnets, address_prefixes) ⇒ Object



6
7
8
9
10
# File 'lib/fog/azurerm/requests/network/create_or_update_virtual_network.rb', line 6

def create_or_update_virtual_network(resource_group_name, virtual_network_name, location, dns_servers, subnets, address_prefixes)
  virtual_network = define_vnet_object(location, address_prefixes, dns_servers, subnets)
  vnet = create_or_update_vnet(resource_group_name, virtual_network_name, virtual_network)
  Azure::ARM::Network::Models::VirtualNetwork.serialize_object(vnet)
end

#create_public_ip(resource_group, name, location, public_ip_allocation_method) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/fog/azurerm/requests/network/create_public_ip.rb', line 6

def create_public_ip(resource_group, name, location, public_ip_allocation_method)
  Fog::Logger.debug "Creating PublicIP #{name} in Resource Group #{resource_group}."
  properties = Azure::ARM::Network::Models::PublicIPAddressPropertiesFormat.new
  properties.public_ipallocation_method = public_ip_allocation_method
  public_ip = Azure::ARM::Network::Models::PublicIPAddress.new
  public_ip.name = name
  public_ip.location = location
  public_ip.properties = properties
  begin
    promise = @network_client.public_ipaddresses.create_or_update(resource_group, name, public_ip)
    result = promise.value!
    Fog::Logger.debug "PublicIP #{name} Created Successfully!"
    Azure::ARM::Network::Models::PublicIPAddress.serialize_object(result.body)
  rescue MsRestAzure::AzureOperationError => e
    msg = "Exception creating Public IP #{name} in Resource Group: #{resource_group}. #{e.body['error']['message']}"
    raise msg
  end
end

#create_subnet(resource_group, subnet_name, virtual_network_name, address_prefix, network_security_group_id, route_table_id) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
# File 'lib/fog/azurerm/requests/network/create_subnet.rb', line 6

def create_subnet(resource_group, subnet_name, virtual_network_name, address_prefix, network_security_group_id, route_table_id)
  Fog::Logger.debug "Creating Subnet: #{subnet_name}."

  subnet = get_subnet_object(address_prefix, network_security_group_id, route_table_id)
  begin
    promise = @network_client.subnets.create_or_update(resource_group, virtual_network_name, subnet_name, subnet)
    result = promise.value!
    Fog::Logger.debug "Subnet #{subnet_name} created successfully."
    Azure::ARM::Network::Models::Subnet.serialize_object(result.body)
  rescue  MsRestAzure::AzureOperationError => e
    msg = "Exception creating Subnet #{subnet_name} in Resource Group: #{resource_group}. #{e.body['error']['message']}"
    raise msg
  end
end

#create_traffic_manager_endpoint(resource_group, name, traffic_manager_profile_name, type, target_resource_id, target, weight, priority, endpoint_location, min_child_endpoints) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
# File 'lib/fog/azurerm/requests/network/create_traffic_manager_endpoint.rb', line 6

def create_traffic_manager_endpoint(resource_group, name, traffic_manager_profile_name, type,
                                    target_resource_id, target, weight, priority, endpoint_location,
                                    min_child_endpoints)
  Fog::Logger.debug "Creating Traffic Manager Endpoint: #{name}..."
  resource_url = "#{AZURE_RESOURCE}/subscriptions/#{@subscription_id}/resourceGroups/#{resource_group}/providers/Microsoft.Network/trafficManagerProfiles/#{traffic_manager_profile_name}/#{type}Endpoints/#{name}?api-version=2015-11-01"
  payload = serialize_endpoint_request(name, type, target_resource_id, target, weight, priority, endpoint_location,
                                       min_child_endpoints)
  begin
    token = Fog::Credentials::AzureRM.get_token(@tenant_id, @client_id, @client_secret)
    response = RestClient.put(
      resource_url,
      payload.to_json,
      accept: :json,
      content_type: :json,
      authorization: token
    )
    Fog::Logger.debug "Traffic Manager Endpoint: #{name} created successfully."
    JSON.parse(response)
  rescue => e
    Fog::Logger.warning "Exception creating Traffic Manager Endpoint: #{name} in resource group #{resource_group}"
    error_msg = JSON.parse(e.response)['message']
    msg = "Exception creating Traffic Manager Endpoint: #{name} in resource group #{resource_group}. #{error_msg}"
    raise msg
  end
end

#create_traffic_manager_profile(resource_group, name, traffic_routing_method, relative_name, ttl, protocol, port, path) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/fog/azurerm/requests/network/create_traffic_manager_profile.rb', line 6

def create_traffic_manager_profile(resource_group, name, traffic_routing_method, relative_name, ttl, protocol,
                                   port, path)
  Fog::Logger.debug "Creating Traffic Manager Profile: #{name}..."
  resource_url = "#{AZURE_RESOURCE}/subscriptions/#{@subscription_id}/resourceGroups/#{resource_group}/providers/Microsoft.Network/trafficManagerProfiles/#{name}?api-version=2015-04-28-preview"
  payload = serialize_profile_request(traffic_routing_method, relative_name, ttl, protocol, port, path)
  begin
    token = Fog::Credentials::AzureRM.get_token(@tenant_id, @client_id, @client_secret)
    response = RestClient.put(
      resource_url,
      payload.to_json,
      accept: :json,
      content_type: :json,
      authorization: token
    )
    Fog::Logger.debug "Traffic Manager Profile: #{name} created successfully."
    JSON.parse(response)
  rescue => e
    Fog::Logger.warning "Exception creating Traffic Manager Profile: #{name} in resource group #{resource_group}"
    error_msg = JSON.parse(e.response)['message']
    msg = "Exception creating Traffic Manager Profile: #{name} in resource group #{resource_group}. #{error_msg}"
    raise msg
  end
end

#delete_application_gateway(resource_group, name) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
# File 'lib/fog/azurerm/requests/network/delete_application_gateway.rb', line 6

def delete_application_gateway(resource_group, name)
  Fog::Logger.debug "Deleting Application_Gateway #{name} from Resource Group #{resource_group}."
  begin
    promise = @network_client.application_gateways.delete(resource_group, name)
    promise.value!
    Fog::Logger.debug "Application Gateway #{name} Deleted Successfully."
    true
  rescue  MsRestAzure::AzureOperationError => e
    msg = "Exception deleting Application_Gateway #{name} in Resource Group: #{resource_group}. #{e.body['error']['message']}"
    raise msg
  end
end

#delete_load_balancer(resource_group, name) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
# File 'lib/fog/azurerm/requests/network/delete_load_balancer.rb', line 6

def delete_load_balancer(resource_group, name)
  Fog::Logger.debug "Deleting Load_Balancer #{name} from Resource Group #{resource_group}."
  begin
    promise = @network_client.load_balancers.delete(resource_group, name)
    promise.value!
    Fog::Logger.debug "Load_Balancer #{name} Deleted Successfully."
    true
  rescue  MsRestAzure::AzureOperationError => e
    msg = "Exception deleting Load_Balancer #{name} in Resource Group: #{resource_group}. #{e.body['error']['message']}"
    raise msg
  end
end

#delete_network_interface(resource_group, name) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
# File 'lib/fog/azurerm/requests/network/delete_network_interface.rb', line 6

def delete_network_interface(resource_group, name)
  Fog::Logger.debug "Deleting NetworkInterface #{name} from Resource Group #{resource_group}."
  begin
    promise = @network_client.network_interfaces.delete(resource_group, name)
    promise.value!
    Fog::Logger.debug "NetworkInterface #{name} Deleted Successfully."
    true
  rescue  MsRestAzure::AzureOperationError => e
    msg = "Exception deleting Network Interface #{name} in Resource Group: #{resource_group}. #{e.body['error']['message']}"
    raise msg
  end
end

#delete_network_security_group(resource_group, name) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
# File 'lib/fog/azurerm/requests/network/delete_network_security_group.rb', line 6

def delete_network_security_group(resource_group, name)
  Fog::Logger.debug "Deleting Network Security Group: #{name}..."
  begin
    promise = @network_client.network_security_groups.delete(resource_group, name)
    promise.value!
    Fog::Logger.debug "Network Security Group #{name} deleted successfully."
    true
  rescue MsRestAzure::AzureOperationError => e
    msg = "Exception deleting Network Security Group #{name} in Resource Group: #{resource_group}. #{e.body['error']['message']}"
    raise msg
  end
end

#delete_public_ip(resource_group, name) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
# File 'lib/fog/azurerm/requests/network/delete_public_ip.rb', line 6

def delete_public_ip(resource_group, name)
  Fog::Logger.debug "Deleting PublicIP #{name} from Resource Group #{resource_group}."
  begin
    promise = @network_client.public_ipaddresses.delete(resource_group, name)
    promise.value!
    Fog::Logger.debug "PublicIP #{name} Deleted Successfully."
    true
  rescue  MsRestAzure::AzureOperationError => e
    msg = "Exception deleting Public IP #{name} in Resource Group: #{resource_group}. #{e.body['error']['message']}"
    raise msg
  end
end

#delete_subnet(resource_group, name, virtual_network_name) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
# File 'lib/fog/azurerm/requests/network/delete_subnet.rb', line 6

def delete_subnet(resource_group, name, virtual_network_name)
  Fog::Logger.debug "Deleting Subnet: #{name}..."
  begin
    promise = @network_client.subnets.delete(resource_group, virtual_network_name, name)
    promise.value!
    Fog::Logger.debug "Subnet #{name} deleted successfully."
    true
  rescue MsRestAzure::AzureOperationError => e
    msg = "Exception deleting Subnet #{name} in Resource Group: #{resource_group}. #{e.body['error']['message']}"
    raise msg
  end
end

#delete_traffic_manager_endpoint(resource_group, name, traffic_manager_profile_name, type) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/fog/azurerm/requests/network/delete_traffic_manager_endpoint.rb', line 6

def delete_traffic_manager_endpoint(resource_group, name, traffic_manager_profile_name, type)
  Fog::Logger.debug "Deleting Traffic Manager Endpoint: #{name}..."
  resource_url = "#{AZURE_RESOURCE}/subscriptions/#{@subscription_id}/resourceGroups/#{resource_group}/providers/Microsoft.Network/trafficManagerProfiles/#{traffic_manager_profile_name}/#{type}Endpoints/#{name}?api-version=2015-11-01"
  begin
    token = Fog::Credentials::AzureRM.get_token(@tenant_id, @client_id, @client_secret)
    RestClient.delete(
      resource_url,
      accept: :json,
      content_type: :json,
      authorization: token
    )
    Fog::Logger.debug "Traffic Manager Endpoint: #{name} deleted successfully."
    true
  rescue => e
    Fog::Logger.warning "Exception deleting Traffic Manager Endpoint: #{name} in resource group #{resource_group}"
    error_msg = JSON.parse(e.response)['message']
    msg = "Exception deleting Traffic Manager Endpoint: #{name} in resource group #{resource_group}. #{error_msg}"
    raise msg
  end
end

#delete_traffic_manager_profile(resource_group, name) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/fog/azurerm/requests/network/delete_traffic_manager_profile.rb', line 6

def delete_traffic_manager_profile(resource_group, name)
  Fog::Logger.debug "Deleting Traffic Manager Profile: #{name}..."
  resource_url = "#{AZURE_RESOURCE}/subscriptions/#{@subscription_id}/resourceGroups/#{resource_group}/providers/Microsoft.Network/trafficManagerProfiles/#{name}?api-version=2015-04-28-preview"
  begin
    token = Fog::Credentials::AzureRM.get_token(@tenant_id, @client_id, @client_secret)
    RestClient.delete(
      resource_url,
      accept: :json,
      content_type: :json,
      authorization: token
    )
    Fog::Logger.debug "Traffic Manager Profile: #{name} deleted successfully."
    true
  rescue => e
    Fog::Logger.warning "Exception deleting Traffic Manager Profile: #{name} in resource group #{resource_group}"
    error_msg = JSON.parse(e.response)['message']
    msg = "Exception deleting Traffic Manager Profile: #{name} in resource group #{resource_group}. #{error_msg}"
    raise msg
  end
end

#delete_virtual_network(resource_group, name) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
# File 'lib/fog/azurerm/requests/network/delete_virtual_network.rb', line 6

def delete_virtual_network(resource_group, name)
  Fog::Logger.debug "Deleting Virtual Network: #{name}..."
  begin
    promise = @network_client.virtual_networks.delete(resource_group, name)
    promise.value!
    Fog::Logger.debug "Virtual Network #{name} deleted successfully."
    true
  rescue MsRestAzure::AzureOperationError => e
    msg = "Exception deleting Virtual Network #{name} in Resource Group: #{resource_group}. #{e.body['error']['message']}"
    raise msg
  end
end

#detach_network_security_group_from_subnet(resource_group, subnet_name, virtual_network_name, address_prefix, route_table_id) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
# File 'lib/fog/azurerm/requests/network/detach_network_security_group_from_subnet.rb', line 6

def detach_network_security_group_from_subnet(resource_group, subnet_name, virtual_network_name, address_prefix, route_table_id)
  Fog::Logger.debug "Detaching Network Security Group from Subnet: #{subnet_name}."

  subnet = define_subnet_object_for_detach_network_security_group(address_prefix, route_table_id)
  begin
    promise = @network_client.subnets.create_or_update(resource_group, virtual_network_name, subnet_name, subnet)
    result = promise.value!
    Fog::Logger.debug 'Network Security Group detached successfully.'
    Azure::ARM::Network::Models::Subnet.serialize_object(result.body)
  rescue  MsRestAzure::AzureOperationError => e
    msg = "Exception detaching Network Security Group from Subnet: #{subnet_name}. #{e.body['error']['message']}"
    raise msg
  end
end

#detach_resource_from_nic(resource_group_name, nic_name, resource_type) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
# File 'lib/fog/azurerm/requests/network/detach_resource_from_nic.rb', line 6

def detach_resource_from_nic(resource_group_name, nic_name, resource_type)
  Fog::Logger.debug "Removing #{resource_type} from Network Interface #{nic_name}."
  begin
    nic = get_network_interface_with_detached_resource(nic_name, resource_group_name, resource_type)

    promise = @network_client.network_interfaces.create_or_update(resource_group_name, nic_name, nic)
    result = promise.value!
    Fog::Logger.debug "#{resource_type} deleted from Network Interface #{nic_name} successfully!"
    Azure::ARM::Network::Models::NetworkInterface.serialize_object(result.body)
  rescue MsRestAzure::AzureOperationError => e
    msg = "Exception removing #{resource_type} from Network Interface #{nic_name} . #{e.body['error']['message']}"
    raise msg
  end
end

#detach_route_table_from_subnet(resource_group, subnet_name, virtual_network_name, address_prefix, network_security_group_id) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
# File 'lib/fog/azurerm/requests/network/detach_route_table_from_subnet.rb', line 6

def detach_route_table_from_subnet(resource_group, subnet_name, virtual_network_name, address_prefix, network_security_group_id)
  Fog::Logger.debug "Detaching Route Table from Subnet: #{subnet_name}."

  subnet = define_subnet_object_for_detach_route_table(address_prefix, network_security_group_id)
  begin
    promise = @network_client.subnets.create_or_update(resource_group, virtual_network_name, subnet_name, subnet)
    result = promise.value!
    Fog::Logger.debug 'Route Table detached successfully.'
    Azure::ARM::Network::Models::Subnet.serialize_object(result.body)
  rescue  MsRestAzure::AzureOperationError => e
    msg = "Exception detaching Route Table from Subnet: #{subnet_name}. #{e.body['error']['message']}"
    raise msg
  end
end

#get_network_interface(resource_group_name, nic_name) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
# File 'lib/fog/azurerm/requests/network/get_network_interface.rb', line 6

def get_network_interface(resource_group_name, nic_name)
  Fog::Logger.debug "Getting Network Interface#{nic_name} from Resource Group #{resource_group_name}."
  begin
    promise = @network_client.network_interfaces.get(resource_group_name, nic_name)
    result = promise.value!
    Azure::ARM::Network::Models::NetworkInterface.serialize_object(result.body)
  rescue MsRestAzure::AzureOperationError => e
    msg = "Exception getting Network Interface #{nic_name} from Resource Group '#{resource_group_name}'. #{e.body['error']['message']}."
    raise msg
  end
end

#get_network_interface_with_attached_resource(nic_name, resource_group_name, resource_id, resource_type) ⇒ Object



21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/fog/azurerm/requests/network/attach_resource_to_nic.rb', line 21

def get_network_interface_with_attached_resource(nic_name, resource_group_name, resource_id, resource_type)
  promise = @network_client.network_interfaces.get(resource_group_name, nic_name)
  result = promise.value!
  nic = result.body
  case resource_type
  when SUBNET
    subnet = Azure::ARM::Network::Models::Subnet.new
    subnet.id = resource_id
    nic.properties.ip_configurations[0].properties.subnet = subnet
  when PUBLIC_IP
    public_ip_address = Azure::ARM::Network::Models::PublicIPAddress.new
    public_ip_address.id = resource_id
    nic.properties.ip_configurations[0].properties.public_ipaddress = public_ip_address
  when NETWORK_SECURITY_GROUP
    network_security_group = Azure::ARM::Network::Models::NetworkSecurityGroup.new
    network_security_group.id = resource_id
    nic.properties.network_security_group = network_security_group
  end
  nic
end

#get_network_interface_with_detached_resource(nic_name, resource_group_name, resource_type) ⇒ Object



21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/fog/azurerm/requests/network/detach_resource_from_nic.rb', line 21

def get_network_interface_with_detached_resource(nic_name, resource_group_name, resource_type)
  promise = @network_client.network_interfaces.get(resource_group_name, nic_name)
  result = promise.value!
  nic = result.body
  case resource_type
  when PUBLIC_IP
    nic.properties.ip_configurations[0].properties.public_ipaddress = nil unless nic.properties.ip_configurations.empty?
  when NETWORK_SECURITY_GROUP
    nic.properties.network_security_group = nil
  end
  nic
end

#get_network_security_group(resource_group_name, security_group_name) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
# File 'lib/fog/azurerm/requests/network/get_network_security_group.rb', line 6

def get_network_security_group(resource_group_name, security_group_name)
  Fog::Logger.debug "Getting Network Security Group #{security_group_name} from Resource Group #{resource_group_name}."
  begin
    promise = @network_client.network_security_groups.get(resource_group_name, security_group_name)
    result = promise.value!
    Azure::ARM::Network::Models::NetworkSecurityGroup.serialize_object(result.body)
  rescue MsRestAzure::AzureOperationError => e
    msg = "Exception getting Network Security Group #{security_group_name} from Resource Group '#{resource_group_name}'. #{e.body['error']['message']}."
    raise msg
  end
end

#get_subnet(resource_group, virtual_network_name, subnet_name) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
# File 'lib/fog/azurerm/requests/network/get_subnet.rb', line 6

def get_subnet(resource_group, virtual_network_name, subnet_name)
  Fog::Logger.debug "Getting Subnet: #{subnet_name}."
  begin
    promise = @network_client.subnets.get(resource_group, virtual_network_name, subnet_name)
    result = promise.value!
    Fog::Logger.debug "Subnet #{subnet_name} retrieved successfully."
    Azure::ARM::Network::Models::Subnet.serialize_object(result.body)
  rescue  MsRestAzure::AzureOperationError => e
    msg = "Exception getting Subnet #{subnet_name} in Resource Group: #{resource_group}. #{e.body['error']['message']}"
    raise msg
  end
end

#get_traffic_manager_profile(resource_group, traffic_manager_profile_name) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/fog/azurerm/requests/network/get_traffic_manager_profile.rb', line 6

def get_traffic_manager_profile(resource_group, traffic_manager_profile_name)
  Fog::Logger.debug "Getting Traffic Manager Profile: #{traffic_manager_profile_name} in Resource Group: #{resource_group}..."
  resource_url = "#{AZURE_RESOURCE}/subscriptions/#{@subscription_id}/resourceGroups/#{resource_group}/providers/Microsoft.Network/trafficManagerProfiles/#{traffic_manager_profile_name}?api-version=2015-04-28-preview"
  begin
    token = Fog::Credentials::AzureRM.get_token(@tenant_id, @client_id, @client_secret)
    response = RestClient.get(
      resource_url,
      accept: :json,
      content_type: :json,
      authorization: token
    )
    Fog::Logger.debug 'Traffic Manager Profile listed successfully.'
    JSON.parse(response)
  rescue => e
    Fog::Logger.warning "Exception getting Traffic Manager Profile: #{traffic_manager_profile_name} in resource group: #{resource_group}"
    error_msg = JSON.parse(e.response)['message']
    msg = "Exception getting Traffic Manager Profile: #{traffic_manager_profile_name} in resource group: #{resource_group}. #{error_msg}"
    raise msg
  end
end

#get_virtual_network(resource_group_name, virtual_network_name) ⇒ Object



6
7
8
9
# File 'lib/fog/azurerm/requests/network/get_virtual_network.rb', line 6

def get_virtual_network(resource_group_name, virtual_network_name)
  vnet = get_vnet(resource_group_name, virtual_network_name)
  Azure::ARM::Network::Models::VirtualNetwork.serialize_object(vnet)
end

#list_application_gateways(resource_group) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
# File 'lib/fog/azurerm/requests/network/list_application_gateways.rb', line 6

def list_application_gateways(resource_group)
  Fog::Logger.debug "Getting list of Application-Gateway from Resource Group #{resource_group}."
  begin
    promise = @network_client.application_gateways.list(resource_group)
    result = promise.value!
    Azure::ARM::Network::Models::ApplicationGatewayListResult.serialize_object(result.body)['value']
  rescue MsRestAzure::AzureOperationError => e
    msg = "Exception listing Application-Gateway from Resource Group '#{resource_group}'. #{e.body['error']['message']}."
    raise msg
  end
end

#list_load_balancers(resource_group) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
# File 'lib/fog/azurerm/requests/network/list_load_balancers.rb', line 6

def list_load_balancers(resource_group)
  Fog::Logger.debug "Getting list of Load-Balancers from Resource Group #{resource_group}."
  begin
    promise = @network_client.load_balancers.list(resource_group)
    result = promise.value!
    Azure::ARM::Network::Models::LoadBalancerListResult.serialize_object(result.body)['value']
  rescue MsRestAzure::AzureOperationError => e
    msg = "Exception listing Load-Balancers from Resource Group '#{resource_group}'. #{e.body['error']['message']}."
    raise msg
  end
end

#list_network_interfaces(resource_group) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
# File 'lib/fog/azurerm/requests/network/list_network_interfaces.rb', line 6

def list_network_interfaces(resource_group)
  Fog::Logger.debug "Getting list of NetworkInterfaces from Resource Group #{resource_group}."
  begin
    promise = @network_client.network_interfaces.list(resource_group)
    result = promise.value!
    Azure::ARM::Network::Models::NetworkInterfaceListResult.serialize_object(result.body)['value']
  rescue  MsRestAzure::AzureOperationError => e
    msg = "Exception listing Network Interfaces from Resource Group '#{resource_group}'. #{e.body['error']['message']}."
    raise msg
  end
end

#list_network_security_groups(resource_group) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
# File 'lib/fog/azurerm/requests/network/list_network_security_groups.rb', line 6

def list_network_security_groups(resource_group)
  Fog::Logger.debug "Getting list of Network Security Groups from Resource Group #{resource_group}."
  begin
    promise = @network_client.network_security_groups.list(resource_group)
    result = promise.value!
    Azure::ARM::Network::Models::NetworkSecurityGroupListResult.serialize_object(result.body)['value']
  rescue MsRestAzure::AzureOperationError => e
    msg = "Exception listing Network Security Groups from Resource Group '#{resource_group}'. #{e.body['error']['message']}."
    raise msg
  end
end

#list_public_ips(resource_group) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
# File 'lib/fog/azurerm/requests/network/list_public_ips.rb', line 6

def list_public_ips(resource_group)
  Fog::Logger.debug "Getting list of PublicIPs from Resource Group #{resource_group}."
  begin
    promise = @network_client.public_ipaddresses.list(resource_group)
    result = promise.value!
    Azure::ARM::Network::Models::PublicIPAddressListResult.serialize_object(result.body)['value']
  rescue  MsRestAzure::AzureOperationError => e
    msg = "Exception listing Public IPs from Resource Group '#{resource_group}'. #{e.body['error']['message']}."
    raise msg
  end
end

#list_subnets(resource_group, virtual_network_name) ⇒ Object



6
7
8
9
10
11
12
13
14
15
# File 'lib/fog/azurerm/requests/network/list_subnets.rb', line 6

def list_subnets(resource_group, virtual_network_name)
  begin
    promise = @network_client.subnets.list(resource_group, virtual_network_name)
    result = promise.value!
    Azure::ARM::Network::Models::SubnetListResult.serialize_object(result.body)['value']
  rescue MsRestAzure::AzureOperationError => e
    msg = "Exception listing Subnets from Resource Group '#{resource_group}' in Virtal Network #{virtual_network_name}. #{e.body['error']['message']}."
    raise msg
  end
end

#list_traffic_manager_profiles(resource_group) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/fog/azurerm/requests/network/list_traffic_manager_profiles.rb', line 6

def list_traffic_manager_profiles(resource_group)
  Fog::Logger.debug "Listing Traffic Manager Profiles in Resource Group: #{resource_group}..."
  resource_url = "#{AZURE_RESOURCE}/subscriptions/#{@subscription_id}/resourceGroups/#{resource_group}/providers/Microsoft.Network/trafficManagerProfiles?api-version=2015-04-28-preview"
  begin
    token = Fog::Credentials::AzureRM.get_token(@tenant_id, @client_id, @client_secret)
    response = RestClient.get(
      resource_url,
      accept: :json,
      content_type: :json,
      authorization: token
    )
    Fog::Logger.debug 'Traffic Manager Profiles listed successfully.'
    JSON.parse(response)['values']
  rescue => e
    Fog::Logger.warning "Exception listing Traffic Manager Profiles in resource group #{resource_group}"
    error_msg = JSON.parse(e.response)['message']
    msg = "Exception listing Traffic Manager Profiles in resource group #{resource_group}. #{error_msg}"
    raise msg
  end
end

#list_virtual_networks(resource_group) ⇒ Object



6
7
8
9
10
11
12
13
14
15
# File 'lib/fog/azurerm/requests/network/list_virtual_networks.rb', line 6

def list_virtual_networks(resource_group)
  begin
    response = @network_client.virtual_networks.list(resource_group)
    result = response.value!
    Azure::ARM::Network::Models::VirtualNetworkListResult.serialize_object(result.body)['value']
  rescue MsRestAzure::AzureOperationError => e
    msg = "Exception listing Virtual Networks. #{e.body['error']['message']}."
    raise msg
  end
end

#remove_address_prefixes_from_virtual_network(resource_group_name, virtual_network_name, address_prefixes) ⇒ Object



6
7
8
9
10
11
12
# File 'lib/fog/azurerm/requests/network/remove_address_prefixes_from_virtual_network.rb', line 6

def remove_address_prefixes_from_virtual_network(resource_group_name, virtual_network_name, address_prefixes)
  Fog::Logger.debug "Removing Address Prefixes: #{address_prefixes.join(', ')} from Virtual Network: #{virtual_network_name}"
  virtual_network = get_virtual_network_object_for_remove_address_prefixes!(resource_group_name, virtual_network_name, address_prefixes)
  virtual_network = create_or_update_vnet(resource_group_name, virtual_network_name, virtual_network)
  Fog::Logger.debug "Address Prefixes: #{address_prefixes.join(', ')} removed successfully."
  Azure::ARM::Network::Models::VirtualNetwork.serialize_object(virtual_network)
end

#remove_dns_servers_from_virtual_network(resource_group_name, virtual_network_name, dns_servers) ⇒ Object



6
7
8
9
10
11
12
# File 'lib/fog/azurerm/requests/network/remove_dns_servers_from_virtual_network.rb', line 6

def remove_dns_servers_from_virtual_network(resource_group_name, virtual_network_name, dns_servers)
  Fog::Logger.debug "Removing DNS Servers: #{dns_servers.join(', ')} from Virtual Network: #{virtual_network_name}"
  virtual_network = get_virtual_network_object_for_remove_dns_servers!(resource_group_name, virtual_network_name, dns_servers)
  virtual_network = create_or_update_vnet(resource_group_name, virtual_network_name, virtual_network)
  Fog::Logger.debug "DNS Servers: #{dns_servers.join(', ')} removed successfully."
  Azure::ARM::Network::Models::VirtualNetwork.serialize_object(virtual_network)
end

#remove_security_rule(resource_group_name, security_group_name, security_rule_name) ⇒ Object



6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/fog/azurerm/requests/network/remove_security_rule.rb', line 6

def remove_security_rule(resource_group_name, security_group_name, security_rule_name)
  Fog::Logger.debug "Deleting security rule #{security_rule_name} from Network Security Group #{security_group_name}."
  promise = @network_client.network_security_groups.get(resource_group_name, security_group_name)
  result = promise.value!
  nsg = result.body
  updated_security_rule_list = remove_security_rule_from_list(nsg.properties.security_rules, security_rule_name)
  nsg.properties.security_rules = updated_security_rule_list
  begin
    promise = @network_client.network_security_groups.begin_create_or_update(resource_group_name, security_group_name, nsg)
    result = promise.value!
    Fog::Logger.debug "Security Rule #{security_rule_name} deleted from Network Security Group #{security_group_name} successfully!"
    Azure::ARM::Network::Models::NetworkSecurityGroup.serialize_object(result.body)
  rescue MsRestAzure::AzureOperationError => e
    msg = "Exception in deleting Security Rule #{security_rule_name} from Network Security Group #{security_group_name} . #{e.body['error']['message']}"
    raise msg
  end
end

#remove_security_rule_from_list(security_rule_list, rule_name) ⇒ Object



24
25
26
27
28
# File 'lib/fog/azurerm/requests/network/remove_security_rule.rb', line 24

def remove_security_rule_from_list(security_rule_list, rule_name)
  unless security_rule_list.nil?
    return security_rule_list.select { |sr| sr.name != rule_name }
  end
end

#remove_subnets_from_virtual_network(resource_group_name, virtual_network_name, subnet_names) ⇒ Object



6
7
8
9
10
11
12
# File 'lib/fog/azurerm/requests/network/remove_subnets_from_virtual_network.rb', line 6

def remove_subnets_from_virtual_network(resource_group_name, virtual_network_name, subnet_names)
  Fog::Logger.debug "Removing Subnets:#{subnet_names.join(', ')} from Virtual Network: #{virtual_network_name}"
  virtual_network = get_virtual_network_object_for_remove_subnets!(resource_group_name, virtual_network_name, subnet_names)
  result = create_or_update_vnet(resource_group_name, virtual_network_name, virtual_network)
  Fog::Logger.debug "Subnets:#{subnet_names.join(', ')} removed successfully."
  Azure::ARM::Network::Models::VirtualNetwork.serialize_object(result)
end