Skip to content

Commit 2191eb1

Browse files
committed
Merge remote-tracking branch 'origin/main' into refactor/remove-product-config
2 parents cf31c73 + adf3863 commit 2191eb1

9 files changed

Lines changed: 84 additions & 85 deletions

File tree

Cargo.nix

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

Cargo.toml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@ resolver = "2"
66
version = "0.0.0-dev"
77
authors = ["Stackable GmbH <info@stackable.tech>"]
88
license = "OSL-3.0"
9-
edition = "2021"
9+
edition = "2024"
1010
repository = "https://github.com/stackabletech/opa-operator"
1111

1212
[workspace.dependencies]

rust/bundle-builder/src/main.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -210,7 +210,8 @@ async fn main() -> Result<(), StartupError> {
210210
.context(RunServerSnafu)
211211
});
212212

213-
future::select(reflector, server).await.factor_first().0
213+
future::select(reflector, server).await.factor_first().0?;
214+
Ok(())
214215
}
215216

216217
#[derive(Snafu, Debug)]
@@ -244,7 +245,7 @@ enum BundleError {
244245
}
245246

246247
impl BundleError {
247-
fn to_http_response(&self) -> impl IntoResponse {
248+
fn to_http_response(&self) -> impl IntoResponse + use<> {
248249
(
249250
http::StatusCode::INTERNAL_SERVER_ERROR,
250251
"failed to build bundle, see opa-bundle-builder logs for more details",

rust/operator-binary/src/controller.rs

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -1085,13 +1085,11 @@ fn build_bundle_builder_start_command(merged_config: &OpaConfig, container_name:
10851085
.logging
10861086
.containers
10871087
.get(&Container::BundleBuilder)
1088-
{
1089-
if let Some(AppenderConfig {
1088+
&& let Some(AppenderConfig {
10901089
level: Some(log_level),
10911090
}) = log_config.console
1092-
{
1093-
console_logging_off = log_level == LogLevel::NONE
1094-
}
1091+
{
1092+
console_logging_off = log_level == LogLevel::NONE
10951093
};
10961094

10971095
formatdoc! {"
@@ -1145,13 +1143,11 @@ fn sidecar_container_log_level(
11451143
if let Some(ContainerLogConfig {
11461144
choice: Some(ContainerLogConfigChoice::Automatic(log_config)),
11471145
}) = merged_config.logging.containers.get(sidecar_container)
1148-
{
1149-
if let Some(logger) = log_config
1146+
&& let Some(logger) = log_config
11501147
.loggers
11511148
.get(AutomaticContainerLogConfig::ROOT_LOGGER)
1152-
{
1153-
return BundleBuilderLogLevel::from(logger.level);
1154-
}
1149+
{
1150+
return BundleBuilderLogLevel::from(logger.level);
11551151
}
11561152

11571153
BundleBuilderLogLevel::Info

rust/operator-binary/src/controller/build/properties/config_json.rs

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -35,10 +35,9 @@ pub fn build(merged_config: &OpaConfig, config_overrides: &OpaConfigOverrides) -
3535
if let Some(ContainerLogConfig {
3636
choice: Some(ContainerLogConfigChoice::Automatic(log_config)),
3737
}) = merged_config.logging.containers.get(&Container::Opa)
38+
&& let Some(config) = log_config.loggers.get("decision")
3839
{
39-
if let Some(config) = log_config.loggers.get("decision") {
40-
decision_logging_enabled = config.level != LogLevel::NONE;
41-
}
40+
decision_logging_enabled = config.level != LogLevel::NONE;
4241
}
4342

4443
let decision_logging = if decision_logging_enabled {

rust/operator-binary/src/webhooks/conversion.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -34,7 +34,7 @@ pub async fn create_webhook_server(
3434
disable_crd_maintenance,
3535
};
3636

37-
let (conversion_webhook, _initial_reconcile_rx) =
37+
let (conversion_webhook, _) =
3838
ConversionWebhook::new(crds_and_handlers, client, conversion_webhook_options);
3939

4040
let webhook_server_options = WebhookServerOptions {

rust/user-info-fetcher/src/backend/active_directory.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -181,14 +181,15 @@ pub(crate) async fn get_user_info(
181181
.context(UserNotFoundSnafu { request })?;
182182
let user = SearchEntry::construct(user);
183183
tracing::debug!(?user, "got user from LDAP");
184-
user_attributes(
184+
let attrs = user_attributes(
185185
&mut ldap,
186186
base_distinguished_name,
187187
&user,
188188
custom_attribute_mappings,
189189
additional_group_attribute_filters,
190190
)
191-
.await
191+
.await?;
192+
Ok(attrs)
192193
}
193194

194195
/// Constructs a user filter that searches both the UPN as well as the sAMAccountName attributes.

rust/user-info-fetcher/src/backend/openldap.rs

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -178,14 +178,15 @@ impl ResolvedOpenLdapBackend {
178178
// Search for groups that contain this user
179179
let groups = search_user_groups(&mut ldap, &user, &self.config).await?;
180180

181-
user_attributes(
181+
let attrs = user_attributes(
182182
user_id_attribute,
183183
user_name_attribute,
184184
&user,
185185
groups,
186186
&self.config.custom_attribute_mappings,
187187
)
188-
.await
188+
.await?;
189+
Ok(attrs)
189190
}
190191
}
191192

rust/user-info-fetcher/src/main.rs

Lines changed: 61 additions & 60 deletions
Original file line numberDiff line numberDiff line change
@@ -209,7 +209,8 @@ async fn main() -> Result<(), StartupError> {
209209
axum::serve(listener, app.into_make_service())
210210
.with_graceful_shutdown(shutdown_requested)
211211
.await
212-
.context(RunServerSnafu)
212+
.context(RunServerSnafu)?;
213+
Ok(())
213214
}
214215

215216
#[derive(Debug, Deserialize, PartialEq, Eq, Hash, Clone)]
@@ -315,64 +316,64 @@ async fn get_user_info(
315316
backend,
316317
user_info_cache,
317318
} = state;
318-
Ok(Json(
319-
user_info_cache
320-
.try_get_with_by_ref(&req, async {
321-
match backend.as_ref() {
322-
ResolvedBackend::None => {
323-
let user_id = match &req {
324-
UserInfoRequest::UserInfoRequestById(UserInfoRequestById { id }) => {
325-
Some(id)
326-
}
327-
_ => None,
328-
};
329-
let username = match &req {
330-
UserInfoRequest::UserInfoRequestByName(UserInfoRequestByName {
331-
username,
332-
}) => Some(username),
333-
_ => None,
334-
};
335-
Ok(UserInfo {
336-
id: user_id.cloned(),
337-
username: username.cloned(),
338-
groups: vec![],
339-
custom_attributes: HashMap::new(),
340-
})
341-
}
342-
ResolvedBackend::Keycloak(keycloak) => keycloak
343-
.get_user_info(&req)
344-
.await
345-
.context(get_user_info_error::KeycloakSnafu),
346-
ResolvedBackend::ExperimentalXfscAas(aas) => aas
347-
.get_user_info(&req)
348-
.await
349-
.context(get_user_info_error::ExperimentalXfscAasSnafu),
350-
ResolvedBackend::ActiveDirectory {
351-
ldap_server,
352-
tls,
353-
base_distinguished_name,
354-
custom_attribute_mappings,
355-
additional_group_attribute_filters,
356-
} => backend::active_directory::get_user_info(
357-
&req,
358-
ldap_server,
359-
tls,
360-
base_distinguished_name,
361-
custom_attribute_mappings,
362-
additional_group_attribute_filters,
363-
)
364-
.await
365-
.context(get_user_info_error::ActiveDirectorySnafu),
366-
ResolvedBackend::Entra(entra) => entra
367-
.get_user_info(&req)
368-
.await
369-
.context(get_user_info_error::EntraSnafu),
370-
ResolvedBackend::OpenLdap(openldap) => openldap
371-
.get_user_info(&req)
372-
.await
373-
.context(get_user_info_error::OpenLdapSnafu),
319+
let user_info = user_info_cache
320+
.try_get_with_by_ref(&req, async {
321+
match backend.as_ref() {
322+
ResolvedBackend::None => {
323+
let user_id = match &req {
324+
UserInfoRequest::UserInfoRequestById(UserInfoRequestById { id }) => {
325+
Some(id)
326+
}
327+
_ => None,
328+
};
329+
let username = match &req {
330+
UserInfoRequest::UserInfoRequestByName(UserInfoRequestByName {
331+
username,
332+
}) => Some(username),
333+
_ => None,
334+
};
335+
Ok(UserInfo {
336+
id: user_id.cloned(),
337+
username: username.cloned(),
338+
groups: vec![],
339+
custom_attributes: HashMap::new(),
340+
})
374341
}
375-
})
376-
.await?,
377-
))
342+
ResolvedBackend::Keycloak(keycloak) => keycloak
343+
.get_user_info(&req)
344+
.await
345+
.context(get_user_info_error::KeycloakSnafu),
346+
ResolvedBackend::ExperimentalXfscAas(aas) => aas
347+
.get_user_info(&req)
348+
.await
349+
.context(get_user_info_error::ExperimentalXfscAasSnafu),
350+
ResolvedBackend::ActiveDirectory {
351+
ldap_server,
352+
tls,
353+
base_distinguished_name,
354+
custom_attribute_mappings,
355+
additional_group_attribute_filters,
356+
} => backend::active_directory::get_user_info(
357+
&req,
358+
ldap_server,
359+
tls,
360+
base_distinguished_name,
361+
custom_attribute_mappings,
362+
additional_group_attribute_filters,
363+
)
364+
.await
365+
.context(get_user_info_error::ActiveDirectorySnafu),
366+
ResolvedBackend::Entra(entra) => entra
367+
.get_user_info(&req)
368+
.await
369+
.context(get_user_info_error::EntraSnafu),
370+
ResolvedBackend::OpenLdap(openldap) => openldap
371+
.get_user_info(&req)
372+
.await
373+
.context(get_user_info_error::OpenLdapSnafu),
374+
}
375+
})
376+
.await?;
377+
378+
Ok(Json(user_info))
378379
}

0 commit comments

Comments
 (0)