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
@@ -8,160 +8,156 @@ module Fog
8
8
  Fog::Logger.debug msg
9
9
 
10
10
  begin
11
- nsg_list_result = @network_client.network_security_groups.list_as_lazy(resource_group)
11
+ nsg_list_result = @network_client.network_security_groups.list(resource_group)
12
12
  rescue MsRestAzure::AzureOperationError => e
13
13
  raise_azure_exception(e, msg)
14
14
  end
15
15
 
16
16
  Fog::Logger.debug "Network Security Groups list retrieved successfully from Resource Group #{resource_group}."
17
- nsg_list_result.value
17
+ nsg_list_result
18
18
  end
19
19
  end
20
20
 
21
21
  # Mock class for Network Request
22
22
  class Mock
23
23
  def list_network_security_groups(resource_group)
24
- nsg_list_result = {
25
- 'value' => [
26
- {
27
- 'id' => "/subscriptions/########-####-####-####-############/resourceGroups/#{resource_group}/providers/Microsoft.Network/networkSecurityGroups/testGroup",
28
- 'name' => 'testGroup',
29
- 'type' => 'Microsoft.Network/networkSecurityGroups',
30
- 'location' => 'westus',
31
- 'properties' =>
32
- {
33
- 'securityRules' =>
34
- [
35
- {
36
- 'id' => "/subscriptions/########-####-####-####-############/resourceGroups/#{resource_group}/providers/Microsoft.Network/networkSecurityGroups/testGroup/securityRules/testRule",
37
- 'properties' =>
38
- {
39
- 'protocol' => 'tcp',
40
- 'sourceAddressPrefix' => '0.0.0.0/0',
41
- 'destinationAddressPrefix' => '0.0.0.0/0',
42
- 'access' => 'Allow',
43
- 'direction' => 'Inbound',
44
- 'sourcePortRange' => '22',
45
- 'destinationPortRange' => '22',
46
- 'priority' => 100,
47
- 'provisioningState' => 'Succeeded'
48
- },
49
- 'name' => 'testRule'
50
- }
51
- ],
52
- 'defaultSecurityRules' =>
53
- [
54
- {
55
- 'id' => "/subscriptions/########-####-####-####-############/resourceGroups/#{resource_group}/providers/Microsoft.Network/networkSecurityGroups/testGroup/defaultSecurityRules/AllowVnetInBound",
56
- 'properties' =>
57
- {
58
- 'protocol' => '*',
59
- 'sourceAddressPrefix' => 'VirtualNetwork',
60
- 'destinationAddressPrefix' => 'VirtualNetwork',
61
- 'access' => 'Allow',
62
- 'direction' => 'Inbound',
63
- 'description' => 'Allow inbound traffic from all VMs in VNET',
64
- 'sourcePortRange' => '*',
65
- 'destinationPortRange' => '*',
66
- 'priority' => 65_000,
67
- 'provisioningState' => 'Succeeded'
68
- },
69
- 'name' => 'AllowVnetInBound'
70
- },
71
- {
72
- 'id' => "/subscriptions/########-####-####-####-############/resourceGroups/#{resource_group}/providers/Microsoft.Network/networkSecurityGroups/testGroup/defaultSecurityRules/AllowAzureLoadBalancerInBound",
73
- 'properties' =>
74
- {
75
- 'protocol' => '*',
76
- 'sourceAddressPrefix' => 'AzureLoadBalancer',
77
- 'destinationAddressPrefix' => '*',
78
- 'access' => 'Allow',
79
- 'direction' => 'Inbound',
80
- 'description' => 'Allow inbound traffic from azure load balancer',
81
- 'sourcePortRange' => '*',
82
- 'destinationPortRange' => '*',
83
- 'priority' => 65_001,
84
- 'provisioningState' => 'Succeeded'
85
- },
86
- 'name' => 'AllowAzureLoadBalancerInBound'
87
- },
88
- {
89
- 'id' => "/subscriptions/########-####-####-####-############/resourceGroups/#{resource_group}/providers/Microsoft.Network/networkSecurityGroups/testGroup/defaultSecurityRules/DenyAllInBound",
90
- 'properties' =>
91
- {
92
- 'protocol' => '*',
93
- 'sourceAddressPrefix' => '*',
94
- 'destinationAddressPrefix' => '*',
95
- 'access' => 'Deny',
96
- 'direction' => 'Inbound',
97
- 'description' => 'Deny all inbound traffic',
98
- 'sourcePortRange' => '*',
99
- 'destinationPortRange' => '*',
100
- 'priority' => 65_500,
101
- 'provisioningState' => 'Succeeded'
102
- },
103
- 'name' => 'DenyAllInBound'
104
- },
105
- {
106
- 'id' => "/subscriptions/########-####-####-####-############/resourceGroups/#{resource_group}/providers/Microsoft.Network/networkSecurityGroups/testGroup/defaultSecurityRules/AllowVnetOutBound",
107
- 'properties' =>
108
- {
109
- 'protocol' => '*',
110
- 'sourceAddressPrefix' => 'VirtualNetwork',
111
- 'destinationAddressPrefix' => 'VirtualNetwork',
112
- 'access' => 'Allow',
113
- 'direction' => 'Outbound',
114
- 'description' => 'Allow outbound traffic from all VMs to all VMs in VNET',
115
- 'sourcePortRange' => '*',
116
- 'destinationPortRange' => '*',
117
- 'priority' => 65_000,
118
- 'provisioningState' => 'Succeeded'
119
- },
120
- 'name' => 'AllowVnetOutBound'
121
- },
122
- {
123
- 'id' => "/subscriptions/########-####-####-####-############/resourceGroups/#{resource_group}/providers/Microsoft.Network/networkSecurityGroups/testGroup/defaultSecurityRules/AllowInternetOutBound",
124
- 'properties' =>
125
- {
126
- 'protocol' => '*',
127
- 'sourceAddressPrefix' => '*',
128
- 'destinationAddressPrefix' => 'Internet',
129
- 'access' => 'Allow',
130
- 'direction' => 'Outbound',
131
- 'description' => 'Allow outbound traffic from all VMs to Internet',
132
- 'sourcePortRange' => '*',
133
- 'destinationPortRange' => '*',
134
- 'priority' => 65_001,
135
- 'provisioningState' => 'Succeeded'
136
- },
137
- 'name' => 'AllowInternetOutBound'
138
- },
139
- {
140
- 'id' => "/subscriptions/########-####-####-####-############/resourceGroups/#{resource_group}/providers/Microsoft.Network/networkSecurityGroups/testGroup/defaultSecurityRules/DenyAllOutBound",
141
- 'properties' =>
142
- {
143
- 'protocol' => '*',
144
- 'sourceAddressPrefix' => '*',
145
- 'destinationAddressPrefix' => '*',
146
- 'access' => 'Deny',
147
- 'direction' => 'Outbound',
148
- 'description' => 'Deny all outbound traffic',
149
- 'sourcePortRange' => '*',
150
- 'destinationPortRange' => '*',
151
- 'priority' => 65_500,
152
- 'provisioningState' => 'Succeeded'
153
- },
154
- 'name' => 'DenyAllOutBound'
155
- }
156
- ],
157
- 'resourceGuid' => '9dca97e6-4789-4ebd-86e3-52b8b0da6cd4',
158
- 'provisioningState' => 'Succeeded'
159
- }
160
- }
161
- ]
162
- }
163
- nsg_mapper = Azure::ARM::Network::Models::NetworkInterfaceListResult.mapper
164
- @network_client.deserialize(nsg_mapper, nsg_list_result, 'result.body').value
24
+ nsg_list_result = [
25
+ {
26
+ 'id' => "/subscriptions/########-####-####-####-############/resourceGroups/#{resource_group}/providers/Microsoft.Network/networkSecurityGroups/testGroup",
27
+ 'name' => 'testGroup',
28
+ 'type' => 'Microsoft.Network/networkSecurityGroups',
29
+ 'location' => 'westus',
30
+ 'properties' =>
31
+ {
32
+ 'securityRules' =>
33
+ [
34
+ {
35
+ 'id' => "/subscriptions/########-####-####-####-############/resourceGroups/#{resource_group}/providers/Microsoft.Network/networkSecurityGroups/testGroup/securityRules/testRule",
36
+ 'properties' =>
37
+ {
38
+ 'protocol' => 'tcp',
39
+ 'sourceAddressPrefix' => '0.0.0.0/0',
40
+ 'destinationAddressPrefix' => '0.0.0.0/0',
41
+ 'access' => 'Allow',
42
+ 'direction' => 'Inbound',
43
+ 'sourcePortRange' => '22',
44
+ 'destinationPortRange' => '22',
45
+ 'priority' => 100,
46
+ 'provisioningState' => 'Succeeded'
47
+ },
48
+ 'name' => 'testRule'
49
+ }
50
+ ],
51
+ 'defaultSecurityRules' =>
52
+ [
53
+ {
54
+ 'id' => "/subscriptions/########-####-####-####-############/resourceGroups/#{resource_group}/providers/Microsoft.Network/networkSecurityGroups/testGroup/defaultSecurityRules/AllowVnetInBound",
55
+ 'properties' =>
56
+ {
57
+ 'protocol' => '*',
58
+ 'sourceAddressPrefix' => 'VirtualNetwork',
59
+ 'destinationAddressPrefix' => 'VirtualNetwork',
60
+ 'access' => 'Allow',
61
+ 'direction' => 'Inbound',
62
+ 'description' => 'Allow inbound traffic from all VMs in VNET',
63
+ 'sourcePortRange' => '*',
64
+ 'destinationPortRange' => '*',
65
+ 'priority' => 65_000,
66
+ 'provisioningState' => 'Succeeded'
67
+ },
68
+ 'name' => 'AllowVnetInBound'
69
+ },
70
+ {
71
+ 'id' => "/subscriptions/########-####-####-####-############/resourceGroups/#{resource_group}/providers/Microsoft.Network/networkSecurityGroups/testGroup/defaultSecurityRules/AllowAzureLoadBalancerInBound",
72
+ 'properties' =>
73
+ {
74
+ 'protocol' => '*',
75
+ 'sourceAddressPrefix' => 'AzureLoadBalancer',
76
+ 'destinationAddressPrefix' => '*',
77
+ 'access' => 'Allow',
78
+ 'direction' => 'Inbound',
79
+ 'description' => 'Allow inbound traffic from azure load balancer',
80
+ 'sourcePortRange' => '*',
81
+ 'destinationPortRange' => '*',
82
+ 'priority' => 65_001,
83
+ 'provisioningState' => 'Succeeded'
84
+ },
85
+ 'name' => 'AllowAzureLoadBalancerInBound'
86
+ },
87
+ {
88
+ 'id' => "/subscriptions/########-####-####-####-############/resourceGroups/#{resource_group}/providers/Microsoft.Network/networkSecurityGroups/testGroup/defaultSecurityRules/DenyAllInBound",
89
+ 'properties' =>
90
+ {
91
+ 'protocol' => '*',
92
+ 'sourceAddressPrefix' => '*',
93
+ 'destinationAddressPrefix' => '*',
94
+ 'access' => 'Deny',
95
+ 'direction' => 'Inbound',
96
+ 'description' => 'Deny all inbound traffic',
97
+ 'sourcePortRange' => '*',
98
+ 'destinationPortRange' => '*',
99
+ 'priority' => 65_500,
100
+ 'provisioningState' => 'Succeeded'
101
+ },
102
+ 'name' => 'DenyAllInBound'
103
+ },
104
+ {
105
+ 'id' => "/subscriptions/########-####-####-####-############/resourceGroups/#{resource_group}/providers/Microsoft.Network/networkSecurityGroups/testGroup/defaultSecurityRules/AllowVnetOutBound",
106
+ 'properties' =>
107
+ {
108
+ 'protocol' => '*',
109
+ 'sourceAddressPrefix' => 'VirtualNetwork',
110
+ 'destinationAddressPrefix' => 'VirtualNetwork',
111
+ 'access' => 'Allow',
112
+ 'direction' => 'Outbound',
113
+ 'description' => 'Allow outbound traffic from all VMs to all VMs in VNET',
114
+ 'sourcePortRange' => '*',
115
+ 'destinationPortRange' => '*',
116
+ 'priority' => 65_000,
117
+ 'provisioningState' => 'Succeeded'
118
+ },
119
+ 'name' => 'AllowVnetOutBound'
120
+ },
121
+ {
122
+ 'id' => "/subscriptions/########-####-####-####-############/resourceGroups/#{resource_group}/providers/Microsoft.Network/networkSecurityGroups/testGroup/defaultSecurityRules/AllowInternetOutBound",
123
+ 'properties' =>
124
+ {
125
+ 'protocol' => '*',
126
+ 'sourceAddressPrefix' => '*',
127
+ 'destinationAddressPrefix' => 'Internet',
128
+ 'access' => 'Allow',
129
+ 'direction' => 'Outbound',
130
+ 'description' => 'Allow outbound traffic from all VMs to Internet',
131
+ 'sourcePortRange' => '*',
132
+ 'destinationPortRange' => '*',
133
+ 'priority' => 65_001,
134
+ 'provisioningState' => 'Succeeded'
135
+ },
136
+ 'name' => 'AllowInternetOutBound'
137
+ },
138
+ {
139
+ 'id' => "/subscriptions/########-####-####-####-############/resourceGroups/#{resource_group}/providers/Microsoft.Network/networkSecurityGroups/testGroup/defaultSecurityRules/DenyAllOutBound",
140
+ 'properties' =>
141
+ {
142
+ 'protocol' => '*',
143
+ 'sourceAddressPrefix' => '*',
144
+ 'destinationAddressPrefix' => '*',
145
+ 'access' => 'Deny',
146
+ 'direction' => 'Outbound',
147
+ 'description' => 'Deny all outbound traffic',
148
+ 'sourcePortRange' => '*',
149
+ 'destinationPortRange' => '*',
150
+ 'priority' => 65_500,
151
+ 'provisioningState' => 'Succeeded'
152
+ },
153
+ 'name' => 'DenyAllOutBound'
154
+ }
155
+ ],
156
+ 'resourceGuid' => '9dca97e6-4789-4ebd-86e3-52b8b0da6cd4',
157
+ 'provisioningState' => 'Succeeded'
158
+ }
159
+ }
160
+ ]
165
161
  end
166
162
  end
167
163
  end
@@ -0,0 +1,42 @@
1
+ module Fog
2
+ module Resources
3
+ class AzureRM
4
+ # This class provides the actual implementation for service calls.
5
+ class Real
6
+ def list_resources_in_resource_group(resource_group_name)
7
+ msg = "Listing Resources in #{resource_group_name}"
8
+ Fog::Logger.debug msg
9
+ begin
10
+ resources = @rmc.resource_groups.list_resources(resource_group_name)
11
+ rescue MsRestAzure::AzureOperationError => e
12
+ raise_azure_exception(e, msg)
13
+ end
14
+ Fog::Logger.debug "Resources in #{resource_group_name} listed successfully"
15
+ resources
16
+ end
17
+ end
18
+
19
+ # This class provides the mock implementation for unit tests.
20
+ class Mock
21
+ def list_resources_in_resource_group(*)
22
+ resources = {
23
+ 'id' => '/subscriptions/########-####-####-####-############/fog-rg',
24
+ 'name' => 'your-resource-name',
25
+ 'type' => 'providernamespace/resourcetype',
26
+ 'location' => 'westus',
27
+ 'tags' =>
28
+ {
29
+ tag_name => tag_value
30
+ },
31
+ 'plan' =>
32
+ {
33
+ 'name' => 'free'
34
+ }
35
+ }
36
+ result_mapper = Azure::ARM::Resources::Models::GenericResource.mapper
37
+ @rmc.deserialize(result_mapper, resources, 'result.body').value
38
+ end
39
+ end
40
+ end
41
+ end
42
+ end
@@ -21,33 +21,33 @@ module Fog
21
21
  # This class provides the mock implementation for unit tests.
22
22
  class Mock
23
23
  def get_blob_properties(*)
24
- {
25
- 'name' => 'test_blob',
26
- 'metadata' => {},
27
- 'properties' => {
28
- 'last_modified' => 'Mon, 04 Jul 2016 09:30:31 GMT',
29
- 'etag' => '0x8D3A3EDD7C2B777',
30
- 'lease_status' => 'unlocked',
31
- 'lease_state' => 'available',
32
- 'lease_duration' => nil,
33
- 'content_length' => 4_194_304,
34
- 'content_type' => 'application/octet-stream',
35
- 'content_encoding' => nil,
36
- 'content_language' => nil,
37
- 'content_disposition' => nil,
38
- 'content_md5' => 'tXAohIyxuu/t94Lp/ujeRw==',
39
- 'cache_control' => nil,
40
- 'sequence_number' => 0,
41
- 'blob_type' => 'PageBlob',
42
- 'copy_id' => '095adc3b-e277-4c3d-97e0-0abca881f60c',
43
- 'copy_status' => 'success',
44
- 'copy_source' => 'https://testaccount.blob.core.windows.net/testblob/4m?snapshot=2016-02-04T08%3A35%3A50.3157696Z',
45
- 'copy_progress' => '4194304/4194304',
46
- 'copy_completion_time' => 'Thu, 04 Feb 2016 08:35:52 GMT',
47
- 'copy_status_description' => nil,
48
- 'accept_ranges' => 0
49
- }
24
+ blob = Azure::Storage::Blob::Blob.new
25
+ blob.name = 'test_blob'
26
+ blob.metadata = {}
27
+ blob.properties = {
28
+ last_modified: 'Mon, 04 Jul 2016 09:30:31 GMT',
29
+ etag: '0x8D3A3EDD7C2B777',
30
+ lease_status: 'unlocked',
31
+ lease_state: 'available',
32
+ lease_duration: nil,
33
+ content_length: 4_194_304,
34
+ content_type: 'application/octet-stream',
35
+ content_encoding: nil,
36
+ content_language: nil,
37
+ content_disposition: nil,
38
+ content_md5: 'tXAohIyxuu/t94Lp/ujeRw==',
39
+ cache_control: nil,
40
+ sequence_number: 0,
41
+ blob_type: 'PageBlob',
42
+ copy_id: '095adc3b-e277-4c3d-97e0-0abca881f60c',
43
+ copy_status: 'success',
44
+ copy_source: 'https://testaccount.blob.core.windows.net/testblob/4m?snapshot=2016-02-04T08%3A35%3A50.3157696Z',
45
+ copy_progress: '4194304/4194304',
46
+ copy_completion_time: 'Thu, 04 Feb 2016 08:35:52 GMT',
47
+ copy_status_description: nil,
48
+ accept_ranges: 0
50
49
  }
50
+ blob
51
51
  end
52
52
  end
53
53
  end
@@ -23,6 +23,7 @@ module Fog
23
23
  request :list_tagged_resources
24
24
  request :tag_resource
25
25
  request :check_azure_resource_exists
26
+ request :list_resources_in_resource_group
26
27
 
27
28
  model_path 'fog/azurerm/models/resources'
28
29
  model :resource_group
@@ -77,6 +77,7 @@ module Fog
77
77
  def initialize(_options = {})
78
78
  begin
79
79
  require 'azure_mgmt_storage'
80
+ require 'azure/storage'
80
81
  rescue LoadError => e
81
82
  retry if require('rubygems')
82
83
  raise e.message
@@ -1,3 +1,5 @@
1
+ require File.expand_path('../../custom_fog_errors.rb', __FILE__)
2
+
1
3
  # Pick Resource Group name from Azure Resource Id(String)
2
4
  def get_resource_group_from_id(id)
3
5
  id.split('/')[4]
@@ -47,11 +49,9 @@ def get_record_type(type)
47
49
  end
48
50
 
49
51
  def raise_azure_exception(exception, msg)
50
- description = exception.is_a?(Azure::Core::Http::HTTPError) ? exception.description : exception.error_message
51
- exception_message = "Exception in #{msg} #{description} Type: #{exception.class}\n#{exception.backtrace.join('\n')}"
52
-
53
- Fog::Logger.debug exception.backtrace
54
- raise exception_message
52
+ raise Fog::AzureRM::CustomAzureCoreHttpError.new(exception) if exception.is_a?(Azure::Core::Http::HTTPError)
53
+ raise Fog::AzureRM::CustomAzureOperationError.new(msg, exception) if exception.is_a?(MsRestAzure::AzureOperationError)
54
+ raise exception
55
55
  end
56
56
 
57
57
  # Make sure if input_params(Hash) contains all keys present in required_params(Array)
@@ -177,3 +177,7 @@ end
177
177
  def get_image_name(id)
178
178
  id.split('/').last
179
179
  end
180
+
181
+ def get_subscription_id(id)
182
+ id.split('/')[2]
183
+ end
@@ -1,5 +1,5 @@
1
1
  module Fog
2
2
  module AzureRM
3
- VERSION = '0.5.1'.freeze
3
+ VERSION = '0.5.2'.freeze
4
4
  end
5
5
  end