- Oct 07, 2024
-
-
Pierre-Alain Loizeau authored
- Bump mecs-implementation dep. to 0.1.5 which is the first public version - Remove poetry setting file with read access token - Remove ecs-core settings in project file as they are inherited from mecs-implementation
-
- Sep 10, 2024
-
-
Pierre-Alain Loizeau authored
- Bump mecs-implementation dep. to 0.1.4 - this gets also ecs-core dep. to 0.3.3 through its own dependencies - Add license headers to files in this package
-
- Sep 09, 2024
-
-
Pierre-Alain Loizeau authored
- Bump mecs-implementation dep. to 0.1.3 to get - ecs-core dep. to 0.3.2 for terminated flag broadcast - use new flag in KnownScas monitor tools
-
- Aug 29, 2024
-
-
Pierre-Alain Loizeau authored
-
Pierre-Alain Loizeau authored
-
- Jul 29, 2024
-
-
Pierre-Alain Loizeau authored
- Add dependency on new mecs-implmentation package + related gitlab project token and source - Rotate project access token for ECS core (not directly needed anymore but maybe indirect dep through mECS implementation package) - Remove all "pure ECS agents" files - Remove corresponding execution aliases from poetry project file - Update the imports - Fix gitlab CI (leftovers of copy-paste from core + mix-up of Python versions)
-
- Jul 18, 2024
-
-
Pierre-Alain Loizeau authored
- Bump ECS core to version 0.3.0 (Python 3.11 compatibility) - Bump pytest, coverage and pytest-cov to most recent versions - Upgrade package management to Poetry 1.8.2 + related fixes - Change dependency from Pyside2 v5.15 to Pyside6 v6.4 - Change all Pyside2 imports to Pyside6 ones - Update Readme about QT6/Pyside6 dependencies and commands to regenerate the GUI base classes from the UI files - Regenerate the GUI base classes from the UI files - Rename UI files folder to QT6 - Remove outdated GUI emulator - Remove all type ignore linked to missing stubs in Pyside2 - Import only necessary classes/namespaces from QtCore - Change module/class path for enums from main Qt class where necessary (ItemFlag, MatchFlag, TimeSpec) - Change module/class path for enums from QMessageBox class where necessary (ButtonRole, Icon) - Fix copy-paste typos in EcaGui::reconnectPartition (self.csca_name => pca_name) - Use sig_connect/sig_disconnect for all instances of AgentStateUpdateWatcher (fixes a spurious crash/race-condition at ECA GUI close) - [CI] Switch official version to Python 3.11 (Deb 12) + cleanup other jobs - Remove Python 3.7 test - Add Python 3.11 test and move coverage to it - Change dedicated Debian 10 runner to dedicated Debian 12 one - Replace Python 3.9 optional test with 3.12 one
-
- Jun 05, 2024
-
-
Pierre-Alain Loizeau authored
-
Pierre-Alain Loizeau authored
-
Pierre-Alain Loizeau authored
-
Pierre-Alain Loizeau authored
-
- May 31, 2024
-
-
Pierre-Alain Loizeau authored
-
- Apr 30, 2024
-
-
Pierre-Alain Loizeau authored
- In CscaMain, CentralScaPartAgent, GuiAgent, Eca, Pca and Sca, add new commands to be backported - get_agent_type_returning the class name - In Eca, add - new command to list_known_pcas - internal method fill_agent_types_list to populate the list used in the new command - In Pca, - add gui_id member + setter command to ensure only one GUI interacts with the agent - In Sca, backport changes to set_gui_agent_id from Csca/Pca decoupling - In EcaGui, - fix some typo in variable naming - keep track of connected PCAs by name and use it instead of the list of PCA processes - add support for PCA reconnection/disconnection - attempt auto-reconnection of PCAs only if reconnecting an ECA which is in Active state
-
Pierre-Alain Loizeau authored
- In Eca, add gui_id member + setter command to ensure only one GUI interacts with the agent - In Eca and Pca, add new command to be backported - rem_tracker_agent removing a ping tracker agent - In EcaGui - Add Force ECA Reconnect checkbox - Implemente ECA reconnection/disconnection - add call to rem_tracker_agent when disconnecting the ECA to avoid some ping commands timeout - add protection flag to avoid some watchers crash due to stashed calls during closing popup
-
Pierre-Alain Loizeau authored
- Add template Widget for the CSCA tabs - Owns its associated CSCA process object - Provide same functionalities as the CSCA blocks in EcaGui (Start/Term process, UI interactions) - On QT side of CscaCtrlTabTemplateWidget, add Reconnect button, ForceReconnect checkbox and Disconnect button - Provide Reconnect/disconnect functionalities (+tracking of connection state) - In GuiTools.AgentStateUpdateWatcher, add sig_connect and sig_disconnect wrapper methods to hold all info in instance - In CscaMain, add new command to be backported: rem_tracker_agent removing a ping tracker agent - In CscaMain, add gui_id member + setter command to ensure only one GUI interacts with the agent - In EcaGui - in closeEvent method, use these wrappers for the CSCA watchers - store CSCAs processes in a dict instead of members specific to each CSCA - add a generic create_csca_tab method using this widget - add a reconnectCsca method - Use only CscaCtrlTabWidget for all CSCAs (remove static tabs & corresponding methods blocks) - Add popup when closing the GUI to choose between Cancel/Close & Disconnect agents/Close & Terminate agents
-
- Mar 12, 2024
-
-
Pierre-Alain Loizeau authored
- Sca: Add command set_gui_agent_id - Sca: set master to ECA constant on startup - SCA GUI (QT): add disconnect button & ForceReconnect checkbox + fix layout size - ScaGui: keep track of whether an agent is currently attached (started or connected) with a flag - ScaGui: handle reconnected agents in termSca method - ScaGui: add disconnectSca method - ScaGui: fill the reconnectSca method (was only halfway implemented and not functional before) - ScaGui: add popup when closing the GUI in case an agent is still attached to ask user what should be done with it (disconnect or terminate) - ScaGui: add 10 ms delta to wait in sendCommand to avoid race condition with TO detection - EcaGui: add 10 ms delta to wait in sendCommand to avoid race condition with TO detection
-
- Mar 01, 2024
-
-
Pierre-Alain Loizeau authored
-
Pierre-Alain Loizeau authored
- Sca:make the Sca agent class callable as a poetry script - make it publish its state on startup - [TEMP]: overload get_combined_state to avoid crash if no subagent present when getting first status update - [TEMP]: add add_tracker_agent command to be backported to CmdCoreAgent - Add command to set On/Off the mCBM "user popup transitions" mode - For user popups, remove usage of QT Signal and replace it by request commands to GUI agent + setter commands to receive result - Use the new names conventions constants for the ECA agent ID - GuiAgent: - Add commands to trigger transition popups in GUI and send result back to attached SCA agent - Fix value of the top ID to match mCBM convention through constant usage - GuiTools: add new AgentPropertiesWatcher class to monitor all properties reported by a decoupled agent (ping + contact + master + state + conf tag) - In SCA GUI, decouple the SCA agent from the GUI - Replace internal uses of the SCA agent by GUI agent commands - Replace direct access to SCA agent properties by accessor commands emission or usage of new AgentPropertiesWatcher class - Add interface to reconnect to running bkgd SCA agent (using user selected name) - Connect transition popup methods to GuiAgent signals if running in mCBM popup mode - Send result to Sca agent through setter commands once popups return - Send request to master to add GUI as tracker when no ping received yet if not ECA - Clean disconnect of Watchers signals when closing - Add sendCommand method to hop through the GuiAgent and to minimize copy/paste from EcaPcaGui - SCA GUI: - Add GuiAgent start button - Add Agent Start/Reconnect buttons - Add line with current status of connection to Sca agent - Improve line with current status of connection to ECA and Master
-
Pierre-Alain Loizeau authored
- Introduce new GuiAgent based only on an EcsCoreAgent - Add new convention constant for GUI agents names - make the Eca agent class callable as a poetry script - make it publish its state on startup - improve timeout logging and fix memory management of reply in test_send_any (to be backported/renamed) - In GuiTools SubAgentsListWatcher, remove local "copied over sendCommand" part of sendRequest method - Add handle to sendCommand method of the overlaying GUI/Core agent as mandatory init parameter - Introduce SendFctHandle protocol class to properly handle mypy check of parameters in calls to it - GuiTools: fix flakeheaven errors/warnings - In ECA GUI, decouple the ECA agent from the GUI - Replace internal uses of the ECA agent by GUI agent - Replace direct access to ECA agent properties by accessor commands emission - Improve the sendCommand method to hop through the ECA for all other targets - Explicitely add/remove all CSCAs and PCAs as followed agent by GUI agent (not automatic as not top or master) - Add interface to reconnect to running bkgd ECA agent (easy as unique name = singleton) - Provide handle to sendCommand method to PCA tab widget to avoid copy/clone of it (passed to further lower layers) - disconnect the signal of each Watcher before terminating them (seem to fix 99% of the segfault occurences) - protect accesses to id_part_cscas with a threading lock - in PCA termination without cleanup by PCA, have CSCA take ownership/master of part CSCAs before terminating them - send add_tracker_agent with self ID as arg to ECA, CSCAs and PCA upon creation to get ping monitoring - improve timeout logging and fix memory management of replay in sendCommand - for Other/Free agents ctrl, send request to add GUI as tracker when no ping received yet - fix empty current state field in OtherAgent Tab (left on purpose nefore as redundant but was confusing in the end) - give own ID as tracker ID when asking main CSCAs to start the part CSCAs - In PCA Tab widget, decouple from ECA agent - Replace all usage of ECA agent by more generic GUI/Core agent - Add handle to sendCommand method of the overlaying GUI/Core agent as mandatory init parameter - Remove local sendCommand and replace by calls to handle of high one - disconnect the signal of each Watcher before terminating them (seem to fix 99% of the segfault occurences) - fix TOP ID to mCBM convention when removing an SCA from the partition - Provide sendCommand handle to ScaStatusWidget (see under) + send request to add GUI as tracker when no ping received yet - fix empty current state field in ScaCtrl Tab (left on purpose nefore as redundant but was confusing in the end) - CentralScaMainAgent: - rename term_part_sca method with signal to kill_part_sca and add real term_part_sca with commands to subagent - in start_part_sca, send add_tracker_agent command to newly created agent if optional tracker ID provided - fix cleanup of reply when optionally setting tracker for new Part CSCA - ScaStatusWidget: - Use sendCommand handle from top GUI to minimize copy-paste - send request to add GUI as tracker when no ping received yet - clean disconnect of Watcher signal when closing
-
- Feb 28, 2024
-
-
Pierre-Alain Loizeau authored
- Add new file to hold all central constants - Replace all raw string "ECA" with a central constant ID_ECA - Replace all CSCA IDs previously stored as ECA member variables by corresponding ID_XXXX constants
-
Pierre-Alain Loizeau authored
-
- Dec 15, 2023
-
-
Pierre-Alain Loizeau authored
-
Pierre-Alain Loizeau authored
-
Pierre-Alain Loizeau authored
- Add mcbm "user UI" mode to the SCA class + corresponding poetry command/call - Add two signal + result auxiliary classes to SCA class to trigger popups in ScaGui !!! brings dependency on PySide2 in Sca !!! - Add methods to emit signals for respectively normal transitions and error recovery + wait for result from GUI - Add methods for normal transitions and error recovery popups in ScaGui + connect them to Sca signals if in mcbm "user UI" mode
-
Pierre-Alain Loizeau authored
-
Pierre-Alain Loizeau authored
-
- Nov 10, 2023
-
-
Pierre-Alain Loizeau authored
- Bump lock file and readme to EcsCore v0.2.3 for the list_subagents command - ECA and PCA GUIs: move refresh calls position out of if/else blocks in method swapping timezones - In EcaGui: Use template TabWidget to create one tab for each new PCA - In EcaGui: keep track of Part CSCAs to prevent them being added to "free" SCAs lists - In EcaGui: Implement PCA merging, STILL LACKING PART CSCAS MERGING!! - In EcaGui: fix/cleanup PCA termination - In GuiTools: Add new watcher class/QThread to detect changes to the subagent list of an agent - In PCA control tab: Use template ScaStatusWidget to create a dynamic list of (C)SCAs and manage the attached watchers - In PCA: set itself as master for all subagents declared at creation of instance - In project settings, add flake and mypy exclusions for the new UI Widgets Python files - In example config JSON file, add tags for empty and test SCA demo partition cases
-
Pierre-Alain Loizeau authored
- Bump lock file and readme to EcsCore v0.2.2 + related cleanup - Add list_part_sca cmd in CentralScaMainAgent - Fix transitions in CentralScaPartAgent to auto-reach clean active state
-
Pierre-Alain Loizeau authored
- SCA selection for PCAat creation - unavailable and available SCAs list updates - fixes following EcsCore 0.2.1 - flakeheaven and mypy fixes
-
Pierre-Alain Loizeau authored
-
Pierre-Alain Loizeau authored
- Bump lock file and readme to EcsCore v0.2.1 - Change default ports to the ones defined in previous prototype + doc to follow core changes
-
Pierre-Alain Loizeau authored
- Bump dep. to EcsCore v0.2.0 + related cleanup - Bump project settings, lock file and readme to EcsCore v0.2.0 - Fix default config files to match new format from EcsCore (+1 field for Router reply reception port & field names changes) - Update other packages in the lock file as anyway change of EcsCore minor version - Move Watcher classes/QThread out of EcaGui file to a new GuiTools file - In EcaGui: Connect UI in the free SCA (Other SCAs) control tab + corresponding methods and watcher - In EcaGui: add watcher to track list of known SCAs - in EcaGui: Fix config setting of CSCA - Introduce ScaGui: Process, Config and state control of standalone SCA - Fix monitoring of ECA and master in SCA GUI - Monitoring of self status in SCA GUI - heartbeats links - Add/Fix Local to UTC switch for SCA GUI and other agents tab in ECA GUI
-
Pierre-Alain Loizeau authored
- Add Pca script to poetry project + corresponding start method in Pca module - Add start_part_sca, term_part_sca and release_part_sca commands to CscaMain class - Implement PCA process and CSCAs processes parts of the createPartition method in EcaGui - Add untested block for selected SCAs in createPartition method in EcaGui - Implement PCA process and CSCAs processes parts of the terminatePartition method in EcaGui - Disable button to merge PCAs for now as merging not implemented (would leave some orphan PCA processes) - Enable UI for main CSCAs only if process creation worked, print GUI log otherwise - Improve propagation of main CSCAs names in ECA and EcaGui + add csca_ in name convention (prepares for filtering non-central SCAs updates) - BugFix in CSCA Main and Part: use proper termination threading signal - BugFix PCA: use proper termination threading signal + fix imports
-
- Sep 21, 2023
-
-
Pierre-Alain Loizeau authored
- Add helper method to update tag of CSCAs when receiving new value in state update - Add methods for Create/Merge/Terminate of PCAs in GUI class - Connect them - Add methods for self-consistency/enable/disable GUI updates in PCAs management tab - Change type/base-class of PCA name GUI element (FIX)
-
Pierre-Alain Loizeau authored
- Dump lock file and readme to EcsCore v0.1.5 - Remove commands now moved to EcsCore classes
-
- Sep 19, 2023
-
-
Pierre-Alain Loizeau authored
- Add update of ECA state controls (current state and available transitions) if any CSCA state update change received - Add update of CSCA state controls (current state and available transitions) if corresponding CSCA state update change received - Use full version of custom do_trans_uninitialized_initialized method in ECA - Revert to standard do_trans_initialized_configuring method in ECA - add default demo tag for the ECA in config JSON file to ensure compatibility with standard "subagents VS config content" methods
-
- Sep 15, 2023
-
-
Pierre-Alain Loizeau authored
- Add commands for set_log_level, set_log_trace_mode, set_log_test_mode to CSCA Main and Part classes - Use them in new EcaGui methods to change options after the CSCA agent start - Connect these to the log option widgets - Add blocks and connections for Dcs, Fles and Online - Fix update of the QDateTimeEdit fields when Timezone is changed after agent termination (no updates from watcher) - Fix some fields begin editable while being only Info widgets - Fix initial disable state of most CSCA and Other agent widgets (should be disabled until agent started/selected) - Fix enable state of CleanLogs/CleanupSubagents checkboxes not following their main button state (Start/Terminate)
-
Pierre-Alain Loizeau authored
- Add watcher thread class checking the context of a given agent and emitting Signal if newer Contact or Update time - Add generic methods to fill all contact and status fields for a given agent - Add concrete call for each of the 4 CSCAs (connect proper fields of ECA ctrl tab) - Add instances of watcher for each of them and connect to concrete class - Add "Last Ping" column to State summaries in GUI + fin-tune the width of fields in it
-
- Sep 14, 2023
-
-
Pierre-Alain Loizeau authored
- Add get_current_allowed_transitions to get states allowed from current global state in Eca, CscaMain and CscaPart classes - Add check_config_state to check if subagents config state match current config state and get resulting config state in Eca, CscaMain and CscaPart classe - Add generic helper method to update non-ECA agent state in GUI - Use it in start and transition methods of TFC Csca tab - Add generic helper method to check ECA config state in GUI - Connect it to CheckConfig button of ECA ctrl tab - Add generic helper method to check non-ECA agent config state in GUI - Connect it to CheckConfig button of TFC tab - Bugfix: add 300 ms sleep after starting ECA and TFC agents to give time to bcgd threads to start, avoids crash due to failed initial state update - Cleanup: import only used Widgets from PySide2.QtWidgets, allowing to skip QWidgets part in all calls
-
- Sep 11, 2023
-
-
Pierre-Alain Loizeau authored
- remove do_trans_initialized_initialized overload from ECA class - disable config file field when ECA agent started - add state transition methods to CsaMain class - add state transition methods to CsaPart class - add start functions on CentralScaMainAgent.py and CentralScaPartAgent.py - add CscaMain and CscaPart as new scripts/commands of this package (with poetry) - add second config tag for tfc in demo JSON file (for testing tag finding UI) - add generic sendCommand method to create and send an EcsCommand through the ECA agent in the GUI process - add generic findConfigTagAgent method to ==> get the list of tags for a given agent from config server through ECA ==> pop a dialog asking the user to pick one of them if any is present - add methods + connect buttons in TFC sub-tab of CSCA controls tab ==> Start agent (tested) ==> Terminate agent without cleanup (tested) or with cleanup (tested) ==> Trigger state transition (untested as require monitoring of state updates and access to transitions map)
-