1- use std:: { collections:: BTreeMap , str :: FromStr } ;
1+ use std:: collections:: BTreeMap ;
22
33use snafu:: { OptionExt , ResultExt , Snafu } ;
44use 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
1511use 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