Seamless transfer of devices between plugin instances#750
Conversation
d8ff6ab to
8dac918
Compare
8dac918 to
a5cfada
Compare
a5cfada to
4e2d161
Compare
Enable the transfer of devices from one instance to another without (temporarily) unapplying the tuning. Signed-off-by: Adriaan Schmidt <adriaan.schmidt@siemens.com>
Signed-off-by: Adriaan Schmidt <adriaan.schmidt@siemens.com>
4e2d161 to
05696f1
Compare
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Organization UI Review profile: CHILL Plan: Enterprise Run ID: 📒 Files selected for processing (13)
📝 WalkthroughSummary by CodeRabbit
WalkthroughThis PR adds device transfer support to the tuned system, allowing devices to move between plugin instances while preserving applied tuning settings and persisted state. The implementation spans from controller-level orchestration through base plugin infrastructure to specific plugin implementations. ChangesDevice Transfer Between Plugin Instances
Estimated code review effort🎯 4 (Complex) | ⏱️ ~45 minutes 🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
The problem (briefly discussed in #580 (comment)):
instance_aquire_devices, or during dynamicinstance_create/instance_destroy), tuning of the device is unapplied (settings reverted back to original) before the new tuning is applied.This proposal makes the following changes:
@commands (_(execute|cleanup)_all_device_commands), there is a new argument providing (optionally) the instance from/to which the device is being moved.@command_(get|set)we can handle all logic in the base plugin class.@command_customwe pass thetransfer_instanceto the commandcontroller, replace the current calls to_remove_devices_nocheck/_add_devices_nocheckwith calls to the new_transfer_device.irqplugin, which uses@command_custom, to support seamless device transfer (separate commit).