public async Task <bool> StartDeploymentAsync(string resourceGroupName, string location, string deploymentName, string templateFilePath, string parameters) { string armTemplate = GetARMTemplate(templateFilePath); await TryCreateResourceGroupAsync(resourceGroupName, location); if (_resourceManager.Deployments.CheckExistence(resourceGroupName, deploymentName)) { IDeployment deployment = await _resourceManager .Deployments .GetByResourceGroupAsync(resourceGroupName, deploymentName) .ConfigureAwait(false); ProvisioningState provisioningState = ProvisioningState.Parse(deployment.ProvisioningState); if (provisioningState.DeploymentRunning()) { return(false); } } _resourceManager .Deployments .Define(deploymentName) .WithExistingResourceGroup(resourceGroupName) .WithTemplate(armTemplate) .WithParameters(parameters) .WithMode(DeploymentMode.Incremental) .BeginCreate(); return(true); }
public async Task <bool> WaitForComputeResourceDeploymentAsync(string resourceGroupName, string resourceName, string resourceType) { bool resourceExists = false; while (!resourceExists) { resourceExists = _resourceManager.GenericResources.CheckExistence(resourceGroupName, "Microsoft.Compute", String.Empty, resourceType, resourceName, "2016-04-30-preview"); await Task.Delay(TimeSpan.FromSeconds(5)); } IGenericResource computeResource = GetComputeResource(resourceGroupName, resourceName, resourceType); ProvisioningState provisioningState = ProvisioningState.Parse((string)JObject.FromObject(computeResource.Properties)["provisioningState"]); while (!provisioningState.DeploymentEnded()) { await SdkContext.DelayProvider.DelayAsync(DeploymentDelayMilliseconds, CancellationToken.None); computeResource = GetComputeResource(resourceGroupName, resourceName, resourceType); provisioningState = ProvisioningState.Parse( (string)JObject.FromObject(computeResource.Properties)["provisioningState"]); } return(provisioningState.DeploymentSucceeded()); }