// Verify restore point properties. // Verify disk exclusion by verifying that the returned restore point contains the id of the // excluded disk in 'ExcludeDisks' property and did not create diskRestorePoint // of the excluded data disk. // For RestorePoint created via cross-region copy scenario, sourceRestorePoint.Id is verified. // For GET instance view of RestorePoint created via cross-region copy scenario, instanceView is verified. void VerifyRestorePointDetails(RestorePoint restorePoint, string restorePointName, OSDisk osDisk, int excludeDisksCount, string excludeDiskId, string vmSize, bool isRemoteCopy = false, string sourceRestorePointId = null, bool isRemoteCopyInstanceView = false) { Assert.Equal(restorePointName, restorePoint.Name); Assert.NotNull(restorePoint.Id); Assert.Equal(ProvisioningState.Succeeded.ToString(), restorePoint.ProvisioningState); Assert.Equal(ConsistencyModeTypes.ApplicationConsistent, restorePoint.ConsistencyMode); RestorePointSourceVMStorageProfile storageProfile = restorePoint.SourceMetadata.StorageProfile; Assert.Equal(osDisk.Name, storageProfile.OsDisk.Name, ignoreCase: true); Assert.Equal(osDisk.ManagedDisk.Id, storageProfile.OsDisk.ManagedDisk.Id, ignoreCase: true); Assert.NotNull(restorePoint.SourceMetadata.VmId); Assert.Equal(vmSize, restorePoint.SourceMetadata.HardwareProfile.VmSize); if (isRemoteCopy) { Assert.Equal(sourceRestorePointId, restorePoint.SourceRestorePoint.Id); if (isRemoteCopyInstanceView) { RestorePointInstanceView restorePointInstanceView = restorePoint.InstanceView; Assert.NotNull(restorePointInstanceView); Assert.Equal(storageProfile.DataDisks.Count + 1, restorePointInstanceView.DiskRestorePoints.Count); Assert.NotNull(restorePointInstanceView.DiskRestorePoints[0].ReplicationStatus.CompletionPercent); } } else { Assert.Equal(excludeDisksCount, restorePoint.ExcludeDisks.Count); Assert.Equal(excludeDiskId, restorePoint.ExcludeDisks[0].Id, ignoreCase: true); } }
internal RestorePointData(ResourceIdentifier id, string name, ResourceType resourceType, SystemData systemData, IList <WritableSubResource> excludeDisks, RestorePointSourceMetadata sourceMetadata, string provisioningState, ConsistencyModeTypes?consistencyMode, DateTimeOffset?timeCreated, WritableSubResource sourceRestorePoint, RestorePointInstanceView instanceView) : base(id, name, resourceType, systemData) { ExcludeDisks = excludeDisks; SourceMetadata = sourceMetadata; ProvisioningState = provisioningState; ConsistencyMode = consistencyMode; TimeCreated = timeCreated; SourceRestorePoint = sourceRestorePoint; InstanceView = instanceView; }
internal static RestorePointData DeserializeRestorePointData(JsonElement element) { ResourceIdentifier id = default; string name = default; ResourceType type = default; SystemData systemData = default; Optional <IList <WritableSubResource> > excludeDisks = default; Optional <RestorePointSourceMetadata> sourceMetadata = default; Optional <string> provisioningState = default; Optional <ConsistencyModeTypes> consistencyMode = default; Optional <DateTimeOffset> timeCreated = default; Optional <WritableSubResource> sourceRestorePoint = default; Optional <RestorePointInstanceView> instanceView = default; foreach (var property in element.EnumerateObject()) { if (property.NameEquals("id")) { id = new ResourceIdentifier(property.Value.GetString()); continue; } if (property.NameEquals("name")) { name = property.Value.GetString(); continue; } if (property.NameEquals("type")) { type = new ResourceType(property.Value.GetString()); continue; } if (property.NameEquals("systemData")) { systemData = JsonSerializer.Deserialize <SystemData>(property.Value.ToString()); continue; } if (property.NameEquals("properties")) { if (property.Value.ValueKind == JsonValueKind.Null) { property.ThrowNonNullablePropertyIsNull(); continue; } foreach (var property0 in property.Value.EnumerateObject()) { if (property0.NameEquals("excludeDisks")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } List <WritableSubResource> array = new List <WritableSubResource>(); foreach (var item in property0.Value.EnumerateArray()) { array.Add(JsonSerializer.Deserialize <WritableSubResource>(item.ToString())); } excludeDisks = array; continue; } if (property0.NameEquals("sourceMetadata")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } sourceMetadata = RestorePointSourceMetadata.DeserializeRestorePointSourceMetadata(property0.Value); continue; } if (property0.NameEquals("provisioningState")) { provisioningState = property0.Value.GetString(); continue; } if (property0.NameEquals("consistencyMode")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } consistencyMode = new ConsistencyModeTypes(property0.Value.GetString()); continue; } if (property0.NameEquals("timeCreated")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } timeCreated = property0.Value.GetDateTimeOffset("O"); continue; } if (property0.NameEquals("sourceRestorePoint")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } sourceRestorePoint = JsonSerializer.Deserialize <WritableSubResource>(property0.Value.ToString()); continue; } if (property0.NameEquals("instanceView")) { if (property0.Value.ValueKind == JsonValueKind.Null) { property0.ThrowNonNullablePropertyIsNull(); continue; } instanceView = RestorePointInstanceView.DeserializeRestorePointInstanceView(property0.Value); continue; } } continue; } } return(new RestorePointData(id, name, type, systemData, Optional.ToList(excludeDisks), sourceMetadata.Value, provisioningState.Value, Optional.ToNullable(consistencyMode), Optional.ToNullable(timeCreated), sourceRestorePoint, instanceView.Value)); }