Skip to content

Commit

Permalink
fix: properly pass owner references in conversions (#3702)
Browse files Browse the repository at this point in the history
  • Loading branch information
galibey authored Nov 15, 2023
1 parent 6253c32 commit 1fc1195
Show file tree
Hide file tree
Showing 2 changed files with 67 additions and 9 deletions.
2 changes: 1 addition & 1 deletion crates/fluvio-stream-dispatcher/src/metadata/k8.rs
Original file line number Diff line number Diff line change
Expand Up @@ -163,7 +163,7 @@ impl<T: K8MetadataClient> MetadataClient<K8MetaItem> for T {
let k8_input: InputK8Obj<S::K8Spec> = InputK8Obj {
api_version: S::K8Spec::api_version(),
kind: S::K8Spec::kind(),
metadata: metadata.inner().clone().into(),
metadata: metadata.inner().as_input(),
spec: k8_spec,
..Default::default()
};
Expand Down
74 changes: 66 additions & 8 deletions crates/fluvio-stream-model/src/store/k8.rs
Original file line number Diff line number Diff line change
Expand Up @@ -111,14 +111,11 @@ impl TryFrom<ObjectMeta> for K8MetaItem {
type Error = ParseIntError;

fn try_from(value: ObjectMeta) -> Result<Self, Self::Error> {
if value.resource_version.is_empty() {
return Ok(Self {
revision: 0,
inner: value,
..Default::default()
});
}
let revision: u64 = value.resource_version.parse()?;
let revision: u64 = if value.resource_version.is_empty() {
0
} else {
value.resource_version.parse()?
};
if value.owner_references.len() > 1 {
error!("too many owners: {value:#?}");
}
Expand Down Expand Up @@ -220,3 +217,64 @@ where
))),
}
}

#[cfg(test)]
mod tests {
use k8_types::OwnerReferences;

use super::*;

#[test]
fn test_k8_meta_from_object_meta() {
//given
let object_meta = ObjectMeta {
name: "w2".to_owned(),
namespace: "default".to_owned(),
resource_version: "123".to_string(),
owner_references: vec![OwnerReferences {
kind: "Widget".to_owned(),
name: "w1".to_owned(),
uid: "13fb7d10-6f1e-4749-8e9d-7f6c4013b8a3".to_owned(),
..Default::default()
}],
..Default::default()
};

//when
let k8_meta: K8MetaItem = object_meta.try_into().expect("converted");

//then
assert_eq!(k8_meta.revision, 123);
assert_eq!(k8_meta.inner.name, "w2");
assert_eq!(k8_meta.inner.namespace, "default");
assert_eq!(k8_meta.inner.owner_references.len(), 1);

let owner = k8_meta.owner.expect("owner");
assert_eq!(owner.inner.uid, "13fb7d10-6f1e-4749-8e9d-7f6c4013b8a3");
assert_eq!(owner.inner.name, "w1");
}

#[test]
fn test_k8_meta_from_object_meta_empty_resource_version() {
//given
let object_meta = ObjectMeta {
name: "w2".to_owned(),
owner_references: vec![OwnerReferences {
name: "w1".to_owned(),
..Default::default()
}],
..Default::default()
};

//when
let k8_meta: K8MetaItem = object_meta.try_into().expect("converted");

//then
assert_eq!(k8_meta.revision, 0);
assert_eq!(k8_meta.inner.name, "w2");
assert_eq!(k8_meta.inner.owner_references.len(), 1);

let owner = k8_meta.owner.expect("owner");
assert_eq!(owner.inner.name, "w1");
}
}

0 comments on commit 1fc1195

Please sign in to comment.