feat: Optimize the node to add inspection items (#9138)

This commit is contained in:
ssongliu 2025-06-17 16:04:54 +08:00 committed by GitHub
parent 00a5cc654a
commit 429e2c6cbe
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
9 changed files with 117 additions and 36 deletions

View file

@ -66,6 +66,19 @@ func ScanPort(port int) bool {
return false
}
func CheckPort(host string, port string, timeout time.Duration) bool {
target := net.JoinHostPort(host, port)
conn, err := net.DialTimeout("tcp", target, timeout)
if err != nil {
if netErr, ok := err.(net.Error); ok && netErr.Timeout() {
return false
}
return strings.Contains(err.Error(), "connection refused")
}
defer conn.Close()
return true
}
func ComparePanelVersion(version1, version2 string) bool {
if version1 == version2 {
return false

View file

@ -3378,13 +3378,22 @@ const message = {
nodeSyncHelper1: '1. Public backup account information',
nodeSyncHelper2: '2. Connection information between the main node and sub-nodes',
nodeCheck: 'Availability check',
checkSSH: 'Check node SSH connection',
checkLicense: 'Check node license status',
checkService: 'Check existing service information on node',
checkPort: 'Check node port reachability',
panelExist:
'1Panel V1 service is running on this node. Please upgrade to V2 using the migration script before adding.',
coreExist: 'This node has already been enabled as the main node and cannot be added as a slave node.',
'Detected that this node is running 1Panel V1 service. Please upgrade to V2 using the migration script before adding.',
coreExist: 'This node is already enabled as a master node and cannot be added as a slave node.',
agentExist:
'1panel-agent is already installed on this node. Continuing will preserve existing data and only replace the 1panel-agent service. Proceed?',
dataExist: '1Panel historical data exists on this node. Confirm to continue adding?',
'Detected that 1panel-agent is already installed on this node. Continuing will retain existing data and only replace the 1panel-agent service.',
oldDataExist:
'Detected historical 1Panel V2 data on this node. The following information will be used to overwrite current settings:',
errLicense: 'The license bound to this node is unavailable. Please check and try again!',
errNodePort:
'Node port [ {0} ] is detected as inaccessible. Please check if the firewall or security group has allowed this port.',
reinstallHelper: 'Reinstall node {0}, do you want to continue?',
unhealthyCheck: 'Abnormal Check',
fixOperation: 'Fix Operation',

View file

@ -3246,13 +3246,21 @@ const message = {
nodeSyncHelper1: '1. 公共のバックアップアカウント情報',
nodeSyncHelper2: '2. 主ノードとサブノードの接続情報',
nodeCheck: '可用性チェック',
checkSSH: 'ードSSH接続を確認',
checkLicense: 'ノードライセンス状態を確認',
checkService: 'ノードの既存サービス情報を確認',
checkPort: 'ノードポート到達性を確認',
panelExist:
'このードで1Panel V1サービスが実行中です追加する前に移行スクリプトでV2にアップグレードしてください',
coreExist: 'このノードは既にメインノードとして有効になっておりスレーブノードとして追加できません',
'このードで1Panel V1サービスが実行中です追加前に移行スクリプトでV2へアップグレードしてください',
coreExist: 'このノードはマスターノードとして有効化済みのためスレーブノードとして追加できません',
agentExist:
'このードには1panel-agentがインストール済みです続行すると既存データは保持され1panel-agentサービスのみ置き換えられます続行しますか',
dataExist: 'このードに1Panelの過去データが存在します追加を続行しますか',
errLicense: 'このノードにバインドされたライセンスが利用できません確認して再試行してください',
'このードに1panel-agentが既にインストールされています続行すると既存データを保持し1panel-agentサービスのみを置換します',
oldDataExist: 'このードに1Panel V2の過去データが検出されました以下の情報で現在の設定を上書きします:',
errLicense: 'このノードに紐づけられたライセンスが利用できません確認して再試行してください',
errNodePort:
'ノードポート[ {0} ]にアクセスできないことが検出されましたファイアウォールまたはセキュリティグループでこのポートが開放されているか確認してください',
reinstallHelper: 'ノード{0}を再インストールします続行しますか',
unhealthyCheck: '異常チェック',
fixOperation: '修正操作',

View file

@ -3189,13 +3189,22 @@ const message = {
nodeSyncHelper1: '1. 공용 백업 계정 정보',
nodeSyncHelper2: '2. 노드와 하위 노드 간의 연결 정보',
nodeCheck: '가용성 확인',
checkSSH: '노드 SSH 연결 확인',
checkLicense: '노드 라이선스 상태 확인',
checkService: '노드의 기존 서비스 정보 확인',
checkPort: '노드 포트 접근 가능 여부 확인',
panelExist:
' 노드에서 1Panel V1 서비스가 실행 중입니다. 추가하기 전에 마이그레이션 스크립트로 V2로 업그레이드하세요.',
coreExist: ' 노드는 이미 메인 노드로 활성화되어 있어 슬레이브 노드로 추가할 없습니다.',
' 노드에서 1Panel V1 서비스가 실행 것으로 감지되었습니다. 추가 전에 마이그레이션 스크립트로 V2로 업그레이드하십시오.',
coreExist: ' 노드는 이미 마스터 노드로 활성화되어 있어 슬레이브 노드로 추가할 없습니다.',
agentExist:
' 노드에 1panel-agent가 이미 설치되어 있습니다. 계속하면 기존 데이터는 유지되고 1panel-agent 서비스만 교체됩니다. 계속하시겠습니까?',
dataExist: ' 노드에 1Panel 이전 데이터가 존재합니다. 추가를 계속하시겠습니까?',
errLicense: ' 노드에 연결된 라이선스를 사용할 없습니다. 확인 다시 시도하세요!',
' 노드에 1panel-agent가 이미 설치되어 있는 것으로 감지되었습니다. 계속하면 기존 데이터를 유지하고 1panel-agent 서비스만 교체됩니다.',
oldDataExist:
' 노드에서 1Panel V2 기록 데이터가 감지되었습니다. 다음 정보를 사용하여 현재 설정을 덮어씁니다:',
errLicense: ' 노드에 바인딩된 라이선스를 사용할 없습니다. 확인 다시 시도하십시오!',
errNodePort:
'노드 포트 [ {0} ] 접근할 없는 것으로 감지되었습니다. 방화벽 또는 보안 그룹에서 해당 포트가 허용되었는지 확인하십시오.',
reinstallHelper: '노드 {0} 재설치합니다. 계속하시겠습니까?',
unhealthyCheck: '비정상 체크',
fixOperation: '수정 작업',

View file

@ -3317,13 +3317,22 @@ const message = {
nodeSyncHelper1: '1. Maklumat akaun sandaran awam',
nodeSyncHelper2: '2. Maklumat sambungan antara nod utama dan nod sub',
nodeCheck: 'Semakan ketersediaan',
checkSSH: 'Periksa sambungan SSH nod',
checkLicense: 'Periksa status lesen nod',
checkService: 'Periksa maklumat perkhidmatan sedia ada pada nod',
checkPort: 'Periksa kebolehcapaian port nod',
panelExist:
'Mengesan perkhidmatan 1Panel V1 sedang berjalan pada nod ini. Sila naik taraf ke V2 menggunakan skrip migrasi sebelum menambah.',
coreExist: 'Node ini telah diaktifkan sebagai nod utama dan tidak boleh ditambah sebagai nod hamba.',
'Mengesan nod ini sedang menjalankan perkhidmatan 1Panel V1. Sila naik taraf ke V2 menggunakan skrip migrasi sebelum menambah.',
coreExist: 'Nod ini telah didayakan sebagai nod induk dan tidak boleh ditambah sebagai nod hamba.',
agentExist:
'Mengesan 1panel-agent telah dipasang pada nod ini. Jika diteruskan, data sedia ada akan dikekalkan dan hanya perkhidmatan 1panel-agent akan diganti. Teruskan?',
dataExist: 'Mengesan data sejarah 1Panel wujud pada nod ini. Sahkan untuk terus menambah?',
errLicense: 'Lesen yang terikat pada nod ini tidak tersedia. Sila periksa dan cuba lagi!',
'Mengesan 1panel-agent telah dipasang pada nod ini. Penerusan akan mengekalkan data sedia ada dan hanya menggantikan perkhidmatan 1panel-agent.',
oldDataExist:
'Mengesan data sejarah 1Panel V2 pada nod ini. Maklumat berikut akan digunakan untuk menimpa tetapan semasa:',
errLicense: 'Lesen yang terikat pada nod ini tidak tersedia. Sila semak dan cuba lagi!',
errNodePort:
'Port nod [ {0} ] dikesan tidak boleh diakses. Sila semak sama ada firewall atau kumpulan keselamatan telah membenarkan port ini.',
reinstallHelper: 'Pasang semula nod {0}, adakah anda ingin meneruskan?',
unhealthyCheck: 'Pemeriksaan Tidak Normal',
fixOperation: 'Operasi Pembetulan',

View file

@ -3324,13 +3324,22 @@ const message = {
nodeSyncHelper1: '1. Informações da conta de backup pública',
nodeSyncHelper2: '2. Informações de conexão entre o principal e os sub-nós',
nodeCheck: 'Verificação de disponibilidade',
checkSSH: 'Verificar conexão SSH do ',
checkLicense: 'Verificar status da licença do ',
checkService: 'Verificar informações de serviço existentes no ',
checkPort: 'Verificar acessibilidade da porta do ',
panelExist:
'O serviço 1Panel V1 está em execução neste . Atualize para V2 usando o script de migração antes de adicionar.',
coreExist: 'Este foi ativado como principal e não pode ser adicionado como um escravo.',
'Detectado que este está executando o serviço 1Panel V1. Atualize para V2 usando o script de migração antes de adicionar.',
coreExist: 'Este está habilitado como mestre e não pode ser adicionado como escravo.',
agentExist:
'1panel-agent está instalado neste . Continuar preservará os dados existentes e substituirá apenas o serviço 1panel-agent. Prosseguir?',
dataExist: 'Existem dados históricos do 1Panel neste . Confirmar para continuar a adição?',
errLicense: 'A licença vinculada a este não está disponível. Por favor, verifique e tente novamente!',
'Detectado que 1panel-agent está instalado neste . Continuar irá reter os dados existentes e apenas substituir o serviço 1panel-agent.',
oldDataExist:
'Detectados dados históricos do 1Panel V2 neste . As seguintes informações serão usadas para sobrescrever as configurações atuais:',
errLicense: 'A licença vinculada a este está indisponível. Por favor verifique e tente novamente!',
errNodePort:
'A porta do [ {0} ] foi detectada como inacessível. Verifique se o firewall ou grupo de segurança liberou esta porta.',
reinstallHelper: 'Reinstalar o {0}, deseja continuar?',
unhealthyCheck: 'Verificação Anormal',
fixOperation: 'Operação de Correção',

View file

@ -3312,13 +3312,22 @@ const message = {
nodeSyncHelper1: '1. Информация о публичной резервной учетной записи',
nodeSyncHelper2: '2. Информация о соединении между основным узлом и подузлами',
nodeCheck: 'Проверка доступности',
checkSSH: 'Проверить SSH-подключение узла',
checkLicense: 'Проверить статус лицензии узла',
checkService: 'Проверить информацию о существующих службах на узле',
checkPort: 'Проверить доступность порта узла',
panelExist:
'На этом узле запущена служба 1Panel V1. Перед добавлением обновитесь до V2 с помощью скрипта миграции.',
coreExist: 'Этот узел уже активирован как основной узел и не может быть добавлен как подчиненный узел.',
'Обнаружено, что на этом узле работает служба 1Panel V1. Перед добавлением обновите до V2 с помощью скрипта миграции.',
coreExist: 'Этот узел уже активирован как мастер-узел и не может быть добавлен как подчиненный узел.',
agentExist:
'1panel-agent уже установлен на этом узле. Продолжение сохранит существующие данные и заменит только службу 1panel-agent. Продолжить?',
dataExist: 'На этом узле есть исторические данные 1Panel. Подтвердить продолжение добавления?',
'Обнаружено, что 1panel-agent уже установлен на этом узле. Продолжение сохранит существующие данные и заменит только службу 1panel-agent.',
oldDataExist:
'Обнаружены исторические данные 1Panel V2 на этом узле. Текущие настройки будут перезаписаны следующей информацией:',
errLicense: 'Лицензия, привязанная к этому узлу, недоступна. Пожалуйста, проверьте и повторите попытку!',
errNodePort:
'Обнаружено, что порт узла [ {0} ] недоступен. Проверьте, разрешен ли этот порт в брандмауэре или группе безопасности.',
reinstallHelper: 'Переустановить узел {0}, вы хотите продолжить?',
unhealthyCheck: 'Проверка на неисправности',
fixOperation: 'Решение проблемы',

View file

@ -3145,11 +3145,18 @@ const message = {
nodeSyncHelper1: '1. 公用的備份帳號信息',
nodeSyncHelper2: '2. 主節點與子節點的連接信息',
panelExist: '檢測到該節點正在運行 1Panel V1 服務請先透過遷移腳本升級至 V2 後再進行新增',
nodeCheck: '可用性檢查',
checkSSH: '檢查節點 SSH 連接',
checkLicense: '檢查節點許可證狀態',
checkService: '檢查節點已存在服務信息',
checkPort: '檢查節點端口可達',
panelExist: '檢查到該節點正在運行 1Panel V1 服務請先通過遷移腳本升級至 V2 後再進行添加',
coreExist: '該節點已作為主節點啟用無法作為從節點添加',
agentExist: '檢測到該節點已安裝 1panel-agent繼續新增將保留現有數據僅替換 1panel-agent 服務是否繼續',
dataExist: '檢測到該節點存在 1Panel 歷史數據是否確認繼續新增',
errLicense: '檢測到該節點綁定的許可證不可用請檢查後重試',
agentExist: '檢查到該節點已安裝 1panel-agent繼續添加將保留現有數據僅替換 1panel-agent 服務',
oldDataExist: '檢查到該節點存在 1Panel V2 歷史數據將使用以下信息覆蓋當前設置',
errLicense: '檢查到該節點綁定的許可證不可用請檢查後重試',
errNodePort: '檢查到節點端口 [ {0} ] 無法訪問請檢查防火牆或安全組是否已放行該端口',
reinstallHelper: '重新安裝節點 {0}是否繼續',
unhealthyCheck: '異常檢查',
fixOperation: '修復方案',

View file

@ -3113,11 +3113,19 @@ const message = {
nodeSyncHelper: '节点信息同步将同步以下信息',
nodeSyncHelper1: '1. 公用的备份账号信息',
nodeSyncHelper2: '2. 主节点与子节点的连接信息',
panelExist: '检测到该节点正在运行 1Panel V1 服务请先通过迁移脚本升级至 V2 后再进行添加',
nodeCheck: '可用性检查',
checkSSH: '检查节点 SSH 连接',
checkLicense: '检查节点许可证状态',
checkService: '检查节点已存在服务信息',
checkPort: '检查节点端口可达',
panelExist: '检查到该节点正在运行 1Panel V1 服务请先通过迁移脚本升级至 V2 后再进行添加',
coreExist: '该节点已作为主节点启用无法作为从节点添加',
agentExist: '检测到该节点已安装 1panel-agent继续添加将保留现有数据仅替换 1panel-agent 服务是否继续',
dataExist: '检测到该节点存在 1Panel 历史数据是否确认继续添加',
errLicense: '检测到该节点绑定的许可证不可用请检查后重试',
agentExist: '检查到该节点已安装 1panel-agent继续添加将保留现有数据仅替换 1panel-agent 服务',
oldDataExist: '检查到该节点存在 1Panel V2 历史数据将使用以下信息覆盖当前设置',
errLicense: '检查到该节点绑定的许可证不可用请检查后重试',
errNodePort: '检查到节点端口 [ {0} ] 无法访问请检查防火墙或安全组是否已放行该端口',
reinstallHelper: '重新安装节点 {0}, 是否继续',
unhealthyCheck: '异常检查',
fixOperation: '修复方案',