/// <summary> /// Helper function to convert ps backup job model from service response. /// </summary> public static CmdletModel.JobBase GetPSJobCrr(CrrModel.JobResource serviceClientJob) { CmdletModel.JobBase response = null; // ServiceClient doesn't initialize Properties if the type of job is not known to current version of ServiceClient. if (serviceClientJob.Properties == null) { Logger.Instance.WriteWarning(Resources.UnsupportedJobWarning); } else if (serviceClientJob.Properties.GetType() == typeof(CrrModel.AzureIaaSVMJob)) { response = GetPSAzureVmJobCrr(serviceClientJob); } else if (serviceClientJob.Properties.GetType() == typeof(CrrModel.AzureStorageJob)) { response = GetPSAzureFileShareJobCrr(serviceClientJob); } else if (serviceClientJob.Properties.GetType() == typeof(CrrModel.AzureWorkloadJob)) { response = GetPSAzureWorkloadJobCrr(serviceClientJob); } else if (serviceClientJob.Properties.GetType() == typeof(CrrModel.MabJob)) { response = GetPSMabJobCrr(serviceClientJob); } /*else if (serviceClientJob.Properties.GetType() == typeof(VaultJob)) * { * response = GetPSAzureVaultJob(serviceClientJob); // add Crr if needed * }*/ return(response); }
/// <summary> /// Helper function to convert ps azure vm backup policy job from service response. /// </summary> private static CmdletModel.AzureJob GetPSAzureBaseJobCrr(CrrModel.JobResource serviceClientJob) { CrrModel.Job baseJob = serviceClientJob.Properties; CmdletModel.AzureJob response = new CmdletModel.AzureJob(); response.JobId = GetLastIdFromFullId(serviceClientJob.Id); response.StartTime = GetJobStartTime(baseJob.StartTime); response.EndTime = baseJob.EndTime; response.Status = baseJob.Status; response.WorkloadName = baseJob.EntityFriendlyName; response.ActivityId = baseJob.ActivityId; response.BackupManagementType = CmdletModel.ConversionUtils.GetPsBackupManagementType(baseJob.BackupManagementType); response.Operation = baseJob.Operation; return(response); }
public override void ExecuteCmdlet() { ExecutionBlock(() => { base.ExecuteCmdlet(); ResourceIdentifier resourceIdentifier = new ResourceIdentifier(VaultId); string vaultName = resourceIdentifier.ResourceName; string resourceGroupName = resourceIdentifier.ResourceGroupName; if (ParameterSetName == JobFilterSet) { JobId = Job.JobId; } WriteDebug("Fetching job with ID: " + JobId); if (UseSecondaryRegion.IsPresent) { CrrModel.CrrJobRequest jobRequest = new CrrModel.CrrJobRequest(); jobRequest.JobName = JobId; jobRequest.ResourceId = VaultId; // check this GetVault for rainy day scenario ARSVault vault = ServiceClientAdapter.GetVault(resourceGroupName, vaultName); string secondaryRegion = BackupUtils.regionMap[vault.Location]; CrrModel.JobResource jobDetailsCrr = ServiceClientAdapter.GetCRRJobDetails(secondaryRegion, jobRequest); WriteObject(JobConversions.GetPSJobCrr(jobDetailsCrr)); } else { JobResource jobDetails = ServiceClientAdapter.GetJob( JobId, vaultName: vaultName, resourceGroupName: resourceGroupName); WriteObject(JobConversions.GetPSJob(jobDetails)); } }); }
/// <summary> /// Helper function to convert ps azure vm backup policy job from service response. /// </summary> private static CmdletModel.AzureVmJob GetPSAzureVmJobCrr(CrrModel.JobResource serviceClientJob) { CmdletModel.AzureVmJob response; CrrModel.AzureIaaSVMJob vmJob = serviceClientJob.Properties as CrrModel.AzureIaaSVMJob; if (vmJob.ExtendedInfo != null) { response = new CmdletModel.AzureVmJobDetails(); } else { response = new CmdletModel.AzureVmJob(); } response.JobId = GetLastIdFromFullId(serviceClientJob.Id); response.StartTime = GetJobStartTime(vmJob.StartTime); response.EndTime = vmJob.EndTime; response.Duration = GetJobDuration(vmJob.Duration); response.Status = vmJob.Status; response.VmVersion = vmJob.VirtualMachineVersion; response.WorkloadName = vmJob.EntityFriendlyName; response.ActivityId = vmJob.ActivityId; response.BackupManagementType = CmdletModel.ConversionUtils.GetPsBackupManagementType(vmJob.BackupManagementType); response.Operation = vmJob.Operation; if (vmJob.ErrorDetails != null) { response.ErrorDetails = new List <CmdletModel.AzureJobErrorInfo>(); foreach (var vmError in vmJob.ErrorDetails) { response.ErrorDetails.Add(GetPSAzureVmErrorInfoCrr(vmError)); } } // fill extended info if present if (vmJob.ExtendedInfo != null) { CmdletModel.AzureVmJobDetails detailedResponse = response as CmdletModel.AzureVmJobDetails; detailedResponse.DynamicErrorMessage = vmJob.ExtendedInfo.DynamicErrorMessage; if (vmJob.ExtendedInfo.PropertyBag != null) { detailedResponse.Properties = new Dictionary <string, string>(); foreach (var key in vmJob.ExtendedInfo.PropertyBag.Keys) { detailedResponse.Properties.Add(key, vmJob.ExtendedInfo.PropertyBag[key]); } } if (vmJob.ExtendedInfo.TasksList != null) { detailedResponse.SubTasks = new List <CmdletModel.AzureVmJobSubTask>(); foreach (var vmJobTask in vmJob.ExtendedInfo.TasksList) { detailedResponse.SubTasks.Add(new CmdletModel.AzureVmJobSubTask() { Name = vmJobTask.TaskId, Status = vmJobTask.Status }); } } } return(response); }
/// <summary> /// Creates the powershell MabJob object from service response. /// </summary> private static CmdletModel.JobBase GetPSMabJobCrr(CrrModel.JobResource serviceClientJob) { CmdletModel.MabJob response; CrrModel.MabJob mabJob = serviceClientJob.Properties as CrrModel.MabJob; if (mabJob.ExtendedInfo != null) { response = new CmdletModel.MabJobDetails(); } else { response = new CmdletModel.MabJob(); } // Transfer values from service job object to powershell job object. response.JobId = GetLastIdFromFullId(serviceClientJob.Id); response.StartTime = GetJobStartTime(mabJob.StartTime); response.EndTime = mabJob.EndTime; response.Duration = GetJobDuration(mabJob.Duration); response.Status = mabJob.Status; response.WorkloadName = mabJob.EntityFriendlyName; response.ActivityId = mabJob.ActivityId; response.BackupManagementType = CmdletModel.ConversionUtils.GetPsBackupManagementType(mabJob.BackupManagementType); response.Operation = mabJob.Operation; if (mabJob.ErrorDetails != null) { response.ErrorDetails = new List <CmdletModel.AzureJobErrorInfo>(); foreach (var mabError in mabJob.ErrorDetails) { response.ErrorDetails.Add(GetPSMabErrorInfoCrr(mabError)); } } // fill extended info if present if (mabJob.ExtendedInfo != null) { CmdletModel.MabJobDetails detailedResponse = response as CmdletModel.MabJobDetails; detailedResponse.DynamicErrorMessage = mabJob.ExtendedInfo.DynamicErrorMessage; if (mabJob.ExtendedInfo.PropertyBag != null) { detailedResponse.Properties = new Dictionary <string, string>(); foreach (var key in mabJob.ExtendedInfo.PropertyBag.Keys) { detailedResponse.Properties.Add(key, mabJob.ExtendedInfo.PropertyBag[key]); } } if (mabJob.ExtendedInfo.TasksList != null) { detailedResponse.SubTasks = new List <CmdletModel.MabJobSubTask>(); foreach (var mabJobTask in mabJob.ExtendedInfo.TasksList) { detailedResponse.SubTasks.Add(new CmdletModel.MabJobSubTask() { Name = mabJobTask.TaskId, Status = mabJobTask.Status }); } } } return(response); }