mirror of
https://github.com/1Panel-dev/1Panel.git
synced 2025-12-19 05:49:02 +08:00
feat: 修改应用端口,同时修改网站配置
This commit is contained in:
parent
3bd20e5b28
commit
bb104bb734
12 changed files with 16 additions and 5 deletions
|
|
@ -157,6 +157,7 @@ func handleAppRecover(install *model.AppInstall, recoverFile string, isRollback
|
||||||
}
|
}
|
||||||
defer func() {
|
defer func() {
|
||||||
if !isOk {
|
if !isOk {
|
||||||
|
global.LOG.Info("recover failed, start to rollback now")
|
||||||
if err := handleAppRecover(install, rollbackFile, true); err != nil {
|
if err := handleAppRecover(install, rollbackFile, true); err != nil {
|
||||||
global.LOG.Errorf("rollback app %s from %s failed, err: %v", install.Name, rollbackFile, err)
|
global.LOG.Errorf("rollback app %s from %s failed, err: %v", install.Name, rollbackFile, err)
|
||||||
return
|
return
|
||||||
|
|
|
||||||
|
|
@ -142,6 +142,7 @@ func handleMysqlRecover(mysqlInfo *repo.RootInfo, recoverDir, dbName, fileName s
|
||||||
}
|
}
|
||||||
defer func() {
|
defer func() {
|
||||||
if !isOk {
|
if !isOk {
|
||||||
|
global.LOG.Info("recover failed, start to rollback now")
|
||||||
if err := handleMysqlRecover(mysqlInfo, path.Dir(rollbackFile), dbName, path.Base(rollbackFile), true); err != nil {
|
if err := handleMysqlRecover(mysqlInfo, path.Dir(rollbackFile), dbName, path.Base(rollbackFile), true); err != nil {
|
||||||
global.LOG.Errorf("rollback mysql db %s from %s failed, err: %v", dbName, rollbackFile, err)
|
global.LOG.Errorf("rollback mysql db %s from %s failed, err: %v", dbName, rollbackFile, err)
|
||||||
return
|
return
|
||||||
|
|
|
||||||
|
|
@ -123,6 +123,7 @@ func handleRedisRecover(redisInfo *repo.RootInfo, recoverFile string, isRollback
|
||||||
}
|
}
|
||||||
defer func() {
|
defer func() {
|
||||||
if !isOk {
|
if !isOk {
|
||||||
|
global.LOG.Info("recover failed, start to rollback now")
|
||||||
if err := handleRedisRecover(redisInfo, rollbackFile, true); err != nil {
|
if err := handleRedisRecover(redisInfo, rollbackFile, true); err != nil {
|
||||||
global.LOG.Errorf("rollback redis from %s failed, err: %v", rollbackFile, err)
|
global.LOG.Errorf("rollback redis from %s failed, err: %v", rollbackFile, err)
|
||||||
return
|
return
|
||||||
|
|
|
||||||
|
|
@ -106,6 +106,7 @@ func handleWebsiteRecover(website *model.Website, recoverFile string, isRollback
|
||||||
return fmt.Errorf("backup website %s for rollback before recover failed, err: %v", website.Alias, err)
|
return fmt.Errorf("backup website %s for rollback before recover failed, err: %v", website.Alias, err)
|
||||||
}
|
}
|
||||||
defer func() {
|
defer func() {
|
||||||
|
global.LOG.Info("recover failed, start to rollback now")
|
||||||
if !isOk {
|
if !isOk {
|
||||||
if err := handleWebsiteRecover(website, rollbackFile, true); err != nil {
|
if err := handleWebsiteRecover(website, rollbackFile, true); err != nil {
|
||||||
global.LOG.Errorf("rollback website %s from %s failed, err: %v", website.Alias, rollbackFile, err)
|
global.LOG.Errorf("rollback website %s from %s failed, err: %v", website.Alias, rollbackFile, err)
|
||||||
|
|
|
||||||
|
|
@ -161,7 +161,7 @@ func (u *MysqlService) Delete(ctx context.Context, req dto.MysqlDBDelete) error
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
if err := excuteSql(app.ContainerName, app.Password, fmt.Sprintf("drop user if exists '%s'@'%s'", db.Name, db.Permission)); err != nil && !req.ForceDelete {
|
if err := excuteSql(app.ContainerName, app.Password, fmt.Sprintf("drop user if exists '%s'@'%s'", db.Username, db.Permission)); err != nil && !req.ForceDelete {
|
||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
if err := excuteSql(app.ContainerName, app.Password, fmt.Sprintf("drop database if exists `%s`", db.Name)); err != nil && !req.ForceDelete {
|
if err := excuteSql(app.ContainerName, app.Password, fmt.Sprintf("drop database if exists `%s`", db.Name)); err != nil && !req.ForceDelete {
|
||||||
|
|
|
||||||
|
|
@ -856,6 +856,7 @@ func (u *SnapshotService) handleTar(sourceDir, targetDir, name, exclusionRules s
|
||||||
global.LOG.Debug(ss)
|
global.LOG.Debug(ss)
|
||||||
stdout, err := cmd.Exec(ss)
|
stdout, err := cmd.Exec(ss)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
global.LOG.Errorf("do handle tar failed, stdout: %s, err: %v", stdout, err)
|
||||||
return errors.New(stdout)
|
return errors.New(stdout)
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
|
|
@ -869,6 +870,7 @@ func (u *SnapshotService) handleUnTar(sourceDir, targetDir string) error {
|
||||||
}
|
}
|
||||||
stdout, err := cmd.Exec(fmt.Sprintf("tar zxf %s -C %s .", sourceDir, targetDir))
|
stdout, err := cmd.Exec(fmt.Sprintf("tar zxf %s -C %s .", sourceDir, targetDir))
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
global.LOG.Errorf("do handle untar failed, stdout: %s, err: %v", stdout, err)
|
||||||
return errors.New(string(stdout))
|
return errors.New(string(stdout))
|
||||||
}
|
}
|
||||||
return nil
|
return nil
|
||||||
|
|
|
||||||
|
|
@ -21,7 +21,7 @@
|
||||||
<div v-else class="el-upload__tip">
|
<div v-else class="el-upload__tip">
|
||||||
<span class="input-help">{{ $t('website.supportUpType') }}</span>
|
<span class="input-help">{{ $t('website.supportUpType') }}</span>
|
||||||
<span class="input-help">
|
<span class="input-help">
|
||||||
{{ $t('website.zipFormat') }}
|
{{ $t('website.zipFormat', [type + '.json']) }}
|
||||||
</span>
|
</span>
|
||||||
</div>
|
</div>
|
||||||
</template>
|
</template>
|
||||||
|
|
|
||||||
|
|
@ -932,8 +932,7 @@ export default {
|
||||||
static: 'Static',
|
static: 'Static',
|
||||||
deployment: 'Deployment',
|
deployment: 'Deployment',
|
||||||
supportUpType: 'Only .tar.gz files within 50 MB are supported',
|
supportUpType: 'Only .tar.gz files within 50 MB are supported',
|
||||||
zipFormat:
|
zipFormat: '.tar.gz compressed package structure: test.tar.gz compressed package must contain {0} file',
|
||||||
'.tar.gz compressed package structure: test.tar.gz compressed package must contain website.json file',
|
|
||||||
proxy: 'Reverse Proxy',
|
proxy: 'Reverse Proxy',
|
||||||
alias: 'Path Name',
|
alias: 'Path Name',
|
||||||
remark: 'Remark',
|
remark: 'Remark',
|
||||||
|
|
|
||||||
|
|
@ -943,7 +943,7 @@ export default {
|
||||||
static: '静态网站',
|
static: '静态网站',
|
||||||
deployment: '一键部署',
|
deployment: '一键部署',
|
||||||
supportUpType: '仅支持 50M 以内 .tar.gz 文件',
|
supportUpType: '仅支持 50M 以内 .tar.gz 文件',
|
||||||
zipFormat: '.tar.gz 压缩包结构:test.tar.gz 压缩包内,必需包含 website.json 文件',
|
zipFormat: '.tar.gz 压缩包结构:test.tar.gz 压缩包内,必需包含 {0} 文件',
|
||||||
proxy: '反向代理',
|
proxy: '反向代理',
|
||||||
alias: '代号',
|
alias: '代号',
|
||||||
remark: '备注',
|
remark: '备注',
|
||||||
|
|
|
||||||
|
|
@ -390,6 +390,10 @@ function hasScript() {
|
||||||
}
|
}
|
||||||
|
|
||||||
const onSubmit = async (formEl: FormInstance | undefined) => {
|
const onSubmit = async (formEl: FormInstance | undefined) => {
|
||||||
|
dialogData.value.rowData.week = Number(dialogData.value.rowData.week);
|
||||||
|
dialogData.value.rowData.day = Number(dialogData.value.rowData.day);
|
||||||
|
dialogData.value.rowData.hour = Number(dialogData.value.rowData.hour);
|
||||||
|
dialogData.value.rowData.minute = Number(dialogData.value.rowData.minute);
|
||||||
if (!formEl) return;
|
if (!formEl) return;
|
||||||
formEl.validate(async (valid) => {
|
formEl.validate(async (valid) => {
|
||||||
if (!valid) return;
|
if (!valid) return;
|
||||||
|
|
|
||||||
|
|
@ -157,6 +157,7 @@ const submitAddHost = (formEl: FormInstance | undefined, ops: string) => {
|
||||||
let isLocal = hostInfo.addr === '127.0.0.1';
|
let isLocal = hostInfo.addr === '127.0.0.1';
|
||||||
emit('on-conn-terminal', title, res.data.id, isLocal);
|
emit('on-conn-terminal', title, res.data.id, isLocal);
|
||||||
emit('load-host-tree');
|
emit('load-host-tree');
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
};
|
};
|
||||||
|
|
|
||||||
|
|
@ -228,6 +228,7 @@ const onSave = async (formEl: FormInstance | undefined, key: string, val: any) =
|
||||||
search();
|
search();
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
break;
|
||||||
case 'PanelName':
|
case 'PanelName':
|
||||||
globalStore.setThemeConfig({ ...themeConfig.value, panelName: val });
|
globalStore.setThemeConfig({ ...themeConfig.value, panelName: val });
|
||||||
document.title = val;
|
document.title = val;
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue