/// <summary> /// Helper function to convert ps backup job model from service response. /// </summary> public static CmdletModel.JobBase GetPSJob(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(AzureIaaSVMJob)) { response = GetPSAzureVmJob(serviceClientJob); } return response; }
/// <summary> /// Helper function to convert ps azure vm backup policy job from service response. /// </summary> private static CmdletModel.AzureVmJob GetPSAzureVmJob(JobResource serviceClientJob) { CmdletModel.AzureVmJob response; AzureIaaSVMJob vmJob = serviceClientJob.Properties as AzureIaaSVMJob; if (vmJob.ExtendedInfo != null) { response = new CmdletModel.AzureVmJobDetails(); } else { response = new CmdletModel.AzureVmJob(); } response.JobId = GetLastIdFromFullId(serviceClientJob.Id); response.StartTime = vmJob.StartTime; response.EndTime = vmJob.EndTime; response.Duration = vmJob.Duration; response.Status = vmJob.Status; response.VmVersion = vmJob.VirtualMachineVersion; response.WorkloadName = vmJob.EntityFriendlyName; response.ActivityId = vmJob.ActivityId; response.BackupManagementType = CmdletModel.EnumUtils.GetEnum<CmdletModel.BackupManagementType>( GetPSBackupManagementType(vmJob.BackupManagementType)); response.Operation = vmJob.Operation; if (vmJob.ErrorDetails != null) { response.ErrorDetails = new List<CmdletModel.AzureVmJobErrorInfo>(); foreach (var vmError in vmJob.ErrorDetails) { response.ErrorDetails.Add(GetPSAzureVmErrorInfo(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; }