update dix
This commit is contained in:
parent
e921a49d5b
commit
11691a5876
11 changed files with 1108 additions and 54 deletions
|
|
@ -26,6 +26,14 @@ The admin page stores these settings in the Panel settings table:
|
|||
- `gsp_update_branch`
|
||||
- `gsp_update_repo_root`
|
||||
- `gsp_update_panel_path`
|
||||
- `gsp_update_website_path`
|
||||
- `gsp_update_panel_source_path`
|
||||
- `gsp_update_linux_agent_source_path`
|
||||
- `gsp_update_windows_agent_source_path`
|
||||
- `gsp_update_website_source_path`
|
||||
- `gsp_update_git_path`
|
||||
- `gsp_update_backup_path`
|
||||
- optional admin-only post-update commands per component
|
||||
- `gsp_update_backup_before`
|
||||
|
||||
Defaults:
|
||||
|
|
@ -34,6 +42,11 @@ Defaults:
|
|||
- Branch: `Panel-unstable`
|
||||
- Repository Root: `/var/www/html/GSP`
|
||||
- Panel Path: `/var/www/html/GSP/Panel`
|
||||
- Website Path: `/var/www/html/GSP/Website`
|
||||
- Panel Source Folder: `Panel`
|
||||
- Linux Agent Source Folder: `Agent_Linux`
|
||||
- Windows Agent Source Folder: `Agent-Windows`
|
||||
- Website Source Folder: `Website`
|
||||
- Backup Before Update: enabled
|
||||
|
||||
Important implementation note:
|
||||
|
|
@ -41,6 +54,7 @@ Important implementation note:
|
|||
- `gsp_update_settings()` and `gsp_validate_update_settings()` are defined at top level in `Panel/modules/administration/panel_update.php`.
|
||||
- These helpers must not be nested inside another function. A previous bad edit placed `gsp_update_settings()` inside `gsp_get_git_commit()`, which caused a fatal error when the update page called the helper before `gsp_get_git_commit()` had ever executed.
|
||||
- If the update page throws `Call to undefined function gsp_update_settings()`, first verify the deployed `Panel/modules/administration/panel_update.php` matches the repository version and that this helper exists near the top of the file before `gsp_panel_update_section()` is called.
|
||||
- `gsp_do_configured_git_update()` must also remain top-level. A bad edit placed it inside `gsp_do_update()`, so `/home.php?m=update` called an undefined function until a legacy GitHub update path happened to execute first.
|
||||
|
||||
## Update Flow
|
||||
|
||||
|
|
@ -54,6 +68,49 @@ Important implementation note:
|
|||
8. Run module updates/post-update hooks.
|
||||
9. Write version metadata and `LAST_UPDATE.txt`.
|
||||
|
||||
## Component Updates
|
||||
|
||||
The update page can update selected components from one repository:
|
||||
|
||||
- Panel files
|
||||
- Website files
|
||||
- Linux agents
|
||||
- Windows/Cygwin agents
|
||||
|
||||
Local Panel/Website updates clone the configured repository into a temporary checkout and copy only the configured component source folder into the configured destination path. Protected folders and files are not overwritten:
|
||||
|
||||
- `includes/config.inc.php`
|
||||
- `Cfg/`
|
||||
- `ServerFiles/`
|
||||
- `Schedule/`
|
||||
- `logs/`
|
||||
- `screenlogs/`
|
||||
- `cache/`
|
||||
- `tmp/`
|
||||
- `uploads/`
|
||||
- `backups/`
|
||||
- `steamcmd/`
|
||||
- `startups/`
|
||||
- PID files
|
||||
|
||||
Remote agent updates use the encrypted Panel-Agent XML-RPC channel and the `component_update` RPC. The agent writes a detached updater script, clones the repo to staging, backs up the current agent code, copies only the configured agent source folder, validates `ogp_agent.pl`, then restarts through `systemd` when available or the existing `screen` fallback.
|
||||
|
||||
Remote update status is queued/asynchronous. The first response confirms that the update was accepted and gives the agent-side log path.
|
||||
|
||||
Remote updates require PHP XML-RPC on the Panel host. If the extension is missing, the update page still loads and reports a clean `missing_xmlrpc` error when a remote agent update is requested.
|
||||
|
||||
## Smoke Tests
|
||||
|
||||
Useful validation commands:
|
||||
|
||||
```bash
|
||||
php -l Panel/modules/administration/panel_update.php
|
||||
php -l Panel/modules/update/update.php
|
||||
php -l Panel/includes/lib_remote.php
|
||||
php Panel/modules/update/tests/update_config_smoke.php
|
||||
perl -c ogp_agent.pl # run from each installed agent directory with dependencies present
|
||||
```
|
||||
|
||||
## Diagnostics
|
||||
|
||||
Apache and SSL checks are diagnostics only. Missing SSL certificates do not block Panel updates.
|
||||
|
|
@ -68,6 +125,7 @@ The old repeated SSL vhost disable buttons are not part of the primary update pa
|
|||
## Repair Notes
|
||||
|
||||
- The update page fatal `Call to undefined function gsp_update_settings()` means the deployed `Panel/modules/administration/panel_update.php` is missing the top-level helper or is not the current repository copy.
|
||||
- The update page fatal `Call to undefined function gsp_do_configured_git_update()` means the configured Git update helper is missing or nested inside another helper in the deployed `panel_update.php`.
|
||||
- `Panel/modules/update/update.php` only loads `Panel/modules/administration/panel_update.php` and calls `gsp_panel_update_section()`.
|
||||
- The configured update action uses `git clone --depth 1 --branch <configured branch> <configured repository source> <temporary checkout>`.
|
||||
- Clone failures are logged to `logs/update_trace.log` with the configured repository source and branch.
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue