Skip to content

Commit ebbf66f

Browse files
committed
added few fixes
1 parent 7bee690 commit ebbf66f

File tree

5 files changed

+43
-42
lines changed

5 files changed

+43
-42
lines changed

src/RecoveryServices/RecoveryServices.Backup.Providers/Providers/AzureWorkloadPsBackupProvider.cs

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -991,13 +991,19 @@ public void RegisterContainer()
991991

992992
List<ProtectableContainerResource> unregisteredVmContainers =
993993
GetUnRegisteredVmContainers(vaultName, vaultResourceGroupName);
994+
995+
Logger.Instance.WriteDebug("containerName: "+ containerName + ", vmResourceGroupName: " + vmResourceGroupName
996+
+ ", unregisteredVMContainers.Count: " + unregisteredVmContainers?.Count);
997+
994998
ProtectableContainerResource unregisteredVmContainer = unregisteredVmContainers.Find(
995999
vmContainer => {
9961000
string[] containerNameSplit = vmContainer.Name.Split(';');
9971001
int containerNameSplitLen = containerNameSplit.Length;
998-
bool vmNameMatch = string.Compare(containerNameSplit[containerNameSplitLen - 1], containerName, true) == 0;
1002+
bool vmNameMatch = string.Compare(containerNameSplit[containerNameSplitLen - 1], containerName.Split(';').Last(), true) == 0;
9991003
bool rgNameMatch = string.Compare(containerNameSplit[containerNameSplitLen - 2], vmResourceGroupName, true) == 0;
1000-
1004+
1005+
Logger.Instance.WriteDebug("Unregistered Container Name: " + vmContainer.Name + ", vmNameMatch: " + vmNameMatch + ", rgNameMatch: " + rgNameMatch);
1006+
10011007
return vmNameMatch && rgNameMatch;
10021008
});
10031009

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

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -74,17 +74,17 @@ public RestAzureNS.AzureOperationResponse<ProtectedItemResource> EnableProtectio
7474
string vaultName = (string)ProviderData[VaultParams.VaultName];
7575
string resourceGroupName = (string)ProviderData[VaultParams.ResourceGroupName];
7676
string azureVMName = (string)ProviderData[ItemParams.ItemName];
77-
string azureVMCloudServiceName = (string)ProviderData[ItemParams.AzureVMCloudServiceName];
77+
string azureVMCloudServiceName = ProviderData.ContainsKey(ItemParams.AzureVMCloudServiceName) ? (string)ProviderData[ItemParams.AzureVMCloudServiceName] : null;
7878
string azureVMResourceGroupName = (string)ProviderData[ItemParams.AzureVMResourceGroupName];
7979
string parameterSetName = (string)ProviderData[ItemParams.ParameterSetName];
80-
string[] inclusionDisksList = (string[])ProviderData[ItemParams.InclusionDisksList];
81-
string[] exclusionDisksList = (string[])ProviderData[ItemParams.ExclusionDisksList];
82-
SwitchParameter resetDiskExclusionSetting = (SwitchParameter)ProviderData[ItemParams.ResetExclusionSettings];
83-
bool excludeAllDataDisks = (bool)ProviderData[ItemParams.ExcludeAllDataDisks];
80+
string[] inclusionDisksList = ProviderData.ContainsKey(ItemParams.InclusionDisksList) ? (string[])ProviderData[ItemParams.InclusionDisksList] : null;
81+
string[] exclusionDisksList = ProviderData.ContainsKey(ItemParams.ExclusionDisksList) ? (string[])ProviderData[ItemParams.ExclusionDisksList] : null;
82+
SwitchParameter resetDiskExclusionSetting = ProviderData.ContainsKey(ItemParams.ResetExclusionSettings) ? (SwitchParameter)ProviderData[ItemParams.ResetExclusionSettings] : new SwitchParameter(false);
83+
bool excludeAllDataDisks = ProviderData.ContainsKey(ItemParams.ExcludeAllDataDisks) ? (bool)ProviderData[ItemParams.ExcludeAllDataDisks] : false;
8484
PolicyBase policy = (PolicyBase)ProviderData[ItemParams.Policy];
85-
ItemBase itemBase = (ItemBase)ProviderData[ItemParams.Item];
86-
AzureVmItem item = (AzureVmItem)ProviderData[ItemParams.Item];
87-
85+
ItemBase itemBase = ProviderData.ContainsKey(ItemParams.Item) ? (ItemBase)ProviderData[ItemParams.Item] : null;
86+
AzureVmItem item = ProviderData.ContainsKey(ItemParams.Item) ? (AzureVmItem)ProviderData[ItemParams.Item] : null;
87+
8888
string auxiliaryAccessToken = ProviderData.ContainsKey(ResourceGuardParams.Token) ? (string)ProviderData[ResourceGuardParams.Token] : null;
8989
bool isMUAOperation = ProviderData.ContainsKey(ResourceGuardParams.IsMUAOperation) ? (bool)ProviderData[ResourceGuardParams.IsMUAOperation] : false;
9090

@@ -327,7 +327,7 @@ public RestAzureNS.AzureOperationResponse<ProtectedItemResource> DisableProtecti
327327
{
328328
string vaultName = (string)ProviderData[VaultParams.VaultName];
329329
string resourceGroupName = (string)ProviderData[VaultParams.ResourceGroupName];
330-
bool deleteBackupData = (bool)ProviderData[ItemParams.DeleteBackupData];
330+
bool deleteBackupData = ProviderData.ContainsKey(ItemParams.DeleteBackupData) ? (bool)ProviderData[ItemParams.DeleteBackupData] : false;
331331

332332
ItemBase itemBase = (ItemBase)ProviderData[ItemParams.Item];
333333

src/RecoveryServices/RecoveryServices.Backup/Cmdlets/Item/RedoAzureRmRecoveryServicesBackupProtection.cs

Lines changed: 8 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -163,26 +163,22 @@ public override void ExecuteCmdlet()
163163
// Add workload-specific parameters based on item type
164164
if (Item.WorkloadType == WorkloadType.AzureVM)
165165
{
166-
// For VM: extract VM name and resource group from VirtualMachineId
166+
// For VM: extract VM name and resource group from SourceResourceId
167167
AzureVmItem vmItem = (AzureVmItem)Item;
168-
string vmName = BackupUtils.ExtractVmNameFromVmId(vmItem.VirtualMachineId); // chck if we should use sourceresourceid here
168+
string vmName = BackupUtils.ExtractVmNameFromVmId(vmItem.SourceResourceId);
169169

170-
Logger.Instance.WriteDebug($"Reconfiguring Azure VM protection - SourceResourceId: {vmItem.SourceResourceId}, VirtualMachineId: {vmItem.VirtualMachineId}");
170+
string vmResourceGroupName = BackupUtils.ExtractVmResourceGroupFromVmId(vmItem.SourceResourceId);
171+
172+
WriteVerbose("Extracted VM Name: " + vmName + ", vmResourceGroupName: " + vmResourceGroupName);
171173

172-
string vmResourceGroupName = BackupUtils.ExtractVmResourceGroupFromVmId(vmItem.VirtualMachineId);
173-
174174
targetProviderParams.Add(ItemParams.ItemName, vmName);
175175
targetProviderParams.Add(ItemParams.AzureVMResourceGroupName, vmResourceGroupName);
176176
targetProviderParams.Add(ItemParams.ParameterSetName, "AzureVMComputeEnableProtection");
177-
if ((bool)vmItem.IsInclusionList) {
177+
178+
if (vmItem.IsInclusionList != null && (bool)vmItem.IsInclusionList) {
178179
targetProviderParams.Add(ItemParams.InclusionDisksList, vmItem.DiskLunList);
179180
}
180181
else targetProviderParams.Add(ItemParams.ExclusionDisksList, vmItem.DiskLunList);
181-
182-
// chck handling for ItemParams.AzureVMCloudServiceName, { ItemParams.ResetExclusionSettings, ResetExclusionSettings },
183-
//{ ItemParams.ExcludeAllDataDisks, ExcludeAllDataDisks.IsPresent },
184-
//{ ResourceGuardParams.Token, plainToken },
185-
//{ ResourceGuardParams.IsMUAOperation, isMUAOperation },
186182
}
187183
else if (Item.WorkloadType == WorkloadType.MSSQL )
188184
{
@@ -194,7 +190,7 @@ public override void ExecuteCmdlet()
194190
{
195191
// For AzureFiles: extract file share name and storage account name
196192
AzureFileShareItem afsItem = (AzureFileShareItem)Item;
197-
string fileShareName = afsItem.FriendlyName; // chck : do we need name here?
193+
string fileShareName = afsItem.FriendlyName; // do we need name here?
198194
string storageAccountName = BackupUtils.GetStorageAccountNameFromContainerName(afsItem.ContainerName);
199195

200196
targetProviderParams.Add(ItemParams.ItemName, fileShareName);

src/RecoveryServices/RecoveryServices.Backup/Helpers/CmdletHelper.cs

Lines changed: 17 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -42,18 +42,7 @@ public static bool IsContainerUnregistrationRequired(CmdletModel.ContainerType c
4242

4343
public static string GetContainerNameFromItem(ItemBase item)
4444
{
45-
string containerName = item.ContainerName;
46-
47-
if (item.ContainerType == CmdletModel.ContainerType.AzureVMAppContainer)
48-
{
49-
containerName = "VMAppContainer;" + containerName;
50-
}
51-
//else if (item.ContainerType == ContainerType.AzureStorage)
52-
//{
53-
// containerName = "StorageContainer;" + containerName;
54-
//}
55-
56-
return containerName;
45+
return item.ContainerName;
5746
}
5847

5948
public static JobBase UnregisterContainer(ItemBase item, string vaultName, string resourceGroupName, ServiceClientAdapter serviceClientAdapter, RSBackupVaultCmdletBase rsBackupVaultCmdletBase)
@@ -74,8 +63,6 @@ public static JobBase UnregisterContainer(ItemBase item, string vaultName, strin
7463
vaultName: vaultName,
7564
resourceGroupName: resourceGroupName);
7665

77-
Logger.Instance.WriteDebug("Unregister workload container response " + JsonConvert.SerializeObject(unRegisterResponse));
78-
7966
JobBase jobObj = rsBackupVaultCmdletBase.HandleCreatedJob(
8067
unRegisterResponse,
8168
Resources.UnregisterContainer,
@@ -161,13 +148,18 @@ public static ProtectableItemBase GetMatchingProtectableItem(ItemBase item, stri
161148
Logger.Instance.WriteDebug("Successfully got response from service");
162149

163150
List<ProtectableItemBase> itemModels = ConversionHelpers.GetProtectableItemModelList(protectableItems);
151+
152+
Logger.Instance.WriteDebug("itemName: " + item.Name + ", itemContainerName: " + item.ContainerName);
164153

165154
if (!string.IsNullOrEmpty(item.Name))
166155
{
167156
itemModels = itemModels.Where(itemModel =>
168157
{
169-
return (((AzureWorkloadProtectableItem)itemModel).Name == item.Name
170-
&& ((AzureWorkloadProtectableItem)itemModel).ContainerName == item.ContainerName);
158+
Logger.Instance.WriteDebug("proItemName: " + ((AzureWorkloadProtectableItem)itemModel).Name +
159+
", proItemContainerName: " + ((AzureWorkloadProtectableItem)itemModel).ContainerName);
160+
161+
return (string.Compare(((AzureWorkloadProtectableItem)itemModel).Name, item.Name,true) == 0
162+
&& string.Compare(((AzureWorkloadProtectableItem)itemModel).ContainerName, item.ContainerName, true) == 0);
171163
}).ToList();
172164
}
173165
else
@@ -176,8 +168,15 @@ public static ProtectableItemBase GetMatchingProtectableItem(ItemBase item, stri
176168
return null;
177169
}
178170

179-
Logger.Instance.WriteWarning($"Could not find matching protectable item for {item.Name}");
180-
return null;
171+
if(itemModels!= null && itemModels.Count > 0)
172+
{
173+
return itemModels[0];
174+
}
175+
else
176+
{
177+
Logger.Instance.WriteWarning($"Could not find matching protectable item for {item.Name}");
178+
return null;
179+
}
181180
}
182181
catch (Exception ex)
183182
{

src/RecoveryServices/RecoveryServices/ChangeLog.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
-->
2020
## Upcoming Release
2121
* Added Cross region restore support for new region - eastus3.
22-
22+
* Added support for reregistration of a backup item to another vault.
2323

2424
## Version 7.8.0
2525
* Added new optional parameter CVMOsDiskEncryptionSetId in Restore-AzRecoveryServicesBackupItem.

0 commit comments

Comments
 (0)