Skip to content

Commit

Permalink
feat: Added node delete command
Browse files Browse the repository at this point in the history
  • Loading branch information
ditatompel committed Sep 16, 2024
1 parent ef953b3 commit 5f2bcdf
Show file tree
Hide file tree
Showing 2 changed files with 61 additions and 0 deletions.
2 changes: 2 additions & 0 deletions cmd/server/init.go
Original file line number Diff line number Diff line change
Expand Up @@ -12,4 +12,6 @@ func init() {
probersCmd.AddCommand(deleteProbersCmd)
listProbersCmd.Flags().StringP("sort-by", "s", "last_submit_ts", "Sort by column name, can be id or last_submit_ts")
listProbersCmd.Flags().StringP("sort-dir", "d", "desc", "Sort direction, can be asc or desc")
cmd.Root.AddCommand(nodeCmd)
nodeCmd.AddCommand(deleteNodeCmd)
}
59 changes: 59 additions & 0 deletions cmd/server/node.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,59 @@
package server

import (
"fmt"
"log/slog"
"os"
"strconv"

"github.com/ditatompel/xmr-remote-nodes/internal/database"
"github.com/ditatompel/xmr-remote-nodes/internal/monero"

"github.com/spf13/cobra"
)

var nodeCmd = &cobra.Command{
Use: "node",
Short: "[Server] Administer monitored nodes",
Long: `Command to administer monitored nodes.
This command should only be run on the server which directly connect to the MySQL database.
`,
Run: func(cmd *cobra.Command, _ []string) {
if err := cmd.Help(); err != nil {
slog.Error(err.Error())
os.Exit(1)
}
},
}

var deleteNodeCmd = &cobra.Command{
Use: "delete",
Short: "Delete node",
Long: `Delete node identified by ID.
This command delete node and it's associated probe logs (if exists).
To find out the node ID, visit frontend UI or from "/api/v1/nodes" endpoint.
`,
Run: func(_ *cobra.Command, _ []string) {
if err := database.ConnectDB(); err != nil {
fmt.Println(err)
return
}
nodeID, err := strconv.Atoi(stringPrompt("Node ID:"))
if err != nil {
fmt.Println("Invalid ID:", err)
return
}

moneroRepo := monero.New()
err = moneroRepo.Delete(uint(nodeID))
if err != nil {
fmt.Println("Failed to delete node:", err)
return
}

fmt.Printf("Node ID %d deleted\n", nodeID)
},
}

0 comments on commit 5f2bcdf

Please sign in to comment.