/// <summary> /// Scans a backup in a storage account and returns database /// information etc. Should be called before calling Restore to /// discover what parameters are needed for the restore operation. /// </summary> /// <param name='operations'> /// Reference to the /// Microsoft.WindowsAzure.Management.WebSites.IWebSiteOperations. /// </param> /// <param name='webSpaceName'> /// Required. The name of the web space. /// </param> /// <param name='webSiteName'> /// Required. The name of the web site. /// </param> /// <param name='restoreRequest'> /// Required. A restore request. /// </param> /// <returns> /// The information gathered about a backup storaged in a storage /// account. /// </returns> public static WebSiteRestoreDiscoverResponse Discover(this IWebSiteOperations operations, string webSpaceName, string webSiteName, RestoreRequest restoreRequest) { return Task.Factory.StartNew((object s) => { return ((IWebSiteOperations)s).DiscoverAsync(webSpaceName, webSiteName, restoreRequest); } , operations, CancellationToken.None, TaskCreationOptions.None, TaskScheduler.Default).Unwrap().GetAwaiter().GetResult(); }
/// <summary> /// Scans a backup in a storage account and returns database /// information etc. Should be called before calling Restore to /// discover what parameters are needed for the restore operation. /// </summary> /// <param name='operations'> /// Reference to the /// Microsoft.WindowsAzure.Management.WebSites.IWebSiteOperations. /// </param> /// <param name='webSpaceName'> /// Required. The name of the web space. /// </param> /// <param name='webSiteName'> /// Required. The name of the web site. /// </param> /// <param name='restoreRequest'> /// Required. A restore request. /// </param> /// <returns> /// The information gathered about a backup storaged in a storage /// account. /// </returns> public static Task<WebSiteRestoreDiscoverResponse> DiscoverAsync(this IWebSiteOperations operations, string webSpaceName, string webSiteName, RestoreRequest restoreRequest) { return operations.DiscoverAsync(webSpaceName, webSiteName, restoreRequest, CancellationToken.None); }
public void RestoreSiteDiscover() { var response = new HttpResponseMessage(HttpStatusCode.OK) { Content = new StringContent(HttpPayload.RestoreSiteDiscover) }; var handler = new RecordedDelegatingHandler(response) { StatusCodeToReturn = HttpStatusCode.OK }; var client = GetWebSiteManagementClient(handler); RestoreRequest req = new RestoreRequest() { BlobName = "abc.zip", StorageAccountUrl = "https://someuser.blob.core.windows.net/backup/?sv=2012-02-12", Overwrite = false }; string newSiteName = "site1"; var discoverResponse = client.WebSites.Discover("space1", newSiteName, req); Assert.Equal(1, discoverResponse.Databases.Count); Assert.Equal("MySql", discoverResponse.Databases[0].DatabaseType); Assert.Equal("db1", discoverResponse.Databases[0].Name); Assert.True(string.IsNullOrEmpty(discoverResponse.Databases[0].ConnectionString)); Assert.True(string.IsNullOrEmpty(discoverResponse.Databases[0].ConnectionStringName)); Assert.Equal("abc.zip", discoverResponse.BlobName); Assert.Equal(false, discoverResponse.Overwrite); Assert.True(discoverResponse.StorageAccountUrl.StartsWith("https://someuser.blob")); }