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
@@ -0,0 +1,171 @@
1
+ module Fog
2
+ module Network
3
+ class AzureRM
4
+ # Real class for Network Request
5
+ class Real
6
+ def list_network_security_groups(resource_group)
7
+ Fog::Logger.debug "Getting list of Network Security Groups from Resource Group #{resource_group}."
8
+ begin
9
+ promise = @network_client.network_security_groups.list(resource_group)
10
+ result = promise.value!
11
+ Azure::ARM::Network::Models::NetworkSecurityGroupListResult.serialize_object(result.body)['value']
12
+ rescue MsRestAzure::AzureOperationError => e
13
+ msg = "Exception listing Network Security Groups 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_network_security_groups(resource_group)
22
+ [
23
+ {
24
+ 'id' => "/subscriptions/########-####-####-####-############/resourceGroups/#{resource_group}/providers/Microsoft.Network/networkSecurityGroups/testGroup",
25
+ 'name' => 'testGroup',
26
+ 'type' => 'Microsoft.Network/networkSecurityGroups',
27
+ 'location' => 'westus',
28
+ 'properties' =>
29
+ {
30
+ 'securityRules' =>
31
+ [
32
+ {
33
+ 'id' =>"/subscriptions/########-####-####-####-############/resourceGroups/#{resource_group}/providers/Microsoft.Network/networkSecurityGroups/testGroup/securityRules/testRule",
34
+ 'properties' =>
35
+ {
36
+ 'protocol' => 'tcp',
37
+ 'sourceAddressPrefix' => '0.0.0.0/0',
38
+ 'destinationAddressPrefix' => '0.0.0.0/0',
39
+ 'access' => 'Allow',
40
+ 'direction' => 'Inbound',
41
+ 'sourcePortRange' => '22',
42
+ 'destinationPortRange' => '22',
43
+ 'priority' => 100,
44
+ 'provisioningState' => 'Succeeded'
45
+ },
46
+ 'name' => 'testRule',
47
+ 'etag' => "W/\"c034669d-9bbb-470b-9561-0ffc4ba322f1\""
48
+ }
49
+ ],
50
+ 'defaultSecurityRules' =>
51
+ [
52
+ {
53
+ 'id' => "/subscriptions/########-####-####-####-############/resourceGroups/#{resource_group}/providers/Microsoft.Network/networkSecurityGroups/testGroup/defaultSecurityRules/AllowVnetInBound",
54
+ 'properties' =>
55
+ {
56
+ 'protocol' => '*',
57
+ 'sourceAddressPrefix' => 'VirtualNetwork',
58
+ 'destinationAddressPrefix' => 'VirtualNetwork',
59
+ 'access' => 'Allow',
60
+ 'direction' => 'Inbound',
61
+ 'description' => 'Allow inbound traffic from all VMs in VNET',
62
+ 'sourcePortRange' => '*',
63
+ 'destinationPortRange' => '*',
64
+ 'priority' => 65000,
65
+ 'provisioningState' => 'Succeeded'
66
+ },
67
+ 'name' => 'AllowVnetInBound',
68
+ 'etag' => "W/\"c034669d-9bbb-470b-9561-0ffc4ba322f1\""
69
+ },
70
+ {
71
+ 'id' => "/subscriptions/########-####-####-####-############/resourceGroups/#{resource_group}/providers/Microsoft.Network/networkSecurityGroups/testGroup/defaultSecurityRules/AllowAzureLoadBalancerInBound",
72
+ 'properties' =>
73
+ {
74
+ 'protocol' => '*',
75
+ 'sourceAddressPrefix' => 'AzureLoadBalancer',
76
+ 'destinationAddressPrefix' => '*',
77
+ 'access' => 'Allow',
78
+ 'direction' => 'Inbound',
79
+ 'description' => 'Allow inbound traffic from azure load balancer',
80
+ 'sourcePortRange' => '*',
81
+ 'destinationPortRange' => '*',
82
+ 'priority' => 65001,
83
+ 'provisioningState' => 'Succeeded'
84
+ },
85
+ 'name' => 'AllowAzureLoadBalancerInBound',
86
+ 'etag' => "W/\"c034669d-9bbb-470b-9561-0ffc4ba322f1\""
87
+ },
88
+ {
89
+ 'id' => "/subscriptions/########-####-####-####-############/resourceGroups/#{resource_group}/providers/Microsoft.Network/networkSecurityGroups/testGroup/defaultSecurityRules/DenyAllInBound",
90
+ 'properties' =>
91
+ {
92
+ 'protocol' => '*',
93
+ 'sourceAddressPrefix' => '*',
94
+ 'destinationAddressPrefix' => '*',
95
+ 'access' => 'Deny',
96
+ 'direction' => 'Inbound',
97
+ 'description' => 'Deny all inbound traffic',
98
+ 'sourcePortRange' => '*',
99
+ 'destinationPortRange' => '*',
100
+ 'priority' => 65500,
101
+ 'provisioningState' => 'Succeeded'
102
+ },
103
+ 'name' => 'DenyAllInBound',
104
+ 'etag' => "W/\"c034669d-9bbb-470b-9561-0ffc4ba322f1\""
105
+ },
106
+ {
107
+ 'id' => "/subscriptions/########-####-####-####-############/resourceGroups/#{resource_group}/providers/Microsoft.Network/networkSecurityGroups/testGroup/defaultSecurityRules/AllowVnetOutBound",
108
+ 'properties' =>
109
+ {
110
+ 'protocol' => '*',
111
+ 'sourceAddressPrefix' => 'VirtualNetwork',
112
+ 'destinationAddressPrefix' => 'VirtualNetwork',
113
+ 'access' => 'Allow',
114
+ 'direction' => 'Outbound',
115
+ 'description' => 'Allow outbound traffic from all VMs to all VMs in VNET',
116
+ 'sourcePortRange' => '*',
117
+ 'destinationPortRange' => '*',
118
+ 'priority' => 65000,
119
+ 'provisioningState' => 'Succeeded'
120
+ },
121
+ 'name' => 'AllowVnetOutBound',
122
+ 'etag' => "W/\"c034669d-9bbb-470b-9561-0ffc4ba322f1\""
123
+ },
124
+ {
125
+ 'id' => "/subscriptions/########-####-####-####-############/resourceGroups/#{resource_group}/providers/Microsoft.Network/networkSecurityGroups/testGroup/defaultSecurityRules/AllowInternetOutBound",
126
+ 'properties' =>
127
+ {
128
+ 'protocol' => '*',
129
+ 'sourceAddressPrefix' => '*',
130
+ 'destinationAddressPrefix' => 'Internet',
131
+ 'access' => 'Allow',
132
+ 'direction' => 'Outbound',
133
+ 'description' => 'Allow outbound traffic from all VMs to Internet',
134
+ 'sourcePortRange' => '*',
135
+ 'destinationPortRange' => '*',
136
+ 'priority' => 65001,
137
+ 'provisioningState' => 'Succeeded'
138
+ },
139
+ 'name' => 'AllowInternetOutBound',
140
+ 'etag' =>"W/\"c034669d-9bbb-470b-9561-0ffc4ba322f1\""
141
+ },
142
+ {
143
+ 'id' =>"/subscriptions/########-####-####-####-############/resourceGroups/#{resource_group}/providers/Microsoft.Network/networkSecurityGroups/testGroup/defaultSecurityRules/DenyAllOutBound",
144
+ 'properties' =>
145
+ {
146
+ 'protocol' => '*',
147
+ 'sourceAddressPrefix' => '*',
148
+ 'destinationAddressPrefix' => '*',
149
+ 'access' => 'Deny',
150
+ 'direction' => 'Outbound',
151
+ 'description' => 'Deny all outbound traffic',
152
+ 'sourcePortRange' => '*',
153
+ 'destinationPortRange' => '*',
154
+ 'priority' => 65500,
155
+ 'provisioningState' => 'Succeeded'
156
+ },
157
+ 'name' => 'DenyAllOutBound',
158
+ 'etag' => "W/\"c034669d-9bbb-470b-9561-0ffc4ba322f1\""
159
+ }
160
+ ],
161
+ 'resourceGuid' => '9dca97e6-4789-4ebd-86e3-52b8b0da6cd4',
162
+ 'provisioningState' => 'Succeeded'
163
+ },
164
+ 'etag' => "W/\"c034669d-9bbb-470b-9561-0ffc4ba322f1\""
165
+ }
166
+ ]
167
+ end
168
+ end
169
+ end
170
+ end
171
+ end
@@ -7,9 +7,8 @@ module Fog
7
7
  Fog::Logger.debug "Getting list of PublicIPs from Resource Group #{resource_group}."
8
8
  begin
9
9
  promise = @network_client.public_ipaddresses.list(resource_group)
10
- response = promise.value!
11
- result = response.body.value
12
- return result
10
+ result = promise.value!
11
+ Azure::ARM::Network::Models::PublicIPAddressListResult.serialize_object(result.body)['value']
13
12
  rescue MsRestAzure::AzureOperationError => e
14
13
  msg = "Exception listing Public IPs from Resource Group '#{resource_group}'. #{e.body['error']['message']}."
15
14
  raise msg
@@ -19,12 +18,25 @@ module Fog
19
18
 
20
19
  # Mock class for Network Request
21
20
  class Mock
22
- def list_public_ips(_resource_group)
23
- public_ip = Azure::ARM::Network::Models::PublicIPAddress.new
24
- public_ip.name = 'fogtestpublicip'
25
- public_ip.location = 'West US'
26
- public_ip.type = 'Static'
27
- [public_ip]
21
+ def list_public_ips(resource_group)
22
+ [
23
+ {
24
+ 'id' => "/subscriptions/########-####-####-####-############/resourceGroups/#{resource_group}/providers/Microsoft.Network/publicIPAddresses/test-PubIP",
25
+ 'name' => 'test-PubIP',
26
+ 'type' => 'Microsoft.Network/publicIPAddresses',
27
+ 'location' => 'westus',
28
+ 'properties' =>
29
+ {
30
+ 'publicIPAllocationMethod' => 'Static',
31
+ 'ipAddress' => '13.93.203.153',
32
+ 'idleTimeoutInMinutes' => 4,
33
+ 'resourceGuid' => 'c78f0c95-d8b9-409b-897c-74260b686392',
34
+ 'provisioningState' => 'Succeeded'
35
+ },
36
+ 'etag' => "W/\"528b34bf-93ad-4dfc-a563-4005ff48e86d\""
37
+ }
38
+ ]
39
+
28
40
  end
29
41
  end
30
42
  end
@@ -3,13 +3,13 @@ module Fog
3
3
  class AzureRM
4
4
  # Real class for Network Request
5
5
  class Real
6
- def list_subnets(resource_group_name, virtual_network_name)
6
+ def list_subnets(resource_group, virtual_network_name)
7
7
  begin
8
- promise = @network_client.subnets.list(resource_group_name, virtual_network_name)
9
- response = promise.value!
10
- response.body.value
8
+ promise = @network_client.subnets.list(resource_group, virtual_network_name)
9
+ result = promise.value!
10
+ Azure::ARM::Network::Models::SubnetListResult.serialize_object(result.body)['value']
11
11
  rescue MsRestAzure::AzureOperationError => e
12
- msg = "Exception listing Subnets from Resource Group '#{resource_group_name}' in Virtal Network #{virtual_network_name}. #{e.body['error']['message']}."
12
+ msg = "Exception listing Subnets from Resource Group '#{resource_group}' in Virtal Network #{virtual_network_name}. #{e.body['error']['message']}."
13
13
  raise msg
14
14
  end
15
15
  end
@@ -17,12 +17,35 @@ module Fog
17
17
 
18
18
  # Mock class for Network Request
19
19
  class Mock
20
- def list_subnets(resource_group_name, virtual_network_name)
21
- subnet = Azure::ARM::Network::Models::Subnet.new
22
- subnet.id = "/subscriptions/########-####-####-####-############/resourceGroups/#{resource_group_name}/providers/Microsoft.Network/virtualNetworks/#{virtual_network_name}/subnets/fogtestsubnet"
23
- subnet.name = 'fogtestsubnet'
24
- subnet.properties = Azure::ARM::Network::Models::SubnetPropertiesFormat.new
25
- [subnet]
20
+ def list_subnets(resource_group, virtual_network_name)
21
+ [
22
+ {
23
+ 'id' => "/subscriptions/########-####-####-####-############/resourceGroups/#{resource_group}/providers/Microsoft.Network/virtualNetworks/#{virtual_network_name}/subnets/subnet_0_testVnet",
24
+ 'properties' =>
25
+ {
26
+ 'addressPrefix' => '10.1.0.0/24',
27
+ 'provisioningState' => 'Succeeded'
28
+ },
29
+ 'name' => 'subnet_0_testVnet',
30
+ 'etag' => "W/\"8d90d220-7911-4376-bba0-88b0473e1d16\""
31
+ },
32
+ {
33
+ 'id' =>"/subscriptions/########-####-####-####-############/resourceGroups/#{resource_group}/providers/Microsoft.Network/virtualNetworks/#{virtual_network_name}/subnets/fog-test-subnet",
34
+ 'properties' =>
35
+ {
36
+ 'addressPrefix' => '10.2.0.0/16',
37
+ 'ipConfigurations' =>
38
+ [
39
+ {
40
+ 'id' =>"/subscriptions/########-####-####-####-############/resourceGroups/#{resource_group}/providers/Microsoft.Network/networkInterfaces/test-NIC/ipConfigurations/ipconfig1"
41
+ }
42
+ ],
43
+ 'provisioningState' => 'Succeeded'
44
+ },
45
+ 'name' => 'fog-test-subnet',
46
+ 'etag' => "W/\"8d90d220-7911-4376-bba0-88b0473e1d16\""
47
+ }
48
+ ]
26
49
  end
27
50
  end
28
51
  end
@@ -0,0 +1,98 @@
1
+ module Fog
2
+ module Network
3
+ class AzureRM
4
+ # Real class for Network Request
5
+ class Real
6
+ def list_traffic_manager_profiles(resource_group)
7
+ Fog::Logger.debug "Listing Traffic Manager Profiles in Resource Group: #{resource_group}..."
8
+ resource_url = "#{AZURE_RESOURCE}/subscriptions/#{@subscription_id}/resourceGroups/#{resource_group}/providers/Microsoft.Network/trafficManagerProfiles?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 Profiles listed successfully.'
18
+ JSON.parse(response)['values']
19
+ rescue => e
20
+ Fog::Logger.warning "Exception listing Traffic Manager Profiles in resource group #{resource_group}"
21
+ error_msg = JSON.parse(e.response)['message']
22
+ msg = "Exception listing Traffic Manager Profiles 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 list_traffic_manager_profiles(resource_group)
31
+ [
32
+ {
33
+ location: 'global',
34
+ tags: {},
35
+ id: "/subscriptions/####/resourceGroups/#{resource_group}/Microsoft.Network/trafficManagerProfiles/testprofile",
36
+ name: 'testprofile',
37
+ type: 'Microsoft.Network/trafficManagerProfiles',
38
+ properties: {
39
+ profileStatus: 'Enabled',
40
+ trafficRoutingMethod: 'Performance',
41
+ dnsConfig: {
42
+ relativeName: 'myapp',
43
+ fqdn: 'myapp.trafficmanager.net',
44
+ ttl: 30
45
+ },
46
+ monitorConfig: {
47
+ profileMonitorStatus: 'Online',
48
+ protocol: 'http',
49
+ port: 80,
50
+ path: '/monitorpage.aspx'
51
+ },
52
+ endpoints: [{
53
+ id: "/subscriptions/####/resourceGroups/#{resource_group}/Microsoft.Network/trafficManagerProfiles/testprofile/azureEndpoints/endpoint-name1",
54
+ name: 'endpoint-name1',
55
+ type: 'Microsoft.Network/trafficManagerProfiles/azureEndpoints',
56
+ properties: {
57
+ endpointStatus: 'Enabled',
58
+ endpointMonitorStatus: 'Online',
59
+ targetResourceId: "/subscriptions/####/resourceGroups/#{resource_group}/Microsoft.Network",
60
+ target: 'myapp.azurewebsites.net',
61
+ weight: 10,
62
+ priority: 3,
63
+ endpointLocation: 'centralus'
64
+ }
65
+ }, {
66
+ id: "/subscriptions/####/resourceGroups/resource_group/Microsoft.Network/trafficManagerProfiles/testprofile/externalEndpoints/endpoint-name2",
67
+ name: 'endpoint-name2',
68
+ type: 'Microsoft.Network/trafficManagerProfiles/externalEndpoints',
69
+ properties: {
70
+ endpointStatus: 'Enabled',
71
+ endpointMonitorStatus: 'Online',
72
+ target: 'myendpoint.contoso.com',
73
+ weight: 10,
74
+ priority: 5,
75
+ endpointLocation: 'northeurope'
76
+ }
77
+ }, {
78
+ id: "/subscriptions/####/resourceGroups/#{resource_group}/Microsoft.Network/trafficManagerProfiles/testprofile/nestedEndpoints/endpoint-name3",
79
+ name: 'endpoint-name3',
80
+ type: 'Microsoft.Network/trafficManagerProfiles/nestedEndpoints',
81
+ properties: {
82
+ endpointStatus: 'Enabled',
83
+ endpointMonitorStatus: 'Online',
84
+ targetResourceId: "/subscriptions/####/resourceGroups/#{resource_group}/Microsoft.Network",
85
+ weight: 10,
86
+ priority: 1,
87
+ endpointLocation: 'westeurope',
88
+ minChildEndpoints: 1
89
+ }
90
+ }]
91
+ }
92
+ }
93
+ ]
94
+ end
95
+ end
96
+ end
97
+ end
98
+ end
@@ -6,7 +6,7 @@ module Fog
6
6
  begin
7
7
  response = @network_client.virtual_networks.list(resource_group)
8
8
  result = response.value!
9
- result.body.value
9
+ Azure::ARM::Network::Models::VirtualNetworkListResult.serialize_object(result.body)['value']
10
10
  rescue MsRestAzure::AzureOperationError => e
11
11
  msg = "Exception listing Virtual Networks. #{e.body['error']['message']}."
12
12
  raise msg
@@ -15,13 +15,58 @@ module Fog
15
15
  end
16
16
 
17
17
  class Mock
18
- def list_virtual_networks
19
- vnet = Azure::ARM::Network::Models::VirtualNetwork.new
20
- vnet.id = '/subscriptions/########-####-####-####-############/resourceGroups/fog-test-resource-group/providers/Microsoft.Network/virtualNetworks/fogtestvnet'
21
- vnet.name = 'fogtestvnet'
22
- vnet.location = 'West US'
23
- vnet.properties = Azure::ARM::Network::Models::VirtualNetworkPropertiesFormat.new
24
- [vnet]
18
+ def list_virtual_networks(resource_group)
19
+ [
20
+ {
21
+ 'id' => "/subscriptions/########-####-####-####-############/resourceGroups/#{resource_group}/providers/Microsoft.Network/virtualNetworks/testVnet",
22
+ 'name' => 'testVnet',
23
+ 'type' => 'Microsoft.Network/virtualNetworks',
24
+ 'location' => 'westus',
25
+ 'properties' =>
26
+ {
27
+ 'addressSpace' =>
28
+ {
29
+ 'addressPrefixes' =>
30
+ [
31
+ "10.1.0.0/16",
32
+ "10.2.0.0/16"
33
+ ]
34
+ },
35
+ 'subnets' =>
36
+ [
37
+ {
38
+ 'id' => "/subscriptions/########-####-####-####-############/resourceGroups/#{resource_group}/providers/Microsoft.Network/virtualNetworks/testVnet/subnets/subnet_0_testVnet",
39
+ 'properties' =>
40
+ {
41
+ 'addressPrefix' => '10.1.0.0/24',
42
+ 'provisioningState' => 'Succeeded'
43
+ },
44
+ 'name' => 'subnet_0_testVnet',
45
+ 'etag' => "W/\"8d90d220-7911-4376-bba0-88b0473e1d16\""
46
+ },
47
+ {
48
+ 'id' => "/subscriptions/########-####-####-####-############/resourceGroups/#{resource_group}/providers/Microsoft.Network/virtualNetworks/testVnet/subnets/fog-test-subnet",
49
+ 'properties' =>
50
+ {
51
+ 'addressPrefix' => '10.2.0.0/16',
52
+ 'ipConfigurations' =>
53
+ [
54
+ {
55
+ 'id' => "/subscriptions/########-####-####-####-############/resourceGroups/#{resource_group}/providers/Microsoft.Network/networkInterfaces/test-NIC/ipConfigurations/ipconfig1"
56
+ }
57
+ ],
58
+ 'provisioningState' => 'Succeeded'
59
+ },
60
+ 'name' => 'fog-test-subnet',
61
+ 'etag' => "W/\"8d90d220-7911-4376-bba0-88b0473e1d16\""
62
+ }
63
+ ],
64
+ 'resourceGuid' => 'c573f8e2-d916-493f-8b25-a681c31269ef',
65
+ 'provisioningState' => 'Succeeded'
66
+ },
67
+ 'etag' => "W/\"8d90d220-7911-4376-bba0-88b0473e1d16\""
68
+ }
69
+ ]
25
70
  end
26
71
  end
27
72
  end