Skip to content

Commit 6125a0c

Browse files
authored
Merge pull request #117 from mgit-at/basic-cmdline-db-interface
cmdline: add basic cmdline interface to at least look up objects by id
2 parents a66b730 + 202a367 commit 6125a0c

File tree

2 files changed

+37
-0
lines changed

2 files changed

+37
-0
lines changed

README.md

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -131,3 +131,21 @@ Check the managment page
131131
browser: https://localhost:9999/mgmt
132132

133133

134+
## Debugging
135+
136+
`lfs-test-server` supports a basic cmd to lookup `OID's` via the cmdline to help in debugging, eg. investigating client problems with a particular `OID` and it's properties.
137+
In this mode `lfs-test-server` expects the same configuration as when running in daemon mode, but will just executing the requested cmd and then exit.
138+
139+
This is especially helpful in server environments where it's not always possible to get to the web interface easily or where it's just too slow because of DB size.
140+
141+
`lfs-test-server cmd <OID>`
142+
143+
Outputs the full OID record
144+
145+
# Example
146+
147+
```
148+
% . /etc/default/lfs-instancefoo # to source server config
149+
% ./lfs-test-server cmd 7c9414fe21ad7b45ffb6e72da86f9a9e13dbb2971365ae7bcb8cc7fbbba7419c
150+
&{Oid:7c9414fe21ad7b45ffb6e72da86f9a9e13dbb2971365ae7bcb8cc7fbbba7419c Size:3334144 Existing:false}
151+
```

main.go

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,11 +63,30 @@ func wrapHttps(l net.Listener, cert, key string) (net.Listener, error) {
6363
return tlsListener, nil
6464
}
6565

66+
func maincmd() {
67+
// cmdline interface: cmd oid -> returns object from db or error
68+
metaStore, err := NewMetaStore(Config.MetaDB)
69+
if err != nil {
70+
logger.Fatal(kv{"fn": "maincmd", "err": "Could not open the meta store: " + err.Error()})
71+
}
72+
73+
oid := os.Args[2]
74+
meta, err := metaStore.UnsafeGet(&RequestVars{Oid: oid})
75+
if err != nil {
76+
logger.Fatal(kv{"fn": "maincmd", "err": "Could not find object: " + err.Error()})
77+
}
78+
fmt.Printf("%+v\n", meta)
79+
}
80+
6681
func main() {
6782
if len(os.Args) == 2 && os.Args[1] == "-v" {
6883
fmt.Println(version)
6984
os.Exit(0)
7085
}
86+
if len(os.Args) > 2 && os.Args[1] == "cmd" {
87+
maincmd()
88+
os.Exit(0)
89+
}
7190

7291
var listener net.Listener
7392

0 commit comments

Comments
 (0)