mirror of
https://github.com/1Panel-dev/1Panel.git
synced 2025-11-12 12:40:45 +08:00
fix: 调整升级逻辑
This commit is contained in:
parent
d04121c551
commit
a9a45ce5ac
3 changed files with 18 additions and 19 deletions
|
|
@ -81,7 +81,7 @@ func (u *UpgradeService) Upgrade(req dto.Upgrade) error {
|
||||||
fileName := fmt.Sprintf("1panel-%s-%s-%s.tar.gz", req.Version, "linux", runtime.GOARCH)
|
fileName := fmt.Sprintf("1panel-%s-%s-%s.tar.gz", req.Version, "linux", runtime.GOARCH)
|
||||||
_ = settingRepo.Update("SystemStatus", "Upgrading")
|
_ = settingRepo.Update("SystemStatus", "Upgrading")
|
||||||
go func() {
|
go func() {
|
||||||
if err := fileOp.DownloadFile(downloadPath+"/"+fileName, rootDir+"/service.tar.gz"); err != nil {
|
if err := fileOp.DownloadFile(downloadPath+"/"+fileName, rootDir+"/"+fileName); err != nil {
|
||||||
global.LOG.Errorf("download service file failed, err: %v", err)
|
global.LOG.Errorf("download service file failed, err: %v", err)
|
||||||
_ = settingRepo.Update("SystemStatus", "Free")
|
_ = settingRepo.Update("SystemStatus", "Free")
|
||||||
return
|
return
|
||||||
|
|
@ -90,11 +90,12 @@ func (u *UpgradeService) Upgrade(req dto.Upgrade) error {
|
||||||
defer func() {
|
defer func() {
|
||||||
_ = os.Remove(rootDir)
|
_ = os.Remove(rootDir)
|
||||||
}()
|
}()
|
||||||
if err := fileOp.Decompress(rootDir+"/service.tar.gz", rootDir, files.TarGz); err != nil {
|
if err := handleUnTar(rootDir+"/"+fileName, rootDir); err != nil {
|
||||||
global.LOG.Errorf("decompress file failed, err: %v", err)
|
global.LOG.Errorf("decompress file failed, err: %v", err)
|
||||||
_ = settingRepo.Update("SystemStatus", "Free")
|
_ = settingRepo.Update("SystemStatus", "Free")
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
tmpDir := rootDir + "/" + strings.ReplaceAll(fileName, ".tar.gz", "")
|
||||||
|
|
||||||
if err := u.handleBackup(fileOp, originalDir); err != nil {
|
if err := u.handleBackup(fileOp, originalDir); err != nil {
|
||||||
global.LOG.Errorf("handle backup original file failed, err: %v", err)
|
global.LOG.Errorf("handle backup original file failed, err: %v", err)
|
||||||
|
|
@ -103,17 +104,17 @@ func (u *UpgradeService) Upgrade(req dto.Upgrade) error {
|
||||||
}
|
}
|
||||||
global.LOG.Info("backup original data successful, now start to upgrade!")
|
global.LOG.Info("backup original data successful, now start to upgrade!")
|
||||||
|
|
||||||
if err := cpBinary(rootDir+"/1panel", "/usr/local/bin/1panel"); err != nil {
|
if err := cpBinary(tmpDir+"/1panel", "/usr/local/bin/1panel"); err != nil {
|
||||||
u.handleRollback(fileOp, originalDir, 1)
|
u.handleRollback(fileOp, originalDir, 1)
|
||||||
global.LOG.Errorf("upgrade 1panel failed, err: %v", err)
|
global.LOG.Errorf("upgrade 1panel failed, err: %v", err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if err := cpBinary(fmt.Sprintf("%s/1panel-online-installer-%s/1pctl", rootDir, req.Version), "/usr/local/bin/1pctl"); err != nil {
|
if err := cpBinary(tmpDir+"/1pctl", "/usr/local/bin/1pctl"); err != nil {
|
||||||
u.handleRollback(fileOp, originalDir, 2)
|
u.handleRollback(fileOp, originalDir, 2)
|
||||||
global.LOG.Errorf("upgrade 1pctl failed, err: %v", err)
|
global.LOG.Errorf("upgrade 1pctl failed, err: %v", err)
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
if err := cpBinary(fmt.Sprintf("%s/1panel-online-installer-%s/1panel/conf/1panel.service", rootDir, req.Version), "/etc/systemd/system/1panel.service"); err != nil {
|
if err := cpBinary(tmpDir+"/1panel.service", "/etc/systemd/system/1panel.service"); err != nil {
|
||||||
u.handleRollback(fileOp, originalDir, 3)
|
u.handleRollback(fileOp, originalDir, 3)
|
||||||
global.LOG.Errorf("upgrade 1panel.service failed, err: %v", err)
|
global.LOG.Errorf("upgrade 1panel.service failed, err: %v", err)
|
||||||
return
|
return
|
||||||
|
|
|
||||||
|
|
@ -57,15 +57,17 @@ const loadStatus = async () => {
|
||||||
await getSystemAvailable()
|
await getSystemAvailable()
|
||||||
.then((res) => {
|
.then((res) => {
|
||||||
if (res) {
|
if (res) {
|
||||||
|
location.reload();
|
||||||
clearInterval(Number(timer));
|
clearInterval(Number(timer));
|
||||||
timer = null;
|
timer = null;
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
.catch(() => {
|
.catch(() => {
|
||||||
|
location.reload();
|
||||||
clearInterval(Number(timer));
|
clearInterval(Number(timer));
|
||||||
timer = null;
|
timer = null;
|
||||||
});
|
});
|
||||||
}, 1000 * 20);
|
}, 1000 * 10);
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -18,7 +18,6 @@
|
||||||
</div>
|
</div>
|
||||||
<MdEditor v-model="upgradeInfo.releaseNote" previewOnly />
|
<MdEditor v-model="upgradeInfo.releaseNote" previewOnly />
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<template #footer>
|
<template #footer>
|
||||||
<span class="dialog-footer">
|
<span class="dialog-footer">
|
||||||
<el-button @click="drawerVisiable = false">{{ $t('commons.button.cancel') }}</el-button>
|
<el-button @click="drawerVisiable = false">{{ $t('commons.button.cancel') }}</el-button>
|
||||||
|
|
@ -31,8 +30,11 @@
|
||||||
import { getSettingInfo, loadUpgradeInfo, upgrade } from '@/api/modules/setting';
|
import { getSettingInfo, loadUpgradeInfo, upgrade } from '@/api/modules/setting';
|
||||||
import MdEditor from 'md-editor-v3';
|
import MdEditor from 'md-editor-v3';
|
||||||
import i18n from '@/lang';
|
import i18n from '@/lang';
|
||||||
|
import 'md-editor-v3/lib/style.css';
|
||||||
import { MsgSuccess } from '@/utils/message';
|
import { MsgSuccess } from '@/utils/message';
|
||||||
import { onMounted, ref } from 'vue';
|
import { onMounted, ref } from 'vue';
|
||||||
|
import { GlobalStore } from '@/store';
|
||||||
|
const globalStore = GlobalStore();
|
||||||
|
|
||||||
const version = ref();
|
const version = ref();
|
||||||
let loading = ref(false);
|
let loading = ref(false);
|
||||||
|
|
@ -72,18 +74,12 @@ const onUpgrade = async () => {
|
||||||
confirmButtonText: i18n.global.t('commons.button.confirm'),
|
confirmButtonText: i18n.global.t('commons.button.confirm'),
|
||||||
cancelButtonText: i18n.global.t('commons.button.cancel'),
|
cancelButtonText: i18n.global.t('commons.button.cancel'),
|
||||||
type: 'info',
|
type: 'info',
|
||||||
}).then(() => {
|
}).then(async () => {
|
||||||
loading.value = true;
|
globalStore.isLoading = true;
|
||||||
upgrade(upgradeInfo.value.newVersion)
|
await upgrade(upgradeInfo.value.newVersion);
|
||||||
.then(() => {
|
drawerVisiable.value = false;
|
||||||
loading.value = false;
|
MsgSuccess(i18n.global.t('commons.msg.operationSuccess'));
|
||||||
drawerVisiable.value = false;
|
search();
|
||||||
MsgSuccess(i18n.global.t('commons.msg.operationSuccess'));
|
|
||||||
search();
|
|
||||||
})
|
|
||||||
.catch(() => {
|
|
||||||
loading.value = false;
|
|
||||||
});
|
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue