Fix mail queue and logs commands
- Hardcode paths: /usr/sbin/postqueue, /usr/sbin/postsuper, /usr/bin/journalctl - Fix postqueue: remove -p flag (conflicts with -j) - Add stderr logging for queue errors
This commit is contained in:
parent
d56722ddb9
commit
060f88dffe
3 changed files with 14 additions and 8 deletions
|
|
@ -1,6 +1,7 @@
|
|||
package handlers
|
||||
|
||||
import (
|
||||
"log"
|
||||
"net/http"
|
||||
|
||||
"github.com/imc-vibe/backend/internal/mail"
|
||||
|
|
@ -20,7 +21,8 @@ func (h *QueueHandler) List(w http.ResponseWriter, r *http.Request) {
|
|||
|
||||
entries, err := mail.GetQueue()
|
||||
if err != nil {
|
||||
Error(w, http.StatusServiceUnavailable, "mail queue tools not available")
|
||||
log.Printf("Queue error: %v", err)
|
||||
Error(w, http.StatusServiceUnavailable, "failed to get queue: "+err.Error())
|
||||
return
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -26,7 +26,7 @@ func GetLogs(hours int, filter string) ([]LogEntry, error) {
|
|||
"--no-pager",
|
||||
}
|
||||
|
||||
cmd := exec.CommandContext(ctx, "journalctl", args...)
|
||||
cmd := exec.CommandContext(ctx, "/usr/bin/journalctl", args...)
|
||||
var out bytes.Buffer
|
||||
cmd.Stdout = &out
|
||||
|
||||
|
|
|
|||
|
|
@ -4,6 +4,7 @@ import (
|
|||
"bufio"
|
||||
"bytes"
|
||||
"encoding/json"
|
||||
"fmt"
|
||||
"os/exec"
|
||||
"regexp"
|
||||
"strconv"
|
||||
|
|
@ -22,12 +23,15 @@ type QueueEntry struct {
|
|||
var queueLineRegex = regexp.MustCompile(`^([A-Fa-f0-9]+)\s+(\d+)\s+(\w+)\s+([A-Za-z]+\s+\d+\s+[\d:]+)\s+([^\s]+)\s+(.+)$`)
|
||||
|
||||
func GetQueue() ([]QueueEntry, error) {
|
||||
cmd := exec.Command("postqueue", "-p", "-j")
|
||||
cmd := exec.Command("/usr/sbin/postqueue", "-j")
|
||||
var out bytes.Buffer
|
||||
var stderr bytes.Buffer
|
||||
cmd.Stdout = &out
|
||||
cmd.Stderr = &stderr
|
||||
|
||||
if err := cmd.Run(); err != nil {
|
||||
return nil, err
|
||||
err := cmd.Run()
|
||||
if err != nil {
|
||||
return nil, fmt.Errorf("/usr/sbin/postqueue -j: %v (stderr: %s)", err, stderr.String())
|
||||
}
|
||||
|
||||
var entries []QueueEntry
|
||||
|
|
@ -77,7 +81,7 @@ func GetQueue() ([]QueueEntry, error) {
|
|||
}
|
||||
|
||||
func RequeueMail(id string) error {
|
||||
cmd := exec.Command("postqueue", "-f", "-v")
|
||||
cmd := exec.Command("/usr/sbin/postqueue", "-f", "-v")
|
||||
var out bytes.Buffer
|
||||
cmd.Stdout = &out
|
||||
cmd.Stderr = &out
|
||||
|
|
@ -89,12 +93,12 @@ func RequeueMail(id string) error {
|
|||
}
|
||||
|
||||
func DeleteFromQueue(id string) error {
|
||||
cmd := exec.Command("postsuper", "-d", id)
|
||||
cmd := exec.Command("/usr/sbin/postsuper", "-d", id)
|
||||
return cmd.Run()
|
||||
}
|
||||
|
||||
func GetQueueCount() (int, error) {
|
||||
cmd := exec.Command("postqueue", "-p")
|
||||
cmd := exec.Command("/usr/sbin/postqueue", "-j")
|
||||
var out bytes.Buffer
|
||||
cmd.Stdout = &out
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue