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