fog-azure-rm 0.1.2 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (251) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +11 -0
  3. data/Gemfile +1 -1
  4. data/README.md +0 -1
  5. data/fog-azure-rm.gemspec +4 -1
  6. data/lib/fog/azurerm.rb +7 -0
  7. data/lib/fog/azurerm/application_gateway.rb +10 -2
  8. data/lib/fog/azurerm/compute.rb +14 -4
  9. data/lib/fog/azurerm/config.rb +0 -51
  10. data/lib/fog/azurerm/constants.rb +51 -0
  11. data/lib/fog/azurerm/dns.rb +12 -4
  12. data/lib/fog/azurerm/docs/application_gateway.md +38 -4
  13. data/lib/fog/azurerm/docs/compute.md +23 -4
  14. data/lib/fog/azurerm/docs/dns.md +18 -4
  15. data/lib/fog/azurerm/docs/key_vault.md +88 -0
  16. data/lib/fog/azurerm/docs/network.md +98 -9
  17. data/lib/fog/azurerm/docs/resources.md +24 -4
  18. data/lib/fog/azurerm/docs/sql.md +5 -6
  19. data/lib/fog/azurerm/docs/storage.md +12 -0
  20. data/lib/fog/azurerm/docs/traffic_manager.md +22 -4
  21. data/lib/fog/azurerm/key_vault.rb +51 -0
  22. data/lib/fog/azurerm/models/application_gateway/backend_address_pool.rb +2 -0
  23. data/lib/fog/azurerm/models/application_gateway/backend_http_setting.rb +2 -0
  24. data/lib/fog/azurerm/models/application_gateway/frontend_ip_configuration.rb +4 -0
  25. data/lib/fog/azurerm/models/application_gateway/frontend_port.rb +2 -0
  26. data/lib/fog/azurerm/models/application_gateway/gateway.rb +2 -6
  27. data/lib/fog/azurerm/models/application_gateway/gateways.rb +4 -0
  28. data/lib/fog/azurerm/models/application_gateway/http_listener.rb +2 -0
  29. data/lib/fog/azurerm/models/application_gateway/ip_configuration.rb +3 -0
  30. data/lib/fog/azurerm/models/application_gateway/probe.rb +2 -0
  31. data/lib/fog/azurerm/models/application_gateway/request_routing_rule.rb +2 -0
  32. data/lib/fog/azurerm/models/application_gateway/ssl_certificate.rb +2 -0
  33. data/lib/fog/azurerm/models/application_gateway/url_path_map.rb +2 -0
  34. data/lib/fog/azurerm/models/compute/availability_sets.rb +4 -0
  35. data/lib/fog/azurerm/models/compute/servers.rb +4 -0
  36. data/lib/fog/azurerm/models/compute/virtual_machine_extensions.rb +4 -0
  37. data/lib/fog/azurerm/models/dns/record_sets.rb +4 -0
  38. data/lib/fog/azurerm/models/dns/zones.rb +2 -2
  39. data/lib/fog/azurerm/models/key_vault/access_policy_entry.rb +31 -0
  40. data/lib/fog/azurerm/models/key_vault/vault.rb +76 -0
  41. data/lib/fog/azurerm/models/key_vault/vaults.rb +27 -0
  42. data/lib/fog/azurerm/models/network/express_route_circuit_authorizations.rb +4 -0
  43. data/lib/fog/azurerm/models/network/express_route_circuits.rb +4 -0
  44. data/lib/fog/azurerm/models/network/load_balancers.rb +12 -2
  45. data/lib/fog/azurerm/models/network/local_network_gateways.rb +4 -0
  46. data/lib/fog/azurerm/models/network/network_interfaces.rb +4 -0
  47. data/lib/fog/azurerm/models/network/network_security_groups.rb +4 -0
  48. data/lib/fog/azurerm/models/network/network_security_rules.rb +4 -0
  49. data/lib/fog/azurerm/models/network/public_ips.rb +2 -9
  50. data/lib/fog/azurerm/models/network/subnets.rb +4 -0
  51. data/lib/fog/azurerm/models/network/virtual_network_gateway_connections.rb +4 -0
  52. data/lib/fog/azurerm/models/network/virtual_network_gateways.rb +4 -0
  53. data/lib/fog/azurerm/models/network/virtual_networks.rb +9 -11
  54. data/lib/fog/azurerm/models/resources/azure_resources.rb +4 -0
  55. data/lib/fog/azurerm/models/resources/deployments.rb +4 -0
  56. data/lib/fog/azurerm/models/resources/resource_groups.rb +4 -0
  57. data/lib/fog/azurerm/models/sql/firewall_rule.rb +5 -17
  58. data/lib/fog/azurerm/models/sql/firewall_rules.rb +4 -0
  59. data/lib/fog/azurerm/models/sql/sql_database.rb +4 -21
  60. data/lib/fog/azurerm/models/sql/sql_databases.rb +4 -0
  61. data/lib/fog/azurerm/models/sql/sql_server.rb +5 -18
  62. data/lib/fog/azurerm/models/sql/sql_servers.rb +4 -0
  63. data/lib/fog/azurerm/models/storage/directories.rb +4 -0
  64. data/lib/fog/azurerm/models/storage/storage_accounts.rb +4 -0
  65. data/lib/fog/azurerm/models/traffic_manager/traffic_manager_end_points.rb +4 -0
  66. data/lib/fog/azurerm/models/traffic_manager/traffic_manager_profiles.rb +4 -0
  67. data/lib/fog/azurerm/network.rb +22 -4
  68. data/lib/fog/azurerm/requests/application_gateway/check_ag_exists.rb +31 -0
  69. data/lib/fog/azurerm/requests/application_gateway/create_or_update_application_gateway.rb +6 -0
  70. data/lib/fog/azurerm/requests/compute/check_availability_set_exists.rb +31 -0
  71. data/lib/fog/azurerm/requests/compute/check_vm_exists.rb +31 -0
  72. data/lib/fog/azurerm/requests/compute/check_vm_extension_exists.rb +31 -0
  73. data/lib/fog/azurerm/requests/dns/check_record_set_exists.rb +31 -0
  74. data/lib/fog/azurerm/requests/dns/{check_for_zone.rb → check_zone_exists.rb} +4 -2
  75. data/lib/fog/azurerm/requests/dns/list_record_sets.rb +1 -1
  76. data/lib/fog/azurerm/requests/dns/list_zones.rb +2 -2
  77. data/lib/fog/azurerm/requests/key_vault/check_vault_exists.rb +31 -0
  78. data/lib/fog/azurerm/requests/key_vault/create_or_update_vault.rb +105 -0
  79. data/lib/fog/azurerm/requests/key_vault/delete_vault.rb +28 -0
  80. data/lib/fog/azurerm/requests/key_vault/get_vault.rb +54 -0
  81. data/lib/fog/azurerm/requests/key_vault/list_vaults.rb +56 -0
  82. data/lib/fog/azurerm/requests/network/check_express_route_cir_auth_exists.rb +31 -0
  83. data/lib/fog/azurerm/requests/network/check_express_route_circuit_exists.rb +31 -0
  84. data/lib/fog/azurerm/requests/network/check_load_balancer_exists.rb +31 -0
  85. data/lib/fog/azurerm/requests/network/check_local_net_gateway_exists.rb +31 -0
  86. data/lib/fog/azurerm/requests/network/check_net_sec_group_exists.rb +31 -0
  87. data/lib/fog/azurerm/requests/network/check_net_sec_rule_exists.rb +31 -0
  88. data/lib/fog/azurerm/requests/network/check_network_interface_exists.rb +31 -0
  89. data/lib/fog/azurerm/requests/network/{check_for_public_ip.rb → check_public_ip_exists.rb} +12 -5
  90. data/lib/fog/azurerm/requests/network/check_subnet_exists.rb +32 -0
  91. data/lib/fog/azurerm/requests/network/{check_for_virtual_network.rb → check_virtual_network_exists.rb} +11 -6
  92. data/lib/fog/azurerm/requests/network/check_vnet_gateway_connection_exists.rb +32 -0
  93. data/lib/fog/azurerm/requests/network/check_vnet_gateway_exists.rb +32 -0
  94. data/lib/fog/azurerm/requests/network/list_load_balancers_in_subscription.rb +31 -0
  95. data/lib/fog/azurerm/requests/network/list_virtual_networks_in_subscription.rb +74 -0
  96. data/lib/fog/azurerm/requests/resources/check_azure_resource_exists.rb +40 -0
  97. data/lib/fog/azurerm/requests/resources/check_deployment_exists.rb +30 -0
  98. data/lib/fog/azurerm/requests/resources/check_resource_group_exists.rb +30 -0
  99. data/lib/fog/azurerm/requests/sql/check_database_exists.rb +21 -0
  100. data/lib/fog/azurerm/requests/sql/check_firewall_rule_exists.rb +21 -0
  101. data/lib/fog/azurerm/requests/sql/check_sql_server_exists.rb +21 -0
  102. data/lib/fog/azurerm/requests/sql/create_or_update_database.rb +26 -32
  103. data/lib/fog/azurerm/requests/sql/create_or_update_firewall_rule.rb +8 -22
  104. data/lib/fog/azurerm/requests/sql/create_or_update_sql_server.rb +14 -24
  105. data/lib/fog/azurerm/requests/sql/delete_database.rb +2 -9
  106. data/lib/fog/azurerm/requests/sql/delete_firewall_rule.rb +2 -9
  107. data/lib/fog/azurerm/requests/sql/delete_sql_server.rb +3 -9
  108. data/lib/fog/azurerm/requests/sql/get_database.rb +4 -10
  109. data/lib/fog/azurerm/requests/sql/get_firewall_rule.rb +4 -10
  110. data/lib/fog/azurerm/requests/sql/get_sql_server.rb +3 -10
  111. data/lib/fog/azurerm/requests/sql/list_databases.rb +3 -10
  112. data/lib/fog/azurerm/requests/sql/list_firewall_rules.rb +4 -10
  113. data/lib/fog/azurerm/requests/sql/list_sql_servers.rb +3 -10
  114. data/lib/fog/azurerm/requests/storage/check_container_exists.rb +30 -0
  115. data/lib/fog/azurerm/requests/storage/check_storage_account_exists.rb +31 -0
  116. data/lib/fog/azurerm/requests/storage/create_or_update_recovery_vault.rb +1 -1
  117. data/lib/fog/azurerm/requests/storage/delete_recovery_vault.rb +1 -1
  118. data/lib/fog/azurerm/requests/storage/disable_backup_protection.rb +1 -1
  119. data/lib/fog/azurerm/requests/storage/enable_backup_protection.rb +1 -1
  120. data/lib/fog/azurerm/requests/storage/get_all_backup_jobs.rb +1 -1
  121. data/lib/fog/azurerm/requests/storage/get_backup_container.rb +1 -1
  122. data/lib/fog/azurerm/requests/storage/get_backup_item.rb +1 -1
  123. data/lib/fog/azurerm/requests/storage/get_backup_protection_policy.rb +1 -1
  124. data/lib/fog/azurerm/requests/storage/get_recovery_vault.rb +1 -1
  125. data/lib/fog/azurerm/requests/storage/list_recovery_vaults.rb +1 -1
  126. data/lib/fog/azurerm/requests/storage/set_recovery_vault_context.rb +1 -1
  127. data/lib/fog/azurerm/requests/storage/start_backup.rb +1 -1
  128. data/lib/fog/azurerm/requests/traffic_manager/check_traffic_manager_endpoint_exists.rb +31 -0
  129. data/lib/fog/azurerm/requests/traffic_manager/check_traffic_manager_profile_exists.rb +31 -0
  130. data/lib/fog/azurerm/resources.rb +10 -2
  131. data/lib/fog/azurerm/sql.rb +18 -10
  132. data/lib/fog/azurerm/storage.rb +4 -0
  133. data/lib/fog/azurerm/traffic_manager.rb +9 -2
  134. data/lib/fog/azurerm/version.rb +1 -1
  135. data/rake-script.sh +3 -10
  136. data/test/api_stub.rb +8 -0
  137. data/test/api_stub/models/key_vault/vault.rb +39 -0
  138. data/test/api_stub/models/sql/sql_database.rb +18 -16
  139. data/test/api_stub/models/sql/sql_firewall_rule.rb +12 -10
  140. data/test/api_stub/models/sql/sql_server.rb +12 -10
  141. data/test/api_stub/requests/key_vault/vault.rb +95 -0
  142. data/test/api_stub/requests/sql/database.rb +8 -6
  143. data/test/api_stub/requests/sql/firewall_rule.rb +8 -4
  144. data/test/api_stub/requests/sql/sql_server.rb +8 -4
  145. data/test/integration/Virtual_network_gateway_connection.rb +7 -0
  146. data/test/integration/application_gateway.rb +8 -0
  147. data/test/integration/availability_set.rb +13 -2
  148. data/test/integration/blob.rb +0 -6
  149. data/test/integration/container.rb +7 -0
  150. data/test/integration/deployment.rb +7 -0
  151. data/test/integration/express_route_circuit.rb +16 -0
  152. data/test/integration/external_load_balancer.rb +18 -0
  153. data/test/integration/key_vault.rb +98 -0
  154. data/test/integration/local_network_gateway.rb +8 -0
  155. data/test/integration/network_interface.rb +8 -0
  156. data/test/integration/network_security_group.rb +8 -0
  157. data/test/integration/network_security_rule.rb +8 -0
  158. data/test/integration/public_ip.rb +3 -2
  159. data/test/integration/record_set.rb +8 -0
  160. data/test/integration/resource_group.rb +12 -4
  161. data/test/integration/resource_tag.rb +7 -0
  162. data/test/integration/server.rb +8 -0
  163. data/test/integration/sql_server.rb +23 -3
  164. data/test/integration/storage_account.rb +8 -1
  165. data/test/integration/subnet.rb +7 -0
  166. data/test/integration/traffic_manager.rb +14 -0
  167. data/test/integration/virtual_machine_extension.rb +8 -0
  168. data/test/integration/virtual_network.rb +13 -4
  169. data/test/integration/virtual_network_gateway.rb +7 -0
  170. data/test/integration/zone.rb +8 -0
  171. data/test/models/application_gateway/test_gateway.rb +1 -0
  172. data/test/models/application_gateway/test_gateways.rb +14 -1
  173. data/test/models/compute/test_availability_sets.rb +14 -1
  174. data/test/models/compute/test_servers.rb +14 -1
  175. data/test/models/compute/test_virtual_machine_extensions.rb +14 -1
  176. data/test/models/dns/test_record_sets.rb +14 -1
  177. data/test/models/dns/test_zones.rb +7 -7
  178. data/test/models/key_vault/test_vault.rb +39 -0
  179. data/test/models/key_vault/test_vaults.rb +55 -0
  180. data/test/models/network/test_express_route_circuit_authorizations.rb +14 -1
  181. data/test/models/network/test_express_route_circuits.rb +14 -1
  182. data/test/models/network/test_load_balancers.rb +14 -1
  183. data/test/models/network/test_local_network_gateways.rb +14 -1
  184. data/test/models/network/test_network_interfaces.rb +14 -1
  185. data/test/models/network/test_network_security_groups.rb +14 -1
  186. data/test/models/network/test_network_security_rules.rb +14 -1
  187. data/test/models/network/test_public_ips.rb +6 -6
  188. data/test/models/network/test_subnets.rb +14 -1
  189. data/test/models/network/test_virtual_network_gateway_connections.rb +14 -1
  190. data/test/models/network/test_virtual_network_gateways.rb +14 -1
  191. data/test/models/network/test_virtual_networks.rb +20 -8
  192. data/test/models/resources/test_deployments.rb +14 -1
  193. data/test/models/resources/test_resource_groups.rb +14 -1
  194. data/test/models/resources/test_resources.rb +16 -3
  195. data/test/models/sql/test_database.rb +3 -4
  196. data/test/models/sql/test_databases.rb +5 -5
  197. data/test/models/sql/test_firewall_rule.rb +2 -1
  198. data/test/models/sql/test_firewall_rules.rb +3 -2
  199. data/test/models/sql/test_sql_server.rb +2 -1
  200. data/test/models/sql/test_sql_servers.rb +5 -5
  201. data/test/models/storage/test_directories.rb +14 -1
  202. data/test/models/storage/test_storage_accounts.rb +14 -1
  203. data/test/models/traffic_manager/test_traffic_manager_end_points.rb +14 -1
  204. data/test/models/traffic_manager/test_traffic_manager_profiles.rb +14 -1
  205. data/test/requests/application_gateway/test_check_ag_exists.rb +31 -0
  206. data/test/requests/compute/test_check_availability_set_exists.rb +31 -0
  207. data/test/requests/compute/test_check_vm_exists.rb +31 -0
  208. data/test/requests/compute/test_check_vm_extension_exists.rb +31 -0
  209. data/test/requests/dns/test_check_record_set_exists.rb +31 -0
  210. data/test/requests/dns/test_check_zone_exists.rb +35 -0
  211. data/test/requests/dns/test_list_record_sets.rb +35 -0
  212. data/test/requests/dns/{test_check_for_zone.rb → test_list_zones.rb} +10 -8
  213. data/test/requests/key_vault/test_check_vault_exists.rb +31 -0
  214. data/test/requests/key_vault/test_create_or_update_vault.rb +25 -0
  215. data/test/requests/key_vault/test_delete_vault.rb +23 -0
  216. data/test/requests/key_vault/test_get_vault.rb +24 -0
  217. data/test/requests/key_vault/test_list_vaults.rb +24 -0
  218. data/test/requests/network/test_check_express_route_cir_auth_exists.rb +31 -0
  219. data/test/requests/network/test_check_express_route_circuit_exists.rb +31 -0
  220. data/test/requests/network/test_check_load_balancer_exists.rb +31 -0
  221. data/test/requests/network/test_check_local_net_gateway_exists.rb +31 -0
  222. data/test/requests/network/test_check_net_sec_group_exists.rb +31 -0
  223. data/test/requests/network/test_check_net_sec_rule_exists.rb +31 -0
  224. data/test/requests/network/test_check_network_interface_exists.rb +31 -0
  225. data/test/requests/network/{test_check_for_public_ip.rb → test_check_public_ip_exists.rb} +8 -8
  226. data/test/requests/network/test_check_subnet_exists.rb +31 -0
  227. data/test/requests/network/{test_check_for_virtual_network.rb → test_check_virtual_network_exists.rb} +8 -8
  228. data/test/requests/network/test_check_vnet_gateway_connection_exists.rb +31 -0
  229. data/test/requests/network/test_check_vnet_gateway_exists.rb +31 -0
  230. data/test/requests/network/test_list_virtual_networks_in_subscription.rb +24 -0
  231. data/test/requests/resources/test_check_azure_resource_exists.rb +22 -0
  232. data/test/requests/resources/test_check_deployment_exists.rb +29 -0
  233. data/test/requests/resources/test_check_resource_group_exists.rb +29 -0
  234. data/test/requests/sql/test_create_or_update_database.rb +9 -12
  235. data/test/requests/sql/test_create_or_update_firewall_rule.rb +9 -11
  236. data/test/requests/sql/test_create_or_update_sql_server.rb +9 -12
  237. data/test/requests/sql/test_delete_database.rb +6 -17
  238. data/test/requests/sql/test_delete_firewall_rule.rb +6 -17
  239. data/test/requests/sql/test_delete_sql_server.rb +6 -17
  240. data/test/requests/sql/test_get_database.rb +7 -18
  241. data/test/requests/sql/test_get_firewall_rule.rb +7 -18
  242. data/test/requests/sql/test_get_sql_server.rb +7 -18
  243. data/test/requests/sql/test_list_databases.rb +7 -18
  244. data/test/requests/sql/test_list_firewall_rules.rb +7 -18
  245. data/test/requests/sql/test_list_sql_servers.rb +7 -18
  246. data/test/requests/storage/test_check_container_exists.rb +18 -0
  247. data/test/requests/storage/test_check_storage_account_exists.rb +32 -0
  248. data/test/requests/traffic_manager/test_check_traffic_manager_endpoint_exists.rb +31 -0
  249. data/test/requests/traffic_manager/test_check_traffic_manager_profile_exists.rb +31 -0
  250. data/test/test_helper.rb +39 -4
  251. metadata +125 -10
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 492da99a994222eb55a008002646b45e22f67c21
4
- data.tar.gz: ce26f3b97d8b4542e4510dd49b0430d0500eb3b0
3
+ metadata.gz: 37e9a15cf8f593c6eca92fddd5099c18d219f0be
4
+ data.tar.gz: 49fae3451340031eea99a48be0ab7eaef088ac04
5
5
  SHA512:
6
- metadata.gz: fa035953d10efbbe3288877cfab8c4a1d08769aeb6e0e2dcfbec32e21a4e5e8cef91e415aaa9923caa419c9271254ed2012f47327ba55c85e6097621c1101083
7
- data.tar.gz: 8cebd5d0ba6c52772555fdcb8ccc525d4a93977961681d8803bd692ffefb8dc679b98c902980f6af1284d118eef84a92998e3262418042e5ac324dea7dd1a173
6
+ metadata.gz: c7163130df668fe82cc2c517a51b826085f931328afd5c8b72da34aa5baacbfc8ba45a38062e51985df74e20991663f633d69cf16a3b071e8a62af06936d0089
7
+ data.tar.gz: 4b1203a28c2ca1f24b2f269fdb9b0b9256d26fcf90ef2cf6fa47b12e7d74d6c9d923fcff8ffd4938c81e341a821985c7409c2e6d4db3607cf34f324ebfe5f215
data/CHANGELOG.md CHANGED
@@ -1,3 +1,14 @@
1
+ ## 0.2.0
2
+
3
+ **Added:**
4
+ - Added support for multiple environments
5
+ - Added support to check for resource existence
6
+
7
+ **Changed:**
8
+ - Azure SQL Service - Updated Azure SQL Support to use azure_mgmt_sql gem.
9
+ - Azure Network Service - Added list all request in Load Balancer and Virtual Network
10
+
11
+
1
12
  ## 0.1.2
2
13
 
3
14
  **Added:**
data/Gemfile CHANGED
@@ -1,3 +1,3 @@
1
1
  source 'https://rubygems.org'
2
- # Specify your gem's dependencies in fog-azure.gemspec
2
+ # Specify your gem's dependencies in fog-azure-rm.gemspec
3
3
  gemspec
data/README.md CHANGED
@@ -33,7 +33,6 @@ Or install it yourself as:
33
33
  ## Usage
34
34
 
35
35
  You can use this gem against the Microsoft Azure Resource Manager Services in the cloud. Of course, to use the Microsoft Azure Resource Manager Services in the cloud, you need to first [create a Microsoft Azure account](http://www.azure.com/en-us/pricing/free-trial/).
36
- * Set 'CLOUD' constant from 'Azure', 'AzureChina', 'AzureGermanCloud' or 'AzureUSGovernment' in [config.rb] (https://github.com/fog/fog-azure-rm/blob/master/lib/fog/azurerm/config.rb) file. By default it will be 'Azure' (Azure Global).
37
36
  * Set 'LOCATION' constant based on the Azure cloud you are using in [config.rb] (https://github.com/fog/fog-azure-rm/blob/master/lib/fog/azurerm/config.rb) file. By default it will be 'eastus'.
38
37
 
39
38
  ### Authentication
data/fog-azure-rm.gemspec CHANGED
@@ -31,6 +31,9 @@ Gem::Specification.new do |spec|
31
31
  spec.add_dependency 'azure_mgmt_network', '~> 0.8.0'
32
32
  spec.add_dependency 'azure_mgmt_dns', '~> 0.8.0'
33
33
  spec.add_dependency 'azure_mgmt_traffic_manager', '~> 0.8.0'
34
- spec.add_dependency 'azure-storage', '~> 0.11.4.preview'
34
+ spec.add_dependency 'azure_mgmt_sql', '~> 0.8.0'
35
+ spec.add_dependency 'azure_mgmt_key_vault', '~> 0.8.0'
36
+ spec.add_dependency 'azure-storage', '~> 0.11.5.preview'
35
37
  spec.add_dependency 'vhd', '0.0.4'
38
+ spec.add_dependency 'nokogiri', '~> 1.6.0'
36
39
  end
data/lib/fog/azurerm.rb CHANGED
@@ -2,6 +2,7 @@ require 'ms_rest_azure'
2
2
  require 'rest_client'
3
3
  require 'erb'
4
4
  require 'fog/azurerm/config'
5
+ require 'fog/azurerm/constants'
5
6
  require 'fog/azurerm/utilities/general'
6
7
  require 'fog/azurerm/version'
7
8
  require 'fog/core'
@@ -53,6 +54,11 @@ module Fog
53
54
  autoload :AzureRM, File.expand_path('azurerm/sql', __dir__)
54
55
  end
55
56
 
57
+ # Autoload Module for KeyVault
58
+ module KeyVault
59
+ autoload :AzureRM, File.expand_path('azurerm/key_vault', __dir__)
60
+ end
61
+
56
62
  # Main AzureRM fog Provider Module
57
63
  module AzureRM
58
64
  extend Fog::Provider
@@ -64,5 +70,6 @@ module Fog
64
70
  service(:application_gateway, 'ApplicationGateway')
65
71
  service(:traffic_manager, 'TrafficManager')
66
72
  service(:sql, 'Sql')
73
+ service(:key_vault, 'KeyVault')
67
74
  end
68
75
  end
@@ -6,12 +6,14 @@ module Fog
6
6
  requires :client_id
7
7
  requires :client_secret
8
8
  requires :subscription_id
9
+ recognizes :environment
9
10
 
10
11
  request_path 'fog/azurerm/requests/application_gateway'
11
12
  request :create_or_update_application_gateway
12
13
  request :delete_application_gateway
13
14
  request :list_application_gateways
14
15
  request :get_application_gateway
16
+ request :check_ag_exists
15
17
  request :update_subnet_id_in_gateway_ip_configuration
16
18
  request :update_sku_attributes
17
19
  request :start_application_gateway
@@ -52,14 +54,20 @@ module Fog
52
54
  retry if require('rubygems')
53
55
  raise e.message
54
56
  end
57
+
58
+ telemetry = "fog-azure-rm/#{Fog::AzureRM::VERSION}"
55
59
 
56
- credentials = Fog::Credentials::AzureRM.get_credentials(options[:tenant_id], options[:client_id], options[:client_secret])
57
- @network_client = ::Azure::ARM::Network::NetworkManagementClient.new(credentials)
60
+ options[:environment] = 'AzureCloud' if options[:environment].nil?
61
+
62
+ credentials = Fog::Credentials::AzureRM.get_credentials(options[:tenant_id], options[:client_id], options[:client_secret], options[:environment])
63
+ @network_client = ::Azure::ARM::Network::NetworkManagementClient.new(credentials, resource_manager_endpoint_url(options[:environment]))
58
64
  @network_client.subscription_id = options[:subscription_id]
65
+ @network_client.add_user_agent_information(telemetry)
59
66
  @tenant_id = options[:tenant_id]
60
67
  @client_id = options[:client_id]
61
68
  @client_secret = options[:client_secret]
62
69
  @subscription_id = options[:subscription_id]
70
+ @environment = options[:environment]
63
71
  end
64
72
  end
65
73
  end
@@ -6,12 +6,14 @@ module Fog
6
6
  requires :client_id
7
7
  requires :client_secret
8
8
  requires :subscription_id
9
+ recognizes :environment
9
10
 
10
11
  request_path 'fog/azurerm/requests/compute'
11
12
  request :create_availability_set
12
13
  request :delete_availability_set
13
14
  request :list_availability_sets
14
15
  request :get_availability_set
16
+ request :check_availability_set_exists
15
17
  request :create_virtual_machine
16
18
  request :delete_virtual_machine
17
19
  request :get_virtual_machine
@@ -24,11 +26,13 @@ module Fog
24
26
  request :restart_virtual_machine
25
27
  request :start_virtual_machine
26
28
  request :check_vm_status
29
+ request :check_vm_exists
27
30
  request :attach_data_disk_to_vm
28
31
  request :detach_data_disk_from_vm
29
32
  request :create_or_update_vm_extension
30
33
  request :delete_vm_extension
31
34
  request :get_vm_extension
35
+ request :check_vm_extension_exists
32
36
 
33
37
  model_path 'fog/azurerm/models/compute'
34
38
  model :availability_set
@@ -61,12 +65,18 @@ module Fog
61
65
  raise e.message
62
66
  end
63
67
 
64
- credentials = Fog::Credentials::AzureRM.get_credentials(options[:tenant_id], options[:client_id], options[:client_secret])
65
- @compute_mgmt_client = ::Azure::ARM::Compute::ComputeManagementClient.new(credentials, resource_manager_endpoint_url)
68
+
69
+ options[:environment] = 'AzureCloud' if options[:environment].nil?
70
+
71
+ telemetry = "fog-azure-rm/#{Fog::AzureRM::VERSION}"
72
+ credentials = Fog::Credentials::AzureRM.get_credentials(options[:tenant_id], options[:client_id], options[:client_secret], options[:environment])
73
+ @compute_mgmt_client = ::Azure::ARM::Compute::ComputeManagementClient.new(credentials, resource_manager_endpoint_url(options[:environment]))
66
74
  @compute_mgmt_client.subscription_id = options[:subscription_id]
67
- @storage_mgmt_client = ::Azure::ARM::Storage::StorageManagementClient.new(credentials, resource_manager_endpoint_url)
75
+ @compute_mgmt_client.add_user_agent_information(telemetry)
76
+ @storage_mgmt_client = ::Azure::ARM::Storage::StorageManagementClient.new(credentials, resource_manager_endpoint_url(options[:environment]))
68
77
  @storage_mgmt_client.subscription_id = options[:subscription_id]
69
- @storage_service = Fog::Storage::AzureRM.new(tenant_id: options[:tenant_id], client_id: options[:client_id], client_secret: options[:client_secret], subscription_id: options[:subscription_id])
78
+ @storage_mgmt_client.add_user_agent_information(telemetry)
79
+ @storage_service = Fog::Storage::AzureRM.new(tenant_id: options[:tenant_id], client_id: options[:client_id], client_secret: options[:client_secret], subscription_id: options[:subscription_id], environment: options[:environment])
70
80
  end
71
81
  end
72
82
  end
@@ -1,52 +1 @@
1
- AZURE_RESOURCE = 'https://management.azure.com'.freeze
2
- DEFAULT_ADDRESS_PREFIXES = ['10.2.0.0/16'].freeze
3
- SUBNET = 'Subnet'.freeze
4
- PUBLIC_IP = 'Public-IP-Address'.freeze
5
- NETWORK_SECURITY_GROUP = 'Network-Security-Group'.freeze
6
- STANDARD_STORAGE = 'Standard'.freeze
7
- PREMIUM_STORAGE = 'Premium'.freeze
8
- ALLOWED_STANDARD_REPLICATION = %w(LRS ZRS GRS RAGRS).freeze
9
- API_VERSION = '2016-06-01'.freeze
10
- FAULT_DOMAIN_COUNT = 3.freeze
11
- UPDATE_DOMAIN_COUNT = 5.freeze
12
- WINDOWS = 'windows'.freeze
13
- VPN = 'Vpn'.freeze
14
- MICROSOFT_PEERING = 'MicrosoftPeering'.freeze
15
- RESOURCE_GROUP_NAME = 4
16
- RESOURCE_PROVIDER_NAMESPACE = 6
17
- RESOURCE_TYPE = 7
18
- RESOURCE_NAME = 8
19
- AZURE_ENDPOINTS = 'azureEndpoints'.freeze
20
- EXTERNAL_ENDPOINTS = 'externalEndpoints'.freeze
21
- NESTED_ENDPOINTS = 'nestedEndpoints'.freeze
22
- GLOBAL = 'global'.freeze
23
- UPLOAD_BLOB_WORKER_THREAD_COUNT = 8
24
- VM_NAME_POSITION = 8
25
-
26
- ENVIRONMENT_AZURE_CLOUD = 'AzureCloud'.freeze
27
- ENVIRONMENT_AZURE_CHINA_CLOUD = 'AzureChinaCloud'.freeze
28
- ENVIRONMENT_AZURE_US_GOVERNMENT = 'AzureUSGovernment'.freeze
29
- ENVIRONMENT_AZURE_GERMAN_CLOUD = 'AzureGermanCloud'.freeze
30
-
31
1
  LOCATION = 'eastus'.freeze
32
-
33
- # State of the copy operation
34
- COPY_STATUS = {
35
- # The copy completed successfully.
36
- SUCCESS: 'success',
37
- # The copy is in progress
38
- PENDING: 'pending'
39
- }.freeze
40
-
41
- # https://msdn.microsoft.com/en-us/library/azure/dd179451.aspx
42
- # The maximum size for a block blob created via Put Blob is 64 MB. But for better performance, this size should be 32 MB.
43
- # If your blob is larger than 32 MB, you must upload it as a set of blocks.
44
- SINGLE_BLOB_PUT_THRESHOLD = 32 * 1024 * 1024
45
-
46
- # Block blob: https://msdn.microsoft.com/en-us/library/azure/dd135726.aspx
47
- # Page blob: https://msdn.microsoft.com/en-us/library/azure/ee691975.aspx
48
- # Each block/page can be a different size, up to a maximum of 4 MB
49
- MAXIMUM_CHUNK_SIZE = 4 * 1024 * 1024
50
-
51
- # The hash value of 4MB empty content
52
- HASH_OF_4MB_EMPTY_CONTENT = 'b5cfa9d6c8febd618f91ac2843d50a1c'.freeze
@@ -0,0 +1,51 @@
1
+ AZURE_RESOURCE = 'https://management.azure.com'.freeze
2
+ DEFAULT_ADDRESS_PREFIXES = ['10.2.0.0/16'].freeze
3
+ SUBNET = 'Subnet'.freeze
4
+ PUBLIC_IP = 'Public-IP-Address'.freeze
5
+ NETWORK_SECURITY_GROUP = 'Network-Security-Group'.freeze
6
+ STANDARD_STORAGE = 'Standard'.freeze
7
+ PREMIUM_STORAGE = 'Premium'.freeze
8
+ ALLOWED_STANDARD_REPLICATION = %w(LRS ZRS GRS RAGRS).freeze
9
+ API_VERSION = '2016-06-01'.freeze
10
+ FAULT_DOMAIN_COUNT = 3.freeze
11
+ UPDATE_DOMAIN_COUNT = 5.freeze
12
+ WINDOWS = 'windows'.freeze
13
+ VPN = 'Vpn'.freeze
14
+ MICROSOFT_PEERING = 'MicrosoftPeering'.freeze
15
+ RESOURCE_GROUP_NAME = 4
16
+ RESOURCE_PROVIDER_NAMESPACE = 6
17
+ RESOURCE_TYPE = 7
18
+ RESOURCE_NAME = 8
19
+ AZURE_ENDPOINTS = 'azureEndpoints'.freeze
20
+ EXTERNAL_ENDPOINTS = 'externalEndpoints'.freeze
21
+ NESTED_ENDPOINTS = 'nestedEndpoints'.freeze
22
+ GLOBAL = 'global'.freeze
23
+ UPLOAD_BLOB_WORKER_THREAD_COUNT = 8
24
+ VM_NAME_POSITION = 8
25
+
26
+ ENVIRONMENT_AZURE_CLOUD = 'AzureCloud'.freeze
27
+ ENVIRONMENT_AZURE_CHINA_CLOUD = 'AzureChinaCloud'.freeze
28
+ ENVIRONMENT_AZURE_US_GOVERNMENT = 'AzureUSGovernment'.freeze
29
+ ENVIRONMENT_AZURE_GERMAN_CLOUD = 'AzureGermanCloud'.freeze
30
+
31
+ # State of the copy operation
32
+ COPY_STATUS = {
33
+ # The copy completed successfully.
34
+ SUCCESS: 'success',
35
+ # The copy is in progress
36
+ PENDING: 'pending'
37
+ }.freeze
38
+
39
+ # https://msdn.microsoft.com/en-us/library/azure/dd179451.aspx
40
+ # The maximum size for a block blob created via Put Blob is 64 MB. But for better performance, this size should be 32 MB.
41
+ # If your blob is larger than 32 MB, you must upload it as a set of blocks.
42
+ SINGLE_BLOB_PUT_THRESHOLD = 32 * 1024 * 1024
43
+
44
+ # Block blob: https://msdn.microsoft.com/en-us/library/azure/dd135726.aspx
45
+ # Page blob: https://msdn.microsoft.com/en-us/library/azure/ee691975.aspx
46
+ # Each block/page can be a different size, up to a maximum of 4 MB
47
+ MAXIMUM_CHUNK_SIZE = 4 * 1024 * 1024
48
+
49
+ # The hash value of 4MB empty content
50
+ HASH_OF_4MB_EMPTY_CONTENT = 'b5cfa9d6c8febd618f91ac2843d50a1c'.freeze
51
+ REST_CLIENT_API_VERSION = %w(2014-04-01-preview 2016-05-01).freeze
@@ -6,11 +6,12 @@ module Fog
6
6
  requires :client_id
7
7
  requires :client_secret
8
8
  requires :subscription_id
9
+ recognizes :environment
9
10
 
10
11
  request_path 'fog/azurerm/requests/dns'
11
12
  request :create_or_update_zone
12
13
  request :delete_zone
13
- request :check_for_zone
14
+ request :check_zone_exists
14
15
  request :list_zones
15
16
  request :get_zone
16
17
  request :create_or_update_record_set
@@ -18,6 +19,7 @@ module Fog
18
19
  request :list_record_sets
19
20
  request :get_records_from_record_set
20
21
  request :get_record_set
22
+ request :check_record_set_exists
21
23
 
22
24
  model_path 'fog/azurerm/models/dns'
23
25
  model :zone
@@ -41,17 +43,23 @@ module Fog
41
43
  raise e.message
42
44
  end
43
45
 
44
- credentials = Fog::Credentials::AzureRM.get_credentials(options[:tenant_id], options[:client_id], options[:client_secret])
45
- @dns_client = ::Azure::ARM::Dns::DnsManagementClient.new(credentials, resource_manager_endpoint_url)
46
+ options[:environment] = 'AzureCloud' if options[:environment].nil?
47
+
48
+ credentials = Fog::Credentials::AzureRM.get_credentials(options[:tenant_id], options[:client_id], options[:client_secret], options[:environment])
49
+ telemetry = "fog-azure-rm/#{Fog::AzureRM::VERSION}"
50
+ @dns_client = ::Azure::ARM::Dns::DnsManagementClient.new(credentials, resource_manager_endpoint_url(options[:environment]))
46
51
  @dns_client.subscription_id = options[:subscription_id]
52
+ @dns_client.add_user_agent_information(telemetry)
47
53
  @tenant_id = options[:tenant_id]
48
54
  @client_id = options[:client_id]
49
55
  @client_secret = options[:client_secret]
56
+ @environment = options[:environment]
50
57
  @resources = Fog::Resources::AzureRM.new(
51
58
  tenant_id: options[:tenant_id],
52
59
  client_id: options[:client_id],
53
60
  client_secret: options[:client_secret],
54
- subscription_id: options[:subscription_id]
61
+ subscription_id: options[:subscription_id],
62
+ environment: options[:environment]
55
63
  )
56
64
  end
57
65
  end
@@ -15,13 +15,20 @@ Next, create a connection to the Application Gateway Service:
15
15
 
16
16
  ```ruby
17
17
  azure_application_gateway_service = Fog::ApplicationGateway::AzureRM.new(
18
- tenant_id: '<Tenantid>', # Tenant id of Azure Active Directory Application
19
- client_id: '<Clientid>', # Client id of Azure Active Directory Application
20
- client_secret: '<ClientSecret>', # Client Secret of Azure Active Directory Application
21
- subscription_id: '<Subscriptionid>' # Subscription id of an Azure Account
18
+ tenant_id: '<Tenantid>', # Tenant id of Azure Active Directory Application
19
+ client_id: '<Clientid>', # Client id of Azure Active Directory Application
20
+ client_secret: '<ClientSecret>', # Client Secret of Azure Active Directory Application
21
+ subscription_id: '<Subscriptionid>', # Subscription id of an Azure Account
22
+ :environment => '<AzureCloud/AzureChinaCloud/AzureUSGovernment/AzureGermanCloud>' # Azure cloud environment. Default is AzureCloud.
22
23
  )
23
24
  ```
24
25
 
26
+ ## Check Application Gateway Existence
27
+
28
+ ```ruby
29
+ azure_application_gateway_service.gateways.check_application_gateway_exists(<Resource Group name>, <Gateway Name>)
30
+ ```
31
+
25
32
  ## Create Application Gateway
26
33
 
27
34
  Create a new Application Gateway.
@@ -105,6 +112,33 @@ Create a new Application Gateway.
105
112
  )
106
113
  ```
107
114
 
115
+ There can be two ways of giving `frontend_ip_configurations` while creating application gateway
116
+
117
+ 1. When giving public ip, then we need to provide `public_ip_address_id` as follows
118
+
119
+ `frontend_ip_configurations:
120
+ [
121
+ {
122
+ name: 'frontendIpConfig',
123
+ private_ip_allocation_method: 'Dynamic',
124
+ public_ip_address_id: '/subscriptions/<Subscription_id>/resourcegroups/<Resource Group name>/providers/Microsoft.Network/publicIPAddresses/<Public IP Address Name>',
125
+ private_ip_address: '10.0.1.5'
126
+ }
127
+ ]`
128
+
129
+ 2. When giving subnet id, then we need to provide `subnet_id` as follows
130
+
131
+ `frontend_ip_configurations:
132
+ [
133
+ {
134
+ name: 'frontendIpConfig',
135
+ private_ip_allocation_method: 'Dynamic',
136
+ subnet_id: '<Subnet ID',
137
+ private_ip_address: '10.0.1.5'
138
+ }
139
+ ]`
140
+
141
+
108
142
  ## List Application Gateways
109
143
 
110
144
  List all application gateways in a resource group
@@ -17,13 +17,20 @@ Next, create a connection to the Compute Service:
17
17
  ```ruby
18
18
  azure_compute_service = Fog::Compute.new(
19
19
  provider: 'AzureRM',
20
- tenant_id: '<Tenantid>', # Tenant id of Azure Active Directory Application
21
- client_id: '<Clientid>', # Client id of Azure Active Directory Application
22
- client_secret: '<ClientSecret>', # Client Secret of Azure Active Directory Application
23
- subscription_id: '<Subscriptionid>' # Subscription id of an Azure Account
20
+ tenant_id: '<Tenantid>', # Tenant id of Azure Active Directory Application
21
+ client_id: '<Clientid>', # Client id of Azure Active Directory Application
22
+ client_secret: '<ClientSecret>', # Client Secret of Azure Active Directory Application
23
+ subscription_id: '<Subscriptionid>', # Subscription id of an Azure Account
24
+ :environment => '<AzureCloud/AzureChinaCloud/AzureUSGovernment/AzureGermanCloud>' # Azure cloud environment. Default is AzureCloud.
24
25
  )
25
26
  ```
26
27
 
28
+ ## Check Server Existence
29
+
30
+ ```ruby
31
+ azure_compute_service.servers.check_vm_exists(<Resource Group name>, <VM Name>)
32
+ ```
33
+
27
34
  ## Create Server
28
35
 
29
36
  Create a new linux server
@@ -133,6 +140,12 @@ Get a server object from the get method(described above) and then destroy that s
133
140
  server.destroy
134
141
  ```
135
142
 
143
+ ## Check Availability Set Existence
144
+
145
+ ```ruby
146
+ azure_compute_service.availability_sets.check_availability_set_exists(<Resource Group name>, <Availability Set name>)
147
+ ```
148
+
136
149
  ## Create Availability Set
137
150
 
138
151
  Create a new availability set
@@ -175,6 +188,12 @@ Get an availability set object from the get method and then destroy that availab
175
188
  availability_set.destroy
176
189
  ```
177
190
 
191
+ ## Check Virtual Machine Extension Existence
192
+
193
+ ```ruby
194
+ azure_compute_service.virtual_machine_extensions.check_vm_extension_exists(<Resource Group name>, <Virtual Machine Name>, <Extension Name>)
195
+ ```
196
+
178
197
  ## Create Virtual Machine Extension
179
198
 
180
199
  Installs an extension to the specified virtual machine.
@@ -16,12 +16,20 @@ Next, create a connection to the DNS Service:
16
16
 
17
17
  ```ruby
18
18
  azure_dns_service = Fog::DNS::AzureRM.new(
19
- tenant_id: '<Tenantid>', # Tenant id of Azure Active Directory Application
20
- client_id: '<Clientid>', # Client id of Azure Active Directory Application
21
- client_secret: '<ClientSecret>', # Client Secret of Azure Active Directory Application
22
- subscription_id: '<Subscriptionid>' # Subscription id of an Azure Account
19
+ tenant_id: '<Tenantid>', # Tenant id of Azure Active Directory Application
20
+ client_id: '<Clientid>', # Client id of Azure Active Directory Application
21
+ client_secret: '<ClientSecret>', # Client Secret of Azure Active Directory Application
22
+ subscription_id: '<Subscriptionid>', # Subscription id of an Azure Account
23
+ :environment => '<AzureCloud/AzureChinaCloud/AzureUSGovernment/AzureGermanCloud>' # Azure cloud environment. Default is AzureCloud.
23
24
  )
24
25
  ```
26
+
27
+ ## Check Zone Existence
28
+
29
+ ```ruby
30
+ azure_dns_service.zones.check_zone_exists(<Resource Group name>, <Zone name>)
31
+ ```
32
+
25
33
  ## Create Zone
26
34
 
27
35
  Create a new Zone
@@ -60,6 +68,12 @@ Get Zone object from the get method(described above) and then destroy that Zone.
60
68
  zone.destroy
61
69
  ```
62
70
 
71
+ ## Check Record Set Existence
72
+
73
+ ```ruby
74
+ azure_dns_service.record_sets.check_record_set_exists(<Resource Group name>, <Record Set name>, <Zone name>, <Record Type(A/CNAME)>)
75
+ ```
76
+
63
77
  ## Create Record Set
64
78
 
65
79
  Create a new Record Set