fog-azure-rm 0.0.1 → 0.0.2

Sign up to get free protection for your applications and to get access to all the features.
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