diff --git a/src/Farmer/Deploy.fs b/src/Farmer/Deploy.fs index 491d47f27..047053bb6 100644 --- a/src/Farmer/Deploy.fs +++ b/src/Farmer/Deploy.fs @@ -191,7 +191,7 @@ let setSubscription (subscriptionId:Guid) = Az.setSubscription (subscriptionId.ToString()) /// Validates that the parameters supplied meet the deployment requirements. -let validateParameters suppliedParameters (deployment:#IDeploymentSource) = +let validateParameters suppliedParameters (deployment:IDeploymentSource) = let expected = deployment.Deployment.Template.Parameters |> List.map(fun (SecureParameter p) -> p) |> Set let supplied = suppliedParameters |> List.map fst |> Set let missing = Set.toList (expected - supplied) @@ -203,7 +203,7 @@ let validateParameters suppliedParameters (deployment:#IDeploymentSource) = let NoParameters : (string * string) list = [] -let private prepareForDeployment parameters resourceGroupName (deployment:#IDeploymentSource) = result { +let private prepareForDeployment parameters resourceGroupName (deployment:IDeploymentSource) = result { do! deployment |> validateParameters parameters let! version = checkVersion Az.MinimumVersion @@ -234,20 +234,20 @@ let private prepareForDeployment parameters resourceGroupName (deployment:#IDepl } /// Validates a deployment against a resource group. If the resource group does not exist, it will be created automatically. -let tryValidate resourceGroupName parameters (deployment:#IDeploymentSource) = result { +let tryValidate resourceGroupName parameters (deployment:IDeploymentSource) = result { let! deploymentParameters = deployment |> prepareForDeployment parameters resourceGroupName return! Az.validate resourceGroupName deploymentParameters.DeploymentName deploymentParameters.TemplateFilename parameters } /// Validates a deployment against a resource group. If the resource group does not exist, it will be created automatically. -let tryWhatIf resourceGroupName parameters (deployment:#IDeploymentSource) = result { +let tryWhatIf resourceGroupName parameters (deployment:IDeploymentSource) = result { let! deploymentParameters = deployment |> prepareForDeployment parameters resourceGroupName return! Az.whatIf resourceGroupName deploymentParameters.DeploymentName deploymentParameters.TemplateFilename parameters } /// Executes the supplied Deployment against a resource group using the Azure CLI. /// If successful, returns a Map of the output keys and values. -let tryExecute resourceGroupName parameters (deployment:#IDeploymentSource) = result { +let tryExecute resourceGroupName parameters (deployment:IDeploymentSource) = result { let! deploymentParameters = deployment |> prepareForDeployment parameters resourceGroupName printfn "Deploying ARM template (please be patient, this can take a while)..." @@ -272,12 +272,12 @@ let tryExecute resourceGroupName parameters (deployment:#IDeploymentSource) = re /// Executes the supplied Deployment against a resource group using the Azure CLI. /// If successful, returns a Map of the output keys and values, otherwise returns any error as an exception. -let execute resourceGroupName parameters (deployment:#IDeploymentSource) = +let execute resourceGroupName parameters (deployment:IDeploymentSource) = match tryExecute resourceGroupName parameters deployment with | Ok output -> output | Error message -> failwith (Az.tryGetError message) -let whatIf resourceGroupName parameters (deployment:#IDeploymentSource) = +let whatIf resourceGroupName parameters (deployment:IDeploymentSource) = match tryWhatIf resourceGroupName parameters deployment with | Ok output -> output | Error message -> failwith message \ No newline at end of file diff --git a/src/Farmer/Writer.fs b/src/Farmer/Writer.fs index 46d28d425..1206d1bac 100644 --- a/src/Farmer/Writer.fs +++ b/src/Farmer/Writer.fs @@ -50,7 +50,7 @@ let toFile folder templateName json = filename /// Converts the supplied ARMTemplate to JSON and then writes it out to the provided template name. The postfix ".json" will automatically be added to the filename. -let quickWrite templateName (deployment:#IDeploymentSource) = +let quickWrite templateName (deployment:IDeploymentSource) = deployment.Deployment.Template |> toJson |> toFile "." templateName diff --git a/src/Tests/AzCli.fs b/src/Tests/AzCli.fs index 6381cc8d1..935b6507c 100644 --- a/src/Tests/AzCli.fs +++ b/src/Tests/AzCli.fs @@ -5,7 +5,7 @@ open Farmer open System open TestHelpers -let deployTo resourceGroupName parameters (deployment:#IDeploymentSource) = +let deployTo resourceGroupName parameters (deployment:IDeploymentSource) = printfn "Creating resource group %s..." resourceGroupName let deployResponse = deployment.Deployment |> Deploy.tryExecute resourceGroupName parameters let deleteResponse = Deploy.Az.delete resourceGroupName diff --git a/src/Tests/Helpers.fs b/src/Tests/Helpers.fs index dfe6473be..22b3f4fbd 100644 --- a/src/Tests/Helpers.fs +++ b/src/Tests/Helpers.fs @@ -25,7 +25,7 @@ let getResourceAtIndex serializationSettings index (builder:#IBuilder) = builder.BuildResources Location.WestEurope |> fun r -> r.[index].JsonModel |> farmerToMs serializationSettings -let findAzureResources<'T when 'T : null> (serializationSettings:Newtonsoft.Json.JsonSerializerSettings) (deployment:#IDeploymentSource) = +let findAzureResources<'T when 'T : null> (serializationSettings:Newtonsoft.Json.JsonSerializerSettings) (deployment:IDeploymentSource) = let template = deployment.Deployment.Template |> Writer.TemplateGeneration.processTemplate template.resources diff --git a/src/Tests/ServiceBus.fs b/src/Tests/ServiceBus.fs index 2d4963ac3..5551d321a 100644 --- a/src/Tests/ServiceBus.fs +++ b/src/Tests/ServiceBus.fs @@ -18,7 +18,7 @@ let getTopicResource = getResource let getResources (v:IBuilder) = v.BuildResources Location.WestUS -let getResourceDependsOnByName (template:#IDeploymentSource) (resourceName:ResourceName) = +let getResourceDependsOnByName (template:IDeploymentSource) (resourceName:ResourceName) = let json = template.Deployment.Template |> Writer.toJson let jobj = Newtonsoft.Json.Linq.JObject.Parse(json) let dependsOn = jobj.SelectToken($"resources[?(@.name=='{resourceName.Value}')].dependsOn") diff --git a/src/Tests/Template.fs b/src/Tests/Template.fs index 55358cc46..9b158072b 100644 --- a/src/Tests/Template.fs +++ b/src/Tests/Template.fs @@ -10,7 +10,7 @@ open Microsoft.Rest open System open Newtonsoft.Json.Linq -let toTemplate (deployment:#IDeploymentSource) = +let toTemplate (deployment:IDeploymentSource) = deployment.Deployment.Template |> Writer.TemplateGeneration.processTemplate