///GENMHASH:2FE8C4C2D5EAD7E37787838DE0B47D92:F59DCE21697E0967B005EDC164141A79 protected override VirtualMachineImpl WrapModel(string name) { var osDisk = new OSDisk(); var storageProfile = new StorageProfile(); storageProfile.OsDisk = osDisk; storageProfile.DataDisks = new List <DataDisk>(); var networkProfile = new NetworkProfile(); networkProfile.NetworkInterfaces = new List <NetworkInterfaceReferenceInner>(); VirtualMachineInner inner = new VirtualMachineInner(); inner.StorageProfile = storageProfile; inner.OsProfile = new OSProfile(); inner.HardwareProfile = new HardwareProfile(); inner.NetworkProfile = networkProfile; return(new VirtualMachineImpl( name, inner, base.Manager, this.storageManager, this.networkManager, this.rbacManager)); }
// Create restore point and exercise 'ExcludeDisk' functionality by excluding dataDisk. private RestorePoint CreateRestorePoint(string rgName, string rpcName, string rpName, OSDisk osDisk, string diskToExclude) { string osDiskId = osDisk.ManagedDisk.Id; string osDiskName = osDisk.Name; ApiEntityReference diskToExcludeEntityRef = new ApiEntityReference() { Id = diskToExclude }; List <ApiEntityReference> disksToExclude = new List <ApiEntityReference> { diskToExcludeEntityRef }; return(m_CrpClient.RestorePoints.Create(rgName, rpcName, rpName, disksToExclude)); }
internal AzureSLA GetDiskSLA(OSDisk osdisk) { return(this.GetDiskSLA(osdisk.DiskSizeGB, osdisk.Vhd.Uri)); }
public void CreateRpcAndRestorePoints() { using (MockContext context = MockContext.Start(this.GetType().FullName)) { EnsureClientsInitialized(context); string location = ComputeManagementTestUtilities.DefaultLocation; var rgName = ComputeManagementTestUtilities.GenerateName(TestPrefix); ImageReference imageRef = GetPlatformVMImage(useWindowsImage: true); VirtualMachine inputVM; string storageAccountForDisksName = TestUtilities.GenerateName(TestPrefix); string availabilitySetName = TestUtilities.GenerateName(TestPrefix); try { StorageAccount storageAccountForDisks = CreateStorageAccount(rgName, storageAccountForDisksName); // create the VM VirtualMachine createdVM = CreateVM(rgName, availabilitySetName, storageAccountForDisks, imageRef, out inputVM, (vm) => { vm.DiagnosticsProfile = GetManagedDiagnosticsProfile(); }, hasManagedDisks: true); DataDisk dataDisk = createdVM.StorageProfile.DataDisks[0]; string dataDiskId = dataDisk.ManagedDisk.Id; OSDisk osDisk = createdVM.StorageProfile.OsDisk; string rpName = ComputeManagementTestUtilities.GenerateName("rpClientTest"); string rpcName = ComputeManagementTestUtilities.GenerateName("rpc1ClientTest"); string rpcName2 = ComputeManagementTestUtilities.GenerateName("rpc2ClientTest"); string vmId = createdVM.Id; string vmSize = createdVM.HardwareProfile.VmSize; // create two RPCs Dictionary <string, string> tags = new Dictionary <string, string>() { { "RG", "rg" }, { "testTag", "testTagValue" }, }; RestorePointCollection createdRpc = CreateRpc(createdVM.Id, rpcName, rgName, location, tags); VerifyRpc(createdRpc, rpcName, location, vmId); RestorePointCollection createdRpc2 = CreateRpc(createdVM.Id, rpcName2, rgName, location, tags); VerifyRpc(createdRpc2, rpcName2, location, vmId); // for PATCH RPC, only tags are allowed to be updated Dictionary <string, string> newTags = new Dictionary <string, string>() { { "newTag", "newValue1" }, { "newtestTag", "newValue2" }, }; UpdateRpc(rgName, rpcName, createdRpc, newTags); // GET list of all rpc in the resource group. IEnumerable <RestorePointCollection> rpcs = ListRpcInResourceGroup(rgName); VerifyReturnedRpcs(rpcs, rpcName, rpcName2, location, vmId); // GET list of all rpc in subscription. rpcs = ListRpcInSubscription(); VerifyReturnedRpcs(rpcs, rpcName, rpcName2, location, vmId); // create RP in the RPC RestorePoint createdRP = CreateRestorePoint(rgName, rpcName, rpName, osDisk, diskToExclude: dataDiskId); VerifyRestorePointDetails(createdRP, rpName, osDisk, 1, excludeDiskId: dataDiskId, vmSize: vmSize); RestorePoint getRP = GetRP(rgName, rpcName, rpName); VerifyRestorePointDetails(createdRP, rpName, osDisk, 1, excludeDiskId: dataDiskId, vmSize: vmSize); // get RPC without $expand=restorePoints RestorePointCollection returnedRpc = GetRpc(rgName, rpcName); VerifyRpc(returnedRpc, rpcName, location, vmId); // get RPC with $expand=restorePoints returnedRpc = GetRpc(rgName, rpcName, RestorePointCollectionExpandOptions.RestorePoints); VerifyRpc(returnedRpc, rpcName, location, vmId, shouldRpcContainRestorePoints: true); // verify the restore point returned from GET RPC with $expand=restorePoints RestorePoint rpInRpc = returnedRpc.RestorePoints[0]; VerifyRestorePointDetails(rpInRpc, rpName, osDisk, 1, excludeDiskId: dataDiskId, vmSize: vmSize); // delete the restore point DeleteRP(rgName, rpcName, rpName); // GET of deleted restore point should return 404 not found try { GetRP(rgName, rpcName, rpName); Assert.False(true); } catch (CloudException ex) { Assert.True(ex.Response.StatusCode == HttpStatusCode.NotFound); } // delete the restore point collection DeleteRpc(rgName, rpcName); // GET of deleted RPC should return 404 not found try { GetRpc(rgName, rpcName); Assert.False(true); } catch (CloudException ex) { Assert.True(ex.Response.StatusCode == HttpStatusCode.NotFound); } } catch (Exception e) { throw e; } finally { m_ResourcesClient.ResourceGroups.Delete(rgName); } } }
// 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. void VerifyRestorePointDetails(RestorePoint restorePoint, string restorePointName, OSDisk osDisk, int excludeDisksCount, string excludeDiskId, string vmSize) { 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.Equal(excludeDisksCount, restorePoint.ExcludeDisks.Count); Assert.Equal(excludeDiskId, restorePoint.ExcludeDisks[0].Id, ignoreCase: true); Assert.NotNull(restorePoint.SourceMetadata.VmId); Assert.Equal(vmSize, restorePoint.SourceMetadata.HardwareProfile.VmSize); }
// 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); } }