/// <summary> /// Create or update a management lock at the resource group level. /// </summary> /// <param name='operations'> /// Reference to the /// Microsoft.Azure.Management.Resources.IManagementLockOperations. /// </param> /// <param name='resourceGroupName'> /// Required. The resource group name. /// </param> /// <param name='lockName'> /// Required. The lock name. /// </param> /// <param name='parameters'> /// Required. The management lock parameters. /// </param> /// <returns> /// Management lock information. /// </returns> public static ManagementLockReturnResult CreateOrUpdateAtResourceGroupLevel(this IManagementLockOperations operations, string resourceGroupName, string lockName, ManagementLockProperties parameters) { return Task.Factory.StartNew((object s) => { return ((IManagementLockOperations)s).CreateOrUpdateAtResourceGroupLevelAsync(resourceGroupName, lockName, parameters); } , operations, CancellationToken.None, TaskCreationOptions.None, TaskScheduler.Default).Unwrap().GetAwaiter().GetResult(); }
public void CRUDSubscriptionLock() { var handler = new RecordedDelegatingHandler(); using (UndoContext context = UndoContext.Current) { context.Start(); var client = GetAuthorizationClient(handler); string lockName = TestUtilities.GenerateName("mylock"); string lockType = "Microsoft.Authorization/locks"; var lockProperties = new ManagementLockProperties { Level = "CanNotDelete", Notes = "optional text." }; // 1 Create lock var createResult1 = client.ManagementLocks.CreateOrUpdateAtSubscriptionLevel(lockName, lockProperties); Assert.Equal(HttpStatusCode.Created, createResult1.StatusCode); Assert.Equal(lockName, createResult1.ManagementLock.Name); Assert.Equal(lockProperties.Level, createResult1.ManagementLock.Properties.Level); Assert.Equal(lockProperties.Notes, createResult1.ManagementLock.Properties.Notes); Assert.Equal(lockType, createResult1.ManagementLock.Type); // 2 Get all subscription level locks with no filter var getResult1 = client.ManagementLocks.ListSubscriptionLevel(new ManagementLockGetQueryParameter { AtScope = "" }); Assert.Equal(HttpStatusCode.OK, getResult1.StatusCode); Assert.True(getResult1.Lock.Count > 0); Assert.True(getResult1.Lock.Any(p => p.Name == lockName)); // Get all subscription level locks with filter var getResult2 = client.ManagementLocks.ListSubscriptionLevel(new ManagementLockGetQueryParameter() { AtScope = "atScope()" }); Assert.Equal(HttpStatusCode.OK, getResult2.StatusCode); Assert.True(getResult2.Lock.Any(p => p.Name == lockName)); //Delete lock var deleteResult = client.ManagementLocks.DeleteAtSubscriptionLevel(lockName); Assert.Equal(HttpStatusCode.OK, deleteResult.StatusCode); } }
public void CRUDResourceLock() { var handler = new RecordedDelegatingHandler(); using (UndoContext context = UndoContext.Current) { context.Start(); var client = GetAuthorizationClient(handler); string resourceGroupName = "Default-SQL-EastAsia"; ResourceIdentity resourceIdentity = new ResourceIdentity { ParentResourcePath = "servers/g6gsefjdal", ResourceName = "AutomatedSqlExport_manikdb_20131123T091548Z", ResourceProviderNamespace = "Microsoft.Sql", ResourceProviderApiVersion = "2014-01-04", ResourceType = "databases" }; string lockName = TestUtilities.GenerateName("mylock"); string lockType = "Microsoft.Authorization/locks"; var lockProperties = new ManagementLockProperties() { Level = "CanNotDelete", Notes = "optional text." }; // 1 Create lock var createResult = client.ManagementLocks.CreateOrUpdateAtResourceLevel(resourceGroupName, resourceIdentity, lockName, lockProperties); Assert.Equal(HttpStatusCode.Created, createResult.StatusCode); Assert.Equal(lockName, createResult.ManagementLock.Name); Assert.Equal(lockProperties.Level, createResult.ManagementLock.Properties.Level); Assert.Equal(lockProperties.Notes, createResult.ManagementLock.Properties.Notes); Assert.Equal(lockType, createResult.ManagementLock.Type); // 2 Get all RG locks with no filter var getResult1 = client.ManagementLocks.ListResourceLevel(resourceGroupName, resourceIdentity, new ManagementLockGetQueryParameter { AtScope = "" }); Assert.Equal(HttpStatusCode.OK, getResult1.StatusCode); Assert.True(getResult1.Lock.Any(p => p.Name==lockName)); // 3 Get all resource level locks with filter var getResult2 = client.ManagementLocks.ListResourceLevel(resourceGroupName, resourceIdentity, new ManagementLockGetQueryParameter() { AtScope = "atScope()" }); Assert.Equal(HttpStatusCode.OK, getResult2.StatusCode); Assert.True(getResult2.Lock.Any(p => p.Name == lockName)); //Delete lock var deleteResult = client.ManagementLocks.DeleteAtResourceLevel(resourceGroupName, resourceIdentity, lockName); Assert.Equal(HttpStatusCode.OK, deleteResult.StatusCode); } }
/// <summary> /// Create or update a management lock at the resource group level. /// </summary> /// <param name='operations'> /// Reference to the /// Microsoft.Azure.Management.Resources.IManagementLockOperations. /// </param> /// <param name='resourceGroupName'> /// Required. The resource group name. /// </param> /// <param name='lockName'> /// Required. The lock name. /// </param> /// <param name='parameters'> /// Required. The management lock parameters. /// </param> /// <returns> /// Management lock information. /// </returns> public static Task<ManagementLockReturnResult> CreateOrUpdateAtResourceGroupLevelAsync(this IManagementLockOperations operations, string resourceGroupName, string lockName, ManagementLockProperties parameters) { return operations.CreateOrUpdateAtResourceGroupLevelAsync(resourceGroupName, lockName, parameters, CancellationToken.None); }