From 77629806deab9b77f774266dd0581dd0e8f755a9 Mon Sep 17 00:00:00 2001 From: kmohr-soprasteria <57349523+kmohr-soprasteria@users.noreply.github.com> Date: Thu, 22 May 2025 11:37:02 +0200 Subject: [PATCH] (DeviceList) Modify /v1/provide-list-of-connected-devices Fixes #1235 --- spec/MicroWaveDeviceInventory+config.json | 2 +- .../MicroWaveDeviceInventory+forwardings.yaml | 4 +- spec/MicroWaveDeviceInventory.yaml | 59 ++---------------- ...100_ProvideListOfConnectedDevices.plantuml | 6 +- .../100_ProvideListOfConnectedDevices.png | Bin 18982 -> 15530 bytes 5 files changed, 12 insertions(+), 59 deletions(-) diff --git a/spec/MicroWaveDeviceInventory+config.json b/spec/MicroWaveDeviceInventory+config.json index 3b4ddadb..fceda715 100644 --- a/spec/MicroWaveDeviceInventory+config.json +++ b/spec/MicroWaveDeviceInventory+config.json @@ -17338,7 +17338,7 @@ { "local-id": "2000", "port-direction": "core-model-1-4:PORT_DIRECTION_TYPE_OUTPUT", - "logical-termination-point": "mwdi-1-3-0-op-c-get-es-1-0-0-000" + "logical-termination-point": "mwdi-1-3-0-es-c-es-1-0-0-000" } ] }, diff --git a/spec/MicroWaveDeviceInventory+forwardings.yaml b/spec/MicroWaveDeviceInventory+forwardings.yaml index f7002778..caff110c 100644 --- a/spec/MicroWaveDeviceInventory+forwardings.yaml +++ b/spec/MicroWaveDeviceInventory+forwardings.yaml @@ -1561,8 +1561,8 @@ forwardings: - server-name: /v1/provide-list-of-connected-devices uuid: mwdi-1-3-0-op-s-is-010 consequent-requests: - - client-name: ElasticSearch://?fields=control-construct(uuid) - uuid: mwdi-1-3-0-op-c-get-es-1-0-0-000 + - client-name: ElasticSearch + uuid: mwdi-1-3-0-es-c-es-1-0-0-000 - forwarding-name: RequestForListOfDeviceInterfacesCausesReadingFromCache uuid: mwdi-1-3-0-op-fc-is-021 diff --git a/spec/MicroWaveDeviceInventory.yaml b/spec/MicroWaveDeviceInventory.yaml index 38de95ca..60255ae0 100644 --- a/spec/MicroWaveDeviceInventory.yaml +++ b/spec/MicroWaveDeviceInventory.yaml @@ -1543,8 +1543,9 @@ paths: items: type: string description: > - 'MountName of devices in connected state at the Controller - from {$RequestForListOfConnectedDevicesCausesReadingFromCache.response.body#/core-model-1-4:control-construct/uuid}' + 'MountName of devices in connected state at the Controller, + list of devices in deviceMetadataList with connection-status==connected + from {$RequestForListOfConnectedDevicesCausesReadingFromCache}' example: mount-name-list: - '305251234' @@ -1573,59 +1574,7 @@ paths: $ref: '#/components/responses/responseForErroredServiceRequests' default: $ref: '#/components/responses/responseForErroredServiceRequests' - callbacks: - RequestForListOfConnectedDevicesCausesReadingFromCache: - url: #[/core-model-1-4:control-construct/logical-termination-point=mwdi-1-3-0-tcp-c-es-1-0-0-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-protocol]://[/core-model-1-4:control-construct/logical-termination-point=mwdi-1-3-0-tcp-c-es-1-0-0-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/domain-name or /core-model-1-4:control-construct/logical-termination-point=mwdi-1-3-0-tcp-c-es-1-0-0-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-address/ip-address/ipv-4-address]:[/core-model-1-4:control-construct/logical-termination-point=mwdi-1-3-0-tcp-c-es-1-0-0-000/layer-protocol=0/tcp-client-interface-1-0:tcp-client-interface-pac/tcp-client-interface-configuration/remote-port][/core-model-1-4:control-construct/logical-termination-point=mwdi-1-3-0-op-c-get-es-1-0-0-000/layer-protocol=0/operation-client-interface-1-0:operation-client-interface-pac/operation-client-interface-configuration/operation-name] - get: - parameters: - - name: fields - in: query - required: true - schema: - type: string - enum: - - 'control-construct(uuid)' - responses: - '200': - description: 'List of connected devices provided from cache' - content: - application/json: - schema: - type: object - required: - - / - properties: - /: - type: object - required: - - core-model-1-4:control-construct - properties: - core-model-1-4:control-construct: - type: array - items: - type: object - required: - - uuid - properties: - uuid: - type: string - example: - /: - core-model-1-4:control-construct: - - uuid: '305251234' - - uuid: '105258888' - '400': - $ref: '#/components/responses/responseForErroredServiceRequests' - '401': - $ref: '#/components/responses/responseForErroredServiceRequests' - '403': - $ref: '#/components/responses/responseForErroredServiceRequests' - '404': - $ref: '#/components/responses/responseForErroredServiceRequests' - '500': - $ref: '#/components/responses/responseForErroredServiceRequests' - default: - $ref: '#/components/responses/responseForErroredServiceRequests' + /v1/provide-list-of-device-interfaces: parameters: - $ref: '#/components/parameters/user' diff --git a/spec/diagrams/100_ProvideListOfConnectedDevices.plantuml b/spec/diagrams/100_ProvideListOfConnectedDevices.plantuml index e9df5a0e..a21639f3 100644 --- a/spec/diagrams/100_ProvideListOfConnectedDevices.plantuml +++ b/spec/diagrams/100_ProvideListOfConnectedDevices.plantuml @@ -5,12 +5,16 @@ title RequestForListOfConnectedDevicesCausesReadingFromCache participant "external" as requestor participant "MWDI://v1/provide-list-of-connected-devices" as provideListOfConnectedDevices -participant "ElasticSearch://?fields=control-construct(uuid)" as ConnectedDeviceList +participant "ElasticSearch \n(deviceMetadataList)" as ConnectedDeviceList requestor -> provideListOfConnectedDevices: (apiKeyAuth) activate provideListOfConnectedDevices provideListOfConnectedDevices -> ConnectedDeviceList +note over ConnectedDeviceList + filter for devices with + connection-status == connected +end note ConnectedDeviceList --> provideListOfConnectedDevices: {mount-name-list} provideListOfConnectedDevices --> requestor: {mount-name-list} diff --git a/spec/diagrams/100_ProvideListOfConnectedDevices.png b/spec/diagrams/100_ProvideListOfConnectedDevices.png index dacc9a4186ee01d6e5f693686e49c41878d810a2..c006fc8baf0b4ac524258c83ce1e21f6cede829c 100644 GIT binary patch literal 15530 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 z

4Y3MCOLl!(dH_R|wH)Oa>@CwthJC ze&w~3PkN@&zVI6JDJC-~^z^Zg<<04maQyLrqjd^+M9l0MMbv2B+VJ>!I%WyI=p^QC z=1JMx6=jG$j&2FG%078zfzeS6ef6TEqMH+C&*;m+kt@J?NiiYZXio>~_DOy^{@4PC z5K24CpO0}^P+djf>I!_N(%Hrd+Zb*5r1)xWAU%%Rq(=q=92Swe(6yYA@sK4<8M%k| zB3=gh!L@q??K5h=J@doG!B#DqP#lu!xsI39i-49CS+pdi1czl9?2>Gq+l?RfQ8!?= zl-uP5FDPnis+|RIyC^Ac7g)+GrwU7%9DHGBRenaI5Cu=_l$9PAosmO?l{!GGgz-|5 z^DRem9b#GQ0*LrrOU*VqQn}7*))^k6NBHk;vhW{~*c_l8W{Z_?9RV@SLVz>ln?-pF zilx~FLia!WWEXI=PZnOc@6-3QTI4_7q80u&@+x&w_d9W>FZ$|WAoA|dLSFN zj~^zQwvd-65)OmEkCyY6-S^Ldr3rU*tC3yTzQ576YT=~AM58?%L-LoLtbLEuQ3+18 z^_8IZ+q&1(<}a3rfy0bKwL6#&^&vB#6{J5tp9aD@I)pq`Z!bMvFXEavkIWwMFz1?$ zCOSDiQ3qqUFd7p4J`p+XFCf(TwD14sp~?TwQTQ8Ufij*QXb}I)*~;)64dVQF5e_%X z6xGS)?pg4E8z`+6NaFr|Ad^Qgi^g=kSO#S5OdYi;i|?PUyzk*T?JtSl3^(zYq%q*; z2x;@>*+E+X9)Te%kUjk7eo+1kj}w4<=QoE0LHM7^q@N@u44