Commit d63f0994 authored by Geoff Simmons's avatar Geoff Simmons

govarnishadm uses the vsm package separately.

To get the management address and secret file path, if necessary.
parent 5fd30104
...@@ -30,6 +30,7 @@ package main ...@@ -30,6 +30,7 @@ package main
import ( import (
"code.uplex.de/uplex-varnish/varnishapi/pkg/admin" "code.uplex.de/uplex-varnish/varnishapi/pkg/admin"
"code.uplex.de/uplex-varnish/varnishapi/pkg/vsm"
"bufio" "bufio"
"flag" "flag"
...@@ -55,27 +56,49 @@ func errExit(err error) { ...@@ -55,27 +56,49 @@ func errExit(err error) {
func main() { func main() {
var adm *admin.Admin var adm *admin.Admin
var admErr error
flag.Parse() flag.Parse()
tmo := time.Duration(*timeout * uint(time.Second)) tmo := time.Duration(*timeout * uint(time.Second))
if *tflag == "" || *sflag == "" { if *tflag == "" || *sflag == "" {
adm, admErr = admin.Attach(*instance, tmo) vsm := vsm.New()
} else { if vsm == nil {
sfile, err := os.Open(*sflag) fmt.Println("Cannot initiate attachment to Varnish "+
if err != nil { "shared memory")
errExit(err) os.Exit(-1)
} }
secret, err := ioutil.ReadAll(sfile) defer vsm.Destroy()
if err != nil { if err := vsm.Attach(*instance); err != nil {
errExit(err) errExit(err)
} }
adm, admErr = admin.Dial(*tflag, secret, tmo) if *tflag == "" {
addr, err := vsm.GetMgmtAddr()
if err != nil {
errExit(err)
}
*tflag = addr
}
if *sflag == "" {
sarg, err := vsm.GetSecretPath()
if err != nil {
errExit(err)
}
*sflag = sarg
}
}
sfile, err := os.Open(*sflag)
if err != nil {
errExit(err)
}
secret, err := ioutil.ReadAll(sfile)
if err != nil {
errExit(err)
} }
if admErr != nil { adm, err = admin.Dial(*tflag, secret, tmo)
errExit(admErr) if err != nil {
errExit(err)
} }
if len(flag.Args()) > 0 { if len(flag.Args()) > 0 {
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment