You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mynewt.apache.org by ma...@apache.org on 2016/05/20 01:22:12 UTC

[03/13] incubator-mynewt-newt git commit: Add logs list support

Add logs list support


Project: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newt/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newt/commit/4724388c
Tree: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newt/tree/4724388c
Diff: http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newt/diff/4724388c

Branch: refs/heads/develop
Commit: 4724388c2420086f14c804daca5899ea50a0ee64
Parents: ee38234
Author: Vipul Rahane <vi...@runtime.io>
Authored: Tue Apr 26 12:23:23 2016 -0700
Committer: Vipul Rahane <vi...@runtime.io>
Committed: Tue May 17 12:39:53 2016 -0700

----------------------------------------------------------------------
 newtmgr/cli/logs.go      | 57 +++++++++++++++++++++++++++++++++++++++++++
 newtmgr/protocol/logs.go | 46 ++++++++++++++++++++++++++++++++++
 2 files changed, 103 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newt/blob/4724388c/newtmgr/cli/logs.go
----------------------------------------------------------------------
diff --git a/newtmgr/cli/logs.go b/newtmgr/cli/logs.go
index bd26724..ed97060 100644
--- a/newtmgr/cli/logs.go
+++ b/newtmgr/cli/logs.go
@@ -237,6 +237,55 @@ func logsModuleListCmd(cmd *cobra.Command, args []string) {
 
 }
 
+func logsListCmd(cmd *cobra.Command, args []string) {
+	cpm, err := config.NewConnProfileMgr()
+	if err != nil {
+		nmUsage(cmd, err)
+	}
+
+	profile, err := cpm.GetConnProfile(ConnProfileName)
+	if err != nil {
+		nmUsage(cmd, err)
+	}
+
+	conn, err := transport.NewConn(profile)
+	if err != nil {
+		nmUsage(cmd, err)
+	}
+
+	runner, err := protocol.NewCmdRunner(conn)
+	if err != nil {
+		nmUsage(cmd, err)
+	}
+
+	req, err := protocol.NewLogsListReq()
+	if err != nil {
+		nmUsage(cmd, err)
+	}
+
+	nmr, err := req.Encode()
+	if err != nil {
+		nmUsage(cmd, err)
+	}
+
+	if err := runner.WriteReq(nmr); err != nil {
+		nmUsage(cmd, err)
+	}
+
+	rsp, err := runner.ReadResp()
+	if err != nil {
+		nmUsage(cmd, err)
+	}
+
+	decodedResponse, err := protocol.DecodeLogsListResponse(rsp.Data)
+	if err != nil {
+		nmUsage(cmd, err)
+	}
+
+	fmt.Println(decodedResponse.List)
+	fmt.Printf("Return Code = %d\n", decodedResponse.ReturnCode)
+}
+
 func logsLevelListCmd(cmd *cobra.Command, args []string) {
 	cpm, err := config.NewConnProfileMgr()
 	if err != nil {
@@ -371,5 +420,13 @@ func logsCmd() *cobra.Command {
 	}
 
 	logsCmd.AddCommand(levelListCmd)
+
+	ListCmd := &cobra.Command{
+		Use:   "log_list",
+		Short: "Log List Command",
+		Run:   logsListCmd,
+	}
+
+	logsCmd.AddCommand(ListCmd)
 	return logsCmd
 }

http://git-wip-us.apache.org/repos/asf/incubator-mynewt-newt/blob/4724388c/newtmgr/protocol/logs.go
----------------------------------------------------------------------
diff --git a/newtmgr/protocol/logs.go b/newtmgr/protocol/logs.go
index 327e79f..c75bc56 100644
--- a/newtmgr/protocol/logs.go
+++ b/newtmgr/protocol/logs.go
@@ -28,6 +28,7 @@ const (
 	LOGS_NMGR_OP_APPEND      = 2
 	LOGS_NMGR_OP_MODULE_LIST = 3
 	LOGS_NMGR_OP_LEVEL_LIST  = 4
+	LOGS_NMGR_OP_LOGS_LIST   = 5
 )
 
 type LogsShowReq struct {
@@ -42,6 +43,9 @@ type LogsModuleListReq struct {
 type LogsLevelListReq struct {
 }
 
+type LogsListReq struct {
+}
+
 type LogEntry struct {
 	Timestamp int64  `json:"ts"`
 	Msg       string `json:"msg"`
@@ -71,6 +75,11 @@ type LogsLevelListRsp struct {
 	Map        map[string]int `json:"level_map"`
 }
 
+type LogsListRsp struct {
+	ReturnCode int      `json:"rc"`
+	List       []string `json:"log_list"`
+}
+
 func NewLogsShowReq() (*LogsShowReq, error) {
 	s := &LogsShowReq{}
 
@@ -89,6 +98,12 @@ func NewLogsLevelListReq() (*LogsLevelListReq, error) {
 	return s, nil
 }
 
+func NewLogsListReq() (*LogsListReq, error) {
+	s := &LogsListReq{}
+
+	return s, nil
+}
+
 func (sr *LogsModuleListReq) Encode() (*NmgrReq, error) {
 	nmr, err := NewNmgrReq()
 	if err != nil {
@@ -109,6 +124,37 @@ func (sr *LogsModuleListReq) Encode() (*NmgrReq, error) {
 	return nmr, nil
 }
 
+func DecodeLogsListResponse(data []byte) (*LogsListRsp, error) {
+	var resp LogsListRsp
+	err := json.Unmarshal(data, &resp)
+	if err != nil {
+		return nil, util.NewNewtError(fmt.Sprintf("Invalid incoming json: %s",
+			err.Error()))
+	}
+
+	return &resp, nil
+}
+
+func (sr *LogsListReq) Encode() (*NmgrReq, error) {
+	nmr, err := NewNmgrReq()
+	if err != nil {
+		return nil, err
+	}
+
+	nmr.Op = NMGR_OP_READ
+	nmr.Flags = 0
+	nmr.Group = NMGR_GROUP_ID_LOGS
+	nmr.Id = LOGS_NMGR_OP_LOGS_LIST
+
+	req := &LogsListReq{}
+
+	data, _ := json.Marshal(req)
+	nmr.Data = data
+	nmr.Len = uint16(len(data))
+
+	return nmr, nil
+}
+
 func DecodeLogsLevelListResponse(data []byte) (*LogsLevelListRsp, error) {
 	var resp LogsLevelListRsp
 	err := json.Unmarshal(data, &resp)