Esempio n. 1
0
        public PSCassandraSchema(CassandraSchema cassandraSchema)
        {
            if (cassandraSchema == null)
            {
                return;
            }

            if (ModelHelper.IsNotNullOrEmpty(cassandraSchema.Columns))
            {
                Columns = new List <PSColumn>();
                foreach (Column column in cassandraSchema.Columns)
                {
                    Columns.Add(new PSColumn(column));
                }
            }

            if (ModelHelper.IsNotNullOrEmpty(cassandraSchema.PartitionKeys))
            {
                PartitionKeys = new List <PSCassandraPartitionKey>();
                foreach (CassandraPartitionKey cassandraPartitionKey in cassandraSchema.PartitionKeys)
                {
                    PartitionKeys.Add(new PSCassandraPartitionKey(cassandraPartitionKey));
                }
            }

            if (ModelHelper.IsNotNullOrEmpty(cassandraSchema.ClusterKeys))
            {
                ClusterKeys = new List <PSClusterKey>();
                foreach (ClusterKey clusterKey in cassandraSchema.ClusterKeys)
                {
                    ClusterKeys.Add(new PSClusterKey(clusterKey));
                }
            }
        }
        public PSCassandraSchema(CassandraSchema cassandraSchema)
        {
            Columns = new List <PSColumn>();
            foreach (Column column in cassandraSchema.Columns)
            {
                Columns.Add(new PSColumn(column));
            }

            PartitionKeys = new List <PSCassandraPartitionKey>();
            foreach (CassandraPartitionKey cassandraPartitionKey in cassandraSchema.PartitionKeys)
            {
                PartitionKeys.Add(new PSCassandraPartitionKey(cassandraPartitionKey));
            }

            ClusterKeys = new List <PSClusterKey>();
            foreach (ClusterKey clusterKey in cassandraSchema.ClusterKeys)
            {
                ClusterKeys.Add(new PSClusterKey(clusterKey));
            }
        }
Esempio n. 3
0
        static public CassandraSchema ToSDKModel(PSCassandraSchema pSCassandraSchema)
        {
            if (pSCassandraSchema == null)
            {
                return(null);
            }

            CassandraSchema schema = new CassandraSchema();

            if (ModelHelper.IsNotNullOrEmpty(pSCassandraSchema.Columns))
            {
                List <Column> column = new List <Column>();
                foreach (PSColumn pSColumn in pSCassandraSchema.Columns)
                {
                    column.Add(PSColumn.ToSDKModel(pSColumn));
                }
                schema.Columns = column;
            }

            if (ModelHelper.IsNotNullOrEmpty(pSCassandraSchema.PartitionKeys))
            {
                List <CassandraPartitionKey> partitionKeys = new List <CassandraPartitionKey>();
                foreach (PSCassandraPartitionKey pSCassandraPartitionKey in pSCassandraSchema.PartitionKeys)
                {
                    partitionKeys.Add(PSCassandraPartitionKey.ToSDKModel(pSCassandraPartitionKey));
                }
                schema.PartitionKeys = partitionKeys;
            }

            if (ModelHelper.IsNotNullOrEmpty(pSCassandraSchema.ClusterKeys))
            {
                List <ClusterKey> clusterKeys = new List <ClusterKey>();
                foreach (PSClusterKey pSClusterKey in pSCassandraSchema.ClusterKeys)
                {
                    clusterKeys.Add(PSClusterKey.ToSDKModel(pSClusterKey));
                }
                schema.ClusterKeys = clusterKeys;
            }

            return(schema);
        }
Esempio n. 4
0
 public async Task CassandraTableCreateUpdateTests()
 {
     IList <Column> columns = new List <Column> {
         new Column {
             Name = "columnA", Type = "int"
         }, new Column {
             Name = "columnB", Type = "ascii"
         }
     };
     IList <CassandraPartitionKey> partitionKeys = new List <CassandraPartitionKey> {
         new CassandraPartitionKey {
             Name = "columnA"
         }
     };
     IList <ClusterKey> clusterKeys = new List <ClusterKey> {
         new ClusterKey {
             Name = "columnB", OrderBy = "Asc"
         }
     };
     CassandraSchema        cassandraSchema        = new CassandraSchema(columns, partitionKeys, clusterKeys);
     CassandraTableResource cassandraTableResource = new CassandraTableResource(tableName, default, cassandraSchema, default);
Esempio n. 5
0
        public async Task CassandraCRUDTestsAsync()
        {
            var      locations = new List <Location>();
            Location loc       = new Location();

            loc.LocationName     = CosmosDBTestUtilities.Location;
            loc.FailoverPriority = 0;
            loc.IsZoneRedundant  = false;
            locations.Add(loc);

            DatabaseAccountCreateUpdateParameters databaseAccountCreateUpdateParameters = new DatabaseAccountCreateUpdateParameters(locations);

            databaseAccountCreateUpdateParameters.Location = CosmosDBTestUtilities.Location;
            databaseAccountCreateUpdateParameters.Capabilities.Add(new Capability("EnableCassandra"));
            databaseAccountCreateUpdateParameters.ConsistencyPolicy = new ConsistencyPolicy(DefaultConsistencyLevel.Eventual);

            await WaitForCompletionAsync(await CosmosDBManagementClient.DatabaseAccounts.StartCreateOrUpdateAsync(resourceGroupName, databaseAccountName, databaseAccountCreateUpdateParameters));

            Task <Response> taskIsDatabaseNameExists = CosmosDBManagementClient.DatabaseAccounts.CheckNameExistsAsync(databaseAccountName);
            Response        isDatabaseNameExists     = taskIsDatabaseNameExists.ConfigureAwait(false).GetAwaiter().GetResult();

            Assert.AreEqual(200, isDatabaseNameExists.Status);

            CassandraKeyspaceCreateUpdateParameters cassandraKeyspaceCreateUpdateParameters = new CassandraKeyspaceCreateUpdateParameters(new CassandraKeyspaceResource(keyspaceName), new CreateUpdateOptions());

            var cassandraKeyspaceResponse = await WaitForCompletionAsync(await CosmosDBManagementClient.CassandraResources.StartCreateUpdateCassandraKeyspaceAsync(resourceGroupName, databaseAccountName, keyspaceName, cassandraKeyspaceCreateUpdateParameters));

            CassandraKeyspaceGetResults cassandraKeyspaceGetResults = cassandraKeyspaceResponse.Value;

            Assert.NotNull(cassandraKeyspaceGetResults);
            Assert.AreEqual(keyspaceName, cassandraKeyspaceGetResults.Name);

            var cassandraKeyspaceResponse1 = await WaitForCompletionAsync(await CosmosDBManagementClient.CassandraResources.StartCreateUpdateCassandraKeyspaceAsync(resourceGroupName, databaseAccountName, keyspaceName, cassandraKeyspaceCreateUpdateParameters));

            CassandraKeyspaceGetResults cassandraKeyspaceGetResults1 = cassandraKeyspaceResponse1.Value;

            Assert.NotNull(cassandraKeyspaceGetResults1);
            Assert.AreEqual(keyspaceName, cassandraKeyspaceGetResults1.Name);

            VerifyEqualCassandraDatabases(cassandraKeyspaceGetResults, cassandraKeyspaceGetResults1);

            CassandraKeyspaceCreateUpdateParameters cassandraKeyspaceCreateUpdateParameters2 = new CassandraKeyspaceCreateUpdateParameters(new CassandraKeyspaceResource(keyspaceName2), new CreateUpdateOptions(sampleThroughput, default));

            var cassandraKeyspaceResponse2 = await WaitForCompletionAsync(await CosmosDBManagementClient.CassandraResources.StartCreateUpdateCassandraKeyspaceAsync(resourceGroupName, databaseAccountName, keyspaceName2, cassandraKeyspaceCreateUpdateParameters2));

            CassandraKeyspaceGetResults cassandraKeyspaceGetResults2 = cassandraKeyspaceResponse2.Value;

            Assert.NotNull(cassandraKeyspaceGetResults2);
            Assert.AreEqual(keyspaceName2, cassandraKeyspaceGetResults2.Name);

            var keyspacesResponseTask = CosmosDBManagementClient.CassandraResources.ListCassandraKeyspacesAsync(resourceGroupName, databaseAccountName).ToEnumerableAsync();
            List <CassandraKeyspaceGetResults> cassandraKeyspaces = keyspacesResponseTask.ConfigureAwait(false).GetAwaiter().GetResult();

            Assert.NotNull(cassandraKeyspaces);

            var throughputResponse = CosmosDBManagementClient.CassandraResources.GetCassandraKeyspaceThroughputAsync(resourceGroupName, databaseAccountName, keyspaceName2);
            ThroughputSettingsGetResults throughputSettingsGetResults = throughputResponse.ConfigureAwait(false).GetAwaiter().GetResult();

            Assert.NotNull(throughputSettingsGetResults);
            Assert.NotNull(throughputSettingsGetResults.Name);
            Assert.AreEqual(throughputSettingsGetResults.Resource.Throughput, sampleThroughput);
            Assert.AreEqual(cassandraThroughputType, throughputSettingsGetResults.Type);

            //TODO: Migrate To Manual and Autoscale tests from example: https://github.com/Azure/azure-rest-api-specs/blob/master/specification/cosmos-db/resource-manager/Microsoft.DocumentDB/stable/2020-04-01/examples/CosmosDBCassandraTableMigrateToAutoscale.json
            //var migrateKeyspace = await cosmosDBClient.CassandraResources.StartMigrateCassandraKeyspaceToManualThroughputAsync(resourceGroupName, databaseAccountName, keyspaceName);
            //var taskResponseMigrate = migrateKeyspace.WaitForCompletionAsync();
            //var responseMigrate = taskResponseMigrate.ConfigureAwait(false).GetAwaiter().GetResult();
            //Assert.AreEqual(responseMigrate.Value.Resource.MinimumThroughput, responseMigrate.Value.Resource.Throughput);

            CassandraSchema cassandraSchema = new CassandraSchema(new List <Column> {
                new Column {
                    Name = "columnA", Type = "int"
                }, new Column {
                    Name = "columnB", Type = "ascii"
                }
            }, new List <CassandraPartitionKey> {
                new CassandraPartitionKey {
                    Name = "columnA"
                }
            }, new List <ClusterKey> {
                new ClusterKey {
                    Name = "columnB", OrderBy = "Asc"
                }
            });
            CassandraTableResource cassandraTableResource = new CassandraTableResource(tableName, default, cassandraSchema, default);
Esempio n. 6
0
 public PSCassandraSchema(CassandraSchema cassandraSchema)
 {
 }