mirror of
https://github.com/weaveworks/scope.git
synced 2026-07-16 03:49:52 +00:00
Improve error reporting when invoking weave script
This commit is contained in:
@@ -4,6 +4,7 @@ import (
|
||||
"bufio"
|
||||
"bytes"
|
||||
"fmt"
|
||||
"io/ioutil"
|
||||
"net"
|
||||
"net/http"
|
||||
"net/url"
|
||||
@@ -164,7 +165,11 @@ func (c *client) AddDNSEntry(fqdn, containerID string, ip net.IP) error {
|
||||
|
||||
func (c *client) PS() (map[string]PSEntry, error) {
|
||||
cmd := weaveCommand("--local", "ps")
|
||||
out, err := cmd.StdoutPipe()
|
||||
stdOut, err := cmd.StdoutPipe()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
stdErr, err := cmd.StderrPipe()
|
||||
if err != nil {
|
||||
return nil, err
|
||||
}
|
||||
@@ -173,7 +178,7 @@ func (c *client) PS() (map[string]PSEntry, error) {
|
||||
}
|
||||
|
||||
psEntriesByPrefix := map[string]PSEntry{}
|
||||
scanner := bufio.NewScanner(out)
|
||||
scanner := bufio.NewScanner(stdOut)
|
||||
for scanner.Scan() {
|
||||
line := scanner.Text()
|
||||
groups := weavePsMatch.FindStringSubmatch(line)
|
||||
@@ -193,7 +198,8 @@ func (c *client) PS() (map[string]PSEntry, error) {
|
||||
scannerErr := scanner.Err()
|
||||
cmdErr := cmd.Wait()
|
||||
if cmdErr != nil {
|
||||
return nil, cmdErr
|
||||
slurp, _ := ioutil.ReadAll(stdErr)
|
||||
return nil, fmt.Errorf("%s: %q", cmdErr, slurp)
|
||||
}
|
||||
if scannerErr != nil {
|
||||
return nil, scannerErr
|
||||
@@ -202,17 +208,29 @@ func (c *client) PS() (map[string]PSEntry, error) {
|
||||
}
|
||||
|
||||
func (c *client) Expose() error {
|
||||
output, err := weaveCommand("--local", "ps", "weave:expose").Output()
|
||||
cmd := weaveCommand("--local", "ps", "weave:expose")
|
||||
stdErr, err := cmd.StderrPipe()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
output, err := cmd.Output()
|
||||
if err != nil {
|
||||
slurp, _ := ioutil.ReadAll(stdErr)
|
||||
return fmt.Errorf("Error running weave ps: %s: %q", err, slurp)
|
||||
}
|
||||
ips := ipMatch.FindAllSubmatch(output, -1)
|
||||
if ips != nil {
|
||||
// Alread exposed!
|
||||
return nil
|
||||
}
|
||||
if err := weaveCommand("--local", "expose").Run(); err != nil {
|
||||
return fmt.Errorf("Error running weave expose: %v", err)
|
||||
cmd = weaveCommand("--local", "expose")
|
||||
stdErr, err = cmd.StderrPipe()
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
if err := cmd.Run(); err != nil {
|
||||
slurp, _ := ioutil.ReadAll(stdErr)
|
||||
return fmt.Errorf("Error running weave expose: %s: %q", err, slurp)
|
||||
}
|
||||
return nil
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user