Bläddra i källkod

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 <mrjana@docker.com>
Jana Radhakrishnan 9 år sedan
förälder
incheckning
50ec2d3a50
1 ändrade filer med 8 tillägg och 5 borttagningar
  1. 8 5
      libnetwork/client/service.go

+ 8 - 5
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