From 50ec2d3a50fe84fff8d9132fb72c2f4b0628d065 Mon Sep 17 00:00:00 2001 From: Jana Radhakrishnan Date: Wed, 23 Sep 2015 19:29:56 -0700 Subject: [PATCH] Add Sandbox ID to `service ls` output Currently ther `service ls` output does not show the sandbox ID. This adds that to the output so that it can be used in dnet program. Signed-off-by: Jana Radhakrishnan --- libnetwork/client/service.go | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/libnetwork/client/service.go b/libnetwork/client/service.go index 6b37db4337..f2ecedddeb 100644 --- a/libnetwork/client/service.go +++ b/libnetwork/client/service.go @@ -236,21 +236,22 @@ func (cli *NetworkCli) CmdServiceLs(chain string, args ...string) error { wr := tabwriter.NewWriter(cli.out, 20, 1, 3, ' ', 0) // unless quiet (-q) is specified, print field titles if !*quiet { - fmt.Fprintln(wr, "SERVICE ID\tNAME\tNETWORK\tCONTAINER") + fmt.Fprintln(wr, "SERVICE ID\tNAME\tNETWORK\tCONTAINER\tSANDBOX") } for _, sr := range serviceResources { ID := sr.ID - bkID, err := getBackendID(cli, ID) + bkID, sbID, err := getBackendID(cli, ID) if err != nil { return err } if !*noTrunc { ID = stringid.TruncateID(ID) bkID = stringid.TruncateID(bkID) + sbID = stringid.TruncateID(sbID) } if !*quiet { - fmt.Fprintf(wr, "%s\t%s\t%s\t%s\n", ID, sr.Name, sr.Network, bkID) + fmt.Fprintf(wr, "%s\t%s\t%s\t%s\t%s\n", ID, sr.Name, sr.Network, bkID, sbID) } else { fmt.Fprintln(wr, ID) } @@ -260,24 +261,26 @@ func (cli *NetworkCli) CmdServiceLs(chain string, args ...string) error { return nil } -func getBackendID(cli *NetworkCli, servID string) (string, error) { +func getBackendID(cli *NetworkCli, servID string) (string, string, error) { var ( obj []byte err error bk string + sb string ) if obj, _, err = readBody(cli.call("GET", "/services/"+servID+"/backend", nil, nil)); err == nil { var sr SandboxResource if err := json.NewDecoder(bytes.NewReader(obj)).Decode(&sr); err == nil { bk = sr.ContainerID + sb = sr.ID } else { // Only print a message, don't make the caller cli fail for this fmt.Fprintf(cli.out, "Failed to retrieve backend list for service %s (%v)\n", servID, err) } } - return bk, err + return bk, sb, err } // CmdServiceInfo handles service info UI