コード例 #1
0
 internal TemplatePipeline(PipelineContext context, PipelineWriter writer, string deploymentName, ResourceGroupOption resourceGroup, SubscriptionOption subscription)
     : base(context, writer)
 {
     _DeploymentName = deploymentName;
     _ResourceGroup  = resourceGroup;
     _Subscription   = subscription;
 }
コード例 #2
0
 public override IPipeline Build()
 {
     _ResourceGroup = ResourceGroupOption.Combine(_ResourceGroup ?? Option.Configuration.ResourceGroup, ResourceGroupOption.Default);
     _Subscription  = SubscriptionOption.Combine(_Subscription ?? Option.Configuration.Subscription, SubscriptionOption.Default);
     _ResourceGroup.SubscriptionId = _Subscription.SubscriptionId;
     return(new TemplatePipeline(PrepareContext(), _DeploymentName, _ResourceGroup, _Subscription));
 }
コード例 #3
0
        public override IPipeline Build()
        {
            _ResourceGroup = _ResourceGroup ?? Option.Configuration.ResourceGroup;
            _Subscription  = _Subscription ?? Option.Configuration.Subscription;

            _ResourceGroup.SubscriptionId = _Subscription.SubscriptionId;
            return(new TemplatePipeline(PrepareContext(), PrepareWriter(), _DeploymentName, _ResourceGroup, _Subscription));
        }
コード例 #4
0
        /// <summary>
        /// Handle a nested deployment resource.
        /// </summary>
        private bool TryDeploymentResource(TemplateContext context, JObject resource)
        {
            var resourceType = ExpandProperty <string>(context, resource, PROPERTY_TYPE);

            if (!string.Equals(resourceType, RESOURCETYPE_DEPLOYMENT, StringComparison.OrdinalIgnoreCase))
            {
                return(false);
            }

            var deploymentName = ExpandProperty <string>(context, resource, PROPERTY_NAME);

            if (string.IsNullOrEmpty(deploymentName))
            {
                return(false);
            }

            if (!TryObjectProperty(resource, PROPERTY_PROPERTIES, out JObject properties))
            {
                return(false);
            }

            var deploymentContext = context;

            if (TryObjectProperty(properties, PROPERTY_EXPRESSIONEVALUATIONOPTIONS, out JObject options) &&
                TryStringProperty(options, PROPERTY_SCOPE, out string scope) &&
                StringComparer.OrdinalIgnoreCase.Equals(DEPLOYMENTSCOPE_INNER, scope))
            {
                var subscription  = new SubscriptionOption(context.Subscription);
                var resourceGroup = new ResourceGroupOption(context.ResourceGroup);
                if (TryStringProperty(resource, PROPERTY_SUBSCRIPTIONID, out string subscriptionId))
                {
                    subscription.SubscriptionId = subscriptionId;
                }

                if (TryStringProperty(resource, PROPERTY_RESOURCEGROUP, out string resourceGroupName))
                {
                    resourceGroup.Name = resourceGroupName;
                }

                resourceGroup.SubscriptionId = subscription.SubscriptionId;
                deploymentContext            = new TemplateContext(context.Pipeline, subscription, resourceGroup);
                if (TryObjectProperty(properties, PROPERTY_PARAMETERS, out JObject innerParameters))
                {
                    foreach (var parameter in innerParameters.Properties())
                    {
                        deploymentContext.Parameter(parameter.Name, ResolveVariable(context, parameter.Value[PROPERTY_VALUE]));
                    }
                }
            }

            if (!TryObjectProperty(properties, PROPERTY_TEMPLATE, out JObject template))
            {
                return(false);
            }

            Template(deploymentContext, deploymentName, template);
            return(true);
        }
コード例 #5
0
        public void ResourceGroup(ResourceGroupOption resourceGroup)
        {
            if (resourceGroup == null)
            {
                return;
            }

            _ResourceGroup = resourceGroup;
        }
コード例 #6
0
            internal TemplateContext(SubscriptionOption subscription, ResourceGroupOption resourceGroup)
                : this()
            {
                if (subscription != null)
                {
                    Subscription = subscription;
                }

                if (resourceGroup != null)
                {
                    ResourceGroup = resourceGroup;
                }
            }
コード例 #7
0
            internal TemplateContext(PipelineContext context, SubscriptionOption subscription, ResourceGroupOption resourceGroup)
                : this()
            {
                Pipeline = context;
                if (subscription != null)
                {
                    Subscription = subscription;
                }

                if (resourceGroup != null)
                {
                    ResourceGroup = resourceGroup;
                }
            }