fog-azure-rm-temp 0.0.4 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (209) hide show
  1. checksums.yaml +4 -4
  2. data/.arclint +8 -0
  3. data/.travis.yml +28 -14
  4. data/CHANGELOG.md +77 -0
  5. data/CONTRIBUTORS.md +4 -0
  6. data/fog-azure-rm.gemspec +3 -2
  7. data/lib/fog/azurerm.rb +1 -0
  8. data/lib/fog/azurerm/async_response.rb +9 -1
  9. data/lib/fog/azurerm/compute.rb +3 -1
  10. data/lib/fog/azurerm/constants.rb +11 -3
  11. data/lib/fog/azurerm/dns.rb +3 -1
  12. data/lib/fog/azurerm/docs/application_gateway.md +119 -117
  13. data/lib/fog/azurerm/docs/compute.md +299 -202
  14. data/lib/fog/azurerm/docs/dns.md +44 -43
  15. data/lib/fog/azurerm/docs/key_vault.md +31 -28
  16. data/lib/fog/azurerm/docs/network.md +407 -404
  17. data/lib/fog/azurerm/docs/resources.md +52 -49
  18. data/lib/fog/azurerm/docs/sql.md +56 -54
  19. data/lib/fog/azurerm/docs/storage.md +92 -157
  20. data/lib/fog/azurerm/docs/traffic_manager.md +55 -53
  21. data/lib/fog/azurerm/models/application_gateway/gateway.rb +5 -1
  22. data/lib/fog/azurerm/models/compute/availability_set.rb +4 -1
  23. data/lib/fog/azurerm/models/compute/managed_disk.rb +0 -1
  24. data/lib/fog/azurerm/models/compute/server.rb +61 -11
  25. data/lib/fog/azurerm/models/compute/servers.rb +2 -2
  26. data/lib/fog/azurerm/models/dns/a_record.rb +15 -0
  27. data/lib/fog/azurerm/models/dns/cname_record.rb +15 -0
  28. data/lib/fog/azurerm/models/dns/record_set.rb +20 -8
  29. data/lib/fog/azurerm/models/key_vault/vault.rb +3 -1
  30. data/lib/fog/azurerm/models/network/load_balancer.rb +3 -1
  31. data/lib/fog/azurerm/models/network/local_network_gateway.rb +3 -1
  32. data/lib/fog/azurerm/models/network/network_interface.rb +3 -1
  33. data/lib/fog/azurerm/models/network/network_security_group.rb +4 -2
  34. data/lib/fog/azurerm/models/network/public_ip.rb +4 -2
  35. data/lib/fog/azurerm/models/network/virtual_network.rb +4 -2
  36. data/lib/fog/azurerm/models/resources/resource_group.rb +3 -1
  37. data/lib/fog/azurerm/models/sql/sql_database.rb +3 -3
  38. data/lib/fog/azurerm/models/sql/sql_server.rb +3 -2
  39. data/lib/fog/azurerm/models/storage/directories.rb +6 -1
  40. data/lib/fog/azurerm/models/storage/file.rb +2 -0
  41. data/lib/fog/azurerm/models/storage/storage_account.rb +4 -1
  42. data/lib/fog/azurerm/models/storage/storage_accounts.rb +7 -0
  43. data/lib/fog/azurerm/models/traffic_manager/traffic_manager_profile.rb +3 -1
  44. data/lib/fog/azurerm/requests/application_gateway/check_ag_exists.rb +1 -1
  45. data/lib/fog/azurerm/requests/application_gateway/create_or_update_application_gateway.rb +1 -0
  46. data/lib/fog/azurerm/requests/compute/attach_data_disk_to_vm.rb +2 -2
  47. data/lib/fog/azurerm/requests/compute/check_availability_set_exists.rb +1 -1
  48. data/lib/fog/azurerm/requests/compute/check_managed_disk_exists.rb +1 -1
  49. data/lib/fog/azurerm/requests/compute/check_vm_exists.rb +1 -1
  50. data/lib/fog/azurerm/requests/compute/check_vm_extension_exists.rb +2 -2
  51. data/lib/fog/azurerm/requests/compute/create_availability_set.rb +4 -2
  52. data/lib/fog/azurerm/requests/compute/create_image.rb +68 -0
  53. data/lib/fog/azurerm/requests/compute/create_virtual_machine.rb +302 -135
  54. data/lib/fog/azurerm/requests/compute/delete_image.rb +29 -0
  55. data/lib/fog/azurerm/requests/compute/get_image.rb +45 -0
  56. data/lib/fog/azurerm/requests/compute/get_virtual_machine.rb +4 -2
  57. data/lib/fog/azurerm/requests/dns/check_record_set_exists.rb +1 -1
  58. data/lib/fog/azurerm/requests/dns/check_zone_exists.rb +3 -2
  59. data/lib/fog/azurerm/requests/dns/create_or_update_record_set.rb +3 -2
  60. data/lib/fog/azurerm/requests/dns/create_or_update_zone.rb +1 -2
  61. data/lib/fog/azurerm/requests/key_vault/check_vault_exists.rb +1 -1
  62. data/lib/fog/azurerm/requests/key_vault/create_or_update_vault.rb +1 -0
  63. data/lib/fog/azurerm/requests/network/check_express_route_cir_auth_exists.rb +1 -1
  64. data/lib/fog/azurerm/requests/network/check_express_route_circuit_exists.rb +1 -1
  65. data/lib/fog/azurerm/requests/network/check_load_balancer_exists.rb +1 -1
  66. data/lib/fog/azurerm/requests/network/check_local_net_gateway_exists.rb +1 -1
  67. data/lib/fog/azurerm/requests/network/check_net_sec_group_exists.rb +1 -1
  68. data/lib/fog/azurerm/requests/network/check_net_sec_rule_exists.rb +1 -1
  69. data/lib/fog/azurerm/requests/network/check_network_interface_exists.rb +1 -1
  70. data/lib/fog/azurerm/requests/network/check_public_ip_exists.rb +1 -1
  71. data/lib/fog/azurerm/requests/network/check_subnet_exists.rb +1 -1
  72. data/lib/fog/azurerm/requests/network/check_virtual_network_exists.rb +1 -1
  73. data/lib/fog/azurerm/requests/network/check_vnet_gateway_connection_exists.rb +1 -1
  74. data/lib/fog/azurerm/requests/network/check_vnet_gateway_exists.rb +1 -1
  75. data/lib/fog/azurerm/requests/network/create_load_balancer.rb +4 -4
  76. data/lib/fog/azurerm/requests/network/create_or_update_express_route_circuit.rb +1 -1
  77. data/lib/fog/azurerm/requests/network/create_or_update_local_network_gateway.rb +1 -2
  78. data/lib/fog/azurerm/requests/network/create_or_update_network_interface.rb +4 -3
  79. data/lib/fog/azurerm/requests/network/create_or_update_network_security_group.rb +4 -3
  80. data/lib/fog/azurerm/requests/network/create_or_update_public_ip.rb +5 -3
  81. data/lib/fog/azurerm/requests/network/create_or_update_virtual_network.rb +4 -3
  82. data/lib/fog/azurerm/requests/network/create_or_update_virtual_network_gateway_connection.rb +1 -1
  83. data/lib/fog/azurerm/requests/resources/check_azure_resource_exists.rb +4 -4
  84. data/lib/fog/azurerm/requests/resources/create_resource_group.rb +2 -1
  85. data/lib/fog/azurerm/requests/resources/delete_resource_tag.rb +4 -4
  86. data/lib/fog/azurerm/requests/resources/tag_resource.rb +4 -4
  87. data/lib/fog/azurerm/requests/sql/create_or_update_database.rb +13 -10
  88. data/lib/fog/azurerm/requests/sql/create_or_update_sql_server.rb +8 -5
  89. data/lib/fog/azurerm/requests/storage/check_storage_account_exists.rb +1 -1
  90. data/lib/fog/azurerm/requests/storage/create_storage_account.rb +4 -2
  91. data/lib/fog/azurerm/requests/traffic_manager/check_traffic_manager_endpoint_exists.rb +1 -1
  92. data/lib/fog/azurerm/requests/traffic_manager/check_traffic_manager_profile_exists.rb +1 -1
  93. data/lib/fog/azurerm/requests/traffic_manager/create_or_update_traffic_manager_profile.rb +13 -3
  94. data/lib/fog/azurerm/storage.rb +0 -18
  95. data/lib/fog/azurerm/utilities/general.rb +21 -10
  96. data/lib/fog/azurerm/version.rb +1 -1
  97. data/rake-script.sh +7 -1
  98. data/rakefile +1 -1
  99. data/test/api_stub.rb +19 -2
  100. data/test/api_stub/models/compute/server.rb +21 -5
  101. data/test/api_stub/requests/compute/image.rb +41 -0
  102. data/test/api_stub/requests/compute/virtual_machine.rb +60 -62
  103. data/test/api_stub/requests/resources/resource_group.rb +1 -1
  104. data/test/integration/application_gateway.rb +8 -1
  105. data/test/integration/availability_set.rb +9 -2
  106. data/test/integration/external_load_balancer.rb +2 -1
  107. data/test/integration/internal_load_balancer.rb +2 -1
  108. data/test/integration/key_vault.rb +2 -1
  109. data/test/integration/managed_disk.rb +10 -5
  110. data/test/integration/network_interface.rb +2 -1
  111. data/test/integration/network_security_group.rb +2 -1
  112. data/test/integration/public_ip.rb +2 -1
  113. data/test/integration/record_set.rb +5 -5
  114. data/test/integration/resource_group.rb +5 -2
  115. data/test/integration/resource_tag.rb +4 -2
  116. data/test/integration/server.rb +113 -23
  117. data/test/integration/server_custom_image.rb +120 -20
  118. data/test/integration/sql_server.rb +10 -2
  119. data/test/integration/storage_account.rb +32 -20
  120. data/test/integration/traffic_manager.rb +6 -1
  121. data/test/integration/virtual_network.rb +2 -1
  122. data/test/integration/virtual_network_gateway_connection.rb +3 -3
  123. data/test/models/application_gateway/test_gateway.rb +2 -1
  124. data/test/models/compute/test_availability_set.rb +2 -1
  125. data/test/models/compute/test_managed_disk.rb +2 -1
  126. data/test/models/compute/test_server.rb +13 -4
  127. data/test/models/dns/test_zone.rb +2 -1
  128. data/test/models/key_vault/test_vault.rb +2 -1
  129. data/test/models/network/test_load_balancer.rb +2 -1
  130. data/test/models/network/test_network_interface.rb +2 -1
  131. data/test/models/network/test_network_security_group.rb +2 -1
  132. data/test/models/network/test_public_ip.rb +2 -1
  133. data/test/models/network/test_virtual_network.rb +2 -1
  134. data/test/models/resources/test_resource_group.rb +2 -1
  135. data/test/models/sql/test_database.rb +2 -1
  136. data/test/models/sql/test_sql_server.rb +2 -1
  137. data/test/models/storage/test_storage_account.rb +2 -1
  138. data/test/models/traffic_manager/test_traffic_manager_profile.rb +2 -1
  139. data/test/requests/application_gateway/test_check_ag_exists.rb +11 -4
  140. data/test/requests/compute/test_attach_data_disk_to_vm.rb +2 -2
  141. data/test/requests/compute/test_check_availability_set_exists.rb +9 -2
  142. data/test/requests/compute/test_check_managed_disk_exists.rb +9 -2
  143. data/test/requests/compute/test_check_vm_exists.rb +9 -2
  144. data/test/requests/compute/test_check_vm_extension_exists.rb +9 -2
  145. data/test/requests/compute/test_create_image.rb +27 -0
  146. data/test/requests/compute/test_create_virtual_machine.rb +41 -17
  147. data/test/requests/compute/test_delete_image.rb +23 -0
  148. data/test/requests/compute/test_get_image.rb +23 -0
  149. data/test/requests/dns/test_check_record_set_exists.rb +9 -2
  150. data/test/requests/dns/test_check_zone_exists.rb +16 -2
  151. data/test/requests/key_vault/test_check_vault_exists.rb +9 -2
  152. data/test/requests/network/test_check_express_route_cir_auth_exists.rb +9 -2
  153. data/test/requests/network/test_check_express_route_circuit_exists.rb +9 -2
  154. data/test/requests/network/test_check_load_balancer_exists.rb +9 -2
  155. data/test/requests/network/test_check_local_net_gateway_exists.rb +11 -4
  156. data/test/requests/network/test_check_net_sec_group_exists.rb +9 -2
  157. data/test/requests/network/test_check_net_sec_rule_exists.rb +9 -2
  158. data/test/requests/network/test_check_network_interface_exists.rb +9 -2
  159. data/test/requests/network/test_check_public_ip_exists.rb +9 -2
  160. data/test/requests/network/test_check_subnet_exists.rb +9 -2
  161. data/test/requests/network/test_check_virtual_network_exists.rb +10 -4
  162. data/test/requests/network/test_check_vnet_gateway_connection_exists.rb +9 -2
  163. data/test/requests/network/test_check_vnet_gateway_exists.rb +9 -2
  164. data/test/requests/network/test_create_load_balancer.rb +3 -2
  165. data/test/requests/network/test_create_network_interface.rb +4 -3
  166. data/test/requests/network/test_create_or_update_network_security_group.rb +3 -2
  167. data/test/requests/network/test_create_or_update_virtual_network.rb +5 -3
  168. data/test/requests/network/test_create_public_ip.rb +3 -2
  169. data/test/requests/network/test_update_public_ip.rb +3 -2
  170. data/test/requests/resources/test_create_resource_group.rb +3 -2
  171. data/test/requests/resources/test_delete_resource_tag.rb +3 -3
  172. data/test/requests/resources/test_tag_resource.rb +3 -3
  173. data/test/requests/storage/test_check_storage_account_exists.rb +8 -1
  174. data/test/requests/traffic_manager/test_check_traffic_manager_endpoint_exists.rb +9 -2
  175. data/test/requests/traffic_manager/test_check_traffic_manager_profile_exists.rb +9 -2
  176. data/test/test_helper.rb +5 -14
  177. metadata +67 -75
  178. data/lib/fog/azurerm/models/storage/recovery_vault.rb +0 -50
  179. data/lib/fog/azurerm/models/storage/recovery_vaults.rb +0 -27
  180. data/lib/fog/azurerm/requests/storage/create_or_update_recovery_vault.rb +0 -54
  181. data/lib/fog/azurerm/requests/storage/delete_recovery_vault.rb +0 -35
  182. data/lib/fog/azurerm/requests/storage/disable_backup_protection.rb +0 -60
  183. data/lib/fog/azurerm/requests/storage/enable_backup_protection.rb +0 -61
  184. data/lib/fog/azurerm/requests/storage/get_all_backup_jobs.rb +0 -56
  185. data/lib/fog/azurerm/requests/storage/get_backup_container.rb +0 -53
  186. data/lib/fog/azurerm/requests/storage/get_backup_item.rb +0 -58
  187. data/lib/fog/azurerm/requests/storage/get_backup_job_for_vm.rb +0 -53
  188. data/lib/fog/azurerm/requests/storage/get_backup_protection_policy.rb +0 -64
  189. data/lib/fog/azurerm/requests/storage/get_recovery_vault.rb +0 -49
  190. data/lib/fog/azurerm/requests/storage/list_recovery_vaults.rb +0 -48
  191. data/lib/fog/azurerm/requests/storage/set_recovery_vault_context.rb +0 -36
  192. data/lib/fog/azurerm/requests/storage/start_backup.rb +0 -54
  193. data/test/api_stub/models/storage/recovery_vault.rb +0 -23
  194. data/test/api_stub/requests/storage/recovery_vault.rb +0 -189
  195. data/test/models/storage/test_recovery_vault.rb +0 -61
  196. data/test/models/storage/test_recovery_vaults.rb +0 -47
  197. data/test/requests/storage/test_create_recovery_vault.rb +0 -35
  198. data/test/requests/storage/test_delete_recovery_vault.rb +0 -34
  199. data/test/requests/storage/test_disable_backup_protection.rb +0 -52
  200. data/test/requests/storage/test_enable_backup_protection.rb +0 -66
  201. data/test/requests/storage/test_get_all_backup_jobs.rb +0 -35
  202. data/test/requests/storage/test_get_backup_container.rb +0 -35
  203. data/test/requests/storage/test_get_backup_item.rb +0 -35
  204. data/test/requests/storage/test_get_backup_job_for_vm.rb +0 -26
  205. data/test/requests/storage/test_get_backup_protection_policy.rb +0 -35
  206. data/test/requests/storage/test_get_recovery_vault.rb +0 -35
  207. data/test/requests/storage/test_list_recovery_vault.rb +0 -35
  208. data/test/requests/storage/test_set_recovery_vault_context.rb +0 -34
  209. data/test/requests/storage/test_start_backup.rb +0 -55
@@ -1,53 +0,0 @@
1
- module Fog
2
- module Storage
3
- class AzureRM
4
- # Real class for Recovery Vault request
5
- class Real
6
- def get_backup_job_for_vm(rv_name, rv_resource_group, vm_name, vm_resource_group, operation)
7
- msg = "Getting backup job for VM #{vm_name} in Resource Group #{vm_resource_group}"
8
- Fog::Logger.debug msg
9
-
10
- backup_jobs = get_all_backup_jobs(rv_name, rv_resource_group)
11
- backup_jobs = backup_jobs.select do |job|
12
- (job['properties']['status'].eql? 'InProgress') &&
13
- (job['properties']['entityFriendlyName'].eql? vm_name.downcase) &&
14
- (job['properties']['operation'].eql? operation)
15
- end
16
-
17
- backup_jobs[0]
18
- end
19
- end
20
-
21
- # Mock class for Recovery Vault request
22
- class Mock
23
- def get_backup_job_for_vm(*)
24
- body = '{
25
- "id": "/subscriptions/########-####-####-####-############/resourceGroups/fog-test-rg/providers/Microsoft.RecoveryServices/vaults/fog-test-vault/backupJobs/########-####-####-####-############",
26
- "name": "########-####-####-####-############",
27
- "type": "Microsoft.RecoveryServices/vaults/backupJobs",
28
- "properties": {
29
- "jobType": "AzureIaaSVMJob",
30
- "duration": "00:00:52.3309441",
31
- "virtualMachineVersion": "Compute",
32
- "extendedInfo": {
33
- "tasksList": [],
34
- "propertyBag": {
35
- "VM Name": "fog-test-vm",
36
- "Policy Name": "DefaultPolicy"
37
- }
38
- },
39
- "entityFriendlyName": "fog-test-vm",
40
- "backupManagementType": "AzureIaasVM",
41
- "operation": "ConfigureBackup",
42
- "status": "Completed",
43
- "startTime": "2016-10-13T09:55:49.1168243Z",
44
- "endTime": "2016-10-13T09:56:41.4477684Z",
45
- "activityId": "383f05d9-a4bf-4b95-bb41-d39849b3a86e-2016-10-13 09:55:53Z-PS"
46
- }
47
- }'
48
- Fog::JSON.decode(body)
49
- end
50
- end
51
- end
52
- end
53
- end
@@ -1,64 +0,0 @@
1
- module Fog
2
- module Storage
3
- class AzureRM
4
- # Real class for Recovery Vault request
5
- class Real
6
- def get_backup_protection_policy(resource_group, name)
7
- msg = "Get backup protection policy from Resource Group #{resource_group}"
8
- Fog::Logger.debug msg
9
-
10
- resource_url = "#{AZURE_RESOURCE}/subscriptions/#{@subscription_id}/resourceGroups/#{resource_group}/providers/Microsoft.RecoveryServices/vaults/#{name}/backupPolicies?api-version=#{REST_CLIENT_API_VERSION[1]}&$filter=backupManagementType eq 'AzureIaasVM'"
11
- begin
12
- token = Fog::Credentials::AzureRM.get_token(@tenant_id, @client_id, @client_secret)
13
- response = RestClient.get(
14
- resource_url,
15
- accept: 'application/json',
16
- content_type: 'application/json',
17
- authorization: token
18
- )
19
- rescue RestClient::Exception => e
20
- raise_azure_exception(e, msg)
21
- end
22
- Fog::Logger.debug "Successfully retrieved backup protection policy from Resource Group #{resource_group}"
23
- Fog::JSON.decode(response)['value']
24
- end
25
- end
26
-
27
- # Mock class for Recovery Vault request
28
- class Mock
29
- body = '{
30
- "value": [{
31
- "id": "/subscriptions/########-####-####-####-############/resourceGroups/fog-test-rg/providers/Microsoft.RecoveryServices/vaults/fog-test-vault/backupPolicies/DefaultPolicy",
32
- "name": "DefaultPolicy",
33
- "type": "Microsoft.RecoveryServices/vaults/backupPolicies",
34
- "properties": {
35
- "backupManagementType": "AzureIaasVM",
36
- "schedulePolicy": {
37
- "schedulePolicyType": "SimpleSchedulePolicy",
38
- "scheduleRunFrequency": "Daily",
39
- "scheduleRunTimes": [
40
- "2016-10-13T19:30:00Z"
41
- ],
42
- "scheduleWeeklyFrequency": 0
43
- },
44
- "retentionPolicy": {
45
- "retentionPolicyType": "LongTermRetentionPolicy",
46
- "dailySchedule": {
47
- "retentionTimes": [
48
- "2016-10-13T19:30:00Z"
49
- ],
50
- "retentionDuration": {
51
- "count": 30,
52
- "durationType": "Days"
53
- }
54
- }
55
- },
56
- "protectedItemsCount": 0
57
- }
58
- }]
59
- }'
60
- Fog::JSON.decode(body)['value']
61
- end
62
- end
63
- end
64
- end
@@ -1,49 +0,0 @@
1
- module Fog
2
- module Storage
3
- class AzureRM
4
- # Real class for Recovery Vault request
5
- class Real
6
- def get_recovery_vault(resource_group, name)
7
- msg = "Retrieving Recovery Vault #{name} from Resource Group #{resource_group}"
8
- Fog::Logger.debug msg
9
- resource_url = "#{AZURE_RESOURCE}/subscriptions/#{@subscription_id}/resourceGroups/#{resource_group}/providers/Microsoft.RecoveryServices/vaults?api-version=#{REST_CLIENT_API_VERSION[1]}"
10
- begin
11
- token = Fog::Credentials::AzureRM.get_token(@tenant_id, @client_id, @client_secret)
12
- recovery_vault_response = RestClient.get(
13
- resource_url,
14
- accept: 'application/json',
15
- content_type: 'application/json',
16
- authorization: token
17
- )
18
- rescue RestClient::Exception => e
19
- raise_azure_exception(e, msg)
20
- end
21
- Fog::Logger.debug "Recovery Vault #{name} from Resource Group #{resource_group} retrieved successfully"
22
- recovery_vault = Fog::JSON.decode(recovery_vault_response)['value']
23
- recovery_vault.select { |vault| vault['name'].eql? name }[0]
24
- end
25
- end
26
-
27
- # Mock class for Recovery Vault request
28
- class Mock
29
- def get_recovery_vault(*)
30
- body = '{
31
- "value": [{
32
- "location": "westus",
33
- "name": "fog-test-vault",
34
- "properties": {
35
- "provisioningState": "Succeeded"
36
- },
37
- "id": "/subscriptions/########-####-####-####-############/resourceGroups/fog-test-rg/providers/Microsoft.RecoveryServices/vaults/fog-test-vault",
38
- "type": "Microsoft.RecoveryServices/vaults",
39
- "sku": {
40
- "name": "standard"
41
- }
42
- }]
43
- }'
44
- Fog::JSON.decode(body)['value'][0]
45
- end
46
- end
47
- end
48
- end
49
- end
@@ -1,48 +0,0 @@
1
- module Fog
2
- module Storage
3
- class AzureRM
4
- # Real class for Recovery Vault request
5
- class Real
6
- def list_recovery_vaults(resource_group)
7
- msg = "Listing Recovery Vaults in Resource Group #{resource_group}"
8
- Fog::Logger.debug msg
9
- resource_url = "#{AZURE_RESOURCE}/subscriptions/#{@subscription_id}/resourceGroups/#{resource_group}/providers/Microsoft.RecoveryServices/vaults?api-version=#{REST_CLIENT_API_VERSION[1]}"
10
- begin
11
- token = Fog::Credentials::AzureRM.get_token(@tenant_id, @client_id, @client_secret)
12
- recovery_vaults_response = RestClient.get(
13
- resource_url,
14
- accept: 'application/json',
15
- content_type: 'application/json',
16
- authorization: token
17
- )
18
- rescue RestClient::Exception => e
19
- raise_azure_exception(e, msg)
20
- end
21
- Fog::Logger.debug "Recovery Vaults in Resource Group #{resource_group} listed successfully"
22
- Fog::JSON.decode(recovery_vaults_response)['value']
23
- end
24
- end
25
-
26
- # Mock class for Recovery Vault Request
27
- class Mock
28
- def list_recovery_vaults(*)
29
- body = '{
30
- "value": [{
31
- "location": "westus",
32
- "name": "fog-test-vault",
33
- "properties": {
34
- "provisioningState": "Succeeded"
35
- },
36
- "id": "/subscriptions/########-####-####-####-############/resourceGroups/fog-test-rg/providers/Microsoft.RecoveryServices/vaults/fog-test-vault",
37
- "type": "Microsoft.RecoveryServices/vaults",
38
- "sku": {
39
- "name": "standard"
40
- }
41
- }]
42
- }'
43
- Fog::JSON.decode(body)['value']
44
- end
45
- end
46
- end
47
- end
48
- end
@@ -1,36 +0,0 @@
1
- module Fog
2
- module Storage
3
- class AzureRM
4
- # Real class for Recovery Vault request
5
- class Real
6
- def set_recovery_vault_context(resource_group, name)
7
- msg = "Set context for Recovery Vault #{name}"
8
- Fog::Logger.debug msg
9
-
10
- resource_url = "#{AZURE_RESOURCE}/subscriptions/#{@subscription_id}/resourceGroups/#{resource_group}/providers/Microsoft.RecoveryServices/vaults/#{name}?api-version=#{REST_CLIENT_API_VERSION[1]}"
11
- begin
12
- token = Fog::Credentials::AzureRM.get_token(@tenant_id, @client_id, @client_secret)
13
- RestClient.get(
14
- resource_url,
15
- accept: 'application/json',
16
- content_type: 'application/json',
17
- authorization: token
18
- )
19
- rescue RestClient::Exception => e
20
- raise_azure_exception(e, msg)
21
- end
22
- Fog::Logger.debug "Successfully set context for Recovery Vault #{name}"
23
- true
24
- end
25
- end
26
-
27
- # Mock class for Recovery Vault request
28
- class Mock
29
- def set_recovery_vault_context(*)
30
- Fog::Logger.debug 'Successfully set context for Recovery Vault {name}'
31
- true
32
- end
33
- end
34
- end
35
- end
36
- end
@@ -1,54 +0,0 @@
1
- IAAS_VM_BACKUP_REQUEST = 'IaasVMBackupRequest'.freeze
2
-
3
- module Fog
4
- module Storage
5
- class AzureRM
6
- # Real class for Recovery Vault request
7
- class Real
8
- def start_backup(resource_group, name, vm_name, vm_resource_group)
9
- msg = "Starting backup for VM #{vm_name}"
10
- Fog::Logger.debug msg
11
-
12
- job = get_backup_job_for_vm(name, resource_group, vm_name, vm_resource_group, 'Backup')
13
-
14
- unless job.nil?
15
- Fog::Logger.debug "Backup already in progress for VM #{vm_name} in Recovery Vault #{name}"
16
- return false
17
- end
18
-
19
- backup_items = get_backup_item(resource_group, name)
20
- backup_item = backup_items.select { |item| (item['properties']['friendlyName'].eql? vm_name.downcase) && (vm_resource_group.eql? get_resource_group_from_id(item['properties']['virtualMachineId'])) }[0]
21
-
22
- resource_url = "#{AZURE_RESOURCE}/subscriptions/#{@subscription_id}/resourceGroups/#{resource_group}/providers/Microsoft.RecoveryServices/vaults/#{name}/backupFabrics/Azure/protectionContainers/iaasvmcontainer;#{backup_item['name']}/protectedItems/vm;#{backup_item['name']}/backup?api-version=#{REST_CLIENT_API_VERSION[1]}"
23
- body = {
24
- properties: {
25
- objectType: IAAS_VM_BACKUP_REQUEST
26
- }
27
- }
28
- begin
29
- token = Fog::Credentials::AzureRM.get_token(@tenant_id, @client_id, @client_secret)
30
- RestClient.post(
31
- resource_url,
32
- body.to_json,
33
- accept: 'application/json',
34
- content_type: 'application/json',
35
- authorization: token
36
- )
37
- rescue RestClient::Exception => e
38
- raise_azure_exception(e, msg)
39
- end
40
- Fog::Logger.debug "Successfully started backup for VM #{vm_name} in Recovery Vault #{name}"
41
- true
42
- end
43
- end
44
-
45
- # Mock class for Recovery Vault request
46
- class Mock
47
- def start_backup(*)
48
- Fog::Logger.debug 'Successfully started backup for VM {vm_name} in Recovery Vault {name}'
49
- true
50
- end
51
- end
52
- end
53
- end
54
- end
@@ -1,23 +0,0 @@
1
- module ApiStub
2
- module Models
3
- module Storage
4
- # Mock class for Recovery Vault model
5
- class RecoveryVault
6
- def self.create_method_response
7
- {
8
- 'id' => '/subscriptions/#{67f2116d}#######-####-####-####-############/resourceGroups/fog-test-rg/providers/Microsoft.RecoveryServices/vaults/fog-test-vault',
9
- 'location' => 'westus',
10
- 'name' => 'fog-test-vault',
11
- 'properties' => {
12
- 'provisioningState' => 'Succeeded'
13
- },
14
- 'type' => 'Microsoft.RecoveryServices/vaults',
15
- 'sku' => {
16
- 'name' => 'standard'
17
- }
18
- }
19
- end
20
- end
21
- end
22
- end
23
- end
@@ -1,189 +0,0 @@
1
- module ApiStub
2
- module Requests
3
- module Storage
4
- # Mock class for RecoveryVault request
5
- class RecoveryVault
6
- def self.create_recovery_vault_response
7
- '{
8
- "location": "westus",
9
- "name": "fog-test-vault",
10
- "properties": {
11
- "provisioningState": "Succeeded"
12
- },
13
- "id": "/subscriptions/########-####-####-####-############/resourceGroups/fog-test-rg/providers/Microsoft.RecoveryServices/vaults/fog-test-vault",
14
- "type": "Microsoft.RecoveryServices\/vaults",
15
- "sku": {
16
- "name": "standard"
17
- }
18
- }'
19
- end
20
-
21
- def self.get_recovery_vault_response
22
- '{
23
- "value": [{
24
- "location": "westus",
25
- "name": "fog-test-vault",
26
- "properties": {
27
- "provisioningState": "Succeeded"
28
- },
29
- "id": "/subscriptions/########-####-####-####-############/resourceGroups/fog-test-rg/providers/Microsoft.RecoveryServices/vaults/fog-test-vault",
30
- "type": "Microsoft.RecoveryServices/vaults",
31
- "sku": {
32
- "name": "standard"
33
- }
34
- }]
35
- }'
36
- end
37
-
38
- def self.get_all_backup_jobs_response
39
- '{
40
- "value": [{
41
- "id": "/subscriptions/########-####-####-####-############/resourceGroups/fog-test-rg/providers/Microsoft.RecoveryServices/vaults/fog-test-vault/backupJobs/########-####-####-####-############",
42
- "name": "########-####-####-####-############",
43
- "type": "Microsoft.RecoveryServices/vaults/backupJobs",
44
- "properties": {
45
- "jobType": "AzureIaaSVMJob",
46
- "duration": "XX:XX:XX.XXXXXXX",
47
- "actionsInfo": [
48
- 1
49
- ],
50
- "virtualMachineVersion": "Compute",
51
- "entityFriendlyName": "fog-test-vm",
52
- "backupManagementType": "AzureIaasVM",
53
- "operation": "Backup",
54
- "status": "InProgress",
55
- "startTime": "2016-10-19T07:49:31.1466534Z",
56
- "activityId": "########-####-####-####-############"
57
- }
58
- }]
59
- }'
60
- end
61
-
62
- def self.get_backup_container_response
63
- '{
64
- "value": [{
65
- "id": "/subscriptions/########-####-####-####-############/resourceGroups/fog-test-rg/providers/Microsoft.RecoveryServices/vaults/fog-test-vault/backupFabrics/Azure/protectionContainers/IaasVMContainer;iaasvmcontainerv2;fog-test-vm-rg;fog-test-vm",
66
- "name": "IaasVMContainer;iaasvmcontainerv2;fog-test-vm-rg;fog-test-vm",
67
- "type": "Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers",
68
- "properties": {
69
- "virtualMachineId": "/subscriptions/########-####-####-####-############/resourceGroups/TestRG/providers/Microsoft.Compute/virtualMachines/TestVM",
70
- "virtualMachineVersion": "Compute",
71
- "resourceGroup": "fog-test-vm-rg",
72
- "friendlyName": "fog-test-vm",
73
- "backupManagementType": "AzureIaasVM",
74
- "registrationStatus": "Registered",
75
- "healthStatus": "Healthy",
76
- "containerType": "Microsoft.Compute/virtualMachines",
77
- "protectableObjectType": "Microsoft.Compute/virtualMachines"
78
- }
79
- }]
80
- }'
81
- end
82
-
83
- def self.get_backup_item_response
84
- '{
85
- "value": [{
86
- "id": "/Subscriptions/########-####-####-####-############/resourceGroups/fog-test-rg/providers/Microsoft.RecoveryServices/vaults/fog-test-vault/backupFabrics/Azure/protectionContainers/IaasVMContainer;iaasvmcontainerv2;testrg;testvm/protectedItems/VM;fog-test-container-name",
87
- "name": "iaasvmcontainerv2;fog-test-vm-rg;fog-test-vm",
88
- "type": "Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers/protectedItems",
89
- "properties": {
90
- "friendlyName": "fog-test-vm",
91
- "virtualMachineId": "/subscriptions/########-####-####-####-############/resourceGroups/fog-test-vm-rg/providers/Microsoft.Compute/virtualMachines/fog-test-vm",
92
- "protectionStatus": "Healthy",
93
- "protectionState": "Protected",
94
- "lastBackupStatus": "Completed",
95
- "lastBackupTime": "2016-10-17T10:30:47.2289274Z",
96
- "protectedItemType": "Microsoft.Compute/virtualMachines",
97
- "backupManagementType": "AzureIaasVM",
98
- "workloadType": "VM",
99
- "containerName": "iaasvmcontainerv2;fog-test-vm-rg;fog-test-vm",
100
- "sourceResourceId": "/subscriptions/########-####-####-####-############/resourceGroups/fog-test-vm-rg/providers/Microsoft.Compute/virtualMachines/fog-test-vm",
101
- "policyId": "/subscriptions/########-####-####-####-############/resourceGroups/fog-test-rg/providers/Microsoft.RecoveryServices/vaults/fog-test-vault/backupPolicies/DefaultPolicy",
102
- "policyName": "DefaultPolicy",
103
- "lastRecoveryPoint": "2016-10-17T10:32:38.4666692Z"
104
- }
105
- }]
106
- }'
107
- end
108
-
109
- def self.list_recovery_vault_response
110
- '{
111
- "value": [{
112
- "location": "westus",
113
- "name": "fog-test-vault",
114
- "properties": {
115
- "provisioningState": "Succeeded"
116
- },
117
- "id": "/subscriptions/########-####-####-####-############/resourceGroups/fog-test-vault/providers/Microsoft.RecoveryServices/vaults/fog-test-vault",
118
- "type": "Microsoft.RecoveryServices/vaults",
119
- "sku": {
120
- "name": "standard"
121
- }
122
- }]
123
- }'
124
- end
125
-
126
- def self.get_backup_protection_policy_response
127
- '{
128
- "value": [{
129
- "id": "/subscriptions/########-####-####-####-############/resourceGroups/fog-test-rg/providers/Microsoft.RecoveryServices/vaults/fog-test-vault/backupPolicies/DefaultPolicy",
130
- "name": "DefaultPolicy",
131
- "type": "Microsoft.RecoveryServices/vaults/backupPolicies",
132
- "properties": {
133
- "backupManagementType": "AzureIaasVM",
134
- "schedulePolicy": {
135
- "schedulePolicyType": "SimpleSchedulePolicy",
136
- "scheduleRunFrequency": "Daily",
137
- "scheduleRunTimes": [
138
- "2016-10-13T19:30:00Z"
139
- ],
140
- "scheduleWeeklyFrequency": 0
141
- },
142
- "retentionPolicy": {
143
- "retentionPolicyType": "LongTermRetentionPolicy",
144
- "dailySchedule": {
145
- "retentionTimes": [
146
- "2016-10-13T19:30:00Z"
147
- ],
148
- "retentionDuration": {
149
- "count": 30,
150
- "durationType": "Days"
151
- }
152
- }
153
- },
154
- "protectedItemsCount": 0
155
- }
156
- }]
157
- }'
158
- end
159
-
160
- def self.get_backup_job_for_vm_response
161
- '{
162
- "id": "/subscriptions/########-####-####-####-############/resourceGroups/fog-test-rg/providers/Microsoft.RecoveryServices/vaults/fog-test-vault/backupJobs/########-####-####-####-############",
163
- "name": "########-####-####-####-############",
164
- "type": "Microsoft.RecoveryServices/vaults/backupJobs",
165
- "properties": {
166
- "jobType": "AzureIaaSVMJob",
167
- "duration": "00:00:52.3309441",
168
- "virtualMachineVersion": "Compute",
169
- "extendedInfo": {
170
- "tasksList": [],
171
- "propertyBag": {
172
- "VM Name": "fog-test-vm",
173
- "Policy Name": "DefaultPolicy"
174
- }
175
- },
176
- "entityFriendlyName": "fog-test-vm",
177
- "backupManagementType": "AzureIaasVM",
178
- "operation": "ConfigureBackup",
179
- "status": "Completed",
180
- "startTime": "2016-10-13T09:55:49.1168243Z",
181
- "endTime": "2016-10-13T09:56:41.4477684Z",
182
- "activityId": "383f05d9-a4bf-4b95-bb41-d39849b3a86e-2016-10-13 09:55:53Z-PS"
183
- }
184
- }'
185
- end
186
- end
187
- end
188
- end
189
- end