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
@@ -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