github.com/Cloud-Foundations/Dominator@v0.3.4/cmd/logtool/getStack.go (about)

     1  package main
     2  
     3  import (
     4  	"fmt"
     5  	"os"
     6  
     7  	"github.com/Cloud-Foundations/Dominator/lib/log"
     8  	"github.com/Cloud-Foundations/Dominator/lib/srpc"
     9  	proto "github.com/Cloud-Foundations/Dominator/proto/logger"
    10  )
    11  
    12  func getStackTraceSubcommand(args []string, logger log.DebugLogger) error {
    13  	clients, _, err := dial(false)
    14  	if err != nil {
    15  		return err
    16  	}
    17  	if err := getStackTrace(clients[0]); err != nil {
    18  		return fmt.Errorf("error getting stack trace: %s", err)
    19  	}
    20  	return nil
    21  }
    22  
    23  func getStackTrace(client *srpc.Client) error {
    24  	var reply proto.GetStackTraceResponse
    25  	err := client.RequestReply("Logger.GetStackTrace",
    26  		proto.GetStackTraceRequest{}, &reply)
    27  	if err != nil {
    28  		return err
    29  	}
    30  	_, err = os.Stdout.Write(reply.Data)
    31  	return err
    32  }