Details
-
Feature
-
Not Assigned
-
None
-
Obs Mgt & Controls
-
-
5
-
5
-
3.6
-
Team_BUTTONS
-
Sprint 5
-
-
-
5.1
-
-
Team_BUTTONS goal4 webjive
Description
WebJive needs to be able to monitor changes in Tango Devices. It subscribes to TangoGQL, which then samples the states of devices every 3 seconds.
Thus, in order for WebJive to be able to monitor the tango devices, Tango GQL needs to subscribe to the devices.
Tango GQL currently samples the various tango elements attached to it every 3 seconds (see top half of attached diagram). After it samples the state of all of the tango elements, it then publishes that information to WebJive, which is subscribing to TangoGQL through a (single) socket. We need to modify Tango GQL so that it subscribes to the tango elements, and can then update WebJive as soon as something changes (bottom half of attached diagram).
As an aside of this work, it is likely that it wpould be possibe to fix (or at least diagnose) the crash that happens when reducing a lot the polling interval with which tangogql talks to Tango. After all it's a bug of webjive and even if it can be bypassed by replacing the polling mechanism with a pub/sub protocol, it represents a vulnerability of webjive. If not fixed it will constitute technical debt.
Acceptance criteria
(Notice that these criteria - except for the last three that I imagine everyone had implicitly in his/her mind - do not imply any additional functionality or additional implementation. I wrote them here because in this PI4, for the first time, the Program Management wants to focus the attention on reduction of technical debt and on the tests for features. Tests that were implicit in the general DoD. Therefore I'm not asking to change the scope of this feature. I'm asking to make explicit the kind of automated tests that accompany the implementation of this feature.)
- create a test suite of automated test cases that cover the more complex and riskier functionalities of TangoGQL; the tests would exercise the key service endpoints that TangoGQL provides
- these tests are system-level tests where the SUT is TangoGQL and where appropriate stubs and mocks are created to isolate the SUT from Tango.