From 107a6c1b0db1d872d835a1c11553fbc0790e4363 Mon Sep 17 00:00:00 2001 From: dqzboy Date: Sat, 10 May 2025 20:14:15 +0800 Subject: [PATCH] fix: compatibility layer for hubcmdui --- hubcmdui/compatibility-layer.js | 18 ++---------------- hubcmdui/routes/monitoring.js | 19 ++----------------- 2 files changed, 4 insertions(+), 33 deletions(-) diff --git a/hubcmdui/compatibility-layer.js b/hubcmdui/compatibility-layer.js index ea754f6..3c10aa7 100644 --- a/hubcmdui/compatibility-layer.js +++ b/hubcmdui/compatibility-layer.js @@ -51,23 +51,9 @@ module.exports = function(app) { app.get('/api/stopped-containers', async (req, res) => { try { logger.info('兼容层处理获取已停止容器请求'); - const { exec } = require('child_process'); - const util = require('util'); - const execPromise = util.promisify(exec); + const dockerService = require('./services/dockerService'); - const { stdout } = await execPromise('docker ps -f "status=exited" --format "{{.ID}}\\t{{.Names}}\\t{{.Image}}\\t{{.Status}}"'); - - const containers = stdout.trim().split('\n') - .filter(line => line.trim()) - .map(line => { - const [id, name, image, ...statusParts] = line.split('\t'); - return { - id: id.substring(0, 12), - name, - image, - status: statusParts.join(' ') - }; - }); + const containers = await dockerService.getStoppedContainers(); res.json(containers); } catch (err) { diff --git a/hubcmdui/routes/monitoring.js b/hubcmdui/routes/monitoring.js index cc679dc..4740bed 100644 --- a/hubcmdui/routes/monitoring.js +++ b/hubcmdui/routes/monitoring.js @@ -163,23 +163,8 @@ router.post('/test-notification', requireLogin, async (req, res) => { // 获取已停止的容器 router.get('/stopped-containers', async (req, res) => { try { - const { exec } = require('child_process'); - const util = require('util'); - const execPromise = util.promisify(exec); - - const { stdout } = await execPromise('docker ps -f "status=exited" --format "{{.ID}}\\t{{.Names}}\\t{{.Image}}\\t{{.Status}}"'); - - const containers = stdout.trim().split('\n') - .filter(line => line.trim()) - .map(line => { - const [id, name, image, ...statusParts] = line.split('\t'); - return { - id: id.substring(0, 12), - name, - image, - status: statusParts.join(' ') - }; - }); + const dockerService = require('../services/dockerService'); + const containers = await dockerService.getStoppedContainers(); res.json(containers); } catch (err) {