public async Task Test_CheckCreateWebSite_WithExistingSite() { using (var client = ManagementClient.CreateWebSiteClient()) { const string webspace = WebSpaceNames.NorthEuropeWebSpace; var parameters = new WebSiteCreateParameters { Name = "fct-" + Guid.NewGuid().ToString().Split('-').Last(), ServerFarm = await FlexConfiguration.WebPlanChooser.Choose(client, webspace) }; try { await client.WebSites.CreateAsync(webspace, parameters); await client.CreateWebSiteIfNotExistsAsync(webspace, parameters); } finally { client.WebSites.Delete( webspace, parameters.Name, new WebSiteDeleteParameters { DeleteAllSlots = true, DeleteEmptyServerFarm = false, DeleteMetrics = true }); } } }
private string CreateWebsite() { bool validWebsiteNameFound = false; string websiteName; do { websiteName = GenerateRandomName(TestArtifactType.Website); WebSiteIsHostnameAvailableResponse nameCheckResponse = WebsiteManagementClient.WebSites.IsHostnameAvailable(websiteName); validWebsiteNameFound = nameCheckResponse.IsAvailable; }while (!validWebsiteNameFound); WebSiteCreateParameters parameter = new WebSiteCreateParameters(); parameter.Name = websiteName; parameter.ServerFarm = WebsiteServerFarmName; parameter.WebSpace = new WebSiteCreateParameters.WebSpaceDetails() { GeoRegion = WebsiteGeoRegion, Name = WebSpaceName, Plan = WebsitePlanName }; this.WebsiteManagementClient.WebSites.Create(WebSpaceName, parameter); RegisterToCleanup(websiteName, _websitesToCleanup); return(websiteName); }
public async Task <WebSiteGetPublishProfileResponse> CreateWebsite(string WebSiteName) { string Location = "SouthCentralUSwebspace"; using (var client = GetWebSiteManagementClient()) { string WebSpaceName = Location; var parameters = new WebSiteCreateParameters { Name = WebSiteName, ServerFarm = "" }; try { var result = await client.WebSites.CreateAsync(WebSpaceName, parameters); //(result.WebSite.State == "Running") ? return(await GetPublishProfile(client, WebSiteName)); } catch (Exception ex) { return(null); } } }
/// <summary> /// Create a website /// </summary> /// <param name="webSpaceName"></param> /// <param name="siteSettings"></param> /// <param name="connectionStringInfo"></param> /// <returns></returns> public WebSite CreateWebSite(string webSpaceName, WebSiteCreateParameters siteSettings, WebSiteUpdateConfigurationParameters.ConnectionStringInfo connectionStringInfo = null) { if (siteSettings == null) { throw new ArgumentNullException("siteSettings"); } siteSettings.Name = string.IsNullOrEmpty(siteSettings.Name) ? Dependencies.TestResourcesCollector.GetUniqueWebSiteName() : siteSettings.Name.ToLowerInvariant(); if (siteSettings.HostNames == null || siteSettings.HostNames.Count == 0) { siteSettings.HostNames = new [] { siteSettings.Name + Dependencies.Subscription.DefaultWebSitesDomainName }; } if (string.IsNullOrEmpty(siteSettings.WebSpaceName)) { siteSettings.WebSpaceName = webSpaceName; } TestEasyLog.Instance.Info(string.Format("Creating web site '{0}'", siteSettings.Name)); var createWebsiteResult = WebSiteManagementClient.WebSites.CreateAsync(webSpaceName, siteSettings, new CancellationToken()).Result; var newSite = createWebsiteResult.WebSite; Dependencies.TestResourcesCollector.Remember(AzureResourceType.WebSite, newSite.Name, newSite); if (connectionStringInfo != null) { var existingConfig = CreateWebSiteUpdateParameters(newSite.Name); var existingConnectionStrings = existingConfig.ConnectionStrings; if (existingConnectionStrings.All(cs => cs.Name != connectionStringInfo.Name)) { existingConnectionStrings.Add(connectionStringInfo); UpdateWebSiteConfig(webSpaceName, newSite.Name, existingConfig); } } return(newSite); }
/// <summary> /// Create a new website. /// </summary> /// <param name="webspaceName">Web space to create site in.</param> /// <param name="siteToCreate">Details about the site to create.</param> /// <returns></returns> public Site CreateWebsite(string webspaceName, SiteWithWebSpace siteToCreate) { var options = new WebSiteCreateParameters { Name = siteToCreate.Name, WebSpaceName = siteToCreate.WebSpaceToCreate.Name, WebSpace = new WebSiteCreateParameters.WebSpaceDetails { GeoRegion = siteToCreate.WebSpaceToCreate.GeoRegion, Name = siteToCreate.WebSpaceToCreate.Name, Plan = siteToCreate.WebSpaceToCreate.Plan, } }; siteToCreate.HostNames.ForEach(s => options.HostNames.Add(s)); var response = WebsiteManagementClient.WebSites.Create(webspaceName, options); return(response.WebSite.ToSite()); }
public ActionResult NewSite(string SiteName, string WebSpaceName) { var cred = GetCredentials(); var client = new WebSiteManagementClient(cred); var parameters = new WebSiteCreateParameters { Name = SiteName, SiteMode = WebSiteMode.Limited, ComputeMode = WebSiteComputeMode.Shared, WebSpaceName = WebSpaceName }; parameters.HostNames.Add( string.Format("{0}.azurewebsites.net", SiteName) ); var result = client.WebSites.Create(WebSpaceName, parameters); var viewModel = GetHomePageViewModel(client); return(View("Index", viewModel)); }
/// <summary> /// Create a new website in production. /// </summary> /// <param name="webspaceName">Web space to create site in.</param> /// <param name="siteToCreate">Details about the site to create.</param> /// <returns>The created site object</returns> private Site CreateWebsite(string webspaceName, SiteWithWebSpace siteToCreate) { var options = new WebSiteCreateParameters { Name = siteToCreate.Name, WebSpaceName = siteToCreate.WebSpaceToCreate.Name, WebSpace = new WebSiteCreateParameters.WebSpaceDetails { GeoRegion = siteToCreate.WebSpaceToCreate.GeoRegion, Name = siteToCreate.WebSpaceToCreate.Name, Plan = siteToCreate.WebSpaceToCreate.Plan } }; siteToCreate.HostNames.ForEach(s => options.HostNames.Add(s)); var response = WebsiteManagementClient.WebSites.Create(webspaceName, options); return response.WebSite.ToSite(); }
/// <summary> /// You can create a web site by using a POST request that includes the /// name of the web site and other information in the request body. /// (see /// http://msdn.microsoft.com/en-us/library/windowsazure/dn166986.aspx /// for more information) /// </summary> /// <param name='operations'> /// Reference to the /// Microsoft.WindowsAzure.Management.WebSites.IWebSiteOperations. /// </param> /// <param name='webSpaceName'> /// The name of the web space. /// </param> /// <param name='parameters'> /// Parameters supplied to the Create Web Site operation. /// </param> /// <returns> /// The Create Web Space operation response. /// </returns> public static Task <WebSiteCreateResponse> CreateAsync(this IWebSiteOperations operations, string webSpaceName, WebSiteCreateParameters parameters) { return(operations.CreateAsync(webSpaceName, parameters, CancellationToken.None)); }
/// <summary> /// You can create a web site by using a POST request that includes the /// name of the web site and other information in the request body. /// (see /// http://msdn.microsoft.com/en-us/library/windowsazure/dn166986.aspx /// for more information) /// </summary> /// <param name='operations'> /// Reference to the /// Microsoft.WindowsAzure.Management.WebSites.IWebSiteOperations. /// </param> /// <param name='webSpaceName'> /// The name of the web space. /// </param> /// <param name='parameters'> /// Parameters supplied to the Create Web Site operation. /// </param> /// <returns> /// The Create Web Space operation response. /// </returns> public static WebSiteCreateResponse Create(this IWebSiteOperations operations, string webSpaceName, WebSiteCreateParameters parameters) { try { return(operations.CreateAsync(webSpaceName, parameters).Result); } catch (AggregateException ex) { if (ex.InnerExceptions.Count > 1) { throw; } else { throw ex.InnerException; } } }
/// <summary> /// You can create a web site by using a POST request that includes the /// name of the web site and other information in the request body. /// (see /// http://msdn.microsoft.com/en-us/library/windowsazure/dn166986.aspx /// for more information) /// </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='parameters'> /// Required. Parameters supplied to the Create Web Site operation. /// </param> /// <returns> /// The Create Web Site operation response. /// </returns> public static WebSiteCreateResponse Create(this IWebSiteOperations operations, string webSpaceName, WebSiteCreateParameters parameters) { return(Task.Factory.StartNew((object s) => { return ((IWebSiteOperations)s).CreateAsync(webSpaceName, parameters); } , operations, CancellationToken.None, TaskCreationOptions.None, TaskScheduler.Default).Unwrap().GetAwaiter().GetResult()); }
public async Task <bool> CreateSite(string SiteName, string WebSpaceName, string BlogName, string Description, string Copywright) { try { Trace("Getting Credentials"); var cred = ManagementLibraryUtilities.GetCredentials(); var client = new WebSiteManagementClient(cred); var parameters = new WebSiteCreateParameters { Name = SiteName, SiteMode = WebSiteMode.Limited, ComputeMode = WebSiteComputeMode.Shared, WebSpaceName = WebSpaceName }; parameters.HostNames.Add( string.Format("{0}.azurewebsites.net", SiteName) ); Trace("Creating Site {0}", SiteName); var result = client.WebSites.Create(WebSpaceName, parameters); Trace("Created {0}. Getting publish profiles.", SiteName); var profiles = await client.WebSites.GetPublishProfileAsync(WebSpaceName, SiteName); var webDeployProfile = profiles.First(x => x.MSDeploySite != null); var webSitePath = HttpContext.Current.Server.MapPath(@"~/App_Data/MiniBlog"); Trace("Deploying site {0}", SiteName); new WebDeployPublishingHelper( webDeployProfile.PublishUrl, webDeployProfile.MSDeploySite, webDeployProfile.UserName, webDeployProfile.UserPassword, webSitePath ) .PublishFolder(); Trace("Deployed site {0}", SiteName); Trace("Getting configuration for {0}", SiteName); // get the site's configuration var settingsResult = await client.WebSites.GetConfigurationAsync(WebSpaceName, SiteName); settingsResult.AppSettings.Add("blog:name", BlogName); settingsResult.AppSettings.Add("blog:description", Description); settingsResult.AppSettings.Add("blog:copyrightOwner", Copywright); Trace("Saving site configuration for {0}", SiteName); // update the site's configuration await client.WebSites.UpdateConfigurationAsync(WebSpaceName, SiteName, new WebSiteUpdateConfigurationParameters { AppSettings = settingsResult.AppSettings }); Trace("Site {0} is ready.", SiteName); return(true); } catch (Exception ex) { Trace("Exception: {0}", ex.ToString()); return(false); } }
/// <summary> /// Checks for the existence of a specific Azure Web Site, if it doesn't exist it will create it. /// </summary> /// <param name="client">The <see cref="WebSiteManagementClient"/> that is performing the operation.</param> /// <param name="webSpace">The name of the Web Space where the site should be.</param> /// <param name="parameters">The <see cref="WebSiteCreateParameters"/> that define the site we want to create.</param> /// <returns>The async <see cref="Task"/> wrapper.</returns> public static async Task CreateWebSiteIfNotExistsAsync(this WebSiteManagementClient client, string webSpace, WebSiteCreateParameters parameters) { Contract.Requires(client != null); Contract.Requires(!string.IsNullOrWhiteSpace(webSpace)); Contract.Requires(parameters != null); WebSiteGetResponse service = null; FlexStreams.BuildEventsObserver.OnNext(new CheckIfExistsEvent(AzureResource.WebSite, parameters.Name)); try { service = await client.WebSites.GetAsync(webSpace, parameters.Name, null); } catch (CloudException cex) { if (cex.Error.Code != "NotFound") { throw; } } if (service != null) { FlexStreams.BuildEventsObserver.OnNext(new FoundExistingEvent(AzureResource.WebSite, parameters.Name)); return; } await client.WebSites.CreateAsync(webSpace, parameters); FlexStreams.BuildEventsObserver.OnNext(new ProvisionEvent(AzureResource.WebSite, parameters.Name)); }