public DeleteTable ( |
||
request | Container for the necessary parameters to execute the DeleteTable service method. | |
return |
/// <summary> /// Deletes all sample tables /// </summary> /// <param name="client"></param> public static void DeleteSampleTables(AmazonDynamoDBClient client) { foreach (var table in SAMPLE_TABLE_NAMES) { Console.WriteLine("Deleting table " + table); client.DeleteTable(new DeleteTableRequest { TableName = table }); } int remainingTables; do { Console.WriteLine("While sample tables still exist, sleeping for 5 seconds..."); Thread.Sleep(TimeSpan.FromSeconds(5)); Console.WriteLine("Getting list of tables"); var currentTables = client.ListTables().TableNames; remainingTables = currentTables.Intersect(SAMPLE_TABLE_NAMES).Count(); } while (remainingTables > 0); Console.WriteLine("Sample tables deleted"); }
public virtual void DeleteTable(AmazonDynamoDBClient ddbClient, string tableName) { switch (GetTableStatus(ddbClient, tableName)) { case "ACTIVE": _Default.LogMessageToPage("Deleting pre-existing table."); var deleteTableRequest = new DeleteTableRequest { TableName = tableName }; ddbClient.DeleteTable(deleteTableRequest); WaitForStatus(ddbClient, tableName, "NOTFOUND"); _Default.LogMessageToPage("Table deletion confirmed."); break; case "NOTFOUND": _Default.LogMessageToPage("Skipped deletion operation. Table not found."); break; default: _Default.LogMessageToPage("Skipped deletion operation. Table not in correct state."); break; } }
public void DataPlaneSamples() { { #region CreateTable Sample // Create a client AmazonDynamoDBClient client = new AmazonDynamoDBClient(); // Define table schema: // Table has a hash-key "Author" and a range-key "Title" List<KeySchemaElement> schema = new List<KeySchemaElement> { new KeySchemaElement { AttributeName = "Author", KeyType = "HASH" }, new KeySchemaElement { AttributeName = "Title", KeyType = "RANGE" } }; // Define key attributes: // The key attributes "Author" and "Title" are string types List<AttributeDefinition> definitions = new List<AttributeDefinition> { new AttributeDefinition { AttributeName = "Author", AttributeType = "S" }, new AttributeDefinition { AttributeName = "Title", AttributeType = "S" } }; // Define table throughput: // Table has capacity of 20 reads and 50 writes ProvisionedThroughput throughput = new ProvisionedThroughput { ReadCapacityUnits = 20, WriteCapacityUnits = 50 }; // Configure the CreateTable request CreateTableRequest request = new CreateTableRequest { TableName = "SampleTable", KeySchema = schema, ProvisionedThroughput = throughput, AttributeDefinitions = definitions }; // View new table properties TableDescription tableDescription = client.CreateTable(request).TableDescription; Console.WriteLine("Table name: {0}", tableDescription.TableName); Console.WriteLine("Creation time: {0}", tableDescription.CreationDateTime); Console.WriteLine("Item count: {0}", tableDescription.ItemCount); Console.WriteLine("Table size (bytes): {0}", tableDescription.TableSizeBytes); Console.WriteLine("Table status: {0}", tableDescription.TableStatus); // List table key schema List<KeySchemaElement> tableSchema = tableDescription.KeySchema; for (int i = 0; i < tableSchema.Count; i++) { KeySchemaElement element = tableSchema[i]; Console.WriteLine("Key: Name = {0}, KeyType = {1}", element.AttributeName, element.KeyType); } // List attribute definitions List<AttributeDefinition> attributeDefinitions = tableDescription.AttributeDefinitions; for (int i = 0; i < attributeDefinitions.Count; i++) { AttributeDefinition definition = attributeDefinitions[i]; Console.WriteLine("Attribute: Name = {0}, Type = {1}", definition.AttributeName, definition.AttributeType); } Console.WriteLine("Throughput: Reads = {0}, Writes = {1}", tableDescription.ProvisionedThroughput.ReadCapacityUnits, tableDescription.ProvisionedThroughput.WriteCapacityUnits); #endregion } { #region DescribeTable Sample // Create a client AmazonDynamoDBClient client = new AmazonDynamoDBClient(); // Create DescribeTable request DescribeTableRequest request = new DescribeTableRequest { TableName = "SampleTable" }; // Issue DescribeTable request and retrieve the table description TableDescription tableDescription = client.DescribeTable(request).Table; // View new table properties Console.WriteLine("Table name: {0}", tableDescription.TableName); Console.WriteLine("Creation time: {0}", tableDescription.CreationDateTime); Console.WriteLine("Item count: {0}", tableDescription.ItemCount); Console.WriteLine("Table size (bytes): {0}", tableDescription.TableSizeBytes); Console.WriteLine("Table status: {0}", tableDescription.TableStatus); // List table key schema List<KeySchemaElement> tableSchema = tableDescription.KeySchema; for (int i = 0; i < tableSchema.Count; i++) { KeySchemaElement element = tableSchema[i]; Console.WriteLine("Key: Name = {0}, KeyType = {1}", element.AttributeName, element.KeyType); } // List attribute definitions List<AttributeDefinition> attributeDefinitions = tableDescription.AttributeDefinitions; for (int i = 0; i < attributeDefinitions.Count; i++) { AttributeDefinition definition = attributeDefinitions[i]; Console.WriteLine("Attribute: Name = {0}, Type = {1}", definition.AttributeName, definition.AttributeType); } Console.WriteLine("Throughput: Reads = {0}, Writes = {1}", tableDescription.ProvisionedThroughput.ReadCapacityUnits, tableDescription.ProvisionedThroughput.WriteCapacityUnits); #endregion } { #region ListTables Paging Sample // Create a client AmazonDynamoDBClient client = new AmazonDynamoDBClient(); string startTableName = null; do { // Configure ListTables request with the marker value ListTablesRequest request = new ListTablesRequest { ExclusiveStartTableName = startTableName, }; // Issue call ListTablesResult result = client.ListTables(request); // List retrieved tables List<string> tables = result.TableNames; Console.WriteLine("Retrieved tables: {0}", string.Join(", ", tables)); // Update marker value from the result startTableName = result.LastEvaluatedTableName; } while (!string.IsNullOrEmpty(startTableName)); // Test marker value #endregion } { #region ListTables NonPaging Sample // Create a client AmazonDynamoDBClient client = new AmazonDynamoDBClient(); // Issue call ListTablesResult result = client.ListTables(); // List retrieved tables List<string> tables = result.TableNames; Console.WriteLine("Retrieved tables: {0}", string.Join(", ", tables)); #endregion } TableUtils.WaitUntilTableActive("SampleTable", TestClient); { #region UpdateTable Sample // Create a client AmazonDynamoDBClient client = new AmazonDynamoDBClient(); // Define new table throughput: // Table will now have capacity of 40 reads and 50 writes ProvisionedThroughput throughput = new ProvisionedThroughput { ReadCapacityUnits = 40, WriteCapacityUnits = 50 }; // Compose the UpdateTable request UpdateTableRequest request = new UpdateTableRequest { TableName = "SampleTable", ProvisionedThroughput = throughput }; // View new table properties TableDescription tableDescription = client.UpdateTable(request).TableDescription; Console.WriteLine("Table name: {0}", tableDescription.TableName); Console.WriteLine("Throughput: Reads = {0}, Writes = {1}", tableDescription.ProvisionedThroughput.ReadCapacityUnits, tableDescription.ProvisionedThroughput.WriteCapacityUnits); #endregion } TableUtils.WaitUntilTableActive("SampleTable", TestClient); { #region DeleteTable Sample // Create a client AmazonDynamoDBClient client = new AmazonDynamoDBClient(); // Configure the DeleteTable request DeleteTableRequest request = new DeleteTableRequest { TableName = "SampleTable" }; // Issue DeleteTable request and retrieve the table description TableDescription tableDescription = client.DeleteTable(request).TableDescription; Console.WriteLine("Table name: {0}", tableDescription.TableName); Console.WriteLine("Table status: {0}", tableDescription.TableStatus); #endregion } }
public void Can_put_item_with_null_value() { var db = new AmazonDynamoDBClient("keyId", "key", new AmazonDynamoDBConfig { ServiceURL = "http://localhost:8000", }); try { db.DeleteTable(new DeleteTableRequest { TableName = "Test", }); Thread.Sleep(1000); } catch (Exception) { /*ignore*/ } db.CreateTable(new CreateTableRequest { TableName = "Test", KeySchema = new List<KeySchemaElement> { new KeySchemaElement { AttributeName = "Id", KeyType = "HASH" } }, AttributeDefinitions = new List<AttributeDefinition> { new AttributeDefinition { AttributeName = "Id", AttributeType = "N", } }, ProvisionedThroughput = new ProvisionedThroughput { ReadCapacityUnits = 10, WriteCapacityUnits = 5, } }); Thread.Sleep(1000); db.PutItem(new PutItemRequest { TableName = "Test", Item = new Dictionary<string, AttributeValue> { { "Id", new AttributeValue { N = "1" } }, { "Name", new AttributeValue { S = "Foo"} }, { "Empty", new AttributeValue { NULL = true } }, } }); var response = db.GetItem(new GetItemRequest { TableName = "Test", ConsistentRead = true, Key = new Dictionary<string, AttributeValue> { { "Id", new AttributeValue { N = "1" } } } }); Assert.That(response.IsItemSet); Assert.That(response.Item["Id"].N, Is.EqualTo("1")); Assert.That(response.Item["Name"].S, Is.EqualTo("Foo")); Assert.That(response.Item["Empty"].NULL); }