fog-azure-rm 0.0.1 → 0.0.2
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 +4 -4
- data/CONTRIBUTING.md +19 -8
- data/LICENSE.md +1 -1
- data/README.md +9 -8
- data/lib/fog/azurerm/models/compute/availability_set.rb +17 -3
- data/lib/fog/azurerm/models/compute/availability_sets.rb +2 -6
- data/lib/fog/azurerm/models/compute/server.rb +1 -1
- data/lib/fog/azurerm/models/compute/servers.rb +3 -1
- data/lib/fog/azurerm/models/dns/record_set.rb +31 -3
- data/lib/fog/azurerm/models/dns/record_sets.rb +7 -17
- data/lib/fog/azurerm/models/dns/zone.rb +26 -3
- data/lib/fog/azurerm/models/dns/zones.rb +8 -6
- data/lib/fog/azurerm/models/network/frontend_ip_configuration.rb +32 -0
- data/lib/fog/azurerm/models/network/inbound_nat_pool.rb +27 -0
- data/lib/fog/azurerm/models/network/inbound_nat_rule.rb +29 -0
- data/lib/fog/azurerm/models/network/load_balancer.rb +249 -0
- data/lib/fog/azurerm/models/network/load_balancers.rb +27 -0
- data/lib/fog/azurerm/models/network/load_balancing_rule.rb +42 -0
- data/lib/fog/azurerm/models/network/network_interface.rb +46 -7
- data/lib/fog/azurerm/models/network/network_interfaces.rb +2 -8
- data/lib/fog/azurerm/models/network/network_security_group.rb +89 -0
- data/lib/fog/azurerm/models/network/network_security_groups.rb +27 -0
- data/lib/fog/azurerm/models/network/network_security_rule.rb +40 -0
- data/lib/fog/azurerm/models/network/probe.rb +29 -0
- data/lib/fog/azurerm/models/network/public_ip.rb +32 -4
- data/lib/fog/azurerm/models/network/public_ips.rb +2 -8
- data/lib/fog/azurerm/models/network/subnet.rb +20 -12
- data/lib/fog/azurerm/models/network/subnets.rb +1 -7
- data/lib/fog/azurerm/models/network/traffic_manager_end_point.rb +63 -0
- data/lib/fog/azurerm/models/network/traffic_manager_end_points.rb +29 -0
- data/lib/fog/azurerm/models/network/traffic_manager_profile.rb +59 -0
- data/lib/fog/azurerm/models/network/traffic_manager_profiles.rb +24 -0
- data/lib/fog/azurerm/models/network/virtual_network.rb +19 -6
- data/lib/fog/azurerm/models/network/virtual_networks.rb +4 -9
- data/lib/fog/azurerm/models/resources/resource_group.rb +2 -1
- data/lib/fog/azurerm/models/resources/resource_groups.rb +1 -9
- data/lib/fog/azurerm/models/storage/storage_account.rb +5 -7
- data/lib/fog/azurerm/models/storage/storage_accounts.rb +5 -6
- data/lib/fog/azurerm/network.rb +30 -0
- data/lib/fog/azurerm/requests/compute/create_availability_set.rb +13 -2
- data/lib/fog/azurerm/requests/compute/create_virtual_machine.rb +60 -2
- data/lib/fog/azurerm/requests/compute/deallocate_virtual_machine.rb +4 -2
- data/lib/fog/azurerm/requests/compute/delete_availability_set.rb +4 -2
- data/lib/fog/azurerm/requests/compute/delete_virtual_machine.rb +4 -2
- data/lib/fog/azurerm/requests/compute/generalize_virtual_machine.rb +4 -2
- data/lib/fog/azurerm/requests/compute/get_virtual_machine.rb +57 -1
- data/lib/fog/azurerm/requests/compute/list_availability_sets.rb +16 -1
- data/lib/fog/azurerm/requests/compute/list_available_sizes_for_virtual_machine.rb +27 -1
- data/lib/fog/azurerm/requests/compute/power_off_virtual_machine.rb +4 -2
- data/lib/fog/azurerm/requests/compute/redeploy_virtual_machine.rb +4 -2
- data/lib/fog/azurerm/requests/compute/restart_virtual_machine.rb +4 -2
- data/lib/fog/azurerm/requests/compute/start_virtual_machine.rb +4 -2
- data/lib/fog/azurerm/requests/dns/check_for_zone.rb +16 -17
- data/lib/fog/azurerm/requests/dns/create_record_set.rb +80 -37
- data/lib/fog/azurerm/requests/dns/create_zone.rb +43 -27
- data/lib/fog/azurerm/requests/dns/delete_record_set.rb +17 -19
- data/lib/fog/azurerm/requests/dns/delete_zone.rb +16 -19
- data/lib/fog/azurerm/requests/dns/get_records_from_record_set.rb +29 -28
- data/lib/fog/azurerm/requests/dns/list_record_sets.rb +49 -23
- data/lib/fog/azurerm/requests/dns/list_zones.rb +57 -23
- data/lib/fog/azurerm/requests/network/check_for_public_ip.rb +3 -1
- data/lib/fog/azurerm/requests/network/check_for_virtual_network.rb +4 -2
- data/lib/fog/azurerm/requests/network/create_load_balancer.rb +208 -0
- data/lib/fog/azurerm/requests/network/create_network_interface.rb +42 -4
- data/lib/fog/azurerm/requests/network/create_network_security_group.rb +200 -0
- data/lib/fog/azurerm/requests/network/create_public_ip.rb +19 -5
- data/lib/fog/azurerm/requests/network/create_subnet.rb +19 -6
- data/lib/fog/azurerm/requests/network/create_traffic_manager_endpoint.rb +78 -0
- data/lib/fog/azurerm/requests/network/create_traffic_manager_profile.rb +127 -0
- data/lib/fog/azurerm/requests/network/create_virtual_network.rb +40 -5
- data/lib/fog/azurerm/requests/network/delete_load_balancer.rb +27 -0
- data/lib/fog/azurerm/requests/network/delete_network_interface.rb +5 -3
- data/lib/fog/azurerm/requests/network/delete_network_security_group.rb +29 -0
- data/lib/fog/azurerm/requests/network/delete_public_ip.rb +4 -2
- data/lib/fog/azurerm/requests/network/delete_subnet.rb +10 -8
- data/lib/fog/azurerm/requests/network/delete_traffic_manager_endpoint.rb +37 -0
- data/lib/fog/azurerm/requests/network/delete_traffic_manager_profile.rb +37 -0
- data/lib/fog/azurerm/requests/network/delete_virtual_network.rb +8 -6
- data/lib/fog/azurerm/requests/network/get_traffic_manager_profile.rb +96 -0
- data/lib/fog/azurerm/requests/network/list_load_balancers.rb +31 -0
- data/lib/fog/azurerm/requests/network/list_network_interfaces.rb +41 -9
- data/lib/fog/azurerm/requests/network/list_network_security_groups.rb +171 -0
- data/lib/fog/azurerm/requests/network/list_public_ips.rb +21 -9
- data/lib/fog/azurerm/requests/network/list_subnets.rb +34 -11
- data/lib/fog/azurerm/requests/network/list_traffic_manager_profiles.rb +98 -0
- data/lib/fog/azurerm/requests/network/list_virtual_networks.rb +53 -8
- data/lib/fog/azurerm/requests/resources/create_resource_group.rb +11 -2
- data/lib/fog/azurerm/requests/resources/delete_resource_group.rb +4 -2
- data/lib/fog/azurerm/requests/resources/list_resource_groups.rb +23 -7
- data/lib/fog/azurerm/requests/storage/check_storage_account_name_availability.rb +2 -0
- data/lib/fog/azurerm/requests/storage/create_storage_account.rb +14 -8
- data/lib/fog/azurerm/requests/storage/delete_storage_account.rb +4 -3
- data/lib/fog/azurerm/requests/storage/list_storage_account_for_rg.rb +33 -2
- data/lib/fog/azurerm/requests/storage/list_storage_accounts.rb +32 -5
- data/lib/fog/azurerm/storage.rb +0 -1
- data/lib/fog/azurerm/version.rb +1 -1
- metadata +35 -10
@@ -7,7 +7,7 @@ module Fog
|
|
7
7
|
begin
|
8
8
|
response = @compute_mgmt_client.virtual_machines.list_available_sizes(resource_group, name)
|
9
9
|
result = response.value!
|
10
|
-
result.body
|
10
|
+
Azure::ARM::Compute::Models::VirtualMachineSizeListResult.serialize_object(result.body)['value']
|
11
11
|
rescue MsRestAzure::AzureOperationError => e
|
12
12
|
msg = "Error listing Sizes for Virtual Machine #{name} in Resource Group '#{resource_group}'. #{e.body['error']['message']}"
|
13
13
|
raise msg
|
@@ -17,6 +17,32 @@ module Fog
|
|
17
17
|
# This class provides the mock implementation for unit tests.
|
18
18
|
class Mock
|
19
19
|
def list_available_sizes_for_virtual_machine(resource_group, name)
|
20
|
+
[
|
21
|
+
{
|
22
|
+
"name"=>"Standard_A0",
|
23
|
+
"numberOfCores"=>1,
|
24
|
+
"osDiskSizeInMB"=>1047552,
|
25
|
+
"resourceDiskSizeInMB"=>20480,
|
26
|
+
"memoryInMB"=>768,
|
27
|
+
"maxDataDiskCount"=>1
|
28
|
+
},
|
29
|
+
{
|
30
|
+
"name"=>"Standard_A1",
|
31
|
+
"numberOfCores"=>1,
|
32
|
+
"osDiskSizeInMB"=>1047552,
|
33
|
+
"resourceDiskSizeInMB"=>71680,
|
34
|
+
"memoryInMB"=>1792,
|
35
|
+
"maxDataDiskCount"=>2
|
36
|
+
},
|
37
|
+
{
|
38
|
+
"name"=>"Standard_A2",
|
39
|
+
"numberOfCores"=>2,
|
40
|
+
"osDiskSizeInMB"=>1047552,
|
41
|
+
"resourceDiskSizeInMB"=>138240,
|
42
|
+
"memoryInMB"=>3584,
|
43
|
+
"maxDataDiskCount"=>4
|
44
|
+
}
|
45
|
+
]
|
20
46
|
end
|
21
47
|
end
|
22
48
|
end
|
@@ -7,9 +7,9 @@ module Fog
|
|
7
7
|
Fog::Logger.debug "Powering off Virtual Machine #{name} in Resource Group #{resource_group}."
|
8
8
|
begin
|
9
9
|
promise = @compute_mgmt_client.virtual_machines.power_off(resource_group, name)
|
10
|
-
|
10
|
+
promise.value!
|
11
11
|
Fog::Logger.debug "Virtual Machine #{name} Powered off Successfully."
|
12
|
-
|
12
|
+
true
|
13
13
|
rescue MsRestAzure::AzureOperationError => e
|
14
14
|
msg = "Error Powering off Virtual Machine '#{name}' in Resource Group '#{resource_group}'. #{e.body['error']['message']}"
|
15
15
|
raise msg
|
@@ -19,6 +19,8 @@ module Fog
|
|
19
19
|
# This class provides the mock implementation for unit tests.
|
20
20
|
class Mock
|
21
21
|
def power_off_virtual_machine(resource_group, name)
|
22
|
+
Fog::Logger.debug "Virtual Machine #{name} from Resource group #{resource_group} Powered off successfully."
|
23
|
+
return true
|
22
24
|
end
|
23
25
|
end
|
24
26
|
end
|
@@ -7,9 +7,9 @@ module Fog
|
|
7
7
|
Fog::Logger.debug "Redeploying Virtual Machine #{name} in Resource Group #{resource_group}."
|
8
8
|
begin
|
9
9
|
promise = @compute_mgmt_client.virtual_machines.redeploy(resource_group, name)
|
10
|
-
|
10
|
+
promise.value!
|
11
11
|
Fog::Logger.debug "Virtual Machine #{name} Redeployed Successfully."
|
12
|
-
|
12
|
+
true
|
13
13
|
rescue MsRestAzure::AzureOperationError => e
|
14
14
|
msg = "Error Redeploying Virtual Machine '#{name}' in Resource Group '#{resource_group}'. #{e.body['error']['message']}"
|
15
15
|
raise msg
|
@@ -19,6 +19,8 @@ module Fog
|
|
19
19
|
# This class provides the mock implementation for unit tests.
|
20
20
|
class Mock
|
21
21
|
def redeploy_virtual_machine(resource_group, name)
|
22
|
+
Fog::Logger.debug "Virtual Machine #{name} from Resource group #{resource_group} Redeployed successfully."
|
23
|
+
return true
|
22
24
|
end
|
23
25
|
end
|
24
26
|
end
|
@@ -7,9 +7,9 @@ module Fog
|
|
7
7
|
Fog::Logger.debug "Restarting Virtual Machine #{name} in Resource Group #{resource_group}."
|
8
8
|
begin
|
9
9
|
promise = @compute_mgmt_client.virtual_machines.restart(resource_group, name)
|
10
|
-
|
10
|
+
promise.value!
|
11
11
|
Fog::Logger.debug "Virtual Machine #{name} Restarted Successfully."
|
12
|
-
|
12
|
+
true
|
13
13
|
rescue MsRestAzure::AzureOperationError => e
|
14
14
|
msg = "Error Restarting Virtual Machine '#{name}' in Resource Group '#{resource_group}'. #{e.body['error']['message']}"
|
15
15
|
raise msg
|
@@ -19,6 +19,8 @@ module Fog
|
|
19
19
|
# This class provides the mock implementation for unit tests.
|
20
20
|
class Mock
|
21
21
|
def restart_virtual_machine(resource_group, name)
|
22
|
+
Fog::Logger.debug "Virtual Machine #{name} from Resource group #{resource_group} Restarted successfully."
|
23
|
+
return true
|
22
24
|
end
|
23
25
|
end
|
24
26
|
end
|
@@ -7,9 +7,9 @@ module Fog
|
|
7
7
|
Fog::Logger.debug "Starting Virtual Machine #{name} in Resource Group #{resource_group}."
|
8
8
|
begin
|
9
9
|
promise = @compute_mgmt_client.virtual_machines.start(resource_group, name)
|
10
|
-
|
10
|
+
promise.value!
|
11
11
|
Fog::Logger.debug "Virtual Machine #{name} started Successfully."
|
12
|
-
|
12
|
+
true
|
13
13
|
rescue MsRestAzure::AzureOperationError => e
|
14
14
|
msg = "Error starting Virtual Machine '#{name}' in Resource Group '#{resource_group}'. #{e.body['error']['message']}"
|
15
15
|
raise msg
|
@@ -19,6 +19,8 @@ module Fog
|
|
19
19
|
# This class provides the mock implementation for unit tests.
|
20
20
|
class Mock
|
21
21
|
def start_virtual_machine(resource_group, name)
|
22
|
+
Fog::Logger.debug "Virtual Machine #{name} from Resource group #{resource_group} started successfully."
|
23
|
+
return true
|
22
24
|
end
|
23
25
|
end
|
24
26
|
end
|
@@ -1,37 +1,36 @@
|
|
1
1
|
module Fog
|
2
2
|
module DNS
|
3
3
|
class AzureRM
|
4
|
+
# Real class for DNS Request
|
4
5
|
class Real
|
5
6
|
def check_for_zone(resource_group, name)
|
6
7
|
resource_url = "#{AZURE_RESOURCE}/subscriptions/#{@subscription_id}/resourceGroups/#{resource_group}/providers/Microsoft.Network/dnsZones/#{name}?api-version=2015-05-04-preview"
|
7
8
|
begin
|
8
9
|
token = Fog::Credentials::AzureRM.get_token(@tenant_id, @client_id, @client_secret)
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
if dns_hash.key?('id') && !dns_hash['id'].nil?
|
16
|
-
true
|
17
|
-
else
|
18
|
-
false
|
19
|
-
end
|
10
|
+
RestClient.get(
|
11
|
+
resource_url,
|
12
|
+
accept: 'application/json',
|
13
|
+
content_type: 'application/json',
|
14
|
+
authorization: token)
|
15
|
+
true
|
20
16
|
rescue RestClient::Exception => e
|
21
|
-
|
17
|
+
body = JSON.parse(e.response)
|
18
|
+
if(body['error']['code']) == 'ResourceNotFound'
|
22
19
|
false
|
23
20
|
else
|
24
|
-
|
25
|
-
msg = "Exception checking if the zone exists: #{body['code']}, #{body['message']}"
|
26
|
-
|
21
|
+
Fog::Logger.warning "Exception checking if the zone exists in resource group #{resource_group}"
|
22
|
+
msg = "Exception checking if the zone exists: #{body['error']['code']}, #{body['error']['message']}"
|
23
|
+
raise msg
|
27
24
|
end
|
28
25
|
end
|
29
26
|
end
|
30
27
|
end
|
31
28
|
|
29
|
+
# Mock class for DNS Request
|
32
30
|
class Mock
|
33
|
-
def check_for_zone(
|
34
|
-
|
31
|
+
def check_for_zone(_resource_group, _name)
|
32
|
+
Fog::Logger.debug "Zone name #{_name} is available."
|
33
|
+
return true
|
35
34
|
end
|
36
35
|
end
|
37
36
|
end
|
@@ -1,61 +1,104 @@
|
|
1
1
|
module Fog
|
2
2
|
module DNS
|
3
3
|
class AzureRM
|
4
|
+
# Real class for DNS Request
|
4
5
|
class Real
|
5
|
-
def create_record_set(
|
6
|
-
resource_url = "#{AZURE_RESOURCE}/subscriptions/#{@subscription_id}/resourceGroups/#{
|
7
|
-
Fog::Logger.debug "Creating/Updating RecordSet #{
|
6
|
+
def create_record_set(resource_group, name, zone_name, records, record_type, ttl)
|
7
|
+
resource_url = "#{AZURE_RESOURCE}/subscriptions/#{@subscription_id}/resourceGroups/#{resource_group}/providers/Microsoft.Network/dnsZones/#{zone_name}/#{record_type}/#{name}?api-version=2015-05-04-preview"
|
8
|
+
Fog::Logger.debug "Creating/Updating RecordSet #{name} of type '#{record_type}' in zone #{zone_name}"
|
8
9
|
|
9
10
|
case record_type
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
}
|
11
|
+
when 'A'
|
12
|
+
a_type_records_array = []
|
13
|
+
records.each do |ip|
|
14
|
+
a_type_records_array.push(ipv4Address: ip)
|
15
|
+
end
|
16
|
+
body = {
|
17
|
+
location: 'global',
|
18
|
+
tags: '',
|
19
|
+
properties: {
|
20
|
+
TTL: ttl,
|
21
|
+
ARecords: a_type_records_array
|
22
22
|
}
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
23
|
+
}
|
24
|
+
when 'CNAME'
|
25
|
+
body = {
|
26
|
+
location: 'global',
|
27
|
+
tags: '',
|
28
|
+
properties: {
|
29
|
+
TTL: ttl,
|
30
|
+
CNAMERecord: {
|
31
|
+
cname: records.first # because cname only has 1 value and we know the object is an array passed in.
|
32
|
+
}
|
33
33
|
}
|
34
|
+
}
|
34
35
|
end
|
35
36
|
|
36
37
|
begin
|
37
38
|
token = Fog::Credentials::AzureRM.get_token(@tenant_id, @client_id, @client_secret)
|
38
|
-
RestClient.put(
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
39
|
+
response = RestClient.put(
|
40
|
+
resource_url,
|
41
|
+
body.to_json,
|
42
|
+
accept: 'application/json',
|
43
|
+
content_type: 'application/json',
|
44
|
+
authorization: token)
|
45
|
+
Fog::Logger.debug "RecordSet #{name} Created/Updated Successfully!"
|
46
|
+
parsed_response = JSON.parse(response)
|
47
|
+
parsed_response
|
46
48
|
rescue Exception => e
|
47
|
-
Fog::Logger.warning "Exception
|
49
|
+
Fog::Logger.warning "Exception creating recordset #{name} in zone #{zone_name}."
|
48
50
|
msg = "AzureDns::RecordSet - Exception is: #{e.message}"
|
49
51
|
raise msg
|
50
52
|
end
|
51
53
|
end
|
52
54
|
end
|
53
55
|
|
56
|
+
# Mock class for DNS Request
|
54
57
|
class Mock
|
55
|
-
def create_record_set(
|
56
|
-
|
58
|
+
def create_record_set(_resource_group, _name, _zone_name, _records, _record_type, _ttl)
|
59
|
+
if _record_type == 'A'
|
60
|
+
{
|
61
|
+
"id"=>"/subscriptions/########-####-####-####-############/resourceGroups/#{_dns_resource_group}/providers/Microsoft.Network/dnszones/#{_zone_name}/#{_record_type}/#{_name}",
|
62
|
+
"name"=>_name,
|
63
|
+
"type"=>"Microsoft.Network/dnszones/#{_record_type}",
|
64
|
+
"etag"=>"7f159cb1-653d-4920-bc03-153c700412a2",
|
65
|
+
"location"=>"global",
|
66
|
+
"tags"=>{},
|
67
|
+
"properties"=>
|
68
|
+
{
|
69
|
+
"metadata"=>{},
|
70
|
+
"fqdn"=>"#{_name}.#{_zone_name}.",
|
71
|
+
"TTL"=>_ttl,
|
72
|
+
"ARecords"=>
|
73
|
+
[
|
74
|
+
{
|
75
|
+
"ipv4Address"=>_records[0]
|
76
|
+
}
|
77
|
+
]
|
78
|
+
}
|
79
|
+
}
|
80
|
+
elsif _record_type == 'CNAME'
|
81
|
+
{
|
82
|
+
"id"=>"/subscriptions/########-####-####-####-############/resourceGroups/#{_resource_group}/providers/Microsoft.Network/dnszones/#{_zone_name}/#{_record_type}/#{_name}",
|
83
|
+
"name"=>_name,
|
84
|
+
"type"=>"Microsoft.Network/dnszones/#{_record_type}",
|
85
|
+
"etag"=>"cc5ceb6e-16ad-4a5f-bbd7-9bc31c12d0cf",
|
86
|
+
"location"=>"global",
|
87
|
+
"tags"=>{},
|
88
|
+
"properties"=>
|
89
|
+
{
|
90
|
+
"metadata"=>{},
|
91
|
+
"fqdn"=>"#{_name}.#{_zone_name}.",
|
92
|
+
"TTL"=>_ttl,
|
93
|
+
"CNAMERecord"=>
|
94
|
+
{
|
95
|
+
"cname"=>_records[0]
|
96
|
+
}
|
97
|
+
}
|
98
|
+
}
|
99
|
+
end
|
57
100
|
end
|
58
101
|
end
|
59
102
|
end
|
60
103
|
end
|
61
|
-
end
|
104
|
+
end
|
@@ -1,45 +1,61 @@
|
|
1
1
|
module Fog
|
2
2
|
module DNS
|
3
3
|
class AzureRM
|
4
|
+
# Real class for DNS Request
|
4
5
|
class Real
|
5
|
-
def create_zone(
|
6
|
-
Fog::Logger.debug "Creating Zone #{
|
7
|
-
resource_url = "#{AZURE_RESOURCE}/subscriptions/#{@subscription_id}/resourceGroups/#{
|
8
|
-
|
6
|
+
def create_zone(resource_group, name)
|
7
|
+
Fog::Logger.debug "Creating Zone #{name} ..."
|
8
|
+
resource_url = "#{AZURE_RESOURCE}/subscriptions/#{@subscription_id}/resourceGroups/#{resource_group}/providers/Microsoft.Network/dnsZones/#{name}?api-version=2015-05-04-preview"
|
9
|
+
|
9
10
|
body = {
|
10
|
-
|
11
|
-
|
12
|
-
|
11
|
+
location: 'global',
|
12
|
+
tags: {},
|
13
|
+
properties: {}
|
13
14
|
}
|
14
15
|
|
15
16
|
begin
|
16
17
|
token = Fog::Credentials::AzureRM.get_token(@tenant_id, @client_id, @client_secret)
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
rescue
|
27
|
-
|
28
|
-
|
29
|
-
body = body['error']
|
30
|
-
msg = "Exception creating zone: #{body['code']}, #{body['message']}"
|
31
|
-
else
|
32
|
-
msg = "Exception creating zone: #{body['code']}, #{body['message']}"
|
33
|
-
end
|
34
|
-
|
18
|
+
response = RestClient.put(
|
19
|
+
resource_url,
|
20
|
+
body.to_json,
|
21
|
+
accept: 'application/json',
|
22
|
+
content_type: 'application/json',
|
23
|
+
authorization: token)
|
24
|
+
Fog::Logger.debug "Zone #{name} created successfully."
|
25
|
+
parsed_response = JSON.parse(response)
|
26
|
+
parsed_response
|
27
|
+
rescue Exception => e
|
28
|
+
Fog::Logger.warning "Exception creating zone #{name} in resource group #{resource_group}"
|
29
|
+
msg = "AzureDns::Zone - Exception is: #{e.message}"
|
35
30
|
raise msg
|
36
31
|
end
|
37
32
|
end
|
38
33
|
end
|
39
34
|
|
35
|
+
# Mock class for DNS Request
|
40
36
|
class Mock
|
41
|
-
def create_zone(
|
42
|
-
|
37
|
+
def create_zone(_resource_group, _name)
|
38
|
+
{
|
39
|
+
"id" => "/subscriptions/########-####-####-####-############/resourceGroups/#{_resource_group}/providers/Microsoft.Network/dnszones/#{_name}",
|
40
|
+
"name" => _name,
|
41
|
+
"type" => "Microsoft.Network/dnszones",
|
42
|
+
"etag" => "00000002-0000-0000-76c2-f7ad90b5d101",
|
43
|
+
"location" => "global",
|
44
|
+
"tags" => {},
|
45
|
+
"properties" =>
|
46
|
+
{
|
47
|
+
"maxNumberOfRecordSets" => 5000,
|
48
|
+
"nameServers" =>
|
49
|
+
[
|
50
|
+
"ns1-05.azure-dns.com.",
|
51
|
+
"ns2-05.azure-dns.net.",
|
52
|
+
"ns3-05.azure-dns.org.",
|
53
|
+
"ns4-05.azure-dns.info."
|
54
|
+
],
|
55
|
+
"numberOfRecordSets" => 2,
|
56
|
+
"parentResourceGroupName" => _resource_group
|
57
|
+
}
|
58
|
+
}
|
43
59
|
end
|
44
60
|
end
|
45
61
|
end
|
@@ -1,39 +1,37 @@
|
|
1
1
|
module Fog
|
2
2
|
module DNS
|
3
3
|
class AzureRM
|
4
|
+
# Real class for DNS Request
|
4
5
|
class Real
|
5
|
-
def delete_record_set(
|
6
|
-
resource_url = "#{AZURE_RESOURCE}/subscriptions/#{@subscription_id}/resourceGroups/#{
|
7
|
-
Fog::Logger.debug "Deleting RecordSet #{
|
6
|
+
def delete_record_set(resource_group, name, zone_name, record_type)
|
7
|
+
resource_url = "#{AZURE_RESOURCE}/subscriptions/#{@subscription_id}/resourceGroups/#{resource_group}/providers/Microsoft.Network/dnsZones/#{zone_name}/#{record_type}/#{name}?api-version=2015-05-04-preview"
|
8
|
+
Fog::Logger.debug "Deleting RecordSet #{name} of type '#{record_type}' in zone #{zone_name}"
|
8
9
|
|
9
10
|
begin
|
10
11
|
token = Fog::Credentials::AzureRM.get_token(@tenant_id, @client_id, @client_secret)
|
11
12
|
RestClient.delete(
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
resource_url,
|
14
|
+
accept: 'application/json',
|
15
|
+
content_type: 'application/json',
|
16
|
+
authorization: token
|
16
17
|
)
|
17
|
-
Fog::Logger.debug "RecordSet #{
|
18
|
+
Fog::Logger.debug "RecordSet #{name} Deleted Successfully!"
|
18
19
|
true
|
19
|
-
rescue
|
20
|
-
|
21
|
-
|
22
|
-
body = body['error']
|
23
|
-
msg = "Exception deleting zone: #{body['code']}, #{body['message']}"
|
24
|
-
else
|
25
|
-
msg = "Exception deleting zone: #{body['code']}, #{body['message']}"
|
26
|
-
end
|
20
|
+
rescue Exception => e
|
21
|
+
Fog::Logger.warning "Exception deleting record set #{name} from resource group #{resource_group}"
|
22
|
+
msg = "AzureDns::RecordSet - Exception is: #{e.message}"
|
27
23
|
raise msg
|
28
24
|
end
|
29
25
|
end
|
30
26
|
end
|
31
27
|
|
28
|
+
# Mock class for DNS Request
|
32
29
|
class Mock
|
33
|
-
def delete_record_set(
|
34
|
-
|
30
|
+
def delete_record_set(_resource_group, _name, _zone_name, _record_type)
|
31
|
+
Fog::Logger.debug "Record Set #{_name} deleted successfully."
|
32
|
+
return true
|
35
33
|
end
|
36
34
|
end
|
37
35
|
end
|
38
36
|
end
|
39
|
-
end
|
37
|
+
end
|