Skip to content

Commit 6196b2e

Browse files
committed
refactor: use get_name & get_namespace v2 helpers
1 parent d1998c0 commit 6196b2e

2 files changed

Lines changed: 23 additions & 35 deletions

File tree

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

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,14 @@
11
use snafu::{ResultExt, Snafu};
2-
use stackable_operator::{crd::s3, kube::ResourceExt};
2+
use stackable_operator::{crd::s3, v2::controller_utils::get_namespace};
33

44
use crate::{controller::build::opa::HiveOpaConfig, crd::v1alpha1};
55

66
#[derive(Snafu, Debug)]
77
pub enum Error {
8-
#[snafu(display("object defines no namespace"))]
9-
ObjectHasNoNamespace,
8+
#[snafu(display("failed to resolve namespace"))]
9+
ResolveNamespace {
10+
source: stackable_operator::v2::controller_utils::Error,
11+
},
1012

1113
#[snafu(display("failed to configure S3 connection"))]
1214
ConfigureS3Connection {
@@ -31,12 +33,10 @@ pub async fn dereference(
3133
) -> Result<DereferencedObjects, Error> {
3234
let s3_connection_spec: Option<s3::v1alpha1::ConnectionSpec> =
3335
if let Some(s3) = &hive.spec.cluster_config.s3 {
36+
let namespace = get_namespace(hive).context(ResolveNamespaceSnafu)?;
3437
Some(
3538
s3.clone()
36-
.resolve(
37-
client,
38-
&hive.namespace().ok_or(Error::ObjectHasNoNamespace)?,
39-
)
39+
.resolve(client, namespace.as_ref())
4040
.await
4141
.context(ConfigureS3ConnectionSnafu)?,
4242
)

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

Lines changed: 16 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -1,15 +1,11 @@
1-
use std::{collections::BTreeMap, str::FromStr};
1+
use std::collections::BTreeMap;
22

33
use snafu::{OptionExt, ResultExt, Snafu};
44
use stackable_operator::{
55
commons::product_image_selection,
6-
kube::ResourceExt as _,
76
role_utils::{GenericRoleConfig, JavaCommonConfig},
87
utils::cluster_info::KubernetesClusterInfo,
9-
v2::types::{
10-
kubernetes::{NamespaceName, Uid},
11-
operator::ClusterName,
12-
},
8+
v2::controller_utils::{get_cluster_name, get_namespace, get_uid},
139
};
1410

1511
use crate::{
@@ -36,25 +32,19 @@ pub enum Error {
3632
#[snafu(display("object defines no metastore role"))]
3733
NoMetaStoreRole,
3834

39-
#[snafu(display("invalid cluster name"))]
40-
InvalidClusterName {
41-
source: stackable_operator::v2::macros::attributed_string_type::Error,
35+
#[snafu(display("failed to resolve cluster name"))]
36+
ResolveClusterName {
37+
source: stackable_operator::v2::controller_utils::Error,
4238
},
4339

44-
#[snafu(display("object defines no namespace"))]
45-
ObjectHasNoNamespace,
46-
47-
#[snafu(display("invalid cluster namespace"))]
48-
InvalidNamespace {
49-
source: stackable_operator::v2::macros::attributed_string_type::Error,
40+
#[snafu(display("failed to resolve namespace"))]
41+
ResolveNamespace {
42+
source: stackable_operator::v2::controller_utils::Error,
5043
},
5144

52-
#[snafu(display("object has no uid"))]
53-
ObjectHasNoUid,
54-
55-
#[snafu(display("invalid cluster uid"))]
56-
InvalidUid {
57-
source: stackable_operator::v2::macros::attributed_string_type::Error,
45+
#[snafu(display("failed to resolve uid"))]
46+
ResolveUid {
47+
source: stackable_operator::v2::controller_utils::Error,
5848
},
5949

6050
#[snafu(display("failed to resolve and merge config for role group {role_group}"))]
@@ -75,7 +65,9 @@ pub fn validate_cluster(
7565
cluster_info: &KubernetesClusterInfo,
7666
dereferenced_objects: DereferencedObjects,
7767
) -> Result<ValidatedCluster, Error> {
78-
let namespace = hive.namespace().context(ObjectHasNoNamespaceSnafu)?;
68+
let name = get_cluster_name(hive).context(ResolveClusterNameSnafu)?;
69+
let namespace = get_namespace(hive).context(ResolveNamespaceSnafu)?;
70+
let uid = get_uid(hive).context(ResolveUidSnafu)?;
7971

8072
let image = hive
8173
.spec
@@ -105,7 +97,7 @@ pub fn validate_cluster(
10597
None
10698
};
10799

108-
let default_config = MetaStoreConfig::default_config(&hive.name_any(), &hive_role);
100+
let default_config = MetaStoreConfig::default_config(name.as_ref(), &hive_role);
109101

110102
let mut groups: BTreeMap<RoleGroupName, HiveRoleGroupConfig> = BTreeMap::new();
111103
for (rg_name, rg) in &role.role_groups {
@@ -142,7 +134,7 @@ pub fn validate_cluster(
142134

143135
// Kerberos-related `hive-site.xml` entries (empty when Kerberos is disabled).
144136
let kerberos_config = if hive.has_kerberos_enabled() {
145-
kerberos_config_properties(&hive.name_any(), &namespace, cluster_info)
137+
kerberos_config_properties(name.as_ref(), namespace.as_ref(), cluster_info)
146138
} else {
147139
BTreeMap::new()
148140
};
@@ -152,10 +144,6 @@ pub fn validate_cluster(
152144
let needs_kerberos_core_site =
153145
hive.has_kerberos_enabled() && hive.spec.cluster_config.hdfs.is_none();
154146

155-
let name = ClusterName::from_str(&hive.name_any()).context(InvalidClusterNameSnafu)?;
156-
let namespace = NamespaceName::from_str(&namespace).context(InvalidNamespaceSnafu)?;
157-
let uid = Uid::from_str(&hive.uid().context(ObjectHasNoUidSnafu)?).context(InvalidUidSnafu)?;
158-
159147
Ok(ValidatedCluster::new(
160148
name,
161149
namespace,

0 commit comments

Comments
 (0)