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.
Files changed (97) hide show
  1. checksums.yaml +4 -4
  2. data/CONTRIBUTING.md +19 -8
  3. data/LICENSE.md +1 -1
  4. data/README.md +9 -8
  5. data/lib/fog/azurerm/models/compute/availability_set.rb +17 -3
  6. data/lib/fog/azurerm/models/compute/availability_sets.rb +2 -6
  7. data/lib/fog/azurerm/models/compute/server.rb +1 -1
  8. data/lib/fog/azurerm/models/compute/servers.rb +3 -1
  9. data/lib/fog/azurerm/models/dns/record_set.rb +31 -3
  10. data/lib/fog/azurerm/models/dns/record_sets.rb +7 -17
  11. data/lib/fog/azurerm/models/dns/zone.rb +26 -3
  12. data/lib/fog/azurerm/models/dns/zones.rb +8 -6
  13. data/lib/fog/azurerm/models/network/frontend_ip_configuration.rb +32 -0
  14. data/lib/fog/azurerm/models/network/inbound_nat_pool.rb +27 -0
  15. data/lib/fog/azurerm/models/network/inbound_nat_rule.rb +29 -0
  16. data/lib/fog/azurerm/models/network/load_balancer.rb +249 -0
  17. data/lib/fog/azurerm/models/network/load_balancers.rb +27 -0
  18. data/lib/fog/azurerm/models/network/load_balancing_rule.rb +42 -0
  19. data/lib/fog/azurerm/models/network/network_interface.rb +46 -7
  20. data/lib/fog/azurerm/models/network/network_interfaces.rb +2 -8
  21. data/lib/fog/azurerm/models/network/network_security_group.rb +89 -0
  22. data/lib/fog/azurerm/models/network/network_security_groups.rb +27 -0
  23. data/lib/fog/azurerm/models/network/network_security_rule.rb +40 -0
  24. data/lib/fog/azurerm/models/network/probe.rb +29 -0
  25. data/lib/fog/azurerm/models/network/public_ip.rb +32 -4
  26. data/lib/fog/azurerm/models/network/public_ips.rb +2 -8
  27. data/lib/fog/azurerm/models/network/subnet.rb +20 -12
  28. data/lib/fog/azurerm/models/network/subnets.rb +1 -7
  29. data/lib/fog/azurerm/models/network/traffic_manager_end_point.rb +63 -0
  30. data/lib/fog/azurerm/models/network/traffic_manager_end_points.rb +29 -0
  31. data/lib/fog/azurerm/models/network/traffic_manager_profile.rb +59 -0
  32. data/lib/fog/azurerm/models/network/traffic_manager_profiles.rb +24 -0
  33. data/lib/fog/azurerm/models/network/virtual_network.rb +19 -6
  34. data/lib/fog/azurerm/models/network/virtual_networks.rb +4 -9
  35. data/lib/fog/azurerm/models/resources/resource_group.rb +2 -1
  36. data/lib/fog/azurerm/models/resources/resource_groups.rb +1 -9
  37. data/lib/fog/azurerm/models/storage/storage_account.rb +5 -7
  38. data/lib/fog/azurerm/models/storage/storage_accounts.rb +5 -6
  39. data/lib/fog/azurerm/network.rb +30 -0
  40. data/lib/fog/azurerm/requests/compute/create_availability_set.rb +13 -2
  41. data/lib/fog/azurerm/requests/compute/create_virtual_machine.rb +60 -2
  42. data/lib/fog/azurerm/requests/compute/deallocate_virtual_machine.rb +4 -2
  43. data/lib/fog/azurerm/requests/compute/delete_availability_set.rb +4 -2
  44. data/lib/fog/azurerm/requests/compute/delete_virtual_machine.rb +4 -2
  45. data/lib/fog/azurerm/requests/compute/generalize_virtual_machine.rb +4 -2
  46. data/lib/fog/azurerm/requests/compute/get_virtual_machine.rb +57 -1
  47. data/lib/fog/azurerm/requests/compute/list_availability_sets.rb +16 -1
  48. data/lib/fog/azurerm/requests/compute/list_available_sizes_for_virtual_machine.rb +27 -1
  49. data/lib/fog/azurerm/requests/compute/power_off_virtual_machine.rb +4 -2
  50. data/lib/fog/azurerm/requests/compute/redeploy_virtual_machine.rb +4 -2
  51. data/lib/fog/azurerm/requests/compute/restart_virtual_machine.rb +4 -2
  52. data/lib/fog/azurerm/requests/compute/start_virtual_machine.rb +4 -2
  53. data/lib/fog/azurerm/requests/dns/check_for_zone.rb +16 -17
  54. data/lib/fog/azurerm/requests/dns/create_record_set.rb +80 -37
  55. data/lib/fog/azurerm/requests/dns/create_zone.rb +43 -27
  56. data/lib/fog/azurerm/requests/dns/delete_record_set.rb +17 -19
  57. data/lib/fog/azurerm/requests/dns/delete_zone.rb +16 -19
  58. data/lib/fog/azurerm/requests/dns/get_records_from_record_set.rb +29 -28
  59. data/lib/fog/azurerm/requests/dns/list_record_sets.rb +49 -23
  60. data/lib/fog/azurerm/requests/dns/list_zones.rb +57 -23
  61. data/lib/fog/azurerm/requests/network/check_for_public_ip.rb +3 -1
  62. data/lib/fog/azurerm/requests/network/check_for_virtual_network.rb +4 -2
  63. data/lib/fog/azurerm/requests/network/create_load_balancer.rb +208 -0
  64. data/lib/fog/azurerm/requests/network/create_network_interface.rb +42 -4
  65. data/lib/fog/azurerm/requests/network/create_network_security_group.rb +200 -0
  66. data/lib/fog/azurerm/requests/network/create_public_ip.rb +19 -5
  67. data/lib/fog/azurerm/requests/network/create_subnet.rb +19 -6
  68. data/lib/fog/azurerm/requests/network/create_traffic_manager_endpoint.rb +78 -0
  69. data/lib/fog/azurerm/requests/network/create_traffic_manager_profile.rb +127 -0
  70. data/lib/fog/azurerm/requests/network/create_virtual_network.rb +40 -5
  71. data/lib/fog/azurerm/requests/network/delete_load_balancer.rb +27 -0
  72. data/lib/fog/azurerm/requests/network/delete_network_interface.rb +5 -3
  73. data/lib/fog/azurerm/requests/network/delete_network_security_group.rb +29 -0
  74. data/lib/fog/azurerm/requests/network/delete_public_ip.rb +4 -2
  75. data/lib/fog/azurerm/requests/network/delete_subnet.rb +10 -8
  76. data/lib/fog/azurerm/requests/network/delete_traffic_manager_endpoint.rb +37 -0
  77. data/lib/fog/azurerm/requests/network/delete_traffic_manager_profile.rb +37 -0
  78. data/lib/fog/azurerm/requests/network/delete_virtual_network.rb +8 -6
  79. data/lib/fog/azurerm/requests/network/get_traffic_manager_profile.rb +96 -0
  80. data/lib/fog/azurerm/requests/network/list_load_balancers.rb +31 -0
  81. data/lib/fog/azurerm/requests/network/list_network_interfaces.rb +41 -9
  82. data/lib/fog/azurerm/requests/network/list_network_security_groups.rb +171 -0
  83. data/lib/fog/azurerm/requests/network/list_public_ips.rb +21 -9
  84. data/lib/fog/azurerm/requests/network/list_subnets.rb +34 -11
  85. data/lib/fog/azurerm/requests/network/list_traffic_manager_profiles.rb +98 -0
  86. data/lib/fog/azurerm/requests/network/list_virtual_networks.rb +53 -8
  87. data/lib/fog/azurerm/requests/resources/create_resource_group.rb +11 -2
  88. data/lib/fog/azurerm/requests/resources/delete_resource_group.rb +4 -2
  89. data/lib/fog/azurerm/requests/resources/list_resource_groups.rb +23 -7
  90. data/lib/fog/azurerm/requests/storage/check_storage_account_name_availability.rb +2 -0
  91. data/lib/fog/azurerm/requests/storage/create_storage_account.rb +14 -8
  92. data/lib/fog/azurerm/requests/storage/delete_storage_account.rb +4 -3
  93. data/lib/fog/azurerm/requests/storage/list_storage_account_for_rg.rb +33 -2
  94. data/lib/fog/azurerm/requests/storage/list_storage_accounts.rb +32 -5
  95. data/lib/fog/azurerm/storage.rb +0 -1
  96. data/lib/fog/azurerm/version.rb +1 -1
  97. 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.value
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
- result = promise.value!
10
+ promise.value!
11
11
  Fog::Logger.debug "Virtual Machine #{name} Powered off Successfully."
12
- result
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
- result = promise.value!
10
+ promise.value!
11
11
  Fog::Logger.debug "Virtual Machine #{name} Redeployed Successfully."
12
- result
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
- result = promise.value!
10
+ promise.value!
11
11
  Fog::Logger.debug "Virtual Machine #{name} Restarted Successfully."
12
- result
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
- result = promise.value!
10
+ promise.value!
11
11
  Fog::Logger.debug "Virtual Machine #{name} started Successfully."
12
- result
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
- dns_response = RestClient.get(
10
- resource_url,
11
- accept: 'application/json',
12
- content_type: 'application/json',
13
- authorization: token)
14
- dns_hash = JSON.parse(dns_response)
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
- if e.http_code == 404
17
+ body = JSON.parse(e.response)
18
+ if(body['error']['code']) == 'ResourceNotFound'
22
19
  false
23
20
  else
24
- body = JSON.parse(e.http_body)
25
- msg = "Exception checking if the zone exists: #{body['code']}, #{body['message']}"
26
- fail msg
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(resource_group, name)
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(dns_resource_group, zone_name, record_set_name, records, record_type, ttl)
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 "Creating/Updating RecordSet #{record_set_name} of type '#{record_type}' in zone #{zone_name}"
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
- when 'A'
11
- a_type_records_array = Array.new
12
- records.each do |ip|
13
- a_type_records_array.push({'ipv4Address' => ip})
14
- end
15
- body = {
16
- :location => 'global',
17
- :tags => '',
18
- :properties => {
19
- :TTL => ttl,
20
- :ARecords => a_type_records_array
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
- when 'CNAME'
24
- body = {
25
- :location => 'global',
26
- :tags => '',
27
- :properties => {
28
- :TTL => ttl,
29
- :CNAMERecord => {
30
- 'cname' => records.first # because cname only has 1 value and we know the object is an array passed in.
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
- resource_url,
40
- body.to_json,
41
- accept: 'application/json',
42
- content_type: 'application/json',
43
- authorization: token
44
- )
45
- Fog::Logger.debug "RecordSet #{record_set_name} Created/Updated Successfully!"
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 setting #{record_type} records for the record set: #{record_set_name}"
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(dns_resource_group, zone_name, record_set_name, records, record_type, ttl)
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(dns_resource_group, zone_name)
6
- Fog::Logger.debug "Creating Zone #{zone_name} ..."
7
- resource_url = "#{AZURE_RESOURCE}/subscriptions/#{@subscription_id}/resourceGroups/#{dns_resource_group}/providers/Microsoft.Network/dnsZones/#{zone_name}?api-version=2015-05-04-preview"
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
- location: 'global',
11
- tags: {},
12
- properties: {}
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
- dns_response = RestClient.put(
18
- resource_url,
19
- body.to_json,
20
- accept: 'application/json',
21
- content_type: 'application/json',
22
- authorization: token)
23
- response_hash = JSON.parse(dns_response)
24
- Fog::Logger.debug "Zone #{zone_name} created successfully."
25
- response_hash
26
- rescue RestClient::Exception => e
27
- body = JSON.parse(e.http_body)
28
- if body.key?('error')
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(dns_resource_group, zone_name)
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(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 "Deleting RecordSet #{record_set_name} of type '#{record_type}' in zone #{zone_name}"
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
- resource_url,
13
- accept: 'application/json',
14
- content_type: 'application/json',
15
- authorization: token
13
+ resource_url,
14
+ accept: 'application/json',
15
+ content_type: 'application/json',
16
+ authorization: token
16
17
  )
17
- Fog::Logger.debug "RecordSet #{record_set_name} Deleted Successfully!"
18
+ Fog::Logger.debug "RecordSet #{name} Deleted Successfully!"
18
19
  true
19
- rescue RestClient::Exception => e
20
- body = JSON.parse(e.http_body)
21
- if body.key?('error')
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(record_set_name, dns_resource_group, zone_name, record_type)
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