22// Licensed under the MIT License.
33
44use dscerror:: DscError ;
5- use resource_manifest:: ResourceManifest ;
65use schemars:: JsonSchema ;
76use serde:: { Deserialize , Serialize } ;
87use serde_json:: Value ;
9- use super :: { command_resource, dscerror, resource_manifest, invoke_result:: { GetResult , SetResult , TestResult , ValidateResult , ExportResult } } ;
8+ use super :: { command_resource, dscerror, resource_manifest:: import_manifest , invoke_result:: { GetResult , SetResult , TestResult , ValidateResult , ExportResult } } ;
109
1110#[ derive( Clone , Debug , Deserialize , Serialize , JsonSchema ) ]
1211#[ serde( deny_unknown_fields) ]
@@ -140,7 +139,7 @@ impl Invoke for DscResource {
140139 let Some ( manifest) = & self . manifest else {
141140 return Err ( DscError :: MissingManifest ( self . type_name . clone ( ) ) ) ;
142141 } ;
143- let resource_manifest = serde_json :: from_value :: < ResourceManifest > ( manifest. clone ( ) ) ?;
142+ let resource_manifest = import_manifest ( manifest. clone ( ) ) ?;
144143 command_resource:: invoke_get ( & resource_manifest, & self . directory , filter)
145144 } ,
146145 }
@@ -155,7 +154,7 @@ impl Invoke for DscResource {
155154 let Some ( manifest) = & self . manifest else {
156155 return Err ( DscError :: MissingManifest ( self . type_name . clone ( ) ) ) ;
157156 } ;
158- let resource_manifest = serde_json :: from_value :: < ResourceManifest > ( manifest. clone ( ) ) ?;
157+ let resource_manifest = import_manifest ( manifest. clone ( ) ) ?;
159158 command_resource:: invoke_set ( & resource_manifest, & self . directory , desired, skip_test)
160159 } ,
161160 }
@@ -172,7 +171,7 @@ impl Invoke for DscResource {
172171 } ;
173172
174173 // if test is not directly implemented, then we need to handle it here
175- let resource_manifest = serde_json :: from_value :: < ResourceManifest > ( manifest. clone ( ) ) ?;
174+ let resource_manifest = import_manifest ( manifest. clone ( ) ) ?;
176175 if resource_manifest. test . is_none ( ) {
177176 let get_result = self . get ( expected) ?;
178177 let desired_state = serde_json:: from_str ( expected) ?;
@@ -201,7 +200,7 @@ impl Invoke for DscResource {
201200 let Some ( manifest) = & self . manifest else {
202201 return Err ( DscError :: MissingManifest ( self . type_name . clone ( ) ) ) ;
203202 } ;
204- let resource_manifest = serde_json :: from_value :: < ResourceManifest > ( manifest. clone ( ) ) ?;
203+ let resource_manifest = import_manifest ( manifest. clone ( ) ) ?;
205204 command_resource:: invoke_validate ( & resource_manifest, & self . directory , config)
206205 } ,
207206 }
@@ -216,7 +215,7 @@ impl Invoke for DscResource {
216215 let Some ( manifest) = & self . manifest else {
217216 return Err ( DscError :: MissingManifest ( self . type_name . clone ( ) ) ) ;
218217 } ;
219- let resource_manifest = serde_json :: from_value :: < ResourceManifest > ( manifest. clone ( ) ) ?;
218+ let resource_manifest = import_manifest ( manifest. clone ( ) ) ?;
220219 command_resource:: get_schema ( & resource_manifest, & self . directory )
221220 } ,
222221 }
@@ -231,7 +230,7 @@ impl Invoke for DscResource {
231230 let Some ( manifest) = & self . manifest else {
232231 return Err ( DscError :: MissingManifest ( self . type_name . clone ( ) ) ) ;
233232 } ;
234- let resource_manifest = serde_json :: from_value :: < ResourceManifest > ( manifest. clone ( ) ) ?;
233+ let resource_manifest = import_manifest ( manifest. clone ( ) ) ?;
235234 command_resource:: invoke_export ( & resource_manifest, & self . directory )
236235 } ,
237236 }
0 commit comments