...
# | Sub interface | Method | Scenario | Specified HTTP Response Code | Implemented HTTP Response Code | Comments | Body |
---|---|---|---|---|---|---|---|
1 | Data | HTTP: GET - /v1/ch/{cm-handle}/data/ds/ncmp-datastore:passthrough-operational NetworkCmProxyApi.getResourceDataOperationalForCmHandle() | Get resource data from pass-through operational for given cm handle | Specified: 200, 400 , 401, 403 , 404 | Implemented: 200, 500 | ||
2 | Data | GET - /v1/ch/{cm-handle}/data/ds/ncmp-datastore:passthrough-running NetworkCmProxyApi.getResourceDataRunningForCmHandle() | Get resource data from pass-through running for given cm handle | Specified: 200, 400 , 401, 403 , 404 | Implemented: 200, 500 | ||
3 | Data | PUT- /v1/ch/{cm-handle}/data/ds/ncmp-datastore:passthrough-running NetworkCmProxyApi.updateResourceDataRunningForCmHandle() | Update resource data from pass-through running for the given cm handle | Specified: 200, 400 , 401, 403 , 404 | Implemented: 200, 500 | ||
4 | Data | POST - /v1/ch/{cm-handle}/data/ds/ncmp-datastore:passthrough-running NetworkCmProxyApi.createResourceDataRunningForCmHandle() | Create resource data from pass-through running for given cm handle | Specified: 201, 400 , 401, 403 , 404 | Implemented: 201, 500 | ||
5 | Data | PATCH - /v1/ch/{cm-handle}/data/ds/ncmp-datastore:passthrough-running NetworkCmProxyApi.patchResourceDataRunningForCmHandle() | Patch resource data from pass-through running for the given cm handle | Specified: 200, 400 , 401, 403 , 404 | Implemented: 200, 500 | ||
6 | Model | GET - /v1/ch/{cm-handle}/modules NetworkCmProxyApi.getModuleReferencesByCmHandle | Fetch all module references (name and revision) for a given cm handle | Specified: 200, 400 , 401, 403 , 404 | Implemented: 200, 500 | ||
7 | Model | POST - /v1/ch/searches NetworkCmProxyApi.executeCmHandleSearch | Execute cm handle searches using 'hasAllModules' condition to get all cm handles for the given module names | Specified: 200, 400 , 401, 403 | Implemented: 200, 500 | ||
8 | Inventory | POST /v1/ch NetworkCmProxyInventoryApi.updateDmiPluginRegistration() | Register, update or remove cm handles | Specified: 201, 400 , 401, 403 | Implemented: 201, 500 | CommentImplementation:
|
DMI-Plugin
# | Sub interface | Method | Scenario | Specified HTTP Response Code | Implemented HTTP Response Code | Comments |
---|---|---|---|---|---|---|
1 | DMI Plugin Internal | POST - /v1/inventory/cmHandles DmiPluginInternalApi.registerCmHandles() | Register given list of cm handles (internal use only) | 201 400 401 403 | 201 (created)
400 (bad request)
500 (internal server error)
| Implementation
|
2 | DMI Plugin | POST - /v1/ch/{cmHandle}/modules DmiPluginApi.getModuleReferences() | Get all modules for given cm handle | 200 400 401 403 | 200 (ok)
404 (not found)
500 (internal server error)
| |
3 | DMI Plugin | POST - /v1/ch/{cmHandle}/moduleResources DmiPluginApi.retrieveModuleResources() | Retrieve module resources for one or more modules | 200 400 401 403 | 200 (ok)
404 (not found)
500 (internal server error)
| Implementation:
|
4 | DMI Plugin | POST - /v1/ch/{cmHandle}/data/ds/ncmp-datastore:passthrough-operational DmiPluginApi.dataAccessPassthroughOperational() | Get resource data from passthrough-operational for cm handle. Will support read operations only. | 200 400 401 403 | 200 (ok)
400 (bad request)
500 (internal server error)
| Implementation:
|
5 | DMI Plugin | POST - /v1/ch/{cmHandle}/data/ds/ncmp-datastore:passthrough-running DmiPluginApi.dataAccessPassthroughRunning() | Post request to Get, Create or to Update resource data for a cm-handle. Since all requests need to include additional information in a request body HTTP Post is used for all use cases and the actual operation is defined in the request body instead. | 201 400 401 403 | 200 (ok)
201 (created)
204 (no content)
400 (bad request)
500 (internal server error)
| Specification
Implementation
|
...
- Always ensure that client request related errors return 4xx along with a clear explanation provided to the client about the reason for the error. When 4xx errors occur, the system itself is behaving as expected.
- 500 response codes should only correspond to unexpected errors that require support investigation and effort in order to be fixed (ex: network communication issue, dependent component or system down, corrupted data, application bug, ...). For 500 errors no details are really expected in the response for the client, all the information to investigate the problem should be available in the logs.
- Review 401 and 403 responses code from specification that are not implemented yet.
- 500 needs to be added to the specification for all endpoints
...