1- use snafu:: { ResultExt , Snafu } ;
1+ use std:: str:: FromStr ;
2+
23use stackable_operator:: {
3- builder:: {
4- meta:: ObjectMetaBuilder ,
5- pod:: volume:: { ListenerOperatorVolumeSourceBuilder , ListenerReference } ,
6- } ,
4+ builder:: meta:: ObjectMetaBuilder ,
75 crd:: listener:: v1alpha1:: { Listener , ListenerPort , ListenerSpec } ,
86 k8s_openapi:: api:: core:: v1:: PersistentVolumeClaim ,
97 kvp:: Labels ,
10- v2:: { builder:: meta:: ownerreference_from_resource, types:: kubernetes:: ListenerClassName } ,
8+ v2:: {
9+ builder:: {
10+ meta:: ownerreference_from_resource,
11+ pod:: volume:: { ListenerReference , listener_operator_volume_source_builder_build_pvc} ,
12+ } ,
13+ types:: kubernetes:: { ListenerClassName , ListenerName , PersistentVolumeClaimName } ,
14+ } ,
1115} ;
1216
1317use crate :: {
@@ -18,23 +22,15 @@ use crate::{
1822pub const LISTENER_VOLUME_NAME : & str = "listener" ;
1923pub const LISTENER_VOLUME_DIR : & str = "/stackable/listener" ;
2024
21- #[ derive( Snafu , Debug ) ]
22- pub enum Error {
23- #[ snafu( display( "failed to build listener volume" ) ) ]
24- BuildListenerPersistentVolume {
25- source : stackable_operator:: builder:: pod:: volume:: ListenerOperatorVolumeSourceBuilderError ,
26- } ,
27- }
28-
2925pub fn build_group_listener (
3026 cluster : & ValidatedCluster ,
3127 listener_class : ListenerClassName ,
32- listener_group_name : String ,
33- ) -> Result < Listener , Error > {
34- Ok ( Listener {
28+ listener_group_name : ListenerName ,
29+ ) -> Listener {
30+ Listener {
3531 metadata : ObjectMetaBuilder :: new ( )
3632 . name_and_namespace ( cluster)
37- . name ( listener_group_name)
33+ . name ( listener_group_name. to_string ( ) )
3834 . ownerreference ( ownerreference_from_resource ( cluster, None , Some ( true ) ) )
3935 . with_labels ( cluster. recommended_labels_role_level ( ) )
4036 . build ( ) ,
@@ -48,21 +44,25 @@ pub fn build_group_listener(
4844 ..Default :: default ( )
4945 } ,
5046 status : None ,
51- } )
47+ }
5248}
5349
5450pub fn build_group_listener_pvc (
55- group_listener_name : & String ,
51+ group_listener_name : & ListenerName ,
5652 unversioned_recommended_labels : & Labels ,
57- ) -> Result < PersistentVolumeClaim , Error > {
58- ListenerOperatorVolumeSourceBuilder :: new (
59- & ListenerReference :: ListenerName ( group_listener_name. to_string ( ) ) ,
53+ ) -> PersistentVolumeClaim {
54+ listener_operator_volume_source_builder_build_pvc (
55+ & ListenerReference :: Listener ( group_listener_name. clone ( ) ) ,
6056 unversioned_recommended_labels,
57+ & PersistentVolumeClaimName :: from_str ( LISTENER_VOLUME_NAME )
58+ . expect ( "'listener' is a valid PersistentVolumeClaim name" ) ,
6159 )
62- . build_pvc ( LISTENER_VOLUME_NAME . to_string ( ) )
63- . context ( BuildListenerPersistentVolumeSnafu )
6460}
6561
66- pub fn group_listener_name ( cluster : & ValidatedCluster , role_name : & String ) -> String {
67- format ! ( "{cluster_name}-{role_name}" , cluster_name = cluster. name)
62+ pub fn group_listener_name ( cluster : & ValidatedCluster , role_name : & String ) -> ListenerName {
63+ ListenerName :: from_str ( & format ! (
64+ "{cluster_name}-{role_name}" ,
65+ cluster_name = cluster. name
66+ ) )
67+ . expect ( "the cluster name and role name form a valid listener name" )
6868}
0 commit comments