Example #1
0
        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);
        }