@@ -79,20 +79,17 @@ public ResponseEntity<Object> getMoi(final HttpServletRequest httpServletRequest
7979 final YangModelCmHandle yangModelCmHandle = inventoryPersistence .getYangModelCmHandle (
8080 alternateIdMatcher .getCmHandleIdByLongestMatchingAlternateId (
8181 requestPathParameters .toAlternateId (), "/" ));
82- try {
83- checkTarget (yangModelCmHandle );
84- } catch (final ProvMnSException exception ) {
85- final HttpStatus httpStatus = "NOT READY" .equals (exception .getMessage ())
86- ? HttpStatus .NOT_ACCEPTABLE : HttpStatus .UNPROCESSABLE_ENTITY ;
87- return errorResponseBuilder .buildErrorResponseGet (httpStatus , exception .getDetails ());
88- }
82+ checkTarget (yangModelCmHandle );
8983 final UrlTemplateParameters urlTemplateParameters = parametersBuilder .createUrlTemplateParametersForRead (
9084 scope , filter , attributes , fields , dataNodeSelector , yangModelCmHandle , requestPathParameters );
9185 return dmiRestClient .synchronousGetOperation (
9286 RequiredDmiService .DATA , urlTemplateParameters );
9387 } catch (final NoAlternateIdMatchFoundException noAlternateIdMatchFoundException ) {
9488 final String reason = buildNotFoundMessage (requestPathParameters .toAlternateId ());
9589 return errorResponseBuilder .buildErrorResponseGet (HttpStatus .NOT_FOUND , reason );
90+ } catch (final ProvMnSException exception ) {
91+ return errorResponseBuilder .buildErrorResponseGet (
92+ getHttpStatusForProvMnSException (exception ), exception .getDetails ());
9693 }
9794 }
9895
@@ -105,32 +102,26 @@ public ResponseEntity<Object> patchMoi(final HttpServletRequest httpServletReque
105102 final YangModelCmHandle yangModelCmHandle = inventoryPersistence .getYangModelCmHandle (
106103 alternateIdMatcher .getCmHandleIdByLongestMatchingAlternateId (
107104 requestPathParameters .toAlternateId (), "/" ));
108- try {
109- checkTarget (yangModelCmHandle );
110- } catch (final ProvMnSException exception ) {
111- final HttpStatus httpStatus = "NOT READY" .equals (exception .getMessage ())
112- ? HttpStatus .NOT_ACCEPTABLE : HttpStatus .UNPROCESSABLE_ENTITY ;
113- return errorResponseBuilder .buildErrorResponsePatch (httpStatus , exception .getDetails ());
114- }
115- try {
116- policyExecutor .checkPermission (yangModelCmHandle ,
117- OperationType .CREATE ,
118- NO_AUTHORIZATION ,
119- requestPathParameters .toAlternateId (),
120- jsonObjectMapper .asJsonString (policyExecutor .buildPatchOperationDetails (
121- requestPathParameters , patchItems ))
122- );
123- } catch (final RuntimeException exception ) {
124- // Policy Executor Denied Execution
125- return errorResponseBuilder .buildErrorResponsePatch (HttpStatus .NOT_ACCEPTABLE , exception .getMessage ());
126- }
105+ checkTarget (yangModelCmHandle );
106+ policyExecutor .checkPermission (yangModelCmHandle ,
107+ OperationType .CREATE ,
108+ NO_AUTHORIZATION ,
109+ requestPathParameters .toAlternateId (),
110+ jsonObjectMapper .asJsonString (
111+ policyExecutor .buildPatchOperationDetails (requestPathParameters , patchItems ))
112+ );
127113 final UrlTemplateParameters urlTemplateParameters =
128114 parametersBuilder .createUrlTemplateParametersForWrite (yangModelCmHandle , requestPathParameters );
129115 return dmiRestClient .synchronousPatchOperation (RequiredDmiService .DATA , patchItems ,
130116 urlTemplateParameters , httpServletRequest .getContentType ());
131117 } catch (final NoAlternateIdMatchFoundException noAlternateIdMatchFoundException ) {
132118 final String reason = buildNotFoundMessage (requestPathParameters .toAlternateId ());
133119 return errorResponseBuilder .buildErrorResponsePatch (HttpStatus .NOT_FOUND , reason );
120+ } catch (final ProvMnSException exception ) {
121+ return errorResponseBuilder .buildErrorResponsePatch (
122+ getHttpStatusForProvMnSException (exception ), exception .getDetails ());
123+ } catch (final RuntimeException exception ) {
124+ return errorResponseBuilder .buildErrorResponsePatch (HttpStatus .NOT_ACCEPTABLE , exception .getMessage ());
134125 }
135126 }
136127
@@ -142,31 +133,25 @@ public ResponseEntity<Object> putMoi(final HttpServletRequest httpServletRequest
142133 final YangModelCmHandle yangModelCmHandle = inventoryPersistence .getYangModelCmHandle (
143134 alternateIdMatcher .getCmHandleIdByLongestMatchingAlternateId (
144135 requestPathParameters .toAlternateId (), "/" ));
145- try {
146- checkTarget (yangModelCmHandle );
147- } catch (final ProvMnSException exception ) {
148- final HttpStatus httpStatus = "NOT READY" .equals (exception .getMessage ())
149- ? HttpStatus .NOT_ACCEPTABLE : HttpStatus .UNPROCESSABLE_ENTITY ;
150- return errorResponseBuilder .buildErrorResponseDefault (httpStatus , exception .getDetails ());
151- }
152- try {
153- policyExecutor .checkPermission (yangModelCmHandle ,
154- OperationType .CREATE ,
155- NO_AUTHORIZATION ,
156- requestPathParameters .toAlternateId (),
157- jsonObjectMapper .asJsonString (policyExecutor .buildCreateOperationDetails (
158- OperationType .CREATE , requestPathParameters , resource ))
159- );
160- } catch (final RuntimeException exception ) {
161- return errorResponseBuilder .buildErrorResponseDefault (HttpStatus .NOT_ACCEPTABLE ,
162- exception .getMessage ());
163- }
136+ checkTarget (yangModelCmHandle );
137+ policyExecutor .checkPermission (yangModelCmHandle ,
138+ OperationType .CREATE ,
139+ NO_AUTHORIZATION ,
140+ requestPathParameters .toAlternateId (),
141+ jsonObjectMapper .asJsonString (
142+ policyExecutor .buildCreateOperationDetails (OperationType .CREATE , requestPathParameters , resource ))
143+ );
164144 final UrlTemplateParameters urlTemplateParameters =
165145 parametersBuilder .createUrlTemplateParametersForWrite (yangModelCmHandle , requestPathParameters );
166146 return dmiRestClient .synchronousPutOperation (RequiredDmiService .DATA , resource , urlTemplateParameters );
167147 } catch (final NoAlternateIdMatchFoundException noAlternateIdMatchFoundException ) {
168148 final String reason = buildNotFoundMessage (requestPathParameters .toAlternateId ());
169149 return errorResponseBuilder .buildErrorResponseDefault (HttpStatus .NOT_FOUND , reason );
150+ } catch (final ProvMnSException exception ) {
151+ return errorResponseBuilder .buildErrorResponseDefault (
152+ getHttpStatusForProvMnSException (exception ), exception .getDetails ());
153+ } catch (final RuntimeException exception ) {
154+ return errorResponseBuilder .buildErrorResponseDefault (HttpStatus .NOT_ACCEPTABLE , exception .getMessage ());
170155 }
171156 }
172157
@@ -178,31 +163,26 @@ public ResponseEntity<Object> deleteMoi(final HttpServletRequest httpServletRequ
178163 final YangModelCmHandle yangModelCmHandle = inventoryPersistence .getYangModelCmHandle (
179164 alternateIdMatcher .getCmHandleIdByLongestMatchingAlternateId (
180165 requestPathParameters .toAlternateId (), "/" ));
181- try {
182- checkTarget (yangModelCmHandle );
183- } catch (final ProvMnSException exception ) {
184- final HttpStatus httpStatus = "NOT READY" .equals (exception .getMessage ())
185- ? HttpStatus .NOT_ACCEPTABLE : HttpStatus .UNPROCESSABLE_ENTITY ;
186- return errorResponseBuilder .buildErrorResponseDefault (httpStatus , exception .getDetails ());
187- }
188- try {
189- policyExecutor .checkPermission (yangModelCmHandle ,
190- OperationType .DELETE ,
191- NO_AUTHORIZATION ,
192- requestPathParameters .toAlternateId (),
193- jsonObjectMapper .asJsonString (policyExecutor .buildDeleteOperationDetails (
194- requestPathParameters .toAlternateId ()))
195- );
196- } catch (final RuntimeException exception ) {
197- return errorResponseBuilder .buildErrorResponseDefault (HttpStatus .NOT_ACCEPTABLE ,
198- exception .getMessage ());
199- }
166+ checkTarget (yangModelCmHandle );
167+ policyExecutor .checkPermission (yangModelCmHandle ,
168+ OperationType .DELETE ,
169+ NO_AUTHORIZATION ,
170+ requestPathParameters .toAlternateId (),
171+ jsonObjectMapper .asJsonString (
172+ policyExecutor .buildDeleteOperationDetails (requestPathParameters .toAlternateId ()))
173+ );
200174 final UrlTemplateParameters urlTemplateParameters =
201175 parametersBuilder .createUrlTemplateParametersForWrite (yangModelCmHandle , requestPathParameters );
202176 return dmiRestClient .synchronousDeleteOperation (RequiredDmiService .DATA , urlTemplateParameters );
203177 } catch (final NoAlternateIdMatchFoundException noAlternateIdMatchFoundException ) {
204178 final String reason = buildNotFoundMessage (requestPathParameters .toAlternateId ());
205179 return errorResponseBuilder .buildErrorResponseDefault (HttpStatus .NOT_FOUND , reason );
180+ } catch (final ProvMnSException exception ) {
181+ return errorResponseBuilder .buildErrorResponseDefault (
182+ getHttpStatusForProvMnSException (exception ), exception .getDetails ());
183+ } catch (final RuntimeException exception ) {
184+ return errorResponseBuilder .buildErrorResponseDefault (HttpStatus .NOT_ACCEPTABLE ,
185+ exception .getMessage ());
206186 }
207187 }
208188
@@ -224,4 +204,9 @@ private String buildNotFoundMessage(final String alternateId) {
224204 return alternateId + " not found" ;
225205 }
226206
207+ private HttpStatus getHttpStatusForProvMnSException (final ProvMnSException exception ) {
208+ return "NOT READY" .equals (exception .getMessage ())
209+ ? HttpStatus .NOT_ACCEPTABLE : HttpStatus .UNPROCESSABLE_ENTITY ;
210+ }
211+
227212}
0 commit comments