Example #1
0
        public bool CreateBooks(bool testForExistence = false)
        {
            bool created = true;

            if (testForExistence)
            {
                created = client.CreateTableIfNotExist(Book.TableName);
            }
            else
            {
                client.CreateTable(Book.TableName);
            }
            return(created);
        }
Example #2
0
        private static bool CreateTable(string tableName)
        {
            CloudTableClient tc = account.CreateCloudTableClient();

            DateTime retryUntil = DateTime.Now + s_retryTimeout;

            while (!tc.DoesTableExist(tableName))
            {
                try
                {
                    tc.CreateTable(tableName);
                    WriteInFile(filename, tableName + " was created");
                    return(true);
                }
                catch (StorageClientException e)
                {
                    if (e.ErrorCode == StorageErrorCode.ResourceAlreadyExists &&
                        e.StatusCode == HttpStatusCode.Conflict &&
                        DateTime.Now < retryUntil)
                    {
                        Console.WriteLine("Retrying {0}...", tableName);
                        Thread.Sleep(s_retryWaitTime);
                    }
                    else
                    {
                        throw;
                    }
                }
            }
            WriteInFile(filename, tableName + " already created");
            return(false);
        }
        private void DeleteRecreateTable()
        {
            CloudTableClient client = AzureHelper.StorageAccount.CreateCloudTableClient();

            client.RetryPolicy = RetryPolicies.Retry(int.MaxValue, TimeSpan.FromSeconds(5));
            client.DeleteTable(WorkerStatsTableName);
            client.CreateTable(WorkerStatsTableName);
        }
Example #4
0
        public static void Create(string account, string key, string tableName)
        {
            if (string.IsNullOrEmpty(tableName))
            {
                return;
            }

            CloudTableClient tableClient = Client.GetTableClient(account, key);

            tableClient.CreateTable(tableName);
        }
Example #5
0
        // Create Table.
        // Return true on success, false if already exists, throw exception on error.

        public bool CreateTable(string tableName)
        {
            try
            {
                TableClient.CreateTable(tableName);
                return(true);
            }
            catch (StorageClientException ex)
            {
                if ((int)ex.StatusCode == 409)
                {
                    return(false);
                }

                throw;
            }
        }
Example #6
0
        static void DoTables(CloudStorageAccount account)
        {
            Console.WriteLine("=======================TABLE==========================");
            CloudTableClient    tableClient = new CloudTableClient(account.TableEndpoint.AbsoluteUri, account.Credentials);
            TableServiceContext context     = tableClient.GetDataServiceContext();

            Console.WriteLine("Clearning container...");
            tableClient.DeleteTableIfExist("AzureStorageTestTableFrom");
            tableClient.DeleteTableIfExist("AzureStorageTestTableTo");

            Console.WriteLine("Creating container...");
            while (true)
            {
                try
                {
                    tableClient.CreateTable("AzureStorageTestTableFrom");
                    break;
                }
                catch (Exception)
                {
                    Thread.Sleep(1000);
                }
            }
            while (true)
            {
                try
                {
                    tableClient.CreateTable("AzureStorageTestTableTo");
                    break;
                }
                catch (Exception)
                {
                    Thread.Sleep(1000);
                }
            }

            Console.WriteLine("Uploading data...");
            for (int i = 0; i < 30; i++)
            {
                SquareRow row = new SquareRow()
                {
                    Number       = i,
                    Squared      = i * i,
                    PartitionKey = "0",
                    RowKey       = Guid.NewGuid().ToString(),
                };
                context.AddObject("AzureStorageTestTableFrom", row);
            }
            context.SaveChanges();

            Console.WriteLine("Checking data...");
            var query =
                from row in context.CreateQuery <SquareRow>("AzureStorageTestTableFrom")
                where row.Number < 10
                select row;

            foreach (var square in query)
            {
                DoubleRow row = new DoubleRow()
                {
                    Number       = square.Squared,
                    Doubled      = square.Squared * 2,
                    PartitionKey = "0",
                    RowKey       = Guid.NewGuid().ToString(),
                };
                context.AddObject("AzureStorageTestTableTo", row);
            }
            context.SaveChanges();
        }
        private void Create()
        {
            try
            {
                // create the blob containers
                if (chkRequiredContainers.Checked)
                {
                    foreach (var c in containerList)
                    {
                        var container = new CloudBlobContainer(c, cbc);
                        try
                        {
                            container.Create();
                            container.SetPermissions(
                                new BlobContainerPermissions()
                            {
                                PublicAccess = BlobContainerPublicAccessType.Blob
                            });
                            this.Invoke((Action)(() => lbStatus.Items.Add(String.Format("Created container '{0}'", c))));
                        }
                        catch (StorageClientException sce)
                        {
                            this.Invoke((Action)(() => lbStatus.Items.Add(String.Format("{0} [container: {1}]", sce.Message, c))));
                        }
                    }
                }

                // create the tables
                if (chkRequiredTables.Checked)
                {
                    foreach (var t in tableList)
                    {
                        try
                        {
                            ctc.CreateTable(t);
                            this.Invoke((Action)(() => lbStatus.Items.Add(String.Format("Created table '{0}'", t))));
                        }
                        catch (StorageClientException sce)
                        {
                            this.Invoke((Action)(() => lbStatus.Items.Add(String.Format("{0} [table: {1}]", sce.Message, t))));
                        }
                    }
                }

                // create the queues
                if (chkRequiredQueues.Checked)
                {
                    foreach (var q in queueList)
                    {
                        var queue = cqc.GetQueueReference(q);
                        try
                        {
                            queue.Create();
                            queue.Metadata["PoisonThreshold"] = QUEUE_POISONTHRESHOLD;
                            queue.Metadata["DefaultTimeout"]  = QUEUE_INVISIBILITYTIMEOUT;
                            queue.SetMetadata();
                            this.Invoke((Action)(() => lbStatus.Items.Add(String.Format("Created queue '{0}'", q))));
                        }
                        catch (StorageClientException sce)
                        {
                            this.Invoke((Action)(() => lbStatus.Items.Add(String.Format("{0} [queue: {1}]", sce.Message, q))));
                        }
                    }
                }
            }
            catch (Exception)
            {
                throw;
            }
            finally
            {
                this.Invoke((Action)(() => lbStatus.Items.Add("**** CREATE COMPLETED ****")));
            }
        }