Skip to content

Commit 3b9390e

Browse files
committed
bump op-rs branch and fix clippy warning
1 parent 3f09a7b commit 3b9390e

7 files changed

Lines changed: 55 additions & 112 deletions

File tree

Cargo.lock

Lines changed: 9 additions & 9 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

Cargo.nix

Lines changed: 18 additions & 18 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

crate-hashes.json

Lines changed: 9 additions & 9 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

rust/operator-binary/src/controller/build/config_map.rs

Lines changed: 6 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,3 @@
1-
use std::collections::BTreeMap;
2-
31
use indoc::formatdoc;
42
use snafu::{ResultExt, Snafu};
53
use stackable_operator::{
@@ -117,17 +115,7 @@ pub fn build_rolegroup_config_map(
117115
}
118116
};
119117

120-
let kafka_config = kafka_config
121-
.into_iter()
122-
.map(|(k, v)| (k, Some(v)))
123-
.collect::<Vec<_>>();
124-
125-
let jvm_sec_props: BTreeMap<String, Option<String>> = validated_rg
126-
.jvm_security_overrides
127-
.clone()
128-
.into_iter()
129-
.map(|(k, v)| (k, Some(v)))
130-
.collect();
118+
let jvm_sec_props = &validated_rg.jvm_security_overrides;
131119

132120
let mut cm_builder = ConfigMapBuilder::new();
133121
cm_builder
@@ -149,11 +137,11 @@ pub fn build_rolegroup_config_map(
149137
)
150138
.add_data(
151139
kafka_config_file_name,
152-
to_java_properties_string(kafka_config.iter().map(|(k, v)| (k, v))).with_context(
153-
|_| SerializeConfigSnafu {
140+
to_java_properties_string(kafka_config.iter()).with_context(|_| {
141+
SerializeConfigSnafu {
154142
rolegroup: rolegroup.clone(),
155-
},
156-
)?,
143+
}
144+
})?,
157145
)
158146
.add_data(
159147
JVM_SECURITY_PROPERTIES_FILE,
@@ -169,7 +157,7 @@ pub fn build_rolegroup_config_map(
169157
kafka_security
170158
.client_properties()
171159
.iter()
172-
.map(|(k, v)| (k, v)),
160+
.filter_map(|(k, v)| v.as_ref().map(|v| (k, v))),
173161
)
174162
.with_context(|_| JvmSecurityPropertiesSnafu {
175163
rolegroup: rolegroup.role_group.clone(),

rust/operator-binary/src/controller/validate.rs

Lines changed: 10 additions & 54 deletions
Original file line numberDiff line numberDiff line change
@@ -176,26 +176,17 @@ pub fn validate(
176176

177177
/// Merge role-group overrides over the role-level overrides (role-group wins per key) via the
178178
/// `Merge` impl derived on the override structs.
179-
///
180-
/// NOTE on semantics: `Merge` treats a role-group `null` value as "inherit the role-level value",
181-
/// *not* "unset it". This differs from `main`'s product-config layering, which `.extend()`ed the
182-
/// maps so a role-group `null` *removed* a role-level key. The `tests` module has a worked
183-
/// example of the difference.
184179
fn merge_role_group_overrides<O: Merge + Clone>(role: &O, role_group: Option<&O>) -> O {
185180
match role_group {
186181
Some(role_group) => merge(role_group.clone(), role),
187182
None => role.clone(),
188183
}
189184
}
190185

191-
/// Flatten resolved key/value overrides into a plain map, dropping entries whose value is
192-
/// unset (`null`).
186+
/// Flatten resolved key/value overrides into a plain map. operator-rs #1219 made the override
187+
/// values plain `String`, so there is no longer any `null`/unset entry to drop.
193188
fn flatten_overrides(overrides: KeyValueConfigOverrides) -> BTreeMap<String, String> {
194-
overrides
195-
.overrides
196-
.into_iter()
197-
.filter_map(|(key, value)| value.map(|value| (key, value)))
198-
.collect()
189+
overrides.overrides
199190
}
200191

201192
fn collect_broker_role_group_overrides(
@@ -297,13 +288,12 @@ mod tests {
297288

298289
use super::{flatten_overrides, merge_role_group_overrides};
299290

300-
/// Build a `KeyValueConfigOverrides` from `(key, value)` pairs, where a `None` value
301-
/// represents an explicit `null` (unset) in the CRD.
302-
fn overrides(pairs: &[(&str, Option<&str>)]) -> KeyValueConfigOverrides {
291+
/// Build a `KeyValueConfigOverrides` from `(key, value)` pairs.
292+
fn overrides(pairs: &[(&str, &str)]) -> KeyValueConfigOverrides {
303293
KeyValueConfigOverrides {
304294
overrides: pairs
305295
.iter()
306-
.map(|(key, value)| (key.to_string(), value.map(str::to_string)))
296+
.map(|(key, value)| (key.to_string(), value.to_string()))
307297
.collect(),
308298
}
309299
}
@@ -318,8 +308,8 @@ mod tests {
318308

319309
#[test]
320310
fn role_group_value_wins_over_role() {
321-
let role = overrides(&[("a", Some("role")), ("b", Some("role-only"))]);
322-
let role_group = overrides(&[("a", Some("rg"))]);
311+
let role = overrides(&[("a", "role"), ("b", "role-only")]);
312+
let role_group = overrides(&[("a", "rg")]);
323313

324314
let merged = resolve(role, Some(role_group));
325315

@@ -332,43 +322,9 @@ mod tests {
332322
);
333323
}
334324

335-
/// Illustrates the key consequence of using `Merge` (rather than `.extend()`, as `main`'s
336-
/// product-config did): a role-group `null` is treated as "inherit", so the role-level value
337-
/// is *kept* — it does NOT unset the key. Under the old `.extend()` behaviour this same input
338-
/// would have removed `a` entirely.
339325
#[test]
340-
fn role_group_null_inherits_role_value_rather_than_unsetting_it() {
341-
let role = overrides(&[("a", Some("role"))]);
342-
let role_group = overrides(&[("a", None)]); // explicit `null` at the more specific level
343-
344-
// For contrast: `main`'s product-config used a blind `.extend()`, so the role-group
345-
// `null` overwrote the role value and the key was then dropped — i.e. unset entirely.
346-
let old_extend_behaviour: BTreeMap<String, String> = {
347-
let mut combined = role.overrides.clone();
348-
combined.extend(role_group.overrides.clone());
349-
combined
350-
.into_iter()
351-
.filter_map(|(key, value)| value.map(|value| (key, value)))
352-
.collect()
353-
};
354-
assert!(
355-
old_extend_behaviour.is_empty(),
356-
"under the old `.extend()` behaviour the role-group `null` unsets `a`"
357-
);
358-
359-
// What we do now (Merge): the role-group `null` means "inherit", so the role-level
360-
// value is kept rather than unset.
361-
let merged = resolve(role, Some(role_group));
362-
assert_eq!(
363-
merged,
364-
BTreeMap::from([("a".to_string(), "role".to_string())]),
365-
"under Merge semantics the role-group `null` inherits the role-level value"
366-
);
367-
}
368-
369-
#[test]
370-
fn without_a_role_group_role_values_are_kept_and_nulls_dropped() {
371-
let role = overrides(&[("a", Some("role")), ("b", None)]);
326+
fn without_a_role_group_role_values_are_kept() {
327+
let role = overrides(&[("a", "role")]);
372328

373329
let merged = resolve(role, None);
374330

rust/operator-binary/src/crd/mod.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -241,7 +241,7 @@ pub mod versioned {
241241
pub broker_id_pod_config_map_name: Option<String>,
242242
}
243243

244-
// Uses the v2 KeyValueConfigOverrides (`nullable` values) to match trino/hdfs.
244+
// Uses the v2 KeyValueConfigOverrides (plain string values) to match trino/hdfs.
245245
// Derives `Merge` so role/role-group overrides combine via the shared merge logic;
246246
// resolution into flat maps happens in controller/validate.rs.
247247
#[derive(Clone, Debug, Default, Deserialize, JsonSchema, Merge, PartialEq, Serialize)]

rust/operator-binary/src/product_logging.rs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -111,7 +111,7 @@ fn log4j_config_if_automatic(
111111
log_file: &str,
112112
max_log_file_size: MemoryQuantity,
113113
) -> Option<String> {
114-
let config = if let Some(ContainerLogConfig {
114+
if let Some(ContainerLogConfig {
115115
choice: Some(ContainerLogConfigChoice::Automatic(log_config)),
116116
}) = log_config.as_deref()
117117
{
@@ -127,8 +127,7 @@ fn log4j_config_if_automatic(
127127
))
128128
} else {
129129
None
130-
};
131-
config
130+
}
132131
}
133132

134133
fn log4j2_config_if_automatic(

0 commit comments

Comments
 (0)