Skip to content

Commit 56e4556

Browse files
committed
MINOR: structured: add tables to structured peers
1 parent d4c73a1 commit 56e4556

File tree

7 files changed

+135
-2
lines changed

7 files changed

+135
-2
lines changed

configuration/structured_peers.go

+16
Original file line numberDiff line numberDiff line change
@@ -200,6 +200,17 @@ func parsePeerSection(name string, p parser.Parser) (*models.PeerSection, error)
200200
return nil, errsa
201201
}
202202
ps.Servers = serversa
203+
204+
// tables
205+
tables, err := ParseTables(name, p)
206+
if err != nil {
207+
return nil, err
208+
}
209+
tablesa, errsa := namedResourceArrayToMap(tables)
210+
if errsa != nil {
211+
return nil, errsa
212+
}
213+
ps.Tables = tablesa
203214
return ps, nil
204215
}
205216

@@ -233,5 +244,10 @@ func serializePeerSection(a StructuredToParserArgs, ps *models.PeerSection) erro
233244
return a.HandleError(strconv.FormatInt(int64(i), 10), PeersParentName, ps.Name, a.TID, a.TID == "", err)
234245
}
235246
}
247+
for _, table := range ps.Tables {
248+
if err = p.Insert(parser.Peers, ps.Name, "table", SerializeTable(table), -1); err != nil {
249+
return a.HandleError(table.Name, PeersParentName, ps.Name, a.TID, a.TID == "", err)
250+
}
251+
}
236252
return nil
237253
}

models/peer_section.go

+61
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

models/peer_section_compare.go

+20
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

models/peer_section_compare_test.go

+2-2
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

specification/build/haproxy_spec.yaml

+3
Original file line numberDiff line numberDiff line change
@@ -4054,6 +4054,9 @@ definitions:
40544054
servers:
40554055
additionalProperties:
40564056
$ref: '#/definitions/server'
4057+
tables:
4058+
additionalProperties:
4059+
$ref: '#/definitions/table'
40574060
type: object
40584061
description: Peer Section with all it's children resources
40594062
type: object

specification/models/configuration/peers.yaml

+3
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,9 @@ peer_section:
1919
servers:
2020
additionalProperties:
2121
$ref: "#/definitions/server"
22+
tables:
23+
additionalProperties:
24+
$ref: "#/definitions/table"
2225
peer_section_base:
2326
title: Peer Section Base
2427
description: HAProxy peer_section configuration

test/expected/structured.json

+30
Original file line numberDiff line numberDiff line change
@@ -3106,6 +3106,36 @@
31063106
"port": 1023,
31073107
"shard": 1
31083108
}
3109+
},
3110+
"tables": {
3111+
"t1": {
3112+
"expire": "5m",
3113+
"name": "t1",
3114+
"no_purge": true,
3115+
"size": "200k",
3116+
"store": "gpc0,conn_rate(30s)",
3117+
"type": "string",
3118+
"type_len": 1000
3119+
},
3120+
"t2": {
3121+
"expire": "5m",
3122+
"name": "t2",
3123+
"no_purge": true,
3124+
"size": "200k",
3125+
"store": "gpc0,gpc1,conn_rate(30s)",
3126+
"type": "string",
3127+
"type_len": 1000
3128+
},
3129+
"t9": {
3130+
"expire": "5m",
3131+
"name": "t9",
3132+
"no_purge": true,
3133+
"size": "200k",
3134+
"store": "gpc0,conn_rate(30s)",
3135+
"type": "string",
3136+
"type_len": 1000,
3137+
"write_to": "t2"
3138+
}
31093139
}
31103140
}
31113141
},

0 commit comments

Comments
 (0)