summaryrefslogtreecommitdiff
path: root/buildscripts/idl/idl/generator.py
diff options
context:
space:
mode:
authorSara Golemon <sara.golemon@mongodb.com>2022-09-09 12:03:07 -0500
committerEvergreen Agent <no-reply@evergreen.mongodb.com>2022-09-27 03:13:12 +0000
commit2cfc78ff27a7ed95e7632f7749f8d09383be308b (patch)
treec984bd2dc8a5b3fd3a9c12cf82f9802b3510fb1e /buildscripts/idl/idl/generator.py
parentb7025a4b61e658d1d07c56e057fcc13e792d6fb4 (diff)
downloadmongo-2cfc78ff27a7ed95e7632f7749f8d09383be308b.tar.gz
SERVER-69060 Guard server parameters on feature flags
Diffstat (limited to 'buildscripts/idl/idl/generator.py')
-rw-r--r--buildscripts/idl/idl/generator.py9
1 files changed, 9 insertions, 0 deletions
diff --git a/buildscripts/idl/idl/generator.py b/buildscripts/idl/idl/generator.py
index 3cb145c09eb..64c7f504146 100644
--- a/buildscripts/idl/idl/generator.py
+++ b/buildscripts/idl/idl/generator.py
@@ -2504,6 +2504,15 @@ class _CppSourceFileWriter(_CppFileWriterBase):
if param.test_only:
self._writer.write_line('scp_%d->setTestOnly();' % (param_no))
+ if param.condition and param.condition.feature_flag:
+ ffs = [sp for sp in params if sp.name == param.condition.feature_flag]
+ if len(ffs) == 0:
+ raise ValueError("Unable to find feature flag named %s" %
+ (param.condition.feature_flag))
+ assert len(ffs) == 1
+ self._writer.write_line(
+ 'scp_%d->setFeatureFlag(&%s);' % (param_no, ffs[0].cpp_varname))
+
self._gen_server_parameter_deprecated_aliases(param_no, param)
self.write_empty_line()