fog-azure-rm 0.0.4 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (433) hide show
  1. checksums.yaml +4 -4
  2. data/.DS_Store +0 -0
  3. data/.travis.yml +11 -1
  4. data/CHANGELOG.md +35 -14
  5. data/fog-azure-rm.gemspec +8 -9
  6. data/lib/fog/azurerm.rb +3 -0
  7. data/lib/fog/azurerm/application_gateway.rb +64 -0
  8. data/lib/fog/azurerm/compute.rb +1 -0
  9. data/lib/fog/azurerm/config.rb +17 -0
  10. data/lib/fog/azurerm/core.rb +1 -0
  11. data/lib/fog/azurerm/dns.rb +4 -2
  12. data/lib/fog/azurerm/docs/application_gateway.md +139 -0
  13. data/lib/fog/azurerm/docs/dns.md +28 -6
  14. data/lib/fog/azurerm/docs/network.md +151 -143
  15. data/lib/fog/azurerm/docs/resources.md +3 -3
  16. data/lib/fog/azurerm/docs/storage.md +15 -3
  17. data/lib/fog/azurerm/docs/traffic_manager.md +118 -0
  18. data/lib/fog/azurerm/fog_azure_rm_exception.rb +13 -0
  19. data/lib/fog/azurerm/models/application_gateway/backend_address_pool.rb +22 -0
  20. data/lib/fog/azurerm/models/application_gateway/backend_http_setting.rb +26 -0
  21. data/lib/fog/azurerm/models/application_gateway/frontend_ip_configuration.rb +22 -0
  22. data/lib/fog/azurerm/models/application_gateway/frontend_port.rb +18 -0
  23. data/lib/fog/azurerm/models/{network/application_gateway.rb → application_gateway/gateway.rb} +74 -78
  24. data/lib/fog/azurerm/models/{network/application_gateways.rb → application_gateway/gateways.rb} +6 -6
  25. data/lib/fog/azurerm/models/application_gateway/http_listener.rb +28 -0
  26. data/lib/fog/azurerm/models/application_gateway/ip_configuration.rb +18 -0
  27. data/lib/fog/azurerm/models/application_gateway/probe.rb +28 -0
  28. data/lib/fog/azurerm/models/application_gateway/request_routing_rule.rb +25 -0
  29. data/lib/fog/azurerm/models/application_gateway/ssl_certificate.rb +22 -0
  30. data/lib/fog/azurerm/models/application_gateway/url_path_map.rb +28 -0
  31. data/lib/fog/azurerm/models/compute/availability_set.rb +8 -8
  32. data/lib/fog/azurerm/models/compute/availability_sets.rb +3 -1
  33. data/lib/fog/azurerm/models/compute/server.rb +50 -34
  34. data/lib/fog/azurerm/models/dns/record_set.rb +30 -2
  35. data/lib/fog/azurerm/models/dns/record_sets.rb +4 -2
  36. data/lib/fog/azurerm/models/dns/zone.rb +1 -1
  37. data/lib/fog/azurerm/models/dns/zones.rb +4 -2
  38. data/lib/fog/azurerm/models/network/express_route_circuit.rb +89 -0
  39. data/lib/fog/azurerm/models/network/express_route_circuit_peering.rb +93 -0
  40. data/lib/fog/azurerm/models/network/express_route_circuit_peerings.rb +31 -0
  41. data/lib/fog/azurerm/models/network/express_route_circuits.rb +29 -0
  42. data/lib/fog/azurerm/models/network/express_route_service_provider.rb +29 -0
  43. data/lib/fog/azurerm/models/network/express_route_service_providers.rb +21 -0
  44. data/lib/fog/azurerm/models/network/frontend_ip_configuration.rb +5 -15
  45. data/lib/fog/azurerm/models/network/inbound_nat_pool.rb +6 -7
  46. data/lib/fog/azurerm/models/network/inbound_nat_rule.rb +6 -9
  47. data/lib/fog/azurerm/models/network/load_balancer.rb +17 -19
  48. data/lib/fog/azurerm/models/network/load_balancing_rule.rb +11 -16
  49. data/lib/fog/azurerm/models/network/network_interface.rb +24 -24
  50. data/lib/fog/azurerm/models/network/network_security_group.rb +9 -9
  51. data/lib/fog/azurerm/models/network/network_security_rule.rb +13 -13
  52. data/lib/fog/azurerm/models/network/probe.rb +7 -8
  53. data/lib/fog/azurerm/models/network/public_ip.rb +15 -16
  54. data/lib/fog/azurerm/models/network/public_ips.rb +4 -2
  55. data/lib/fog/azurerm/models/network/subnet.rb +8 -8
  56. data/lib/fog/azurerm/models/network/virtual_network.rb +9 -9
  57. data/lib/fog/azurerm/models/network/virtual_network_gateway.rb +138 -0
  58. data/lib/fog/azurerm/models/network/virtual_network_gateways.rb +29 -0
  59. data/lib/fog/azurerm/models/network/vpn_client_configuration.rb +34 -0
  60. data/lib/fog/azurerm/models/network/vpn_client_revoked_certificates.rb +22 -0
  61. data/lib/fog/azurerm/models/network/vpn_client_root_certificates.rb +22 -0
  62. data/lib/fog/azurerm/models/resources/azure_resource.rb +5 -5
  63. data/lib/fog/azurerm/models/resources/dependency.rb +5 -5
  64. data/lib/fog/azurerm/models/resources/deployment.rb +14 -14
  65. data/lib/fog/azurerm/models/resources/provider.rb +4 -4
  66. data/lib/fog/azurerm/models/resources/provider_resource_type.rb +4 -4
  67. data/lib/fog/azurerm/models/resources/resource_group.rb +9 -1
  68. data/lib/fog/azurerm/models/resources/resource_groups.rb +5 -1
  69. data/lib/fog/azurerm/models/storage/data_disk.rb +6 -6
  70. data/lib/fog/azurerm/models/storage/storage_account.rb +41 -10
  71. data/lib/fog/azurerm/models/storage/storage_accounts.rb +1 -6
  72. data/lib/fog/azurerm/models/traffic_manager/traffic_manager_end_point.rb +75 -0
  73. data/lib/fog/azurerm/models/traffic_manager/traffic_manager_end_points.rb +31 -0
  74. data/lib/fog/azurerm/models/traffic_manager/traffic_manager_profile.rb +59 -0
  75. data/lib/fog/azurerm/models/traffic_manager/traffic_manager_profiles.rb +26 -0
  76. data/lib/fog/azurerm/network.rb +25 -25
  77. data/lib/fog/azurerm/requests/{network → application_gateway}/create_application_gateway.rb +59 -95
  78. data/lib/fog/azurerm/requests/application_gateway/delete_application_gateway.rb +26 -0
  79. data/lib/fog/azurerm/requests/application_gateway/list_application_gateways.rb +29 -0
  80. data/lib/fog/azurerm/requests/compute/attach_data_disk_to_vm.rb +38 -38
  81. data/lib/fog/azurerm/requests/compute/check_vm_status.rb +8 -10
  82. data/lib/fog/azurerm/requests/compute/create_availability_set.rb +15 -20
  83. data/lib/fog/azurerm/requests/compute/create_virtual_machine.rb +50 -45
  84. data/lib/fog/azurerm/requests/compute/deallocate_virtual_machine.rb +9 -10
  85. data/lib/fog/azurerm/requests/compute/delete_availability_set.rb +7 -8
  86. data/lib/fog/azurerm/requests/compute/delete_virtual_machine.rb +9 -10
  87. data/lib/fog/azurerm/requests/compute/detach_data_disk_from_vm.rb +20 -19
  88. data/lib/fog/azurerm/requests/compute/generalize_virtual_machine.rb +9 -10
  89. data/lib/fog/azurerm/requests/compute/get_availability_set.rb +32 -0
  90. data/lib/fog/azurerm/requests/compute/get_virtual_machine.rb +17 -14
  91. data/lib/fog/azurerm/requests/compute/list_availability_sets.rb +7 -6
  92. data/lib/fog/azurerm/requests/compute/list_available_sizes_for_virtual_machine.rb +37 -31
  93. data/lib/fog/azurerm/requests/compute/list_virtual_machines.rb +47 -42
  94. data/lib/fog/azurerm/requests/compute/power_off_virtual_machine.rb +9 -10
  95. data/lib/fog/azurerm/requests/compute/redeploy_virtual_machine.rb +9 -10
  96. data/lib/fog/azurerm/requests/compute/restart_virtual_machine.rb +9 -10
  97. data/lib/fog/azurerm/requests/compute/start_virtual_machine.rb +9 -10
  98. data/lib/fog/azurerm/requests/dns/{create_record_set.rb → create_or_update_record_set.rb} +2 -2
  99. data/lib/fog/azurerm/requests/dns/{create_zone.rb → create_or_update_zone.rb} +3 -3
  100. data/lib/fog/azurerm/requests/dns/get_record_set.rb +56 -0
  101. data/lib/fog/azurerm/requests/dns/get_zone.rb +50 -0
  102. data/lib/fog/azurerm/requests/dns/list_record_sets.rb +2 -2
  103. data/lib/fog/azurerm/requests/network/add_address_prefixes_in_virtual_network.rb +3 -3
  104. data/lib/fog/azurerm/requests/network/add_dns_servers_in_virtual_network.rb +8 -6
  105. data/lib/fog/azurerm/requests/network/add_security_rules.rb +15 -13
  106. data/lib/fog/azurerm/requests/network/add_subnets_in_virtual_network.rb +6 -4
  107. data/lib/fog/azurerm/requests/network/attach_network_security_group_to_subnet.rb +13 -15
  108. data/lib/fog/azurerm/requests/network/attach_resource_to_nic.rb +17 -16
  109. data/lib/fog/azurerm/requests/network/attach_route_table_to_subnet.rb +13 -15
  110. data/lib/fog/azurerm/requests/network/check_for_public_ip.rb +2 -4
  111. data/lib/fog/azurerm/requests/network/check_for_virtual_network.rb +5 -5
  112. data/lib/fog/azurerm/requests/network/create_load_balancer.rb +43 -62
  113. data/lib/fog/azurerm/requests/network/create_or_update_express_route_circuit.rb +98 -0
  114. data/lib/fog/azurerm/requests/network/create_or_update_express_route_circuit_peering.rb +69 -0
  115. data/lib/fog/azurerm/requests/network/create_or_update_network_interface.rb +14 -19
  116. data/lib/fog/azurerm/requests/network/create_or_update_network_security_group.rb +29 -26
  117. data/lib/fog/azurerm/requests/network/create_or_update_virtual_network.rb +19 -25
  118. data/lib/fog/azurerm/requests/network/create_or_update_virtual_network_gateway.rb +151 -0
  119. data/lib/fog/azurerm/requests/network/create_public_ip.rb +8 -10
  120. data/lib/fog/azurerm/requests/network/create_subnet.rb +13 -15
  121. data/lib/fog/azurerm/requests/network/delete_express_route_circuit.rb +28 -0
  122. data/lib/fog/azurerm/requests/network/delete_express_route_circuit_peering.rb +28 -0
  123. data/lib/fog/azurerm/requests/network/delete_load_balancer.rb +8 -7
  124. data/lib/fog/azurerm/requests/network/delete_network_interface.rb +7 -8
  125. data/lib/fog/azurerm/requests/network/delete_network_security_group.rb +8 -7
  126. data/lib/fog/azurerm/requests/network/delete_public_ip.rb +4 -6
  127. data/lib/fog/azurerm/requests/network/delete_subnet.rb +6 -7
  128. data/lib/fog/azurerm/requests/network/delete_virtual_network.rb +6 -7
  129. data/lib/fog/azurerm/requests/network/delete_virtual_network_gateway.rb +28 -0
  130. data/lib/fog/azurerm/requests/network/detach_network_security_group_from_subnet.rb +15 -17
  131. data/lib/fog/azurerm/requests/network/detach_resource_from_nic.rb +15 -14
  132. data/lib/fog/azurerm/requests/network/detach_route_table_from_subnet.rb +15 -17
  133. data/lib/fog/azurerm/requests/network/get_express_route_circuit.rb +51 -0
  134. data/lib/fog/azurerm/requests/network/get_express_route_circuit_peering.rb +48 -0
  135. data/lib/fog/azurerm/requests/network/get_network_interface.rb +7 -7
  136. data/lib/fog/azurerm/requests/network/get_network_security_group.rb +11 -7
  137. data/lib/fog/azurerm/requests/network/get_public_ip.rb +41 -0
  138. data/lib/fog/azurerm/requests/network/get_subnet.rb +10 -9
  139. data/lib/fog/azurerm/requests/network/get_virtual_network.rb +12 -14
  140. data/lib/fog/azurerm/requests/network/get_virtual_network_gateway.rb +45 -0
  141. data/lib/fog/azurerm/requests/network/list_express_route_circuit_peerings.rb +44 -0
  142. data/lib/fog/azurerm/requests/network/list_express_route_circuits.rb +53 -0
  143. data/lib/fog/azurerm/requests/network/list_express_route_service_providers.rb +37 -0
  144. data/lib/fog/azurerm/requests/network/list_load_balancers.rb +6 -6
  145. data/lib/fog/azurerm/requests/network/list_network_interfaces.rb +42 -37
  146. data/lib/fog/azurerm/requests/network/list_network_security_groups.rb +149 -143
  147. data/lib/fog/azurerm/requests/network/list_public_ips.rb +26 -22
  148. data/lib/fog/azurerm/requests/network/list_subnets.rb +35 -31
  149. data/lib/fog/azurerm/requests/network/list_virtual_network_gateways.rb +43 -0
  150. data/lib/fog/azurerm/requests/network/list_virtual_networks.rb +52 -51
  151. data/lib/fog/azurerm/requests/network/remove_address_prefixes_from_virtual_network.rb +6 -4
  152. data/lib/fog/azurerm/requests/network/remove_dns_servers_from_virtual_network.rb +6 -4
  153. data/lib/fog/azurerm/requests/network/remove_security_rule.rb +15 -13
  154. data/lib/fog/azurerm/requests/network/remove_subnets_from_virtual_network.rb +6 -4
  155. data/lib/fog/azurerm/requests/resources/create_deployment.rb +27 -21
  156. data/lib/fog/azurerm/requests/resources/create_resource_group.rb +9 -9
  157. data/lib/fog/azurerm/requests/resources/delete_deployment.rb +3 -4
  158. data/lib/fog/azurerm/requests/resources/delete_resource_group.rb +3 -5
  159. data/lib/fog/azurerm/requests/resources/delete_resource_tag.rb +14 -20
  160. data/lib/fog/azurerm/requests/resources/list_deployments.rb +8 -7
  161. data/lib/fog/azurerm/requests/resources/list_resource_groups.rb +27 -23
  162. data/lib/fog/azurerm/requests/resources/list_tagged_resources.rb +30 -27
  163. data/lib/fog/azurerm/requests/resources/tag_resource.rb +15 -20
  164. data/lib/fog/azurerm/requests/storage/check_storage_account_name_availability.rb +13 -15
  165. data/lib/fog/azurerm/requests/storage/create_container.rb +6 -5
  166. data/lib/fog/azurerm/requests/storage/create_storage_account.rb +36 -22
  167. data/lib/fog/azurerm/requests/storage/delete_container.rb +6 -5
  168. data/lib/fog/azurerm/requests/storage/delete_disk.rb +13 -12
  169. data/lib/fog/azurerm/requests/storage/delete_storage_account.rb +8 -9
  170. data/lib/fog/azurerm/requests/storage/get_blob_metadata.rb +10 -9
  171. data/lib/fog/azurerm/requests/storage/get_container_access_control_list.rb +6 -5
  172. data/lib/fog/azurerm/requests/storage/get_container_metadata.rb +8 -7
  173. data/lib/fog/azurerm/requests/storage/get_container_properties.rb +6 -5
  174. data/lib/fog/azurerm/requests/storage/get_storage_access_keys.rb +7 -7
  175. data/lib/fog/azurerm/requests/storage/list_containers.rb +6 -5
  176. data/lib/fog/azurerm/requests/storage/list_storage_account_for_rg.rb +7 -12
  177. data/lib/fog/azurerm/requests/storage/list_storage_accounts.rb +7 -13
  178. data/lib/fog/azurerm/requests/storage/set_blob_metadata.rb +8 -7
  179. data/lib/fog/azurerm/requests/storage/set_container_metadata.rb +8 -7
  180. data/lib/fog/azurerm/requests/traffic_manager/create_traffic_manager_endpoint.rb +54 -0
  181. data/lib/fog/azurerm/requests/traffic_manager/create_traffic_manager_profile.rb +107 -0
  182. data/lib/fog/azurerm/requests/traffic_manager/delete_traffic_manager_endpoint.rb +28 -0
  183. data/lib/fog/azurerm/requests/traffic_manager/delete_traffic_manager_profile.rb +26 -0
  184. data/lib/fog/azurerm/requests/traffic_manager/get_traffic_manager_endpoint.rb +39 -0
  185. data/lib/fog/azurerm/requests/traffic_manager/get_traffic_manager_profile.rb +80 -0
  186. data/lib/fog/azurerm/requests/traffic_manager/list_traffic_manager_profiles.rb +82 -0
  187. data/lib/fog/azurerm/storage.rb +1 -1
  188. data/lib/fog/azurerm/traffic_manager.rb +56 -0
  189. data/lib/fog/azurerm/utilities/general.rb +28 -0
  190. data/lib/fog/azurerm/version.rb +1 -1
  191. data/test/api_stub.rb +14 -7
  192. data/test/api_stub/models/{network/application_gateway.rb → application_gateway/gateway.rb} +8 -7
  193. data/test/api_stub/models/compute/availability_set.rb +35 -6
  194. data/test/api_stub/models/compute/server.rb +15 -16
  195. data/test/api_stub/models/dns/record_set.rb +20 -0
  196. data/test/api_stub/models/network/express_route_circuit.rb +47 -0
  197. data/test/api_stub/models/network/express_route_circuit_peering.rb +33 -0
  198. data/test/api_stub/models/network/express_route_service_provider.rb +29 -0
  199. data/test/api_stub/models/network/load_balancer.rb +137 -115
  200. data/test/api_stub/models/network/network_interface.rb +3 -2
  201. data/test/api_stub/models/network/network_security_group.rb +4 -3
  202. data/test/api_stub/models/network/public_ip.rb +5 -4
  203. data/test/api_stub/models/network/subnet.rb +3 -2
  204. data/test/api_stub/models/network/virtual_network.rb +3 -2
  205. data/test/api_stub/models/network/virtual_network_gateway.rb +26 -0
  206. data/test/api_stub/models/resources/deployment.rb +56 -50
  207. data/test/api_stub/models/resources/resource.rb +17 -14
  208. data/test/api_stub/models/resources/resource_group.rb +4 -18
  209. data/test/api_stub/models/storage/storageaccount.rb +8 -15
  210. data/test/api_stub/models/{network → traffic_manager}/traffic_manager_end_point.rb +4 -3
  211. data/test/api_stub/models/{network → traffic_manager}/traffic_manager_profile.rb +4 -3
  212. data/test/api_stub/requests/application_gateway/gateway.rb +431 -0
  213. data/test/api_stub/requests/compute/availability_set.rb +34 -23
  214. data/test/api_stub/requests/compute/virtual_machine.rb +73 -30
  215. data/test/api_stub/requests/dns/record_set.rb +6 -6
  216. data/test/api_stub/requests/dns/zone.rb +2 -2
  217. data/test/api_stub/requests/network/express_route_circuit.rb +100 -0
  218. data/test/api_stub/requests/network/express_route_circuit_peering.rb +62 -0
  219. data/test/api_stub/requests/network/express_route_service_provider.rb +30 -0
  220. data/test/api_stub/requests/network/load_balancer.rb +273 -251
  221. data/test/api_stub/requests/network/network_interface.rb +12 -16
  222. data/test/api_stub/requests/network/network_security_group.rb +12 -27
  223. data/test/api_stub/requests/network/public_ip.rb +7 -9
  224. data/test/api_stub/requests/network/subnet.rb +6 -8
  225. data/test/api_stub/requests/network/virtual_network.rb +6 -8
  226. data/test/api_stub/requests/network/virtual_network_gateway.rb +49 -0
  227. data/test/api_stub/requests/resources/deployment.rb +56 -11
  228. data/test/api_stub/requests/resources/resource.rb +6 -8
  229. data/test/api_stub/requests/resources/resource_group.rb +6 -8
  230. data/test/api_stub/requests/storage/storageaccount.rb +44 -31
  231. data/test/api_stub/requests/traffic_manager/traffic_manager_endpoint.rb +41 -0
  232. data/test/api_stub/requests/{network → traffic_manager}/traffic_manager_profile.rb +7 -5
  233. data/test/integration/application_gateway.rb +16 -8
  234. data/test/integration/availability_set.rb +1 -1
  235. data/test/integration/container.rb +2 -1
  236. data/test/integration/deployment.rb +54 -0
  237. data/test/integration/express_route_circuit.rb +80 -0
  238. data/test/integration/external_load_balancer.rb +7 -6
  239. data/test/integration/internal_load_balancer.rb +6 -5
  240. data/test/integration/network_interface.rb +2 -2
  241. data/test/integration/public_ip.rb +2 -2
  242. data/test/integration/record_set.rb +26 -8
  243. data/test/integration/resource_group.rb +39 -0
  244. data/test/integration/resource_tag.rb +62 -0
  245. data/test/integration/server.rb +6 -4
  246. data/test/integration/storage_account.rb +33 -5
  247. data/test/integration/subnet.rb +2 -2
  248. data/test/integration/traffic_manager.rb +12 -12
  249. data/test/integration/virtual_network.rb +6 -6
  250. data/test/integration/virtual_network_gateway.rb +101 -0
  251. data/test/integration/zone.rb +1 -1
  252. data/test/models/application_gateway/test_gateway.rb +57 -0
  253. data/test/models/{network/test_application_gateways.rb → application_gateway/test_gateways.rb} +10 -10
  254. data/test/models/compute/test_availability_set.rb +2 -1
  255. data/test/models/compute/test_availability_sets.rb +5 -4
  256. data/test/models/compute/test_server.rb +6 -5
  257. data/test/models/compute/test_servers.rb +3 -2
  258. data/test/models/dns/test_record_set.rb +27 -1
  259. data/test/models/dns/test_record_sets.rb +3 -2
  260. data/test/models/dns/test_zone.rb +1 -1
  261. data/test/models/dns/test_zones.rb +2 -1
  262. data/test/models/network/test_express_route_circuit.rb +58 -0
  263. data/test/models/network/test_express_route_circuit_peering.rb +59 -0
  264. data/test/models/network/test_express_route_circuit_peerings.rb +43 -0
  265. data/test/models/network/test_express_route_circuits.rb +42 -0
  266. data/test/models/network/test_express_route_service_providers.rb +30 -0
  267. data/test/models/network/test_load_balancer.rb +7 -12
  268. data/test/models/network/test_load_balancers.rb +4 -4
  269. data/test/models/network/test_network_interface.rb +10 -16
  270. data/test/models/network/test_network_interfaces.rb +3 -2
  271. data/test/models/network/test_network_security_group.rb +6 -8
  272. data/test/models/network/test_network_security_groups.rb +2 -1
  273. data/test/models/network/test_public_ip.rb +5 -6
  274. data/test/models/network/test_public_ips.rb +6 -6
  275. data/test/models/network/test_subnet.rb +9 -15
  276. data/test/models/network/test_subnets.rb +3 -2
  277. data/test/models/network/test_virtual_network.rb +10 -16
  278. data/test/models/network/test_virtual_network_gateway.rb +62 -0
  279. data/test/models/network/test_virtual_network_gateways.rb +42 -0
  280. data/test/models/network/test_virtual_networks.rb +3 -2
  281. data/test/models/resources/test_deployment.rb +2 -1
  282. data/test/models/resources/test_deployments.rb +2 -1
  283. data/test/models/resources/test_resource_group.rb +2 -1
  284. data/test/models/resources/test_resource_groups.rb +2 -1
  285. data/test/models/resources/test_resources.rb +2 -1
  286. data/test/models/storage/test_data_disk.rb +0 -6
  287. data/test/models/storage/test_storage_account.rb +29 -8
  288. data/test/models/storage/test_storage_accounts.rb +5 -5
  289. data/test/models/{network → traffic_manager}/test_traffic_manager_end_point.rb +4 -3
  290. data/test/models/traffic_manager/test_traffic_manager_end_points.rb +43 -0
  291. data/test/models/{network → traffic_manager}/test_traffic_manager_profile.rb +5 -4
  292. data/test/models/traffic_manager/test_traffic_manager_profiles.rb +42 -0
  293. data/test/requests/application_gateway/test_create_application_gateway.rb +51 -0
  294. data/test/requests/application_gateway/test_delete_application_gateway.rb +23 -0
  295. data/test/requests/application_gateway/test_list_application_gateways.rb +24 -0
  296. data/test/requests/compute/test_attach_data_disk_to_vm.rb +40 -123
  297. data/test/requests/compute/test_create_availability_set.rb +9 -11
  298. data/test/requests/compute/test_create_virtual_machine.rb +13 -29
  299. data/test/requests/compute/test_deallocate_virtual_machine.rb +7 -13
  300. data/test/requests/compute/test_delete_availability_set.rb +5 -11
  301. data/test/requests/compute/test_delete_virtual_machine.rb +7 -13
  302. data/test/requests/compute/test_detach_data_disk_from_vm.rb +13 -34
  303. data/test/requests/compute/test_generalize_virtual_machine.rb +7 -13
  304. data/test/requests/compute/test_get_availability_set.rb +24 -0
  305. data/test/requests/compute/test_get_virtual_machine.rb +8 -15
  306. data/test/requests/compute/test_get_vm_status.rb +8 -14
  307. data/test/requests/compute/test_list_availability_sets.rb +8 -14
  308. data/test/requests/compute/test_list_available_sizes_for_virtual_machine.rb +8 -15
  309. data/test/requests/compute/test_list_virtual_machines.rb +8 -14
  310. data/test/requests/compute/test_power_off_virtual_machine.rb +7 -13
  311. data/test/requests/compute/test_redeploy_virtual_machine.rb +7 -13
  312. data/test/requests/compute/test_restart_virtual_machine.rb +7 -13
  313. data/test/requests/compute/test_start_virtual_machine.rb +7 -13
  314. data/test/requests/dns/test_create_record_set.rb +8 -8
  315. data/test/requests/dns/test_create_zone.rb +6 -6
  316. data/test/requests/dns/test_delete_record_set.rb +2 -2
  317. data/test/requests/dns/test_delete_zone.rb +2 -2
  318. data/test/requests/dns/test_get_record_set.rb +46 -0
  319. data/test/requests/dns/test_get_zone.rb +46 -0
  320. data/test/requests/network/test_add_address_prefixes_in_virtual_network.rb +11 -27
  321. data/test/requests/network/test_add_dns_servers_in_virtual_network.rb +11 -27
  322. data/test/requests/network/test_add_security_rules.rb +11 -31
  323. data/test/requests/network/test_add_subnets_in_virtual_network.rb +11 -27
  324. data/test/requests/network/test_attach_network_security_group_to_subnet.rb +9 -16
  325. data/test/requests/network/test_attach_resource_to_nic.rb +15 -37
  326. data/test/requests/network/test_attach_route_table_to_subnet.rb +9 -16
  327. data/test/requests/network/test_check_for_public_ip.rb +10 -18
  328. data/test/requests/network/test_check_for_virtual_network.rb +10 -18
  329. data/test/requests/network/test_create_express_route_circuit.rb +39 -0
  330. data/test/requests/network/test_create_express_route_circuit_peering.rb +37 -0
  331. data/test/requests/network/test_create_load_balancer.rb +27 -34
  332. data/test/requests/network/test_create_network_interface.rb +16 -28
  333. data/test/requests/network/test_create_or_update_network_security_group.rb +38 -0
  334. data/test/requests/network/test_create_or_update_virtual_network.rb +20 -28
  335. data/test/requests/network/test_create_public_ip.rb +13 -22
  336. data/test/requests/network/test_create_subnet.rb +13 -22
  337. data/test/requests/network/test_create_virtual_network_gateway.rb +37 -0
  338. data/test/requests/network/test_delete_express_route_circuit.rb +24 -0
  339. data/test/requests/network/test_delete_express_route_circuit_peering.rb +24 -0
  340. data/test/requests/network/test_delete_load_balancer.rb +7 -13
  341. data/test/requests/network/test_delete_network_interface.rb +7 -13
  342. data/test/requests/network/test_delete_network_security_group.rb +6 -13
  343. data/test/requests/network/test_delete_public_ip.rb +7 -13
  344. data/test/requests/network/test_delete_subnet.rb +7 -13
  345. data/test/requests/network/test_delete_virtual_network.rb +7 -13
  346. data/test/requests/network/test_delete_virtual_network_gateway.rb +24 -0
  347. data/test/requests/network/test_detach_network_security_group_from_subnet.rb +9 -16
  348. data/test/requests/network/test_detach_resource_from_nic.rb +15 -34
  349. data/test/requests/network/test_detach_route_table_from_subnet.rb +9 -16
  350. data/test/requests/network/test_get_express_route_circuit.rb +24 -0
  351. data/test/requests/network/test_get_express_route_circuit_peering.rb +24 -0
  352. data/test/requests/network/test_get_network_interface.rb +8 -15
  353. data/test/requests/network/test_get_network_security_group.rb +9 -16
  354. data/test/requests/network/test_get_public_ip.rb +26 -0
  355. data/test/requests/network/test_get_subnet.rb +9 -16
  356. data/test/requests/network/test_get_virtual_network.rb +26 -0
  357. data/test/requests/network/test_get_virtual_network_gateway.rb +24 -0
  358. data/test/requests/network/test_list_express_route_circuit_peerings.rb +24 -0
  359. data/test/requests/network/test_list_express_route_circuits.rb +26 -0
  360. data/test/requests/network/test_list_express_route_service_providers.rb +24 -0
  361. data/test/requests/network/test_list_load_balancers.rb +8 -15
  362. data/test/requests/network/test_list_network_interfaces.rb +8 -15
  363. data/test/requests/network/test_list_network_security_groups.rb +9 -16
  364. data/test/requests/network/test_list_public_ips.rb +8 -15
  365. data/test/requests/network/test_list_subnets.rb +8 -15
  366. data/test/requests/network/test_list_virtual_network_gateways.rb +24 -0
  367. data/test/requests/network/test_list_virtual_networks.rb +8 -15
  368. data/test/requests/network/test_remove_address_prefixes_from_virtual_network.rb +11 -27
  369. data/test/requests/network/test_remove_dns_servers_from_virtual_network.rb +11 -27
  370. data/test/requests/network/test_remove_security_rule.rb +11 -31
  371. data/test/requests/network/test_remove_subnets_from_virtual_network.rb +11 -27
  372. data/test/requests/resources/test_create_deployment.rb +10 -27
  373. data/test/requests/resources/test_create_resource_group.rb +8 -15
  374. data/test/requests/resources/test_delete_deployment.rb +5 -11
  375. data/test/requests/resources/test_delete_resource_group.rb +8 -14
  376. data/test/requests/resources/test_delete_resource_tag.rb +12 -28
  377. data/test/requests/resources/test_list_deployments.rb +8 -15
  378. data/test/requests/resources/test_list_resource_groups.rb +8 -15
  379. data/test/requests/resources/test_list_tagged_resources.rb +8 -15
  380. data/test/requests/resources/test_tag_resource.rb +12 -28
  381. data/test/requests/storage/test_check_storage_account_name_availability.rb +14 -29
  382. data/test/requests/storage/test_create_storage_account.rb +13 -35
  383. data/test/requests/storage/test_delete_storage_account.rb +8 -14
  384. data/test/requests/storage/test_get_storage_access_keys.rb +7 -14
  385. data/test/requests/storage/test_list_storage_accounts.rb +12 -22
  386. data/test/requests/storage/test_list_storage_accounts_for_rg.rb +15 -29
  387. data/test/requests/traffic_manager/test_create_traffic_manager_endpoint.rb +25 -0
  388. data/test/requests/traffic_manager/test_create_traffic_manager_profile.rb +25 -0
  389. data/test/requests/traffic_manager/test_delete_traffic_manager_endpoint.rb +23 -0
  390. data/test/requests/traffic_manager/test_delete_traffic_manager_profile.rb +23 -0
  391. data/test/requests/traffic_manager/test_get_traffic_manager_endpoint.rb +24 -0
  392. data/test/requests/traffic_manager/test_get_traffic_manager_profile.rb +24 -0
  393. data/test/requests/traffic_manager/test_list_traffic_manager_profiles.rb +24 -0
  394. data/test/test_helper.rb +113 -4
  395. metadata +147 -86
  396. data/lib/fog/azurerm/models/network/application_gateway_backend_address_pool.rb +0 -24
  397. data/lib/fog/azurerm/models/network/application_gateway_backend_http_setting.rb +0 -30
  398. data/lib/fog/azurerm/models/network/application_gateway_frontend_ip_configuration.rb +0 -30
  399. data/lib/fog/azurerm/models/network/application_gateway_frontend_port.rb +0 -22
  400. data/lib/fog/azurerm/models/network/application_gateway_http_listener.rb +0 -37
  401. data/lib/fog/azurerm/models/network/application_gateway_ip_configuration.rb +0 -21
  402. data/lib/fog/azurerm/models/network/application_gateway_probe.rb +0 -32
  403. data/lib/fog/azurerm/models/network/application_gateway_request_routing_rule.rb +0 -35
  404. data/lib/fog/azurerm/models/network/application_gateway_ssl_certificate.rb +0 -26
  405. data/lib/fog/azurerm/models/network/application_gateway_url_path_map.rb +0 -32
  406. data/lib/fog/azurerm/models/network/traffic_manager_end_point.rb +0 -63
  407. data/lib/fog/azurerm/models/network/traffic_manager_end_points.rb +0 -29
  408. data/lib/fog/azurerm/models/network/traffic_manager_profile.rb +0 -59
  409. data/lib/fog/azurerm/models/network/traffic_manager_profiles.rb +0 -24
  410. data/lib/fog/azurerm/requests/network/create_traffic_manager_endpoint.rb +0 -78
  411. data/lib/fog/azurerm/requests/network/create_traffic_manager_profile.rb +0 -127
  412. data/lib/fog/azurerm/requests/network/delete_application_gateway.rb +0 -27
  413. data/lib/fog/azurerm/requests/network/delete_traffic_manager_endpoint.rb +0 -37
  414. data/lib/fog/azurerm/requests/network/delete_traffic_manager_profile.rb +0 -37
  415. data/lib/fog/azurerm/requests/network/get_traffic_manager_profile.rb +0 -96
  416. data/lib/fog/azurerm/requests/network/list_application_gateways.rb +0 -31
  417. data/lib/fog/azurerm/requests/network/list_traffic_manager_profiles.rb +0 -98
  418. data/test/api_stub/models/storage/data_disk.rb +0 -30
  419. data/test/api_stub/requests/network/application_gateway.rb +0 -433
  420. data/test/api_stub/requests/network/traffic_manager_endpoint.rb +0 -25
  421. data/test/models/network/test_application_gateway.rb +0 -62
  422. data/test/models/network/test_traffic_manager_end_points.rb +0 -42
  423. data/test/models/network/test_traffic_manager_profiles.rb +0 -41
  424. data/test/requests/network/test_create_application_gateway.rb +0 -61
  425. data/test/requests/network/test_create_network_security_group.rb +0 -45
  426. data/test/requests/network/test_create_traffic_manager_endpoint.rb +0 -32
  427. data/test/requests/network/test_create_traffic_manager_profile.rb +0 -32
  428. data/test/requests/network/test_delete_application_gateway.rb +0 -30
  429. data/test/requests/network/test_delete_traffic_manager_endpoint.rb +0 -28
  430. data/test/requests/network/test_delete_traffic_manager_profile.rb +0 -28
  431. data/test/requests/network/test_get_traffic_manager_profile.rb +0 -29
  432. data/test/requests/network/test_list_application_gateways.rb +0 -31
  433. data/test/requests/network/test_list_traffic_manager_profiles.rb +0 -29
@@ -0,0 +1,98 @@
1
+ module Fog
2
+ module Network
3
+ class AzureRM
4
+ # Real class for Network Request
5
+ class Real
6
+ def create_or_update_express_route_circuit(circuit_parameters)
7
+ msg = "Exception creating/updating Express Route Circuit #{circuit_parameters[:circuit_name]} in Resource Group: #{circuit_parameters[:resource_group_name]}."
8
+ Fog::Logger.debug msg
9
+ circuit = get_express_route_circuit_object(circuit_parameters)
10
+ begin
11
+ circuit = @network_client.express_route_circuits.create_or_update(circuit_parameters[:resource_group_name], circuit_parameters[:circuit_name], circuit)
12
+ rescue MsRestAzure::AzureOperationError => e
13
+ raise_azure_exception(e, msg)
14
+ end
15
+ Fog::Logger.debug "Express Route Circuit #{circuit_parameters[:circuit_name]} created/updated successfully."
16
+ circuit
17
+ end
18
+
19
+ private
20
+
21
+ def get_express_route_circuit_object(circuit_parameters)
22
+ sku = Azure::ARM::Network::Models::ExpressRouteCircuitSku.new
23
+ sku.name = circuit_parameters[:sku_name]
24
+ sku.family = circuit_parameters[:sku_family]
25
+ sku.tier = circuit_parameters[:sku_tier]
26
+
27
+ service_provider_prop = Azure::ARM::Network::Models::ExpressRouteCircuitServiceProviderProperties.new
28
+ service_provider_prop.service_provider_name = circuit_parameters[:service_provider_name]
29
+ service_provider_prop.peering_location = circuit_parameters[:peering_location]
30
+ service_provider_prop.bandwidth_in_mbps = circuit_parameters[:bandwidth_in_mbps]
31
+
32
+ express_route_circuit = Azure::ARM::Network::Models::ExpressRouteCircuit.new
33
+ express_route_circuit.service_provider_properties = service_provider_prop
34
+ if circuit_parameters[:peerings]
35
+ circuit_peerings = get_circuit_peerings(circuit_parameters[:peerings])
36
+ express_route_circuit.peerings = circuit_peerings
37
+ end
38
+ express_route_circuit.name = circuit_parameters[:circuit_name]
39
+ express_route_circuit.location = circuit_parameters[:location]
40
+ express_route_circuit.sku = sku
41
+ express_route_circuit.tags = circuit_parameters[:tags] if express_route_circuit.tags.nil?
42
+
43
+ express_route_circuit
44
+ end
45
+
46
+ def get_circuit_peerings(peerings)
47
+ circuit_peerings = []
48
+ peerings.each do |peering|
49
+ circuit_peering = Azure::ARM::Network::Models::ExpressRouteCircuitPeering.new
50
+ circuit_peering.peering_type = peering[:peering_type]
51
+ circuit_peering.peer_asn = peering[:peer_asn]
52
+ circuit_peering.primary_peer_address_prefix = peering[:primary_peer_address_prefix]
53
+ circuit_peering.secondary_peer_address_prefix = peering[:secondary_peer_address_prefix]
54
+ circuit_peering.vlan_id = peering[:vlan_id]
55
+ if peering[:peering_type].casecmp(MICROSOFT_PEERING) == 0
56
+ peering_config = Azure::ARM::Network::Models::ExpressRouteCircuitPeeringConfig.new
57
+ peering_config.advertised_public_prefixes = peering[:advertised_public_prefixes]
58
+ peering_config.advertised_public_prefixes_state = peering[:advertised_public_prefix_state]
59
+ peering_config.customer_asn = peering[:customer_asn]
60
+ peering_config.routing_registry_name = peering[:routing_registry_name]
61
+ circuit_peering.microsoft_peering_config = peering_config
62
+ end
63
+
64
+ circuit_peering.name = peering[:name]
65
+ circuit_peerings.push(circuit_peering)
66
+ end
67
+ circuit_peerings
68
+ end
69
+ end
70
+
71
+ # Mock class for Network Request
72
+ class Mock
73
+ def create_or_update_express_route_circuit(*)
74
+ {
75
+ 'name' => 'CircuitName',
76
+ 'location' => 'eastus',
77
+ 'tags' => {
78
+ 'key1' => 'value1',
79
+ 'key2' => 'value2'
80
+ },
81
+ 'sku' => {
82
+ 'name' => 'Standard_MeteredData',
83
+ 'tier' => 'Standard',
84
+ 'family' => 'MeteredData'
85
+ },
86
+ 'properties' => {
87
+ 'serviceProviderProperties' => {
88
+ 'serviceProviderName' => 'Telenor',
89
+ 'peeringLocation' => 'London',
90
+ 'bandwidthInMbps' => 100
91
+ }
92
+ }
93
+ }
94
+ end
95
+ end
96
+ end
97
+ end
98
+ end
@@ -0,0 +1,69 @@
1
+ module Fog
2
+ module Network
3
+ class AzureRM
4
+ # Real class for Network Request
5
+ class Real
6
+ def create_or_update_express_route_circuit_peering(circuit_peering_params)
7
+ msg = "Exception creating/updating Express Route Circuit Peering #{circuit_peering_params[:peering_name]} in Resource Group: #{circuit_peering_params[:resource_group_name]}."
8
+ Fog::Logger.debug msg
9
+ circuit_peering = get_circuit_peering_object(circuit_peering_params)
10
+ begin
11
+ peering = @network_client.express_route_circuit_peerings.create_or_update(circuit_peering_params[:resource_group_name], circuit_peering_params[:circuit_name], circuit_peering_params[:peering_name], circuit_peering)
12
+ rescue MsRestAzure::AzureOperationError => e
13
+ raise_azure_exception(e, msg)
14
+ end
15
+ Fog::Logger.debug "Express Route Circuit Peering #{circuit_peering_params[:peering_name]} created/updated successfully."
16
+ peering
17
+ end
18
+
19
+ private
20
+
21
+ def get_circuit_peering_object(circuit_peering_params)
22
+ circuit_peering = Azure::ARM::Network::Models::ExpressRouteCircuitPeering.new
23
+ circuit_peering.name = circuit_peering_params[:peering_name]
24
+ circuit_peering.peering_type = circuit_peering_params[:peering_type]
25
+ circuit_peering.peer_asn = circuit_peering_params[:peer_asn]
26
+ circuit_peering.primary_peer_address_prefix = circuit_peering_params[:primary_peer_address_prefix]
27
+ circuit_peering.secondary_peer_address_prefix = circuit_peering_params[:secondary_peer_address_prefix]
28
+ circuit_peering.vlan_id = circuit_peering_params[:vlan_id]
29
+
30
+ if circuit_peering_params[:peering_type].casecmp(MICROSOFT_PEERING) == 0
31
+ peering_config = Azure::ARM::Network::Models::ExpressRouteCircuitPeeringConfig.new
32
+ peering_config.advertised_public_prefixes = circuit_peering_params[:advertised_public_prefixes]
33
+ peering_config.advertised_public_prefixes_state = circuit_peering_params[:advertised_public_prefix_state]
34
+ peering_config.customer_asn = circuit_peering_params[:customer_asn]
35
+ peering_config.routing_registry_name = circuit_peering_params[:routing_registry_name]
36
+ circuit_peering.microsoft_peering_config = peering_config
37
+ end
38
+
39
+ circuit_peering
40
+ end
41
+ end
42
+
43
+ # Mock class for Network Request
44
+ class Mock
45
+ def create_or_update_express_route_circuit_peering(*)
46
+ {
47
+ 'name' => 'PeeringName',
48
+ 'properties' => {
49
+ 'peeringType' => 'MicrosoftPeering',
50
+ 'peerASN' => 100,
51
+ 'primaryPeerAddressPrefix' => '192.168.1.0/30',
52
+ 'secondaryPeerAddressPrefix' => '192.168.2.0/30',
53
+ 'vlanId' => 200,
54
+ 'microsoftPeeringConfig' => {
55
+ 'advertisedpublicprefixes' => [
56
+ '11.2.3.4/30',
57
+ '12.2.3.4/30'
58
+ ],
59
+ 'advertisedPublicPrefixState' => 'NotConfigured',
60
+ 'customerAsn' => 200,
61
+ 'routingRegistryName' => '<name>'
62
+ }
63
+ }
64
+ }
65
+ end
66
+ end
67
+ end
68
+ end
69
+ end
@@ -5,17 +5,16 @@ module Fog
5
5
  # Real class for Network Request
6
6
  class Real
7
7
  def create_or_update_network_interface(resource_group_name, name, location, subnet_id, public_ip_address_id, ip_config_name, private_ip_allocation_method, private_ip_address)
8
- Fog::Logger.debug "Creating/Updating Network Interface Card: #{name}..."
8
+ msg = "Creating/Updating Network Interface Card: #{name}"
9
+ Fog::Logger.debug msg
9
10
  network_interface = get_network_interface_object(name, location, subnet_id, public_ip_address_id, ip_config_name, private_ip_allocation_method, private_ip_address)
10
11
  begin
11
- promise = @network_client.network_interfaces.create_or_update(resource_group_name, name, network_interface)
12
- result = promise.value!
13
- Fog::Logger.debug "Network Interface #{name} created/updated successfully."
14
- Azure::ARM::Network::Models::NetworkInterface.serialize_object(result.body)
12
+ network_interface_obj = @network_client.network_interfaces.create_or_update(resource_group_name, name, network_interface)
15
13
  rescue MsRestAzure::AzureOperationError => e
16
- msg = "Exception creating/updating Network Interface #{name} in Resource Group: #{resource_group_name}. #{e.body['error']['message']}"
17
- raise msg
14
+ raise_azure_exception(e, msg)
18
15
  end
16
+ Fog::Logger.debug "Network Interface #{name} created/updated successfully."
17
+ network_interface_obj
19
18
  end
20
19
 
21
20
  private
@@ -29,23 +28,17 @@ module Fog
29
28
  public_ipaddress.id = public_ip_address_id
30
29
  end
31
30
 
32
- ip_configs_props = Azure::ARM::Network::Models::NetworkInterfaceIPConfigurationPropertiesFormat.new
33
- ip_configs_props.private_ipallocation_method = private_ip_allocation_method
34
- ip_configs_props.private_ipaddress = private_ip_address
35
- ip_configs_props.public_ipaddress = public_ipaddress
36
- ip_configs_props.subnet = subnet
37
-
38
31
  ip_configs = Azure::ARM::Network::Models::NetworkInterfaceIPConfiguration.new
39
32
  ip_configs.name = ip_config_name
40
- ip_configs.properties = ip_configs_props
41
-
42
- nic_props = Azure::ARM::Network::Models::NetworkInterfacePropertiesFormat.new
43
- nic_props.ip_configurations = [ip_configs]
33
+ ip_configs.private_ipallocation_method = private_ip_allocation_method
34
+ ip_configs.private_ipaddress = private_ip_address
35
+ ip_configs.public_ipaddress = public_ipaddress unless public_ip_address_id.nil?
36
+ ip_configs.subnet = subnet
44
37
 
45
38
  network_interface = Azure::ARM::Network::Models::NetworkInterface.new
46
39
  network_interface.name = name
47
40
  network_interface.location = location
48
- network_interface.properties = nic_props
41
+ network_interface.ip_configurations = [ip_configs]
49
42
 
50
43
  network_interface
51
44
  end
@@ -54,7 +47,7 @@ module Fog
54
47
  # Mock class for Network Request
55
48
  class Mock
56
49
  def create_or_update_network_interface(resource_group_name, name, location, subnet_id, public_ip_address_id, ip_configs_name, private_ip_allocation_method, private_ip_address)
57
- {
50
+ nic = {
58
51
  'id' => "/subscriptions/########-####-####-####-############/resourceGroups/#{resource_group_name}/providers/Microsoft.Network/networkInterfaces/#{name}",
59
52
  'name' => name,
60
53
  'type' => 'Microsoft.Network/networkInterfaces',
@@ -92,6 +85,8 @@ module Fog
92
85
  'provisioningState' => 'Succeeded'
93
86
  }
94
87
  }
88
+ network_interface_mapper = Azure::ARM::Network::Models::NetworkInterface.mapper
89
+ @network_client.deserialize(network_interface_mapper, nic, 'result.body')
95
90
  end
96
91
  end
97
92
  end
@@ -4,43 +4,44 @@ module Fog
4
4
  # Real class for Network Request
5
5
  class Real
6
6
  def create_or_update_network_security_group(resource_group_name, security_group_name, location, security_rules)
7
- Fog::Logger.debug "Creating/Updating Network Security Group #{security_group_name} in Resource Group #{resource_group_name}."
8
- properties = Azure::ARM::Network::Models::NetworkSecurityGroupPropertiesFormat.new
9
- properties.security_rules = create_security_rule_objects(security_rules)
7
+ msg = "Creating/Updating Network Security Group #{security_group_name} in Resource Group #{resource_group_name}."
8
+ Fog::Logger.debug msg
9
+
10
+ security_group = get_security_group_object(security_rules, location)
10
11
 
11
- params = Azure::ARM::Network::Models::NetworkSecurityGroup.new
12
- params.location = location
13
- params.properties = properties
14
12
  begin
15
- promise = @network_client.network_security_groups.begin_create_or_update(resource_group_name, security_group_name, params)
16
- result = promise.value!
17
- Fog::Logger.debug "Network Security Group #{security_group_name} Created/Updated Successfully!"
18
- Azure::ARM::Network::Models::NetworkSecurityGroup.serialize_object(result.body)
13
+ security_group = @network_client.network_security_groups.begin_create_or_update(resource_group_name, security_group_name, security_group)
19
14
  rescue MsRestAzure::AzureOperationError => e
20
- msg = "Exception creating/updating Network Security Group #{security_group_name} in Resource Group: #{resource_group_name}. #{e.body['error']['message']}"
21
- raise msg
15
+ raise_azure_exception(e, msg)
22
16
  end
17
+
18
+ Fog::Logger.debug "Network Security Group #{security_group_name} Created/Updated Successfully!"
19
+ security_group
23
20
  end
24
21
 
25
22
  private
26
23
 
27
- def create_security_rule_objects(security_rules)
24
+ def get_security_group_object(security_rules, location)
25
+ security_group = Azure::ARM::Network::Models::NetworkSecurityGroup.new
26
+ security_group.security_rules = get_security_rule_objects(security_rules)
27
+ security_group.location = location
28
+ security_group
29
+ end
30
+
31
+ def get_security_rule_objects(security_rules)
28
32
  rules = []
29
33
  security_rules.each do |sr|
30
- properties = Azure::ARM::Network::Models::SecurityRulePropertiesFormat.new
31
- properties.description = sr[:description] unless sr[:description].nil?
32
- properties.protocol = sr[:protocol]
33
- properties.source_port_range = sr[:source_port_range]
34
- properties.destination_port_range = sr[:destination_port_range]
35
- properties.source_address_prefix = sr[:source_address_prefix]
36
- properties.destination_address_prefix = sr[:destination_address_prefix]
37
- properties.access = sr[:access]
38
- properties.priority = sr[:priority]
39
- properties.direction = sr[:direction]
40
-
41
34
  security_rule = Azure::ARM::Network::Models::SecurityRule.new
35
+ security_rule.description = sr[:description] unless sr[:description].nil?
36
+ security_rule.protocol = sr[:protocol]
37
+ security_rule.source_port_range = sr[:source_port_range]
38
+ security_rule.destination_port_range = sr[:destination_port_range]
39
+ security_rule.source_address_prefix = sr[:source_address_prefix]
40
+ security_rule.destination_address_prefix = sr[:destination_address_prefix]
41
+ security_rule.access = sr[:access]
42
+ security_rule.priority = sr[:priority]
43
+ security_rule.direction = sr[:direction]
42
44
  security_rule.name = sr[:name]
43
- security_rule.properties = properties
44
45
  rules << security_rule
45
46
  end unless security_rules.nil?
46
47
  rules
@@ -50,7 +51,7 @@ module Fog
50
51
  # Mock class for Network Request
51
52
  class Mock
52
53
  def create_or_update_network_security_group(resource_group_name, security_group_name, location, security_rules)
53
- {
54
+ network_security_group = {
54
55
  'id' => "/subscriptions/########-####-####-####-############/resourceGroups/#{resource_group_name}/providers/Microsoft.Network/networkSecurityGroups/#{security_group_name}",
55
56
  'name' => security_group_name,
56
57
  'type' => 'Microsoft.Network/networkSecurityGroups',
@@ -167,6 +168,8 @@ module Fog
167
168
  'provisioningState' => 'Updating'
168
169
  }
169
170
  }
171
+ nsg_mapper = Azure::ARM::Network::Models::NetworkSecurityGroup.mapper
172
+ @network_client.deserialize(nsg_mapper, network_security_group, 'result.body')
170
173
  end
171
174
  end
172
175
  end
@@ -5,28 +5,26 @@ module Fog
5
5
  class Real
6
6
  def create_or_update_virtual_network(resource_group_name, virtual_network_name, location, dns_servers, subnets, address_prefixes)
7
7
  virtual_network = define_vnet_object(location, address_prefixes, dns_servers, subnets)
8
- vnet = create_or_update_vnet(resource_group_name, virtual_network_name, virtual_network)
9
- Azure::ARM::Network::Models::VirtualNetwork.serialize_object(vnet)
8
+ create_or_update_vnet(resource_group_name, virtual_network_name, virtual_network)
10
9
  end
11
10
 
12
11
  private
13
12
 
14
13
  def create_or_update_vnet(resource_group_name, virtual_network_name, virtual_network)
15
- Fog::Logger.debug "Creating/Updating Virtual Network: #{virtual_network_name}"
14
+ msg = "Creating/Updating Virtual Network: #{virtual_network_name}"
15
+ Fog::Logger.debug msg
16
16
  begin
17
- response = @network_client.virtual_networks.create_or_update(resource_group_name, virtual_network_name, virtual_network).value!
18
- Fog::Logger.debug "Virtual Network #{virtual_network_name} created/updated successfully."
19
- response.body
20
- rescue MsRestAzure::AzureOperationError => e
21
- msg = "Exception creating/updating Virtual Network #{virtual_network_name} in Resource Group: #{resource_group_name}. #{e.body['error']['message']}"
22
- raise msg
17
+ virtual_network = @network_client.virtual_networks.create_or_update(resource_group_name, virtual_network_name, virtual_network)
18
+ rescue MsRestAzure::AzureOperationError => e
19
+ raise_azure_exception(e, msg)
23
20
  end
21
+ Fog::Logger.debug "Virtual Network #{virtual_network_name} created/updated successfully."
22
+ virtual_network
24
23
  end
25
24
 
26
25
  def define_vnet_object(location, address_prefixes, dns_servers, subnets)
27
26
  virtual_network = Azure::ARM::Network::Models::VirtualNetwork.new
28
27
  virtual_network.location = location
29
- virtual_network_properties = Azure::ARM::Network::Models::VirtualNetworkPropertiesFormat.new
30
28
 
31
29
  if address_prefixes.nil? || !address_prefixes.any?
32
30
  address_space = Azure::ARM::Network::Models::AddressSpace.new
@@ -35,20 +33,19 @@ module Fog
35
33
  address_space = Azure::ARM::Network::Models::AddressSpace.new
36
34
  address_space.address_prefixes = address_prefixes
37
35
  end
38
- virtual_network_properties.address_space = address_space
36
+ virtual_network.address_space = address_space
39
37
 
40
38
  if !dns_servers.nil? && dns_servers.any?
41
39
  dhcp_options = Azure::ARM::Network::Models::DhcpOptions.new
42
40
  dhcp_options.dns_servers = dns_servers
43
- virtual_network_properties.dhcp_options = dhcp_options
41
+ virtual_network.dhcp_options = dhcp_options
44
42
  end
45
43
 
46
44
  if !subnets.nil? && subnets.any?
47
45
  subnet_objects = define_subnet_objects(subnets)
48
- virtual_network_properties.subnets = subnet_objects
46
+ virtual_network.subnets = subnet_objects
49
47
  end
50
48
 
51
- virtual_network.properties = virtual_network_properties
52
49
  virtual_network
53
50
  end
54
51
 
@@ -61,14 +58,12 @@ module Fog
61
58
  route_table = Azure::ARM::Network::Models::RouteTable.new
62
59
  route_table.id = subnet[:route_table_id]
63
60
 
64
- subnet_properties = Azure::ARM::Network::Models::SubnetPropertiesFormat.new
65
- subnet_properties.address_prefix = subnet[:address_prefix]
66
- subnet_properties.network_security_group = network_security_group unless subnet[:network_security_group_id].nil?
67
- subnet_properties.route_table = route_table unless subnet[:route_table_id].nil?
68
-
69
61
  subnet_object = Azure::ARM::Network::Models::Subnet.new
70
62
  subnet_object.name = subnet[:name]
71
- subnet_object.properties = subnet_properties
63
+ subnet_object.address_prefix = subnet[:address_prefix]
64
+ subnet_object.network_security_group = network_security_group unless subnet[:network_security_group_id].nil?
65
+ subnet_object.route_table = route_table unless subnet[:route_table_id].nil?
66
+
72
67
  subnet_objects << subnet_object
73
68
  end
74
69
  subnet_objects
@@ -78,7 +73,7 @@ module Fog
78
73
  # Mock class for Network Request
79
74
  class Mock
80
75
  def create_or_update__virtual_network(*)
81
- {
76
+ virtual_network = {
82
77
  'id' => '/subscriptions/########-####-####-####-############/resourceGroups/fog-rg/providers/Microsoft.Network/virtualNetworks/fog-vnet',
83
78
  'name' => 'fog-vnet',
84
79
  'type' => 'Microsoft.Network/virtualNetworks',
@@ -88,10 +83,7 @@ module Fog
88
83
  'addressSpace' =>
89
84
  {
90
85
  'addressPrefixes' =>
91
- [
92
- '10.1.0.0/16',
93
- '10.2.0.0/16'
94
- ]
86
+ %w(10.1.0.0/16 10.2.0.0/16)
95
87
  },
96
88
  'subnets' =>
97
89
  [
@@ -109,6 +101,8 @@ module Fog
109
101
  'provisioningState' => 'Succeeded'
110
102
  }
111
103
  }
104
+ vnet_mapper = Azure::ARM::Network::Models::VirtualNetwork.mapper
105
+ @network_client.deserialize(vnet_mapper, virtual_network, 'result.body')
112
106
  end
113
107
  end
114
108
  end
@@ -0,0 +1,151 @@
1
+
2
+ module Fog
3
+ module Network
4
+ class AzureRM
5
+ # Real class for Network Request
6
+ class Real
7
+ def create_or_update_virtual_network_gateway(virtual_network_params)
8
+ msg = "Creating/Updating Virtual Network Gateway: #{virtual_network_params[:name]} in Resource Group: #{virtual_network_params[:resource_group_name]}."
9
+ Fog::Logger.debug msg
10
+ network_gateway = get_network_gateway_object(virtual_network_params)
11
+ begin
12
+ virtual_network_gateway = @network_client.virtual_network_gateways.create_or_update(virtual_network_params[:resource_group_name], virtual_network_params[:name], network_gateway)
13
+ rescue MsRestAzure::AzureOperationError => e
14
+ raise_azure_exception(e, msg)
15
+ end
16
+ Fog::Logger.debug "Virtual Network Gateway #{virtual_network_params[:name]} created/updated successfully."
17
+ virtual_network_gateway
18
+ end
19
+
20
+ private
21
+
22
+ def get_network_gateway_object(virtual_network_params)
23
+ network_gateway = Azure::ARM::Network::Models::VirtualNetworkGateway.new
24
+
25
+ default_site = MsRestAzure::SubResource.new
26
+ default_site.id = virtual_network_params[:gateway_default_site]
27
+
28
+ sku = Azure::ARM::Network::Models::VirtualNetworkGatewaySku.new
29
+ sku.name = virtual_network_params[:sku_name]
30
+ sku.capacity = virtual_network_params[:sku_capacity]
31
+ sku.tier = virtual_network_params[:sku_tier]
32
+
33
+ network_gateway.enable_bgp = virtual_network_params[:enable_bgp]
34
+ network_gateway.gateway_type = virtual_network_params[:gateway_type]
35
+ network_gateway.provisioning_state = virtual_network_params[:provisioning_state]
36
+ network_gateway.vpn_type = virtual_network_params[:vpn_type]
37
+ network_gateway.sku = sku
38
+ network_gateway.gateway_default_site = default_site
39
+ if virtual_network_params[:ip_configurations]
40
+ ip_configurations = get_ip_configurations(virtual_network_params[:ip_configurations])
41
+ network_gateway.ip_configurations = ip_configurations
42
+ end
43
+
44
+ if virtual_network_params[:enable_bgp]
45
+ bgp_settings = Azure::ARM::Network::Models::BgpSettings.new
46
+ bgp_settings.asn = virtual_network_params[:asn]
47
+ bgp_settings.bgp_peering_address = virtual_network_params[:bgp_peering_address]
48
+ bgp_settings.peer_weight = virtual_network_params[:peer_weight]
49
+ network_gateway.bgp_settings = bgp_settings
50
+ end
51
+
52
+ if virtual_network_params[:vpn_client_configuration]
53
+ vpn_client_config = get_vpn_client_config(virtual_network_params[:vpn_client_configuration])
54
+ network_gateway.vpn_client_configuration = vpn_client_config
55
+ end
56
+
57
+ network_gateway.name = virtual_network_params[:name]
58
+ network_gateway.location = virtual_network_params[:location]
59
+ network_gateway.tags = virtual_network_params[:tags] if network_gateway.tags.nil?
60
+
61
+ network_gateway
62
+ end
63
+
64
+ def get_vpn_client_config(vpn_client_config)
65
+ client_config = Azure::ARM::Network::Models::VpnClientConfiguration.new
66
+
67
+ address_pool = Azure::ARM::Network::Models::AddressSpace.new
68
+ address_pool.address_prefixes = vpn_client_config[:address_pool]
69
+ client_config.vpn_client_address_pool = address_pool
70
+
71
+ if vpn_client_config[:root_certificates]
72
+ root_certificates = get_root_certificates(vpn_client_config[:root_certificates])
73
+ client_config.vpn_client_root_certificates = root_certificates
74
+ end
75
+
76
+ if vpn_client_config[:revoked_certificates]
77
+ revoked_certificates = get_revoked_certificates(vpn_client_config[:revoked_certificates])
78
+ client_config.vpn_client_revoked_certificates = revoked_certificates
79
+ end
80
+ client_config
81
+ end
82
+
83
+ def get_root_certificates(root_certificates)
84
+ root_certs = []
85
+ root_certificates.each do |root_cert|
86
+ root_certificate = Azure::ARM::Network::Models::VpnClientRootCertificate.new
87
+ root_certificate.public_cert_data = root_cert[:public_cert_data]
88
+ root_certificate.provisioning_state = root_cert[:provisioning_state]
89
+ root_certificate.name = root_cert[:name]
90
+ root_certs.push(root_certificate)
91
+ end
92
+ root_certs
93
+ end
94
+
95
+ def get_revoked_certificates(revoked_certificates)
96
+ revoked_certs = []
97
+ revoked_certificates.each do |revoked_cert|
98
+ revoked_certificate = Azure::ARM::Network::Models::VpnClientRevokedCertificate.new
99
+ revoked_certificate.thumbprint = revoked_cert[:thumbprint]
100
+ revoked_certificate.provisioning_state = revoked_cert[:provisioning_state]
101
+ revoked_certificate.name = revoked_cert[:name]
102
+ revoked_certs.push(revoked_certificate)
103
+ end
104
+ revoked_certs
105
+ end
106
+
107
+ def get_ip_configurations(ip_configurations)
108
+ ip_configs = []
109
+ ip_configurations.each do |ip_config|
110
+ ip_configuration = Azure::ARM::Network::Models::VirtualNetworkGatewayIPConfiguration.new
111
+ ip_configuration.private_ipallocation_method = ip_config[:private_ipallocation_method]
112
+ unless ip_config[:subnet_id].nil?
113
+ subnet = Azure::ARM::Network::Models::Subnet.new
114
+ subnet.id = ip_config[:subnet_id]
115
+ ip_configuration.subnet = subnet
116
+ end
117
+ unless ip_config[:public_ipaddress_id].nil?
118
+ pip = Azure::ARM::Network::Models::PublicIPAddress.new
119
+ pip.id = ip_config[:public_ipaddress_id]
120
+ ip_configuration.public_ipaddress = pip
121
+ end
122
+
123
+ ip_configuration.name = ip_config[:name]
124
+ ip_configs.push(ip_configuration)
125
+ end
126
+ ip_configs
127
+ end
128
+ end
129
+
130
+ # Mock class for Network Request
131
+ class Mock
132
+ def create_or_update_virtual_network_gateway(*)
133
+ gateway = {
134
+ 'name' => 'myvirtualgateway1',
135
+ 'location' => 'West US',
136
+ 'tags' => { 'key1' => 'value1' },
137
+ 'properties' => {
138
+ 'gatewayType' => 'DynamicRouting',
139
+ 'gatewaySize' => 'Default',
140
+ 'bgpEnabled' => true,
141
+ 'vpnClientAddressPool' => ['{vpnClientAddressPoolPrefix}'],
142
+ 'defaultSites' => ['mysite1']
143
+ }
144
+ }
145
+ gateway_mapper = Azure::ARM::Network::Models::VirtualNetworkGateway.mapper
146
+ @network_client.deserialize(gateway_mapper, gateway, 'result.body')
147
+ end
148
+ end
149
+ end
150
+ end
151
+ end