Skip to content

Commit b7fa2e0

Browse files
author
Samuel Anudeep
committed
Merge pull request #255 from MabOneSdk/anudeeb-dev1
Bug Fix : Detailed get of PI if Name is passed as filter
2 parents 26fb98a + 29769a8 commit b7fa2e0

File tree

1 file changed

+26
-9
lines changed

1 file changed

+26
-9
lines changed

src/ResourceManager/RecoveryServices.Backup/Commands.RecoveryServices.Backup.Providers/Providers/IaasVmPsBackupProvider.cs

Lines changed: 26 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -86,7 +86,7 @@ public BaseRecoveryServicesJobResponse EnableProtection()
8686
ValidateAzureVMWorkloadType(item.WorkloadType, policy.WorkloadType);
8787
ValidateAzureVMModifyProtectionRequest(itemBase, policy);
8888

89-
isComputeAzureVM = IsComputeAzureVM(item.VirtualMachineId);
89+
isComputeAzureVM = IsComputeAzureVM(item.VirtualMachineId);
9090
Dictionary<UriEnums, string> keyValueDict = HelperUtils.ParseUri(item.Id);
9191
containerUri = HelperUtils.GetContainerUri(keyValueDict, item.Id);
9292
protectedItemUri = HelperUtils.GetProtectedItemUri(keyValueDict, item.Id);
@@ -184,13 +184,13 @@ public BaseRecoveryServicesJobResponse TriggerBackup()
184184
AzureRmRecoveryServicesItemBase item = (AzureRmRecoveryServicesItemBase)ProviderData.ProviderParameters[ItemParams.Item];
185185
DateTime expiryDate = (DateTime)ProviderData.ProviderParameters[ItemParams.ExpiryDate];
186186
AzureRmRecoveryServicesIaasVmItem iaasVmItem = item as AzureRmRecoveryServicesIaasVmItem;
187-
return HydraAdapter.TriggerBackup(IdUtils.GetValueByName(iaasVmItem.Id, IdUtils.IdNames.ProtectionContainerName),
187+
return HydraAdapter.TriggerBackup(IdUtils.GetValueByName(iaasVmItem.Id, IdUtils.IdNames.ProtectionContainerName),
188188
IdUtils.GetValueByName(iaasVmItem.Id, IdUtils.IdNames.ProtectedItemName));
189189
}
190190

191191
public BaseRecoveryServicesJobResponse TriggerRestore()
192192
{
193-
AzureRmRecoveryServicesIaasVmRecoveryPoint rp = ProviderData.ProviderParameters[RestoreBackupItemParams.RecoveryPoint]
193+
AzureRmRecoveryServicesIaasVmRecoveryPoint rp = ProviderData.ProviderParameters[RestoreBackupItemParams.RecoveryPoint]
194194
as AzureRmRecoveryServicesIaasVmRecoveryPoint;
195195
string storageAccountId = ProviderData.ProviderParameters[RestoreBackupItemParams.StorageAccountId].ToString();
196196
string storageAccountLocation = ProviderData.ProviderParameters[RestoreBackupItemParams.StorageAccountLocation].ToString();
@@ -274,7 +274,7 @@ public ProtectionPolicyResponse CreatePolicy()
274274
CopyScheduleTimeToRetentionTimes((AzureRmRecoveryServicesBackupLongTermRetentionPolicy)retentionPolicy,
275275
(AzureRmRecoveryServicesBackupSimpleSchedulePolicy)schedulePolicy);
276276
Logger.Instance.WriteDebug("Copy of RetentionTime from with SchedulePolicy to RetentionPolicy is successful");
277-
277+
278278
// Now validate both RetentionPolicy and SchedulePolicy together
279279
PolicyHelpers.ValidateLongTermRetentionPolicyWithSimpleRetentionPolicy(
280280
(AzureRmRecoveryServicesBackupLongTermRetentionPolicy)retentionPolicy,
@@ -369,7 +369,7 @@ public ProtectionPolicyResponse ModifyPolicy()
369369
};
370370

371371
return HydraAdapter.CreateOrUpdateProtectionPolicy(policy.Name,
372-
hydraRequest);
372+
hydraRequest);
373373
}
374374

375375
public List<AzureRmRecoveryServicesContainerBase> ListProtectionContainers()
@@ -438,7 +438,7 @@ public List<AzureRmRecoveryServicesItemBase> ListProtectedItems()
438438
paginationRequest.SkipToken = skipToken;
439439
}
440440
} while (skipToken != null);
441-
441+
442442
List<AzureRmRecoveryServicesItemBase> itemModels = ConversionHelpers.GetItemModelList(protectedItems, container);
443443

444444
// 1. Filter by container
@@ -455,6 +455,23 @@ public List<AzureRmRecoveryServicesItemBase> ListProtectedItems()
455455
{
456456
return ((AzureRmRecoveryServicesIaasVmItem)itemModel).Name == name;
457457
}).ToList();
458+
459+
GetProtectedItemQueryParam getItemQueryParams = new GetProtectedItemQueryParam();
460+
getItemQueryParams.Expand = "extendedinfo";
461+
462+
for (int i = 0; i < itemModels.Count; i++)
463+
{
464+
var getResponse = HydraAdapter.GetProtectedItem(container.Name, itemModels[i].Name, getItemQueryParams);
465+
AzureRmRecoveryServicesIaasVmItemExtendedInfo extendedInfo = new AzureRmRecoveryServicesIaasVmItemExtendedInfo();
466+
var hydraExtendedInfo = ((AzureIaaSVMProtectedItem)getResponse.Item.Properties).ExtendedInfo;
467+
if (hydraExtendedInfo.OldestRecoveryPoint.HasValue)
468+
{
469+
extendedInfo.OldestRecoveryPoint = hydraExtendedInfo.OldestRecoveryPoint;
470+
}
471+
extendedInfo.PolicyState = hydraExtendedInfo.PolicyInconsistent.ToString();
472+
extendedInfo.RecoveryPointCount = hydraExtendedInfo.RecoveryPointCount;
473+
((AzureRmRecoveryServicesIaasVmItem)itemModels[i]).ExtendedInfo = extendedInfo;
474+
}
458475
}
459476

460477
// 3. Filter by item's Protection Status
@@ -485,7 +502,7 @@ public List<AzureRmRecoveryServicesItemBase> ListProtectedItems()
485502
}
486503

487504
return itemModels;
488-
}
505+
}
489506

490507
public AzureRmRecoveryServicesBackupSchedulePolicyBase GetDefaultSchedulePolicyObject()
491508
{
@@ -620,7 +637,7 @@ private void ValidateAzureVMContainerType(Microsoft.Azure.Commands.RecoveryServi
620637
type.ToString()));
621638
}
622639
}
623-
640+
624641
private void ValidateAzureVMProtectionPolicy(AzureRmRecoveryServicesBackupPolicyBase policy)
625642
{
626643
if (policy == null || policy.GetType() != typeof(AzureRmRecoveryServicesIaasVmPolicy))
@@ -681,7 +698,7 @@ private void ValidateAzureVMModifyProtectionRequest(AzureRmRecoveryServicesItemB
681698
typeof(AzureRmRecoveryServicesIaasVmItem).ToString()));
682699
}
683700

684-
if(string.IsNullOrEmpty(((AzureRmRecoveryServicesIaasVmItem)itemBase).VirtualMachineId))
701+
if (string.IsNullOrEmpty(((AzureRmRecoveryServicesIaasVmItem)itemBase).VirtualMachineId))
685702
{
686703
throw new ArgumentException(Resources.VirtualMachineIdIsEmptyOrNull);
687704
}

0 commit comments

Comments
 (0)