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)); } }
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); }
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);
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);
public PSCassandraSchema(CassandraSchema cassandraSchema) { }