@@ -155,15 +155,15 @@ impl ValidatedCluster {
155155
156156 /// Type-safe names for the per-cluster RBAC resources: the ServiceAccount shared by all
157157 /// Pods, its (namespaced) RoleBinding, and the operator-deployed ClusterRole it binds.
158- pub fn rbac_resource_names ( & self ) -> role_utils:: ResourceNames {
158+ pub fn cluster_resource_names ( & self ) -> role_utils:: ResourceNames {
159159 role_utils:: ResourceNames {
160160 cluster_name : self . name . clone ( ) ,
161161 product_name : product_name ( ) ,
162162 }
163163 }
164164
165165 /// Type-safe names for the resources of the given role group.
166- pub ( crate ) fn resource_names (
166+ pub ( crate ) fn role_group_resource_names (
167167 & self ,
168168 role : & HdfsNodeRole ,
169169 role_group_name : & RoleGroupName ,
@@ -238,7 +238,7 @@ impl ValidatedCluster {
238238 role_group_name : & RoleGroupName ,
239239 ) -> ServiceName {
240240 ServiceName :: from_str (
241- self . resource_names ( role, role_group_name)
241+ self . role_group_resource_names ( role, role_group_name)
242242 . qualified_role_group_name ( )
243243 . as_ref ( ) ,
244244 )
@@ -379,3 +379,20 @@ impl ValidatedClusterConfig {
379379pub struct ValidatedRoleConfig {
380380 pub pdb : stackable_operator:: commons:: pdb:: PdbConfig ,
381381}
382+
383+ #[ cfg( test) ]
384+ mod tests {
385+ use strum:: IntoEnumIterator ;
386+
387+ use super :: ValidatedCluster ;
388+ use crate :: crd:: HdfsNodeRole ;
389+
390+ /// Locks the invariant behind the `expect` in [`ValidatedCluster::role_name`]: every
391+ /// `HdfsNodeRole` variant (present and future) must serialise to a valid `RoleName`.
392+ #[ test]
393+ fn every_hdfs_node_role_serialises_to_a_valid_role_name ( ) {
394+ for role in HdfsNodeRole :: iter ( ) {
395+ ValidatedCluster :: role_name ( & role) ;
396+ }
397+ }
398+ }
0 commit comments