View .md

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()

Name: featherpanel:wings:activity:loggedemitted at 1 siteCancel or modify: nodefinition

Docblock: array activity data. (the emitter passes 5 values, see the table)

#Payload keyListener parameterType
1node$nodenot declared
2activities$activitiesnot declared
3processed_count$processedCountint
4error_count$errorCountint
5errors$errorsarray
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()

Name: featherpanel:wings:backup:completion:reportedemitted at 1 siteCancel or modify: nodefinition

Docblock: string backup uuid, array completion data. (the emitter passes 5 values, see the table)

#Payload keyListener parameterType
1backup_uuid$backupUuidstring
2backup$backupnot declared
3server$servernot declared
4node$nodenot declared
5completion_data$completionDatanot 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()

Name: featherpanel:wings:backup:restoration:reportedemitted at 1 siteCancel or modify: nodefinition

Docblock: string backup uuid, array restoration data. (the emitter passes 5 values, see the table)

#Payload keyListener parameterType
1backup_uuid$backupUuidstring
2backup$backupnot declared
3server$servernot declared
4node$nodenot declared
5restoration_data$restorationDatanot 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()

Name: featherpanel:wings:backup:upload:info:retrievedemitted at 1 siteCancel or modify: nodefinition

Docblock: string backup uuid, array upload info. (the emitter passes 5 values, see the table)

#Payload keyListener parameterType
1backup_uuid$backupUuidstring
2backup$backupnot declared
3server$servernot declared
4node$nodenot declared
5upload_info$uploadInfoarray
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()

Name: featherpanel:wings:docker:disk:usage:retrievedemitted at 1 siteCancel or modify: nodefinition

Docblock: int node id, array disk usage data. (the emitter passes 3 values, see the table)

#Payload keyListener parameterType
1node_id$nodeIdint
2node$nodenot declared
3docker_disk_usage$dockerDiskUsagenot 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()

Name: featherpanel:wings:docker:prune:completedemitted at 1 siteCancel or modify: nodefinition

Docblock: int node id, array prune results. (the emitter passes 3 values, see the table)

#Payload keyListener parameterType
1node_id$nodeIdint
2node$nodenot declared
3docker_prune$dockerPrunenot 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()

Name: featherpanel:wings:erroremitted at 3 sites3 payload shapesCancel or modify: nodefinition

Docblock: string error message, array context. (the emitter passes 3 values, see the table)

#Payload keyListener parameterType
1error$errorstring
2message$messagestring
3server_uuid$serverUuidnot at every sitenot declared
Arguments passedEmitted from
error, message, server_uuid
WingsServerInfoController::getServer
error, message
WingsMiddleware::handle
error, message, token_id
WingsMiddleware::handle
When it fires (3 sites)
$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()

Name: featherpanel:wings:node:connection:statusemitted at 3 sites2 payload shapesCancel or modify: nodefinition

Docblock: int node id, string status.

#Payload keyListener parameterType
1node_id$nodeIdnull
2status$statusstring
Arguments passedEmitted from
node_id, status
WingsHealthController::getHealth
WingsMiddleware::handle
node_id, status, token_id
WingsMiddleware::handle
When it fires (3 sites)
$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()

Name: featherpanel:wings:node:erroremitted at 1 siteCancel or modify: nodefinition

Docblock: int node id, string error message.

#Payload keyListener parameterType
1node_id$nodeIdnull
2error$errorstring
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()

Name: featherpanel:wings:node:ips:retrievedemitted at 1 siteCancel or modify: nodefinition

Docblock: int node id, array ip addresses. (the emitter passes 3 values, see the table)

#Payload keyListener parameterType
1node_id$nodeIdint
2node$nodenot declared
3ips$ipsnot 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()

Name: featherpanel:wings:node:system:info:retrievedemitted at 1 siteCancel or modify: nodefinition

Docblock: int node id, array system info. (the emitter passes 3 values, see the table)

#Payload keyListener parameterType
1node_id$nodeIdint
2node$nodenot declared
3system_info$systemInfonot 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()

Name: featherpanel:wings:node:utilization:retrievedemitted at 1 siteCancel or modify: nodefinition

Docblock: int node id, array utilization data. (the emitter passes 3 values, see the table)

#Payload keyListener parameterType
1node_id$nodeIdint
2node$nodenot declared
3utilization$utilizationnot 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()

Name: featherpanel:wings:server:connection:statusemitted at 1 siteCancel or modify: nodefinition

Docblock: string server uuid, string status. (the emitter passes 3 values, see the table)

#Payload keyListener parameterType
1server_uuid$serverUuidstring
2status$statusnot declared
3node_id$nodeIdnot 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()

Name: featherpanel:wings:server:erroremitted at 1 siteCancel or modify: nodefinition

Docblock: string server uuid, string error message.

#Payload keyListener parameterType
1server_uuid$serverUuidstringfrom docblock
2error$errorstringfrom 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()

Name: featherpanel:wings:server:info:retrievedemitted at 1 siteCancel or modify: nodefinition

Docblock: string server uuid, array server info. (the emitter passes 6 values, see the table)

#Payload keyListener parameterType
1server_uuid$serverUuidnot declared
2server$servernot declared
3node$nodenot declared
4spell$spellnot declared
5realm$realmnot declared
6allocation$allocationnot 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()

Name: featherpanel:wings:server:install:completedemitted at 1 siteCancel or modify: nodefinition

Docblock: string server uuid, array install results. (the emitter passes 7 values, see the table)

#Payload keyListener parameterType
1server_uuid$serverUuidstring
2server$servernot declared
3node$nodenot declared
4successful$successfulbool
5reinstall$reinstallnot declared
6status$statusstring
7installed_at$installedAtnot 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()

Name: featherpanel:wings:server:install:retrievedemitted at 1 siteCancel or modify: nodefinition

Docblock: string server uuid, array install data. (the emitter passes 5 values, see the table)

#Payload keyListener parameterType
1server_uuid$serverUuidstring
2server$servernot declared
3node$nodenot declared
4spell$spellnot declared
5install_config$installConfigarray
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()

Name: featherpanel:wings:server:status:retrievedemitted at 1 siteCancel or modify: nodefinition

Docblock: string server uuid, array status data. (the emitter passes 4 values, see the table)

#Payload keyListener parameterType
1server_uuid$serverUuidstring
2server$servernot declared
3node$nodenot declared
4state$statenot 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()

Name: featherpanel:wings:server:status:updatedemitted at 1 siteCancel or modify: nodefinition

Docblock: string server uuid, array status data. (the emitter passes 6 values, see the table)

#Payload keyListener parameterType
1server_uuid$serverUuidstring
2server$servernot declared
3node$nodenot declared
4old_state$oldStatenot declared
5new_state$newStatenot declared
6update_data$updateDataarray
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()

Name: featherpanel:wings:servers:remote:retrievedemitted at 1 siteCancel or modify: nodefinition

Docblock: array servers list. (the emitter passes 4 values, see the table)

#Payload keyListener parameterType
1node$nodenot declared
2servers$serversnot declared
3pagination$paginationarray
4total$totalnot 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()

Name: featherpanel:wings:servers:reset:completedemitted at 1 siteCancel or modify: nodefinition

Docblock: array reset results. (the emitter passes 3 values, see the table)

#Payload keyListener parameterType
1node$nodenot declared
2reset_result$resetResultnot declared
3queued_auto_starts$queuedAutoStartsnot 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()

Name: featherpanel:wings:sftp:authenticationemitted at 1 siteCancel or modify: nodefinition

Docblock: array auth data. (the emitter passes 7 values, see the table)

#Payload keyListener parameterType
1server$servernot declared
2user$usernot declared
3permissions$permissionsnot declared
4auth_type$authTypenot declared
5ip$ipnot declared
6session_id$sessionIdnot declared
7client_version$clientVersionnot 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');
});