internal virtual void TestInitialize([System.Runtime.CompilerServices.CallerMemberName] string methodName = "testframework_failed")
        {
            Context                 = SynapseMockContext.Start(this.GetType(), methodName);
            CommonData              = new CommonTestFixture();
            SynapseClient           = Context.GetServiceClient <SynapseManagementClient>();
            SynapseManagementHelper = new SynapseManagementHelper(CommonData, Context);

            if (IsRecordMode)
            {
                //set mode to none to skip recoding during setup
                HttpMockServer.Mode = HttpRecorderMode.None;
                SynapseManagementHelper.RegisterSubscriptionForResource("Microsoft.Synapse");
                SynapseManagementHelper.RegisterSubscriptionForResource("Microsoft.Storage");
                this.CreateResources();

                //set mode back to record
                HttpMockServer.Mode = HttpRecorderMode.Record;
                string mockedSubscriptionId = TestUtilities.GenerateGuid().ToString();
                CommonData.SubscriptionId = SynapseManagementTestUtilities.GetSubscriptionId();
                this.Context.AddTextReplacementRule(CommonData.SubscriptionId, mockedSubscriptionId);
            }
        }
Пример #2
0
        public void TestWorkspaceLifeCycle()
        {
            TestInitialize();

            // create workspace
            string workspaceName   = TestUtilities.GenerateName("synapsesdkworkspace");
            var    createParams    = CommonData.PrepareWorkspaceCreateParams();
            var    workspaceCreate = SynapseClient.Workspaces.CreateOrUpdate(CommonData.ResourceGroupName, workspaceName, createParams);

            Assert.Equal(CommonTestFixture.WorkspaceType, workspaceCreate.Type);
            Assert.Equal(workspaceName, workspaceCreate.Name);
            Assert.Equal(CommonData.Location, workspaceCreate.Location);
            for (int i = 0; i < 60; i++)
            {
                var workspaceGet = SynapseClient.Workspaces.Get(CommonData.ResourceGroupName, workspaceName);
                if (workspaceGet.ProvisioningState.Equals("Succeeded"))
                {
                    Assert.Equal(CommonTestFixture.WorkspaceType, workspaceGet.Type);
                    Assert.Equal(workspaceName, workspaceGet.Name);
                    Assert.Equal(CommonData.Location, workspaceGet.Location);
                    break;
                }

                Thread.Sleep(30000);
                Assert.True(i < 60, "Synapse Workspace is not in succeeded state even after 30 min.");
            }

            // update workspace
            Dictionary <string, string> tagsToUpdate = new Dictionary <string, string> {
                { "TestTag", "TestUpdate" }
            };

            createParams.Tags = tagsToUpdate;
            var workspaceUpdate = SynapseClient.Workspaces.CreateOrUpdate(CommonData.ResourceGroupName, workspaceName, createParams);

            Assert.NotNull(workspaceUpdate.Tags);
            Assert.Equal("TestUpdate", workspaceUpdate.Tags["TestTag"]);

            // list workspace from resource group
            var firstPage = SynapseClient.Workspaces.ListByResourceGroup(CommonData.ResourceGroupName);
            var workspaceFromResourceGroup = SynapseManagementTestUtilities.ListResources(firstPage, SynapseClient.Workspaces.ListNext);

            Assert.True(1 <= workspaceFromResourceGroup.Count);
            bool isFound        = false;
            int  workspaceCount = workspaceFromResourceGroup.Count;

            for (int i = 0; i < workspaceCount; i++)
            {
                if (workspaceFromResourceGroup[i].Name.Equals(workspaceName))
                {
                    isFound = true;
                    Assert.Equal(CommonTestFixture.WorkspaceType, workspaceFromResourceGroup[i].Type);
                    Assert.Equal(CommonData.Location, workspaceFromResourceGroup[i].Location);
                    break;
                }
            }

            Assert.True(isFound, string.Format("Workspace created earlier is not found when listing all in resource group {0}", CommonData.ResourceGroupName));

            // list workspace from subscription
            firstPage = SynapseClient.Workspaces.List();
            Assert.True(1 <= workspaceFromResourceGroup.Count);
            var workspaceFromSubscription = SynapseManagementTestUtilities.ListResources(firstPage, SynapseClient.Workspaces.ListNext);

            Assert.True(1 <= workspaceFromSubscription.Count);
            isFound = false;
            for (int i = 0; i < workspaceFromSubscription.Count; i++)
            {
                if (workspaceFromSubscription[i].Name.Equals(workspaceName))
                {
                    isFound = true;
                    Assert.Equal(CommonTestFixture.WorkspaceType, workspaceFromSubscription[i].Type);
                    Assert.Equal(CommonData.Location, workspaceFromSubscription[i].Location);
                    break;
                }
            }

            Assert.True(isFound, string.Format("Workspace created earlier is not found when listing all in subscription {0}", CommonData.SubscriptionId));

            // delete workspace
            SynapseClient.Workspaces.Delete(CommonData.ResourceGroupName, workspaceName);
            firstPage = SynapseClient.Workspaces.ListByResourceGroup(CommonData.ResourceGroupName);
            var workspaceAfterDelete = SynapseManagementTestUtilities.ListResources(firstPage, SynapseClient.Workspaces.ListNext);

            Assert.True(workspaceCount - 1 == workspaceAfterDelete.Count);
        }
Пример #3
0
        public void TestSqlPoolLifeCycle()
        {
            TestInitialize();

            // create workspace
            string workspaceName         = TestUtilities.GenerateName("synapsesdkworkspace");
            var    createWorkspaceParams = CommonData.PrepareWorkspaceCreateParams();
            var    workspaceCreate       = SynapseClient.Workspaces.CreateOrUpdate(CommonData.ResourceGroupName, workspaceName, createWorkspaceParams);

            Assert.Equal(CommonTestFixture.WorkspaceType, workspaceCreate.Type);
            Assert.Equal(workspaceName, workspaceCreate.Name);
            Assert.Equal(CommonData.Location, workspaceCreate.Location);

            for (int i = 0; i < 60; i++)
            {
                var workspaceGet = SynapseClient.Workspaces.Get(CommonData.ResourceGroupName, workspaceName);
                if (workspaceGet.ProvisioningState.Equals("Succeeded"))
                {
                    Assert.Equal(CommonTestFixture.WorkspaceType, workspaceGet.Type);
                    Assert.Equal(workspaceName, workspaceGet.Name);
                    Assert.Equal(CommonData.Location, workspaceGet.Location);
                    break;
                }

                Thread.Sleep(30000);
                Assert.True(i < 60, "Synapse Workspace is not in succeeded state even after 30 min.");
            }

            // create sqlpool
            string sqlpoolName         = TestUtilities.GenerateName("sqlpool");
            var    createSqlpoolParams = CommonData.PrepareSqlpoolCreateParams();
            var    sqlpoolCreate       = SynapseClient.SqlPools.Create(CommonData.ResourceGroupName, workspaceName, sqlpoolName, createSqlpoolParams);

            Assert.Equal(CommonTestFixture.SqlpoolType, sqlpoolCreate.Type);
            Assert.Equal(sqlpoolName, sqlpoolCreate.Name);
            Assert.Equal(CommonData.Location, sqlpoolCreate.Location);

            // get sqlpool
            for (int i = 0; i < 60; i++)
            {
                var sqlpoolGet = SynapseClient.SqlPools.Get(CommonData.ResourceGroupName, workspaceName, sqlpoolName);
                if (sqlpoolGet.ProvisioningState.Equals("Succeeded"))
                {
                    Assert.Equal(CommonTestFixture.SqlpoolType, sqlpoolCreate.Type);
                    Assert.Equal(sqlpoolName, sqlpoolCreate.Name);
                    Assert.Equal(CommonData.Location, sqlpoolCreate.Location);
                    break;
                }

                Thread.Sleep(30000);
                Assert.True(i < 60, "Synapse SqlPool is not in succeeded state even after 30 min.");
            }

            // update sqlpool
            Dictionary <string, string> tagsToUpdate = new Dictionary <string, string> {
                { "TestTag", "TestUpdate" }
            };
            SqlPoolPatchInfo sqlPoolPatchInfo = new SqlPoolPatchInfo
            {
                Tags = tagsToUpdate,
                Sku  = sqlpoolCreate.Sku
            };

            SynapseClient.SqlPools.Update(CommonData.ResourceGroupName, workspaceName, sqlpoolName, sqlPoolPatchInfo);
            Thread.Sleep(30000);
            var sqlpoolUpdate = SynapseClient.SqlPools.Get(CommonData.ResourceGroupName, workspaceName, sqlpoolName);

            Assert.NotNull(sqlpoolUpdate.Tags);
            Assert.Equal("TestUpdate", sqlpoolUpdate.Tags["TestTag"]);

            // list sqlpool from workspace
            var firstPage            = SynapseClient.SqlPools.ListByWorkspace(CommonData.ResourceGroupName, workspaceName);
            var sqlpoolFromWorkspace = SynapseManagementTestUtilities.ListResources(firstPage, SynapseClient.SqlPools.ListByWorkspaceNext);

            Assert.True(1 <= sqlpoolFromWorkspace.Count);
            bool isFound      = false;
            int  sqlpoolCount = sqlpoolFromWorkspace.Count;

            for (int i = 0; i < sqlpoolCount; i++)
            {
                if (sqlpoolFromWorkspace[i].Name.Equals(sqlpoolName))
                {
                    isFound = true;
                    Assert.Equal("Microsoft.Synapse/workspaces/sqlPools", sqlpoolFromWorkspace[i].Type);
                    Assert.Equal(CommonData.Location, sqlpoolFromWorkspace[i].Location);
                    break;
                }
            }

            Assert.True(isFound, string.Format("Sqlpool created earlier is not found when listing all in workspace {0}", workspaceName));

            // delete sqlpool
            SynapseClient.SqlPools.Delete(CommonData.ResourceGroupName, workspaceName, sqlpoolName);
            firstPage = SynapseClient.SqlPools.ListByWorkspace(CommonData.ResourceGroupName, workspaceName);
            var sqlpoolAfterDelete = SynapseManagementTestUtilities.ListResources(firstPage, SynapseClient.SqlPools.ListByWorkspaceNext);

            Assert.True(sqlpoolCount - 1 == sqlpoolAfterDelete.Count);
        }
Пример #4
0
        public void TestSparkPoolLifeCycle()
        {
            TestInitialize();

            // create workspace
            string workspaceName         = TestUtilities.GenerateName("synapsesdkworkspace");
            var    createWorkspaceParams = CommonData.PrepareWorkspaceCreateParams();
            var    workspaceCreate       = SynapseClient.Workspaces.CreateOrUpdate(CommonData.ResourceGroupName, workspaceName, createWorkspaceParams);

            Assert.Equal(CommonTestFixture.WorkspaceType, workspaceCreate.Type);
            Assert.Equal(workspaceName, workspaceCreate.Name);
            Assert.Equal(CommonData.Location, workspaceCreate.Location);

            for (int i = 0; i < 60; i++)
            {
                var workspaceGet = SynapseClient.Workspaces.Get(CommonData.ResourceGroupName, workspaceName);
                if (workspaceGet.ProvisioningState.Equals("Succeeded"))
                {
                    Assert.Equal(CommonTestFixture.WorkspaceType, workspaceGet.Type);
                    Assert.Equal(workspaceName, workspaceGet.Name);
                    Assert.Equal(CommonData.Location, workspaceGet.Location);
                    break;
                }

                Thread.Sleep(30000);
                Assert.True(i < 60, "Synapse Workspace is not in succeeded state even after 30 min.");
            }

            // create sparkpool unableautoscale
            string sparkpoolName            = TestUtilities.GenerateName("sparkpool");
            var    createSparkpoolParams    = CommonData.PrepareSparkpoolCreateParams(enableAutoScale: false, enableAutoPause: false);
            var    sparkpoolUnableAutoScale = SynapseClient.BigDataPools.CreateOrUpdate(CommonData.ResourceGroupName, workspaceName, sparkpoolName, createSparkpoolParams);

            Assert.Equal(CommonTestFixture.SparkpoolType, sparkpoolUnableAutoScale.Type);
            Assert.Equal(sparkpoolName, sparkpoolUnableAutoScale.Name);
            Assert.Equal(CommonData.Location, sparkpoolUnableAutoScale.Location);

            // get sparkpool
            for (int i = 0; i < 60; i++)
            {
                var sparkpoolGet = SynapseClient.BigDataPools.Get(CommonData.ResourceGroupName, workspaceName, sparkpoolName);
                if (sparkpoolGet.ProvisioningState.Equals("Succeeded"))
                {
                    Assert.Equal(CommonTestFixture.SparkpoolType, sparkpoolUnableAutoScale.Type);
                    Assert.Equal(sparkpoolName, sparkpoolUnableAutoScale.Name);
                    Assert.Equal(CommonData.Location, sparkpoolUnableAutoScale.Location);
                    break;
                }

                Thread.Sleep(30000);
                Assert.True(i < 60, "Synapse SparkPool is not in succeeded state even after 30 min.");
            }

            // update sparkpool
            Dictionary <string, string> tagsToUpdate = new Dictionary <string, string> {
                { "TestTag", "TestUpdate" }
            };
            BigDataPoolPatchInfo bigdataPoolPatchInfo = new BigDataPoolPatchInfo
            {
                Tags = tagsToUpdate
            };

            SynapseClient.BigDataPools.Update(CommonData.ResourceGroupName, workspaceName, sparkpoolName, bigdataPoolPatchInfo);
            var sparkpoolUpdate = SynapseClient.BigDataPools.Get(CommonData.ResourceGroupName, workspaceName, sparkpoolName);

            Thread.Sleep(30000);
            Assert.NotNull(sparkpoolUpdate.Tags);
            Assert.Equal("TestUpdate", sparkpoolUpdate.Tags["TestTag"]);

            // Enable Auto-scale and Auto-pause
            createSparkpoolParams = CommonData.PrepareSparkpoolCreateParams(enableAutoScale: true, enableAutoPause: true);
            var sparkpoolEnableAutoScale = SynapseClient.BigDataPools.CreateOrUpdate(CommonData.ResourceGroupName, workspaceName, sparkpoolName, createSparkpoolParams);

            Assert.Equal(CommonTestFixture.SparkpoolType, sparkpoolUnableAutoScale.Type);
            Assert.Equal(sparkpoolName, sparkpoolUnableAutoScale.Name);
            Assert.Equal(CommonData.Location, sparkpoolUnableAutoScale.Location);
            Assert.True(sparkpoolEnableAutoScale.AutoScale.Enabled);
            Assert.Equal(CommonData.AutoScaleMaxNodeCount, sparkpoolEnableAutoScale.AutoScale.MaxNodeCount);
            Assert.Equal(CommonData.AutoScaleMinNodeCount, sparkpoolEnableAutoScale.AutoScale.MinNodeCount);
            Assert.True(sparkpoolEnableAutoScale.AutoPause.Enabled);
            Assert.Equal(CommonData.AutoPauseDelayInMinute, sparkpoolEnableAutoScale.AutoPause.DelayInMinutes);

            // list sparkpool from workspace
            var firstPage = SynapseClient.BigDataPools.ListByWorkspace(CommonData.ResourceGroupName, workspaceName);
            var sparkpoolFromWorkspace = SynapseManagementTestUtilities.ListResources(firstPage, SynapseClient.BigDataPools.ListByWorkspaceNext);

            Assert.True(1 <= sparkpoolFromWorkspace.Count);

            bool isFound        = false;
            int  sparkpoolCount = sparkpoolFromWorkspace.Count;

            for (int i = 0; i < sparkpoolCount; i++)
            {
                if (sparkpoolFromWorkspace[i].Name.Equals(sparkpoolName))
                {
                    isFound = true;
                    Assert.Equal(CommonTestFixture.SparkpoolType, sparkpoolFromWorkspace[i].Type);
                    Assert.Equal(CommonData.Location, sparkpoolFromWorkspace[i].Location);
                    break;
                }
            }

            Assert.True(isFound, string.Format("Sparkpool created earlier is not found when listing all in workspace {0}", workspaceName));

            // delete sqlpool
            SynapseClient.BigDataPools.Delete(CommonData.ResourceGroupName, workspaceName, sparkpoolName);
            firstPage = SynapseClient.BigDataPools.ListByWorkspace(CommonData.ResourceGroupName, workspaceName);
            var sparkpoolAfterDelete = SynapseManagementTestUtilities.ListResources(firstPage, SynapseClient.BigDataPools.ListByWorkspaceNext);

            Assert.True(sparkpoolCount - 1 == sparkpoolAfterDelete.Count);
        }