Skip to content

Commit 2c9b2e5

Browse files
committed
chore: Rework imports of common versioned structs
1 parent 1d7679c commit 2c9b2e5

File tree

4 files changed

+122
-108
lines changed

4 files changed

+122
-108
lines changed

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

Lines changed: 9 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ use csi_grpc as csi;
22
use serde::{Deserialize, de::IntoDeserializer};
33
use snafu::{OptionExt, ResultExt, Snafu};
44
use stackable_operator::{
5-
crd::listener::v1alpha1,
5+
crd::listener,
66
k8s_openapi::api::core::v1::PersistentVolumeClaim,
77
kube::{core::DynamicObject, runtime::reflector::ObjectRef},
88
};
@@ -37,7 +37,7 @@ enum CreateVolumeError {
3737
DecodeVolumeContext { source: serde::de::value::Error },
3838
#[snafu(display("{listener} does not specify a listener class"))]
3939
NoListenerClass {
40-
listener: ObjectRef<v1alpha1::Listener>,
40+
listener: ObjectRef<listener::v1alpha1::Listener>,
4141
},
4242
}
4343

@@ -101,10 +101,10 @@ impl csi::v1::controller_server::Controller for ListenerOperatorController {
101101
ListenerSelector::Listener(listener_name) => {
102102
let listener = self
103103
.client
104-
.get::<v1alpha1::Listener>(&listener_name, &ns)
104+
.get::<listener::v1alpha1::Listener>(&listener_name, &ns)
105105
.await
106106
.with_context(|_| GetObjectSnafu {
107-
obj: ObjectRef::<v1alpha1::Listener>::new(&listener_name)
107+
obj: ObjectRef::<listener::v1alpha1::Listener>::new(&listener_name)
108108
.within(&ns)
109109
.erase(),
110110
})?;
@@ -120,10 +120,10 @@ impl csi::v1::controller_server::Controller for ListenerOperatorController {
120120
};
121121
let listener_class = self
122122
.client
123-
.get::<v1alpha1::ListenerClass>(&listener_class_name, &())
123+
.get::<listener::v1alpha1::ListenerClass>(&listener_class_name, &())
124124
.await
125125
.with_context(|_| GetObjectSnafu {
126-
obj: ObjectRef::<v1alpha1::ListenerClass>::new(&listener_class_name)
126+
obj: ObjectRef::<listener::v1alpha1::ListenerClass>::new(&listener_class_name)
127127
.within(&ns)
128128
.erase(),
129129
})?;
@@ -136,17 +136,16 @@ impl csi::v1::controller_server::Controller for ListenerOperatorController {
136136
accessible_topology: match listener_class.spec.service_type {
137137
// Pick the top node (as selected by the CSI client) and "stick" to that
138138
// Since we want clients to have a stable address to connect to
139-
v1alpha1::ServiceType::NodePort => request
139+
listener::v1alpha1::ServiceType::NodePort => request
140140
.accessibility_requirements
141141
.unwrap_or_default()
142142
.preferred
143143
.into_iter()
144144
.take(1)
145145
.collect(),
146146
// Load balancers and services of type ClusterIP have no relationship to any particular node, so don't try to be sticky
147-
v1alpha1::ServiceType::LoadBalancer | v1alpha1::ServiceType::ClusterIP => {
148-
Vec::new()
149-
}
147+
listener::v1alpha1::ServiceType::LoadBalancer
148+
| listener::v1alpha1::ServiceType::ClusterIP => Vec::new(),
150149
},
151150
}),
152151
}))

rust/operator-binary/src/csi_server/node.rs

Lines changed: 46 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@ use serde::{Deserialize, de::IntoDeserializer};
55
use snafu::{OptionExt, ResultExt, Snafu};
66
use stackable_operator::{
77
builder::meta::OwnerReferenceBuilder,
8-
crd::listener::v1alpha1,
8+
crd::listener,
99
k8s_openapi::api::core::v1::{Node, PersistentVolume, PersistentVolumeClaim, Pod, Volume},
1010
kube::{
1111
core::{DynamicObject, ObjectMeta},
@@ -60,18 +60,18 @@ enum PublishVolumeError {
6060
#[snafu(display("failed to generate {listener}'s PersistentVolume selector"))]
6161
ListenerPvReference {
6262
source: ListenerPersistentVolumeLabelError,
63-
listener: ObjectRef<v1alpha1::Listener>,
63+
listener: ObjectRef<listener::v1alpha1::Listener>,
6464
},
6565

6666
#[snafu(display("failed to generate {listener}'s pod selector"))]
6767
ListenerPodSelector {
6868
source: ListenerMountedPodLabelError,
69-
listener: ObjectRef<v1alpha1::Listener>,
69+
listener: ObjectRef<listener::v1alpha1::Listener>,
7070
},
7171

7272
#[snafu(display("{listener} has no associated ListenerClass"))]
7373
ListenerHasNoClass {
74-
listener: ObjectRef<v1alpha1::Listener>,
74+
listener: ObjectRef<listener::v1alpha1::Listener>,
7575
},
7676

7777
#[snafu(display("{pod} has not been scheduled to a node yet"))]
@@ -85,7 +85,7 @@ enum PublishVolumeError {
8585
#[snafu(display("failed to apply {listener}"))]
8686
ApplyListener {
8787
source: stackable_operator::client::Error,
88-
listener: ObjectRef<v1alpha1::Listener>,
88+
listener: ObjectRef<listener::v1alpha1::Listener>,
8989
},
9090

9191
#[snafu(display("failed to add listener label to {pv}"))]
@@ -113,7 +113,7 @@ enum PublishVolumeError {
113113
WritePodListeners {
114114
source: stackable_operator::client::Error,
115115
create_error: stackable_operator::client::Error,
116-
pod_listeners: ObjectRef<v1alpha1::PodListeners>,
116+
pod_listeners: ObjectRef<listener::v1alpha1::PodListeners>,
117117
},
118118

119119
#[snafu(display("failed to find Pod volume corresponding for {pvc}"))]
@@ -243,17 +243,17 @@ impl csi::v1::node_server::Node for ListenerOperatorNode {
243243
let listener = match listener_selector {
244244
ListenerSelector::Listener(listener_name) => self
245245
.client
246-
.get::<v1alpha1::Listener>(&listener_name, &ns)
246+
.get::<listener::v1alpha1::Listener>(&listener_name, &ns)
247247
.await
248248
.with_context(|_| GetObjectSnafu {
249249
obj: {
250-
ObjectRef::<v1alpha1::Listener>::new(&listener_name)
250+
ObjectRef::<listener::v1alpha1::Listener>::new(&listener_name)
251251
.within(&ns)
252252
.erase()
253253
},
254254
})?,
255255
ListenerSelector::ListenerClass(listener_class_name) => {
256-
let listener = v1alpha1::Listener {
256+
let listener = listener::v1alpha1::Listener {
257257
metadata: ObjectMeta {
258258
namespace: Some(ns.clone()),
259259
name: Some(pvc_name.to_string()),
@@ -268,15 +268,15 @@ impl csi::v1::node_server::Node for ListenerOperatorNode {
268268
labels: pvc.metadata.labels,
269269
..Default::default()
270270
},
271-
spec: v1alpha1::ListenerSpec {
271+
spec: listener::v1alpha1::ListenerSpec {
272272
class_name: Some(listener_class_name),
273273
ports: Some(
274274
pod.spec
275275
.iter()
276276
.flat_map(|ps| &ps.containers)
277277
.flat_map(|ctr| &ctr.ports)
278278
.flatten()
279-
.map(|port| v1alpha1::ListenerPort {
279+
.map(|port| listener::v1alpha1::ListenerPort {
280280
name: port
281281
.name
282282
.clone()
@@ -419,9 +419,9 @@ impl csi::v1::node_server::Node for ListenerOperatorNode {
419419
/// (and so can't be found in `Endpoints`).
420420
async fn local_listener_addresses_for_pod(
421421
client: &stackable_operator::client::Client,
422-
listener: &v1alpha1::Listener,
422+
listener: &listener::v1alpha1::Listener,
423423
pod: &Pod,
424-
) -> Result<Vec<v1alpha1::ListenerIngress>, PublishVolumeError> {
424+
) -> Result<Vec<listener::v1alpha1::ListenerIngress>, PublishVolumeError> {
425425
use publish_volume_error::*;
426426

427427
if let Some(node_ports) = listener
@@ -451,20 +451,23 @@ async fn local_listener_addresses_for_pod(
451451
listener: ObjectRef::from_obj(listener),
452452
})?;
453453
let listener_class = client
454-
.get::<v1alpha1::ListenerClass>(listener_class_name, &())
454+
.get::<listener::v1alpha1::ListenerClass>(listener_class_name, &())
455455
.await
456456
.with_context(|_| GetObjectSnafu {
457-
obj: ObjectRef::<v1alpha1::ListenerClass>::new(listener_class_name).erase(),
457+
obj: ObjectRef::<listener::v1alpha1::ListenerClass>::new(listener_class_name)
458+
.erase(),
458459
})?;
459460

460461
Ok(node_primary_addresses(&node)
461462
.pick(listener_class.spec.resolve_preferred_address_type())
462-
.map(|(address, address_type)| v1alpha1::ListenerIngress {
463-
// nodes: Some(vec![node_name.to_string()]),
464-
address: address.to_string(),
465-
address_type,
466-
ports: node_ports,
467-
})
463+
.map(
464+
|(address, address_type)| listener::v1alpha1::ListenerIngress {
465+
// nodes: Some(vec![node_name.to_string()]),
466+
address: address.to_string(),
467+
address_type,
468+
ports: node_ports,
469+
},
470+
)
468471
.into_iter()
469472
.collect())
470473
} else {
@@ -477,14 +480,14 @@ async fn local_listener_addresses_for_pod(
477480
}
478481
}
479482

480-
/// Publish listener into a [`v1alpha1::PodListeners`] Kubernetes object.
483+
/// Publish listener into a [`listener::v1alpha1::PodListeners`] Kubernetes object.
481484
async fn publish_pod_listener(
482485
client: &stackable_operator::client::Client,
483486
pod: &Pod,
484487
pod_name: &str,
485488
pvc_name: &str,
486-
listener: &v1alpha1::Listener,
487-
listener_addresses: &[v1alpha1::ListenerIngress],
489+
listener: &listener::v1alpha1::Listener,
490+
listener_addresses: &[listener::v1alpha1::ListenerIngress],
488491
) -> Result<(), PublishVolumeError> {
489492
use publish_volume_error::*;
490493
let listener_pod_volume = pod
@@ -507,7 +510,7 @@ async fn publish_pod_listener(
507510
.with_context(|| FindPodVolumeForPvcSnafu {
508511
pvc: ObjectRef::<PersistentVolumeClaim>::new(pvc_name),
509512
})?;
510-
let pod_listeners = v1alpha1::PodListeners {
513+
let pod_listeners = listener::v1alpha1::PodListeners {
511514
metadata: ObjectMeta {
512515
name: pod.metadata.uid.as_deref().map(|uid| format!("pod-{uid}")),
513516
namespace: pod.metadata.namespace.clone(),
@@ -519,20 +522,23 @@ async fn publish_pod_listener(
519522
]),
520523
..Default::default()
521524
},
522-
spec: v1alpha1::PodListenersSpec {
523-
listeners: [(listener_pod_volume.name.clone(), v1alpha1::PodListener {
524-
scope: if listener
525-
.status
526-
.as_ref()
527-
.and_then(|s| s.node_ports.as_ref())
528-
.is_some()
529-
{
530-
v1alpha1::PodListenerScope::Node
531-
} else {
532-
v1alpha1::PodListenerScope::Cluster
525+
spec: listener::v1alpha1::PodListenersSpec {
526+
listeners: [(
527+
listener_pod_volume.name.clone(),
528+
listener::v1alpha1::PodListener {
529+
scope: if listener
530+
.status
531+
.as_ref()
532+
.and_then(|s| s.node_ports.as_ref())
533+
.is_some()
534+
{
535+
listener::v1alpha1::PodListenerScope::Node
536+
} else {
537+
listener::v1alpha1::PodListenerScope::Cluster
538+
},
539+
ingress_addresses: Some(listener_addresses.to_vec()),
533540
},
534-
ingress_addresses: Some(listener_addresses.to_vec()),
535-
})]
541+
)]
536542
.into(),
537543
},
538544
};
@@ -555,7 +561,7 @@ mod pod_dir {
555561
use std::path::Path;
556562

557563
use snafu::{OptionExt, ResultExt, Snafu};
558-
use stackable_operator::crd::listener::v1alpha1;
564+
use stackable_operator::crd::listener;
559565

560566
#[derive(Snafu, Debug)]
561567
pub enum Error {
@@ -569,7 +575,7 @@ mod pod_dir {
569575

570576
pub async fn write_listener_info_to_pod_dir(
571577
target_path: &Path,
572-
listener_addrs: &[v1alpha1::ListenerIngress],
578+
listener_addrs: &[listener::v1alpha1::ListenerIngress],
573579
) -> Result<(), Error> {
574580
let addrs_path = target_path.join("addresses");
575581
tokio::fs::create_dir_all(&addrs_path).await?;

0 commit comments

Comments
 (0)