1+ use std:: str:: FromStr ;
2+
13use snafu:: { OptionExt , ResultExt , Snafu } ;
24use stackable_operator:: {
3- builder:: {
4- meta:: ObjectMetaBuilder ,
5- pod:: volume:: { ListenerOperatorVolumeSourceBuilder , ListenerReference } ,
6- } ,
5+ builder:: meta:: ObjectMetaBuilder ,
76 crd:: listener:: { self , v1alpha1:: Listener } ,
87 k8s_openapi:: api:: core:: v1:: PersistentVolumeClaim ,
98 kvp:: { Labels , ObjectLabels } ,
9+ v2:: {
10+ builder:: pod:: volume:: {
11+ ListenerReference , listener_operator_volume_source_builder_build_pvc,
12+ } ,
13+ types:: kubernetes:: { ListenerName , PersistentVolumeClaimName } ,
14+ } ,
1015} ;
1116
1217use crate :: {
@@ -32,11 +37,6 @@ pub enum Error {
3237 source : stackable_operator:: builder:: meta:: Error ,
3338 } ,
3439
35- #[ snafu( display( "failed to build listener volume" ) ) ]
36- BuildListenerPersistentVolume {
37- source : stackable_operator:: builder:: pod:: volume:: ListenerOperatorVolumeSourceBuilderError ,
38- } ,
39-
4040 #[ snafu( display( "{role_name} listener has no adress" ) ) ]
4141 RoleListenerHasNoAddress { role_name : String } ,
4242
@@ -51,13 +51,13 @@ pub fn build_group_listener(
5151 cluster : & ValidatedCluster ,
5252 object_labels : ObjectLabels < ValidatedCluster > ,
5353 listener_class : String ,
54- listener_group_name : String ,
54+ listener_group_name : ListenerName ,
5555 druid_role : & DruidRole ,
5656) -> Result < Listener , Error > {
5757 Ok ( Listener {
5858 metadata : ObjectMetaBuilder :: new ( )
5959 . name_and_namespace ( cluster)
60- . name ( listener_group_name)
60+ . name ( listener_group_name. to_string ( ) )
6161 . ownerreference_from_resource ( cluster, None , Some ( true ) )
6262 . context ( ObjectMissingMetadataForOwnerRefSnafu ) ?
6363 . with_recommended_labels ( & object_labels)
@@ -78,23 +78,29 @@ pub fn build_group_listener(
7878}
7979
8080pub fn build_group_listener_pvc (
81- group_listener_name : & String ,
81+ group_listener_name : & ListenerName ,
8282 unversioned_recommended_labels : & Labels ,
83- ) -> Result < PersistentVolumeClaim , Error > {
84- ListenerOperatorVolumeSourceBuilder :: new (
85- & ListenerReference :: ListenerName ( group_listener_name. to_string ( ) ) ,
83+ ) -> PersistentVolumeClaim {
84+ listener_operator_volume_source_builder_build_pvc (
85+ & ListenerReference :: Listener ( group_listener_name. clone ( ) ) ,
8686 unversioned_recommended_labels,
87+ & PersistentVolumeClaimName :: from_str ( LISTENER_VOLUME_NAME )
88+ . expect ( "a valid persistent volume claim name" ) ,
8789 )
88- . build_pvc ( LISTENER_VOLUME_NAME . to_string ( ) )
89- . context ( BuildListenerPersistentVolumeSnafu )
9090}
9191
92- pub fn group_listener_name ( cluster : & ValidatedCluster , druid_role : & DruidRole ) -> Option < String > {
92+ pub fn group_listener_name (
93+ cluster : & ValidatedCluster ,
94+ druid_role : & DruidRole ,
95+ ) -> Option < ListenerName > {
9396 match druid_role {
94- DruidRole :: Coordinator | DruidRole :: Broker | DruidRole :: Router => Some ( format ! (
95- "{cluster_name}-{druid_role}" ,
96- cluster_name = cluster. name,
97- ) ) ,
97+ DruidRole :: Coordinator | DruidRole :: Broker | DruidRole :: Router => Some (
98+ ListenerName :: from_str ( & format ! (
99+ "{cluster_name}-{druid_role}" ,
100+ cluster_name = cluster. name,
101+ ) )
102+ . expect ( "a valid listener name" ) ,
103+ ) ,
98104 DruidRole :: Historical | DruidRole :: MiddleManager => None ,
99105 }
100106}
0 commit comments