far-gem 0.5.1 → 0.5.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (248) hide show
  1. checksums.yaml +5 -5
  2. data/.travis.yml +11 -9
  3. data/CHANGELOG.md +31 -0
  4. data/README.md +2 -0
  5. data/fog-azure-rm.gemspec +4 -3
  6. data/lib/fog/azurerm.rb +1 -0
  7. data/lib/fog/azurerm/custom_fog_errors.rb +18 -0
  8. data/lib/fog/azurerm/docs/compute.md +10 -4
  9. data/lib/fog/azurerm/docs/network.md +2 -1
  10. data/lib/fog/azurerm/models/compute/managed_disk.rb +9 -2
  11. data/lib/fog/azurerm/models/compute/server.rb +8 -1
  12. data/lib/fog/azurerm/models/network/network_interface.rb +3 -1
  13. data/lib/fog/azurerm/models/resources/azure_resources.rb +8 -0
  14. data/lib/fog/azurerm/models/storage/file.rb +2 -0
  15. data/lib/fog/azurerm/requests/compute/create_virtual_machine.rb +35 -7
  16. data/lib/fog/azurerm/requests/compute/delete_managed_disk.rb +12 -4
  17. data/lib/fog/azurerm/requests/network/create_or_update_network_interface.rb +4 -3
  18. data/lib/fog/azurerm/requests/network/list_network_security_groups.rb +139 -143
  19. data/lib/fog/azurerm/requests/resources/list_resources_in_resource_group.rb +42 -0
  20. data/lib/fog/azurerm/requests/storage/get_blob_properties.rb +26 -26
  21. data/lib/fog/azurerm/resources.rb +1 -0
  22. data/lib/fog/azurerm/storage.rb +1 -0
  23. data/lib/fog/azurerm/utilities/general.rb +9 -5
  24. data/lib/fog/azurerm/version.rb +1 -1
  25. data/test/api_stub/models/compute/server.rb +1 -0
  26. data/test/api_stub/models/resources/resource.rb +17 -0
  27. data/test/api_stub/requests/compute/virtual_machine.rb +8 -0
  28. data/test/api_stub/requests/network/network_security_group.rb +2 -2
  29. data/test/api_stub/requests/resources/resource.rb +17 -0
  30. data/test/api_stub/requests/storage/file.rb +9 -0
  31. data/test/integration/network_interface.rb +2 -1
  32. data/test/integration/resource_group.rb +10 -1
  33. data/test/models/compute/test_managed_disk.rb +9 -2
  34. data/test/models/compute/test_server.rb +1 -0
  35. data/test/models/network/test_network_interface.rb +2 -1
  36. data/test/models/resources/test_resources.rb +14 -1
  37. data/test/requests/application_gateway/test_check_ag_exists.rb +1 -1
  38. data/test/requests/application_gateway/test_create_or_update_application_gateway.rb +1 -1
  39. data/test/requests/application_gateway/test_delete_application_gateway.rb +1 -1
  40. data/test/requests/application_gateway/test_get_application_gateway.rb +1 -1
  41. data/test/requests/application_gateway/test_list_application_gateways.rb +1 -1
  42. data/test/requests/application_gateway/test_start_application_gateway.rb +1 -1
  43. data/test/requests/application_gateway/test_stop_application_gateway.rb +1 -1
  44. data/test/requests/compute/test_attach_data_disk_to_vm.rb +4 -4
  45. data/test/requests/compute/test_check_availability_set_exists.rb +1 -1
  46. data/test/requests/compute/test_check_managed_disk_exists.rb +1 -1
  47. data/test/requests/compute/test_check_vm_exists.rb +1 -1
  48. data/test/requests/compute/test_check_vm_extension_exists.rb +1 -1
  49. data/test/requests/compute/test_create_availability_set.rb +2 -2
  50. data/test/requests/compute/test_create_image.rb +1 -1
  51. data/test/requests/compute/test_create_or_update_managed_disk.rb +1 -1
  52. data/test/requests/compute/test_create_virtual_machine.rb +41 -17
  53. data/test/requests/compute/test_create_vm_extension.rb +1 -1
  54. data/test/requests/compute/test_deallocate_virtual_machine.rb +2 -2
  55. data/test/requests/compute/test_delete_availability_set.rb +1 -1
  56. data/test/requests/compute/test_delete_image.rb +1 -1
  57. data/test/requests/compute/test_delete_managed_disk.rb +2 -2
  58. data/test/requests/compute/test_delete_virtual_machine.rb +2 -2
  59. data/test/requests/compute/test_detach_data_disk_from_vm.rb +1 -1
  60. data/test/requests/compute/test_generalize_virtual_machine.rb +2 -2
  61. data/test/requests/compute/test_get_availability_set.rb +1 -1
  62. data/test/requests/compute/test_get_image.rb +1 -1
  63. data/test/requests/compute/test_get_managed_disk.rb +1 -1
  64. data/test/requests/compute/test_get_virtual_machine.rb +1 -1
  65. data/test/requests/compute/test_get_vm_extension.rb +1 -1
  66. data/test/requests/compute/test_get_vm_status.rb +1 -1
  67. data/test/requests/compute/test_grant_access_to_managed_disk.rb +1 -1
  68. data/test/requests/compute/test_list_availability_sets.rb +1 -1
  69. data/test/requests/compute/test_list_available_sizes_for_virtual_machine.rb +2 -2
  70. data/test/requests/compute/test_list_managed_disks_by_rg.rb +1 -1
  71. data/test/requests/compute/test_list_managed_disks_in_subscription.rb +1 -1
  72. data/test/requests/compute/test_list_virtual_machines.rb +1 -1
  73. data/test/requests/compute/test_power_off_virtual_machine.rb +2 -2
  74. data/test/requests/compute/test_redeploy_virtual_machine.rb +2 -2
  75. data/test/requests/compute/test_restart_virtual_machine.rb +2 -2
  76. data/test/requests/compute/test_revoke_access_to_managed_disk.rb +1 -1
  77. data/test/requests/compute/test_start_virtual_machine.rb +2 -2
  78. data/test/requests/compute/test_update_vm_extension.rb +1 -1
  79. data/test/requests/dns/test_check_record_set_exists.rb +1 -1
  80. data/test/requests/dns/test_check_zone_exists.rb +1 -1
  81. data/test/requests/dns/test_create_record_set.rb +1 -1
  82. data/test/requests/dns/test_create_zone.rb +1 -1
  83. data/test/requests/dns/test_delete_record_set.rb +1 -1
  84. data/test/requests/dns/test_delete_zone.rb +1 -1
  85. data/test/requests/dns/test_get_record_set.rb +1 -1
  86. data/test/requests/dns/test_get_records_from_record_set.rb +1 -1
  87. data/test/requests/dns/test_get_zone.rb +1 -1
  88. data/test/requests/dns/test_list_record_sets.rb +1 -1
  89. data/test/requests/dns/test_list_zones.rb +1 -1
  90. data/test/requests/key_vault/test_check_vault_exists.rb +1 -1
  91. data/test/requests/key_vault/test_create_or_update_vault.rb +1 -1
  92. data/test/requests/key_vault/test_delete_vault.rb +1 -1
  93. data/test/requests/key_vault/test_get_vault.rb +1 -1
  94. data/test/requests/key_vault/test_list_vaults.rb +1 -1
  95. data/test/requests/network/test_add_address_prefixes_in_virtual_network.rb +1 -1
  96. data/test/requests/network/test_add_dns_servers_in_virtual_network.rb +1 -1
  97. data/test/requests/network/test_add_subnets_in_virtual_network.rb +1 -1
  98. data/test/requests/network/test_attach_network_security_group_to_subnet.rb +1 -1
  99. data/test/requests/network/test_attach_resource_to_nic.rb +1 -1
  100. data/test/requests/network/test_attach_route_table_to_subnet.rb +1 -1
  101. data/test/requests/network/test_check_express_route_cir_auth_exists.rb +1 -1
  102. data/test/requests/network/test_check_express_route_circuit_exists.rb +1 -1
  103. data/test/requests/network/test_check_load_balancer_exists.rb +1 -1
  104. data/test/requests/network/test_check_local_net_gateway_exists.rb +1 -1
  105. data/test/requests/network/test_check_net_sec_group_exists.rb +1 -1
  106. data/test/requests/network/test_check_net_sec_rule_exists.rb +1 -1
  107. data/test/requests/network/test_check_network_interface_exists.rb +1 -1
  108. data/test/requests/network/test_check_public_ip_exists.rb +1 -1
  109. data/test/requests/network/test_check_subnet_exists.rb +1 -1
  110. data/test/requests/network/test_check_virtual_network_exists.rb +1 -1
  111. data/test/requests/network/test_check_vnet_gateway_connection_exists.rb +1 -1
  112. data/test/requests/network/test_check_vnet_gateway_exists.rb +1 -1
  113. data/test/requests/network/test_create_express_route_circuit.rb +1 -1
  114. data/test/requests/network/test_create_express_route_circuit_authorization.rb +1 -1
  115. data/test/requests/network/test_create_express_route_circuit_peering.rb +1 -1
  116. data/test/requests/network/test_create_load_balancer.rb +1 -1
  117. data/test/requests/network/test_create_local_network_gateway.rb +1 -1
  118. data/test/requests/network/test_create_network_interface.rb +1 -1
  119. data/test/requests/network/test_create_or_update_network_security_group.rb +1 -1
  120. data/test/requests/network/test_create_or_update_network_security_rule.rb +1 -1
  121. data/test/requests/network/test_create_or_update_virtual_network.rb +1 -1
  122. data/test/requests/network/test_create_public_ip.rb +1 -1
  123. data/test/requests/network/test_create_subnet.rb +1 -1
  124. data/test/requests/network/test_create_virtual_network_gateway.rb +1 -1
  125. data/test/requests/network/test_create_virtual_network_gateway_connection.rb +1 -1
  126. data/test/requests/network/test_delete_express_route_circuit.rb +1 -1
  127. data/test/requests/network/test_delete_express_route_circuit_authorization.rb +1 -1
  128. data/test/requests/network/test_delete_express_route_circuit_peering.rb +1 -1
  129. data/test/requests/network/test_delete_load_balancer.rb +1 -1
  130. data/test/requests/network/test_delete_local_network_gateway.rb +1 -1
  131. data/test/requests/network/test_delete_network_interface.rb +1 -1
  132. data/test/requests/network/test_delete_network_security_group.rb +1 -1
  133. data/test/requests/network/test_delete_network_security_rule.rb +1 -1
  134. data/test/requests/network/test_delete_public_ip.rb +1 -1
  135. data/test/requests/network/test_delete_subnet.rb +1 -1
  136. data/test/requests/network/test_delete_virtual_network.rb +1 -1
  137. data/test/requests/network/test_delete_virtual_network_gateway.rb +1 -1
  138. data/test/requests/network/test_delete_virtual_network_gateway_connection.rb +1 -1
  139. data/test/requests/network/test_detach_network_security_group_from_subnet.rb +1 -1
  140. data/test/requests/network/test_detach_resource_from_nic.rb +1 -1
  141. data/test/requests/network/test_detach_route_table_from_subnet.rb +1 -1
  142. data/test/requests/network/test_get_connection_shared_key.rb +1 -1
  143. data/test/requests/network/test_get_express_route_circuit.rb +1 -1
  144. data/test/requests/network/test_get_express_route_circuit_authorization.rb +1 -1
  145. data/test/requests/network/test_get_express_route_circuit_peering.rb +1 -1
  146. data/test/requests/network/test_get_load_balancer.rb +1 -1
  147. data/test/requests/network/test_get_local_network_gateway.rb +1 -1
  148. data/test/requests/network/test_get_network_interface.rb +1 -1
  149. data/test/requests/network/test_get_network_security_group.rb +1 -1
  150. data/test/requests/network/test_get_network_security_rule.rb +1 -1
  151. data/test/requests/network/test_get_public_ip.rb +1 -1
  152. data/test/requests/network/test_get_subnet.rb +1 -1
  153. data/test/requests/network/test_get_virtual_network.rb +1 -1
  154. data/test/requests/network/test_get_virtual_network_gateway.rb +1 -1
  155. data/test/requests/network/test_get_virtual_network_gateway_connection.rb +1 -1
  156. data/test/requests/network/test_list_express_route_circuit_authorizations.rb +1 -1
  157. data/test/requests/network/test_list_express_route_circuit_peerings.rb +1 -1
  158. data/test/requests/network/test_list_express_route_circuits.rb +1 -1
  159. data/test/requests/network/test_list_express_route_service_providers.rb +1 -1
  160. data/test/requests/network/test_list_load_balancers.rb +1 -1
  161. data/test/requests/network/test_list_local_network_gateways.rb +1 -1
  162. data/test/requests/network/test_list_network_interfaces.rb +1 -1
  163. data/test/requests/network/test_list_network_security_groups.rb +4 -4
  164. data/test/requests/network/test_list_network_security_rules.rb +1 -1
  165. data/test/requests/network/test_list_public_ips.rb +1 -1
  166. data/test/requests/network/test_list_subnets.rb +1 -1
  167. data/test/requests/network/test_list_virtual_network_gateway_connections.rb +1 -1
  168. data/test/requests/network/test_list_virtual_network_gateways.rb +1 -1
  169. data/test/requests/network/test_list_virtual_networks.rb +1 -1
  170. data/test/requests/network/test_list_virtual_networks_in_subscription.rb +1 -1
  171. data/test/requests/network/test_remove_address_prefixes_from_virtual_network.rb +1 -1
  172. data/test/requests/network/test_remove_dns_servers_from_virtual_network.rb +1 -1
  173. data/test/requests/network/test_remove_subnets_from_virtual_network.rb +1 -1
  174. data/test/requests/network/test_reset_connection_shared_key.rb +1 -1
  175. data/test/requests/network/test_set_connection_shared_key.rb +1 -1
  176. data/test/requests/network/test_update_public_ip.rb +1 -1
  177. data/test/requests/resources/test_check_deployment_exists.rb +1 -1
  178. data/test/requests/resources/test_check_resource_group_exists.rb +1 -1
  179. data/test/requests/resources/test_create_deployment.rb +1 -1
  180. data/test/requests/resources/test_create_resource_group.rb +1 -1
  181. data/test/requests/resources/test_delete_deployment.rb +1 -1
  182. data/test/requests/resources/test_delete_resource_group.rb +1 -1
  183. data/test/requests/resources/test_delete_resource_tag.rb +1 -1
  184. data/test/requests/resources/test_get_deployment.rb +1 -1
  185. data/test/requests/resources/test_get_resource_group.rb +1 -1
  186. data/test/requests/resources/test_list_deployments.rb +1 -1
  187. data/test/requests/resources/test_list_resource_groups.rb +1 -1
  188. data/test/requests/resources/test_list_resources_in_resource_group.rb +24 -0
  189. data/test/requests/resources/test_list_tagged_resources.rb +1 -1
  190. data/test/requests/resources/test_tag_resource.rb +1 -1
  191. data/test/requests/sql/test_create_or_update_database.rb +1 -1
  192. data/test/requests/sql/test_create_or_update_firewall_rule.rb +1 -1
  193. data/test/requests/sql/test_create_or_update_sql_server.rb +1 -1
  194. data/test/requests/sql/test_delete_database.rb +1 -1
  195. data/test/requests/sql/test_delete_firewall_rule.rb +1 -1
  196. data/test/requests/sql/test_delete_sql_server.rb +1 -1
  197. data/test/requests/sql/test_get_database.rb +1 -1
  198. data/test/requests/sql/test_get_firewall_rule.rb +1 -1
  199. data/test/requests/sql/test_get_sql_server.rb +1 -1
  200. data/test/requests/sql/test_list_databases.rb +1 -1
  201. data/test/requests/sql/test_list_firewall_rules.rb +1 -1
  202. data/test/requests/sql/test_list_sql_servers.rb +1 -1
  203. data/test/requests/storage/test_acquire_blob_lease.rb +1 -1
  204. data/test/requests/storage/test_acquire_container_lease.rb +1 -1
  205. data/test/requests/storage/test_check_storage_account_exists.rb +1 -1
  206. data/test/requests/storage/test_check_storage_account_name_availability.rb +1 -1
  207. data/test/requests/storage/test_commit_blob_blocks.rb +1 -1
  208. data/test/requests/storage/test_compare_container_blobs.rb +1 -1
  209. data/test/requests/storage/test_copy_blob.rb +1 -1
  210. data/test/requests/storage/test_copy_blob_from_uri.rb +1 -1
  211. data/test/requests/storage/test_create_block_blob.rb +1 -1
  212. data/test/requests/storage/test_create_container.rb +1 -1
  213. data/test/requests/storage/test_create_page_blob.rb +1 -1
  214. data/test/requests/storage/test_create_storage_account.rb +1 -1
  215. data/test/requests/storage/test_delete_blob.rb +1 -1
  216. data/test/requests/storage/test_delete_container.rb +1 -1
  217. data/test/requests/storage/test_delete_storage_account.rb +1 -1
  218. data/test/requests/storage/test_get_blob.rb +4 -4
  219. data/test/requests/storage/test_get_blob_properties.rb +4 -2
  220. data/test/requests/storage/test_get_container_acl.rb +1 -1
  221. data/test/requests/storage/test_get_container_properties.rb +1 -1
  222. data/test/requests/storage/test_get_storage_access_keys.rb +1 -1
  223. data/test/requests/storage/test_get_storage_account.rb +1 -1
  224. data/test/requests/storage/test_list_blobs.rb +1 -1
  225. data/test/requests/storage/test_list_containers.rb +1 -1
  226. data/test/requests/storage/test_list_storage_accounts.rb +1 -1
  227. data/test/requests/storage/test_list_storage_accounts_for_rg.rb +1 -1
  228. data/test/requests/storage/test_put_blob_block.rb +1 -1
  229. data/test/requests/storage/test_put_blob_metadata.rb +1 -1
  230. data/test/requests/storage/test_put_blob_pages.rb +1 -1
  231. data/test/requests/storage/test_put_blob_properties.rb +1 -1
  232. data/test/requests/storage/test_put_container_acl.rb +1 -1
  233. data/test/requests/storage/test_put_container_metadata.rb +1 -1
  234. data/test/requests/storage/test_release_blob_lease.rb +1 -1
  235. data/test/requests/storage/test_release_container_lease.rb +1 -1
  236. data/test/requests/storage/test_update_storage_account.rb +1 -1
  237. data/test/requests/traffic_manager/test_check_traffic_manager_endpoint_exists.rb +1 -1
  238. data/test/requests/traffic_manager/test_check_traffic_manager_profile_exists.rb +1 -1
  239. data/test/requests/traffic_manager/test_create_traffic_manager_endpoint.rb +1 -1
  240. data/test/requests/traffic_manager/test_create_traffic_manager_profile.rb +1 -1
  241. data/test/requests/traffic_manager/test_delete_traffic_manager_endpoint.rb +1 -1
  242. data/test/requests/traffic_manager/test_delete_traffic_manager_profile.rb +1 -1
  243. data/test/requests/traffic_manager/test_get_traffic_manager_endpoint.rb +1 -1
  244. data/test/requests/traffic_manager/test_get_traffic_manager_profile.rb +1 -1
  245. data/test/requests/traffic_manager/test_list_traffic_manager_profiles.rb +1 -1
  246. data/test/requests/traffic_manager/test_update_traffic_manager_endpoint.rb +1 -1
  247. data/test/requests/traffic_manager/test_update_traffic_manager_profile.rb +1 -1
  248. metadata +25 -8
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 2bf91c94c7952f926e8b8f6addba8d2325502d75
4
- data.tar.gz: 61e0a57a19ae54126db5d257144844039dd299ed
2
+ SHA256:
3
+ metadata.gz: 8c9202be26511d57c68a4016a97d6d1f38326eb27f38184dfbf612d53bd90885
4
+ data.tar.gz: caef6851e7ed997b0806a1f0a319805fb02b2fbd534ffa059edabc99e6574ea2
5
5
  SHA512:
6
- metadata.gz: a773c83b37c1d7fd73da133fdcdbd2965c17b70612bf1da0e6cc4969fe5ec68205f5705ef836c2c3ebe6ee8bc84d1b8befdb308933583ceac1cac420327a4f52
7
- data.tar.gz: b2de599f952b4cb397c6ebbca892a8fef938a0a9356df737872f8074b264256be5ae4b6bfb76f727e847675fe70ed93837899be5c5bf15d7c76d35a32ec17d19
6
+ metadata.gz: 9708b117ba2783a4b56f94040fc86f1b4cd6d9facae77117bf5ed93244574647eb4aef95feb529413eed9126f097bfc42e2496725f86f1b336cec3fda091526d
7
+ data.tar.gz: dabbcffd77648802ceec978c21c267e844240aee3958c511ba9d0c92779a32d4d77bc0c4366925141920c16468bfceb8fc733dbf07f7d0691e58a462ae03a095
@@ -9,13 +9,15 @@ before_install:
9
9
  script: bash ./rake-script.sh
10
10
 
11
11
  rvm:
12
- - 2.0.0
13
- - 2.1.0
14
- - 2.1.1
15
- - 2.1.5
16
- - 2.2.0
17
- - 2.3.0
18
- - jruby-head
12
+ - 2.0.0
13
+ - 2.1.0
14
+ - 2.1.1
15
+ - 2.1.5
16
+ - 2.2.10
17
+ - 2.3.7
18
+ - 2.4.4
19
+ - 2.5.1
20
+ - jruby-head
19
21
 
20
22
  matrix:
21
23
  fast_finish: true
@@ -39,8 +41,8 @@ jobs:
39
41
  deploy:
40
42
  provider: rubygems
41
43
  api_key:
42
- secure: "CBhOx8EAQsj3SiOh11PIS8cUSifAjE9vLG4m1njDLmm4bqqqpPIteGqdUEJPnl7AJnmOMIrAc8FZswUrRfYsXqO1WA9ksMkTpBE03UwR4N11/E2NCr8844TWCUt13C1Ma4tk1aK03EGjbem6kDs9Ac8R2kkPBMxCGsEESkaMYepZVVQNu+d33o+59w6JN6ppktaRB30V9QEAuXzcaT4qu6fOjeIuIlawAVGr3CG1VQ17GqxsDzKzNPzcA5eFI+6G1mLekK4MGF1kovYXTVrXeSYfoV1TdYXVwaKeVa3C5kl9/nh4lTz9qMLazc9PVwyreycJ1S8jakZD0A0bm2qZeONr78c32gQrrV8FeLqwK5PTuwgdARMxuHYhaw7dSARSCnu2XvoWfgC4V/1z8zhmnLJ51OR+b/0LmI0aPGgF2GM9ajJsgghWTiaxp8hpcByedrUKRckrfdmVRQywgcL5Ma+o7JyQXW9/fxlDJnH2pXLhmvg9HtmlWbjUpT8mWCCElewUQJx5wtFN9UuoKEom1fSTdpynlIqKb/J3ohG1Woy59ewjFB/dp+Mzghz6zjA5iPCDiT7ZcRXPn/UAiIIq2TzihBOUdSHKtb9r1XceOftBsXDvOh/PWUJyeBixH0H5I6qsGy/kcoOYlC+v4wM2bb9JIlBkKx/jgNrsHXyTLsI="
43
- gem: far-gem
44
+ secure: "aKIOqa6gFMQOcwdNBNsfRoAQm+LVCRf9JpEFnDH8YLRp9A+roj0BL3hZ+pP+pb2sQSEQqU46bfBBrhB2b6Xmjnmv5d0878bl+eYOXeu90CfqRf+v/y+2k/pMsVsKs3Su7M0bHGOeHYT+segRqDHaZaJHkAW8RwLLm5A+0TyEeVjkkpFcyX8fjr5sfvD+XbEmXmmPWPuShQjKTTj1HFYJknRLLNXVYd7ZM9eKgiQfuyomdUTk8yguqNDBWW1BjiEE/0JYqx4wJxdGKPHYT+enP1xIebJVx1gEEnc/OgyBZqtmOirlh2Rnuk58NZfArzwMzIvVclJvPmynmEAlHEWtXwUgQMW5Wu/RYpxRRpr5tDRfru99hll4N9bcA439GlsNHTNJf82zmGNFIdDJ8kUJ08tVPwTvEnWGzLIdKAKWyRV+SESmZb5u3m9e4VTd06/q8gdbW9pG9UGmoes/j32lKzk9DkheCVzQjdxfRs81Z/7uTB3OhhpQnrRlf7qa2OnMDZKrip67UQHiruzAX6naQ7D5fEHR64DGZG7fQ/xRi0oG21UdNl1n/Bioj6ChFXLyInKeA0fiEwwquWK2S/2Sr5ERTBzbv9TkvbJ/1vv8FWcYYmb7bL22699V9yWcsOxEdZEYDucg71g6OrPeNeFZDsJ1749fZzW2X444+4Xtwys="
45
+ gem: fog-azure-rm
44
46
  gemspec: fog-azure-rm.gemspec
45
47
  on:
46
48
  tags: true
@@ -1,3 +1,34 @@
1
+ ## 0.4.8
2
+
3
+ **Added:**
4
+ - Added enable_accelerated_networking attribute for NIC
5
+
6
+ ## 0.4.7
7
+
8
+ **Added:**
9
+ - Support added to list resources in a resource group
10
+ - Added OS disk id attribute to the 'Compute' model
11
+
12
+ ## 0.4.6
13
+
14
+ **Added:**
15
+ - Created Custom Fog Exceptions
16
+
17
+ ## 0.4.5
18
+
19
+ **Changed:**
20
+ - Updated dependency of fog-json to (~> 1.0.2)
21
+
22
+ ## 0.4.4
23
+
24
+ **Fixed:**
25
+ - Compute Service - Fixed customData Update Issue
26
+
27
+ ## 0.4.3
28
+
29
+ **Fixed:**
30
+ - Compute Service - Fixed Server Update Scenario
31
+
1
32
  ## 0.4.2
2
33
 
3
34
  **Fixed:**
data/README.md CHANGED
@@ -80,7 +80,9 @@ Use following command for the complete list of services, Fog provides for Azure
80
80
  ```ruby
81
81
  Fog::AzureRM.services
82
82
  ```
83
+ # Documentation
83
84
 
85
+ https://www.rubydoc.info/github/fog/fog-azure-rm/master
84
86
 
85
87
  ## Contributing
86
88
 
@@ -13,7 +13,7 @@ Gem::Specification.new do |spec|
13
13
  spec.test_files = `git ls-files -- {spec,tests}/*`.split("\n")
14
14
  spec.require_paths = %w[lib]
15
15
  spec.license = 'MIT'
16
- spec.homepage = 'https://github.com/maham-nazir-confiz/fog-azure-rm'
16
+ spec.homepage = 'https://github.com/fog/fog-azure-rm'
17
17
  spec.rdoc_options = %w[--charset=UTF-8]
18
18
  spec.extra_rdoc_files = %w[README.md]
19
19
  spec.required_ruby_version = '>= 2.0.0'
@@ -22,8 +22,8 @@ Gem::Specification.new do |spec|
22
22
  spec.add_development_dependency 'minitest', '~> 5.8.4'
23
23
  spec.add_development_dependency 'simplecov'
24
24
  spec.add_development_dependency 'codeclimate-test-reporter' , '~> 1.0.0'
25
- spec.add_dependency 'fog-core', '~> 2.0'
26
- spec.add_dependency 'fog-json', '~> 1.0'
25
+ spec.add_dependency 'fog-core', '~> 1.43'
26
+ spec.add_dependency 'fog-json', '~> 1.0.2'
27
27
  spec.add_dependency 'azure_mgmt_compute', '~> 0.9.0'
28
28
  spec.add_dependency 'azure_mgmt_resources', '~> 0.9.0'
29
29
  spec.add_dependency 'azure_mgmt_storage', '~> 0.9.0'
@@ -34,4 +34,5 @@ Gem::Specification.new do |spec|
34
34
  spec.add_dependency 'azure_mgmt_key_vault', '~> 0.9.0'
35
35
  spec.add_dependency 'azure-storage', '= 0.11.5.preview'
36
36
  spec.add_dependency 'vhd', '0.0.4'
37
+ spec.add_dependency 'mime-types', '~> 1.25'
37
38
  end
@@ -1,4 +1,5 @@
1
1
  require 'ms_rest_azure'
2
+ require 'azure/core/http/http_error'
2
3
  require 'erb'
3
4
  require 'fog/azurerm/config'
4
5
  require 'fog/azurerm/constants'
@@ -0,0 +1,18 @@
1
+ # This file contains any or all custom Fog errors that we create
2
+ module Fog
3
+ module AzureRM
4
+ # This is a custom Fog exception inherited from MsRestAzure::AzureOperationError
5
+ class CustomAzureOperationError < MsRestAzure::AzureOperationError
6
+ def initialize(message, azure_exception)
7
+ super(azure_exception.request, azure_exception.response, azure_exception.body, "Exception in #{message}")
8
+ end
9
+ end
10
+
11
+ # This is a custom Fog exception inherited from Azure::Core::Http::HTTPError
12
+ class CustomAzureCoreHttpError < Azure::Core::Http::HTTPError
13
+ def initialize(azure_exception)
14
+ super(azure_exception.http_response)
15
+ end
16
+ end
17
+ end
18
+ end
@@ -61,7 +61,8 @@ fog_compute_service.servers.create(
61
61
  custom_data: '<Custom Data Value>', # [Optional], if you want to add custom data in this VM.
62
62
  os_disk_caching: '<Caching Type>', # [Optional], can be one of None, ReadOnly, ReadWrite
63
63
  managed_disk_storage_type: '<Storage Account Type>', # [Optional], if storage_account_name is passed, can be StandardLRS or PremiumLRS
64
- os_disk_size: <Disk Size> # [Optional], size of the os disk in GB (upto 1023)
64
+ os_disk_size: <Disk Size>, # [Optional], size of the os disk in GB (upto 1023)
65
+ os_disk_name: '<Disk Name>' # [Optional], name of the os disk
65
66
  )
66
67
  ```
67
68
 
@@ -97,7 +98,8 @@ fog_compute_service.servers.create(
97
98
  custom_data: '<Custom Data Value>', # [Optional], if you want to add custom data in this VM.
98
99
  os_disk_caching: '<Caching Type>', # [Optional], can be one of None, ReadOnly, ReadWrite
99
100
  managed_disk_storage_type: '<Storage Account Type>', # [Optional], if storage_account_name is passed, can be StandardLRS or PremiumLRS
100
- os_disk_size: <Disk Size> # [Optional], size of the os disk in GB (upto 1023)
101
+ os_disk_size: <Disk Size>, # [Optional], size of the os disk in GB (upto 1023)
102
+ os_disk_name: '<Disk Name>' # [Optional], name of the os disk
101
103
  )
102
104
  ```
103
105
 
@@ -123,7 +125,8 @@ fog_compute_service.servers.create(
123
125
  availability_set_id: '<Availability Set Id>', # [Optional]
124
126
  vhd_path: '<Path of VHD>', # [Optional], if you want to create the VM from a custom image.
125
127
  custom_data: '<Custom Data Value>', # [Optional], if you want to add custom data in this VM.
126
- os_disk_size: <Disk Size> # [Optional], size of the os disk in GB (upto 1023)
128
+ os_disk_size: <Disk Size>, # [Optional], size of the os disk in GB (upto 1023)
129
+ os_disk_name: '<Disk Name>' # [Optional], name of the os disk
127
130
  )
128
131
  ```
129
132
 
@@ -153,7 +156,8 @@ async_response = fog_compute_service.servers.create_async(
153
156
  custom_data: '<Custom Data Value>', # [Optional], if you want to add custom data in this VM.
154
157
  os_disk_caching: '<Caching Type>', # [Optional], can be one of None, ReadOnly, ReadWrite
155
158
  managed_disk_storage_type: '<Storage Account Type>', # [Optional], can be StandardLRS or PremiumLRS
156
- os_disk_size: <Disk Size> # [Optional], size of the os disk in GB (upto 1023)
159
+ os_disk_size: <Disk Size>, # [Optional], size of the os disk in GB (upto 1023)
160
+ os_disk_name: '<Disk Name>' # [Optional], name of the os disk
157
161
  )
158
162
  ```
159
163
  Following methods are available to handle async respoonse:
@@ -384,6 +388,8 @@ Get an managed disk object from the get method and then destroy that managed dis
384
388
 
385
389
  ```ruby
386
390
  managed_disk.destroy
391
+ # Can be made asynchronously (is synchronous by default)
392
+ managed_disk.destroy(true)
387
393
  ```
388
394
 
389
395
  ## Check Availability Set Existence
@@ -256,7 +256,8 @@ nic = fog_network_service.network_interfaces.create(
256
256
  public_ip_address_id: '/subscriptions/<Subscription Id>/resourceGroups/<Resource Group Name>/providers/Microsoft.Network/publicIPAddresses/<Public IP Name>',
257
257
  ip_configuration_name: '<IP Configuration Name>',
258
258
  private_ip_allocation_method: '<IP Allocation Method Name>',
259
- tags: { key: 'value' } # [Optional]
259
+ tags: { key: 'value' } # [Optional],
260
+ enable_accelerated_networking: true # [Optional] false by default
260
261
  )
261
262
  ```
262
263
 
@@ -46,8 +46,10 @@ module Fog
46
46
  merge_attributes(Fog::Compute::AzureRM::ManagedDisk.parse(disk))
47
47
  end
48
48
 
49
- def destroy
50
- service.delete_managed_disk(resource_group_name, name)
49
+ def destroy(async = false)
50
+ response = service.delete_managed_disk(resource_group_name, name,
51
+ async)
52
+ async ? create_fog_async_response(response) : response
51
53
  end
52
54
 
53
55
  private
@@ -71,6 +73,11 @@ module Fog
71
73
  encryption_settings: encryption_settings
72
74
  }
73
75
  end
76
+
77
+ def create_fog_async_response(response, delete_extra_resource = false)
78
+ disk = Fog::Compute::AzureRM::ManagedDisk.new(service: service)
79
+ Fog::AzureRM::AsyncResponse.new(disk, response, delete_extra_resource)
80
+ end
74
81
  end
75
82
  end
76
83
  end
@@ -11,6 +11,7 @@ module Fog
11
11
  attribute :vm_size
12
12
  attribute :storage_account_name
13
13
  attribute :os_disk_name
14
+ attribute :os_disk_id
14
15
  attribute :os_disk_vhd_uri
15
16
  attribute :os_disk_caching
16
17
  attribute :publisher
@@ -46,6 +47,10 @@ module Fog
46
47
  hash['vm_size'] = vm.hardware_profile.vm_size unless vm.hardware_profile.vm_size.nil?
47
48
  unless vm.storage_profile.nil?
48
49
  hash['os_disk_name'] = vm.storage_profile.os_disk.name
50
+
51
+ subscription_id = get_subscription_id(vm.id)
52
+ hash['os_disk_id'] = "/subscriptions/#{subscription_id}/resourceGroups/#{hash['resource_group']}/providers/Microsoft.Compute/disks/#{hash['os_disk_name']}"
53
+
49
54
  hash['os_disk_size'] = vm.storage_profile.os_disk.disk_size_gb
50
55
  if vm.storage_profile.os_disk.vhd.nil?
51
56
  hash['managed_disk_storage_type'] = vm.storage_profile.os_disk.managed_disk.storage_account_type
@@ -228,7 +233,9 @@ module Fog
228
233
  managed_disk_storage_type: managed_disk_storage_type,
229
234
  os_disk_size: os_disk_size,
230
235
  tags: tags,
231
- image_ref: image_ref
236
+ image_ref: image_ref,
237
+ os_disk_name: os_disk_name,
238
+ os_disk_vhd_uri: os_disk_vhd_uri
232
239
  }
233
240
  end
234
241
 
@@ -23,6 +23,7 @@ module Fog
23
23
  attribute :internal_dns_name_label
24
24
  attribute :internal_fqd
25
25
  attribute :tags
26
+ attribute :enable_accelerated_networking
26
27
 
27
28
  def self.parse(nic)
28
29
  hash = {}
@@ -54,6 +55,7 @@ module Fog
54
55
  hash['internal_dns_name_label'] = nic_dns_settings.internal_dns_name_label
55
56
  hash['internal_fqd'] = nic_dns_settings.internal_fqdn
56
57
  end
58
+ hash['enable_accelerated_networking'] = nic.enable_accelerated_networking
57
59
  hash
58
60
  end
59
61
 
@@ -64,7 +66,7 @@ module Fog
64
66
  requires :subnet_id
65
67
  requires :ip_configuration_name
66
68
  requires :private_ip_allocation_method
67
- nic = service.create_or_update_network_interface(resource_group, name, location, subnet_id, public_ip_address_id, network_security_group_id, ip_configuration_name, private_ip_allocation_method, private_ip_address, load_balancer_backend_address_pools_ids, load_balancer_inbound_nat_rules_ids, tags)
69
+ nic = service.create_or_update_network_interface(resource_group, name, location, subnet_id, public_ip_address_id, network_security_group_id, ip_configuration_name, private_ip_allocation_method, private_ip_address, load_balancer_backend_address_pools_ids, load_balancer_inbound_nat_rules_ids, tags, enable_accelerated_networking)
68
70
  merge_attributes(Fog::Network::AzureRM::NetworkInterface.parse(nic))
69
71
  end
70
72
 
@@ -26,6 +26,14 @@ module Fog
26
26
  def check_azure_resource_exists(resource_id, api_version)
27
27
  service.check_azure_resource_exists(resource_id, api_version)
28
28
  end
29
+
30
+ def list_resources_in_resource_group(resource_group_name)
31
+ resources = []
32
+ service.list_resources_in_resource_group(resource_group_name).each do |resource|
33
+ resources.push(Fog::Resources::AzureRM::AzureResource.parse(resource))
34
+ end
35
+ load(resources)
36
+ end
29
37
  end
30
38
  end
31
39
  end
@@ -1,3 +1,5 @@
1
+ require 'mime/types'
2
+
1
3
  module Fog
2
4
  module Storage
3
5
  class AzureRM
@@ -11,6 +11,13 @@ module Fog
11
11
  vm_name = vm_config[:name]
12
12
  rg_name = vm_config[:resource_group]
13
13
 
14
+ # In case of updating the VM, we check if the user has passed any value for os_disk_name
15
+ # If the user has not passed any value, we try to retrieve the value of os_disk_name from the VM
16
+ # If the VM exists then the os_disk_name is retrieved; else it remains nil
17
+ os_disk_parameters = get_os_disk_parameters(rg_name, vm_name) if vm_config[:os_disk_name].nil? || vm_config[:os_disk_vhd_uri].nil?
18
+ vm_config[:os_disk_name] = os_disk_parameters[:os_disk_name] if vm_config[:os_disk_name].nil?
19
+ vm_config[:os_disk_vhd_uri] = os_disk_parameters[:os_disk_vhd_uri] if vm_config[:os_disk_vhd_uri].nil?
20
+
14
21
  msg = "Creating Virtual Machine '#{vm_name}' in Resource Group '#{rg_name}'..."
15
22
  Fog::Logger.debug msg
16
23
 
@@ -67,7 +74,7 @@ module Fog
67
74
  vm_name = vm_config[:name]
68
75
  username = vm_config[:username]
69
76
  password = vm_config[:password]
70
- custom_data = vm_config[:custom_data]
77
+ custom_data = vm_config[:custom_data] unless vm_config[:custom_data].nil?
71
78
  provision_vm_agent = vm_config[:provision_vm_agent]
72
79
  enable_automatic_updates = vm_config[:enable_automatic_updates]
73
80
  disable_password_auth = vm_config[:disable_password_authentication]
@@ -79,7 +86,7 @@ module Fog
79
86
  os_profile.computer_name = vm_name
80
87
  os_profile.admin_username = username
81
88
  os_profile.admin_password = password
82
- os_profile.custom_data = Base64.strict_encode64(custom_data.nil? ? WHITE_SPACE : custom_data)
89
+ os_profile.custom_data = Base64.strict_encode64(custom_data) unless vm_config[:custom_data].nil?
83
90
 
84
91
  if platform.casecmp(WINDOWS).zero?
85
92
  os_profile.windows_configuration = get_windows_config(provision_vm_agent, enable_automatic_updates)
@@ -154,12 +161,14 @@ module Fog
154
161
  os_disk_size = vm_config[:os_disk_size]
155
162
  location = vm_config[:location]
156
163
  image_ref = vm_config[:image_ref]
164
+ os_disk_name = vm_config[:os_disk_name]
165
+ os_disk_vhd_uri = vm_config[:os_disk_vhd_uri]
157
166
 
158
167
  storage_profile = Azure::ARM::Compute::Models::StorageProfile.new
159
168
  # Set OS disk VHD path
160
169
  os_disk = Azure::ARM::Compute::Models::OSDisk.new
161
170
  vhd = Azure::ARM::Compute::Models::VirtualHardDisk.new
162
- vhd.uri = get_blob_endpoint(storage_account_name) + "/vhds/#{vm_name}_os_disk.vhd"
171
+ vhd.uri = os_disk_vhd_uri.nil? ? get_blob_endpoint(storage_account_name) + "/vhds/#{vm_name}_os_disk.vhd" : os_disk_vhd_uri
163
172
  os_disk.vhd = vhd
164
173
 
165
174
  if vhd_path.nil? && image_ref.nil?
@@ -180,7 +189,7 @@ module Fog
180
189
  storage_profile.image_reference.id = image.id
181
190
  end
182
191
 
183
- storage_profile.os_disk = configure_os_disk_object(os_disk, os_disk_caching, os_disk_size, platform, vm_name)
192
+ storage_profile.os_disk = configure_os_disk_object(os_disk, os_disk_name, os_disk_caching, os_disk_size, platform, vm_name)
184
193
  storage_profile
185
194
  end
186
195
 
@@ -200,6 +209,7 @@ module Fog
200
209
  platform = vm_config[:platform]
201
210
  vm_name = vm_config[:name]
202
211
  image_ref = vm_config[:image_ref]
212
+ os_disk_name = vm_config[:os_disk_name]
203
213
 
204
214
  # Build storage profile
205
215
  storage_profile = Azure::ARM::Compute::Models::StorageProfile.new
@@ -226,7 +236,7 @@ module Fog
226
236
  storage_profile.image_reference.id = image.id
227
237
  end
228
238
 
229
- storage_profile.os_disk = configure_os_disk_object(os_disk, os_disk_caching, os_disk_size, platform, vm_name)
239
+ storage_profile.os_disk = configure_os_disk_object(os_disk, os_disk_name, os_disk_caching, os_disk_size, platform, vm_name)
230
240
  storage_profile
231
241
  end
232
242
 
@@ -249,8 +259,9 @@ module Fog
249
259
  }
250
260
  end
251
261
 
252
- def configure_os_disk_object(os_disk, os_disk_caching, os_disk_size, platform, vm_name)
253
- os_disk.name = "#{vm_name}_os_disk"
262
+ def configure_os_disk_object(os_disk, os_disk_name, os_disk_caching, os_disk_size, platform, vm_name)
263
+ # It will use the os_disk_name provided or it will generate a name for itself if it is nil
264
+ os_disk.name = os_disk_name.nil? ? "#{vm_name}_os_disk" : os_disk_name
254
265
  os_disk.os_type = platform
255
266
  os_disk.disk_size_gb = os_disk_size unless os_disk_size.nil?
256
267
  os_disk.create_option = Azure::ARM::Compute::Models::DiskCreateOptionTypes::FromImage
@@ -332,6 +343,23 @@ module Fog
332
343
  TEMPORARY_STORAGE_ACCOUNT_TAG_KEY,
333
344
  TEMPORARY_STORAGE_ACCOUNT_TAG_VALUE)
334
345
  end
346
+
347
+ def get_os_disk_parameters(resource_group, virtual_machine_name)
348
+ os_disk_parameters = {}
349
+
350
+ begin
351
+ vm = get_virtual_machine(resource_group, virtual_machine_name, false)
352
+ rescue
353
+ return os_disk_parameters
354
+ end
355
+
356
+ unless vm.storage_profile.nil?
357
+ os_disk_parameters[:os_disk_name] = vm.storage_profile.os_disk.name
358
+ os_disk_parameters[:os_disk_vhd_uri] = vm.storage_profile.os_disk.vhd.uri unless vm.storage_profile.os_disk.vhd.nil?
359
+ end
360
+
361
+ os_disk_parameters
362
+ end
335
363
  end
336
364
 
337
365
  # This class provides the mock implementation for unit tests.
@@ -4,16 +4,24 @@ module Fog
4
4
  class AzureRM
5
5
  # Real class for Compute Request
6
6
  class Real
7
- def delete_managed_disk(resource_group_name, disk_name)
7
+ def delete_managed_disk(resource_group_name, disk_name, async)
8
8
  msg = "Deleting Managed Disk: #{disk_name}"
9
9
  Fog::Logger.debug msg
10
10
  begin
11
- @compute_mgmt_client.disks.delete(resource_group_name, disk_name)
11
+ if async
12
+ response = @compute_mgmt_client.disks.delete_async(resource_group_name, disk_name)
13
+ else
14
+ @compute_mgmt_client.disks.delete(resource_group_name, disk_name)
15
+ end
12
16
  rescue MsRestAzure::AzureOperationError => e
13
17
  raise_azure_exception(e, msg)
14
18
  end
15
- Fog::Logger.debug "Managed Disk #{disk_name} deleted successfully."
16
- true
19
+ if async
20
+ response
21
+ else
22
+ Fog::Logger.debug "Managed Disk #{disk_name} deleted successfully."
23
+ true
24
+ end
17
25
  end
18
26
  end
19
27
 
@@ -4,10 +4,10 @@ module Fog
4
4
  class AzureRM
5
5
  # Real class for Network Request
6
6
  class Real
7
- def create_or_update_network_interface(resource_group_name, name, location, subnet_id, public_ip_address_id, network_security_group_id, ip_config_name, private_ip_allocation_method, private_ip_address, load_balancer_backend_address_pools_ids, load_balancer_inbound_nat_rules_ids, tags)
7
+ def create_or_update_network_interface(resource_group_name, name, location, subnet_id, public_ip_address_id, network_security_group_id, ip_config_name, private_ip_allocation_method, private_ip_address, load_balancer_backend_address_pools_ids, load_balancer_inbound_nat_rules_ids, tags, enable_accelerated_networking = false)
8
8
  msg = "Creating/Updating Network Interface Card: #{name}"
9
9
  Fog::Logger.debug msg
10
- network_interface = get_network_interface_object(name, location, subnet_id, public_ip_address_id, network_security_group_id, ip_config_name, private_ip_allocation_method, private_ip_address, load_balancer_backend_address_pools_ids, load_balancer_inbound_nat_rules_ids, tags)
10
+ network_interface = get_network_interface_object(name, location, subnet_id, public_ip_address_id, network_security_group_id, ip_config_name, private_ip_allocation_method, private_ip_address, load_balancer_backend_address_pools_ids, load_balancer_inbound_nat_rules_ids, tags, enable_accelerated_networking)
11
11
  begin
12
12
  network_interface_obj = @network_client.network_interfaces.create_or_update(resource_group_name, name, network_interface)
13
13
  rescue MsRestAzure::AzureOperationError => e
@@ -19,7 +19,7 @@ module Fog
19
19
 
20
20
  private
21
21
 
22
- def get_network_interface_object(name, location, subnet_id, public_ip_address_id, network_security_group_id, ip_config_name, private_ip_allocation_method, private_ip_address, load_balancer_backend_address_pools_ids, load_balancer_inbound_nat_rules_ids, tags)
22
+ def get_network_interface_object(name, location, subnet_id, public_ip_address_id, network_security_group_id, ip_config_name, private_ip_allocation_method, private_ip_address, load_balancer_backend_address_pools_ids, load_balancer_inbound_nat_rules_ids, tags, enable_accelerated_networking)
23
23
  if public_ip_address_id
24
24
  public_ipaddress = Azure::ARM::Network::Models::PublicIPAddress.new
25
25
  public_ipaddress.id = public_ip_address_id
@@ -60,6 +60,7 @@ module Fog
60
60
  network_interface.location = location
61
61
  network_interface.ip_configurations = [ip_configs]
62
62
  network_interface.tags = tags
63
+ network_interface.enable_accelerated_networking = enable_accelerated_networking
63
64
 
64
65
  if network_security_group_id
65
66
  network_security_group = Azure::ARM::Network::Models::NetworkSecurityGroup.new