Commit Graph

166 Commits

Author SHA1 Message Date
Alexey Rybalchenko
96348b8462 DDS plugin: improve error message on unexpected update 2020-03-25 09:53:22 +01:00
Alexey Rybalchenko
cd83efadea DDS plugin: refactor to load DDS task id only once 2020-03-25 09:53:22 +01:00
Alexey Rybalchenko
539b088ade DDS Plugin: Simplify subchannel bookkeeping 2020-03-11 14:51:19 +01:00
Alexey Rybalchenko
f00519b99b PMIx plugin: adapt to updated commands format 2020-02-24 14:41:47 +01:00
Alexey Rybalchenko
ced67d8952 DDS Command UI: remove direct DDS dependency 2020-02-21 18:37:33 +01:00
Alexey Rybalchenko
8123a6ecab QC example: add setting of the property, test if its successful 2020-02-21 18:37:33 +01:00
Alexey Rybalchenko
beff0af51b DDS plugin: fix exiting timeout 2020-02-21 18:37:33 +01:00
Alexey Rybalchenko
21835cc104 Revert the session renaming 2020-02-21 18:37:33 +01:00
Alexey Rybalchenko
c1719eb285 SDK Commands: remove heartbeat commands 2020-02-21 18:37:33 +01:00
Alexey Rybalchenko
e221242f9a Use SDK in dds-command-ui 2020-02-21 18:37:33 +01:00
Alexey Rybalchenko
14d6d717a3 Add qc example 2020-02-21 18:37:33 +01:00
Alexey Rybalchenko
0e72a9bf54 SDK::DDSSession: remove channel id to task id association 2020-02-21 18:37:33 +01:00
Alexey Rybalchenko
50dacbcdde SDK: update DDSTopology::GetTasks() 2020-01-27 20:50:11 +01:00
Alexey Rybalchenko
264a178424 SDK: Add Topology::AsyncGetProperties
Co-Author: Dennis Klein <d.klein@gsi.de>
2020-01-27 20:50:11 +01:00
Dennis Klein
1c8ad03f3c SDK: Add Topology::AsyncSetProperties
Co-Author: Alexey Rybalchenko <alexryba@gmail.com>
2020-01-27 20:50:11 +01:00
Alexey Rybalchenko
c290c16896 PMIx: Add commands to plugin and command ui 2020-01-06 20:20:18 +01:00
Dennis Klein
50be386191 Support and require DDS 3.0 2019-12-13 14:52:36 +01:00
Alexey Rybalchenko
5607d47664 DDSCommandUI: add support for more commands 2019-12-03 15:44:25 +01:00
Alexey Rybalchenko
b0b271d1f4 DDS plugin: remove static mode 2019-12-03 15:44:25 +01:00
Alexey Rybalchenko
073f5e5c0e Fix regression in the DDS plugin shutdown handling 2019-11-20 14:07:44 +01:00
Alexey Rybalchenko
c34d1f0946 Cleanup includes 2019-10-29 20:06:31 +01:00
Dennis Klein
caeee626a3 PMIx plugin: Add barriers and fix lookup of multiple keys 2019-10-07 14:07:27 +02:00
Dennis Klein
e1134321dd PMIx: Support integer values 2019-10-07 14:07:27 +02:00
Alexey Rybalchenko
1c1509af3e Use new commands format in dds command UI 2019-09-30 12:18:49 +02:00
Alexey Rybalchenko
a53e95b5f6 Add flatbuffers-based command format to SDK/plugin 2019-09-30 12:18:49 +02:00
Alexey Rybalchenko
9544d9665b DDS plugin: Prefix channel properties 2019-09-18 18:06:46 +02:00
Alexey Rybalchenko
dc72262af1 DDS Plugin: reset channel containers before filling 2019-09-16 16:02:47 +02:00
Dennis Klein
924320a0ac
DDS plugin: Move Boost dependency to intended target 2019-09-13 15:00:14 +02:00
Dennis Klein
e3890a4033
DDS plugin: Do not block the DDS KeyValue callback 2019-09-13 14:53:42 +02:00
Alexey Rybalchenko
92112c812f Handle InitializingDevice in the ShutdownSequence 2019-09-05 21:59:37 +02:00
Dennis Klein
8a2c7fb601 DDS plugin: Wait for IDLE->EXITING state-change to be acknowledged
Sometimes devices shut down too fast when entering the EXITING state so
that the publication of that state-change will never be sent. The plugin
now waits for an acknowledgement by the external controller with a
configurable timeout.
2019-09-04 21:17:35 +02:00
Dennis Klein
f73a6d71ed CMake: Do not use git version in install tree 2019-09-04 21:17:35 +02:00
Dennis Klein
1bb77bf47b DDS plugin: Automatically set session and device id if not provided
Resolves #187
2019-07-29 09:22:02 +02:00
Dennis Klein
9cbccface7 DDS plugin: Synchronize FillChannelContainers and DDSKeyValue updates
This was a regression after introducing external control mode in f7cdf5e.
2019-07-29 09:22:02 +02:00
Dennis Klein
008be36125 PluginServices: Do not throw if device control cannot be released 2019-07-29 09:22:02 +02:00
Dennis Klein
98aeb16dc7 SDK: Adapt to new DDS plugin external mode 2019-07-26 14:55:32 +02:00
Dennis Klein
6c07920fc6 DDS plugin: Adapt command ui to changes in DDS plugin
* Add COMPLETE INIT support
* Add -n option, shall be replaced with inspecting DDS topo spec in the
future
* Update DDS example to work again
2019-07-26 14:55:32 +02:00
Dennis Klein
b54df715ea DDS plugin: Do not auto-transition after Initializing 2019-07-26 14:55:32 +02:00
Dennis Klein
f7cdf5ee23 DDS plugin: Implement --control external 2019-07-26 14:55:32 +02:00
Alexey Rybalchenko
ac8cd19915 SDK: wait for devices to be in running 2019-07-24 16:42:36 +02:00
Alexey Rybalchenko
8789664cfd First working version of SDK ChangeState 2019-07-23 16:08:15 +02:00
Alexey Rybalchenko
6e353d78b1 Remove -S from dds example topology file 2019-07-19 14:45:27 +02:00
Alexey Rybalchenko
f515eb1100 Extract state queue into own class. Use in device, plugins 2019-07-19 14:45:27 +02:00
Alexey Rybalchenko
8bb6a9518a Use TransitionTo in Plugins 2019-07-19 14:45:27 +02:00
Alexey Rybalchenko
63c02657c1 Fix SHUTDOWN & STARTUP listed as a transition in plugin 2019-07-19 14:45:27 +02:00
Alexey Rybalchenko
07f7142ae2 Rebased, cleaned up 2019-07-19 14:45:27 +02:00
Dennis Klein
7c185ac4a5 Search plugins in system directories and LD_LIBRARY_PATH
Fixes #133
2019-07-19 14:45:27 +02:00
Dennis Klein
14980d7486 Implement old_state->new_state notifications 2019-07-19 14:45:27 +02:00
Dennis Klein
d966a0a991 Handle some edge cases 2019-07-19 14:45:27 +02:00
Dennis Klein
66c01f2cda Introduce wait mode
Allows for fairmq-dds-command-ui to block until a certain device state
(-w) or a timeout (-t) is reached. If multiple devices are addressed (-p),
the command blocks until all of them reached the given state.
2019-07-19 14:45:27 +02:00
Alexey Rybalchenko
4281d7b27e Subscribe DeviceRunner for config properties 2019-07-10 19:35:18 +02:00
Alexey Rybalchenko
cba6d19781 Add config plugin class. 2019-07-10 19:35:18 +02:00
Alexey Rybalchenko
bf8ec968e7 Remove FairMQChannel from parser, implement bulk operations 2019-07-10 19:35:18 +02:00
Dennis Klein
3358a2ba12 Require DDS 2.4
* Remove obsolete FindDDS.cmake
* Adapt to new DDS version
2019-06-26 18:39:12 +02:00
Dennis Klein
99c8d33191 DDS plugin: Remove unused dependency 2019-06-13 17:47:47 +02:00
Alexey Rybalchenko
9b4c5deb0b Handle invalid transition to init in the control plugin 2019-05-07 16:28:55 +02:00
Alexey Rybalchenko
35399ee039
Update state machine picture 2019-04-29 20:32:37 +02:00
Alexey Rybalchenko
99ffb732f4 Use process tools for WaitFor test 2019-03-19 18:09:01 +01:00
Alexey Rybalchenko
dd02c01c36 Extend tests of error cases
- test raising SIGINT in every state
 - test going to Error state from every state
 - add new states (bind/connect) to exception tests
2019-03-12 12:10:47 +01:00
Alexey Rybalchenko
b7125b746e Update deprecated methods 2019-02-25 12:19:50 +01:00
Alexey Rybalchenko
fc94342db8 Update state machine
- Split INITIALIZING state into Init+Bind+Connect
 - Remove PAUSE state
 - Convert state/transitions to enum classes (CamelCase)
 - Transition to a state only once previous handler is complete
 - Add CompleteInit transition to notify Initializing state
   that config updates are complete
 - Deprecate WaitForEndOfState(transition) in favor of
   WaitForState(state)/WaitForNextState()
 - Update tests/plugins to new APIs
 - Deprecate CheckCurrentState() in favor of NewStatePending()
2019-02-25 12:19:50 +01:00
Dennis Klein
62781389d4 Add pmix::lookup binding and cleanup 2019-02-11 11:12:30 +01:00
Dennis Klein
dfc6b5c4a3 Add pmix::fence() C++ binding 2019-02-11 11:12:30 +01:00
Dennis Klein
2047dbef59 Fix pmix::info copy ctor 2019-02-11 11:12:30 +01:00
Dennis Klein
61a3da8697 Implement pmix::value copy ctor 2019-02-11 11:12:30 +01:00
Dennis Klein
0a98fa4bac Fix codacy issues 2019-02-11 11:12:30 +01:00
Dennis Klein
2358d7b03a Implement some PMIx C++ bindings
pmix::init()
pmix::finalize()
pmix::publish()
pmix::initialized()
pmix::get_version()

and supporting data structures.
2019-02-11 11:12:30 +01:00
Dennis Klein
1191c3cda5 Add PMIx plugin
Proof of concept for now.
2019-02-11 11:12:30 +01:00
Alexey Rybalchenko
ffbe90b638 Update to new DDS 2.2 API
- require DDS 2.2
 - fix regressions in automatic port binding
 - fix regression in channel API
 - update DDS example readme
2018-11-28 16:55:34 +01:00
Dennis Klein
9f325451e5 Make sure we reset terminal config also on exception 2018-10-10 19:35:18 +02:00
Alexey Rybalchenko
cb199e7283 Fix throw after quit signal case 2018-10-10 19:35:18 +02:00
Alexey Rybalchenko
bde12f58b2 Handle errors in static and interactive controllers 2018-10-10 19:35:18 +02:00
Dennis Klein
1aab354a5d Resolve hanging process in case of uncaught exception 2018-10-10 19:35:18 +02:00
Alexey Rybalchenko
e1f555bc05 Fix issues found by Codacy 2018-10-08 17:20:02 +02:00
Dennis Klein
94297f9833 Tie builtin plugin version to the project version 2018-09-20 18:09:07 +02:00
Alexey Rybalchenko
f6c1f5dc0f Fix theoretical race in signal handler 2018-09-20 14:05:44 +02:00
Alexey Rybalchenko
2c6b2e7f04 Fix race condition in the control plugin 2018-09-12 16:03:18 +02:00
Alexey Rybalchenko
4aae1ad8d4 Allow DDS command UI to target parts of the topology 2018-09-05 15:15:18 +02:00
Alexey Rybalchenko
ee8afd7d2b Fix race in plugin manager/services 2018-08-08 16:13:41 +02:00
Alexey Rybalchenko
21419adb40 Change unregistered options warning to debug 2018-06-16 17:40:05 +02:00
Dennis Klein
72f5cdef58 Fix various warnings
-Wunused-parameter
-Wreorder
-Wsign-compare
-Wunused-private-field
2018-05-24 13:03:06 +02:00
Alexey Rybalchenko
e4c349888d Improve compilation speed 2018-05-17 16:32:49 +02:00
Alexey Rybalchenko
436f79bee5 Control plugin: add ability to switch log levels interactively 2018-05-17 10:30:18 +02:00
Dennis Klein
b9651437c3
Improve summary and implement find_package2 2018-04-16 20:32:44 +02:00
Dennis Klein
5e39011a5b
Fix build 2018-04-15 18:04:52 +02:00
Alexey Rybalchenko
5af82f80c1 DDS command UI: update to 2.0 (include session arg) 2018-03-22 14:11:14 +01:00
Alexey Rybalchenko
010520dac7 Logger: handle nullptr. 2018-03-22 14:11:00 +01:00
Alexey Rybalchenko
95112dac02 add CountProperty() to plugin APIs, throw is GetProperty doesn't find key 2018-03-22 14:10:48 +01:00
Alexey Rybalchenko
243352d717 dds plugin: handling for same channel names from multiplied collections 2018-03-22 14:10:48 +01:00
Alexey Rybalchenko
83f81a0d9f fix regression in DDS plugin 2018-03-02 05:45:07 +01:00
Alexey Rybalchenko
6e40011a18 DDS plugin: handle n to m on single channel name case 2018-02-28 11:22:19 +01:00
Alexey Rybalchenko
abcc5083f2 FairMQ DDS plugin: fix incomplete shutdown when dds server is terminated 2018-02-15 10:31:47 +01:00
Alexey Rybalchenko
4e2a195289 Fix warnings 2018-02-01 09:59:11 +01:00
Alexey Rybalchenko
7e6bd91467 Fix reorder warnings 2018-01-24 14:36:52 +01:00
Alexey Rybalchenko
a3393e600e convert log severities use to lowercase and remove use of MQLOG 2018-01-16 22:53:26 +01:00
Alexey Rybalchenko
4e942e489b Single Logger implementation for FairLogger & FairMQLogger 2018-01-16 22:53:26 +01:00
Dennis Klein
80332583ee FairMQ: Add state subscription to DDS plugin 2017-11-17 16:24:29 +01:00
Dennis Klein
56c0b2fd2b FairMQ: Add heartbeats to DDS plugin 2017-11-17 16:24:29 +01:00
Dennis Klein
7429f7a326 FairMQ: Add dump-config functionality to DDS plugin 2017-11-01 15:32:35 +01:00
Dennis Klein
511141c851 FairMQ: Install DDS plugin 2017-11-01 15:32:17 +01:00