/// <summary> /// Create a new database instance. /// </summary> /// <param name="service">The database service instance.</param> /// <param name="configuration">A <see cref="DatabaseInstanceConfiguration"/> object describing the configuration of the new database instance.</param> /// <returns> /// A <see cref="DatabaseInstance"/> object describing the new database instance. /// </returns> /// <exception cref="ArgumentNullException">If <paramref name="service"/> is <see langword="null"/>.</exception> /// <exception cref="ArgumentNullException">If <paramref name="configuration"/> is <see langword="null"/>.</exception> /// <exception cref="WebException">If the REST request does not return successfully.</exception> /// <seealso href="http://docs.rackspace.com/cdb/api/v1.0/cdb-devguide/content/POST_createInstance__version___accountId__instances_.html">Create Database Instance (Rackspace Cloud Databases Developer Guide - API v1.0)</seealso> public static DatabaseInstance CreateDatabaseInstance(this IDatabaseService service, DatabaseInstanceConfiguration configuration) { if (service == null) throw new ArgumentNullException("service"); try { return service.CreateDatabaseInstanceAsync(configuration, AsyncCompletionOption.RequestSubmitted, CancellationToken.None, null).Result; } catch (AggregateException ex) { ReadOnlyCollection<Exception> innerExceptions = ex.Flatten().InnerExceptions; if (innerExceptions.Count == 1) throw innerExceptions[0]; throw; } }
public static void ClassInitialize(TestContext testContext) { IDatabaseService provider = UserDatabaseTests.CreateProvider(); using (CancellationTokenSource cancellationTokenSource = new CancellationTokenSource(TestTimeout(TimeSpan.FromSeconds(600)))) { ReadOnlyCollection<DatabaseFlavor> flavors = provider.ListFlavorsAsync(cancellationTokenSource.Token).Result; if (flavors.Count == 0) Assert.Inconclusive("The service did not report any flavors."); DatabaseFlavor smallestFlavor = flavors.Where(i => i.Memory.HasValue).OrderBy(i => i.Memory).First(); string instanceName = UserDatabaseTests.CreateRandomDatabaseInstanceName(); DatabaseInstanceConfiguration configuration = new DatabaseInstanceConfiguration(smallestFlavor.Href, new DatabaseVolumeConfiguration(1), instanceName); _instance = provider.CreateDatabaseInstanceAsync(configuration, AsyncCompletionOption.RequestCompleted, cancellationTokenSource.Token, null).Result; _databaseName = UserDatabaseTests.CreateRandomDatabaseName(); DatabaseConfiguration databaseConfiguration = new DatabaseConfiguration(_databaseName, null, null); provider.CreateDatabaseAsync(_instance.Id, databaseConfiguration, cancellationTokenSource.Token).Wait(); _databaseName2 = UserDatabaseTests.CreateRandomDatabaseName(); DatabaseConfiguration databaseConfiguration2 = new DatabaseConfiguration(_databaseName2, null, null); provider.CreateDatabaseAsync(_instance.Id, databaseConfiguration2, cancellationTokenSource.Token).Wait(); } }