Skip to content

Commit a8ec274

Browse files
committed
Made protocol_version configurable via Augments
This change implements easy configuration of protocol_version in body common control for the standard MPF entries. Ticket: CFE-4543 Changelog: Title
1 parent 6f40111 commit a8ec274

6 files changed

Lines changed: 64 additions & 0 deletions

File tree

MPF.md

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1306,6 +1306,38 @@ Example definition in augments file:
13061306
}
13071307
```
13081308

1309+
### Specify the CFEngine protocol version to use
1310+
1311+
By default CFEngine will negotiate the newest protocol version available. Configuring `protocol_version` will restrict the protocol to the specified version.
1312+
1313+
```json
1314+
{
1315+
"variables": {
1316+
"default:def.control_common_protocol_version": {
1317+
"value": "filestream"
1318+
}
1319+
}
1320+
}
1321+
```
1322+
1323+
**Notes:**
1324+
1325+
- Valid values for `protocol_version` can be extracted from the syntax-description output of `cf-promises`.
1326+
1327+
For example:
1328+
1329+
```command
1330+
cf-promises --syntax-description=json | jq -r '.bodyTypes.common.attributes.protocol_version.range'`
1331+
```
1332+
1333+
```output
1334+
(1|classic|2|tls|3|cookie|4|filestream|latest)
1335+
```
1336+
1337+
**History:**
1338+
1339+
- Added in CFEngine 3.27.0
1340+
13091341
### Configure the ciphers used by cf-serverd
13101342

13111343
When `default:def.control_server_allowciphers` is defined `cf-serverd` will use the ciphers specified instead of the binary defaults.

controls/def.cf

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -399,6 +399,14 @@ bundle common def
399399
comment => concat( "The minimum log level required for log messages to go to the",
400400
" system log (e.g. syslog or Windows Event Log).",
401401
" (critical|error|warning|notice|info)" );
402+
403+
"control_common_protocol_version_defined" -> { "CFE-4543" }
404+
expression => isvariable( "default:def.control_common_protocol_version" ),
405+
comment => concat( "Defines the protocol version to use for all outgoing",
406+
" connections.",
407+
# It's challenging to keep this aligned with the core agent code
408+
# cf-promises --syntax-description=json | jq -r '.bodyTypes.common.attributes.protocol_version.range'
409+
" (1|classic|2|tls|3|cookie|4|filestream|latest)" );
402410
vars:
403411

404412
debian::

controls/update_def.cf.in

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,14 @@ bundle common update_def
1111
" system log (e.g. syslog or Windows Event Log).",
1212
" (critical|error|warning|notice|info)" );
1313

14+
"control_common_protocol_version_defined" -> { "CFE-4543" }
15+
expression => isvariable( "default:def.control_common_protocol_version" ),
16+
comment => concat( "Defines the protocol version to use for all outgoing",
17+
" connections.",
18+
# It's challenging to keep this aligned with the core agent code
19+
# cf-promises --syntax-description=json | jq -r '.bodyTypes.common.attributes.protocol_version.range'
20+
" (1|classic|2|tls|3|cookie|4|filestream|latest)" );
21+
1422
vars:
1523
"hub_binary_version" -> { "ENT-10664" }
1624
data => data_regextract(

promises.cf.in

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -141,6 +141,9 @@ body common control
141141

142142
control_common_system_log_level_defined::
143143
system_log_level => "$(default:def.control_common_system_log_level)";
144+
145+
control_common_protocol_version_defined::
146+
protocol_version => "$(default:def.control_common_protocol_version)";
144147
}
145148

146149
bundle common inventory

standalone_self_upgrade.cf.in

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -49,6 +49,13 @@ bundle common def_standalone_self_upgrade
4949
" system log (e.g. syslog or Windows Event Log).",
5050
" (critical|error|warning|notice|info)" );
5151

52+
"control_common_protocol_version_defined" -> { "CFE-4543" }
53+
expression => isvariable( "default:def.control_common_protocol_version" ),
54+
comment => concat( "Defines the protocol version to use for all outgoing",
55+
" connections.",
56+
# It's challenging to keep this aligned with the core agent code
57+
# cf-promises --syntax-description=json | jq -r '.bodyTypes.common.attributes.protocol_version.range'
58+
" (1|classic|2|tls|3|cookie|4|filestream|latest)" );
5259
}
5360
body agent control
5461
# @brief Agent controls for standalone self upgrade
@@ -884,6 +891,9 @@ body common control
884891

885892
control_common_system_log_level_defined::
886893
system_log_level => "$(default:def.control_common_system_log_level)";
894+
895+
control_common_protocol_version_defined::
896+
protocol_version => "$(default:def.control_common_protocol_version)";
887897
}
888898

889899
body depth_search u_recurse_basedir(d)

update.cf.in

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -43,6 +43,9 @@ body common control
4343

4444
control_common_system_log_level_defined::
4545
system_log_level => "$(default:def.control_common_system_log_level)";
46+
47+
control_common_protocol_version_defined::
48+
protocol_version => "$(default:def.control_common_protocol_version)";
4649
}
4750

4851
#############################################################################

0 commit comments

Comments
 (0)