fix: store forward cli metadata
This commit is contained in:
parent
86e5bb5f0c
commit
f49a5b5a94
|
|
@ -60,6 +60,8 @@ var forwardAddCmd = &cobra.Command{
|
|||
}
|
||||
|
||||
fwdType, _ := cmd.Flags().GetString("type")
|
||||
name, _ := cmd.Flags().GetString("name")
|
||||
description, _ := cmd.Flags().GetString("description")
|
||||
localAddr, _ := cmd.Flags().GetString("local-addr")
|
||||
localPort, _ := cmd.Flags().GetInt("local-port")
|
||||
remoteAddr, _ := cmd.Flags().GetString("remote-addr")
|
||||
|
|
@ -107,12 +109,14 @@ var forwardAddCmd = &cobra.Command{
|
|||
}
|
||||
|
||||
fwd := &model.Forward{
|
||||
ServerID: server.ID,
|
||||
Type: model.ForwardType(fwdType),
|
||||
LocalAddr: localAddr,
|
||||
LocalPort: localPort,
|
||||
RemoteAddr: remoteAddr,
|
||||
RemotePort: remotePort,
|
||||
ServerID: server.ID,
|
||||
Name: name,
|
||||
Description: description,
|
||||
Type: model.ForwardType(fwdType),
|
||||
LocalAddr: localAddr,
|
||||
LocalPort: localPort,
|
||||
RemoteAddr: remoteAddr,
|
||||
RemotePort: remotePort,
|
||||
}
|
||||
|
||||
fwd.Enabled = true
|
||||
|
|
@ -192,6 +196,8 @@ var forwardDeleteCmd = &cobra.Command{
|
|||
|
||||
func init() {
|
||||
forwardAddCmd.Flags().String("type", "local", "Forward type: local, remote, dynamic")
|
||||
forwardAddCmd.Flags().String("name", "", "Forward name")
|
||||
forwardAddCmd.Flags().String("description", "", "Forward description")
|
||||
forwardAddCmd.Flags().String("local-addr", "127.0.0.1", "Listen address")
|
||||
forwardAddCmd.MarkFlagRequired("local-port")
|
||||
forwardAddCmd.Flags().String("remote-addr", "", "Target address")
|
||||
|
|
|
|||
|
|
@ -57,3 +57,56 @@ func TestForwardEditUpdatesEnabledFlag(t *testing.T) {
|
|||
t.Fatal("expected forward to be disabled")
|
||||
}
|
||||
}
|
||||
|
||||
func TestForwardAddStoresNameAndDescription(t *testing.T) {
|
||||
testDB, err := db.Open(t.TempDir())
|
||||
if err != nil {
|
||||
t.Fatalf("open db: %v", err)
|
||||
}
|
||||
defer testDB.Close()
|
||||
|
||||
previousDB := appDB
|
||||
appDB = testDB
|
||||
t.Cleanup(func() { appDB = previousDB })
|
||||
|
||||
server := &model.Server{Alias: "web", Host: "web.example.org", Port: 22, User: "root", AuthMethod: model.AuthKey}
|
||||
if err := appDB.CreateServer(server); err != nil {
|
||||
t.Fatalf("create server: %v", err)
|
||||
}
|
||||
|
||||
cmd := &cobra.Command{}
|
||||
cmd.Flags().String("name", "", "")
|
||||
cmd.Flags().String("description", "", "")
|
||||
cmd.Flags().String("type", "local", "")
|
||||
cmd.Flags().String("local-addr", "127.0.0.1", "")
|
||||
cmd.Flags().Int("local-port", 0, "")
|
||||
cmd.Flags().String("remote-addr", "", "")
|
||||
cmd.Flags().Int("remote-port", 0, "")
|
||||
for flag, value := range map[string]string{
|
||||
"name": "Local PostgreSQL",
|
||||
"description": "DB access",
|
||||
"type": "local",
|
||||
"local-port": "15432",
|
||||
"remote-addr": "127.0.0.1",
|
||||
"remote-port": "5432",
|
||||
} {
|
||||
if err := cmd.Flags().Set(flag, value); err != nil {
|
||||
t.Fatalf("set %s: %v", flag, err)
|
||||
}
|
||||
}
|
||||
|
||||
if err := forwardAddCmd.RunE(cmd, []string{"web"}); err != nil {
|
||||
t.Fatalf("add forward: %v", err)
|
||||
}
|
||||
|
||||
forwards, err := appDB.GetForwards(server.ID)
|
||||
if err != nil {
|
||||
t.Fatalf("get forwards: %v", err)
|
||||
}
|
||||
if len(forwards) != 1 {
|
||||
t.Fatalf("expected one forward, got %d", len(forwards))
|
||||
}
|
||||
if forwards[0].Name != "Local PostgreSQL" || forwards[0].Description != "DB access" {
|
||||
t.Fatalf("unexpected forward metadata: %#v", forwards[0])
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue