internal TemplatePipeline(PipelineContext context, PipelineWriter writer, string deploymentName, ResourceGroupOption resourceGroup, SubscriptionOption subscription) : base(context, writer) { _DeploymentName = deploymentName; _ResourceGroup = resourceGroup; _Subscription = subscription; }
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)); }
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)); }
/// <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); }
public void ResourceGroup(ResourceGroupOption resourceGroup) { if (resourceGroup == null) { return; } _ResourceGroup = resourceGroup; }
internal TemplateContext(SubscriptionOption subscription, ResourceGroupOption resourceGroup) : this() { if (subscription != null) { Subscription = subscription; } if (resourceGroup != null) { ResourceGroup = resourceGroup; } }
internal TemplateContext(PipelineContext context, SubscriptionOption subscription, ResourceGroupOption resourceGroup) : this() { Pipeline = context; if (subscription != null) { Subscription = subscription; } if (resourceGroup != null) { ResourceGroup = resourceGroup; } }