fog-azure-rm 0.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/CONTRIBUTING.md +27 -0
- data/CONTRIBUTORS.md +4 -0
- data/LICENSE.md +20 -0
- data/README.md +82 -0
- data/lib/fog/azurerm.rb +40 -0
- data/lib/fog/azurerm/compute.rb +61 -0
- data/lib/fog/azurerm/config.rb +1 -0
- data/lib/fog/azurerm/core.rb +12 -0
- data/lib/fog/azurerm/credentials.rb +37 -0
- data/lib/fog/azurerm/dns.rb +48 -0
- data/lib/fog/azurerm/models/compute/availability_set.rb +31 -0
- data/lib/fog/azurerm/models/compute/availability_sets.rb +36 -0
- data/lib/fog/azurerm/models/compute/server.rb +94 -0
- data/lib/fog/azurerm/models/compute/servers.rb +32 -0
- data/lib/fog/azurerm/models/dns/record_set.rb +28 -0
- data/lib/fog/azurerm/models/dns/record_sets.rb +44 -0
- data/lib/fog/azurerm/models/dns/zone.rb +21 -0
- data/lib/fog/azurerm/models/dns/zones.rb +30 -0
- data/lib/fog/azurerm/models/network/network_interface.rb +34 -0
- data/lib/fog/azurerm/models/network/network_interfaces.rb +35 -0
- data/lib/fog/azurerm/models/network/public_ip.rb +34 -0
- data/lib/fog/azurerm/models/network/public_ips.rb +46 -0
- data/lib/fog/azurerm/models/network/subnet.rb +34 -0
- data/lib/fog/azurerm/models/network/subnets.rb +37 -0
- data/lib/fog/azurerm/models/network/virtual_network.rb +30 -0
- data/lib/fog/azurerm/models/network/virtual_networks.rb +42 -0
- data/lib/fog/azurerm/models/resources/resource_group.rb +21 -0
- data/lib/fog/azurerm/models/resources/resource_groups.rb +28 -0
- data/lib/fog/azurerm/models/storage/storage_account.rb +37 -0
- data/lib/fog/azurerm/models/storage/storage_accounts.rb +45 -0
- data/lib/fog/azurerm/network.rb +67 -0
- data/lib/fog/azurerm/requests/compute/create_availability_set.rb +45 -0
- data/lib/fog/azurerm/requests/compute/create_virtual_machine.rb +100 -0
- data/lib/fog/azurerm/requests/compute/deallocate_virtual_machine.rb +26 -0
- data/lib/fog/azurerm/requests/compute/delete_availability_set.rb +26 -0
- data/lib/fog/azurerm/requests/compute/delete_virtual_machine.rb +26 -0
- data/lib/fog/azurerm/requests/compute/generalize_virtual_machine.rb +26 -0
- data/lib/fog/azurerm/requests/compute/get_virtual_machine.rb +24 -0
- data/lib/fog/azurerm/requests/compute/list_availability_sets.rb +24 -0
- data/lib/fog/azurerm/requests/compute/list_available_sizes_for_virtual_machine.rb +24 -0
- data/lib/fog/azurerm/requests/compute/list_virtual_machines.rb +64 -0
- data/lib/fog/azurerm/requests/compute/power_off_virtual_machine.rb +26 -0
- data/lib/fog/azurerm/requests/compute/redeploy_virtual_machine.rb +26 -0
- data/lib/fog/azurerm/requests/compute/restart_virtual_machine.rb +26 -0
- data/lib/fog/azurerm/requests/compute/start_virtual_machine.rb +26 -0
- data/lib/fog/azurerm/requests/dns/check_for_zone.rb +39 -0
- data/lib/fog/azurerm/requests/dns/create_record_set.rb +61 -0
- data/lib/fog/azurerm/requests/dns/create_zone.rb +47 -0
- data/lib/fog/azurerm/requests/dns/delete_record_set.rb +38 -0
- data/lib/fog/azurerm/requests/dns/delete_zone.rb +38 -0
- data/lib/fog/azurerm/requests/dns/get_records_from_record_set.rb +57 -0
- data/lib/fog/azurerm/requests/dns/list_record_sets.rb +44 -0
- data/lib/fog/azurerm/requests/dns/list_zones.rb +52 -0
- data/lib/fog/azurerm/requests/network/check_for_public_ip.rb +27 -0
- data/lib/fog/azurerm/requests/network/check_for_virtual_network.rb +27 -0
- data/lib/fog/azurerm/requests/network/create_network_interface.rb +52 -0
- data/lib/fog/azurerm/requests/network/create_public_ip.rb +28 -0
- data/lib/fog/azurerm/requests/network/create_subnet.rb +30 -0
- data/lib/fog/azurerm/requests/network/create_virtual_network.rb +80 -0
- data/lib/fog/azurerm/requests/network/delete_network_interface.rb +27 -0
- data/lib/fog/azurerm/requests/network/delete_public_ip.rb +27 -0
- data/lib/fog/azurerm/requests/network/delete_subnet.rb +27 -0
- data/lib/fog/azurerm/requests/network/delete_virtual_network.rb +27 -0
- data/lib/fog/azurerm/requests/network/list_network_interfaces.rb +32 -0
- data/lib/fog/azurerm/requests/network/list_public_ips.rb +32 -0
- data/lib/fog/azurerm/requests/network/list_subnets.rb +30 -0
- data/lib/fog/azurerm/requests/network/list_virtual_networks.rb +29 -0
- data/lib/fog/azurerm/requests/resources/create_resource_group.rb +27 -0
- data/lib/fog/azurerm/requests/resources/delete_resource_group.rb +25 -0
- data/lib/fog/azurerm/requests/resources/list_resource_groups.rb +28 -0
- data/lib/fog/azurerm/requests/storage/check_storage_account_name_availability.rb +33 -0
- data/lib/fog/azurerm/requests/storage/create_storage_account.rb +33 -0
- data/lib/fog/azurerm/requests/storage/delete_storage_account.rb +27 -0
- data/lib/fog/azurerm/requests/storage/list_storage_account_for_rg.rb +25 -0
- data/lib/fog/azurerm/requests/storage/list_storage_accounts.rb +28 -0
- data/lib/fog/azurerm/resources.rb +48 -0
- data/lib/fog/azurerm/storage.rb +51 -0
- data/lib/fog/azurerm/version.rb +5 -0
- metadata +278 -0
@@ -0,0 +1,57 @@
|
|
1
|
+
module Fog
|
2
|
+
module DNS
|
3
|
+
class AzureRM
|
4
|
+
class Real
|
5
|
+
def get_records_from_record_set(record_set_name, dns_resource_group, zone_name, record_type)
|
6
|
+
resource_url = "#{AZURE_RESOURCE}/subscriptions/#{@subscription_id}/resourceGroups/#{dns_resource_group}/providers/Microsoft.Network/dnsZones/#{zone_name}/#{record_type}/#{record_set_name}?api-version=2015-05-04-preview"
|
7
|
+
Fog::Logger.debug "Getting all records from RecordSet #{record_set_name} of type '#{record_type}' in zone #{zone_name}"
|
8
|
+
|
9
|
+
existing_records = Array.new
|
10
|
+
begin
|
11
|
+
token = Fog::Credentials::AzureRM.get_token(@tenant_id, @client_id, @client_secret)
|
12
|
+
dns_response = RestClient.get(
|
13
|
+
resource_url,
|
14
|
+
accept: 'application/json',
|
15
|
+
content_type: 'application/json',
|
16
|
+
authorization: token
|
17
|
+
)
|
18
|
+
rescue Exception => e
|
19
|
+
if e.http_code == 404
|
20
|
+
Fog::Logger.warning 'AzureDns::RecordSet - 404 code, record set does not exist. returning empty array'
|
21
|
+
return existing_records
|
22
|
+
else
|
23
|
+
Fog::Logger.warning "Exception trying to get existing #{record_type} records for the record set: #{record_set_name}"
|
24
|
+
msg = "AzureDns::RecordSet - Exception is: #{e.message}"
|
25
|
+
raise msg
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
begin
|
30
|
+
dns_hash = JSON.parse(dns_response)
|
31
|
+
case record_type
|
32
|
+
when 'A'
|
33
|
+
dns_hash['properties']['ARecords'].each do |record|
|
34
|
+
Fog::Logger.debug "AzureDns:RecordSet - A record is: #{record}"
|
35
|
+
existing_records.push(record['ipv4Address'])
|
36
|
+
end
|
37
|
+
when 'CNAME'
|
38
|
+
Fog::Logger.debug "AzureDns:RecordSet - CNAME record is: #{dns_hash['properties']['CNAMERecord']['cname']}"
|
39
|
+
existing_records.push(dns_hash['properties']['CNAMERecord']['cname'])
|
40
|
+
end
|
41
|
+
return existing_records
|
42
|
+
rescue Exception => e
|
43
|
+
Fog::Logger.warning "Exception trying to parse response: #{dns_response}"
|
44
|
+
msg = "AzureDns::RecordSet - Exception is: #{e.message}"
|
45
|
+
raise msg
|
46
|
+
end
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
class Mock
|
51
|
+
def get_records_from_record_set(record_set_name, dns_resource_group, zone_name, record_type)
|
52
|
+
|
53
|
+
end
|
54
|
+
end
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
@@ -0,0 +1,44 @@
|
|
1
|
+
module Fog
|
2
|
+
module DNS
|
3
|
+
class AzureRM
|
4
|
+
class Real
|
5
|
+
def list_record_sets(dns_resource_group, zone_name)
|
6
|
+
resource_url = "#{AZURE_RESOURCE}/subscriptions/#{@subscription_id}/resourceGroups/#{dns_resource_group}/providers/Microsoft.Network/dnsZones/#{zone_name}/recordsets?api-version=2015-05-04-preview"
|
7
|
+
begin
|
8
|
+
token = Fog::Credentials::AzureRM.get_token(@tenant_id, @client_id, @client_secret)
|
9
|
+
dns_response = RestClient.get(
|
10
|
+
resource_url,
|
11
|
+
accept: 'application/json',
|
12
|
+
content_type: 'application/json',
|
13
|
+
authorization: token)
|
14
|
+
response_hash = JSON.parse(dns_response)
|
15
|
+
response_hash['value']
|
16
|
+
rescue RestClient::Exception => e
|
17
|
+
body = JSON.parse(e.http_body)
|
18
|
+
if body.key?('error')
|
19
|
+
body = body['error']
|
20
|
+
msg = "Exception fetching record_sets: #{body['code']}, #{body['message']}"
|
21
|
+
else
|
22
|
+
msg = "Exception fetching record_sets: #{body['code']}, #{body['message']}"
|
23
|
+
end
|
24
|
+
raise msg
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
class Mock
|
30
|
+
def list_record_sets(dns_resource_group, zone_name)
|
31
|
+
rset = {
|
32
|
+
:name => 'fogtestrecordset',
|
33
|
+
:resource_group => 'fog-test-resource-group',
|
34
|
+
:zone_name => 'fogtestzone.com',
|
35
|
+
:records => ['1.2.3.4', '1.2.3.3'],
|
36
|
+
:type => 'A',
|
37
|
+
:ttl => 60
|
38
|
+
}
|
39
|
+
[rset]
|
40
|
+
end
|
41
|
+
end
|
42
|
+
end
|
43
|
+
end
|
44
|
+
end
|
@@ -0,0 +1,52 @@
|
|
1
|
+
module Fog
|
2
|
+
module DNS
|
3
|
+
class AzureRM
|
4
|
+
class Real
|
5
|
+
def list_zones
|
6
|
+
zone_hash_array = []
|
7
|
+
@resources.resource_groups.each do |rg|
|
8
|
+
list_zones(rg.name).each do |zone_hash|
|
9
|
+
zone_hash['resource_group'] = rg.name
|
10
|
+
zone_hash_array << zone_hash
|
11
|
+
end
|
12
|
+
end
|
13
|
+
zone_hash_array
|
14
|
+
end
|
15
|
+
|
16
|
+
def list_zones(dns_resource_group)
|
17
|
+
resource_url = "#{AZURE_RESOURCE}/subscriptions/#{@subscription_id}/resourceGroups/#{dns_resource_group}/providers/Microsoft.Network/dnsZones?api-version=2015-05-04-preview"
|
18
|
+
begin
|
19
|
+
token = Fog::Credentials::AzureRM.get_token(@tenant_id, @client_id, @client_secret)
|
20
|
+
dns_response = RestClient.get(
|
21
|
+
resource_url,
|
22
|
+
accept: 'application/json',
|
23
|
+
content_type: 'application/json',
|
24
|
+
authorization: token)
|
25
|
+
response_hash = JSON.parse(dns_response)
|
26
|
+
response_hash['value']
|
27
|
+
rescue RestClient::Exception => e
|
28
|
+
body = JSON.parse(e.http_body)
|
29
|
+
if body.key?('error')
|
30
|
+
body = body['error']
|
31
|
+
msg = "Exception fetching zones: #{body['code']}, #{body['message']}"
|
32
|
+
else
|
33
|
+
msg = "Exception fetching zones: #{body['code']}, #{body['message']}"
|
34
|
+
end
|
35
|
+
raise msg
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
class Mock
|
41
|
+
def list_zones
|
42
|
+
zone = {
|
43
|
+
id: '/subscriptions/########-####-####-####-############/resourceGroups/fog-test-resource-group/Microsoft.Network/dnszones/fogtestzone.com',
|
44
|
+
name: 'fogtestzone.com',
|
45
|
+
resource_group: 'fog-test-resource-group'
|
46
|
+
}
|
47
|
+
[zone]
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
module Fog
|
2
|
+
module Network
|
3
|
+
class AzureRM
|
4
|
+
# Mock class for Network Request
|
5
|
+
class Real
|
6
|
+
def check_for_public_ip(resource_group, name)
|
7
|
+
begin
|
8
|
+
promise = @network_client.public_ipaddresses.get(resource_group, name)
|
9
|
+
promise.value!
|
10
|
+
return true
|
11
|
+
rescue MsRestAzure::AzureOperationError => e
|
12
|
+
msg = "Exception checking name availability: #{e.body['error']['message']}"
|
13
|
+
raise msg if e.body['error']['code'] == 'ResourceGroupNotFound'
|
14
|
+
return false if e.body['error']['code'] == 'ResourceNotFound'
|
15
|
+
return true
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
# Mock class for Network Request
|
21
|
+
class Mock
|
22
|
+
def check_for_public_ip(_resource_group, _name)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
module Fog
|
2
|
+
module Network
|
3
|
+
class AzureRM
|
4
|
+
# Mock class for Network Request
|
5
|
+
class Real
|
6
|
+
def check_for_virtual_network(name, resource_group)
|
7
|
+
begin
|
8
|
+
promise = @network_client.virtual_networks.get(resource_group, name)
|
9
|
+
promise.value!
|
10
|
+
return true
|
11
|
+
rescue MsRestAzure::AzureOperationError => e
|
12
|
+
msg = "Exception checking name availability: #{e.body['error']['message']}"
|
13
|
+
raise msg if e.body['error']['code'] == 'ResourceGroupNotFound'
|
14
|
+
return false if e.body['error']['code'] == 'ResourceNotFound'
|
15
|
+
return true
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
# Mock class for Network Request
|
21
|
+
class Mock
|
22
|
+
def check_for_virtual_network(_name, _resource_group)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,52 @@
|
|
1
|
+
|
2
|
+
module Fog
|
3
|
+
module Network
|
4
|
+
class AzureRM
|
5
|
+
# Real class for Network Request
|
6
|
+
class Real
|
7
|
+
def create_network_interface(name, location, resource_group, subnet_id, ip_config_name, prv_ip_alloc_method)
|
8
|
+
network_interface = define_network_interface(name, location, subnet_id, ip_config_name, prv_ip_alloc_method)
|
9
|
+
begin
|
10
|
+
promise = @network_client.network_interfaces.create_or_update(resource_group, name, network_interface)
|
11
|
+
promise.value!
|
12
|
+
rescue MsRestAzure::AzureOperationError => e
|
13
|
+
msg = "Exception creating Network Interface #{name} in Resource Group: #{resource_group}. #{e.body['error']['message']}"
|
14
|
+
raise msg
|
15
|
+
end
|
16
|
+
end
|
17
|
+
|
18
|
+
private
|
19
|
+
|
20
|
+
def define_network_interface(name, location, subnet_id, ip_config_name, prv_ip_alloc_method)
|
21
|
+
subnet = Azure::ARM::Network::Models::Subnet.new
|
22
|
+
subnet.id = subnet_id
|
23
|
+
|
24
|
+
ip_configs_props = Azure::ARM::Network::Models::NetworkInterfaceIPConfigurationPropertiesFormat.new
|
25
|
+
ip_configs_props.private_ipallocation_method = prv_ip_alloc_method
|
26
|
+
ip_configs_props.subnet = subnet
|
27
|
+
|
28
|
+
ip_configs = Azure::ARM::Network::Models::NetworkInterfaceIPConfiguration.new
|
29
|
+
ip_configs.name = ip_config_name
|
30
|
+
ip_configs.properties = ip_configs_props
|
31
|
+
|
32
|
+
nic_props = Azure::ARM::Network::Models::NetworkInterfacePropertiesFormat.new
|
33
|
+
nic_props.ip_configurations = [ip_configs]
|
34
|
+
|
35
|
+
network_interface = Azure::ARM::Network::Models::NetworkInterface.new
|
36
|
+
network_interface.name = name
|
37
|
+
network_interface.location = location
|
38
|
+
network_interface.properties = nic_props
|
39
|
+
|
40
|
+
network_interface
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
44
|
+
# Mock class for Network Request
|
45
|
+
class Mock
|
46
|
+
def create_network_interface(name, location, resource_group, subnet_id, ip_configs_name, prv_ip_alloc_method)
|
47
|
+
|
48
|
+
end
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
52
|
+
end
|
@@ -0,0 +1,28 @@
|
|
1
|
+
module Fog
|
2
|
+
module Network
|
3
|
+
class AzureRM
|
4
|
+
# Real class for Network Request
|
5
|
+
class Real
|
6
|
+
def create_public_ip(resource_group, name, public_ip)
|
7
|
+
Fog::Logger.debug "Creating PublicIP #{name} in Resource Group #{resource_group}."
|
8
|
+
begin
|
9
|
+
promise = @network_client.public_ipaddresses.create_or_update(resource_group, name, public_ip)
|
10
|
+
response = promise.value!
|
11
|
+
result = response.body
|
12
|
+
Fog::Logger.debug "PublicIP #{name} Created Successfully!"
|
13
|
+
return result
|
14
|
+
rescue MsRestAzure::AzureOperationError => e
|
15
|
+
msg = "Exception creating Public IP #{name} in Resource Group: #{resource_group}. #{e.body['error']['message']}"
|
16
|
+
raise msg
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
|
21
|
+
# Mock class for Network Request
|
22
|
+
class Mock
|
23
|
+
def create_public_ip(resource_group, name, public_ip)
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
@@ -0,0 +1,30 @@
|
|
1
|
+
module Fog
|
2
|
+
module Network
|
3
|
+
class AzureRM
|
4
|
+
# Real class for Network Request
|
5
|
+
class Real
|
6
|
+
def create_subnet(resource_group, virtual_network_name, subnet_name, addressPrefix)
|
7
|
+
subnet_properties = Azure::ARM::Network::Models::SubnetPropertiesFormat.new
|
8
|
+
subnet_properties.address_prefix = addressPrefix unless addressPrefix.nil?
|
9
|
+
|
10
|
+
subnet = Azure::ARM::Network::Models::Subnet.new
|
11
|
+
subnet.name = subnet_name
|
12
|
+
subnet.properties = subnet_properties
|
13
|
+
begin
|
14
|
+
promise = @network_client.subnets.create_or_update(resource_group, virtual_network_name, subnet_name, subnet)
|
15
|
+
promise.value!
|
16
|
+
rescue MsRestAzure::AzureOperationError => e
|
17
|
+
msg = "Exception creating Subnet #{subnet_name} in Resource Group: #{resource_group}. #{e.body['error']['message']}"
|
18
|
+
raise msg
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
|
23
|
+
# Mock class for Network Request
|
24
|
+
class Mock
|
25
|
+
def create_subnet(_resource_group, _virtual_network_name, _subnet_name, _addressPrefix)
|
26
|
+
end
|
27
|
+
end
|
28
|
+
end
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,80 @@
|
|
1
|
+
module Fog
|
2
|
+
module Network
|
3
|
+
class AzureRM
|
4
|
+
class Real
|
5
|
+
def create_virtual_network(name, location, resource_group_name, dns_list, subnet_address_list, network_address_list)
|
6
|
+
virtual_network = define_vnet_object(location, name, network_address_list, dns_list, subnet_address_list)
|
7
|
+
begin
|
8
|
+
promise = @network_client.virtual_networks.create_or_update(resource_group_name, name, virtual_network)
|
9
|
+
promise.value!
|
10
|
+
rescue MsRestAzure::AzureOperationError => e
|
11
|
+
msg = "Exception creating Virtual Network #{name} in Resource Group: #{resource_group_name}. #{e.body['error']['message']}"
|
12
|
+
raise msg
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
private
|
17
|
+
|
18
|
+
def define_vnet_object(location, network_name, network_address_list, dns_list, subnet_address_list)
|
19
|
+
virtual_network = Azure::ARM::Network::Models::VirtualNetwork.new
|
20
|
+
virtual_network.location = location
|
21
|
+
virtual_network_properties = Azure::ARM::Network::Models::VirtualNetworkPropertiesFormat.new
|
22
|
+
|
23
|
+
if network_address_list.nil?
|
24
|
+
address_space = Azure::ARM::Network::Models::AddressSpace.new
|
25
|
+
address_space.address_prefixes = ['10.2.0.0/16']
|
26
|
+
virtual_network_properties.address_space = address_space
|
27
|
+
else
|
28
|
+
network_address_list = network_address_list.split(',')
|
29
|
+
na_list = []
|
30
|
+
(0...network_address_list.length).each do |i|
|
31
|
+
na_list.push(network_address_list[i].strip)
|
32
|
+
end
|
33
|
+
address_space = Azure::ARM::Network::Models::AddressSpace.new
|
34
|
+
address_space.address_prefixes = na_list
|
35
|
+
virtual_network_properties.address_space = address_space
|
36
|
+
end
|
37
|
+
|
38
|
+
unless dns_list.nil?
|
39
|
+
dns_list = dns_list.split(',')
|
40
|
+
ns_list = []
|
41
|
+
(0...dns_list.length).each do |i|
|
42
|
+
ns_list.push(dns_list[i].strip)
|
43
|
+
end
|
44
|
+
dhcp_options = Azure::ARM::Network::Models::DhcpOptions.new
|
45
|
+
dhcp_options.dns_servers = ns_list unless ns_list.nil?
|
46
|
+
virtual_network_properties.dhcp_options = dhcp_options
|
47
|
+
end
|
48
|
+
|
49
|
+
unless subnet_address_list.nil?
|
50
|
+
subnet_address_list = subnet_address_list.split(',')
|
51
|
+
sub_nets = define_subnet_objects(network_name, subnet_address_list)
|
52
|
+
virtual_network_properties.subnets = sub_nets
|
53
|
+
end
|
54
|
+
|
55
|
+
virtual_network.properties = virtual_network_properties
|
56
|
+
virtual_network
|
57
|
+
end
|
58
|
+
|
59
|
+
def define_subnet_objects(network_name, subnet_address_list)
|
60
|
+
sub_nets = []
|
61
|
+
(0...subnet_address_list.length).each do |i|
|
62
|
+
subnet_properties = Azure::ARM::Network::Models::SubnetPropertiesFormat.new
|
63
|
+
subnet_properties.address_prefix = subnet_address_list[i].strip
|
64
|
+
|
65
|
+
subnet = Azure::ARM::Network::Models::Subnet.new
|
66
|
+
subnet.name = 'subnet_' + i.to_s + '_' + network_name
|
67
|
+
subnet.properties = subnet_properties
|
68
|
+
sub_nets.push(subnet)
|
69
|
+
end
|
70
|
+
sub_nets
|
71
|
+
end
|
72
|
+
end
|
73
|
+
|
74
|
+
class Mock
|
75
|
+
def create_virtual_network(_name, _location, _dns_list, _subnet_address_list, _network_address_list, _resource_group_name)
|
76
|
+
end
|
77
|
+
end
|
78
|
+
end
|
79
|
+
end
|
80
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
module Fog
|
2
|
+
module Network
|
3
|
+
class AzureRM
|
4
|
+
# Real class for Network Request
|
5
|
+
class Real
|
6
|
+
def delete_network_interface(resource_group, name)
|
7
|
+
Fog::Logger.debug "Deleting NetworkInterface #{name} from Resource Group #{resource_group}."
|
8
|
+
begin
|
9
|
+
promise = @network_client.network_interfaces.delete(resource_group, name)
|
10
|
+
response = promise.value!
|
11
|
+
Fog::Logger.debug "NetworkInterface #{name} Deleted Successfully."
|
12
|
+
response
|
13
|
+
rescue MsRestAzure::AzureOperationError => e
|
14
|
+
msg = "Exception deleting Network Interface #{name} in Resource Group: #{resource_group}. #{e.body['error']['message']}"
|
15
|
+
raise msg
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
# Mock class for Network Request
|
21
|
+
class Mock
|
22
|
+
def delete_network_interface(_resource_group, _name)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
module Fog
|
2
|
+
module Network
|
3
|
+
class AzureRM
|
4
|
+
# Real class for Network Request
|
5
|
+
class Real
|
6
|
+
def delete_public_ip(resource_group, name)
|
7
|
+
Fog::Logger.debug "Deleting PublicIP #{name} from Resource Group #{resource_group}."
|
8
|
+
begin
|
9
|
+
promise = @network_client.public_ipaddresses.delete(resource_group, name)
|
10
|
+
response = promise.value!
|
11
|
+
Fog::Logger.debug "PublicIP #{name} Deleted Successfully."
|
12
|
+
response
|
13
|
+
rescue MsRestAzure::AzureOperationError => e
|
14
|
+
msg = "Exception deleting Public IP #{name} in Resource Group: #{resource_group}. #{e.body['error']['message']}"
|
15
|
+
raise msg
|
16
|
+
end
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
# Mock class for Network Request
|
21
|
+
class Mock
|
22
|
+
def delete_public_ip(_resource_group, _name)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
end
|