Skip to content
Snippets Groups Projects
  1. Oct 07, 2024
    • Pierre-Alain Loizeau's avatar
      Changes to make the repo public · 1f3cd916
      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
      1f3cd916
  2. Sep 10, 2024
  3. Sep 09, 2024
  4. Aug 29, 2024
  5. Jul 29, 2024
    • Pierre-Alain Loizeau's avatar
      Split ECS package from GUI package: Cleanup all non-QT related files + new dependency · f88a46ae
      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)
      f88a46ae
  6. Jul 18, 2024
    • Pierre-Alain Loizeau's avatar
      Switch from PySide2 to PySide6 to follow Debian 12 changes · 86742af7
      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
      86742af7
  7. Jun 05, 2024
  8. May 31, 2024
  9. Apr 30, 2024
    • Pierre-Alain Loizeau's avatar
      PCA decoupling · 219ea5ac
      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
      219ea5ac
    • Pierre-Alain Loizeau's avatar
      ECA decoupling · e66f247c
      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
      e66f247c
    • Pierre-Alain Loizeau's avatar
      CSCA decoupling · baec3e97
      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
      baec3e97
  10. Mar 12, 2024
    • Pierre-Alain Loizeau's avatar
      Add possibility to dis-reconnect SCA from GUI + cleaner reconnect handling · a712e843
      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
      a712e843
  11. Mar 01, 2024
    • Pierre-Alain Loizeau's avatar
    • Pierre-Alain Loizeau's avatar
      Decouple the agent from the GUI in the SCA control GUI · f686614f
      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
      f686614f
    • Pierre-Alain Loizeau's avatar
      Decouple the agent from the GUI in the ECA-PCA control GUI · 9c398587
      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
      9c398587
  12. Feb 28, 2024
  13. Dec 15, 2023
  14. Nov 10, 2023
    • Pierre-Alain Loizeau's avatar
      PCA control part 2 · aa9679ae
      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
      aa9679ae
    • Pierre-Alain Loizeau's avatar
      Bump dep. to EcsCore v0.2.2 + Fix trans + List part sca cmd in CSCA main class · 5e08a135
      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
      5e08a135
    • Pierre-Alain Loizeau's avatar
      Improve/fix SCA related parts in EcaPca GUI · 4d657d52
      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
      4d657d52
    • Pierre-Alain Loizeau's avatar
    • Pierre-Alain Loizeau's avatar
      Bump dep. to EcsCore v0.2.1 + related cleanup · 89dce643
      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
      89dce643
    • Pierre-Alain Loizeau's avatar
      Introduce SCA GUI + related fix + EcsCore bump to vers. with better perfs · 9114657f
      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
      9114657f
    • Pierre-Alain Loizeau's avatar
      Add Pca script + implement PCA process and part CSCAs procs creation-termination · f7f9ee3d
      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
      f7f9ee3d
  15. Sep 21, 2023
  16. Sep 19, 2023
    • Pierre-Alain Loizeau's avatar
      Add update of state + avail. trans. Ctrl for CSCAs and ECA + Add real ECA trans · ac8f83ad
      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
      ac8f83ad
  17. Sep 15, 2023
    • Pierre-Alain Loizeau's avatar
      Add support for log option changes after CSCA start + add the 3 other CSCA + bugfixes · c771523a
      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)
      c771523a
    • Pierre-Alain Loizeau's avatar
      Add watcher class + methods for contact and state updates of CSCAs in GUI · 4211f5a2
      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
      4211f5a2
  18. Sep 14, 2023
    • Pierre-Alain Loizeau's avatar
      Connecting remaining TFC main agent buttons + adding related methods · c410f8f4
      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
      c410f8f4
  19. Sep 11, 2023
    • Pierre-Alain Loizeau's avatar
      Start connecting TFC main agent buttons + adding related methods · ca55992d
      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)
      ca55992d
Loading