@@ -5,7 +5,7 @@ use crate::args::OutputFormat;
5
5
use crate :: util:: { EXIT_DSC_ERROR , EXIT_INVALID_ARGS , EXIT_JSON_ERROR , add_type_name_to_json, write_output} ;
6
6
use dsc_lib:: configure:: config_doc:: { Configuration , ExecutionKind } ;
7
7
use dsc_lib:: configure:: add_resource_export_results_to_configuration;
8
- use dsc_lib:: dscresources:: invoke_result:: { GetResult , ResourceGetResponse } ;
8
+ use dsc_lib:: dscresources:: { resource_manifest :: Kind , invoke_result:: { GetResult , ResourceGetResponse } } ;
9
9
use dsc_lib:: dscerror:: DscError ;
10
10
use tracing:: { error, debug} ;
11
11
@@ -22,6 +22,11 @@ pub fn get(dsc: &DscManager, resource_type: &str, mut input: String, format: &Op
22
22
} ;
23
23
24
24
debug ! ( "resource.type_name - {} implemented_as - {:?}" , resource. type_name, resource. implemented_as) ;
25
+ if resource. kind == Kind :: Adapter {
26
+ error ! ( "Can not perform this operation on the adapter {} itself" , resource. type_name) ;
27
+ exit ( EXIT_DSC_ERROR ) ;
28
+ }
29
+
25
30
if let Some ( requires) = & resource. require_adapter {
26
31
input = add_type_name_to_json ( input, resource. type_name . clone ( ) ) ;
27
32
if let Some ( pr) = get_resource ( dsc, requires) {
@@ -59,6 +64,11 @@ pub fn get_all(dsc: &DscManager, resource_type: &str, format: &Option<OutputForm
59
64
} ;
60
65
61
66
debug ! ( "resource.type_name - {} implemented_as - {:?}" , resource. type_name, resource. implemented_as) ;
67
+ if resource. kind == Kind :: Adapter {
68
+ error ! ( "Can not perform this operation on the adapter {} itself" , resource. type_name) ;
69
+ exit ( EXIT_DSC_ERROR ) ;
70
+ }
71
+
62
72
if let Some ( requires) = & resource. require_adapter {
63
73
input = add_type_name_to_json ( input, resource. type_name . clone ( ) ) ;
64
74
if let Some ( pr) = get_resource ( dsc, requires) {
@@ -106,6 +116,10 @@ pub fn set(dsc: &DscManager, resource_type: &str, mut input: String, format: &Op
106
116
} ;
107
117
108
118
debug ! ( "resource.type_name - {} implemented_as - {:?}" , resource. type_name, resource. implemented_as) ;
119
+ if resource. kind == Kind :: Adapter {
120
+ error ! ( "Can not perform this operation on the adapter {} itself" , resource. type_name) ;
121
+ exit ( EXIT_DSC_ERROR ) ;
122
+ }
109
123
110
124
if let Some ( requires) = & resource. require_adapter {
111
125
input = add_type_name_to_json ( input, resource. type_name . clone ( ) ) ;
@@ -148,6 +162,10 @@ pub fn test(dsc: &DscManager, resource_type: &str, mut input: String, format: &O
148
162
} ;
149
163
150
164
debug ! ( "resource.type_name - {} implemented_as - {:?}" , resource. type_name, resource. implemented_as) ;
165
+ if resource. kind == Kind :: Adapter {
166
+ error ! ( "Can not perform this operation on the adapter {} itself" , resource. type_name) ;
167
+ exit ( EXIT_DSC_ERROR ) ;
168
+ }
151
169
152
170
if let Some ( requires) = & resource. require_adapter {
153
171
input = add_type_name_to_json ( input, resource. type_name . clone ( ) ) ;
@@ -185,6 +203,10 @@ pub fn delete(dsc: &DscManager, resource_type: &str, mut input: String) {
185
203
} ;
186
204
187
205
debug ! ( "resource.type_name - {} implemented_as - {:?}" , resource. type_name, resource. implemented_as) ;
206
+ if resource. kind == Kind :: Adapter {
207
+ error ! ( "Can not perform this operation on the adapter {} itself" , resource. type_name) ;
208
+ exit ( EXIT_DSC_ERROR ) ;
209
+ }
188
210
189
211
if let Some ( requires) = & resource. require_adapter {
190
212
input = add_type_name_to_json ( input, resource. type_name . clone ( ) ) ;
@@ -210,6 +232,11 @@ pub fn schema(dsc: &DscManager, resource_type: &str, format: &Option<OutputForma
210
232
error ! ( "{}" , DscError :: ResourceNotFound ( resource_type. to_string( ) ) . to_string( ) ) ;
211
233
return
212
234
} ;
235
+ if resource. kind == Kind :: Adapter {
236
+ error ! ( "Can not perform this operation on the adapter {} itself" , resource. type_name) ;
237
+ exit ( EXIT_DSC_ERROR ) ;
238
+ }
239
+
213
240
match resource. schema ( ) {
214
241
Ok ( json) => {
215
242
// verify is json
@@ -236,6 +263,11 @@ pub fn export(dsc: &mut DscManager, resource_type: &str, format: &Option<OutputF
236
263
return
237
264
} ;
238
265
266
+ if dsc_resource. kind == Kind :: Adapter {
267
+ error ! ( "Can not perform this operation on the adapter {} itself" , dsc_resource. type_name) ;
268
+ exit ( EXIT_DSC_ERROR ) ;
269
+ }
270
+
239
271
let mut adapter_resource: Option < & DscResource > = None ;
240
272
if let Some ( requires) = & dsc_resource. require_adapter {
241
273
input = add_type_name_to_json ( input, dsc_resource. type_name . clone ( ) ) ;
0 commit comments