Ejemplo n.º 1
0
        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);
            }
        }
Ejemplo n.º 2
0
        public void CRUDResourceGroupLock()
        {
            var handler = new RecordedDelegatingHandler();

            using (UndoContext context = UndoContext.Current)
            {
                context.Start();
                var client = GetAuthorizationClient(handler);

                string resourceGroupName = "myRG";
                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.CreateOrUpdateAtResourceGroupLevel(resourceGroupName, 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 RG locks with no filter
                var getResult1 = client.ManagementLocks.ListResourceGroupLevel(resourceGroupName, 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.ListResourceGroupLevel(resourceGroupName, new ManagementLockGetQueryParameter()
                {
                    AtScope = "atScope()"
                });

                Assert.Equal(HttpStatusCode.OK, getResult2.StatusCode);
                Assert.True(getResult2.Lock.Count == 1);
                Assert.True(getResult2.Lock.Any(p => p.Name == lockName));

                //Delete lock
                var deleteResult = client.ManagementLocks.DeleteAtResourceGroupLevel(resourceGroupName, lockName);
                Assert.Equal(HttpStatusCode.OK, deleteResult.StatusCode);
            }
        }
Ejemplo n.º 3
0
 /// <summary>
 /// Create or update a management lock at the resource group level.
 /// </summary>
 /// <param name='operations'>
 /// Reference to the
 /// Microsoft.Azure.Management.Internal.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));
 }
Ejemplo n.º 4
0
 /// <summary>
 /// Create or update a management lock at the resource group level.
 /// </summary>
 /// <param name='operations'>
 /// Reference to the
 /// Microsoft.Azure.Management.Internal.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());
 }