Plugin architecture

Discussion in 'Developers' Forum' started by tom123, Jun 2, 2013.

  1. tom123

    tom123 Member

    i've seen that plugins are called by events. Each plugin will subscribe for an event and then called when this event is triggerd.

    This is good, but how can I get a feedback from the plugin? Are plugin able to send back a response to the caller or the communication is just in one-way ISPConfig -> Plugin only ?

    For example, what happens if some plugin actions doesn't work as expected ? How can I get this from ISPConfig ?

    next question: modules announce some events and then each module will register itself for some database table changes. Each db change will trigger one or more event (announced by modules) that will call the plugin ?

    For example:
    - module web announce an event called "web_domain_insert"
    - module web register for web_domain db table change. On each change it will trigger the "process" method inside itself
    - module web process method will trigger an event "web_domain_insert"
    - the event "web_domain_insert" is detected by plugin "apache2_plugin" that was listening for that event due to the method "onLoad"

    In this way, each module is able to create custom events, trigger some events based on db changes and plugins are able to trigger some action due to the event registration, right?
  2. till

    till Super Moderator Staff Member ISPConfig Developer

    You can not ive feedback rrom a plugin o the interface as the events are called asyncronously. But ispconfig supports custom events, so what you described in the second part can be done within the ispconfig event model. These kind of events are called actions and are available in modules and server plugins beside the "classic" database table events. Actions work similar to the table events, the ifference is that plugins can register actions and can define the data that is passed to a action when the plugin is loaded and the same ir anoher plugin can register "listen" for these actions or trigger them.
  3. tom123

    tom123 Member

    So, ISPConfig is never able to know if hosting is created properly, right?
  4. till

    till Super Moderator Staff Member ISPConfig Developer

    It depends on the type of the error. If a fatal error occurred, then processing of the jobqueue gets stopped and the client and admin can see in the interface that the job is not processed. If minor problems occurred, then they are logged into the ispconfig log for the admin to review them.

    As jobs are not processed in realtime (they are asnychronous) and ispconfig is a multiserver controlpanel, so the jobs dont get processed on the same server or even the same datacenter you cant get reatime feedback in the interface.

Share This Page