Skip to content

Commit b363058

Browse files
committed
MEDIUM: runtime: Add stick table support
1 parent a5d3ec5 commit b363058

File tree

4 files changed

+446
-1
lines changed

4 files changed

+446
-1
lines changed

build/haproxy_spec.yaml

Lines changed: 231 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2811,6 +2811,147 @@ definitions:
28112811
type: array
28122812
items:
28132813
$ref: "#/definitions/runtime_server"
2814+
stick_table:
2815+
description: Stick Table Information
2816+
properties:
2817+
fields:
2818+
items:
2819+
properties:
2820+
field:
2821+
enum:
2822+
- server_id
2823+
- gpc0
2824+
- gpc1
2825+
- gpc1_rate
2826+
- conn_cnt
2827+
- conn_cur
2828+
- conn_rate
2829+
- sess_cnt
2830+
- sess_rate
2831+
- http_req_cnt
2832+
- http_req_rate
2833+
- http_err_cnt
2834+
- http_err_rate
2835+
- bytes_in_cnt
2836+
- bytes_in_rate
2837+
- bytes_out_cnt
2838+
- bytes_out_rate
2839+
type: string
2840+
period:
2841+
type: integer
2842+
x-dependency:
2843+
type:
2844+
value: rate
2845+
type:
2846+
enum:
2847+
- rate
2848+
- counter
2849+
type: string
2850+
type: object
2851+
x-go-name: StickTableField
2852+
type: array
2853+
name:
2854+
type: string
2855+
process:
2856+
description: Process number if master-worker mode
2857+
type: integer
2858+
x-nullable: true
2859+
size:
2860+
type: integer
2861+
x-nullable: true
2862+
type:
2863+
enum:
2864+
- ip
2865+
- ipv6
2866+
- integer
2867+
- string
2868+
- binary
2869+
type: string
2870+
used:
2871+
type: integer
2872+
x-nullable: true
2873+
title: Stick Table
2874+
type: object
2875+
stick_tables:
2876+
title: Stick Tables Array
2877+
description: Array of runtime stick tables
2878+
type: array
2879+
items:
2880+
$ref: "#/definitions/stick_table"
2881+
stick_table_entry:
2882+
description: One entry in stick table
2883+
properties:
2884+
bytes_in_cnt:
2885+
type: integer
2886+
x-nullable: true
2887+
bytes_in_rate:
2888+
type: integer
2889+
x-nullable: true
2890+
bytes_out_cnt:
2891+
type: integer
2892+
x-nullable: true
2893+
bytes_out_rate:
2894+
type: integer
2895+
x-nullable: true
2896+
conn_cnt:
2897+
type: integer
2898+
x-nullable: true
2899+
conn_cur:
2900+
type: integer
2901+
x-nullable: true
2902+
conn_rate:
2903+
type: integer
2904+
x-nullable: true
2905+
exp:
2906+
type: integer
2907+
x-nullable: true
2908+
gpc0:
2909+
type: integer
2910+
x-nullable: true
2911+
gpc0_rate:
2912+
type: integer
2913+
x-nullable: true
2914+
gpc1:
2915+
type: integer
2916+
x-nullable: true
2917+
gpc1_rate:
2918+
type: integer
2919+
x-nullable: true
2920+
http_err_cnt:
2921+
type: integer
2922+
x-nullable: true
2923+
http_err_rate:
2924+
type: integer
2925+
x-nullable: true
2926+
http_req_cnt:
2927+
type: integer
2928+
x-nullable: true
2929+
http_req_rate:
2930+
type: integer
2931+
x-nullable: true
2932+
id:
2933+
type: string
2934+
key:
2935+
type: string
2936+
server_id:
2937+
type: integer
2938+
x-nullable: true
2939+
sess_cnt:
2940+
type: integer
2941+
x-nullable: true
2942+
sess_rate:
2943+
type: integer
2944+
x-nullable: true
2945+
use:
2946+
type: boolean
2947+
title: Stick Table Entry
2948+
type: object
2949+
stick_table_entries:
2950+
title: Stick Tables Entries
2951+
description: Entries of one runtime stick table
2952+
type: array
2953+
items:
2954+
$ref: "#/definitions/stick_table_entry"
28142955
balance:
28152956
properties:
28162957
algorithm:
@@ -6870,4 +7011,94 @@ paths:
68707011
tags:
68717012
- Server
68727013
- Backend options
7014+
/services/haproxy/runtime/stick_tables:
7015+
get:
7016+
description: Returns an array of all stick tables.
7017+
operationId: getStickTables
7018+
parameters:
7019+
- description: Process number if master-worker mode, if not all processes are returned
7020+
in: query
7021+
name: process
7022+
type: integer
7023+
responses:
7024+
"200":
7025+
description: Successful operation
7026+
schema:
7027+
$ref: '#/definitions/stick_tables'
7028+
default:
7029+
$ref: '#/responses/DefaultError'
7030+
summary: Return Stick Tables
7031+
tags:
7032+
- StickTable
7033+
/services/haproxy/runtime/stick_tables/{name}:
7034+
get:
7035+
description: Returns one stick table from runtime.
7036+
operationId: getStickTable
7037+
parameters:
7038+
- description: Stick table name
7039+
in: path
7040+
name: name
7041+
required: true
7042+
type: string
7043+
- description: Process number if master-worker mode, if not only first process is
7044+
returned
7045+
in: query
7046+
name: process
7047+
required: true
7048+
type: integer
7049+
responses:
7050+
"200":
7051+
description: Successful operation
7052+
schema:
7053+
$ref: '#/definitions/stick_table'
7054+
"404":
7055+
$ref: '#/responses/NotFound'
7056+
default:
7057+
$ref: '#/responses/DefaultError'
7058+
summary: Return Stick Table
7059+
tags:
7060+
- StickTable
7061+
/services/haproxy/runtime/stick_table_entries:
7062+
get:
7063+
description: Returns an array of all entries in a given stick tables.
7064+
operationId: getStickTableEntries
7065+
parameters:
7066+
- description: Stick table name
7067+
in: query
7068+
name: stick_table
7069+
required: true
7070+
type: string
7071+
- description: Process number if master-worker mode, if not only first process is
7072+
returned
7073+
in: query
7074+
name: process
7075+
required: true
7076+
type: integer
7077+
- description: A list of filters in format data.<type> <operator> <value> separated
7078+
by comma
7079+
in: query
7080+
name: filter
7081+
type: string
7082+
- description: Key which we want the entries for
7083+
in: query
7084+
name: key
7085+
type: string
7086+
- description: Max number of entries to be returned for pagination
7087+
in: query
7088+
name: count
7089+
type: integer
7090+
- description: Offset which indicates how many items we skip in pagination
7091+
in: query
7092+
name: offset
7093+
type: integer
7094+
responses:
7095+
"200":
7096+
description: Successful operation
7097+
schema:
7098+
$ref: '#/definitions/stick_table_entries'
7099+
default:
7100+
$ref: '#/responses/DefaultError'
7101+
summary: Return Stick Table Entries
7102+
tags:
7103+
- StickTable
68737104

haproxy-spec.yaml

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -184,6 +184,22 @@ definitions:
184184
type: array
185185
items:
186186
$ref: "#/definitions/runtime_server"
187+
stick_table:
188+
$ref: "models/runtime.yaml#/table"
189+
stick_tables:
190+
title: Stick Tables Array
191+
description: Array of runtime stick tables
192+
type: array
193+
items:
194+
$ref: "#/definitions/stick_table"
195+
stick_table_entry:
196+
$ref: "models/runtime.yaml#/table_entry"
197+
stick_table_entries:
198+
title: Stick Tables Entries
199+
description: Entries of one runtime stick table
200+
type: array
201+
items:
202+
$ref: "#/definitions/stick_table_entry"
187203
balance:
188204
$ref: "models/configuration.yaml#/balance"
189205
forwardfor:
@@ -423,3 +439,9 @@ paths:
423439
$ref: "paths/runtime.yaml#/servers"
424440
/services/haproxy/runtime/servers/{name}:
425441
$ref: "paths/runtime.yaml#/servers_one"
442+
/services/haproxy/runtime/stick_tables:
443+
$ref: "paths/runtime.yaml#/stick_tables"
444+
/services/haproxy/runtime/stick_tables/{name}:
445+
$ref: "paths/runtime.yaml#/stick_tables_one"
446+
/services/haproxy/runtime/stick_table_entries:
447+
$ref: "paths/runtime.yaml#/stick_table_entries"

models/runtime.yaml

Lines changed: 106 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -246,4 +246,109 @@ server:
246246
address: 127.0.0.5
247247
port: 80
248248
operational_state: up
249-
admin_state: up
249+
admin_state: up
250+
table:
251+
title: Stick Table
252+
description: Stick Table Information
253+
type: object
254+
properties:
255+
process:
256+
type: integer
257+
x-nullable: true
258+
description: Process number if master-worker mode
259+
name:
260+
type: string
261+
type:
262+
type: string
263+
enum: [ip, ipv6, integer, string, binary]
264+
size:
265+
type: integer
266+
x-nullable: true
267+
used:
268+
type: integer
269+
x-nullable: true
270+
fields:
271+
type: array
272+
items:
273+
x-go-name: StickTableField
274+
type: object
275+
properties:
276+
field:
277+
type: string
278+
enum: [server_id, gpc0, gpc1, gpc1_rate, conn_cnt, conn_cur, conn_rate, sess_cnt, sess_rate, http_req_cnt, http_req_rate, http_err_cnt, http_err_rate, bytes_in_cnt, bytes_in_rate, bytes_out_cnt, bytes_out_rate]
279+
type:
280+
type: string
281+
enum: [rate, counter]
282+
period:
283+
type: integer
284+
x-dependency:
285+
type:
286+
value: rate
287+
table_entry:
288+
title: Stick Table Entry
289+
description: One entry in stick table
290+
type: object
291+
properties:
292+
id:
293+
type: string
294+
key:
295+
type: string
296+
server_id:
297+
type: integer
298+
x-nullable: true
299+
gpc0:
300+
type: integer
301+
x-nullable: true
302+
gpc0_rate:
303+
type: integer
304+
x-nullable: true
305+
gpc1:
306+
type: integer
307+
x-nullable: true
308+
gpc1_rate:
309+
type: integer
310+
x-nullable: true
311+
conn_cnt:
312+
type: integer
313+
x-nullable: true
314+
conn_cur:
315+
type: integer
316+
x-nullable: true
317+
conn_rate:
318+
type: integer
319+
x-nullable: true
320+
sess_cnt:
321+
type: integer
322+
x-nullable: true
323+
sess_rate:
324+
type: integer
325+
x-nullable: true
326+
http_req_cnt:
327+
type: integer
328+
x-nullable: true
329+
http_req_rate:
330+
type: integer
331+
x-nullable: true
332+
http_err_cnt:
333+
type: integer
334+
x-nullable: true
335+
http_err_rate:
336+
type: integer
337+
x-nullable: true
338+
bytes_in_cnt:
339+
type: integer
340+
x-nullable: true
341+
bytes_in_rate:
342+
type: integer
343+
x-nullable: true
344+
bytes_out_cnt:
345+
type: integer
346+
x-nullable: true
347+
bytes_out_rate:
348+
type: integer
349+
x-nullable: true
350+
exp:
351+
type: integer
352+
x-nullable: true
353+
use:
354+
type: boolean

0 commit comments

Comments
 (0)