fog-azure-rm-temp 0.0.2 → 0.0.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.arclint +8 -0
- data/CHANGELOG.md +12 -3
- data/fog-azure-rm.gemspec +1 -1
- data/lib/fog/azurerm.rb +0 -1
- data/lib/fog/azurerm/docs/compute.md +3 -3
- data/lib/fog/azurerm/docs/storage.md +0 -66
- data/lib/fog/azurerm/models/compute/availability_set.rb +5 -5
- data/lib/fog/azurerm/requests/compute/create_availability_set.rb +6 -6
- data/lib/fog/azurerm/storage.rb +0 -18
- data/lib/fog/azurerm/version.rb +1 -1
- data/test/api_stub.rb +0 -2
- data/test/api_stub/requests/compute/availability_set.rb +4 -4
- data/test/integration/availability_set.rb +2 -2
- data/test/models/compute/test_availability_set.rb +1 -1
- data/test/requests/compute/test_create_availability_set.rb +4 -4
- data/test/test_helper.rb +1 -15
- metadata +11 -36
- data/lib/fog/azurerm/models/storage/recovery_vault.rb +0 -50
- data/lib/fog/azurerm/models/storage/recovery_vaults.rb +0 -27
- data/lib/fog/azurerm/requests/storage/create_or_update_recovery_vault.rb +0 -54
- data/lib/fog/azurerm/requests/storage/delete_recovery_vault.rb +0 -35
- data/lib/fog/azurerm/requests/storage/disable_backup_protection.rb +0 -60
- data/lib/fog/azurerm/requests/storage/enable_backup_protection.rb +0 -61
- data/lib/fog/azurerm/requests/storage/get_all_backup_jobs.rb +0 -56
- data/lib/fog/azurerm/requests/storage/get_backup_container.rb +0 -53
- data/lib/fog/azurerm/requests/storage/get_backup_item.rb +0 -58
- data/lib/fog/azurerm/requests/storage/get_backup_job_for_vm.rb +0 -53
- data/lib/fog/azurerm/requests/storage/get_backup_protection_policy.rb +0 -64
- data/lib/fog/azurerm/requests/storage/get_recovery_vault.rb +0 -49
- data/lib/fog/azurerm/requests/storage/list_recovery_vaults.rb +0 -48
- data/lib/fog/azurerm/requests/storage/set_recovery_vault_context.rb +0 -36
- data/lib/fog/azurerm/requests/storage/start_backup.rb +0 -54
- data/test/api_stub/models/storage/recovery_vault.rb +0 -23
- data/test/api_stub/requests/storage/recovery_vault.rb +0 -189
- data/test/models/storage/test_recovery_vault.rb +0 -61
- data/test/models/storage/test_recovery_vaults.rb +0 -47
- data/test/requests/storage/test_create_recovery_vault.rb +0 -35
- data/test/requests/storage/test_delete_recovery_vault.rb +0 -34
- data/test/requests/storage/test_disable_backup_protection.rb +0 -52
- data/test/requests/storage/test_enable_backup_protection.rb +0 -66
- data/test/requests/storage/test_get_all_backup_jobs.rb +0 -35
- data/test/requests/storage/test_get_backup_container.rb +0 -35
- data/test/requests/storage/test_get_backup_item.rb +0 -35
- data/test/requests/storage/test_get_backup_job_for_vm.rb +0 -26
- data/test/requests/storage/test_get_backup_protection_policy.rb +0 -35
- data/test/requests/storage/test_get_recovery_vault.rb +0 -35
- data/test/requests/storage/test_list_recovery_vault.rb +0 -35
- data/test/requests/storage/test_set_recovery_vault_context.rb +0 -34
- data/test/requests/storage/test_start_backup.rb +0 -55
@@ -1,50 +0,0 @@
|
|
1
|
-
module Fog
|
2
|
-
module Storage
|
3
|
-
class AzureRM
|
4
|
-
# This class is giving implementation of create/save and
|
5
|
-
# delete/destroy for Recovery Vault.
|
6
|
-
class RecoveryVault < Fog::Model
|
7
|
-
attribute :id
|
8
|
-
identity :name
|
9
|
-
attribute :resource_group
|
10
|
-
attribute :location
|
11
|
-
attribute :type
|
12
|
-
attribute :sku_name
|
13
|
-
|
14
|
-
def self.parse(recovery_vault)
|
15
|
-
{
|
16
|
-
id: recovery_vault['id'],
|
17
|
-
name: recovery_vault['name'],
|
18
|
-
resource_group: get_resource_group_from_id(recovery_vault['id']),
|
19
|
-
location: recovery_vault['location'],
|
20
|
-
type: recovery_vault['type'],
|
21
|
-
sku_name: recovery_vault['sku']['name']
|
22
|
-
}
|
23
|
-
end
|
24
|
-
|
25
|
-
def save
|
26
|
-
requires :name, :location, :resource_group
|
27
|
-
recovery_vault = service.create_or_update_recovery_vault(resource_group, location, name)
|
28
|
-
merge_attributes(Fog::Storage::AzureRM::RecoveryVault.parse(recovery_vault))
|
29
|
-
end
|
30
|
-
|
31
|
-
def enable_backup_protection(vm_name, vm_resource_group)
|
32
|
-
requires :name, :resource_group
|
33
|
-
service.enable_backup_protection(name, resource_group, vm_name, vm_resource_group)
|
34
|
-
end
|
35
|
-
|
36
|
-
def start_backup(vm_name, vm_resource_group)
|
37
|
-
service.start_backup(resource_group, name, vm_name, vm_resource_group)
|
38
|
-
end
|
39
|
-
|
40
|
-
def disable_backup_protection(vm_name, vm_resource_group)
|
41
|
-
service.disable_backup_protection(name, resource_group, vm_name, vm_resource_group)
|
42
|
-
end
|
43
|
-
|
44
|
-
def destroy
|
45
|
-
service.delete_recovery_vault(resource_group, name)
|
46
|
-
end
|
47
|
-
end
|
48
|
-
end
|
49
|
-
end
|
50
|
-
end
|
@@ -1,27 +0,0 @@
|
|
1
|
-
module Fog
|
2
|
-
module Storage
|
3
|
-
class AzureRM
|
4
|
-
# This class is giving implementation of all/get for Recovery Vaults
|
5
|
-
class RecoveryVaults < Fog::Collection
|
6
|
-
model Fog::Storage::AzureRM::RecoveryVault
|
7
|
-
attribute :resource_group
|
8
|
-
attribute :name
|
9
|
-
|
10
|
-
def all
|
11
|
-
requires :resource_group
|
12
|
-
recovery_vaults = []
|
13
|
-
service.list_recovery_vaults(resource_group).each do |recovery_vault|
|
14
|
-
recovery_vaults << Fog::Storage::AzureRM::RecoveryVault.parse(recovery_vault)
|
15
|
-
end
|
16
|
-
load(recovery_vaults)
|
17
|
-
end
|
18
|
-
|
19
|
-
def get(resource_group, name)
|
20
|
-
recovery_vault = service.get_recovery_vault(resource_group, name)
|
21
|
-
recovery_vault_fog = Fog::Storage::AzureRM::RecoveryVault.new(service: service)
|
22
|
-
recovery_vault_fog.merge_attributes(Fog::Storage::AzureRM::RecoveryVault.parse(recovery_vault))
|
23
|
-
end
|
24
|
-
end
|
25
|
-
end
|
26
|
-
end
|
27
|
-
end
|
@@ -1,54 +0,0 @@
|
|
1
|
-
module Fog
|
2
|
-
module Storage
|
3
|
-
class AzureRM
|
4
|
-
# Real class for Recovery Vault request
|
5
|
-
class Real
|
6
|
-
def create_or_update_recovery_vault(resource_group, location, name)
|
7
|
-
msg = "Creating/Updating Recovery Vault #{name} in 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}?api-version=#{REST_CLIENT_API_VERSION[1]}"
|
11
|
-
body = {
|
12
|
-
location: location,
|
13
|
-
tags: {},
|
14
|
-
sku: { name: 'standard' },
|
15
|
-
properties: {}
|
16
|
-
}
|
17
|
-
begin
|
18
|
-
token = Fog::Credentials::AzureRM.get_token(@tenant_id, @client_id, @client_secret)
|
19
|
-
response = RestClient.put(
|
20
|
-
resource_url,
|
21
|
-
body.to_json,
|
22
|
-
accept: 'application/json',
|
23
|
-
content_type: 'application/json',
|
24
|
-
authorization: token
|
25
|
-
)
|
26
|
-
rescue RestClient::Exception => e
|
27
|
-
raise_azure_exception(e, msg)
|
28
|
-
end
|
29
|
-
Fog::Logger.debug "Recovery Vault #{name} created/updated successfully"
|
30
|
-
Fog::JSON.decode(response)
|
31
|
-
end
|
32
|
-
end
|
33
|
-
|
34
|
-
# Mock class for Recovery Vault request
|
35
|
-
class Mock
|
36
|
-
def create_or_update_recovery_vault(*)
|
37
|
-
recovery_vault = '{
|
38
|
-
"location": "westus",
|
39
|
-
"name": "fog-test-vault",
|
40
|
-
"properties": {
|
41
|
-
"provisioningState": "Succeeded"
|
42
|
-
},
|
43
|
-
"id": "/subscriptions/########-####-####-####-############/resourceGroups/fog-test-rg/providers/Microsoft.RecoveryServices/vaults/fog-test-vault",
|
44
|
-
"type": "Microsoft.RecoveryServices/vaults",
|
45
|
-
"sku": {
|
46
|
-
"name": "standard"
|
47
|
-
}
|
48
|
-
}'
|
49
|
-
Fog::JSON.decode(recovery_vault)
|
50
|
-
end
|
51
|
-
end
|
52
|
-
end
|
53
|
-
end
|
54
|
-
end
|
@@ -1,35 +0,0 @@
|
|
1
|
-
module Fog
|
2
|
-
module Storage
|
3
|
-
class AzureRM
|
4
|
-
# Real class for Recovery Vault request
|
5
|
-
class Real
|
6
|
-
def delete_recovery_vault(resource_group, name)
|
7
|
-
msg = "Deleting 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/#{name}?api-version=#{REST_CLIENT_API_VERSION[1]}"
|
10
|
-
begin
|
11
|
-
token = Fog::Credentials::AzureRM.get_token(@tenant_id, @client_id, @client_secret)
|
12
|
-
RestClient.delete(
|
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} in Resource Group #{resource_group} deleted successfully"
|
22
|
-
true
|
23
|
-
end
|
24
|
-
end
|
25
|
-
|
26
|
-
# Mock class for Recovery Vault request
|
27
|
-
class Mock
|
28
|
-
def delete_recovery_vault(*)
|
29
|
-
Fog::Logger.debug 'Recovery Vault TestVault in Resource Group TestRG deleted successfully'
|
30
|
-
true
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|
34
|
-
end
|
35
|
-
end
|
@@ -1,60 +0,0 @@
|
|
1
|
-
PROTECTION_STOPPED = 'ProtectionStopped'.freeze
|
2
|
-
|
3
|
-
module Fog
|
4
|
-
module Storage
|
5
|
-
class AzureRM
|
6
|
-
# Real class for Recovery Vault request
|
7
|
-
class Real
|
8
|
-
def disable_backup_protection(rv_name, rv_resource_group, vm_name, vm_resource_group)
|
9
|
-
msg = "Disabling protection for VM #{vm_name} in Recovery Vault #{rv_name}"
|
10
|
-
Fog::Logger.debug msg
|
11
|
-
|
12
|
-
set_recovery_vault_context(rv_resource_group, rv_name)
|
13
|
-
vm_id = get_virtual_machine_id(vm_resource_group, vm_name)
|
14
|
-
|
15
|
-
resource_url = "#{AZURE_RESOURCE}/subscriptions/#{@subscription_id}/resourceGroups/#{rv_resource_group}/providers/Microsoft.RecoveryServices/vaults/#{rv_name}/backupFabrics/Azure/protectionContainers/iaasvmcontainer;iaasvmcontainerv2;#{vm_resource_group.downcase};#{vm_name.downcase}/protectedItems/vm;iaasvmcontainerv2;#{vm_resource_group.downcase};#{vm_name.downcase}?api-version=#{REST_CLIENT_API_VERSION[1]}"
|
16
|
-
body = {
|
17
|
-
properties: {
|
18
|
-
protectedItemType: 'Microsoft.Compute/virtualMachines',
|
19
|
-
policyId: '',
|
20
|
-
sourceResourceId: vm_id,
|
21
|
-
protectionState: PROTECTION_STOPPED
|
22
|
-
},
|
23
|
-
tags: {}
|
24
|
-
}
|
25
|
-
|
26
|
-
begin
|
27
|
-
token = Fog::Credentials::AzureRM.get_token(@tenant_id, @client_id, @client_secret)
|
28
|
-
RestClient.put(
|
29
|
-
resource_url,
|
30
|
-
body.to_json,
|
31
|
-
accept: 'application/json',
|
32
|
-
content_type: 'application/json',
|
33
|
-
authorization: token
|
34
|
-
)
|
35
|
-
rescue RestClient::Exception => e
|
36
|
-
raise_azure_exception(e, msg)
|
37
|
-
end
|
38
|
-
|
39
|
-
Fog::Logger.debug "Successfully disabled protection for VM #{vm_name} in Recovery Vault #{rv_name}"
|
40
|
-
true
|
41
|
-
end
|
42
|
-
|
43
|
-
private
|
44
|
-
|
45
|
-
def get_virtual_machine_id(vm_resource_group, vm_name)
|
46
|
-
compute_service = Fog::Compute::AzureRM.new(tenant_id: @tenant_id, client_id: @client_id, client_secret: @client_secret, subscription_id: @subscription_id)
|
47
|
-
compute_service.get_virtual_machine(vm_resource_group, vm_name).id
|
48
|
-
end
|
49
|
-
end
|
50
|
-
|
51
|
-
# Mock class for Recovery Vault request
|
52
|
-
class Mock
|
53
|
-
def disable_backup_protection(*)
|
54
|
-
Fog::Logger.debug 'Successfully disabled protection for VM {vm_name} in Recovery Vault {rv_name}'
|
55
|
-
true
|
56
|
-
end
|
57
|
-
end
|
58
|
-
end
|
59
|
-
end
|
60
|
-
end
|
@@ -1,61 +0,0 @@
|
|
1
|
-
CONFIGURE_BACKUP = 'ConfigureBackup'.freeze
|
2
|
-
|
3
|
-
module Fog
|
4
|
-
module Storage
|
5
|
-
class AzureRM
|
6
|
-
# Real class for Recovery Vault request
|
7
|
-
class Real
|
8
|
-
def enable_backup_protection(rv_name, rv_resource_group, vm_name, vm_resource_group)
|
9
|
-
msg = "Enabling backup protection for VM #{vm_name} in Resource Group #{vm_resource_group}"
|
10
|
-
Fog::Logger.debug msg
|
11
|
-
|
12
|
-
set_recovery_vault_context(rv_resource_group, rv_name)
|
13
|
-
backup_protection_policy = get_backup_protection_policy(rv_resource_group, rv_name)
|
14
|
-
policy = backup_protection_policy.select { |item| item['name'].eql? 'DefaultPolicy' }[0]
|
15
|
-
vm_id = get_virtual_machine_id(vm_resource_group, vm_name)
|
16
|
-
|
17
|
-
resource_url = "#{AZURE_RESOURCE}/subscriptions/#{@subscription_id}/resourceGroups/#{rv_resource_group}/providers/Microsoft.RecoveryServices/vaults/#{rv_name}/backupFabrics/Azure/protectionContainers/iaasvmcontainer;iaasvmcontainerv2;#{vm_resource_group.downcase};#{vm_name.downcase}/protectedItems/vm;iaasvmcontainerv2;#{vm_resource_group.downcase};#{vm_name.downcase}?api-version=#{REST_CLIENT_API_VERSION[1]}"
|
18
|
-
body = {
|
19
|
-
properties: {
|
20
|
-
protectedItemType: 'Microsoft.Compute/virtualMachines',
|
21
|
-
policyId: policy['id'],
|
22
|
-
sourceResourceId: vm_id
|
23
|
-
},
|
24
|
-
tags: {}
|
25
|
-
}
|
26
|
-
|
27
|
-
begin
|
28
|
-
token = Fog::Credentials::AzureRM.get_token(@tenant_id, @client_id, @client_secret)
|
29
|
-
RestClient.put(
|
30
|
-
resource_url,
|
31
|
-
body.to_json,
|
32
|
-
accept: 'application/json',
|
33
|
-
content_type: 'application/json',
|
34
|
-
authorization: token
|
35
|
-
)
|
36
|
-
rescue RestClient::Exception => e
|
37
|
-
raise_azure_exception(e, msg)
|
38
|
-
end
|
39
|
-
|
40
|
-
@job = get_backup_job_for_vm(rv_name, rv_resource_group, vm_name, vm_resource_group, CONFIGURE_BACKUP)
|
41
|
-
|
42
|
-
until @job.nil?
|
43
|
-
sleep 10
|
44
|
-
@job = get_backup_job_for_vm(rv_name, rv_resource_group, vm_name, vm_resource_group, CONFIGURE_BACKUP)
|
45
|
-
end
|
46
|
-
|
47
|
-
Fog::Logger.debug "Successfully enabled backup protection for VM #{vm_name} in Resource Group #{vm_resource_group}"
|
48
|
-
true
|
49
|
-
end
|
50
|
-
end
|
51
|
-
|
52
|
-
# Mock class for Recovery Vault request
|
53
|
-
class Mock
|
54
|
-
def enable_backup_protection(*)
|
55
|
-
Fog::Logger.debug 'Successfully enabled backup protection for VM {vm_name} in Resource Group {vm_resource_group}'
|
56
|
-
true
|
57
|
-
end
|
58
|
-
end
|
59
|
-
end
|
60
|
-
end
|
61
|
-
end
|
@@ -1,56 +0,0 @@
|
|
1
|
-
module Fog
|
2
|
-
module Storage
|
3
|
-
class AzureRM
|
4
|
-
# Real class for Recovery Vault request
|
5
|
-
class Real
|
6
|
-
def get_all_backup_jobs(rv_name, rv_resource_group)
|
7
|
-
msg = "Getting all backup jobs for Recovery Vault #{rv_name}"
|
8
|
-
Fog::Logger.debug msg
|
9
|
-
|
10
|
-
resource_url = "#{AZURE_RESOURCE}/subscriptions/#{@subscription_id}/resourceGroups/#{rv_resource_group}/providers/Microsoft.RecoveryServices/vaults/#{rv_name}/backupJobs?api-version=#{REST_CLIENT_API_VERSION[1]}&$filter=status eq 'InProgress'"
|
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 jobs for Recovery Vault #{rv_name}"
|
23
|
-
Fog::JSON.decode(response)['value']
|
24
|
-
end
|
25
|
-
end
|
26
|
-
|
27
|
-
# Mock class for Recovery Vault request
|
28
|
-
class Mock
|
29
|
-
def get_all_backup_jobs(*)
|
30
|
-
body = '{
|
31
|
-
"value": [{
|
32
|
-
"id": "/subscriptions/########-####-####-####-############/resourceGroups/fog-test-rg/providers/Microsoft.RecoveryServices/vaults/fog-test-vault/backupJobs/########-####-####-####-############",
|
33
|
-
"name": "########-####-####-####-############",
|
34
|
-
"type": "Microsoft.RecoveryServices/vaults/backupJobs",
|
35
|
-
"properties": {
|
36
|
-
"jobType": "AzureIaaSVMJob",
|
37
|
-
"duration": "XX:XX:XX.XXXXXXX",
|
38
|
-
"actionsInfo": [
|
39
|
-
1
|
40
|
-
],
|
41
|
-
"virtualMachineVersion": "Compute",
|
42
|
-
"entityFriendlyName": "fog-test-vm",
|
43
|
-
"backupManagementType": "AzureIaasVM",
|
44
|
-
"operation": "Backup",
|
45
|
-
"status": "InProgress",
|
46
|
-
"startTime": "2016-10-19T07:49:31.1466534Z",
|
47
|
-
"activityId": "########-####-####-####-############"
|
48
|
-
}
|
49
|
-
}]
|
50
|
-
}'
|
51
|
-
Fog::JSON.decode(body)['value']
|
52
|
-
end
|
53
|
-
end
|
54
|
-
end
|
55
|
-
end
|
56
|
-
end
|
@@ -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_container(resource_group, rv_name, vm_name)
|
7
|
-
msg = "Getting backup container from Recovery Vault #{rv_name}"
|
8
|
-
Fog::Logger.debug msg
|
9
|
-
|
10
|
-
resource_url = "#{AZURE_RESOURCE}/subscriptions/#{@subscription_id}/resourceGroups/#{resource_group}/providers/Microsoft.RecoveryServices/vaults/#{rv_name}/backupProtectionContainers?api-version=#{REST_CLIENT_API_VERSION[1]}&$filter=backupManagementType eq 'AzureIaasVM' and status eq 'Registered' and friendlyName eq '#{vm_name}'"
|
11
|
-
begin
|
12
|
-
token = Fog::Credentials::AzureRM.get_token(@tenant_id, @client_id, @client_secret)
|
13
|
-
response = RestClient.get(
|
14
|
-
response = 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 container from Recovery Vault #{rv_name}"
|
23
|
-
Fog::JSON.decode(response)['value']
|
24
|
-
end
|
25
|
-
end
|
26
|
-
|
27
|
-
# Mock class for Recovery Vault request
|
28
|
-
class Mock
|
29
|
-
def get_backup_container(*)
|
30
|
-
body = '{
|
31
|
-
"value": [{
|
32
|
-
"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",
|
33
|
-
"name": "IaasVMContainer;iaasvmcontainerv2;fog-test-vm-rg;fog-test-vm",
|
34
|
-
"type": "Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers",
|
35
|
-
"properties": {
|
36
|
-
"virtualMachineId": "/subscriptions/########-####-####-####-############/resourceGroups/TestRG/providers/Microsoft.Compute/virtualMachines/TestVM",
|
37
|
-
"virtualMachineVersion": "Compute",
|
38
|
-
"resourceGroup": "fog-test-vm-rg",
|
39
|
-
"friendlyName": "fog-test-vm",
|
40
|
-
"backupManagementType": "AzureIaasVM",
|
41
|
-
"registrationStatus": "Registered",
|
42
|
-
"healthStatus": "Healthy",
|
43
|
-
"containerType": "Microsoft.Compute/virtualMachines",
|
44
|
-
"protectableObjectType": "Microsoft.Compute/virtualMachines"
|
45
|
-
}
|
46
|
-
}]
|
47
|
-
}'
|
48
|
-
Fog::JSON.decode(body)['value']
|
49
|
-
end
|
50
|
-
end
|
51
|
-
end
|
52
|
-
end
|
53
|
-
end
|
@@ -1,58 +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_item(resource_group, rv_name)
|
7
|
-
msg = "Getting backup item from Recovery Vault #{rv_name}"
|
8
|
-
Fog::Logger.debug msg
|
9
|
-
|
10
|
-
resource_url = "#{AZURE_RESOURCE}/subscriptions/#{@subscription_id}/resourceGroups/#{resource_group}/providers/Microsoft.RecoveryServices/vaults/#{rv_name}/backupProtectedItems?api-version=#{REST_CLIENT_API_VERSION[1]}&$filter=backupManagementType eq 'AzureIaasVM' and itemType eq 'VM'"
|
11
|
-
begin
|
12
|
-
token = Fog::Credentials::AzureRM.get_token(@tenant_id, @client_id, @client_secret)
|
13
|
-
response = RestClient.get(
|
14
|
-
response = 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 item from Recovery Vault #{rv_name}"
|
23
|
-
Fog::JSON.decode(response)['value']
|
24
|
-
end
|
25
|
-
end
|
26
|
-
|
27
|
-
# Mock class for Recovery Vault request
|
28
|
-
class Mock
|
29
|
-
def get_backup_item(*)
|
30
|
-
body = '{
|
31
|
-
"value": [{
|
32
|
-
"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",
|
33
|
-
"name": "iaasvmcontainerv2;fog-test-vm-rg;fog-test-vm",
|
34
|
-
"type": "Microsoft.RecoveryServices/vaults/backupFabrics/protectionContainers/protectedItems",
|
35
|
-
"properties": {
|
36
|
-
"friendlyName": "fog-test-vm",
|
37
|
-
"virtualMachineId": "/subscriptions/########-####-####-####-############/resourceGroups/fog-test-vm-rg/providers/Microsoft.Compute/virtualMachines/fog-test-vm",
|
38
|
-
"protectionStatus": "Healthy",
|
39
|
-
"protectionState": "Protected",
|
40
|
-
"lastBackupStatus": "Completed",
|
41
|
-
"lastBackupTime": "2016-10-17T10:30:47.2289274Z",
|
42
|
-
"protectedItemType": "Microsoft.Compute/virtualMachines",
|
43
|
-
"backupManagementType": "AzureIaasVM",
|
44
|
-
"workloadType": "VM",
|
45
|
-
"containerName": "iaasvmcontainerv2;fog-test-vm-rg;fog-test-vm",
|
46
|
-
"sourceResourceId": "/subscriptions/########-####-####-####-############/resourceGroups/fog-test-vm-rg/providers/Microsoft.Compute/virtualMachines/fog-test-vm",
|
47
|
-
"policyId": "/subscriptions/########-####-####-####-############/resourceGroups/fog-test-rg/providers/Microsoft.RecoveryServices/vaults/fog-test-vault/backupPolicies/DefaultPolicy",
|
48
|
-
"policyName": "DefaultPolicy",
|
49
|
-
"lastRecoveryPoint": "2016-10-17T10:32:38.4666692Z"
|
50
|
-
}
|
51
|
-
}]
|
52
|
-
}'
|
53
|
-
Fog::JSON.decode(body)['value']
|
54
|
-
end
|
55
|
-
end
|
56
|
-
end
|
57
|
-
end
|
58
|
-
end
|