WingsEvent events
22 FeatherPanel plugin events on WingsEvent (22 emitted by the core): the event names, the arguments each listener gets, where they fire and a PHP listener for each.
Last synced from FeatherPanel 15b94e9 on .
On this page
Part of the plugin events reference. Listeners get the payload values as positional arguments in the order shown, cannot cancel the action, and must catch their own exceptions.
Setup
Import WingsEvent in your entry class and register listeners in processEvents():
<?php
namespace App\Addons\myplugin;
use App\App;
use App\Plugins\AppPlugin;
use App\Plugins\PluginEvents;
use App\Plugins\Events\Events\WingsEvent;
class MyPlugin implements AppPlugin
{
public static function processEvents(PluginEvents $event): void
{
$event->on(WingsEvent::onWingsServerError(), function ($serverUuid, $error): void {
App::getInstance(true)->getLogger()->info('[myplugin] featherpanel:wings:server:error ' . json_encode(['server_uuid' => $serverUuid, 'error' => $error]));
});
}
public static function pluginInstall(): void
{
}
public static function pluginUninstall(): void
{
}
}WingsEvent::onWingsActivityLogged()
Docblock: array activity data. (the emitter passes 5 values, see the table)
| # | Payload key | Listener parameter | Type |
|---|---|---|---|
| 1 | node | $node | not declared |
| 2 | activities | $activities | not declared |
| 3 | processed_count | $processedCount | int |
| 4 | error_count | $errorCount | int |
| 5 | errors | $errors | array |
When it fires (1 site)
$event->on(WingsEvent::onWingsActivityLogged(), function ($node, $activities, $processedCount, $errorCount, $errors): void {
App::getInstance(true)->getLogger()->info('[myplugin] featherpanel:wings:activity:logged ' . json_encode(['processed_count' => $processedCount, 'error_count' => $errorCount, 'errors' => $errors]));
});WingsEvent::onWingsBackupCompletionReported()
Docblock: string backup uuid, array completion data. (the emitter passes 5 values, see the table)
| # | Payload key | Listener parameter | Type |
|---|---|---|---|
| 1 | backup_uuid | $backupUuid | string |
| 2 | backup | $backup | not declared |
| 3 | server | $server | not declared |
| 4 | node | $node | not declared |
| 5 | completion_data | $completionData | not declared |
When it fires (1 site)
$event->on(WingsEvent::onWingsBackupCompletionReported(), function ($backupUuid, $backup, $server, $node, $completionData): void {
App::getInstance(true)->getLogger()->info('[myplugin] featherpanel:wings:backup:completion:reported ' . json_encode(['backup_uuid' => $backupUuid]));
});WingsEvent::onWingsBackupRestorationReported()
Docblock: string backup uuid, array restoration data. (the emitter passes 5 values, see the table)
| # | Payload key | Listener parameter | Type |
|---|---|---|---|
| 1 | backup_uuid | $backupUuid | string |
| 2 | backup | $backup | not declared |
| 3 | server | $server | not declared |
| 4 | node | $node | not declared |
| 5 | restoration_data | $restorationData | not declared |
When it fires (1 site)
$event->on(WingsEvent::onWingsBackupRestorationReported(), function ($backupUuid, $backup, $server, $node, $restorationData): void {
App::getInstance(true)->getLogger()->info('[myplugin] featherpanel:wings:backup:restoration:reported ' . json_encode(['backup_uuid' => $backupUuid]));
});WingsEvent::onWingsBackupUploadInfoRetrieved()
Docblock: string backup uuid, array upload info. (the emitter passes 5 values, see the table)
| # | Payload key | Listener parameter | Type |
|---|---|---|---|
| 1 | backup_uuid | $backupUuid | string |
| 2 | backup | $backup | not declared |
| 3 | server | $server | not declared |
| 4 | node | $node | not declared |
| 5 | upload_info | $uploadInfo | array |
When it fires (1 site)
$event->on(WingsEvent::onWingsBackupUploadInfoRetrieved(), function ($backupUuid, $backup, $server, $node, $uploadInfo): void {
App::getInstance(true)->getLogger()->info('[myplugin] featherpanel:wings:backup:upload:info:retrieved ' . json_encode(['backup_uuid' => $backupUuid, 'upload_info' => $uploadInfo]));
});WingsEvent::onWingsDockerDiskUsageRetrieved()
Docblock: int node id, array disk usage data. (the emitter passes 3 values, see the table)
| # | Payload key | Listener parameter | Type |
|---|---|---|---|
| 1 | node_id | $nodeId | int |
| 2 | node | $node | not declared |
| 3 | docker_disk_usage | $dockerDiskUsage | not declared |
When it fires (1 site)
$event->on(WingsEvent::onWingsDockerDiskUsageRetrieved(), function ($nodeId, $node, $dockerDiskUsage): void {
App::getInstance(true)->getLogger()->info('[myplugin] featherpanel:wings:docker:disk:usage:retrieved ' . json_encode(['node_id' => $nodeId]));
});WingsEvent::onWingsDockerPruneCompleted()
Docblock: int node id, array prune results. (the emitter passes 3 values, see the table)
| # | Payload key | Listener parameter | Type |
|---|---|---|---|
| 1 | node_id | $nodeId | int |
| 2 | node | $node | not declared |
| 3 | docker_prune | $dockerPrune | not declared |
When it fires (1 site)
$event->on(WingsEvent::onWingsDockerPruneCompleted(), function ($nodeId, $node, $dockerPrune): void {
App::getInstance(true)->getLogger()->info('[myplugin] featherpanel:wings:docker:prune:completed ' . json_encode(['node_id' => $nodeId]));
});WingsEvent::onWingsError()
Docblock: string error message, array context. (the emitter passes 3 values, see the table)
| # | Payload key | Listener parameter | Type |
|---|---|---|---|
| 1 | error | $error | string |
| 2 | message | $message | string |
| 3 | server_uuid | $serverUuidnot at every site | not declared |
| Arguments passed | Emitted from |
|---|---|
error, message, server_uuid | WingsServerInfoController::getServer |
error, message | WingsMiddleware::handle |
error, message, token_id | WingsMiddleware::handle |
When it fires (3 sites)
WingsServerInfoController::getServerGET /api/remote/servers/{uuid}WingsMiddleware::handleviaemitWings()WingsMiddleware::handleviaemitWings()
$event->on(WingsEvent::onWingsError(), function ($error, $message, ...$rest): void {
App::getInstance(true)->getLogger()->info('[myplugin] featherpanel:wings:error ' . json_encode(['error' => $error, 'message' => $message]));
});WingsEvent::onWingsNodeConnectionStatus()
Docblock: int node id, string status.
| # | Payload key | Listener parameter | Type |
|---|---|---|---|
| 1 | node_id | $nodeId | null |
| 2 | status | $status | string |
| Arguments passed | Emitted from |
|---|---|
node_id, status | WingsHealthController::getHealthWingsMiddleware::handle |
node_id, status, token_id | WingsMiddleware::handle |
When it fires (3 sites)
WingsHealthController::getHealthGET /api/remote/healthWingsMiddleware::handleviaemitWings()WingsMiddleware::handleviaemitWings()
$event->on(WingsEvent::onWingsNodeConnectionStatus(), function ($nodeId, $status, ...$rest): void {
App::getInstance(true)->getLogger()->info('[myplugin] featherpanel:wings:node:connection:status ' . json_encode(['status' => $status]));
});WingsEvent::onWingsNodeError()
Docblock: int node id, string error message.
| # | Payload key | Listener parameter | Type |
|---|---|---|---|
| 1 | node_id | $nodeId | null |
| 2 | error | $error | string |
When it fires (1 site)
$event->on(WingsEvent::onWingsNodeError(), function ($nodeId, $error): void {
App::getInstance(true)->getLogger()->info('[myplugin] featherpanel:wings:node:error ' . json_encode(['error' => $error]));
});WingsEvent::onWingsNodeIpsRetrieved()
Docblock: int node id, array ip addresses. (the emitter passes 3 values, see the table)
| # | Payload key | Listener parameter | Type |
|---|---|---|---|
| 1 | node_id | $nodeId | int |
| 2 | node | $node | not declared |
| 3 | ips | $ips | not declared |
When it fires (1 site)
$event->on(WingsEvent::onWingsNodeIpsRetrieved(), function ($nodeId, $node, $ips): void {
App::getInstance(true)->getLogger()->info('[myplugin] featherpanel:wings:node:ips:retrieved ' . json_encode(['node_id' => $nodeId]));
});WingsEvent::onWingsNodeSystemInfoRetrieved()
Docblock: int node id, array system info. (the emitter passes 3 values, see the table)
| # | Payload key | Listener parameter | Type |
|---|---|---|---|
| 1 | node_id | $nodeId | int |
| 2 | node | $node | not declared |
| 3 | system_info | $systemInfo | not declared |
When it fires (1 site)
$event->on(WingsEvent::onWingsNodeSystemInfoRetrieved(), function ($nodeId, $node, $systemInfo): void {
App::getInstance(true)->getLogger()->info('[myplugin] featherpanel:wings:node:system:info:retrieved ' . json_encode(['node_id' => $nodeId]));
});WingsEvent::onWingsNodeUtilizationRetrieved()
Docblock: int node id, array utilization data. (the emitter passes 3 values, see the table)
| # | Payload key | Listener parameter | Type |
|---|---|---|---|
| 1 | node_id | $nodeId | int |
| 2 | node | $node | not declared |
| 3 | utilization | $utilization | not declared |
When it fires (1 site)
$event->on(WingsEvent::onWingsNodeUtilizationRetrieved(), function ($nodeId, $node, $utilization): void {
App::getInstance(true)->getLogger()->info('[myplugin] featherpanel:wings:node:utilization:retrieved ' . json_encode(['node_id' => $nodeId]));
});WingsEvent::onWingsServerConnectionStatus()
Docblock: string server uuid, string status. (the emitter passes 3 values, see the table)
| # | Payload key | Listener parameter | Type |
|---|---|---|---|
| 1 | server_uuid | $serverUuid | string |
| 2 | status | $status | not declared |
| 3 | node_id | $nodeId | not declared |
When it fires (1 site)
$event->on(WingsEvent::onWingsServerConnectionStatus(), function ($serverUuid, $status, $nodeId): void {
App::getInstance(true)->getLogger()->info('[myplugin] featherpanel:wings:server:connection:status ' . json_encode(['server_uuid' => $serverUuid]));
});WingsEvent::onWingsServerError()
Docblock: string server uuid, string error message.
| # | Payload key | Listener parameter | Type |
|---|---|---|---|
| 1 | server_uuid | $serverUuid | stringfrom docblock |
| 2 | error | $error | stringfrom docblock |
When it fires (1 site)
$event->on(WingsEvent::onWingsServerError(), function ($serverUuid, $error): void {
App::getInstance(true)->getLogger()->info('[myplugin] featherpanel:wings:server:error ' . json_encode(['server_uuid' => $serverUuid, 'error' => $error]));
});WingsEvent::onWingsServerInfoRetrieved()
Docblock: string server uuid, array server info. (the emitter passes 6 values, see the table)
| # | Payload key | Listener parameter | Type |
|---|---|---|---|
| 1 | server_uuid | $serverUuid | not declared |
| 2 | server | $server | not declared |
| 3 | node | $node | not declared |
| 4 | spell | $spell | not declared |
| 5 | realm | $realm | not declared |
| 6 | allocation | $allocation | not declared |
When it fires (1 site)
$event->on(WingsEvent::onWingsServerInfoRetrieved(), function ($serverUuid, $server, $node, $spell, $realm, $allocation): void {
App::getInstance(true)->getLogger()->info('[myplugin] featherpanel:wings:server:info:retrieved');
});WingsEvent::onWingsServerInstallCompleted()
Docblock: string server uuid, array install results. (the emitter passes 7 values, see the table)
| # | Payload key | Listener parameter | Type |
|---|---|---|---|
| 1 | server_uuid | $serverUuid | string |
| 2 | server | $server | not declared |
| 3 | node | $node | not declared |
| 4 | successful | $successful | bool |
| 5 | reinstall | $reinstall | not declared |
| 6 | status | $status | string |
| 7 | installed_at | $installedAt | not declared |
When it fires (1 site)
$event->on(WingsEvent::onWingsServerInstallCompleted(), function ($serverUuid, $server, $node, $successful, $reinstall, $status, $installedAt): void {
App::getInstance(true)->getLogger()->info('[myplugin] featherpanel:wings:server:install:completed ' . json_encode(['server_uuid' => $serverUuid, 'successful' => $successful, 'status' => $status]));
});WingsEvent::onWingsServerInstallRetrieved()
Docblock: string server uuid, array install data. (the emitter passes 5 values, see the table)
| # | Payload key | Listener parameter | Type |
|---|---|---|---|
| 1 | server_uuid | $serverUuid | string |
| 2 | server | $server | not declared |
| 3 | node | $node | not declared |
| 4 | spell | $spell | not declared |
| 5 | install_config | $installConfig | array |
When it fires (1 site)
$event->on(WingsEvent::onWingsServerInstallRetrieved(), function ($serverUuid, $server, $node, $spell, $installConfig): void {
App::getInstance(true)->getLogger()->info('[myplugin] featherpanel:wings:server:install:retrieved ' . json_encode(['server_uuid' => $serverUuid, 'install_config' => $installConfig]));
});WingsEvent::onWingsServerStatusRetrieved()
Docblock: string server uuid, array status data. (the emitter passes 4 values, see the table)
| # | Payload key | Listener parameter | Type |
|---|---|---|---|
| 1 | server_uuid | $serverUuid | string |
| 2 | server | $server | not declared |
| 3 | node | $node | not declared |
| 4 | state | $state | not declared |
When it fires (1 site)
$event->on(WingsEvent::onWingsServerStatusRetrieved(), function ($serverUuid, $server, $node, $state): void {
App::getInstance(true)->getLogger()->info('[myplugin] featherpanel:wings:server:status:retrieved ' . json_encode(['server_uuid' => $serverUuid]));
});WingsEvent::onWingsServerStatusUpdated()
Docblock: string server uuid, array status data. (the emitter passes 6 values, see the table)
| # | Payload key | Listener parameter | Type |
|---|---|---|---|
| 1 | server_uuid | $serverUuid | string |
| 2 | server | $server | not declared |
| 3 | node | $node | not declared |
| 4 | old_state | $oldState | not declared |
| 5 | new_state | $newState | not declared |
| 6 | update_data | $updateData | array |
When it fires (1 site)
$event->on(WingsEvent::onWingsServerStatusUpdated(), function ($serverUuid, $server, $node, $oldState, $newState, $updateData): void {
App::getInstance(true)->getLogger()->info('[myplugin] featherpanel:wings:server:status:updated ' . json_encode(['server_uuid' => $serverUuid, 'update_data' => $updateData]));
});WingsEvent::onWingsRemoteServersRetrieved()
Docblock: array servers list. (the emitter passes 4 values, see the table)
| # | Payload key | Listener parameter | Type |
|---|---|---|---|
| 1 | node | $node | not declared |
| 2 | servers | $servers | not declared |
| 3 | pagination | $pagination | array |
| 4 | total | $total | not declared |
When it fires (1 site)
$event->on(WingsEvent::onWingsRemoteServersRetrieved(), function ($node, $servers, $pagination, $total): void {
App::getInstance(true)->getLogger()->info('[myplugin] featherpanel:wings:servers:remote:retrieved ' . json_encode(['pagination' => $pagination]));
});WingsEvent::onWingsServersResetCompleted()
Docblock: array reset results. (the emitter passes 3 values, see the table)
| # | Payload key | Listener parameter | Type |
|---|---|---|---|
| 1 | node | $node | not declared |
| 2 | reset_result | $resetResult | not declared |
| 3 | queued_auto_starts | $queuedAutoStarts | not declared |
When it fires (1 site)
$event->on(WingsEvent::onWingsServersResetCompleted(), function ($node, $resetResult, $queuedAutoStarts): void {
App::getInstance(true)->getLogger()->info('[myplugin] featherpanel:wings:servers:reset:completed');
});WingsEvent::onWingsSftpAuthentication()
Docblock: array auth data. (the emitter passes 7 values, see the table)
| # | Payload key | Listener parameter | Type |
|---|---|---|---|
| 1 | server | $server | not declared |
| 2 | user | $user | not declared |
| 3 | permissions | $permissions | not declared |
| 4 | auth_type | $authType | not declared |
| 5 | ip | $ip | not declared |
| 6 | session_id | $sessionId | not declared |
| 7 | client_version | $clientVersion | not declared |
When it fires (1 site)
$event->on(WingsEvent::onWingsSftpAuthentication(), function ($server, $user, $permissions, $authType, $ip, $sessionId, $clientVersion): void {
App::getInstance(true)->getLogger()->info('[myplugin] featherpanel:wings:sftp:authentication');
});