@@ -36,62 +36,39 @@ struct RhsmFacts {
36
36
available_digest : String ,
37
37
}
38
38
39
+ /// Return the image reference, version and digest as owned strings.
40
+ /// A missing version is serialized as the empty string.
41
+ fn status_to_strings ( imagestatus : & crate :: spec:: ImageStatus ) -> ( String , String , String ) {
42
+ let image = imagestatus. image . image . clone ( ) ;
43
+ let version = imagestatus. version . as_ref ( ) . cloned ( ) . unwrap_or_default ( ) ;
44
+ let digest = imagestatus. image_digest . clone ( ) ;
45
+ ( image, version, digest)
46
+ }
47
+
39
48
impl From < crate :: spec:: HostStatus > for RhsmFacts {
40
49
fn from ( hoststatus : crate :: spec:: HostStatus ) -> Self {
41
50
let ( booted_image, booted_version, booted_digest) = hoststatus
42
51
. booted
43
52
. as_ref ( )
44
- . and_then ( |boot_entry| {
45
- boot_entry. image . as_ref ( ) . map ( |imagestatus| {
46
- let image = imagestatus. image . image . clone ( ) ;
47
- let version = imagestatus. version . as_ref ( ) . cloned ( ) . unwrap_or_default ( ) ;
48
- let digest = imagestatus. image_digest . clone ( ) ;
49
-
50
- ( image, version, digest)
51
- } )
52
- } )
53
+ . and_then ( |boot_entry| boot_entry. image . as_ref ( ) . map ( status_to_strings) )
53
54
. unwrap_or_default ( ) ;
54
55
55
56
let ( staged_image, staged_version, staged_digest) = hoststatus
56
57
. staged
57
58
. as_ref ( )
58
- . and_then ( |boot_entry| {
59
- boot_entry. image . as_ref ( ) . map ( |imagestatus| {
60
- let image = imagestatus. image . image . clone ( ) ;
61
- let version = imagestatus. version . as_ref ( ) . cloned ( ) . unwrap_or_default ( ) ;
62
- let digest = imagestatus. image_digest . clone ( ) ;
63
-
64
- ( image, version, digest)
65
- } )
66
- } )
59
+ . and_then ( |boot_entry| boot_entry. image . as_ref ( ) . map ( status_to_strings) )
67
60
. unwrap_or_default ( ) ;
68
61
69
62
let ( rollback_image, rollback_version, rollback_digest) = hoststatus
70
63
. rollback
71
64
. as_ref ( )
72
- . and_then ( |boot_entry| {
73
- boot_entry. image . as_ref ( ) . map ( |imagestatus| {
74
- let image = imagestatus. image . image . clone ( ) ;
75
- let version = imagestatus. version . as_ref ( ) . cloned ( ) . unwrap_or_default ( ) ;
76
- let digest = imagestatus. image_digest . clone ( ) ;
77
-
78
- ( image, version, digest)
79
- } )
80
- } )
65
+ . and_then ( |boot_entry| boot_entry. image . as_ref ( ) . map ( status_to_strings) )
81
66
. unwrap_or_default ( ) ;
82
67
83
68
let ( available_image, available_version, available_digest) = hoststatus
84
69
. booted
85
70
. as_ref ( )
86
- . and_then ( |boot_entry| {
87
- boot_entry. cached_update . as_ref ( ) . map ( |imagestatus| {
88
- let image = imagestatus. image . image . clone ( ) ;
89
- let version = imagestatus. version . as_ref ( ) . cloned ( ) . unwrap_or_default ( ) ;
90
- let digest = imagestatus. image_digest . clone ( ) ;
91
-
92
- ( image, version, digest)
93
- } )
94
- } )
71
+ . and_then ( |boot_entry| boot_entry. cached_update . as_ref ( ) . map ( status_to_strings) )
95
72
. unwrap_or_default ( ) ;
96
73
97
74
Self {
0 commit comments