
Generator for: models/server_params_prepare_for_runtime.go
This genetator generates a file that will contains the needed functions to prepare a ServerParams to use in combination with add server command on the runtime socket.
This file will contain 3 functions:
func (p *ServerParams) prepareForRuntimeDoNotSendDisabledFields()
func (p *ServerParams) prepareForRuntimeDoNotSendEnabledFields()
func (p *ServerParams) PrepareFieldsForRuntimeAddServer()
They are used for example in Ingress Controller the following way:
params.PrepareFieldsForRuntimeAddServer()
serverParams := configuration.SerializeServerParams(defaultServer.ServerParams)
res := cp_params.ServerOptionsString(serverParams)
func (p *ServerParams) prepareForRuntimeDoNotSendDisabledFields()
For example for Check that has the values [enabled disabled].
- if the value is
enabled we must send add server check
- if the value is
disabled we must not send add server no-check as no-check is not allowed on a dynamic server
no-check is the default value.
The purpose is to set Check to "" when the value was disabled so the commands sent are:
add server check if value is enabled
add server if value is disabled
func (p *ServerParams) prepareForRuntimeDoNotSendEnabledFields()
It's just the opposite.
For example for NoSslv3
- if
enabled we must send no-sslv3
- if
disabled we must not sent an option
func (p *ServerParams) PrepareFieldsForRuntimeAddServer()`
is just calling both PrepareForRuntimeDoNotSendDisabledFields and PrepareForRuntimeDoNotSendEnabledFields
WHAT TO DO
Just fill in server_params_prepare_for_runtime.go the map:
ServerParamsPrepareForRuntimeMap
for each field that has an // Enum: [enabled disabled]"
with the correct function to use
Ensure that the map is always filled in a field is added into ServerParams: CI check
The generator checks all fields in ServerParams that have // Enum: [enabled disabled]" have an entry in the ServerParamsPrepareForRuntimeMap.
If a new field is added and not declared in ServerParamsPrepareForRuntimeMap, the generator fails with an error and this will make the CI fail.