文档:同步云管功能进度与现场验收记录
No files matched your search
@@ -0,0 +1,144 @@
|
||||
Start testing: Nov 10 09:28 CST
|
||||
----------------------------------------------------------
|
||||
1/4 Testing: display-guard
|
||||
1/4 Test: display-guard
|
||||
Command: "/usr/bin/python3" "/home/armbian/vdi-build/boot-device-auth-20261110/tests/test_display_guard.py"
|
||||
Directory: /home/armbian/vdi-build/boot-device-auth-20261110/build
|
||||
"display-guard" start time: Nov 10 09:28 CST
|
||||
Output:
|
||||
----------------------------------------------------------
|
||||
.........
|
||||
----------------------------------------------------------------------
|
||||
Ran 9 tests in 0.110s
|
||||
|
||||
OK
|
||||
<end of output>
|
||||
Test time = 0.83 sec
|
||||
----------------------------------------------------------
|
||||
Test Passed.
|
||||
"display-guard" end time: Nov 10 09:28 CST
|
||||
"display-guard" time elapsed: 00:00:00
|
||||
----------------------------------------------------------
|
||||
|
||||
2/4 Testing: moonlight-session
|
||||
2/4 Test: moonlight-session
|
||||
Command: "/home/armbian/vdi-build/boot-device-auth-20261110/build/test-moonlight-session"
|
||||
Directory: /home/armbian/vdi-build/boot-device-auth-20261110/build
|
||||
"moonlight-session" start time: Nov 10 09:28 CST
|
||||
Output:
|
||||
----------------------------------------------------------
|
||||
********* Start testing of MoonlightSessionTest *********
|
||||
Config: Using QtTest library 5.15.13, Qt 5.15.13 (arm64-little_endian-lp64 shared (dynamic) release build; by GCC 13.2.0), ubuntu 24.04
|
||||
PASS : MoonlightSessionTest::initTestCase()
|
||||
PASS : MoonlightSessionTest::parsesSplitReadyMarkers()
|
||||
PASS : MoonlightSessionTest::requiresBothReadyMarkers()
|
||||
PASS : MoonlightSessionTest::acceptsSeparateHardwareTestDecoder()
|
||||
PASS : MoonlightSessionTest::rejectsSecondStart()
|
||||
PASS : MoonlightSessionTest::reportsKioskLaunchFailure()
|
||||
PASS : MoonlightSessionTest::buildsConsistentStreamArguments()
|
||||
PASS : MoonlightSessionTest::selectsProfileWithoutLosingStats()
|
||||
PASS : MoonlightSessionTest::rejectsInvalidDecoderOverride()
|
||||
PASS : MoonlightSessionTest::cleanupTestCase()
|
||||
Totals: 10 passed, 0 failed, 0 skipped, 0 blacklisted, 917ms
|
||||
********* Finished testing of MoonlightSessionTest *********
|
||||
<end of output>
|
||||
Test time = 0.94 sec
|
||||
----------------------------------------------------------
|
||||
Test Passed.
|
||||
"moonlight-session" end time: Nov 10 09:28 CST
|
||||
"moonlight-session" time elapsed: 00:00:00
|
||||
----------------------------------------------------------
|
||||
|
||||
3/4 Testing: desktop-list-page
|
||||
3/4 Test: desktop-list-page
|
||||
Command: "/home/armbian/vdi-build/boot-device-auth-20261110/build/test-desktop-list-page"
|
||||
Directory: /home/armbian/vdi-build/boot-device-auth-20261110/build
|
||||
"desktop-list-page" start time: Nov 10 09:28 CST
|
||||
Output:
|
||||
----------------------------------------------------------
|
||||
********* Start testing of DesktopListPageTest *********
|
||||
Config: Using QtTest library 5.15.13, Qt 5.15.13 (arm64-little_endian-lp64 shared (dynamic) release build; by GCC 13.2.0), ubuntu 24.04
|
||||
PASS : DesktopListPageTest::initTestCase()
|
||||
PASS : DesktopListPageTest::firstClickDisablesActionsAndBlocksDuplicate()
|
||||
PASS : DesktopListPageTest::cleanupTestCase()
|
||||
Totals: 3 passed, 0 failed, 0 skipped, 0 blacklisted, 60ms
|
||||
********* Finished testing of DesktopListPageTest *********
|
||||
<end of output>
|
||||
Test time = 0.11 sec
|
||||
----------------------------------------------------------
|
||||
Test Passed.
|
||||
"desktop-list-page" end time: Nov 10 09:28 CST
|
||||
"desktop-list-page" time elapsed: 00:00:00
|
||||
----------------------------------------------------------
|
||||
|
||||
4/4 Testing: main-window-boot
|
||||
4/4 Test: main-window-boot
|
||||
Command: "/home/armbian/vdi-build/boot-device-auth-20261110/build/test-main-window"
|
||||
Directory: /home/armbian/vdi-build/boot-device-auth-20261110/build
|
||||
"main-window-boot" start time: Nov 10 09:28 CST
|
||||
Output:
|
||||
----------------------------------------------------------
|
||||
********* Start testing of vdi::MainWindowTest *********
|
||||
Config: Using QtTest library 5.15.13, Qt 5.15.13 (arm64-little_endian-lp64 shared (dynamic) release build; by GCC 13.2.0), ubuntu 24.04
|
||||
PASS : vdi::MainWindowTest::initTestCase()
|
||||
QWARN : vdi::MainWindowTest::offlineBootRecoversWithoutRestart() This plugin does not support propagateSizeHints()
|
||||
QWARN : vdi::MainWindowTest::offlineBootRecoversWithoutRestart() This plugin does not support raise()
|
||||
QWARN : vdi::MainWindowTest::offlineBootRecoversWithoutRestart() This plugin does not support raise()
|
||||
QWARN : vdi::MainWindowTest::offlineBootRecoversWithoutRestart() This plugin does not support raise()
|
||||
QWARN : vdi::MainWindowTest::offlineBootRecoversWithoutRestart() This plugin does not support raise()
|
||||
QWARN : vdi::MainWindowTest::offlineBootRecoversWithoutRestart() vdi_device_auth_request http_status= 0 network_error= 1
|
||||
QWARN : vdi::MainWindowTest::offlineBootRecoversWithoutRestart() vdi_device_auth result=waiting retry_ms= 30
|
||||
QWARN : vdi::MainWindowTest::offlineBootRecoversWithoutRestart() This plugin does not support propagateSizeHints()
|
||||
QWARN : vdi::MainWindowTest::offlineBootRecoversWithoutRestart() vdi_device_auth_request http_status= 0 network_error= 1
|
||||
QWARN : vdi::MainWindowTest::offlineBootRecoversWithoutRestart() vdi_device_auth result=waiting retry_ms= 60
|
||||
QINFO : vdi::MainWindowTest::offlineBootRecoversWithoutRestart() vdi_device_auth result=ready
|
||||
PASS : vdi::MainWindowTest::offlineBootRecoversWithoutRestart()
|
||||
QWARN : vdi::MainWindowTest::rejectedIdentityStaysOnSelectionAndRetries() This plugin does not support propagateSizeHints()
|
||||
QWARN : vdi::MainWindowTest::rejectedIdentityStaysOnSelectionAndRetries() This plugin does not support raise()
|
||||
QWARN : vdi::MainWindowTest::rejectedIdentityStaysOnSelectionAndRetries() This plugin does not support raise()
|
||||
QWARN : vdi::MainWindowTest::rejectedIdentityStaysOnSelectionAndRetries() This plugin does not support raise()
|
||||
QWARN : vdi::MainWindowTest::rejectedIdentityStaysOnSelectionAndRetries() This plugin does not support raise()
|
||||
QWARN : vdi::MainWindowTest::rejectedIdentityStaysOnSelectionAndRetries() vdi_device_auth_request http_status= 403 network_error= 201
|
||||
QWARN : vdi::MainWindowTest::rejectedIdentityStaysOnSelectionAndRetries() vdi_device_auth result=waiting retry_ms= 30
|
||||
QWARN : vdi::MainWindowTest::rejectedIdentityStaysOnSelectionAndRetries() This plugin does not support propagateSizeHints()
|
||||
QWARN : vdi::MainWindowTest::rejectedIdentityStaysOnSelectionAndRetries() vdi_device_auth_request http_status= 403 network_error= 201
|
||||
QWARN : vdi::MainWindowTest::rejectedIdentityStaysOnSelectionAndRetries() vdi_device_auth result=waiting retry_ms= 60
|
||||
QWARN : vdi::MainWindowTest::rejectedIdentityStaysOnSelectionAndRetries() vdi_device_auth_request http_status= 403 network_error= 201
|
||||
QWARN : vdi::MainWindowTest::rejectedIdentityStaysOnSelectionAndRetries() vdi_device_auth result=waiting retry_ms= 120
|
||||
QINFO : vdi::MainWindowTest::rejectedIdentityStaysOnSelectionAndRetries() vdi_device_auth result=ready
|
||||
QWARN : vdi::MainWindowTest::rejectedIdentityStaysOnSelectionAndRetries() This plugin does not support propagateSizeHints()
|
||||
PASS : vdi::MainWindowTest::rejectedIdentityStaysOnSelectionAndRetries()
|
||||
QWARN : vdi::MainWindowTest::slowAuthenticationDoesNotOverlap() This plugin does not support propagateSizeHints()
|
||||
QWARN : vdi::MainWindowTest::slowAuthenticationDoesNotOverlap() This plugin does not support raise()
|
||||
QWARN : vdi::MainWindowTest::slowAuthenticationDoesNotOverlap() This plugin does not support raise()
|
||||
QWARN : vdi::MainWindowTest::slowAuthenticationDoesNotOverlap() This plugin does not support raise()
|
||||
QWARN : vdi::MainWindowTest::slowAuthenticationDoesNotOverlap() This plugin does not support raise()
|
||||
QINFO : vdi::MainWindowTest::slowAuthenticationDoesNotOverlap() vdi_device_auth result=ready
|
||||
QWARN : vdi::MainWindowTest::slowAuthenticationDoesNotOverlap() This plugin does not support propagateSizeHints()
|
||||
PASS : vdi::MainWindowTest::slowAuthenticationDoesNotOverlap()
|
||||
QWARN : vdi::MainWindowTest::invalidConfigurationNeverShowsLogin() This plugin does not support propagateSizeHints()
|
||||
QWARN : vdi::MainWindowTest::invalidConfigurationNeverShowsLogin() This plugin does not support raise()
|
||||
QWARN : vdi::MainWindowTest::invalidConfigurationNeverShowsLogin() This plugin does not support raise()
|
||||
QWARN : vdi::MainWindowTest::invalidConfigurationNeverShowsLogin() This plugin does not support raise()
|
||||
QWARN : vdi::MainWindowTest::invalidConfigurationNeverShowsLogin() This plugin does not support raise()
|
||||
QWARN : vdi::MainWindowTest::invalidConfigurationNeverShowsLogin() vdi_device_auth result=waiting retry_ms= 30
|
||||
PASS : vdi::MainWindowTest::invalidConfigurationNeverShowsLogin()
|
||||
QWARN : vdi::MainWindowTest::localModeStillLoadsDesktops() This plugin does not support propagateSizeHints()
|
||||
QWARN : vdi::MainWindowTest::localModeStillLoadsDesktops() This plugin does not support raise()
|
||||
QWARN : vdi::MainWindowTest::localModeStillLoadsDesktops() This plugin does not support raise()
|
||||
QWARN : vdi::MainWindowTest::localModeStillLoadsDesktops() This plugin does not support raise()
|
||||
QWARN : vdi::MainWindowTest::localModeStillLoadsDesktops() This plugin does not support raise()
|
||||
QINFO : vdi::MainWindowTest::localModeStillLoadsDesktops() vdi_device_auth result=ready
|
||||
PASS : vdi::MainWindowTest::localModeStillLoadsDesktops()
|
||||
PASS : vdi::MainWindowTest::cleanupTestCase()
|
||||
Totals: 7 passed, 0 failed, 0 skipped, 0 blacklisted, 4104ms
|
||||
********* Finished testing of vdi::MainWindowTest *********
|
||||
<end of output>
|
||||
Test time = 4.19 sec
|
||||
----------------------------------------------------------
|
||||
Test Passed.
|
||||
"main-window-boot" end time: Nov 10 09:28 CST
|
||||
"main-window-boot" time elapsed: 00:00:04
|
||||
----------------------------------------------------------
|
||||
|
||||
End testing: Nov 10 09:28 CST
|
||||
@@ -0,0 +1,4 @@
|
||||
[1/6] Automatic MOC for target kiosk-shell
|
||||
[2/4] Automatic MOC for target test-main-window
|
||||
9dba9c66092aa9ccf67477b305aaefe09f52eabb8c6b30dbbcbb1ce43dc7a6a6 /home/armbian/vdi-terminal/bin/kiosk-shell
|
||||
old_kiosk_pid=1789
|
||||
@@ -0,0 +1,12 @@
|
||||
--- Current kiosk ---
|
||||
PID PPID COMMAND
|
||||
12913 12912 /home/armbian/vdi-terminal/bin/kiosk-shell
|
||||
DESKTOP_SESSION=vdi-kiosk
|
||||
DISPLAY=:0
|
||||
9dba9c66092aa9ccf67477b305aaefe09f52eabb8c6b30dbbcbb1ce43dc7a6a6 /home/armbian/vdi-terminal/bin/kiosk-shell
|
||||
--- Authentication ---
|
||||
vdi_device_auth result=ready
|
||||
--- No host desktop processes ---
|
||||
--- Boot ID unchanged ---
|
||||
7ca3f9d2-9316-45cd-a490-7fc5c3db8ec4
|
||||
{"http_status": 200, "authorized_desktops": [{"name": "Ubuntu", "fps": 45, "width": 2560, "height": 1440}, {"name": "Windows 10", "fps": 45, "width": 2560, "height": 1440}, {"name": "麒麟", "fps": 30, "width": 2560, "height": 1440}], "identity_file_mode": "0o600"}
|
||||
@@ -0,0 +1,32 @@
|
||||
{
|
||||
"date": "2026-11-10",
|
||||
"cause": "A failed one-shot device authentication transitioned DESKTOP_LIST to CONFIG and had no authentication retry; the first underlying network/TLS/HTTP failure was not logged.",
|
||||
"changes": [
|
||||
"Stay on desktop selection for authentication failure",
|
||||
"Retry after completion with 2/4/8/16/30 second backoff",
|
||||
"Do not load local authorization or request tickets before authentication",
|
||||
"Log authentication HTTP status and network error code without credentials"
|
||||
],
|
||||
"ctest_groups_passed": 4,
|
||||
"new_regression_scenarios": [
|
||||
"offline startup and recovery without restart",
|
||||
"HTTP 403 followed by authorization recovery",
|
||||
"slow authentication does not overlap",
|
||||
"synchronous invalid CA configuration stays on selection",
|
||||
"local POC mode still loads desktops"
|
||||
],
|
||||
"deployed_kiosk_sha256": "9dba9c66092aa9ccf67477b305aaefe09f52eabb8c6b30dbbcbb1ce43dc7a6a6",
|
||||
"previous_kiosk_sha256": "2cca9d2d183c2f34f0f6172db207649decb2799414f9443043d175bbb19d33a1",
|
||||
"backup": "/home/armbian/vdi-terminal/backups/boot-device-auth-20261110/",
|
||||
"live_checks": {
|
||||
"device_auth": "ready",
|
||||
"authorized_desktops_http": 200,
|
||||
"authorized_desktops_count": 3,
|
||||
"session": "vdi-kiosk",
|
||||
"boot_id": "7ca3f9d2-9316-45cd-a490-7fc5c3db8ec4",
|
||||
"kernel_rebooted": false,
|
||||
"host_desktop_processes": false,
|
||||
"selection_screenshot": "selection-page.png"
|
||||
},
|
||||
"power_cycle_validation": "Not performed; recovery scenarios used isolated HTTPS test platform on the box."
|
||||
}
|
||||
|
After Width: | Height: | Size: 47 KiB |
@@ -0,0 +1,13 @@
|
||||
{
|
||||
"checkedAt": "2026-11-10T02:36:12.594Z",
|
||||
"realAPI": true,
|
||||
"themes": [
|
||||
"dark",
|
||||
"light"
|
||||
],
|
||||
"mobileWidth": 390,
|
||||
"createAndOwnPasswordDialogsCancelled": true,
|
||||
"pageErrors": [],
|
||||
"failedResponses": [],
|
||||
"mutations": []
|
||||
}
|
||||
|
After Width: | Height: | Size: 81 KiB |
|
After Width: | Height: | Size: 89 KiB |
|
After Width: | Height: | Size: 45 KiB |
|
After Width: | Height: | Size: 78 KiB |
|
After Width: | Height: | Size: 79 KiB |
|
After Width: | Height: | Size: 41 KiB |
|
After Width: | Height: | Size: 83 KiB |
|
After Width: | Height: | Size: 35 KiB |
@@ -0,0 +1,149 @@
|
||||
{
|
||||
"checkedAt": "2026-11-10T10:35:19.033192+08:00",
|
||||
"realAPI": true,
|
||||
"checks": [
|
||||
{
|
||||
"path": "/healthz",
|
||||
"status": 200
|
||||
},
|
||||
{
|
||||
"path": "/api/v1/auth/login",
|
||||
"status": 200
|
||||
},
|
||||
{
|
||||
"path": "/api/v1/administrators",
|
||||
"status": 200
|
||||
},
|
||||
{
|
||||
"path": "/api/v1/administrators",
|
||||
"status": 201
|
||||
},
|
||||
{
|
||||
"path": "/api/v1/auth/login",
|
||||
"status": 200
|
||||
},
|
||||
{
|
||||
"path": "/api/v1/administrators",
|
||||
"status": 403
|
||||
},
|
||||
{
|
||||
"path": "/api/v1/administrators/adm_069fc9f84da08f3593dccdfb4e6b2eab",
|
||||
"status": 200
|
||||
},
|
||||
{
|
||||
"path": "/api/v1/auth/me",
|
||||
"status": 401
|
||||
},
|
||||
{
|
||||
"path": "/api/v1/auth/login",
|
||||
"status": 200
|
||||
},
|
||||
{
|
||||
"path": "/api/v1/administrators/adm_069fc9f84da08f3593dccdfb4e6b2eab/password",
|
||||
"status": 204
|
||||
},
|
||||
{
|
||||
"path": "/api/v1/auth/me",
|
||||
"status": 401
|
||||
},
|
||||
{
|
||||
"path": "/api/v1/auth/login",
|
||||
"status": 401
|
||||
},
|
||||
{
|
||||
"path": "/api/v1/auth/login",
|
||||
"status": 200
|
||||
},
|
||||
{
|
||||
"path": "/api/v1/administrators/adm_069fc9f84da08f3593dccdfb4e6b2eab",
|
||||
"status": 200
|
||||
},
|
||||
{
|
||||
"path": "/api/v1/auth/me",
|
||||
"status": 401
|
||||
},
|
||||
{
|
||||
"path": "/api/v1/auth/login",
|
||||
"status": 401
|
||||
},
|
||||
{
|
||||
"path": "/api/v1/administrators/adm_069fc9f84da08f3593dccdfb4e6b2eab",
|
||||
"status": 200
|
||||
},
|
||||
{
|
||||
"path": "/api/v1/auth/login",
|
||||
"status": 200
|
||||
},
|
||||
{
|
||||
"path": "/api/v1/auth/login",
|
||||
"status": 200
|
||||
},
|
||||
{
|
||||
"path": "/api/v1/auth/password",
|
||||
"status": 400
|
||||
},
|
||||
{
|
||||
"path": "/api/v1/auth/me",
|
||||
"status": 200
|
||||
},
|
||||
{
|
||||
"path": "/api/v1/auth/password",
|
||||
"status": 204
|
||||
},
|
||||
{
|
||||
"path": "/api/v1/auth/me",
|
||||
"status": 401
|
||||
},
|
||||
{
|
||||
"path": "/api/v1/auth/me",
|
||||
"status": 401
|
||||
},
|
||||
{
|
||||
"path": "/api/v1/auth/login",
|
||||
"status": 401
|
||||
},
|
||||
{
|
||||
"path": "/api/v1/auth/login",
|
||||
"status": 200
|
||||
},
|
||||
{
|
||||
"path": "/api/v1/auth/logout",
|
||||
"status": 204
|
||||
},
|
||||
{
|
||||
"path": "/api/v1/administrators/adm_069fc9f84da08f3593dccdfb4e6b2eab",
|
||||
"status": 200
|
||||
},
|
||||
{
|
||||
"path": "/api/v1/auth/logout",
|
||||
"status": 204
|
||||
},
|
||||
{
|
||||
"path": "/api/v1/auth/login",
|
||||
"status": 200
|
||||
},
|
||||
{
|
||||
"path": "/api/v1/desktops",
|
||||
"status": 200
|
||||
},
|
||||
{
|
||||
"path": "/api/v1/terminals",
|
||||
"status": 200
|
||||
},
|
||||
{
|
||||
"path": "/api/v1/auth/logout",
|
||||
"status": 204
|
||||
}
|
||||
],
|
||||
"temporaryAccountRemoved": true,
|
||||
"originalAdministratorAndPasswordUnchanged": true,
|
||||
"desktopConfigurationAndBindingsUnchanged": true,
|
||||
"managedVMIDs": [
|
||||
100,
|
||||
101,
|
||||
102
|
||||
],
|
||||
"allVMsRunning": true,
|
||||
"onlineTerminals": 1,
|
||||
"vmMutationsPerformed": false
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
{
|
||||
"time": "2026-11-10T08:42:10.235Z",
|
||||
"themes": [
|
||||
"dark",
|
||||
"light"
|
||||
],
|
||||
"viewportWidths": [
|
||||
1440,
|
||||
390
|
||||
],
|
||||
"scriptErrors": [],
|
||||
"failedResponses": [],
|
||||
"blockedWrites": [],
|
||||
"readOnlyPreflights": 2,
|
||||
"batchSubmissions": 0,
|
||||
"powerActions": 0,
|
||||
"confirmationCancelled": true,
|
||||
"emptyHistoryVerified": true,
|
||||
"screenshots": 7
|
||||
}
|
||||
@@ -0,0 +1,19 @@
|
||||
{
|
||||
"date": "2026-11-10",
|
||||
"goFullSuite": "passed; dedicated isolated PostgreSQL, local HTTP PVE fixture",
|
||||
"goVet": "passed",
|
||||
"eslint": "passed",
|
||||
"typecheck": "passed",
|
||||
"vitestPassed": 3,
|
||||
"productionBuild": "passed",
|
||||
"dockerBuildAndDeploy": "passed",
|
||||
"playwrightPassed": 45,
|
||||
"playwrightFailed": 0,
|
||||
"livePowerWrites": 0,
|
||||
"livePreflightActions": [
|
||||
"start",
|
||||
"shutdown",
|
||||
"reboot"
|
||||
],
|
||||
"liveBusinessSnapshotUnchanged": true
|
||||
}
|
||||
|
After Width: | Height: | Size: 95 KiB |
|
After Width: | Height: | Size: 127 KiB |
|
After Width: | Height: | Size: 108 KiB |
|
After Width: | Height: | Size: 141 KiB |
|
After Width: | Height: | Size: 126 KiB |
|
After Width: | Height: | Size: 106 KiB |
|
After Width: | Height: | Size: 110 KiB |
|
After Width: | Height: | Size: 139 KiB |
|
After Width: | Height: | Size: 162 KiB |
|
After Width: | Height: | Size: 164 KiB |
@@ -0,0 +1,159 @@
|
||||
{
|
||||
"time": "2026-11-10T08:41:51.709569+00:00",
|
||||
"scope": "live read-only preflight; power writes tested only with local PVE HTTP fixture and isolated PostgreSQL",
|
||||
"powerWrites": 0,
|
||||
"snapshotWrites": 0,
|
||||
"hardwareWrites": 0,
|
||||
"cloneRequests": 0,
|
||||
"checks": [
|
||||
{
|
||||
"action": "start",
|
||||
"eligibleCount": 0,
|
||||
"skippedCount": 3,
|
||||
"expiresAt": "2026-11-10T08:46:52.12093709Z",
|
||||
"items": [
|
||||
{
|
||||
"desktopId": "desk_29cf3c79d9fc1b4a25e1bfe55c5c943f",
|
||||
"name": "Ubuntu",
|
||||
"vmid": 102,
|
||||
"powerState": "running",
|
||||
"available": false,
|
||||
"code": "power_mismatch",
|
||||
"message": "当前电源状态不适用此操作"
|
||||
},
|
||||
{
|
||||
"desktopId": "desk_38010c040399376117ea116029767c25",
|
||||
"name": "Windows 10",
|
||||
"vmid": 100,
|
||||
"powerState": "running",
|
||||
"available": false,
|
||||
"code": "power_mismatch",
|
||||
"message": "当前电源状态不适用此操作"
|
||||
},
|
||||
{
|
||||
"desktopId": "desk_bbec6e55af36b91f042f66df80902007",
|
||||
"name": "麒麟",
|
||||
"vmid": 101,
|
||||
"powerState": "running",
|
||||
"available": false,
|
||||
"code": "power_mismatch",
|
||||
"message": "当前电源状态不适用此操作"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"action": "shutdown",
|
||||
"eligibleCount": 3,
|
||||
"skippedCount": 0,
|
||||
"expiresAt": "2026-11-10T08:47:05.604010139Z",
|
||||
"items": [
|
||||
{
|
||||
"desktopId": "desk_29cf3c79d9fc1b4a25e1bfe55c5c943f",
|
||||
"name": "Ubuntu",
|
||||
"vmid": 102,
|
||||
"powerState": "running",
|
||||
"available": true,
|
||||
"code": "ready",
|
||||
"message": "可提交,执行前将再次核对"
|
||||
},
|
||||
{
|
||||
"desktopId": "desk_38010c040399376117ea116029767c25",
|
||||
"name": "Windows 10",
|
||||
"vmid": 100,
|
||||
"powerState": "running",
|
||||
"available": true,
|
||||
"code": "ready",
|
||||
"message": "可提交,执行前将再次核对"
|
||||
},
|
||||
{
|
||||
"desktopId": "desk_bbec6e55af36b91f042f66df80902007",
|
||||
"name": "麒麟",
|
||||
"vmid": 101,
|
||||
"powerState": "running",
|
||||
"available": true,
|
||||
"code": "ready",
|
||||
"message": "可提交,执行前将再次核对"
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"action": "reboot",
|
||||
"eligibleCount": 3,
|
||||
"skippedCount": 0,
|
||||
"expiresAt": "2026-11-10T08:47:05.741115326Z",
|
||||
"items": [
|
||||
{
|
||||
"desktopId": "desk_29cf3c79d9fc1b4a25e1bfe55c5c943f",
|
||||
"name": "Ubuntu",
|
||||
"vmid": 102,
|
||||
"powerState": "running",
|
||||
"available": true,
|
||||
"code": "ready",
|
||||
"message": "可提交,执行前将再次核对"
|
||||
},
|
||||
{
|
||||
"desktopId": "desk_38010c040399376117ea116029767c25",
|
||||
"name": "Windows 10",
|
||||
"vmid": 100,
|
||||
"powerState": "running",
|
||||
"available": true,
|
||||
"code": "ready",
|
||||
"message": "可提交,执行前将再次核对"
|
||||
},
|
||||
{
|
||||
"desktopId": "desk_bbec6e55af36b91f042f66df80902007",
|
||||
"name": "麒麟",
|
||||
"vmid": 101,
|
||||
"powerState": "running",
|
||||
"available": true,
|
||||
"code": "ready",
|
||||
"message": "可提交,执行前将再次核对"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"site": {
|
||||
"terminals": [
|
||||
{
|
||||
"sn": "ee621cae7199a2e9",
|
||||
"agentVersion": "qt-platform/0.3.0",
|
||||
"heartbeatAgeSeconds": 6.90757,
|
||||
"session": null
|
||||
}
|
||||
],
|
||||
"desktops": [
|
||||
{
|
||||
"vmid": 100,
|
||||
"powerState": "running"
|
||||
},
|
||||
{
|
||||
"vmid": 101,
|
||||
"powerState": "running"
|
||||
},
|
||||
{
|
||||
"vmid": 102,
|
||||
"powerState": "running"
|
||||
}
|
||||
],
|
||||
"batchCount": 0,
|
||||
"batchTaskCount": 0,
|
||||
"tasks": 7,
|
||||
"snapshots": 0
|
||||
},
|
||||
"businessSnapshotUnchanged": true,
|
||||
"deployment": {
|
||||
"time": "2026-11-10T08:38:53.386241+00:00",
|
||||
"backup": ".local/live/backups/before-batch-operations-20261110-163850.dump",
|
||||
"backupBytes": 78720,
|
||||
"oldImageTag": "before-batch-operations-20261110-163850",
|
||||
"oldImages": {
|
||||
"api": "sha256:094d38e803437d3a34041e1af36530e7f14445cd37959b6d7316dfadc3f8b062",
|
||||
"console": "sha256:3b3af4559890cbe7629abd0d029f83c59f6afc23e274b5db07ba64175ae15df0"
|
||||
},
|
||||
"deployedAt": "2026-11-10T08:44:32.256998+00:00",
|
||||
"newImages": {
|
||||
"api": "sha256:326813ba972357535d34597e3b2aa794c6d5448b48f79549fe6e0792843076e6",
|
||||
"console": "sha256:93a232b112ff021d8796e3b18780a5c6ece9e8f932a2203488c2329c13505d28"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,48 @@
|
||||
{
|
||||
"checkedAt": "2026-11-10T02:07:43.283Z",
|
||||
"realAPI": true,
|
||||
"results": [
|
||||
{
|
||||
"route": "templates",
|
||||
"theme": "dark",
|
||||
"heading": "镜像模板"
|
||||
},
|
||||
{
|
||||
"route": "pools",
|
||||
"theme": "dark",
|
||||
"heading": "桌面池"
|
||||
},
|
||||
{
|
||||
"route": "desktops",
|
||||
"theme": "dark",
|
||||
"heading": "桌面管理"
|
||||
},
|
||||
{
|
||||
"route": "tasks",
|
||||
"theme": "dark",
|
||||
"heading": "任务与审计"
|
||||
},
|
||||
{
|
||||
"route": "templates",
|
||||
"theme": "light",
|
||||
"heading": "镜像模板"
|
||||
},
|
||||
{
|
||||
"route": "pools",
|
||||
"theme": "light",
|
||||
"heading": "桌面池"
|
||||
},
|
||||
{
|
||||
"route": "desktops",
|
||||
"theme": "light",
|
||||
"heading": "桌面管理"
|
||||
},
|
||||
{
|
||||
"route": "tasks",
|
||||
"theme": "light",
|
||||
"heading": "任务与审计"
|
||||
}
|
||||
],
|
||||
"pageErrors": [],
|
||||
"failedResponses": []
|
||||
}
|
||||
|
After Width: | Height: | Size: 70 KiB |
|
After Width: | Height: | Size: 35 KiB |
|
After Width: | Height: | Size: 74 KiB |
|
After Width: | Height: | Size: 156 KiB |
|
After Width: | Height: | Size: 158 KiB |
|
After Width: | Height: | Size: 70 KiB |
|
After Width: | Height: | Size: 70 KiB |
|
After Width: | Height: | Size: 35 KiB |
|
After Width: | Height: | Size: 102 KiB |
|
After Width: | Height: | Size: 104 KiB |
|
After Width: | Height: | Size: 70 KiB |
|
After Width: | Height: | Size: 70 KiB |
|
After Width: | Height: | Size: 36 KiB |
@@ -0,0 +1,27 @@
|
||||
{
|
||||
"checkedAt": "2026-11-10T10:07:32.848271+08:00",
|
||||
"mode": "production",
|
||||
"health": "ok",
|
||||
"existingMappingsUnchanged": true,
|
||||
"managedVMIDs": [
|
||||
100,
|
||||
101,
|
||||
102
|
||||
],
|
||||
"allVMsRunning": true,
|
||||
"onlineTerminals": 1,
|
||||
"registeredTemplates": 0,
|
||||
"discoveredPVETemplates": 0,
|
||||
"storage": [
|
||||
{
|
||||
"name": "local",
|
||||
"availableGiB": 10.47
|
||||
},
|
||||
{
|
||||
"name": "local-lvm",
|
||||
"availableGiB": 7.22
|
||||
}
|
||||
],
|
||||
"poolPersistenceCheck": "create/update/empty-members/disable passed; own temporary pool removed",
|
||||
"liveVMClonePerformed": false
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"time": "2026-11-10T07:28:23.238Z",
|
||||
"themes": [
|
||||
"dark",
|
||||
"light"
|
||||
],
|
||||
"viewportWidths": [
|
||||
1440,
|
||||
390
|
||||
],
|
||||
"scriptErrors": [],
|
||||
"failedResponses": [],
|
||||
"mutations": [],
|
||||
"readOnlyInspection": true,
|
||||
"screenshots": 8
|
||||
}
|
||||
|
After Width: | Height: | Size: 74 KiB |
|
After Width: | Height: | Size: 76 KiB |
|
After Width: | Height: | Size: 97 KiB |
|
After Width: | Height: | Size: 100 KiB |
|
After Width: | Height: | Size: 97 KiB |
|
After Width: | Height: | Size: 100 KiB |
|
After Width: | Height: | Size: 109 KiB |
|
After Width: | Height: | Size: 110 KiB |
|
After Width: | Height: | Size: 113 KiB |
|
After Width: | Height: | Size: 61 KiB |
@@ -0,0 +1,90 @@
|
||||
{
|
||||
"time": "2026-11-10T07:27:26.168155+00:00",
|
||||
"vmPowerActions": 0,
|
||||
"vmHardwareWrites": 0,
|
||||
"cloneRequests": 0,
|
||||
"connection": {
|
||||
"check": true,
|
||||
"blankSecretPreserved": true,
|
||||
"encryptedAtRest": true,
|
||||
"secretOmittedFromResponse": true,
|
||||
"failedSaveKeptPriorConfig": true,
|
||||
"hotReload": true,
|
||||
"nodes": 1,
|
||||
"vms": 3
|
||||
},
|
||||
"hardwareReadOnly": [
|
||||
{
|
||||
"vmid": 102,
|
||||
"cores": 8,
|
||||
"sockets": 1,
|
||||
"memoryMiB": 6144,
|
||||
"disks": [
|
||||
{
|
||||
"key": "scsi0",
|
||||
"storage": "local",
|
||||
"sizeGiB": 50
|
||||
}
|
||||
],
|
||||
"runningModificationRejected": true
|
||||
},
|
||||
{
|
||||
"vmid": 100,
|
||||
"cores": 4,
|
||||
"sockets": 1,
|
||||
"memoryMiB": 8192,
|
||||
"disks": [
|
||||
{
|
||||
"key": "sata0",
|
||||
"storage": "local-lvm",
|
||||
"sizeGiB": 60
|
||||
}
|
||||
],
|
||||
"runningModificationRejected": true
|
||||
},
|
||||
{
|
||||
"vmid": 101,
|
||||
"cores": 2,
|
||||
"sockets": 1,
|
||||
"memoryMiB": 4096,
|
||||
"disks": [
|
||||
{
|
||||
"key": "scsi0",
|
||||
"storage": "local-lvm",
|
||||
"sizeGiB": 50
|
||||
}
|
||||
],
|
||||
"runningModificationRejected": true
|
||||
}
|
||||
],
|
||||
"siteHardwarePermissions": [
|
||||
{
|
||||
"vmid": 102,
|
||||
"cpu": false,
|
||||
"memory": false,
|
||||
"disk": false
|
||||
},
|
||||
{
|
||||
"vmid": 100,
|
||||
"cpu": false,
|
||||
"memory": false,
|
||||
"disk": false
|
||||
},
|
||||
{
|
||||
"vmid": 101,
|
||||
"cpu": false,
|
||||
"memory": false,
|
||||
"disk": false
|
||||
}
|
||||
],
|
||||
"loginLimit": {
|
||||
"temporaryAccount": true,
|
||||
"attemptsAllowed": 10,
|
||||
"attempt11Rejected": true,
|
||||
"retryAfterProvided": true,
|
||||
"forgedForwardingDidNotResetAccountBudget": true,
|
||||
"viewerCannotReadConnection": true
|
||||
},
|
||||
"temporaryAccountCleaned": true,
|
||||
"businessSnapshotUnchanged": true
|
||||
}
|
||||
|
After Width: | Height: | Size: 84 KiB |
|
After Width: | Height: | Size: 53 KiB |
@@ -0,0 +1,33 @@
|
||||
{
|
||||
"time": "2026-11-10T07:33:51.209149+00:00",
|
||||
"vmPowerActions": 0,
|
||||
"vmHardwareWrites": 0,
|
||||
"cloneRequests": 0,
|
||||
"encryptedConfigurationSurvivedRestart": true,
|
||||
"businessSnapshotUnchanged": true,
|
||||
"site": {
|
||||
"terminals": [
|
||||
{
|
||||
"sn": "ee621cae7199a2e9",
|
||||
"agentVersion": "qt-platform/0.3.0",
|
||||
"lastSeen": "2026-11-10T07:33:29.003564+00:00",
|
||||
"heartbeatAgeSeconds": 22.56868,
|
||||
"session": null
|
||||
}
|
||||
],
|
||||
"desktops": [
|
||||
{
|
||||
"vmid": 100,
|
||||
"powerState": "running"
|
||||
},
|
||||
{
|
||||
"vmid": 101,
|
||||
"powerState": "running"
|
||||
},
|
||||
{
|
||||
"vmid": 102,
|
||||
"powerState": "running"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,11 @@
|
||||
{
|
||||
"goFullSuite": "passed (dedicated vdi_configuration_test only)",
|
||||
"goVet": "passed",
|
||||
"frontendLint": "passed",
|
||||
"frontendTypes": "passed",
|
||||
"frontendUnitTests": 3,
|
||||
"browserRegressions": 23,
|
||||
"newBrowserFlows": 6,
|
||||
"dockerBuild": "passed",
|
||||
"liveVMWritesInTests": 0
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
{
|
||||
"time": "2026-11-10T09:10:36.285Z",
|
||||
"themes": [
|
||||
"dark",
|
||||
"light"
|
||||
],
|
||||
"viewportWidths": [
|
||||
1440,
|
||||
390
|
||||
],
|
||||
"scriptErrors": [],
|
||||
"failedResponses": [],
|
||||
"blockedWrites": [],
|
||||
"gpuWrites": 0,
|
||||
"powerWrites": 0,
|
||||
"verifiedGPUCount": 2,
|
||||
"windowsVMReference": 100,
|
||||
"partialCoverageShown": true,
|
||||
"screenshots": 6
|
||||
}
|
||||
@@ -0,0 +1,17 @@
|
||||
{
|
||||
"date": "2026-11-10",
|
||||
"goFullSuite": "passed; dedicated isolated PostgreSQL, local HTTP PVE fixture",
|
||||
"goVet": "passed",
|
||||
"eslint": "passed",
|
||||
"typecheck": "passed",
|
||||
"vitestPassed": 3,
|
||||
"productionBuild": "passed",
|
||||
"dockerBuildAndDeploy": "passed",
|
||||
"playwrightPassed": 51,
|
||||
"playwrightFailed": 0,
|
||||
"finalGPURecheckPassed": 6,
|
||||
"liveGPUWrites": 0,
|
||||
"livePowerWrites": 0,
|
||||
"liveBusinessSnapshotUnchanged": true,
|
||||
"liveVMConfigDigestsUnchanged": true
|
||||
}
|
||||
|
After Width: | Height: | Size: 40 KiB |
|
After Width: | Height: | Size: 79 KiB |
|
After Width: | Height: | Size: 64 KiB |
|
After Width: | Height: | Size: 92 KiB |
|
After Width: | Height: | Size: 114 KiB |
|
After Width: | Height: | Size: 120 KiB |
|
After Width: | Height: | Size: 33 KiB |
|
After Width: | Height: | Size: 101 KiB |
|
After Width: | Height: | Size: 103 KiB |
|
After Width: | Height: | Size: 82 KiB |
@@ -0,0 +1,106 @@
|
||||
{
|
||||
"time": "2026-11-10T09:10:32.890463+00:00",
|
||||
"scope": "read-only GPU and QEMU configuration inspection",
|
||||
"inventory": {
|
||||
"complete": false,
|
||||
"issues": [
|
||||
{
|
||||
"code": "custom_vm_config",
|
||||
"vmid": 100,
|
||||
"message": "虚拟机包含自定义参数或宿主脚本,额外设备引用未解析"
|
||||
}
|
||||
],
|
||||
"items": [
|
||||
{
|
||||
"id": "starhe:0000:00:02.0",
|
||||
"address": "0000:00:02.0",
|
||||
"name": "4th Gen Core Processor Integrated Graphics Controller",
|
||||
"vendor": "Intel Corporation",
|
||||
"vendorId": "0x8086",
|
||||
"deviceId": "0x0416",
|
||||
"class": "0x030000",
|
||||
"iommuGroup": 0,
|
||||
"state": "unknown",
|
||||
"references": []
|
||||
},
|
||||
{
|
||||
"id": "starhe:0000:01:00.0",
|
||||
"address": "0000:01:00.0",
|
||||
"name": "GM204M [GeForce GTX 965M]",
|
||||
"vendor": "NVIDIA Corporation",
|
||||
"vendorId": "0x10de",
|
||||
"deviceId": "0x13d9",
|
||||
"class": "0x030200",
|
||||
"iommuGroup": 2,
|
||||
"state": "referenced",
|
||||
"references": [
|
||||
{
|
||||
"vmid": 100,
|
||||
"vmName": "win10-test",
|
||||
"vmStatus": "running",
|
||||
"template": false,
|
||||
"desktopId": "desk_38010c040399376117ea116029767c25",
|
||||
"desktopName": "Windows 10",
|
||||
"slot": "hostpci0",
|
||||
"phase": "current",
|
||||
"source": "direct",
|
||||
"mapping": "",
|
||||
"mediated": false,
|
||||
"pendingRemoval": false
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"node": "starhe",
|
||||
"observedAt": "2026-11-10T09:10:32.294280849Z",
|
||||
"scannedVmCount": 3,
|
||||
"visibleVmCount": 3
|
||||
},
|
||||
"site": {
|
||||
"terminals": [
|
||||
{
|
||||
"sn": "ee621cae7199a2e9",
|
||||
"agentVersion": "qt-platform/0.3.0",
|
||||
"heartbeatAgeSeconds": 3.650522,
|
||||
"session": null
|
||||
}
|
||||
],
|
||||
"desktops": [
|
||||
{
|
||||
"vmid": 100,
|
||||
"powerState": "running"
|
||||
},
|
||||
{
|
||||
"vmid": 101,
|
||||
"powerState": "running"
|
||||
},
|
||||
{
|
||||
"vmid": 102,
|
||||
"powerState": "running"
|
||||
}
|
||||
],
|
||||
"tasks": 7,
|
||||
"snapshots": 0
|
||||
},
|
||||
"businessSnapshotUnchanged": true,
|
||||
"vmConfigurationDigestsUnchanged": true,
|
||||
"gpuBindingWrites": 0,
|
||||
"powerWrites": 0,
|
||||
"snapshotWrites": 0,
|
||||
"diskWrites": 0,
|
||||
"deployment": {
|
||||
"time": "2026-11-10T09:02:09.266736+00:00",
|
||||
"backup": ".local/live/backups/before-gpu-inventory-20261110-170206.dump",
|
||||
"backupBytes": 84736,
|
||||
"oldImageTag": "before-gpu-inventory-20261110-170206",
|
||||
"oldImages": {
|
||||
"api": "sha256:326813ba972357535d34597e3b2aa794c6d5448b48f79549fe6e0792843076e6",
|
||||
"console": "sha256:93a232b112ff021d8796e3b18780a5c6ece9e8f932a2203488c2329c13505d28"
|
||||
},
|
||||
"deploymentVerifiedAt": "2026-11-10T09:10:50.372617+00:00",
|
||||
"newImages": {
|
||||
"api": "sha256:0c33d1618dc5f6ed5dd0afa0d5876f2fc22eaf94508815b90029461b77e20259",
|
||||
"console": "sha256:71d16b9761d49a91a117d8a65b756a1089fec15dfbfc3f2607a0274cc7afd73c"
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,329 @@
|
||||
{
|
||||
"config": {
|
||||
"argv": [
|
||||
"D:\\Nodejs\\node.exe",
|
||||
"D:\\DAIMA\\vdi-cloud\\console\\node_modules\\@playwright\\test\\cli.js",
|
||||
"test",
|
||||
"e2e/gpus.spec.ts",
|
||||
"--reporter=list,json"
|
||||
],
|
||||
"configFile": "D:\\DAIMA\\vdi-cloud\\console\\playwright.config.ts",
|
||||
"rootDir": "D:/DAIMA/vdi-cloud/console/e2e",
|
||||
"failOnFlakyTests": false,
|
||||
"forbidOnly": false,
|
||||
"fullyParallel": false,
|
||||
"globalSetup": null,
|
||||
"globalTeardown": null,
|
||||
"globalTimeout": 0,
|
||||
"grep": {},
|
||||
"grepInvert": null,
|
||||
"maxFailures": 0,
|
||||
"metadata": {
|
||||
"actualWorkers": 1
|
||||
},
|
||||
"preserveOutput": "always",
|
||||
"projects": [
|
||||
{
|
||||
"outputDir": "D:/DAIMA/vdi-cloud/console/test-results",
|
||||
"repeatEach": 1,
|
||||
"retries": 0,
|
||||
"metadata": {
|
||||
"actualWorkers": 1
|
||||
},
|
||||
"id": "chromium",
|
||||
"name": "chromium",
|
||||
"testDir": "D:/DAIMA/vdi-cloud/console/e2e",
|
||||
"testIgnore": [
|
||||
"**/live.spec.ts"
|
||||
],
|
||||
"testMatch": [
|
||||
"**/*.@(spec|test).?(c|m)[jt]s?(x)"
|
||||
],
|
||||
"timeout": 30000
|
||||
}
|
||||
],
|
||||
"filteredProjects": [
|
||||
{
|
||||
"grep": {},
|
||||
"grepInvert": null,
|
||||
"outputDir": "D:\\DAIMA\\vdi-cloud\\console\\test-results",
|
||||
"repeatEach": 1,
|
||||
"retries": 0,
|
||||
"metadata": {
|
||||
"actualWorkers": 1
|
||||
},
|
||||
"name": "chromium",
|
||||
"testDir": "D:\\DAIMA\\vdi-cloud\\console\\e2e",
|
||||
"snapshotDir": "D:\\DAIMA\\vdi-cloud\\console\\e2e",
|
||||
"testIgnore": "**/live.spec.ts",
|
||||
"testMatch": "**/*.@(spec|test).?(c|m)[jt]s?(x)",
|
||||
"timeout": 30000,
|
||||
"use": {
|
||||
"baseURL": "http://127.0.0.1:5183",
|
||||
"trace": "retain-on-failure",
|
||||
"screenshot": "only-on-failure",
|
||||
"userAgent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/158.0.8127.18 Safari/537.36",
|
||||
"viewport": {
|
||||
"width": 1280,
|
||||
"height": 720
|
||||
},
|
||||
"screen": {
|
||||
"width": 1920,
|
||||
"height": 1080
|
||||
},
|
||||
"deviceScaleFactor": 1,
|
||||
"isMobile": false,
|
||||
"hasTouch": false,
|
||||
"defaultBrowserType": "chromium",
|
||||
"channel": "msedge"
|
||||
},
|
||||
"dependencies": [],
|
||||
"ignoreSnapshots": false,
|
||||
"__projectId": "chromium"
|
||||
}
|
||||
],
|
||||
"quiet": false,
|
||||
"reporter": [
|
||||
[
|
||||
"list"
|
||||
],
|
||||
[
|
||||
"json"
|
||||
]
|
||||
],
|
||||
"reportSlowTests": {
|
||||
"max": 5,
|
||||
"threshold": 300000
|
||||
},
|
||||
"shard": null,
|
||||
"tags": [],
|
||||
"updateSnapshots": "default",
|
||||
"updateSourceMethod": "patch",
|
||||
"version": "1.65.0",
|
||||
"workers": 1,
|
||||
"webServer": null
|
||||
},
|
||||
"suites": [
|
||||
{
|
||||
"title": "gpus.spec.ts",
|
||||
"file": "gpus.spec.ts",
|
||||
"column": 0,
|
||||
"line": 0,
|
||||
"specs": [
|
||||
{
|
||||
"title": "只读角色可查显卡并筛选配置引用,IOMMU 0 保留",
|
||||
"ok": true,
|
||||
"tags": [],
|
||||
"tests": [
|
||||
{
|
||||
"timeout": 30000,
|
||||
"annotations": [],
|
||||
"expectedStatus": "passed",
|
||||
"projectId": "chromium",
|
||||
"projectName": "chromium",
|
||||
"results": [
|
||||
{
|
||||
"workerIndex": 0,
|
||||
"parallelIndex": 0,
|
||||
"status": "passed",
|
||||
"duration": 2221,
|
||||
"errors": [],
|
||||
"stdout": [],
|
||||
"stderr": [],
|
||||
"retry": 0,
|
||||
"startTime": "2026-11-10T09:09:05.718Z",
|
||||
"annotations": [],
|
||||
"attachments": []
|
||||
}
|
||||
],
|
||||
"status": "expected"
|
||||
}
|
||||
],
|
||||
"id": "339e1869555d4df5a70f-908a22891ab6162efd96",
|
||||
"file": "gpus.spec.ts",
|
||||
"line": 31,
|
||||
"column": 1
|
||||
},
|
||||
{
|
||||
"title": "详情区分当前与待应用、待移除、模板及未纳管的映射引用",
|
||||
"ok": true,
|
||||
"tags": [],
|
||||
"tests": [
|
||||
{
|
||||
"timeout": 30000,
|
||||
"annotations": [],
|
||||
"expectedStatus": "passed",
|
||||
"projectId": "chromium",
|
||||
"projectName": "chromium",
|
||||
"results": [
|
||||
{
|
||||
"workerIndex": 0,
|
||||
"parallelIndex": 0,
|
||||
"status": "passed",
|
||||
"duration": 1815,
|
||||
"errors": [],
|
||||
"stdout": [],
|
||||
"stderr": [],
|
||||
"retry": 0,
|
||||
"startTime": "2026-11-10T09:09:08.689Z",
|
||||
"annotations": [],
|
||||
"attachments": []
|
||||
}
|
||||
],
|
||||
"status": "expected"
|
||||
}
|
||||
],
|
||||
"id": "339e1869555d4df5a70f-033b538c63d47607bcb8",
|
||||
"file": "gpus.spec.ts",
|
||||
"line": 44,
|
||||
"column": 1
|
||||
},
|
||||
{
|
||||
"title": "配置读取不完整显示待核查,不宣称显卡可用",
|
||||
"ok": true,
|
||||
"tags": [],
|
||||
"tests": [
|
||||
{
|
||||
"timeout": 30000,
|
||||
"annotations": [],
|
||||
"expectedStatus": "passed",
|
||||
"projectId": "chromium",
|
||||
"projectName": "chromium",
|
||||
"results": [
|
||||
{
|
||||
"workerIndex": 0,
|
||||
"parallelIndex": 0,
|
||||
"status": "passed",
|
||||
"duration": 1589,
|
||||
"errors": [],
|
||||
"stdout": [],
|
||||
"stderr": [],
|
||||
"retry": 0,
|
||||
"startTime": "2026-11-10T09:09:10.527Z",
|
||||
"annotations": [],
|
||||
"attachments": []
|
||||
}
|
||||
],
|
||||
"status": "expected"
|
||||
}
|
||||
],
|
||||
"id": "339e1869555d4df5a70f-d14ca93dfc0e7b05ba08",
|
||||
"file": "gpus.spec.ts",
|
||||
"line": 54,
|
||||
"column": 1
|
||||
},
|
||||
{
|
||||
"title": "PCI 权限错误提供重试,数据过期有明确提示",
|
||||
"ok": true,
|
||||
"tags": [],
|
||||
"tests": [
|
||||
{
|
||||
"timeout": 30000,
|
||||
"annotations": [],
|
||||
"expectedStatus": "passed",
|
||||
"projectId": "chromium",
|
||||
"projectName": "chromium",
|
||||
"results": [
|
||||
{
|
||||
"workerIndex": 0,
|
||||
"parallelIndex": 0,
|
||||
"status": "passed",
|
||||
"duration": 1480,
|
||||
"errors": [],
|
||||
"stdout": [],
|
||||
"stderr": [],
|
||||
"retry": 0,
|
||||
"startTime": "2026-11-10T09:09:12.140Z",
|
||||
"annotations": [],
|
||||
"attachments": []
|
||||
}
|
||||
],
|
||||
"status": "expected"
|
||||
}
|
||||
],
|
||||
"id": "339e1869555d4df5a70f-52cbecb3930b42eec753",
|
||||
"file": "gpus.spec.ts",
|
||||
"line": 62,
|
||||
"column": 1
|
||||
},
|
||||
{
|
||||
"title": "浅色窄屏清单和详情可读且页面不横向溢出",
|
||||
"ok": true,
|
||||
"tags": [],
|
||||
"tests": [
|
||||
{
|
||||
"timeout": 30000,
|
||||
"annotations": [],
|
||||
"expectedStatus": "passed",
|
||||
"projectId": "chromium",
|
||||
"projectName": "chromium",
|
||||
"results": [
|
||||
{
|
||||
"workerIndex": 0,
|
||||
"parallelIndex": 0,
|
||||
"status": "passed",
|
||||
"duration": 2009,
|
||||
"errors": [],
|
||||
"stdout": [],
|
||||
"stderr": [],
|
||||
"retry": 0,
|
||||
"startTime": "2026-11-10T09:09:13.640Z",
|
||||
"annotations": [],
|
||||
"attachments": []
|
||||
}
|
||||
],
|
||||
"status": "expected"
|
||||
}
|
||||
],
|
||||
"id": "339e1869555d4df5a70f-f676b76941e652a2209b",
|
||||
"file": "gpus.spec.ts",
|
||||
"line": 69,
|
||||
"column": 1
|
||||
},
|
||||
{
|
||||
"title": "空节点清单与尚未接入显示真实空态",
|
||||
"ok": true,
|
||||
"tags": [],
|
||||
"tests": [
|
||||
{
|
||||
"timeout": 30000,
|
||||
"annotations": [],
|
||||
"expectedStatus": "passed",
|
||||
"projectId": "chromium",
|
||||
"projectName": "chromium",
|
||||
"results": [
|
||||
{
|
||||
"workerIndex": 0,
|
||||
"parallelIndex": 0,
|
||||
"status": "passed",
|
||||
"duration": 2113,
|
||||
"errors": [],
|
||||
"stdout": [],
|
||||
"stderr": [],
|
||||
"retry": 0,
|
||||
"startTime": "2026-11-10T09:09:15.677Z",
|
||||
"annotations": [],
|
||||
"attachments": []
|
||||
}
|
||||
],
|
||||
"status": "expected"
|
||||
}
|
||||
],
|
||||
"id": "339e1869555d4df5a70f-1db16c0f30c2de9beb2d",
|
||||
"file": "gpus.spec.ts",
|
||||
"line": 80,
|
||||
"column": 1
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"errors": [],
|
||||
"stats": {
|
||||
"startTime": "2026-11-10T09:09:04.608Z",
|
||||
"duration": 14081.699,
|
||||
"expected": 6,
|
||||
"skipped": 0,
|
||||
"unexpected": 0,
|
||||
"flaky": 0
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
{
|
||||
"checkedAt": "2026-11-10T03:09:46.802Z",
|
||||
"realAPI": true,
|
||||
"themes": [
|
||||
"dark",
|
||||
"light"
|
||||
],
|
||||
"mobileWidth": 390,
|
||||
"terminalAndUserEditDialogsCancelled": true,
|
||||
"batchDialogCancelled": true,
|
||||
"pageErrors": [],
|
||||
"failedResponses": [],
|
||||
"mutations": []
|
||||
}
|
||||
|
After Width: | Height: | Size: 45 KiB |
|
After Width: | Height: | Size: 96 KiB |
|
After Width: | Height: | Size: 36 KiB |
|
After Width: | Height: | Size: 74 KiB |
|
After Width: | Height: | Size: 74 KiB |
|
After Width: | Height: | Size: 77 KiB |
|
After Width: | Height: | Size: 79 KiB |
|
After Width: | Height: | Size: 91 KiB |
|
After Width: | Height: | Size: 38 KiB |
|
After Width: | Height: | Size: 94 KiB |
|
After Width: | Height: | Size: 37 KiB |
|
After Width: | Height: | Size: 67 KiB |
|
After Width: | Height: | Size: 67 KiB |
|
After Width: | Height: | Size: 82 KiB |
|
After Width: | Height: | Size: 71 KiB |
|
After Width: | Height: | Size: 73 KiB |
@@ -0,0 +1,208 @@
|
||||
{
|
||||
"checkedAt": "2026-11-10T11:09:02.738808+08:00",
|
||||
"realAPI": true,
|
||||
"checks": [
|
||||
{
|
||||
"path": "/healthz",
|
||||
"status": 200
|
||||
},
|
||||
{
|
||||
"path": "/api/v1/desktops",
|
||||
"status": 200
|
||||
},
|
||||
{
|
||||
"path": "/api/v1/terminals",
|
||||
"status": 201
|
||||
},
|
||||
{
|
||||
"path": "/api/v1/terminal/register",
|
||||
"status": 200
|
||||
},
|
||||
{
|
||||
"path": "/api/v1/terminals",
|
||||
"status": 201
|
||||
},
|
||||
{
|
||||
"path": "/api/v1/terminal/register",
|
||||
"status": 200
|
||||
},
|
||||
{
|
||||
"path": "/api/v1/users",
|
||||
"status": 201
|
||||
},
|
||||
{
|
||||
"path": "/api/v1/users",
|
||||
"status": 201
|
||||
},
|
||||
{
|
||||
"path": "/api/v1/terminals/term_18ea2ec00829ebe8876a29e204383145",
|
||||
"status": 200
|
||||
},
|
||||
{
|
||||
"path": "/api/v1/terminals",
|
||||
"status": 200
|
||||
},
|
||||
{
|
||||
"path": "/api/v1/users/user_1ad489582c47eb1ce87e4c03fe761dc5/bindings",
|
||||
"status": 200
|
||||
},
|
||||
{
|
||||
"path": "/api/v1/terminal/connect-ticket",
|
||||
"status": 201
|
||||
},
|
||||
{
|
||||
"path": "/api/v1/users/user_1ad489582c47eb1ce87e4c03fe761dc5",
|
||||
"status": 200
|
||||
},
|
||||
{
|
||||
"path": "/api/v1/terminal/desktops",
|
||||
"status": 200
|
||||
},
|
||||
{
|
||||
"path": "/api/v1/terminal/connect-ticket",
|
||||
"status": 403
|
||||
},
|
||||
{
|
||||
"path": "/api/v1/users/user_1ad489582c47eb1ce87e4c03fe761dc5",
|
||||
"status": 200
|
||||
},
|
||||
{
|
||||
"path": "/api/v1/terminal/connect-ticket/consume",
|
||||
"status": 401
|
||||
},
|
||||
{
|
||||
"path": "/api/v1/users/batch-bindings",
|
||||
"status": 200
|
||||
},
|
||||
{
|
||||
"path": "/api/v1/terminal/desktops",
|
||||
"status": 200
|
||||
},
|
||||
{
|
||||
"path": "/api/v1/users/batch-bindings",
|
||||
"status": 200
|
||||
},
|
||||
{
|
||||
"path": "/api/v1/terminal/desktops",
|
||||
"status": 200
|
||||
},
|
||||
{
|
||||
"path": "/api/v1/users/user_1ad489582c47eb1ce87e4c03fe761dc5/bindings",
|
||||
"status": 200
|
||||
},
|
||||
{
|
||||
"path": "/api/v1/terminal/desktops",
|
||||
"status": 200
|
||||
},
|
||||
{
|
||||
"path": "/api/v1/terminal/desktops",
|
||||
"status": 200
|
||||
},
|
||||
{
|
||||
"path": "/api/v1/users/user_4761a0e23465c4c83b712d80577af2c9/bindings",
|
||||
"status": 409
|
||||
},
|
||||
{
|
||||
"path": "/api/v1/terminals/term_18ea2ec00829ebe8876a29e204383145/disable",
|
||||
"status": 200
|
||||
},
|
||||
{
|
||||
"path": "/api/v1/terminal/heartbeat",
|
||||
"status": 401
|
||||
},
|
||||
{
|
||||
"path": "/api/v1/terminal/config",
|
||||
"status": 401
|
||||
},
|
||||
{
|
||||
"path": "/api/v1/terminal/commands",
|
||||
"status": 401
|
||||
},
|
||||
{
|
||||
"path": "/api/v1/terminals/term_18ea2ec00829ebe8876a29e204383145/reactivate",
|
||||
"status": 200
|
||||
},
|
||||
{
|
||||
"path": "/api/v1/terminals/term_18ea2ec00829ebe8876a29e204383145/reactivate",
|
||||
"status": 200
|
||||
},
|
||||
{
|
||||
"path": "/api/v1/terminal/register",
|
||||
"status": 401
|
||||
},
|
||||
{
|
||||
"path": "/api/v1/terminal/register",
|
||||
"status": 200
|
||||
},
|
||||
{
|
||||
"path": "/api/v1/terminal/register",
|
||||
"status": 401
|
||||
},
|
||||
{
|
||||
"path": "/api/v1/terminal/config",
|
||||
"status": 200
|
||||
},
|
||||
{
|
||||
"path": "/api/v1/terminal/config",
|
||||
"status": 401
|
||||
},
|
||||
{
|
||||
"path": "/api/v1/terminals/term_18ea2ec00829ebe8876a29e204383145/disable",
|
||||
"status": 200
|
||||
},
|
||||
{
|
||||
"path": "/api/v1/terminals/term_e6d8b1bff21760de08021d8ae9b42c99/disable",
|
||||
"status": 200
|
||||
},
|
||||
{
|
||||
"path": "/api/v1/auth/logout",
|
||||
"status": 204
|
||||
},
|
||||
{
|
||||
"path": "/api/v1/terminals",
|
||||
"status": 200
|
||||
},
|
||||
{
|
||||
"path": "/api/v1/terminals",
|
||||
"status": 200
|
||||
},
|
||||
{
|
||||
"path": "/api/v1/terminals",
|
||||
"status": 200
|
||||
},
|
||||
{
|
||||
"path": "/api/v1/terminals",
|
||||
"status": 200
|
||||
},
|
||||
{
|
||||
"path": "/api/v1/terminals",
|
||||
"status": 200
|
||||
},
|
||||
{
|
||||
"path": "/api/v1/terminals",
|
||||
"status": 200
|
||||
},
|
||||
{
|
||||
"path": "/api/v1/desktops",
|
||||
"status": 200
|
||||
},
|
||||
{
|
||||
"path": "/api/v1/auth/logout",
|
||||
"status": 204
|
||||
}
|
||||
],
|
||||
"temporaryDevicesAndUsersRemoved": true,
|
||||
"originalAdministratorAndPasswordUnchanged": true,
|
||||
"originalDeviceCredentialsAndMetadataUnchanged": true,
|
||||
"desktopSettingsUsersAndBindingsUnchanged": true,
|
||||
"originalHeartbeatAdvanced": true,
|
||||
"onlineTerminals": 1,
|
||||
"managedVMIDs": [
|
||||
100,
|
||||
101,
|
||||
102
|
||||
],
|
||||
"allVMsRunning": true,
|
||||
"realVMReservationPerformed": false,
|
||||
"realVMOrDeviceCommandsSent": false
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"checkedAt": "2026-11-10T10:58:17.203679+08:00",
|
||||
"backend": "go test ./... and go vet ./... passed with dedicated disposable PostgreSQL",
|
||||
"frontend": "ESLint, TypeScript, 3 unit tests and production build passed",
|
||||
"browser": "18 fixture tests passed (lifecycle, administrators, catalog, ui)",
|
||||
"fixtureTestsSendLiveMutations": false
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
{
|
||||
"backend": "Go全量集成测试、go vet;仅使用独立临时PostgreSQL",
|
||||
"frontend": "ESLint、TypeScript、3项单元测试、生产构建",
|
||||
"browserTests": 27,
|
||||
"browserData": "API拦截测试数据,不代表现场业务资源",
|
||||
"noRealVMPowerActions": true
|
||||
}
|
||||
@@ -0,0 +1,16 @@
|
||||
{
|
||||
"time": "2026-11-10T06:33:01.774Z",
|
||||
"themes": [
|
||||
"dark",
|
||||
"light"
|
||||
],
|
||||
"viewportWidths": [
|
||||
1440,
|
||||
390
|
||||
],
|
||||
"scriptErrors": [],
|
||||
"failedResponses": [],
|
||||
"mutations": [],
|
||||
"readOnlyInspection": true,
|
||||
"screenshots": 9
|
||||
}
|
||||
|
After Width: | Height: | Size: 109 KiB |
|
After Width: | Height: | Size: 110 KiB |
|
After Width: | Height: | Size: 67 KiB |
|
After Width: | Height: | Size: 66 KiB |