2
0
mirror of https://github.com/acepanel/panel.git synced 2026-02-04 07:57:21 +08:00

fix: lint

This commit is contained in:
耗子
2024-09-28 10:07:45 +08:00
parent 051b6b9227
commit b0e577b42a
13 changed files with 99 additions and 101 deletions

View File

@@ -86,7 +86,7 @@ func (s *Service) ErrorLog(w http.ResponseWriter, r *http.Request) {
out, err := shell.Execf("tail -n 100 %s/%s", panel.Root, "/wwwlogs/openresty_error.log")
if err != nil {
service.Error(w, http.StatusInternalServerError, out)
service.Error(w, http.StatusInternalServerError, err.Error())
}
service.Success(w, out)
@@ -101,8 +101,8 @@ func (s *Service) ErrorLog(w http.ResponseWriter, r *http.Request) {
// @Success 200 {object} h.SuccessResponse
// @Router /plugins/openresty/clearErrorLog [post]
func (s *Service) ClearErrorLog(w http.ResponseWriter, r *http.Request) {
if out, err := shell.Execf("echo '' > %s/%s", panel.Root, "/wwwlogs/openresty_error.log"); err != nil {
service.Error(w, http.StatusInternalServerError, out)
if _, err := shell.Execf("echo '' > %s/%s", panel.Root, "/wwwlogs/openresty_error.log"); err != nil {
service.Error(w, http.StatusInternalServerError, err.Error())
}
service.Success(w, nil)

View File

@@ -149,8 +149,8 @@ func (s *Service) ErrorLog(w http.ResponseWriter, r *http.Request) {
// ClearErrorLog 清空错误日志
func (s *Service) ClearErrorLog(w http.ResponseWriter, r *http.Request) {
if out, err := shell.Execf("echo '' > %s/server/mysql/mysql-error.log", panel.Root); err != nil {
service.Error(w, http.StatusInternalServerError, out)
if _, err := shell.Execf("echo '' > %s/server/mysql/mysql-error.log", panel.Root); err != nil {
service.Error(w, http.StatusInternalServerError, err.Error())
return
}
@@ -170,8 +170,8 @@ func (s *Service) SlowLog(w http.ResponseWriter, r *http.Request) {
// ClearSlowLog 清空慢查询日志
func (s *Service) ClearSlowLog(w http.ResponseWriter, r *http.Request) {
if out, err := shell.Execf("echo '' > %s/server/mysql/mysql-slow.log", panel.Root); err != nil {
service.Error(w, http.StatusInternalServerError, out)
if _, err := shell.Execf("echo '' > %s/server/mysql/mysql-slow.log", panel.Root); err != nil {
service.Error(w, http.StatusInternalServerError, err.Error())
return
}

View File

@@ -194,8 +194,8 @@ func (s *Service) SlowLog(w http.ResponseWriter, r *http.Request) {
// @Success 200 {object} controllers.SuccessResponse
// @Router /plugins/php/{version}/clearErrorLog [post]
func (s *Service) ClearErrorLog(w http.ResponseWriter, r *http.Request) {
if out, err := shell.Execf("echo '' > %s/server/php/%d/var/log/php-fpm.log", panel.Root, s.version); err != nil {
service.Error(w, http.StatusInternalServerError, out)
if _, err := shell.Execf("echo '' > %s/server/php/%d/var/log/php-fpm.log", panel.Root, s.version); err != nil {
service.Error(w, http.StatusInternalServerError, err.Error())
return
}
@@ -212,8 +212,8 @@ func (s *Service) ClearErrorLog(w http.ResponseWriter, r *http.Request) {
// @Success 200 {object} controllers.SuccessResponse
// @Router /plugins/php/{version}/clearSlowLog [post]
func (s *Service) ClearSlowLog(w http.ResponseWriter, r *http.Request) {
if out, err := shell.Execf("echo '' > %s/server/php/%d/var/log/slow.log", panel.Root, s.version); err != nil {
service.Error(w, http.StatusInternalServerError, out)
if _, err := shell.Execf("echo '' > %s/server/php/%d/var/log/slow.log", panel.Root, s.version); err != nil {
service.Error(w, http.StatusInternalServerError, err.Error())
return
}

View File

@@ -144,8 +144,8 @@ func (s *Service) Log(w http.ResponseWriter, r *http.Request) {
// ClearLog 清空日志
func (s *Service) ClearLog(w http.ResponseWriter, r *http.Request) {
if out, err := shell.Execf("rm -rf %s/server/postgresql/logs/postgresql-*.log", panel.Root); err != nil {
service.Error(w, http.StatusInternalServerError, out)
if _, err := shell.Execf("rm -rf %s/server/postgresql/logs/postgresql-*.log", panel.Root); err != nil {
service.Error(w, http.StatusInternalServerError, err.Error())
return
}

View File

@@ -78,12 +78,12 @@ func (s *Service) Create(w http.ResponseWriter, r *http.Request) {
service.Error(w, http.StatusUnprocessableEntity, "修改目录权限失败")
return
}
if out, err := shell.Execf(`yes '%s' | pure-pw useradd '%s' -u www -g www -d '%s'`, req.Password, req.Username, req.Path); err != nil {
service.Error(w, http.StatusInternalServerError, out)
if _, err = shell.Execf(`yes '%s' | pure-pw useradd '%s' -u www -g www -d '%s'`, req.Password, req.Username, req.Path); err != nil {
service.Error(w, http.StatusInternalServerError, err.Error())
return
}
if out, err := shell.Execf("pure-pw mkdb"); err != nil {
service.Error(w, http.StatusInternalServerError, out)
if _, err = shell.Execf("pure-pw mkdb"); err != nil {
service.Error(w, http.StatusInternalServerError, err.Error())
return
}
@@ -98,12 +98,12 @@ func (s *Service) Delete(w http.ResponseWriter, r *http.Request) {
return
}
if out, err := shell.Execf("pure-pw userdel '%s' -m", req.Username); err != nil {
service.Error(w, http.StatusInternalServerError, out)
if _, err = shell.Execf("pure-pw userdel '%s' -m", req.Username); err != nil {
service.Error(w, http.StatusInternalServerError, err.Error())
return
}
if out, err := shell.Execf("pure-pw mkdb"); err != nil {
service.Error(w, http.StatusInternalServerError, out)
if _, err = shell.Execf("pure-pw mkdb"); err != nil {
service.Error(w, http.StatusInternalServerError, err.Error())
return
}
@@ -118,12 +118,12 @@ func (s *Service) ChangePassword(w http.ResponseWriter, r *http.Request) {
return
}
if out, err := shell.Execf(`yes '%s' | pure-pw passwd '%s' -m`, req.Password, req.Username); err != nil {
service.Error(w, http.StatusInternalServerError, out)
if _, err = shell.Execf(`yes '%s' | pure-pw passwd '%s' -m`, req.Password, req.Username); err != nil {
service.Error(w, http.StatusInternalServerError, err.Error())
return
}
if out, err := shell.Execf("pure-pw mkdb"); err != nil {
service.Error(w, http.StatusInternalServerError, out)
if _, err = shell.Execf("pure-pw mkdb"); err != nil {
service.Error(w, http.StatusInternalServerError, err.Error())
return
}
@@ -149,8 +149,8 @@ func (s *Service) UpdatePort(w http.ResponseWriter, r *http.Request) {
return
}
if out, err := shell.Execf(`sed -i "s/Bind.*/Bind 0.0.0.0,%d/g" %s/server/pure-ftpd/etc/pure-ftpd.conf`, req.Port, panel.Root); err != nil {
service.Error(w, http.StatusInternalServerError, out)
if _, err = shell.Execf(`sed -i "s/Bind.*/Bind 0.0.0.0,%d/g" %s/server/pure-ftpd/etc/pure-ftpd.conf`, req.Port, panel.Root); err != nil {
service.Error(w, http.StatusInternalServerError, err.Error())
return
}

View File

@@ -1,6 +1,7 @@
package rsync
import (
"fmt"
"net/http"
"regexp"
"strings"
@@ -71,7 +72,7 @@ func (s *Service) List(w http.ResponseWriter, r *http.Request) {
currentModule.ReadOnly = value == "yes" || value == "true"
case "auth users":
currentModule.AuthUser = value
currentModule.Secret, err = shell.Execf("grep -E '^" + currentModule.AuthUser + ":.*$' /etc/rsyncd.secrets | awk -F ':' '{print $2}'")
currentModule.Secret, err = shell.Execf(`grep -E '^%s:.*$' /etc/rsyncd.secrets | awk -F ':' '{print $2}'`, currentModule.AuthUser)
if err != nil {
service.Error(w, http.StatusInternalServerError, "获取模块"+currentModule.AuthUser+"的密钥失败")
return
@@ -137,8 +138,8 @@ secrets file = /etc/rsyncd.secrets
service.Error(w, http.StatusInternalServerError, err.Error())
return
}
if out, err := shell.Execf("echo '" + req.AuthUser + ":" + req.Secret + "' >> /etc/rsyncd.secrets"); err != nil {
service.Error(w, http.StatusInternalServerError, out)
if err = io.WriteAppend("/etc/rsyncd.secrets", fmt.Sprintf(`%s:%s\n`, req.AuthUser, req.Secret)); err != nil {
service.Error(w, http.StatusInternalServerError, err.Error())
return
}
@@ -183,8 +184,8 @@ func (s *Service) Delete(w http.ResponseWriter, r *http.Request) {
match := regexp.MustCompile(`auth users = ([^\n]+)`).FindStringSubmatch(module)
if len(match) == 2 {
authUser := match[1]
if out, err := shell.Execf("sed -i '/^" + authUser + ":.*$/d' /etc/rsyncd.secrets"); err != nil {
service.Error(w, http.StatusInternalServerError, out)
if _, err = shell.Execf(`sed -i '/^%s:.*$/d' /etc/rsyncd.secrets`, authUser); err != nil {
service.Error(w, http.StatusInternalServerError, err.Error())
return
}
}
@@ -246,8 +247,8 @@ secrets file = /etc/rsyncd.secrets
match := regexp.MustCompile(`auth users = ([^\n]+)`).FindStringSubmatch(module)
if len(match) == 2 {
authUser := match[1]
if out, err := shell.Execf("sed -i '/^" + authUser + ":.*$/d' /etc/rsyncd.secrets"); err != nil {
service.Error(w, http.StatusInternalServerError, out)
if _, err = shell.Execf("sed -i '/^" + authUser + ":.*$/d' /etc/rsyncd.secrets"); err != nil {
service.Error(w, http.StatusInternalServerError, err.Error())
return
}
}
@@ -256,8 +257,8 @@ secrets file = /etc/rsyncd.secrets
service.Error(w, http.StatusInternalServerError, err.Error())
return
}
if out, err := shell.Execf("echo '" + req.AuthUser + ":" + req.Secret + "' >> /etc/rsyncd.secrets"); err != nil {
service.Error(w, http.StatusInternalServerError, out)
if _, err = shell.Execf("echo '" + req.AuthUser + ":" + req.Secret + "' >> /etc/rsyncd.secrets"); err != nil {
service.Error(w, http.StatusInternalServerError, err.Error())
return
}

View File

@@ -98,9 +98,8 @@ func (s *Service) Create(w http.ResponseWriter, r *http.Request) {
service.Error(w, http.StatusInternalServerError, "添加 S3fs 挂载失败")
return
}
out, err := shell.Execf(`echo 's3fs#%s %s fuse _netdev,allow_other,nonempty,url=%s,passwd_file=/etc/passwd-s3fs-%s 0 0' >> /etc/fstab`, req.Bucket, req.Path, req.URL, cast.ToString(id))
if err != nil {
service.Error(w, http.StatusInternalServerError, out)
if _, err = shell.Execf(`echo 's3fs#%s %s fuse _netdev,allow_other,nonempty,url=%s,passwd_file=/etc/passwd-s3fs-%s 0 0' >> /etc/fstab`, req.Bucket, req.Path, req.URL, cast.ToString(id)); err != nil {
service.Error(w, http.StatusInternalServerError, err.Error())
return
}
if mountCheck, err := shell.Execf("mount -a 2>&1"); err != nil {
@@ -165,16 +164,16 @@ func (s *Service) Delete(w http.ResponseWriter, r *http.Request) {
return
}
if out, err := shell.Execf(`fusermount -u '` + mount.Path + `' 2>&1`); err != nil {
service.Error(w, http.StatusInternalServerError, out)
if _, err = shell.Execf(`fusermount -u '` + mount.Path + `' 2>&1`); err != nil {
service.Error(w, http.StatusInternalServerError, err.Error())
return
}
if out, err := shell.Execf(`umount '` + mount.Path + `' 2>&1`); err != nil {
service.Error(w, http.StatusInternalServerError, out)
if _, err = shell.Execf(`umount '` + mount.Path + `' 2>&1`); err != nil {
service.Error(w, http.StatusInternalServerError, err.Error())
return
}
if out, err := shell.Execf(`sed -i 's@^s3fs#` + mount.Bucket + `\s` + mount.Path + `.*$@@g' /etc/fstab`); err != nil {
service.Error(w, http.StatusInternalServerError, out)
if _, err = shell.Execf(`sed -i 's@^s3fs#` + mount.Bucket + `\s` + mount.Path + `.*$@@g' /etc/fstab`); err != nil {
service.Error(w, http.StatusInternalServerError, err.Error())
return
}
if mountCheck, err := shell.Execf("mount -a 2>&1"); err != nil {

View File

@@ -50,8 +50,8 @@ func (s *Service) Log(w http.ResponseWriter, r *http.Request) {
// ClearLog 清空日志
func (s *Service) ClearLog(w http.ResponseWriter, r *http.Request) {
if out, err := shell.Execf(`echo "" > /var/log/supervisor/supervisord.log`); err != nil {
service.Error(w, http.StatusInternalServerError, out)
if _, err := shell.Execf(`echo "" > /var/log/supervisor/supervisord.log`); err != nil {
service.Error(w, http.StatusInternalServerError, err.Error())
return
}
@@ -107,7 +107,7 @@ func (s *Service) UpdateConfig(w http.ResponseWriter, r *http.Request) {
func (s *Service) Processes(w http.ResponseWriter, r *http.Request) {
out, err := shell.Execf(`supervisorctl status | awk '{print $1}'`)
if err != nil {
service.Error(w, http.StatusInternalServerError, out)
service.Error(w, http.StatusInternalServerError, err.Error())
return
}
@@ -150,8 +150,8 @@ func (s *Service) StartProcess(w http.ResponseWriter, r *http.Request) {
return
}
if out, err := shell.Execf(`supervisorctl start %s`, req.Process); err != nil {
service.Error(w, http.StatusInternalServerError, out)
if _, err = shell.Execf(`supervisorctl start %s`, req.Process); err != nil {
service.Error(w, http.StatusInternalServerError, err.Error())
return
}
@@ -166,8 +166,8 @@ func (s *Service) StopProcess(w http.ResponseWriter, r *http.Request) {
return
}
if out, err := shell.Execf(`supervisorctl stop %s`, req.Process); err != nil {
service.Error(w, http.StatusInternalServerError, out)
if _, err = shell.Execf(`supervisorctl stop %s`, req.Process); err != nil {
service.Error(w, http.StatusInternalServerError, err.Error())
return
}
@@ -182,8 +182,8 @@ func (s *Service) RestartProcess(w http.ResponseWriter, r *http.Request) {
return
}
if out, err := shell.Execf(`supervisorctl restart %s`, req.Process); err != nil {
service.Error(w, http.StatusInternalServerError, out)
if _, err = shell.Execf(`supervisorctl restart %s`, req.Process); err != nil {
service.Error(w, http.StatusInternalServerError, err.Error())
return
}
@@ -239,8 +239,8 @@ func (s *Service) ClearProcessLog(w http.ResponseWriter, r *http.Request) {
return
}
if out, err := shell.Execf(`echo "" > '%s'`, logPath); err != nil {
service.Error(w, http.StatusInternalServerError, out)
if _, err = shell.Execf(`echo "" > '%s'`, logPath); err != nil {
service.Error(w, http.StatusInternalServerError, err.Error())
return
}
@@ -343,31 +343,34 @@ func (s *Service) DeleteProcess(w http.ResponseWriter, r *http.Request) {
return
}
if out, err := shell.Execf(`supervisorctl stop '%s'`, req.Process); err != nil {
service.Error(w, http.StatusInternalServerError, out)
if _, err = shell.Execf(`supervisorctl stop '%s'`, req.Process); err != nil {
service.Error(w, http.StatusInternalServerError, err.Error())
return
}
var logPath string
if os.IsRHEL() {
logPath, err = shell.Execf(`cat '/etc/supervisord.d/%s.conf' | grep stdout_logfile= | awk -F "=" '{print $2}'`, req.Process)
if err := io.Remove(`/etc/supervisord.d/` + req.Process + `.conf`); err != nil {
if err != nil {
service.Error(w, http.StatusInternalServerError, fmt.Sprintf("无法从进程 %s 的配置文件中获取日志路径", req.Process))
return
}
if err = io.Remove(`/etc/supervisord.d/` + req.Process + `.conf`); err != nil {
service.Error(w, http.StatusInternalServerError, err.Error())
return
}
} else {
logPath, err = shell.Execf(`cat '/etc/supervisor/conf.d/%s.conf' | grep stdout_logfile= | awk -F "=" '{print $2}'`, req.Process)
if err := io.Remove(`/etc/supervisor/conf.d/` + req.Process + `.conf`); err != nil {
if err != nil {
service.Error(w, http.StatusInternalServerError, fmt.Sprintf("无法从进程 %s 的配置文件中获取日志路径", req.Process))
return
}
if err = io.Remove(`/etc/supervisor/conf.d/` + req.Process + `.conf`); err != nil {
service.Error(w, http.StatusInternalServerError, err.Error())
return
}
}
if err != nil {
service.Error(w, http.StatusInternalServerError, fmt.Sprintf("无法从进程 %s 的配置文件中获取日志路径", req.Process))
return
}
if err = io.Remove(logPath); err != nil {
service.Error(w, http.StatusInternalServerError, err.Error())
return

View File

@@ -116,22 +116,23 @@ func (s *Service) UpdateSWAP(w http.ResponseWriter, r *http.Request) {
}
if io.Exists(filepath.Join(panel.Root, "swap")) {
if out, err := shell.Execf("swapoff '%s'", filepath.Join(panel.Root, "swap")); err != nil {
service.Error(w, http.StatusUnprocessableEntity, out)
if _, err = shell.Execf("swapoff '%s'", filepath.Join(panel.Root, "swap")); err != nil {
service.Error(w, http.StatusUnprocessableEntity, err.Error())
return
}
if out, err := shell.Execf("rm -f '%s'", filepath.Join(panel.Root, "swap")); err != nil {
service.Error(w, http.StatusUnprocessableEntity, out)
if _, err = shell.Execf("rm -f '%s'", filepath.Join(panel.Root, "swap")); err != nil {
service.Error(w, http.StatusUnprocessableEntity, err.Error())
return
}
if out, err := shell.Execf(`sed -i '%s/d' /etc/fstab`, filepath.Join(panel.Root, "swap")); err != nil {
service.Error(w, http.StatusUnprocessableEntity, out)
if _, err = shell.Execf(`sed -i '%s/d' /etc/fstab`, filepath.Join(panel.Root, "swap")); err != nil {
service.Error(w, http.StatusUnprocessableEntity, err.Error())
return
}
}
if req.Size > 1 {
free, err := shell.Execf("df -k %s | awk '{print $4}' | tail -n 1", panel.Root)
var free string
free, err = shell.Execf("df -k %s | awk '{print $4}' | tail -n 1", panel.Root)
if err != nil {
service.Error(w, http.StatusUnprocessableEntity, "获取磁盘空间失败")
return
@@ -143,30 +144,30 @@ func (s *Service) UpdateSWAP(w http.ResponseWriter, r *http.Request) {
btrfsCheck, _ := shell.Execf("df -T %s | awk '{print $2}' | tail -n 1", panel.Root)
if strings.Contains(btrfsCheck, "btrfs") {
if out, err := shell.Execf("btrfs filesystem mkswapfile --size %dM --uuid clear %s", req.Size, filepath.Join(panel.Root, "swap")); err != nil {
service.Error(w, http.StatusUnprocessableEntity, out)
if _, err = shell.Execf("btrfs filesystem mkswapfile --size %dM --uuid clear %s", req.Size, filepath.Join(panel.Root, "swap")); err != nil {
service.Error(w, http.StatusUnprocessableEntity, err.Error())
return
}
} else {
if out, err := shell.Execf("dd if=/dev/zero of=%s bs=1M count=%d", filepath.Join(panel.Root, "swap"), req.Size); err != nil {
service.Error(w, http.StatusUnprocessableEntity, out)
if _, err = shell.Execf("dd if=/dev/zero of=%s bs=1M count=%d", filepath.Join(panel.Root, "swap"), req.Size); err != nil {
service.Error(w, http.StatusUnprocessableEntity, err.Error())
return
}
if out, err := shell.Execf("mkswap -f '%s'", filepath.Join(panel.Root, "swap")); err != nil {
service.Error(w, http.StatusUnprocessableEntity, out)
if _, err = shell.Execf("mkswap -f '%s'", filepath.Join(panel.Root, "swap")); err != nil {
service.Error(w, http.StatusUnprocessableEntity, err.Error())
return
}
if err := io.Chmod(filepath.Join(panel.Root, "swap"), 0600); err != nil {
if err = io.Chmod(filepath.Join(panel.Root, "swap"), 0600); err != nil {
service.Error(w, http.StatusUnprocessableEntity, "设置 SWAP 权限失败")
return
}
}
if out, err := shell.Execf("swapon '%s'", filepath.Join(panel.Root, "swap")); err != nil {
service.Error(w, http.StatusUnprocessableEntity, out)
if _, err = shell.Execf("swapon '%s'", filepath.Join(panel.Root, "swap")); err != nil {
service.Error(w, http.StatusUnprocessableEntity, err.Error())
return
}
if out, err := shell.Execf("echo '%s swap swap defaults 0 0' >> /etc/fstab", filepath.Join(panel.Root, "swap")); err != nil {
service.Error(w, http.StatusUnprocessableEntity, out)
if _, err = shell.Execf("echo '%s swap swap defaults 0 0' >> /etc/fstab", filepath.Join(panel.Root, "swap")); err != nil {
service.Error(w, http.StatusUnprocessableEntity, err.Error())
return
}
}
@@ -217,8 +218,8 @@ func (s *Service) UpdateTimezone(w http.ResponseWriter, r *http.Request) {
return
}
if out, err := shell.Execf("timedatectl set-timezone '%s'", req.Timezone); err != nil {
service.Error(w, http.StatusUnprocessableEntity, out)
if _, err = shell.Execf("timedatectl set-timezone '%s'", req.Timezone); err != nil {
service.Error(w, http.StatusUnprocessableEntity, err.Error())
return
}
@@ -266,8 +267,8 @@ func (s *Service) UpdateRootPassword(w http.ResponseWriter, r *http.Request) {
}
req.Password = strings.ReplaceAll(req.Password, `'`, `\'`)
if out, err := shell.Execf(`yes '%s' | passwd root`, req.Password); err != nil {
service.Error(w, http.StatusUnprocessableEntity, out)
if _, err = shell.Execf(`yes '%s' | passwd root`, req.Password); err != nil {
service.Error(w, http.StatusUnprocessableEntity, err.Error())
return
}

View File

@@ -1,6 +0,0 @@
package toolbox
type zone struct {
Label string `json:"label"`
Value string `json:"value"`
}

View File

@@ -36,8 +36,8 @@ func (s *FileService) Create(w http.ResponseWriter, r *http.Request) {
}
if !req.Dir {
if out, err := shell.Execf("touch %s", req.Path); err != nil {
Error(w, http.StatusInternalServerError, out)
if _, err = shell.Execf("touch %s", req.Path); err != nil {
Error(w, http.StatusInternalServerError, err.Error())
return
}
} else {

View File

@@ -36,8 +36,8 @@ func (s *FileService) Create(w http.ResponseWriter, r *http.Request) {
}
if !req.Dir {
if out, err := shell.Execf("touch %s", req.Path); err != nil {
Error(w, http.StatusInternalServerError, out)
if _, err = shell.Execf("touch %s", req.Path); err != nil {
Error(w, http.StatusInternalServerError, err.Error())
return
}
} else {

View File

@@ -159,9 +159,9 @@ func (r *Firewall) RichRules(rule FireInfo, operation Operation) error {
}
ruleStr.WriteString(rule.Strategy)
out, err := shell.Execf("firewall-cmd --zone=public --%s-rich-rule '%s' --permanent", operation, ruleStr.String())
_, err := shell.Execf("firewall-cmd --zone=public --%s-rich-rule '%s' --permanent", operation, ruleStr.String())
if err != nil {
return fmt.Errorf("%s rich rules (%s) failed, err: %s", operation, ruleStr.String(), out)
return fmt.Errorf("%s rich rules (%s) failed, err: %s", operation, ruleStr.String(), err.Error())
}
}
@@ -183,9 +183,9 @@ func (r *Firewall) PortForward(info Forward, operation Operation) error {
}
ruleStr.WriteString(" --permanent")
out, err := shell.Execf(ruleStr.String()) // nolint: govet
_, err := shell.Execf(ruleStr.String()) // nolint: govet
if err != nil {
return fmt.Errorf("%s port forward failed, err: %s", operation, out)
return fmt.Errorf("%s port forward failed, err: %s", operation, err.Error())
}
_, err = shell.Execf("firewall-cmd --reload")