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
@@ -2,13 +2,16 @@ module Fog
2
2
  module Network
3
3
  class AzureRM
4
4
  class Real
5
- def create_virtual_network(name, location, resource_group_name, dns_list, subnet_address_list, network_address_list)
5
+ def create_virtual_network(resource_group, name, location, dns_list, subnet_address_list, network_address_list)
6
+ Fog::Logger.debug "Creating Virtual Network: #{name}..."
6
7
  virtual_network = define_vnet_object(location, name, network_address_list, dns_list, subnet_address_list)
7
8
  begin
8
- promise = @network_client.virtual_networks.create_or_update(resource_group_name, name, virtual_network)
9
- promise.value!
9
+ promise = @network_client.virtual_networks.create_or_update(resource_group, name, virtual_network)
10
+ result = promise.value!
11
+ Fog::Logger.debug "Virtual Network #{name} created successfully."
12
+ Azure::ARM::Network::Models::VirtualNetwork.serialize_object(result.body)
10
13
  rescue MsRestAzure::AzureOperationError => e
11
- msg = "Exception creating Virtual Network #{name} in Resource Group: #{resource_group_name}. #{e.body['error']['message']}"
14
+ msg = "Exception creating Virtual Network #{name} in Resource Group: #{resource_group}. #{e.body['error']['message']}"
12
15
  raise msg
13
16
  end
14
17
  end
@@ -72,7 +75,39 @@ module Fog
72
75
  end
73
76
 
74
77
  class Mock
75
- def create_virtual_network(_name, _location, _dns_list, _subnet_address_list, _network_address_list, _resource_group_name)
78
+ def create_virtual_network(resource_group, name, location, dns_list, subnet_address_list, network_address_list)
79
+ {
80
+ 'id' => "/subscriptions/########-####-####-####-############/resourceGroups/#{resource_group}/providers/Microsoft.Network/virtualNetworks/#{name}",
81
+ 'name' => name,
82
+ 'type' => 'Microsoft.Network/virtualNetworks',
83
+ 'location' => location,
84
+ 'properties' =>
85
+ {
86
+ 'addressSpace' =>
87
+ {
88
+ 'addressPrefixes' =>
89
+ [
90
+ network_address_list
91
+ ]
92
+ },
93
+ 'subnets' =>
94
+ [
95
+ {
96
+ 'id' => "/subscriptions/########-####-####-####-############/resourceGroups/#{resource_group}providers/Microsoft.Network/virtualNetworks/#{name}/subnets/subnet_0_#{name}",
97
+ 'properties' =>
98
+ {
99
+ 'addressPrefix' => subnet_address_list,
100
+ 'provisioningState' => 'Succeeded'
101
+ },
102
+ 'name' => "subnet_0_#{name}",
103
+ 'etag' => "W/\"ffbb0f61-b2bb-404e-9d20-79d854536f62\""
104
+ }
105
+ ],
106
+ 'resourceGuid' => 'c573f8e2-d916-493f-8b25-a681c31269ef',
107
+ 'provisioningState' => 'Succeeded'
108
+ },
109
+ 'etag' => "W/\"ffbb0f61-b2bb-404e-9d20-79d854536f62\""
110
+ }
76
111
  end
77
112
  end
78
113
  end
@@ -0,0 +1,27 @@
1
+ module Fog
2
+ module Network
3
+ class AzureRM
4
+ # Real class for Network Request
5
+ class Real
6
+ def delete_load_balancer(resource_group, name)
7
+ Fog::Logger.debug "Deleting Load_Balancer #{name} from Resource Group #{resource_group}."
8
+ begin
9
+ promise = @network_client.load_balancers.delete(resource_group, name)
10
+ promise.value!
11
+ Fog::Logger.debug "Load_Balancer #{name} Deleted Successfully."
12
+ true
13
+ rescue MsRestAzure::AzureOperationError => e
14
+ msg = "Exception deleting Load_Balancer #{name} in Resource Group: #{resource_group}. #{e.body['error']['message']}"
15
+ raise msg
16
+ end
17
+ end
18
+ end
19
+
20
+ # Mock class for Network Request
21
+ class Mock
22
+ def delete_load_balancer(_resource_group, _name)
23
+ end
24
+ end
25
+ end
26
+ end
27
+ end
@@ -7,9 +7,9 @@ module Fog
7
7
  Fog::Logger.debug "Deleting NetworkInterface #{name} from Resource Group #{resource_group}."
8
8
  begin
9
9
  promise = @network_client.network_interfaces.delete(resource_group, name)
10
- response = promise.value!
10
+ promise.value!
11
11
  Fog::Logger.debug "NetworkInterface #{name} Deleted Successfully."
12
- response
12
+ true
13
13
  rescue MsRestAzure::AzureOperationError => e
14
14
  msg = "Exception deleting Network Interface #{name} in Resource Group: #{resource_group}. #{e.body['error']['message']}"
15
15
  raise msg
@@ -19,7 +19,9 @@ module Fog
19
19
 
20
20
  # Mock class for Network Request
21
21
  class Mock
22
- def delete_network_interface(_resource_group, _name)
22
+ def delete_network_interface(resource_group, name)
23
+ Fog::Logger.debug "Network Interface #{name} from Resource group #{resource_group} deleted successfully."
24
+ return true
23
25
  end
24
26
  end
25
27
  end
@@ -0,0 +1,29 @@
1
+ module Fog
2
+ module Network
3
+ class AzureRM
4
+ # Real class for Network Request
5
+ class Real
6
+ def delete_network_security_group(resource_group, name)
7
+ Fog::Logger.debug "Deleting Network Security Group: #{name}..."
8
+ begin
9
+ promise = @network_client.network_security_groups.delete(resource_group, name)
10
+ promise.value!
11
+ Fog::Logger.debug "Network Security Group #{name} deleted successfully."
12
+ true
13
+ rescue MsRestAzure::AzureOperationError => e
14
+ msg = "Exception deleting Network Security Group #{name} in Resource Group: #{resource_group}. #{e.body['error']['message']}"
15
+ raise msg
16
+ end
17
+ end
18
+ end
19
+
20
+ # Mock class for Network Request
21
+ class Mock
22
+ def delete_network_security_group(resource_group, name)
23
+ Fog::Logger.debug "Network Security Group #{name} from Resource group #{resource_group} deleted successfully."
24
+ return true
25
+ end
26
+ end
27
+ end
28
+ end
29
+ end
@@ -9,7 +9,7 @@ module Fog
9
9
  promise = @network_client.public_ipaddresses.delete(resource_group, name)
10
10
  response = promise.value!
11
11
  Fog::Logger.debug "PublicIP #{name} Deleted Successfully."
12
- response
12
+ true
13
13
  rescue MsRestAzure::AzureOperationError => e
14
14
  msg = "Exception deleting Public IP #{name} in Resource Group: #{resource_group}. #{e.body['error']['message']}"
15
15
  raise msg
@@ -19,7 +19,9 @@ module Fog
19
19
 
20
20
  # Mock class for Network Request
21
21
  class Mock
22
- def delete_public_ip(_resource_group, _name)
22
+ def delete_public_ip(resource_group, name)
23
+ Fog::Logger.debug "Public IP #{name} from Resource group #{resource_group} deleted successfully."
24
+ return true
23
25
  end
24
26
  end
25
27
  end
@@ -3,15 +3,15 @@ module Fog
3
3
  class AzureRM
4
4
  # Real class for Network Request
5
5
  class Real
6
- def delete_subnet(resource_group, virtual_network_name, subnet_name)
7
- Fog::Logger.debug "Deleting Subnet: #{subnet_name}..."
6
+ def delete_subnet(resource_group, name, virtual_network_name)
7
+ Fog::Logger.debug "Deleting Subnet: #{name}..."
8
8
  begin
9
- promise = @network_client.subnets.delete(resource_group, virtual_network_name, subnet_name)
10
- response = promise.value!
11
- Fog::Logger.debug "Subnet #{subnet_name} deleted successfully."
12
- response
9
+ promise = @network_client.subnets.delete(resource_group, virtual_network_name, name)
10
+ promise.value!
11
+ Fog::Logger.debug "Subnet #{name} deleted successfully."
12
+ true
13
13
  rescue MsRestAzure::AzureOperationError => e
14
- msg = "Exception deleting Subnet #{subnet_name} in Resource Group: #{resource_group}. #{e.body['error']['message']}"
14
+ msg = "Exception deleting Subnet #{name} in Resource Group: #{resource_group}. #{e.body['error']['message']}"
15
15
  raise msg
16
16
  end
17
17
  end
@@ -19,7 +19,9 @@ module Fog
19
19
 
20
20
  # Mock class for Network Request
21
21
  class Mock
22
- def delete_subnet(_resource_group, _virtual_network_name, _subnet_name)
22
+ def delete_subnet(resource_group, name, virtual_network_name)
23
+ Fog::Logger.debug "Subnet #{name} of Virtual Network #{virtual_network_name} from Resource group #{resource_group} deleted successfully."
24
+ return true
23
25
  end
24
26
  end
25
27
  end
@@ -0,0 +1,37 @@
1
+ module Fog
2
+ module Network
3
+ class AzureRM
4
+ # Real class for Network Request
5
+ class Real
6
+ def delete_traffic_manager_endpoint(resource_group, name, traffic_manager_profile_name, type)
7
+ Fog::Logger.debug "Deleting Traffic Manager Endpoint: #{name}..."
8
+ resource_url = "#{AZURE_RESOURCE}/subscriptions/#{@subscription_id}/resourceGroups/#{resource_group}/providers/Microsoft.Network/trafficManagerProfiles/#{traffic_manager_profile_name}/#{type}Endpoints/#{name}?api-version=2015-11-01"
9
+ begin
10
+ token = Fog::Credentials::AzureRM.get_token(@tenant_id, @client_id, @client_secret)
11
+ RestClient.delete(
12
+ resource_url,
13
+ accept: :json,
14
+ content_type: :json,
15
+ authorization: token
16
+ )
17
+ Fog::Logger.debug "Traffic Manager Endpoint: #{name} deleted successfully."
18
+ true
19
+ rescue => e
20
+ Fog::Logger.warning "Exception deleting Traffic Manager Endpoint: #{name} in resource group #{resource_group}"
21
+ error_msg = JSON.parse(e.response)['message']
22
+ msg = "Exception deleting Traffic Manager Endpoint: #{name} in resource group #{resource_group}. #{error_msg}"
23
+ raise msg
24
+ end
25
+ end
26
+ end
27
+
28
+ # Mock class for Network Request
29
+ class Mock
30
+ def delete_traffic_manager_endpoint(resource_group, name, _traffic_manager_profile_name, _type)
31
+ Fog::Logger.debug "Traffic Manager End Point #{name} from Resource group #{resource_group} deleted successfully."
32
+ true
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
@@ -0,0 +1,37 @@
1
+ module Fog
2
+ module Network
3
+ class AzureRM
4
+ # Real class for Network Request
5
+ class Real
6
+ def delete_traffic_manager_profile(resource_group, name)
7
+ Fog::Logger.debug "Deleting Traffic Manager Profile: #{name}..."
8
+ resource_url = "#{AZURE_RESOURCE}/subscriptions/#{@subscription_id}/resourceGroups/#{resource_group}/providers/Microsoft.Network/trafficManagerProfiles/#{name}?api-version=2015-04-28-preview"
9
+ begin
10
+ token = Fog::Credentials::AzureRM.get_token(@tenant_id, @client_id, @client_secret)
11
+ RestClient.delete(
12
+ resource_url,
13
+ accept: :json,
14
+ content_type: :json,
15
+ authorization: token
16
+ )
17
+ Fog::Logger.debug "Traffic Manager Profile: #{name} deleted successfully."
18
+ true
19
+ rescue => e
20
+ Fog::Logger.warning "Exception deleting Traffic Manager Profile: #{name} in resource group #{resource_group}"
21
+ error_msg = JSON.parse(e.response)['message']
22
+ msg = "Exception deleting Traffic Manager Profile: #{name} in resource group #{resource_group}. #{error_msg}"
23
+ raise msg
24
+ end
25
+ end
26
+ end
27
+
28
+ # Mock class for Network Request
29
+ class Mock
30
+ def delete_subnet(resource_group, name)
31
+ Fog::Logger.debug "Traffic Manager Profile #{name} from Resource group #{resource_group} deleted successfully."
32
+ true
33
+ end
34
+ end
35
+ end
36
+ end
37
+ end
@@ -3,15 +3,15 @@ module Fog
3
3
  class AzureRM
4
4
  # Real class for Network Request
5
5
  class Real
6
- def delete_virtual_network(resource_group_name, name)
6
+ def delete_virtual_network(resource_group, name)
7
7
  Fog::Logger.debug "Deleting Virtual Network: #{name}..."
8
8
  begin
9
- promise = @network_client.virtual_networks.delete(resource_group_name, name)
10
- response = promise.value!
9
+ promise = @network_client.virtual_networks.delete(resource_group, name)
10
+ promise.value!
11
11
  Fog::Logger.debug "Virtual Network #{name} deleted successfully."
12
- response
12
+ true
13
13
  rescue MsRestAzure::AzureOperationError => e
14
- msg = "Exception deleting Virtual Network #{name} in Resource Group: #{resource_group_name}. #{e.body['error']['message']}"
14
+ msg = "Exception deleting Virtual Network #{name} in Resource Group: #{resource_group}. #{e.body['error']['message']}"
15
15
  raise msg
16
16
  end
17
17
  end
@@ -19,7 +19,9 @@ module Fog
19
19
 
20
20
  # Mock class for Network Request
21
21
  class Mock
22
- def delete_virtual_network(_resource_group_name, _name)
22
+ def delete_virtual_network(resource_group, name)
23
+ Fog::Logger.debug "Virtual Network #{name} from Resource group #{resource_group} deleted successfully."
24
+ return true
23
25
  end
24
26
  end
25
27
  end
@@ -0,0 +1,96 @@
1
+ module Fog
2
+ module Network
3
+ class AzureRM
4
+ # Real class for Network Request
5
+ class Real
6
+ def get_traffic_manager_profile(resource_group, traffic_manager_profile_name)
7
+ Fog::Logger.debug "Getting Traffic Manager Profile: #{traffic_manager_profile_name} in Resource Group: #{resource_group}..."
8
+ resource_url = "#{AZURE_RESOURCE}/subscriptions/#{@subscription_id}/resourceGroups/#{resource_group}/providers/Microsoft.Network/trafficManagerProfiles/#{traffic_manager_profile_name}?api-version=2015-04-28-preview"
9
+ begin
10
+ token = Fog::Credentials::AzureRM.get_token(@tenant_id, @client_id, @client_secret)
11
+ response = RestClient.get(
12
+ resource_url,
13
+ accept: :json,
14
+ content_type: :json,
15
+ authorization: token
16
+ )
17
+ Fog::Logger.debug 'Traffic Manager Profile listed successfully.'
18
+ JSON.parse(response)
19
+ rescue => e
20
+ Fog::Logger.warning "Exception getting Traffic Manager Profile: #{traffic_manager_profile_name} in resource group: #{resource_group}"
21
+ error_msg = JSON.parse(e.response)['message']
22
+ msg = "Exception getting Traffic Manager Profile: #{traffic_manager_profile_name} in resource group: #{resource_group}. #{error_msg}"
23
+ raise msg
24
+ end
25
+ end
26
+ end
27
+
28
+ # Mock class for Network Request
29
+ class Mock
30
+ def get_traffic_manager_profile(resource_group, traffic_manager_profile_name)
31
+ {
32
+ location: 'global',
33
+ tags: {},
34
+ id: "/subscriptions/####/resourceGroups/#{resource_group}/Microsoft.Network/trafficManagerProfiles/#{traffic_manager_profile_name}",
35
+ name: traffic_manager_profile_name,
36
+ type: 'Microsoft.Network/trafficManagerProfiles',
37
+ properties: {
38
+ profileStatus: 'Enabled',
39
+ trafficRoutingMethod: 'Performance',
40
+ dnsConfig: {
41
+ relativeName: 'myapp',
42
+ fqdn: 'myapp.trafficmanager.net',
43
+ ttl: 30
44
+ },
45
+ monitorConfig: {
46
+ profileMonitorStatus: 'Online',
47
+ protocol: 'http',
48
+ port: 80,
49
+ path: '/monitorpage.aspx'
50
+ },
51
+ endpoints: [{
52
+ id: "/subscriptions/####/resourceGroups/#{resource_group}/Microsoft.Network/trafficManagerProfiles/#{traffic_manager_profile_name}/azureEndpoints/endpoint-name1",
53
+ name: 'endpoint-name1',
54
+ type: 'Microsoft.Network/trafficManagerProfiles/azureEndpoints',
55
+ properties: {
56
+ endpointStatus: 'Enabled',
57
+ endpointMonitorStatus: 'Online',
58
+ targetResourceId: "/subscriptions/####/resourceGroups/#{resource_group}/Microsoft.Network",
59
+ target: 'myapp.azurewebsites.net',
60
+ weight: 10,
61
+ priority: 3,
62
+ endpointLocation: 'centralus'
63
+ }
64
+ }, {
65
+ id: "/subscriptions/####/resourceGroups/resource_group/Microsoft.Network/trafficManagerProfiles/#{traffic_manager_profile_name}/externalEndpoints/endpoint-name2",
66
+ name: 'endpoint-name2',
67
+ type: 'Microsoft.Network/trafficManagerProfiles/externalEndpoints',
68
+ properties: {
69
+ endpointStatus: 'Enabled',
70
+ endpointMonitorStatus: 'Online',
71
+ target: 'myendpoint.contoso.com',
72
+ weight: 10,
73
+ priority: 5,
74
+ endpointLocation: 'northeurope'
75
+ }
76
+ }, {
77
+ id: "/subscriptions/####/resourceGroups/#{resource_group}/Microsoft.Network/trafficManagerProfiles/#{traffic_manager_profile_name}/nestedEndpoints/endpoint-name3",
78
+ name: 'endpoint-name3',
79
+ type: 'Microsoft.Network/trafficManagerProfiles/nestedEndpoints',
80
+ properties: {
81
+ endpointStatus: 'Enabled',
82
+ endpointMonitorStatus: 'Online',
83
+ targetResourceId: "/subscriptions/####/resourceGroups/#{resource_group}/Microsoft.Network",
84
+ weight: 10,
85
+ priority: 1,
86
+ endpointLocation: 'westeurope',
87
+ minChildEndpoints: 1
88
+ }
89
+ }]
90
+ }
91
+ }
92
+ end
93
+ end
94
+ end
95
+ end
96
+ end
@@ -0,0 +1,31 @@
1
+ module Fog
2
+ module Network
3
+ class AzureRM
4
+ # Real class for Network Request
5
+ class Real
6
+ def list_load_balancers(resource_group)
7
+ Fog::Logger.debug "Getting list of Load-Balancers from Resource Group #{resource_group}."
8
+ begin
9
+ promise = @network_client.load_balancers.list(resource_group)
10
+ result = promise.value!
11
+ Azure::ARM::Network::Models::LoadBalancerListResult.serialize_object(result.body)['value']
12
+ rescue MsRestAzure::AzureOperationError => e
13
+ msg = "Exception listing Load-Balancers from Resource Group '#{resource_group}'. #{e.body['error']['message']}."
14
+ raise msg
15
+ end
16
+ end
17
+ end
18
+
19
+ # Mock class for Network Request
20
+ class Mock
21
+ def list_load_balancers(_resource_group)
22
+ lb = Azure::ARM::Network::Models::LoadBalancer.new
23
+ lb.name = 'fogtestloadbalancer'
24
+ lb.location = 'West US'
25
+ lb.properties = Azure::ARM::Network::Models::LoadBalancerPropertiesFormat.new
26
+ [lb]
27
+ end
28
+ end
29
+ end
30
+ end
31
+ end
@@ -7,9 +7,8 @@ module Fog
7
7
  Fog::Logger.debug "Getting list of NetworkInterfaces from Resource Group #{resource_group}."
8
8
  begin
9
9
  promise = @network_client.network_interfaces.list(resource_group)
10
- response = promise.value!
11
- result = response.body.value
12
- return result
10
+ result = promise.value!
11
+ Azure::ARM::Network::Models::NetworkInterfaceListResult.serialize_object(result.body)['value']
13
12
  rescue MsRestAzure::AzureOperationError => e
14
13
  msg = "Exception listing Network Interfaces from Resource Group '#{resource_group}'. #{e.body['error']['message']}."
15
14
  raise msg
@@ -19,12 +18,45 @@ module Fog
19
18
 
20
19
  # Mock class for Network Request
21
20
  class Mock
22
- def list_network_interfaces(_resource_group)
23
- nic = Azure::ARM::Network::Models::NetworkInterface.new
24
- nic.name = 'fogtestnetworkinterface'
25
- nic.location = 'West US'
26
- nic.properties = Azure::ARM::Network::Models::NetworkInterfacePropertiesFormat.new
27
- [nic]
21
+ def list_network_interfaces(resource_group)
22
+ [
23
+ {
24
+ 'id' => "/subscriptions/########-####-####-####-############/resourceGroups/#{resource_group}/providers/Microsoft.Network/networkInterfaces/test-NIC",
25
+ 'name' => 'test-NIC',
26
+ 'type' => 'Microsoft.Network/networkInterfaces',
27
+ 'location' => 'westus',
28
+ 'properties' =>
29
+ {
30
+ 'ipConfigurations' =>
31
+ [
32
+ {
33
+ 'id' => "/subscriptions/########-####-####-####-############/resourceGroups/#{resource_group}/providers/Microsoft.Network/networkInterfaces/test-NIC/ipConfigurations/ipconfig1",
34
+ 'properties' =>
35
+ {
36
+ 'privateIPAddress' => '10.2.0.4',
37
+ 'privateIPAllocationMethod' => 'Dynamic',
38
+ 'subnet' =>
39
+ {
40
+ 'id' => "/subscriptions/########-####-####-####-############/resourceGroups/#{resource_group}/providers/Microsoft.Network/virtualNetworks/testVnet/subnets/fog-test-subnet"
41
+ },
42
+ 'provisioningState' => 'Succeeded'
43
+ },
44
+ 'name' => 'ipconfig1',
45
+ 'etag' => "W/\"b5dd021a-fcce-43b2-9e07-01407a3a6a98\""
46
+ }
47
+ ],
48
+ 'dnsSettings' =>
49
+ {
50
+ 'dnsServers' => [],
51
+ 'appliedDnsServers' => []
52
+ },
53
+ 'enableIPForwarding' =>false,
54
+ 'resourceGuid' => '51e01337-fb15-4b04-b9de-e91537c764fd',
55
+ 'provisioningState' => 'Succeeded'
56
+ },
57
+ 'etag' =>"W/\"b5dd021a-fcce-43b2-9e07-01407a3a6a98\""
58
+ }
59
+ ]
28
60
  end
29
61
  end
30
62
  end