@@ -42,11 +42,19 @@ public static RunFunctionResponse To(this RunFunctionRequest request, Duration t
4242 } ,
4343 Desired = request . Desired ,
4444 Context = request . Context ,
45+ Requirements = new ( )
4546 } ;
4647
4748 return resp ;
4849 }
4950
51+ public static T GetKubeResource < T > ( this Resource resource )
52+ {
53+ var json = JsonFormatter . Default . Format ( resource . Resource_ ) ;
54+
55+ return KubernetesJson . Deserialize < T > ( json ) ;
56+ }
57+
5058 /// <summary>
5159 /// Get Observed Composite Resource from the supplied request.
5260 /// </summary>
@@ -55,9 +63,7 @@ public static RunFunctionResponse To(this RunFunctionRequest request, Duration t
5563 /// <returns></returns>
5664 public static T ? GetObservedCompositeResource < T > ( this RunFunctionRequest request )
5765 {
58- var json = JsonFormatter . Default . Format ( request . Observed . Composite . Resource_ ) ;
59-
60- return KubernetesJson . Deserialize < T > ( json ) ;
66+ return request . Observed . Composite . GetKubeResource < T > ( ) ;
6167 }
6268
6369 /// <summary>
@@ -92,9 +98,7 @@ public static IDictionary<string, Resource> GetDesiredComposedResources(this Run
9298 {
9399 if ( request . Desired . Resources . TryGetValue ( key , out var resource ) )
94100 {
95- var json = JsonFormatter . Default . Format ( resource . Resource_ ) ;
96-
97- return KubernetesJson . Deserialize < T > ( json ) ;
101+ return resource . GetKubeResource < T > ( ) ;
98102 }
99103
100104 return default ;
@@ -110,9 +114,7 @@ public static IDictionary<string, Resource> GetDesiredComposedResources(this Run
110114 {
111115 if ( request . Observed . Resources . TryGetValue ( key , out var resource ) )
112116 {
113- var json = JsonFormatter . Default . Format ( resource . Resource_ ) ;
114-
115- return KubernetesJson . Deserialize < T > ( json ) ;
117+ return resource . GetKubeResource < T > ( ) ;
116118 }
117119
118120 return default ;
@@ -124,13 +126,19 @@ public static IDictionary<string, Resource> GetDesiredComposedResources(this Run
124126 /// <param name="request">The RunFunctionRequest.</param>
125127 /// <param name="key">The Resource Key</param>
126128 /// <returns>A Required resource</returns>
127- public static T ? GetRequiredResource < T > ( this RunFunctionRequest request , string key )
129+ public static List < T > ? GetRequiredResource < T > ( this RunFunctionRequest request , string key )
128130 {
129131 if ( request . RequiredResources . TryGetValue ( key , out var resource ) )
130132 {
131- var json = JsonFormatter . Default . Format ( resource ) ;
133+ var list = new List < T > ( ) ;
134+
135+ foreach ( var item in resource . Items )
136+ {
137+ var obj = item . GetKubeResource < T > ( ) ;
138+ list . Add ( obj ) ;
139+ }
132140
133- return KubernetesJson . Deserialize < T > ( json ) ;
141+ return list ;
134142 }
135143
136144 return default ;
0 commit comments