Skip to content

Commit

Permalink
Merge pull request #686 from ericsoler1/ersoler/virtual_hub_labels
Browse files Browse the repository at this point in the history
VirtualHub/HubRouteTables add support for labels.
  • Loading branch information
ninjarobot authored Jul 9, 2021
2 parents 415b495 + 3126785 commit cfbdfe8
Show file tree
Hide file tree
Showing 3 changed files with 22 additions and 3 deletions.
1 change: 1 addition & 0 deletions RELEASE_NOTES.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,7 @@ Release Notes
## 1.6.5
* Azure Firewall: Bug fix for link_to_vhub and added depends_on to builder
* Functions: Add support for keyvault reference user identity
* VirtualHubs/hubRouteTables : Add support for labels
* Virtual Machine: Add option to static IP allocation
* Web App: Add support for keyvault reference user identity

Expand Down
11 changes: 8 additions & 3 deletions src/Farmer/Builders/Builders.VirtualHub.fs
Original file line number Diff line number Diff line change
Expand Up @@ -73,7 +73,8 @@ type VirtualHubBuilder() =
type HubRouteTableConfig =
{ Name : ResourceName
Vhub : LinkedResource
Routes : HubRoute list }
Routes : HubRoute list
Labels : string list }
interface IBuilder with
member this.ResourceId =
let vhubResourceId =
Expand Down Expand Up @@ -107,14 +108,15 @@ type HubRouteTableConfig =
routeDep
] |> Set.ofList
Routes = this.Routes
Labels = [] }
Labels = this.Labels }
]

type HubRouteTableBuilder() =
member _.Yield _ =
{ Name = ResourceName.Empty
Vhub = LinkedResource.Unmanaged (virtualHubs.resourceId ResourceName.Empty)
Routes = List.Empty }
Routes = List.Empty
Labels = List.Empty }
[<CustomOperation "name">]
/// Sets the name of the virtual hub.
member _.Name(state:HubRouteTableConfig, name) = { state with Name = name }
Expand All @@ -133,6 +135,9 @@ type HubRouteTableBuilder() =
/// Adds the routes to the HubRouteTable
member _.AddRoutes(state:HubRouteTableConfig, routes) =
{ state with Routes = state.Routes @ routes}
[<CustomOperation "add_labels">]
member _.AddLabels(state:HubRouteTableConfig, labels) =
{ state with Labels = state.Labels @ labels }
member _.Run (state:HubRouteTableConfig) =
match state.Vhub with
| Managed resourceId
Expand Down
13 changes: 13 additions & 0 deletions src/Tests/VirtualHub.fs
Original file line number Diff line number Diff line change
Expand Up @@ -219,6 +219,19 @@ let hubRouteTableTests = testList "Hub Route Table Tests" [
let expectedDependency = $"[resourceId('Microsoft.Network/virtualHubs', '{vhubResourceName.Value}')]"
Expect.equal dependsOn.Head expectedDependency ""
}
test "HubRouteTable appends labels" {
let routeTableResourceName = "my-routetable"
let vhubResourceName = "my-vhub"
let expectedLabels = ["label1"; "label2"]
let resource =
hubRouteTable {
name routeTableResourceName
link_to_unmanaged_vhub (virtualHubs.resourceId vhubResourceName)
add_labels expectedLabels
}
|> getResources |> getHubRouteTableResource |> List.head
Expect.equal resource.Labels expectedLabels ""
}
]

let tests = testList "Virtual Hub Tests" [virtualHubTests; hubRouteTableTests]

0 comments on commit cfbdfe8

Please sign in to comment.