fog-azure-rm-temp 0.0.3 → 0.0.4

Sign up to get free protection for your applications and to get access to all the features.
Files changed (55) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +0 -5
  3. data/fog-azure-rm.gemspec +1 -1
  4. data/lib/fog/azurerm/compute.rb +2 -0
  5. data/lib/fog/azurerm/docs/storage.md +66 -0
  6. data/lib/fog/azurerm/models/compute/creation_data.rb +4 -2
  7. data/lib/fog/azurerm/models/compute/data_disk.rb +26 -0
  8. data/lib/fog/azurerm/models/compute/managed_disk.rb +5 -4
  9. data/lib/fog/azurerm/models/compute/server.rb +24 -3
  10. data/lib/fog/azurerm/models/storage/recovery_vault.rb +50 -0
  11. data/lib/fog/azurerm/models/storage/recovery_vaults.rb +27 -0
  12. data/lib/fog/azurerm/requests/compute/attach_data_disk_to_vm.rb +49 -13
  13. data/lib/fog/azurerm/requests/compute/detach_data_disk_from_vm.rb +1 -2
  14. data/lib/fog/azurerm/requests/storage/create_or_update_recovery_vault.rb +54 -0
  15. data/lib/fog/azurerm/requests/storage/delete_recovery_vault.rb +35 -0
  16. data/lib/fog/azurerm/requests/storage/disable_backup_protection.rb +60 -0
  17. data/lib/fog/azurerm/requests/storage/enable_backup_protection.rb +61 -0
  18. data/lib/fog/azurerm/requests/storage/get_all_backup_jobs.rb +56 -0
  19. data/lib/fog/azurerm/requests/storage/get_backup_container.rb +53 -0
  20. data/lib/fog/azurerm/requests/storage/get_backup_item.rb +58 -0
  21. data/lib/fog/azurerm/requests/storage/get_backup_job_for_vm.rb +53 -0
  22. data/lib/fog/azurerm/requests/storage/get_backup_protection_policy.rb +64 -0
  23. data/lib/fog/azurerm/requests/storage/get_recovery_vault.rb +49 -0
  24. data/lib/fog/azurerm/requests/storage/list_recovery_vaults.rb +48 -0
  25. data/lib/fog/azurerm/requests/storage/set_recovery_vault_context.rb +36 -0
  26. data/lib/fog/azurerm/requests/storage/start_backup.rb +54 -0
  27. data/lib/fog/azurerm/storage.rb +18 -1
  28. data/lib/fog/azurerm/version.rb +1 -1
  29. data/test/api_stub.rb +2 -0
  30. data/test/api_stub/models/compute/server.rb +62 -0
  31. data/test/api_stub/models/storage/recovery_vault.rb +23 -0
  32. data/test/api_stub/requests/compute/virtual_machine.rb +77 -0
  33. data/test/api_stub/requests/storage/recovery_vault.rb +189 -0
  34. data/test/models/{storage → compute}/test_data_disk.rb +2 -2
  35. data/test/models/compute/test_server.rb +27 -1
  36. data/test/models/storage/test_recovery_vault.rb +61 -0
  37. data/test/models/storage/test_recovery_vaults.rb +47 -0
  38. data/test/requests/compute/test_attach_data_disk_to_vm.rb +21 -6
  39. data/test/requests/storage/test_create_recovery_vault.rb +35 -0
  40. data/test/requests/storage/test_delete_recovery_vault.rb +34 -0
  41. data/test/requests/storage/test_disable_backup_protection.rb +52 -0
  42. data/test/requests/storage/test_enable_backup_protection.rb +66 -0
  43. data/test/requests/storage/test_get_all_backup_jobs.rb +35 -0
  44. data/test/requests/storage/test_get_backup_container.rb +35 -0
  45. data/test/requests/storage/test_get_backup_item.rb +35 -0
  46. data/test/requests/storage/test_get_backup_job_for_vm.rb +26 -0
  47. data/test/requests/storage/test_get_backup_protection_policy.rb +35 -0
  48. data/test/requests/storage/test_get_recovery_vault.rb +35 -0
  49. data/test/requests/storage/test_list_recovery_vault.rb +35 -0
  50. data/test/requests/storage/test_set_recovery_vault_context.rb +34 -0
  51. data/test/requests/storage/test_start_backup.rb +55 -0
  52. data/test/test_helper.rb +14 -0
  53. metadata +38 -13
  54. data/.arclint +0 -8
  55. data/lib/fog/azurerm/models/storage/data_disk.rb +0 -27
@@ -0,0 +1,49 @@
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
@@ -0,0 +1,48 @@
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
@@ -0,0 +1,36 @@
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
@@ -0,0 +1,54 @@
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
@@ -64,14 +64,31 @@ module Fog
64
64
  request :save_page_blob
65
65
  request :multipart_save_block_blob
66
66
 
67
+ # Azure Recovery Vault requests
68
+ request :create_or_update_recovery_vault
69
+ request :get_recovery_vault
70
+ request :list_recovery_vaults
71
+ request :delete_recovery_vault
72
+ request :enable_backup_protection
73
+ request :set_recovery_vault_context
74
+ request :get_backup_protection_policy
75
+ request :start_backup
76
+ request :get_backup_item
77
+ request :get_backup_container
78
+ request :disable_backup_protection
79
+ request :get_all_backup_jobs
80
+ request :get_all_backup_jobs
81
+ request :get_backup_job_for_vm
82
+
67
83
  model_path 'fog/azurerm/models/storage'
68
84
  model :storage_account
69
85
  collection :storage_accounts
70
- model :data_disk
71
86
  model :directory
72
87
  collection :directories
73
88
  model :file
74
89
  collection :files
90
+ model :recovery_vault
91
+ collection :recovery_vaults
75
92
 
76
93
  # This class provides the mock implementation for unit tests.
77
94
  class Mock
@@ -1,5 +1,5 @@
1
1
  module Fog
2
2
  module AzureRM
3
- VERSION = '0.0.3'.freeze
3
+ VERSION = '0.0.4'.freeze
4
4
  end
5
5
  end
data/test/api_stub.rb CHANGED
@@ -18,6 +18,7 @@ module ApiStub
18
18
  autoload :StorageAccount, File.expand_path('api_stub/models/storage/storageaccount', __dir__)
19
19
  autoload :File, ::File.expand_path('api_stub/models/storage/file', __dir__)
20
20
  autoload :Directory, ::File.expand_path('api_stub/models/storage/directory', __dir__)
21
+ autoload :RecoveryVault, ::File.expand_path('api_stub/models/storage/recovery_vault', __dir__)
21
22
  end
22
23
 
23
24
  module Network
@@ -80,6 +81,7 @@ module ApiStub
80
81
  autoload :StorageAccount, File.expand_path('api_stub/requests/storage/storageaccount', __dir__)
81
82
  autoload :File, ::File.expand_path('api_stub/requests/storage/file', __dir__)
82
83
  autoload :Directory, ::File.expand_path('api_stub/requests/storage/directory', __dir__)
84
+ autoload :RecoveryVault, ::File.expand_path('api_stub/requests/storage/recovery_vault', __dir__)
83
85
  end
84
86
 
85
87
  module Network
@@ -124,6 +124,68 @@ module ApiStub
124
124
  compute_client.deserialize(vm_mapper, Fog::JSON.decode(body), 'result.body').value
125
125
  end
126
126
 
127
+ def self.attach_managed_disk_response(compute_client)
128
+ body = {
129
+ 'id' => '/subscriptions/########-####-####-####-############/resourceGroups/fog-test-rg/providers/Microsoft.Compute/virtualMachines/fog-test-server',
130
+ 'name' => 'fog-test-server',
131
+ 'location' => 'West US',
132
+ 'properties' => {
133
+ 'hardwareProfile' => {
134
+ 'vmSize' => 'Basic_A0'
135
+ },
136
+ 'storageProfile' => {
137
+ 'imageReference' => {
138
+ 'publisher' => 'Canonical',
139
+ 'offer' => 'UbuntuServer',
140
+ 'sku' => '14.04.2-LTS',
141
+ 'version' => 'latest'
142
+ },
143
+ 'osDisk' => {
144
+ 'name' => 'fog-test-server_os_disk',
145
+ 'vhd' => {
146
+ 'uri' => 'http://storageAccount.blob.core.windows.net/vhds/fog-test-server_os_disk.vhd'
147
+ }
148
+ },
149
+ 'dataDisks' => [
150
+ {
151
+ 'name' => 'disk1',
152
+ 'diskSizeGB' => '10',
153
+ 'lun' => 0,
154
+ 'vhd' => {
155
+ 'uri' => 'http://mystorage1.blob.core.windows.net/vhds/disk1.vhd'
156
+ }
157
+ },
158
+ {
159
+ 'lun' => 1, # add new managed datadisk
160
+ 'name' => "datadisk2",
161
+ 'managedDisk'=> {
162
+ 'id'=> '/subscriptions/{subscription-id}/resourceGroups/myresourcegroup1/providers/Microsoft.Compute/disks/myDisk2',
163
+ 'storageAccountType'=> 'Standard_LRS'
164
+ },
165
+ 'createOption'=> 'attach'
166
+ }
167
+ ]
168
+ },
169
+ 'osProfile' => {
170
+ 'computerName' => 'fog-test-server',
171
+ 'adminUsername' => 'shaffan',
172
+ 'linuxConfiguration' => {
173
+ 'disablePasswordAuthentication' => false
174
+ }
175
+ },
176
+ 'networkProfile' => {
177
+ 'networkInterfaces' => [
178
+ {
179
+ 'id' => '/subscriptions/########-####-####-####-############/resourceGroups/fog-test-rg/providers/Microsoft.Network/networkInterfaces/fogtestnetworkinterface'
180
+ }
181
+ ]
182
+ }
183
+ }
184
+ }
185
+ vm_mapper = Azure::ARM::Compute::Models::VirtualMachine.mapper
186
+ compute_client.deserialize(vm_mapper, body, 'result.body')
187
+ end
188
+
127
189
  def self.attach_data_disk_response(compute_client)
128
190
  body = {
129
191
  'id' => '/subscriptions/########-####-####-####-############/resourceGroups/fog-test-rg/providers/Microsoft.Compute/virtualMachines/fog-test-server',
@@ -0,0 +1,23 @@
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
@@ -142,6 +142,83 @@ module ApiStub
142
142
  vhd_path: 'https://fogstrg.blob.core.windows.net/customvhd/windows-image.vhd'
143
143
  }
144
144
  end
145
+
146
+ def self.get_managed_disk_response(compute_client)
147
+ body = {
148
+ 'id'=> '/subscriptions/{subscription_id}/resourceGroups/ManagedRG/providers/Microsoft.Compute/disks/ManagedDataDisk1',
149
+ 'name'=> 'ManagedDataDisk1',
150
+ 'type'=> 'Microsoft.Compute/disks',
151
+ 'location'=> 'eastus',
152
+ 'account_type'=> 'Premium_LRS',
153
+
154
+ 'time_created'=> {
155
+ 'datetime'=> '((2458025j,52461s,709327300n),+0s,2299161j)'
156
+ },
157
+
158
+ 'creation_data'=> {
159
+ 'create_option'=> 'Empty'
160
+ },
161
+
162
+ 'disk_size_gb'=> 100,
163
+ 'provisioning_state'=> 'Succeeded'
164
+ }
165
+ vm_mapper = Azure::ARM::Compute::Models::Disk.mapper
166
+ compute_client.deserialize(vm_mapper, body, 'result.body')
167
+ end
168
+
169
+ def self.get_vm_with_managed_disk_response(compute_client)
170
+ body = {
171
+ 'id' => '/subscriptions/{subscription_id}/resourceGroups/ManagedRG/providers/Microsoft.Compute/virtualMachines/ManagedVM',
172
+ 'name' => 'ManagedVM',
173
+ 'type' => 'Microsoft.Compute/virtualMachines',
174
+ 'location' => 'eastus',
175
+ 'hardware_profile' =>
176
+ {'vm_size' => 'Standard_D2s_v3'},
177
+ 'storage_profile'=>
178
+ {
179
+ 'image_reference'=>
180
+ { 'publisher' => 'Canonical',
181
+ 'offer' => 'UbuntuServer',
182
+ 'sku' => '16.04-LTS',
183
+ 'version' => 'latest'
184
+ },
185
+ 'os_disk'=>
186
+ {
187
+ 'os_type' => 'Linux',
188
+ 'name' => 'ManagedVM_OsDisk_1_d00cc277b8904c79ae5a777aa3fa5ac3',
189
+ 'caching' => 'ReadWrite',
190
+ 'create_option' => 'FromImage',
191
+ 'disk_size_gb' =>30,
192
+ 'managed_disk' => {
193
+ 'id' => '/subscriptions/{subscription_id}/resourceGroups/ManagedRG/providers/Microsoft.Compute/disks/ManagedVM_OsDisk_1_d00cc277b8904c79ae5a777aa3fa5ac3',
194
+ 'storage_account_type' => 'Premium_LRS'
195
+ }
196
+ },
197
+ 'data_disks' => [
198
+ { 'lun'=> 0,
199
+ 'name' => 'ManagedDataDisk1',
200
+ 'caching' => 'None',
201
+ 'create_option' => 'Attach',
202
+ 'disk_size_gb' =>100,
203
+ 'managed_disk' => {
204
+ 'id' => '/subscriptions/{subscription_id}/resourceGroups/MANAGEDRG/providers/Microsoft.Compute/disks/ManagedDataDisk1',
205
+ 'storage_account_type' => 'Premium_LRS'
206
+ }
207
+ }]
208
+ },
209
+ 'network_profile' => {
210
+ 'network_interfaces' => [
211
+ {
212
+ 'id' => '/subscriptions/{subscription_id}/resourceGroups/ManagedRG/providers/Microsoft.Network/networkInterfaces/managedvm992'
213
+ }
214
+ ]
215
+ },
216
+ 'provisioning_state' => 'Succeeded',
217
+ 'vm_id' => '73f38ae6-4767-4325-bd78-9ba4e74337d9'
218
+ }
219
+ vm_mapper = Azure::ARM::Compute::Models::VirtualMachine.mapper
220
+ compute_client.deserialize(vm_mapper, body, 'result.body')
221
+ end
145
222
 
146
223
  def self.create_virtual_machine_response(compute_client)
147
224
  body = '{
@@ -0,0 +1,189 @@
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