fog-azure-rm 0.0.8 → 0.0.9

Sign up to get free protection for your applications and to get access to all the features.
Files changed (169) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +2 -0
  3. data/CHANGELOG.md +11 -1
  4. data/README.md +13 -5
  5. data/fog-azure-rm.gemspec +8 -7
  6. data/lib/fog/azurerm/application_gateway.rb +2 -0
  7. data/lib/fog/azurerm/dns.rb +10 -1
  8. data/lib/fog/azurerm/docs/sql.md +130 -0
  9. data/lib/fog/azurerm/docs/structure.md +1 -1
  10. data/lib/fog/azurerm/models/application_gateway/gateway.rb +8 -0
  11. data/lib/fog/azurerm/models/dns/record_set.rb +34 -27
  12. data/lib/fog/azurerm/models/dns/zone.rb +27 -13
  13. data/lib/fog/azurerm/models/network/express_route_circuit_authorization.rb +4 -12
  14. data/lib/fog/azurerm/models/network/express_route_circuit_authorizations.rb +2 -6
  15. data/lib/fog/azurerm/models/network/local_network_gateway.rb +5 -13
  16. data/lib/fog/azurerm/models/network/local_network_gateways.rb +2 -5
  17. data/lib/fog/azurerm/models/network/virtual_network_gateway_connection.rb +3 -20
  18. data/lib/fog/azurerm/models/network/virtual_network_gateway_connections.rb +1 -4
  19. data/lib/fog/azurerm/models/sql/sql_database.rb +89 -0
  20. data/lib/fog/azurerm/models/sql/sql_databases.rb +29 -0
  21. data/lib/fog/azurerm/models/sql/sql_server.rb +57 -0
  22. data/lib/fog/azurerm/models/sql/sql_servers.rb +27 -0
  23. data/lib/fog/azurerm/models/traffic_manager/traffic_manager_end_point.rb +6 -16
  24. data/lib/fog/azurerm/models/traffic_manager/traffic_manager_end_points.rb +6 -11
  25. data/lib/fog/azurerm/models/traffic_manager/traffic_manager_profile.rb +21 -20
  26. data/lib/fog/azurerm/models/traffic_manager/traffic_manager_profiles.rb +4 -7
  27. data/lib/fog/azurerm/network.rb +3 -0
  28. data/lib/fog/azurerm/requests/application_gateway/start_application_gateway.rb +27 -0
  29. data/lib/fog/azurerm/requests/application_gateway/stop_application_gateway.rb +27 -0
  30. data/lib/fog/azurerm/requests/dns/check_for_zone.rb +8 -20
  31. data/lib/fog/azurerm/requests/dns/create_or_update_record_set.rb +47 -81
  32. data/lib/fog/azurerm/requests/dns/create_or_update_zone.rb +27 -34
  33. data/lib/fog/azurerm/requests/dns/delete_record_set.rb +9 -18
  34. data/lib/fog/azurerm/requests/dns/delete_zone.rb +9 -17
  35. data/lib/fog/azurerm/requests/dns/get_record_set.rb +11 -20
  36. data/lib/fog/azurerm/requests/dns/get_records_from_record_set.rb +12 -38
  37. data/lib/fog/azurerm/requests/dns/get_zone.rb +11 -20
  38. data/lib/fog/azurerm/requests/dns/list_record_sets.rb +11 -19
  39. data/lib/fog/azurerm/requests/dns/list_zones.rb +15 -32
  40. data/lib/fog/azurerm/requests/network/create_or_update_express_route_circuit_authorization.rb +4 -2
  41. data/lib/fog/azurerm/requests/network/create_or_update_local_network_gateway.rb +3 -1
  42. data/lib/fog/azurerm/requests/network/create_or_update_virtual_network_gateway_connection.rb +3 -1
  43. data/lib/fog/azurerm/requests/network/delete_express_route_circuit_authorization.rb +2 -1
  44. data/lib/fog/azurerm/requests/network/delete_local_network_gateway.rb +2 -1
  45. data/lib/fog/azurerm/requests/network/delete_virtual_network_gateway_connection.rb +2 -1
  46. data/lib/fog/azurerm/requests/network/get_express_route_circuit_authorization.rb +2 -1
  47. data/lib/fog/azurerm/requests/network/get_load_balancer.rb +8 -7
  48. data/lib/fog/azurerm/requests/network/get_local_network_gateway.rb +2 -1
  49. data/lib/fog/azurerm/requests/network/get_virtual_network_gateway_connection.rb +2 -1
  50. data/lib/fog/azurerm/requests/network/list_express_route_circuit_authorizations.rb +2 -1
  51. data/lib/fog/azurerm/requests/network/list_local_network_gateways.rb +2 -1
  52. data/lib/fog/azurerm/requests/network/list_virtual_network_gateway_connections.rb +2 -1
  53. data/lib/fog/azurerm/requests/sql/create_or_update_database.rb +74 -0
  54. data/lib/fog/azurerm/requests/sql/create_or_update_sql_server.rb +61 -0
  55. data/lib/fog/azurerm/requests/sql/delete_database.rb +35 -0
  56. data/lib/fog/azurerm/requests/sql/delete_sql_server.rb +35 -0
  57. data/lib/fog/azurerm/requests/sql/get_database.rb +48 -0
  58. data/lib/fog/azurerm/requests/sql/get_sql_server.rb +41 -0
  59. data/lib/fog/azurerm/requests/sql/list_databases.rb +65 -0
  60. data/lib/fog/azurerm/requests/sql/list_sql_servers.rb +51 -0
  61. data/lib/fog/azurerm/requests/traffic_manager/delete_traffic_manager_profile.rb +1 -1
  62. data/lib/fog/azurerm/sql.rb +49 -0
  63. data/lib/fog/azurerm/utilities/general.rb +19 -0
  64. data/lib/fog/azurerm/utilities/logger_messages.yml +19 -0
  65. data/lib/fog/azurerm/version.rb +1 -1
  66. data/lib/fog/azurerm.rb +21 -0
  67. data/test/api_stub/models/dns/record_set.rb +34 -56
  68. data/test/api_stub/models/dns/zone.rb +17 -35
  69. data/test/api_stub/models/sql/sql_database.rb +28 -0
  70. data/test/api_stub/models/sql/sql_server.rb +22 -0
  71. data/test/api_stub/requests/dns/record_set.rb +13 -43
  72. data/test/api_stub/requests/dns/zone.rb +21 -36
  73. data/test/api_stub/requests/network/express_route_circuit_authorization.rb +1 -1
  74. data/test/api_stub/requests/sql/database.rb +69 -0
  75. data/test/api_stub/requests/sql/sql_server.rb +45 -0
  76. data/test/api_stub.rb +10 -0
  77. data/test/integration/application_gateway.rb +17 -5
  78. data/test/integration/credentials/azure.yml +4 -4
  79. data/test/integration/express_route_circuit.rb +1 -1
  80. data/test/integration/record_set.rb +1 -0
  81. data/test/integration/resource_tag.rb +14 -3
  82. data/test/integration/sql_server.rb +111 -0
  83. data/test/integration/traffic_manager.rb +1 -1
  84. data/test/integration/zone.rb +1 -0
  85. data/test/models/application_gateway/test_gateway.rb +25 -3
  86. data/test/models/application_gateway/test_gateways.rb +2 -2
  87. data/test/models/compute/test_availability_set.rb +1 -1
  88. data/test/models/compute/test_availability_sets.rb +2 -2
  89. data/test/models/compute/test_server.rb +2 -2
  90. data/test/models/compute/test_servers.rb +2 -2
  91. data/test/models/compute/test_virtual_machine_extension.rb +2 -2
  92. data/test/models/compute/test_virtual_machine_extensions.rb +2 -2
  93. data/test/models/dns/test_record_set.rb +5 -4
  94. data/test/models/dns/test_record_sets.rb +9 -8
  95. data/test/models/dns/test_zone.rb +4 -3
  96. data/test/models/dns/test_zones.rb +4 -3
  97. data/test/models/network/test_express_route_circuit.rb +2 -2
  98. data/test/models/network/test_express_route_circuit_authorization.rb +3 -3
  99. data/test/models/network/test_express_route_circuit_authorizations.rb +3 -3
  100. data/test/models/network/test_express_route_circuit_peering.rb +2 -2
  101. data/test/models/network/test_express_route_circuit_peerings.rb +3 -3
  102. data/test/models/network/test_express_route_circuits.rb +2 -2
  103. data/test/models/network/test_express_route_service_providers.rb +1 -1
  104. data/test/models/network/test_load_balancer.rb +2 -2
  105. data/test/models/network/test_load_balancers.rb +2 -2
  106. data/test/models/network/test_local_network_gateway.rb +2 -2
  107. data/test/models/network/test_local_network_gateways.rb +2 -2
  108. data/test/models/network/test_network_interface.rb +2 -2
  109. data/test/models/network/test_network_interfaces.rb +2 -2
  110. data/test/models/network/test_network_security_group.rb +1 -1
  111. data/test/models/network/test_network_security_groups.rb +2 -2
  112. data/test/models/network/test_network_security_rule.rb +1 -1
  113. data/test/models/network/test_network_security_rules.rb +3 -3
  114. data/test/models/network/test_public_ip.rb +2 -2
  115. data/test/models/network/test_public_ips.rb +2 -2
  116. data/test/models/network/test_subnet.rb +2 -2
  117. data/test/models/network/test_subnets.rb +3 -3
  118. data/test/models/network/test_virtual_network.rb +2 -2
  119. data/test/models/network/test_virtual_network_gateway.rb +2 -2
  120. data/test/models/network/test_virtual_network_gateway_connection.rb +2 -2
  121. data/test/models/network/test_virtual_network_gateway_connections.rb +2 -2
  122. data/test/models/network/test_virtual_network_gateways.rb +2 -2
  123. data/test/models/network/test_virtual_networks.rb +2 -2
  124. data/test/models/resources/test_deployment.rb +2 -2
  125. data/test/models/resources/test_deployments.rb +1 -1
  126. data/test/models/resources/test_resource.rb +1 -1
  127. data/test/models/resources/test_resource_group.rb +2 -2
  128. data/test/models/resources/test_resource_groups.rb +1 -1
  129. data/test/models/resources/test_resources.rb +1 -1
  130. data/test/models/sql/test_database.rb +68 -0
  131. data/test/models/sql/test_databases.rb +42 -0
  132. data/test/models/sql/test_sql_server.rb +56 -0
  133. data/test/models/sql/test_sql_servers.rb +41 -0
  134. data/test/models/storage/test_data_disk.rb +1 -1
  135. data/test/models/storage/test_directories.rb +1 -1
  136. data/test/models/storage/test_directory.rb +1 -1
  137. data/test/models/storage/test_file.rb +1 -1
  138. data/test/models/storage/test_files.rb +1 -1
  139. data/test/models/storage/test_storage_account.rb +1 -1
  140. data/test/models/storage/test_storage_accounts.rb +2 -2
  141. data/test/models/traffic_manager/test_traffic_manager_end_point.rb +2 -2
  142. data/test/models/traffic_manager/test_traffic_manager_end_points.rb +3 -3
  143. data/test/models/traffic_manager/test_traffic_manager_profile.rb +2 -2
  144. data/test/models/traffic_manager/test_traffic_manager_profiles.rb +2 -2
  145. data/test/requests/application_gateway/test_start_application_gateway.rb +25 -0
  146. data/test/requests/application_gateway/test_stop_application_gateway.rb +25 -0
  147. data/test/requests/dns/test_check_for_zone.rb +8 -36
  148. data/test/requests/dns/test_create_record_set.rb +19 -18
  149. data/test/requests/dns/test_create_zone.rb +14 -13
  150. data/test/requests/dns/test_delete_record_set.rb +8 -19
  151. data/test/requests/dns/test_delete_zone.rb +8 -19
  152. data/test/requests/dns/test_get_record_set.rb +8 -30
  153. data/test/requests/dns/test_get_records_from_record_set.rb +15 -28
  154. data/test/requests/dns/test_get_zone.rb +11 -22
  155. data/test/requests/dns/test_list_record_sets.rb +10 -11
  156. data/test/requests/dns/test_list_zones.rb +9 -23
  157. data/test/requests/network/{test_create_or_update_local_network_gateway.rb → test_create_local_network_gateway.rb} +2 -2
  158. data/test/requests/network/test_create_virtual_network_gateway_connection.rb +2 -2
  159. data/test/requests/sql/test_create_or_update_database.rb +28 -0
  160. data/test/requests/sql/test_create_or_update_sql_server.rb +28 -0
  161. data/test/requests/sql/test_delete_database.rb +34 -0
  162. data/test/requests/sql/test_delete_sql_server.rb +34 -0
  163. data/test/requests/sql/test_get_database.rb +35 -0
  164. data/test/requests/sql/test_get_sql_server.rb +35 -0
  165. data/test/requests/sql/test_list_databases.rb +35 -0
  166. data/test/requests/sql/test_list_sql_servers.rb +35 -0
  167. data/test/smoke_tests/compute/test_resource_group_smoke.rb +27 -0
  168. data/test/test_helper.rb +27 -0
  169. metadata +68 -17
@@ -3,41 +3,40 @@ module Fog
3
3
  class AzureRM
4
4
  # Real class for DNS Request
5
5
  class Real
6
- def create_or_update_zone(resource_group, name)
7
- Fog::Logger.debug "Creating/Updating 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
-
10
- body = {
11
- location: 'global',
12
- tags: {},
13
- properties: {}
14
- }
15
-
6
+ def create_or_update_zone(zone_params)
7
+ msg = "Creating/updating Zone #{zone_params[:name]} in Resource Group: #{zone_params[:resource_group]}."
8
+ Fog::Logger.debug msg
9
+ zone_object = get_zone_object(zone_params)
16
10
  begin
17
- token = Fog::Credentials::AzureRM.get_token(@tenant_id, @client_id, @client_secret)
18
- response = RestClient.put(
19
- resource_url,
20
- body.to_json,
21
- accept: 'application/json',
22
- content_type: 'application/json',
23
- authorization: token
24
- )
25
- Fog::Logger.debug "Zone #{name} created successfully."
26
- parsed_response = JSON.parse(response)
27
- parsed_response
28
- rescue Exception => e
29
- Fog::Logger.warning "Exception creating zone #{name} in resource group #{resource_group}"
30
- msg = "AzureDns::Zone - Exception is: #{e.message}"
31
- raise msg
11
+ zone = @dns_client.zones.create_or_update(zone_params[:resource_group], zone_params[:name], zone_object)
12
+ rescue MsRestAzure::AzureOperationError => e
13
+ raise_azure_exception(e, msg)
32
14
  end
15
+ Fog::Logger.debug "Zone #{zone_params[:name]} created/updated successfully."
16
+ zone
17
+ end
18
+
19
+ private
20
+
21
+ def get_zone_object(zone_params)
22
+ zone = Azure::ARM::Dns::Models::Zone.new
23
+ zone.name = zone_params[:name]
24
+ zone.location = zone_params[:location]
25
+ zone.type = zone_params[:type]
26
+ zone.number_of_record_sets = zone_params[:number_of_record_sets]
27
+ zone.max_number_of_record_sets = zone_params[:max_number_of_record_sets]
28
+ zone.tags = zone_params[:tags] if zone.tags.nil?
29
+ zone.etag = zone_params[:etag]
30
+
31
+ zone
33
32
  end
34
33
  end
35
34
 
36
35
  # Mock class for DNS Request
37
36
  class Mock
38
- def create_or_update_zone(resource_group, name)
37
+ def create_or_update_zone(*)
39
38
  {
40
- 'id' => "/subscriptions/########-####-####-####-############/resourceGroups/#{resource_group}/providers/Microsoft.Network/dnszones/#{name}",
39
+ 'id' => '/subscriptions/########-####-####-####-############/resourceGroups/resource_group/providers/Microsoft.Network/dnszones/name',
41
40
  'name' => name,
42
41
  'type' => 'Microsoft.Network/dnszones',
43
42
  'etag' => '00000002-0000-0000-76c2-f7ad90b5d101',
@@ -46,13 +45,7 @@ module Fog
46
45
  'properties' =>
47
46
  {
48
47
  'maxNumberOfRecordSets' => 5000,
49
- 'nameServers' =>
50
- [
51
- 'ns1-05.azure-dns.com.',
52
- 'ns2-05.azure-dns.net.',
53
- 'ns3-05.azure-dns.org.',
54
- 'ns4-05.azure-dns.info.'
55
- ],
48
+ 'nameServers' => %w(ns1-05.azure-dns.com. ns2-05.azure-dns.net. ns3-05.azure-dns.org. ns4-05.azure-dns.info.),
56
49
  'numberOfRecordSets' => 2,
57
50
  'parentResourceGroupName' => resource_group
58
51
  }
@@ -4,31 +4,22 @@ module Fog
4
4
  # Real class for DNS Request
5
5
  class Real
6
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}"
9
-
7
+ msg = "Deleting Record Set #{name} from Resource Group #{resource_group}."
8
+ Fog::Logger.debug msg
10
9
  begin
11
- token = Fog::Credentials::AzureRM.get_token(@tenant_id, @client_id, @client_secret)
12
- RestClient.delete(
13
- resource_url,
14
- accept: 'application/json',
15
- content_type: 'application/json',
16
- authorization: token
17
- )
18
- Fog::Logger.debug "RecordSet #{name} Deleted Successfully!"
19
- true
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}"
23
- raise msg
10
+ @dns_client.record_sets.delete(resource_group, zone_name, name, record_type)
11
+ rescue MsRestAzure::AzureOperationError => e
12
+ raise_azure_exception(e, msg)
24
13
  end
14
+ Fog::Logger.debug "Record Set #{name} Deleted Successfully."
15
+ true
25
16
  end
26
17
  end
27
18
 
28
19
  # Mock class for DNS Request
29
20
  class Mock
30
- def delete_record_set(_resource_group, name, _zone_name, _record_type)
31
- Fog::Logger.debug "Record Set #{name} deleted successfully."
21
+ def delete_record_set(*)
22
+ Fog::Logger.debug 'Record Set name deleted successfully.'
32
23
  true
33
24
  end
34
25
  end
@@ -4,30 +4,22 @@ module Fog
4
4
  # Real class for DNS Request
5
5
  class Real
6
6
  def delete_zone(resource_group, name)
7
- Fog::Logger.debug "Deleting Zone #{name} ..."
8
- resource_url = "#{AZURE_RESOURCE}/subscriptions/#{@subscription_id}/resourceGroups/#{resource_group}/providers/Microsoft.Network/dnsZones/#{name}?api-version=2015-05-04-preview"
7
+ msg = "Deleting Zone #{name} from Resource Group #{resource_group}."
8
+ Fog::Logger.debug msg
9
9
  begin
10
- token = Fog::Credentials::AzureRM.get_token(@tenant_id, @client_id, @client_secret)
11
- RestClient.delete(
12
- resource_url,
13
- accept: 'application/json',
14
- content_type: 'application/json',
15
- authorization: token
16
- )
17
- Fog::Logger.debug "Zone #{name} deleted successfully."
18
- true
19
- rescue Exception => e
20
- Fog::Logger.warning "Exception deleting zone #{name} from resource group #{resource_group}"
21
- msg = "AzureDns::Zone - Exception is: #{e.message}"
22
- raise msg
10
+ @dns_client.zones.delete(resource_group, name)
11
+ rescue MsRestAzure::AzureOperationError => e
12
+ raise_azure_exception(e, msg)
23
13
  end
14
+ Fog::Logger.debug "Zone #{name} Deleted Successfully."
15
+ true
24
16
  end
25
17
  end
26
18
 
27
19
  # Mock class for DNS Request
28
20
  class Mock
29
- def delete_zone(_resource_group, name)
30
- Fog::Logger.debug "Zone #{name} deleted successfully."
21
+ def delete_zone(*)
22
+ Fog::Logger.debug 'Zone deleted successfully.'
31
23
  true
32
24
  end
33
25
  end
@@ -4,39 +4,30 @@ module Fog
4
4
  # Real class for DNS Request
5
5
  class Real
6
6
  def get_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 "Getting a RecordSet #{name} of type '#{record_type}' in zone #{zone_name}"
9
-
7
+ msg = "Getting Record Set #{name} from Resource Group #{resource_group}."
8
+ Fog::Logger.debug msg
10
9
  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
- Fog::Logger.warning "Exception trying to get existing #{record_type} records for the record set: #{name}"
20
- msg = "AzureDns::RecordSet - Exception is: #{e.message}"
21
- raise msg
10
+ record_set = @dns_client.record_sets.get(resource_group, zone_name, name, record_type)
11
+ rescue MsRestAzure::AzureOperationError => e
12
+ raise_azure_exception(e, msg)
22
13
  end
23
- JSON.parse(dns_response)
14
+ record_set
24
15
  end
25
16
  end
26
17
 
27
18
  # Mock class for DNS Request
28
19
  class Mock
29
- def get_record_set(resource_group, name, zone_name, record_type)
20
+ def get_record_set(*)
30
21
  {
31
- 'id' => "/subscriptions/########-####-####-####-############/resourceGroups/#{resource_group}/providers/Microsoft.Network/dnszones/#{zone_name}/#{record_type}/#{name}",
32
- 'name' => name,
33
- 'type' => "Microsoft.Network/dnszones/#{record_type}",
22
+ 'id' => '/subscriptions/########-####-####-####-############/resourceGroups/resource_group/providers/Microsoft.Network/dnszones/zone_name/record_type/name',
23
+ 'name' => 'name',
24
+ 'type' => 'Microsoft.Network/dnszones/record_type',
34
25
  'etag' => '3376a38f-a53f-4ed0-a2e7-dfaba67dbb40',
35
26
  'location' => 'global',
36
27
  'properties' =>
37
28
  {
38
29
  'metadata' => nil,
39
- 'fqdn' => "#{name}.#{zone_name}.",
30
+ 'fqdn' => 'name.zone_name',
40
31
  'TTL' => 60,
41
32
  'ARecords' =>
42
33
  [
@@ -4,53 +4,27 @@ module Fog
4
4
  # Real class for DNS Request
5
5
  class Real
6
6
  def get_records_from_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 "Getting all records from RecordSet #{name} of type '#{record_type}' in zone #{zone_name}"
9
-
10
- existing_records = []
7
+ msg = "Getting all records from RecordSet #{name} of type '#{record_type}' in zone #{zone_name}"
8
+ Fog::Logger.debug msg
11
9
  begin
12
- token = Fog::Credentials::AzureRM.get_token(@tenant_id, @client_id, @client_secret)
13
- dns_response = RestClient.get(
14
- resource_url,
15
- accept: 'application/json',
16
- content_type: 'application/json',
17
- authorization: token
18
- )
19
- rescue Exception => e
20
- Fog::Logger.warning "Exception trying to get existing #{record_type} records for the record set: #{name}"
21
- msg = "AzureDns::RecordSet - Exception is: #{e.message}"
22
- raise msg
10
+ record_set = @dns_client.record_sets.get(resource_group, zone_name, name, record_type)
11
+ rescue MsRestAzure::AzureOperationError => e
12
+ raise_azure_exception(e, msg)
23
13
  end
24
14
 
25
- begin
26
- dns_hash = JSON.parse(dns_response)
27
- case record_type
28
- when 'A'
29
- dns_hash['properties']['ARecords'].each do |record|
30
- Fog::Logger.debug "AzureDns:RecordSet - A record is: #{record}"
31
- existing_records.push(record['ipv4Address'])
32
- end
33
- when 'CNAME'
34
- Fog::Logger.debug "AzureDns:RecordSet - CNAME record is: #{dns_hash['properties']['CNAMERecord']['cname']}"
35
- existing_records.push(dns_hash['properties']['CNAMERecord']['cname'])
36
- end
37
- existing_records
38
- rescue Exception => e
39
- Fog::Logger.warning "Exception trying to parse response: #{dns_response}"
40
- msg = "AzureDns::RecordSet - Exception is: #{e.message}"
41
- raise msg
15
+ case record_type
16
+ when 'A'
17
+ record_set.arecords
18
+ when 'CNAME'
19
+ record_set.cname_record
42
20
  end
43
21
  end
44
22
  end
45
23
 
46
24
  # Mock class for DNS Request
47
25
  class Mock
48
- def get_records_from_record_set(_resource_group, _name, _zone_name, _record_type)
49
- [
50
- '1.2.3.4',
51
- '1.2.3.5',
52
- '1.2.3.6'
53
- ]
26
+ def get_records_from_record_set(*)
27
+ %w(1.2.3.4 1.2.3.5 1.2.3.6)
54
28
  end
55
29
  end
56
30
  end
@@ -4,32 +4,23 @@ module Fog
4
4
  # Real class for DNS Request
5
5
  class Real
6
6
  def get_zone(resource_group, name)
7
- resource_url = "#{AZURE_RESOURCE}/subscriptions/#{@subscription_id}/resourceGroups/#{resource_group}/providers/Microsoft.Network/dnsZones/#{name}?api-version=2016-04-01"
8
- Fog::Logger.debug "Getting a zone: #{name}"
9
-
7
+ msg = "Getting Zone #{name} from Resource Group #{resource_group}."
8
+ Fog::Logger.debug msg
10
9
  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
- Fog::Logger.warning "Exception trying to get existing zone: #{name}."
20
- msg = "AzureDns::RecordSet - Exception is: #{e.message}"
21
- raise msg
10
+ zone = @dns_client.zones.get(resource_group, name)
11
+ rescue MsRestAzure::AzureOperationError => e
12
+ raise_azure_exception(e, msg)
22
13
  end
23
- JSON.parse(dns_response)
14
+ zone
24
15
  end
25
16
  end
26
17
 
27
18
  # Mock class for DNS Request
28
19
  class Mock
29
- def get_zone(resource_group, name)
20
+ def get_zone(*)
30
21
  {
31
- 'id' => "/subscriptions/########-####-####-####-############/resourceGroups/#{resource_group}/providers/Microsoft.Network/dnszones/#{name}",
32
- 'name' => name,
22
+ 'id' => '/subscriptions/########-####-####-####-############/resourceGroups/resource_group/providers/Microsoft.Network/dnszones/zone_name',
23
+ 'name' => 'zone_name',
33
24
  'type' => 'Microsoft.Network/dnszones',
34
25
  'etag' => '00000003-0000-0000-bd66-02b337a4d101',
35
26
  'location' => 'global',
@@ -39,9 +30,9 @@ module Fog
39
30
  'maxNumberOfRecordSets' => 100_00,
40
31
  'nameServers' => nil,
41
32
  'numberOfRecordSets' => 2,
42
- 'parentResourceGroupName' => resource_group
33
+ 'parentResourceGroupName' => 'resource_group'
43
34
  },
44
- 'resource_group' => resource_group
35
+ 'resource_group' => 'resource_group'
45
36
  }
46
37
  end
47
38
  end
@@ -4,31 +4,23 @@ module Fog
4
4
  # Real class for DNS Request
5
5
  class Real
6
6
  def list_record_sets(resource_group, zone_name)
7
- resource_url = "#{AZURE_RESOURCE}/subscriptions/#{@subscription_id}/resourceGroups/#{resource_group}/providers/Microsoft.Network/dnsZones/#{zone_name}/recordsets?api-version=2015-05-04-preview"
7
+ msg = 'Getting list of Record sets.'
8
+ Fog::Logger.debug msg
8
9
  begin
9
- token = Fog::Credentials::AzureRM.get_token(@tenant_id, @client_id, @client_secret)
10
- dns_response = RestClient.get(
11
- resource_url,
12
- accept: 'application/json',
13
- content_type: 'application/json',
14
- authorization: token
15
- )
16
- parsed_record_set = JSON.parse(dns_response)
17
- parsed_record_set['value']
18
- rescue Exception => e
19
- Fog::Logger.warning "Exception listing recordsets in zone #{zone_name} in resource group #{resource_group}"
20
- msg = "AzureDns::RecordSet - Exception is: #{e.message}"
21
- raise msg
10
+ zones = @dns_client.record_sets.list_all_in_resource_group(resource_group, zone_name)
11
+ rescue MsRestAzure::AzureOperationError => e
12
+ raise_azure_exception(e, msg)
22
13
  end
14
+ zones
23
15
  end
24
16
  end
25
17
 
26
18
  # Mock class for DNS Request
27
19
  class Mock
28
- def list_record_sets(resource_group, zone_name)
20
+ def list_record_sets(*)
29
21
  [
30
22
  {
31
- 'id' => "/subscriptions/########-####-####-####-############/resourceGroups/#{resource_group}/providers/Microsoft.Network/dnszones/#{zone_name}/A/test_record",
23
+ 'id' => '/subscriptions/########-####-####-####-############/resourceGroups/resource_group/providers/Microsoft.Network/dnszones/zone_name/A/test_record',
32
24
  'name' => 'test_record',
33
25
  'type' => 'Microsoft.Network/dnszones/A',
34
26
  'etag' => '7f159cb1-653d-4920-bc03-153c700412a2',
@@ -36,7 +28,7 @@ module Fog
36
28
  'properties' =>
37
29
  {
38
30
  'metadata' => nil,
39
- 'fqdn' => "test_record.#{zone_name}.",
31
+ 'fqdn' => 'test_record.zone_name',
40
32
  'TTL' => 60,
41
33
  'ARecords' =>
42
34
  [
@@ -47,7 +39,7 @@ module Fog
47
39
  }
48
40
  },
49
41
  {
50
- 'id' => "/subscriptions/########-####-####-####-############/resourceGroups/#{resource_group}/providers/Microsoft.Network/dnszones/#{zone_name}/CNAME/test_record1",
42
+ 'id' => '/subscriptions/########-####-####-####-############/resourceGroups/resource_group/providers/Microsoft.Network/dnszones/zone_name/CNAME/test_record1',
51
43
  'name' => 'test_record1',
52
44
  'type' => 'Microsoft.Network/dnszones/CNAME',
53
45
  'etag' => 'cc5ceb6e-16ad-4a5f-bbd7-9bc31c12d0cf',
@@ -55,7 +47,7 @@ module Fog
55
47
  'properties' =>
56
48
  {
57
49
  'metadata' => nil,
58
- 'fqdn' => "test_record1.#{zone_name}.",
50
+ 'fqdn' => 'test_record1.zone_name',
59
51
  'TTL' => 60,
60
52
  'CNAMERecord' =>
61
53
  {
@@ -4,34 +4,27 @@ module Fog
4
4
  # Real class for DNS Request
5
5
  class Real
6
6
  def list_zones
7
- zone_hash_array = []
8
- @resources.resource_groups.each do |rg|
9
- list_zones_by_rg(rg.name).each do |zone_hash|
10
- zone_hash_array << zone_hash
11
- end
7
+ msg = 'Getting list of Zones.'
8
+ Fog::Logger.debug msg
9
+ begin
10
+ zones = @dns_client.zones.list_in_subscription
11
+ rescue MsRestAzure::AzureOperationError => e
12
+ raise_azure_exception(e, msg)
12
13
  end
13
- zone_hash_array
14
+ zones
14
15
  end
15
16
 
16
17
  private
17
18
 
18
19
  def list_zones_by_rg(resource_group)
19
- resource_url = "#{AZURE_RESOURCE}/subscriptions/#{@subscription_id}/resourceGroups/#{resource_group}/providers/Microsoft.Network/dnsZones?api-version=2015-05-04-preview"
20
+ msg = "Getting list of Zones in Resource Group #{resource_group}."
21
+ Fog::Logger.debug msg
20
22
  begin
21
- token = Fog::Credentials::AzureRM.get_token(@tenant_id, @client_id, @client_secret)
22
- dns_response = RestClient.get(
23
- resource_url,
24
- accept: 'application/json',
25
- content_type: 'application/json',
26
- authorization: token
27
- )
28
- parsed_zone = JSON.parse(dns_response)
29
- parsed_zone['value']
30
- rescue Exception => e
31
- Fog::Logger.warning "Exception listing zones in resource group #{resource_group}"
32
- msg = "AzureDns::RecordSet - Exception is: #{e.message}"
33
- raise msg
23
+ zones = @dns_client.zones.list_in_resource_group(resource_group)
24
+ rescue MsRestAzure::AzureOperationError => e
25
+ raise_azure_exception(e, msg)
34
26
  end
27
+ zones
35
28
  end
36
29
  end
37
30
 
@@ -50,12 +43,7 @@ module Fog
50
43
  {
51
44
  'maxNumberOfRecordSets' => 5000,
52
45
  'nameServers' =>
53
- [
54
- 'ns1-05.azure-dns.com.',
55
- 'ns2-05.azure-dns.net.',
56
- 'ns3-05.azure-dns.org.',
57
- 'ns4-05.azure-dns.info.'
58
- ],
46
+ %w(ns1-05.azure-dns.com. ns2-05.azure-dns.net. ns3-05.azure-dns.org. ns4-05.azure-dns.info.),
59
47
  'numberOfRecordSets' => 2,
60
48
  'parentResourceGroupName' => 'fog_test_rg'
61
49
  }
@@ -71,12 +59,7 @@ module Fog
71
59
  {
72
60
  'maxNumberOfRecordSets' => 5000,
73
61
  'nameServers' =>
74
- [
75
- 'ns1-02.azure-dns.com.',
76
- 'ns2-02.azure-dns.net.',
77
- 'ns3-02.azure-dns.org.',
78
- 'ns4-02.azure-dns.info.'
79
- ],
62
+ %w(ns1-02.azure-dns.com. ns2-02.azure-dns.net. ns3-02.azure-dns.org. ns4-02.azure-dns.info.),
80
63
  'numberOfRecordSets' => 2,
81
64
  'parentResourceGroupName' => 'fog_test_rg'
82
65
  }
@@ -4,7 +4,9 @@ module Fog
4
4
  # Real class for Express Route Circuit Authorization Request
5
5
  class Real
6
6
  def create_or_update_express_route_circuit_authorization(circuit_authorization_params)
7
- msg = "Creating/updating Express Route Circuit Authorization #{circuit_authorization_params[:authorization_name]} in Resource Group: #{circuit_authorization_params[:resource_group]}."
7
+ msg = @logger_messages['network']['express_route_circuit_authentication']['message']['create']
8
+ .gsub('NAME', circuit_authorization_params[:authorization_name])
9
+ .gsub('RESOURCE_GROUP', circuit_authorization_params[:resource_group])
8
10
  Fog::Logger.debug msg
9
11
  circuit_authorization = get_circuit_authorization_object(circuit_authorization_params)
10
12
  begin
@@ -22,7 +24,7 @@ module Fog
22
24
  circuit_authorization = Azure::ARM::Network::Models::ExpressRouteCircuitAuthorization.new
23
25
  circuit_authorization.name = circuit_authorization_params[:authorization_name]
24
26
  circuit_authorization.authorization_key = circuit_authorization_params[:authorization_key]
25
- circuit_authorization.authorization_use_status = circuit_authorization_params[:authorization_status]
27
+ circuit_authorization.authorization_use_status = circuit_authorization_params[:authorization_use_status]
26
28
  circuit_authorization.provisioning_state = circuit_authorization_params[:provisioning_state]
27
29
  circuit_authorization.etag = circuit_authorization_params[:etag]
28
30
 
@@ -4,7 +4,9 @@ module Fog
4
4
  # Real class for Local Network Gateway Request
5
5
  class Real
6
6
  def create_or_update_local_network_gateway(local_network_gateway_params)
7
- msg = "Creating/Updating Local Network Gateway: #{local_network_gateway_params[:name]} in Resource Group: #{local_network_gateway_params[:resource_group]}."
7
+ msg = @logger_messages['network']['local_network_gateway']['message']['create']
8
+ .gsub('NAME', local_network_gateway_params[:name])
9
+ .gsub('RESOURCE_GROUP', local_network_gateway_params[:resource_group])
8
10
  Fog::Logger.debug msg
9
11
  local_network_gateway = get_local_network_gateway_object(local_network_gateway_params)
10
12
  begin
@@ -5,7 +5,9 @@ module Fog
5
5
  # Real class for Network Request
6
6
  class Real
7
7
  def create_or_update_virtual_network_gateway_connection(gateway_connection_params)
8
- msg = "Creating/Updating Virtual Network Gateway Connection: #{gateway_connection_params[:name]} in Resource Group: #{gateway_connection_params[:resource_group_name]}."
8
+ msg = @logger_messages['network']['virtual_network_gateway_connection']['message']['create']
9
+ .gsub('NAME', gateway_connection_params[:name])
10
+ .gsub('RESOURCE_GROUP', gateway_connection_params[:resource_group_name])
9
11
  Fog::Logger.debug msg
10
12
  gateway_connection = get_network_gateway_connection_object(gateway_connection_params)
11
13
  begin
@@ -4,7 +4,8 @@ module Fog
4
4
  # Real class for Express Route Circuit Authorization Request
5
5
  class Real
6
6
  def delete_express_route_circuit_authorization(resource_group_name, circuit_name, authorization_name)
7
- msg = "Deleting Express Route Circuit Authorization #{authorization_name} from Resource Group #{resource_group_name}."
7
+ msg = @logger_messages['network']['express_route_circuit_authentication']['message']['delete']
8
+ .gsub('NAME', authorization_name).gsub('RESOURCE_GROUP', resource_group_name)
8
9
  Fog::Logger.debug msg
9
10
  begin
10
11
  @network_client.express_route_circuit_authorizations.delete(resource_group_name, circuit_name, authorization_name)
@@ -4,7 +4,8 @@ module Fog
4
4
  # Real class for Local Network Gateway Request
5
5
  class Real
6
6
  def delete_local_network_gateway(resource_group_name, local_network_gateway_name)
7
- msg = "Deleting Local Network Gateway: #{local_network_gateway_name}"
7
+ msg = @logger_messages['network']['local_network_gateway']['message']['delete']
8
+ .gsub('NAME', local_network_gateway_name).gsub('RESOURCE_GROUP', resource_group_name)
8
9
  Fog::Logger.debug msg
9
10
  begin
10
11
  @network_client.local_network_gateways.delete(resource_group_name, local_network_gateway_name)
@@ -4,7 +4,8 @@ module Fog
4
4
  # Real class for Network Request
5
5
  class Real
6
6
  def delete_virtual_network_gateway_connection(resource_group_name, gateway_connection_name)
7
- msg = "Deleting Virtual Network Gateway Connection #{gateway_connection_name} from Resource Group #{resource_group_name}."
7
+ msg = @logger_messages['network']['virtual_network_gateway_connection']['message']['delete']
8
+ .gsub('NAME', gateway_connection_name).gsub('RESOURCE_GROUP', resource_group_name)
8
9
  Fog::Logger.debug msg
9
10
  begin
10
11
  @network_client.virtual_network_gateway_connections.delete(resource_group_name, gateway_connection_name)
@@ -4,7 +4,8 @@ module Fog
4
4
  # Real class for Express Route Circuit Authorization Request
5
5
  class Real
6
6
  def get_express_route_circuit_authorization(resource_group_name, circuit_name, authorization_name)
7
- msg = "Getting Express Route Circuit Authorization #{authorization_name} from Resource Group #{resource_group_name}."
7
+ msg = @logger_messages['network']['express_route_circuit_authentication']['message']['get']
8
+ .gsub('NAME', authorization_name).gsub('RESOURCE_GROUP', resource_group_name)
8
9
  Fog::Logger.debug msg
9
10
  begin
10
11
  circuit_authorization = @network_client.express_route_circuit_authorizations.get(resource_group_name, circuit_name, authorization_name)
@@ -14,10 +14,12 @@ module Fog
14
14
  Fog::Logger.debug "Getting Load Balancer #{load_balancer_name} Successfully."
15
15
  load_balancer
16
16
  end
17
- # Mock class for Load-Balancer Request
18
- class Mock
19
- def get_load_balancer(*)
20
- response = '{
17
+ end
18
+
19
+ # Mock class for Load-Balancer Request
20
+ class Mock
21
+ def get_load_balancer(*)
22
+ response = '{
21
23
  "name":"mylb1",
22
24
  "id":"/subscriptions/{guid}/resourceGroups/{resourceGroupName}/providers/Microsoft.Network/loadBalancers/mylb1",
23
25
  "location":"North US",
@@ -159,9 +161,8 @@ module Fog
159
161
  ]
160
162
  }
161
163
  }'
162
- load_balancer_mapper = Azure::ARM::Network::Models::LoadBalancer.mapper
163
- @network_client.deserialize(load_balancer_mapper, JSON.load(response), 'result.body')
164
- end
164
+ load_balancer_mapper = Azure::ARM::Network::Models::LoadBalancer.mapper
165
+ @network_client.deserialize(load_balancer_mapper, JSON.load(response), 'result.body')
165
166
  end
166
167
  end
167
168
  end
@@ -4,7 +4,8 @@ module Fog
4
4
  # Real class for Local Network Gateway Request
5
5
  class Real
6
6
  def get_local_network_gateway(resource_group_name, local_network_gateway_name)
7
- msg = "Getting Local Network Gateway #{local_network_gateway_name} from Resource Group #{resource_group_name}."
7
+ msg = @logger_messages['network']['local_network_gateway']['message']['get']
8
+ .gsub('NAME', local_network_gateway_name).gsub('RESOURCE_GROUP', resource_group_name)
8
9
  Fog::Logger.debug msg
9
10
  begin
10
11
  local_network_gateway = @network_client.local_network_gateways.get(resource_group_name, local_network_gateway_name)
@@ -4,7 +4,8 @@ module Fog
4
4
  # Real class for Virtual Network Gateway Connection Request
5
5
  class Real
6
6
  def get_virtual_network_gateway_connection(resource_group_name, gateway_connection_name)
7
- msg = "Getting Virtual Network Gateway Connection #{gateway_connection_name} from Resource Group #{resource_group_name}."
7
+ msg = @logger_messages['network']['virtual_network_gateway_connection']['message']['get']
8
+ .gsub('NAME', gateway_connection_name).gsub('RESOURCE_GROUP', resource_group_name)
8
9
  Fog::Logger.debug msg
9
10
  begin
10
11
  gateway_connection = @network_client.virtual_network_gateway_connections.get(resource_group_name, gateway_connection_name)
@@ -4,7 +4,8 @@ module Fog
4
4
  # Real class for Express Route Circuit Authorization Request
5
5
  class Real
6
6
  def list_express_route_circuit_authorizations(resource_group_name, circuit_name)
7
- msg = "Getting list of Express Route Circuit Authorizations from Resource Group #{resource_group_name}."
7
+ msg = @logger_messages['network']['express_route_circuit_authentication']['message']['list']
8
+ .gsub('RESOURCE_GROUP', resource_group_name)
8
9
  Fog::Logger.debug msg
9
10
  begin
10
11
  circuit_authorizations = @network_client.express_route_circuit_authorizations.list(resource_group_name, circuit_name)