Skip to content
Snippets Groups Projects

[NEW] Tiki Manager inside Tiki and related enhancements

Merged Victor Emanouilov requested to merge kroky/tiki:feature/tiki-manager into master

This MR aims at integrating Tiki Manager within Tiki as an optional package and feature. Once enabled, it exposes manager CLI commands to the console Tiki app, it adds a section in Admin for GUI operations with Tiki Manager. For now, you can list instances, auto-create local instance (the one you run manager on), fix permissions, get info and update an instance. This should serve as an example of how Tiki Manager functionality can be executed inside Tiki. Check Manager/Controller.php for examples.

Additionally, this MR adds a basic background jobs execution engine - it builds on top of Schedulers, divides one-time items from repeated items and calls one-time items bg jobs. They can be scheduled to execute immediately (via Scheduler_Manager::queueJob method) and will execute upon next scheduler cron run. We can enhance them with queues, priorities and distinct workers rather than relying on the cron engine but this should be a good start.

Tiki manager commands can currently be executed in 3 distinct ways:

  1. via Tiki manager console application (see info command).
  2. via direct interface of classes inside Tiki manager (see update command in foreground).
  3. via background console command execution of relevant manager:instance:xyz command (see update in background command).

Commands that take a lot of time like backups, instance updates, upgrades, clone, etc. should be run in the background. There is sufficient interface to review the results of these commands from Scheduler logs.

Commands that are almost instant can run in the foreground. The goal here is to port the whole existing manager gui (https://gitlab.com/tikiwiki/tiki-manager/-/tree/master/www/include) into Tiki using one of the 3 command execution actions above and proper UI inside Tiki. We can then add whatever is missing. Note that the preferred way to do this is via cli command execution of the relevant manager command but this is not always possible as some cli commands expect interactive input from console (e.g. import). Such commands must interactively take the input from user's browser and then execute relevant calls to Tiki manager object methods. See existing manager GUI for more info how it is done.

Additionally, a wiki plugin called tikimanager has been added that exposes the manager services controller actions and allows configuration - it essentially runs tiki manager gui in a wiki page. Note that it loads interface, navigation and initial instances list directly but then each action is an ajax hook to the corresponding service, so we don't duplicate frontend and backend logic too much. I expect most of the actions here in the wiki plugin and also in the standalone tiki manager page in Tiki will use helper bootstrap modals to collect information and report results. It is preferred to keep the TikiManager integration code all in one place - in the services - so API support is easy to add and also it is easy to update the integration code once Tiki Manager itself evolves.

Finally, a tracker field TikiManager is added that will eventually replace Show.tiki.org tracker field. It supports managing one or more Tikies much likes the wiki plugin but also can create one private Tiki and execute actions on it - e.g. when people use this to reproduce a bug. The plan here is to add more actions like applying a patch or a set of patches to the instance, so bug fixing can be a collaborative work.

Edited by Victor Emanouilov

Merge request reports

Loading
Loading

Activity

Filter activity
  • Approvals
  • Assignees & reviewers
  • Comments (from bots)
  • Comments (from users)
  • Commits & branches
  • Edits
  • Labels
  • Lock status
  • Mentions
  • Merge request status
  • Tracking
  • added 1 commit

    • d435fb05 - [FIX license of tiki manager

    Compare with previous version

  • Victor Emanouilov resolved all threads

    resolved all threads

  • Marc Laporte added 21 commits

    added 21 commits

    • d435fb05...f8e30ed7 - 16 commits from branch tikiwiki:master
    • 8c026003 - [NEW] Tiki Manager inside Tiki - ability to enable the feature, install it via...
    • 2f9ce30f - [ENH] add Tiki Manager console commands to main tiki console script if manager...
    • 2200bdf1 - [ENH] divide scheduler items to repeating items and one-time jobs, add ability...
    • aa04d15a - [ENH] add tiki manager fix command to the GUI
    • ed262151 - [FIX license of tiki manager

    Compare with previous version

  • added 1 commit

    • f33dae1d - [FIX] tighten Tiki Manager integration - setup env paths to tiki storage...

    Compare with previous version

  • added 1 commit

    • cef22413 - [ENH] add tikimanager wiki plugin that interacts with ajax services to execute instance commands

    Compare with previous version

  • Victor Emanouilov changed the description

    changed the description

  • Here is some brainstorming about this feature: https://dev.tiki.org/Tiki-Manager-within-Tiki

    This will have a massive impact on Tiki and the community by converging efforts related to deployment,

  • added 1 commit

    • 16e42b9b - [ENH] TikiManager tracker field - replacement for Show.tiki.org tracker field...

    Compare with previous version

  • Victor Emanouilov changed the description

    changed the description

  • I just reviewed the Tracker field. This is looking very good!

    It is going to be very useful for the upcoming show3 server!

    And plenty of good work for the junior developers.

    There are a few instance of a typo: separted -> separated

    Thanks!

  • mentioned in merge request tiki-manager!280 (merged)

  • added 1 commit

    • 7727205d - [FIX] use symfony component libraries compatible with tiki manager

    Compare with previous version

  • added 1 commit

    • 4d8f39c8 - [FIX] suppress console io output when initializing tiki manager inside tiki

    Compare with previous version

  • Victor Emanouilov added 104 commits

    added 104 commits

    • 4d8f39c8...cd88335b - 94 commits from branch tikiwiki:master
    • a505ad3d - [NEW] Tiki Manager inside Tiki - ability to enable the feature, install it via...
    • 23d72cca - [ENH] add Tiki Manager console commands to main tiki console script if manager...
    • 55039522 - [ENH] divide scheduler items to repeating items and one-time jobs, add ability...
    • 2bf9dbaf - [ENH] add tiki manager fix command to the GUI
    • 856b2a5e - [FIX license of tiki manager
    • b5b2f773 - [FIX] tighten Tiki Manager integration - setup env paths to tiki storage...
    • fa21f3d5 - [ENH] add tikimanager wiki plugin that interacts with ajax services to execute instance commands
    • 4934f23b - [ENH] TikiManager tracker field - replacement for Show.tiki.org tracker field...
    • d9351cab - [FIX] use symfony component libraries compatible with tiki manager
    • da2a17f5 - [FIX] suppress console io output when initializing tiki manager inside tiki

    Compare with previous version

  • added 1 commit

    • 4cd4c903 - [FIX] TikiManager tracker field typo

    Compare with previous version

  • added 2 commits

    • fd724fd8 - [FIX] symfony yaml upgrade include directive test and implementation
    • b1cc181a - [FIX] composer update

    Compare with previous version

  • Victor Emanouilov added 15 commits

    added 15 commits

    • b1cc181a...48e0ee0f - 2 commits from branch tikiwiki:master
    • 3bf02818 - [NEW] Tiki Manager inside Tiki - ability to enable the feature, install it via...
    • e67cfa0f - [ENH] add Tiki Manager console commands to main tiki console script if manager...
    • e99f3bed - [ENH] divide scheduler items to repeating items and one-time jobs, add ability...
    • 85862d59 - [ENH] add tiki manager fix command to the GUI
    • 17b44f0c - [FIX license of tiki manager
    • 3226cb5b - [FIX] tighten Tiki Manager integration - setup env paths to tiki storage...
    • f7db1f9a - [ENH] add tikimanager wiki plugin that interacts with ajax services to execute instance commands
    • 1885feeb - [ENH] TikiManager tracker field - replacement for Show.tiki.org tracker field...
    • 9ced785a - [FIX] use symfony component libraries compatible with tiki manager
    • d921de8c - [FIX] suppress console io output when initializing tiki manager inside tiki
    • 8cd75476 - [FIX] TikiManager tracker field typo
    • 87f1d434 - [FIX] symfony yaml upgrade include directive test and implementation
    • 97eba1e2 - [FIX] composer update

    Compare with previous version

  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Loading
  • Please register or sign in to reply
    Loading