Skip to content
This repository was archived by the owner on Feb 8, 2021. It is now read-only.

Commit 9dc7175

Browse files
authored
Merge pull request #743 from teawater/serrpclog
Update GRPC logs to make it more clear
2 parents 1f9e27d + 699dd7d commit 9dc7175

12 files changed

+92
-197
lines changed

serverrpc/attach.go

+9-3
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package serverrpc
22

33
import (
4+
"fmt"
45
"github.com/golang/glog"
56
"github.com/hyperhq/hyperd/types"
67
"io"
@@ -12,9 +13,9 @@ func (s *ServerRPC) Attach(stream types.PublicAPI_AttachServer) error {
1213
return nil
1314
}
1415
if err != nil {
15-
return err
16+
return fmt.Errorf("stream.Recv error: %v", err)
1617
}
17-
glog.V(3).Infof("Attach with request %s", req.String())
18+
glog.V(3).Infof("Attach with ServerStream %s request %s", stream, req.String())
1819

1920
ir, iw := io.Pipe()
2021
or, ow := io.Pipe()
@@ -64,5 +65,10 @@ func (s *ServerRPC) Attach(stream types.PublicAPI_AttachServer) error {
6465
}
6566
}()
6667

67-
return s.daemon.Attach(ir, ow, req.ContainerID)
68+
err = s.daemon.Attach(ir, ow, req.ContainerID)
69+
if err != nil {
70+
return fmt.Errorf("s.daemon.Attach with request %s error: %v", req.String(), err)
71+
}
72+
73+
return nil
6874
}

serverrpc/container.go

+2-26
Original file line numberDiff line numberDiff line change
@@ -1,90 +1,66 @@
11
package serverrpc
22

33
import (
4-
"github.com/golang/glog"
54
"github.com/hyperhq/hyperd/types"
65
"golang.org/x/net/context"
76
)
87

98
// ContainerCreate creates a container by UserContainer spec
109
func (s *ServerRPC) ContainerCreate(ctx context.Context, req *types.ContainerCreateRequest) (*types.ContainerCreateResponse, error) {
11-
glog.V(3).Infof("ContainerCreate with request %s", req.String())
12-
1310
containerID, err := s.daemon.CreateContainerInPod(req.PodID, req.ContainerSpec)
1411
if err != nil {
15-
glog.Errorf("ContainerCreate failed %v with request %s: %v", err, req.String())
1612
return nil, err
1713
}
1814

19-
glog.V(3).Infof("ContainerCreate done with request %s", req.String())
20-
2115
return &types.ContainerCreateResponse{
2216
ContainerID: containerID,
2317
}, nil
2418
}
2519

2620
func (s *ServerRPC) ContainerStart(ctx context.Context, req *types.ContainerStartRequest) (*types.ContainerStartResponse, error) {
27-
glog.V(3).Info("ContainerStart with request %s", req.String())
2821
err := s.daemon.StartContainer(req.ContainerId)
2922
if err != nil {
30-
glog.Errorf("ContainerStart failed %v with request %s", err, req.String())
3123
return nil, err
3224
}
33-
glog.V(3).Info("ContainerStart done with request %s", req.String())
25+
3426
return &types.ContainerStartResponse{}, nil
3527
}
3628

3729
// ContainerStop implements POST /container/stop
3830
func (s *ServerRPC) ContainerStop(c context.Context, req *types.ContainerStopRequest) (*types.ContainerStopResponse, error) {
39-
glog.V(3).Infof("ContainerStop with request %v", req.String())
40-
4131
err := s.daemon.StopContainer(req.ContainerID, int(req.Timeout))
4232
if err != nil {
43-
glog.Errorf("ContainerStop failed %v with request %v", err, req.String())
4433
return nil, err
4534
}
4635

47-
glog.V(3).Infof("ContainerStop done with request %v", req.String())
48-
4936
return &types.ContainerStopResponse{}, nil
5037
}
5138

5239
// ContainerRename rename a container
5340
func (s *ServerRPC) ContainerRename(c context.Context, req *types.ContainerRenameRequest) (*types.ContainerRenameResponse, error) {
54-
glog.V(3).Infof("ContainerRename with request %v", req.String())
55-
5641
err := s.daemon.ContainerRename(req.OldContainerName, req.NewContainerName)
5742
if err != nil {
58-
glog.Errorf("ContainerRename failed %v with request %v", err, req.String())
5943
return nil, err
6044
}
6145

62-
glog.V(3).Infof("ContainerRename done with request %v", req.String())
63-
6446
return &types.ContainerRenameResponse{}, nil
6547
}
6648

6749
func (s *ServerRPC) ContainerRemove(ctx context.Context, req *types.ContainerRemoveRequest) (*types.ContainerRemoveResponse, error) {
68-
glog.V(3).Info("ContainerRemove with request %s", req.String())
6950
err := s.daemon.RemoveContainer(req.ContainerId)
7051
if err != nil {
71-
glog.Errorf("ContainerRemove failed %v with request %s", err, req.String())
7252
return nil, err
7353
}
74-
glog.V(3).Info("ContainerRemove done with request %s", req.String())
54+
7555
return &types.ContainerRemoveResponse{}, nil
7656
}
7757

7858
// ContainerSignal sends a singal to specified container of specified pod
7959
func (s *ServerRPC) ContainerSignal(ctx context.Context, req *types.ContainerSignalRequest) (*types.ContainerSignalResponse, error) {
80-
glog.V(3).Infof("ContainerSignal with request %s", req.String())
81-
8260
err := s.daemon.KillPodContainers(req.PodID, req.ContainerID, req.Signal)
8361
if err != nil {
84-
glog.Errorf("ContainerSignal failed %v done with request %s", err, req.String())
8562
return nil, err
8663
}
8764

88-
glog.V(3).Infof("ContainerSignal done with request %s", req.String())
8965
return &types.ContainerSignalResponse{}, nil
9066
}

serverrpc/exec.go

+13-27
Original file line numberDiff line numberDiff line change
@@ -4,29 +4,24 @@ import (
44
"encoding/json"
55
"io"
66

7+
"fmt"
78
"github.com/golang/glog"
89
"github.com/hyperhq/hyperd/lib/promise"
910
"github.com/hyperhq/hyperd/types"
1011
"golang.org/x/net/context"
1112
)
1213

1314
func (s *ServerRPC) ExecCreate(ctx context.Context, req *types.ExecCreateRequest) (*types.ExecCreateResponse, error) {
14-
glog.V(3).Infof("ExecCreate with request %s", req.String())
15-
1615
cmd, err := json.Marshal(req.Command)
1716
if err != nil {
18-
return nil, err
17+
return nil, fmt.Errorf("json.Marshal error: %v", err)
1918
}
2019

2120
execId, err := s.daemon.CreateExec(req.ContainerID, string(cmd), req.Tty)
2221
if err != nil {
23-
glog.Errorf("ExecCreate failed %v with request %s", err, req.String())
24-
25-
return nil, err
22+
return nil, fmt.Errorf("s.daemon.CreateExec error: %v", err)
2623
}
2724

28-
glog.V(3).Infof("ExecCreate done with request %s", req.String())
29-
3025
return &types.ExecCreateResponse{
3126
ExecID: execId,
3227
}, nil
@@ -35,8 +30,9 @@ func (s *ServerRPC) ExecCreate(ctx context.Context, req *types.ExecCreateRequest
3530
func (s *ServerRPC) ExecStart(stream types.PublicAPI_ExecStartServer) error {
3631
req, err := stream.Recv()
3732
if err != nil {
38-
return err
33+
return fmt.Errorf("stream.Recv error: %v", err)
3934
}
35+
glog.V(3).Infof("ExecStart with ServerStream %s request %s", stream, req.String())
4036

4137
inReader, inWriter := io.Pipe()
4238
outReader, outWriter := io.Pipe()
@@ -47,16 +43,14 @@ func (s *ServerRPC) ExecStart(stream types.PublicAPI_ExecStartServer) error {
4743
nr, err := outReader.Read(buf)
4844
if nr > 0 {
4945
if err := stream.Send(&types.ExecStartResponse{buf[:nr]}); err != nil {
50-
glog.Errorf("Send to stream error: %v", err)
51-
return err
46+
return fmt.Errorf("stream.Send with request %s error: %v", req.String(), err)
5247
}
5348
}
5449
if err == io.EOF {
5550
return nil
5651
}
5752
if err != nil {
58-
glog.Errorf("Read from pipe error: %v", err)
59-
return err
53+
return fmt.Errorf("outReader.Read with request %s error: %v", req.String(), err)
6054
}
6155
}
6256
})
@@ -87,52 +81,45 @@ func (s *ServerRPC) ExecStart(stream types.PublicAPI_ExecStartServer) error {
8781

8882
err = s.daemon.StartExec(inReader, outWriter, req.ContainerID, req.ExecID)
8983
if err != nil {
90-
return err
84+
return fmt.Errorf("s.daemon.StartExec with request %s error: %v", req.String(), err)
9185
}
9286
err = <-outErr
9387
return err
9488
}
9589

9690
// Wait gets exitcode by container and processId
9791
func (s *ServerRPC) Wait(c context.Context, req *types.WaitRequest) (*types.WaitResponse, error) {
98-
glog.V(3).Infof("Wait with request %s", req.String())
99-
10092
//FIXME need update if param NoHang is enabled
10193
code, err := s.daemon.ExitCode(req.Container, req.ProcessId)
10294
if err != nil {
103-
glog.Errorf("Wait failed %v with request %s", err, req.String())
10495
return nil, err
10596
}
10697

107-
glog.V(3).Infof("Wait done with request %s", req.String())
10898
return &types.WaitResponse{
10999
ExitCode: int32(code),
110100
}, nil
111101
}
112102

113103
// ExecSignal sends a singal to specified exec of specified container
114104
func (s *ServerRPC) ExecSignal(ctx context.Context, req *types.ExecSignalRequest) (*types.ExecSignalResponse, error) {
115-
glog.V(3).Infof("ExecSignal with request %s", req.String())
116-
117105
err := s.daemon.KillExec(req.ContainerID, req.ExecID, req.Signal)
118106
if err != nil {
119-
glog.Errorf("ExecSignal failed %v with request %s", err, req.String())
120107
return nil, err
121108
}
122109

123-
glog.V(3).Infof("ExecSignal done with request %s", req.String())
124110
return &types.ExecSignalResponse{}, nil
125111
}
126112

127113
func (s *ServerRPC) ExecVM(stream types.PublicAPI_ExecVMServer) error {
128114
req, err := stream.Recv()
129115
if err != nil {
130-
return err
116+
return fmt.Errorf("stream.Recv error: %v", err)
131117
}
118+
glog.V(3).Infof("ExecVM with ServerStream %s request %s", stream, req.String())
132119

133120
cmd, err := json.Marshal(req.Command)
134121
if err != nil {
135-
return err
122+
return fmt.Errorf("json.Marshal with request %s error: %v", req.String(), err)
136123
}
137124

138125
inReader, inWriter := io.Pipe()
@@ -187,13 +174,12 @@ func (s *ServerRPC) ExecVM(stream types.PublicAPI_ExecVMServer) error {
187174

188175
code, err := s.daemon.ExecVM(req.PodID, string(cmd), inReader, outWriter, outWriter)
189176
if err != nil {
190-
return err
177+
return fmt.Errorf("s.daemon.ExecVM with request %s error: %v", req.String(), err)
191178
}
192179
if err := stream.Send(&types.ExecVMResponse{
193180
ExitCode: int32(code),
194181
}); err != nil {
195-
glog.Errorf("Send to stream error: %v", err)
196-
return err
182+
return fmt.Errorf("stream.Send with request %s error: %v", req.String(), err)
197183
}
198184

199185
return nil

serverrpc/images.go

+12-18
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import (
55
"io"
66
"io/ioutil"
77

8+
"fmt"
89
enginetypes "github.com/docker/engine-api/types"
910
"github.com/golang/glog"
1011
"github.com/hyperhq/hyperd/types"
@@ -13,11 +14,8 @@ import (
1314

1415
// ImageList implements GET /images/get
1516
func (s *ServerRPC) ImageList(ctx context.Context, req *types.ImageListRequest) (*types.ImageListResponse, error) {
16-
glog.V(3).Infof("ImageList with request %s", req.String())
17-
1817
images, err := s.daemon.Daemon.Images(req.FilterArgs, req.Filter, req.All)
1918
if err != nil {
20-
glog.Errorf("ImageList failed %v with request %s", err, req.String())
2119
return nil, err
2220
}
2321

@@ -34,16 +32,13 @@ func (s *ServerRPC) ImageList(ctx context.Context, req *types.ImageListRequest)
3432
})
3533
}
3634

37-
glog.V(3).Infof("ImageList done with request %s", req.String())
3835
return &types.ImageListResponse{
3936
ImageList: result,
4037
}, nil
4138
}
4239

4340
// ImagePull pulls a image from registry
4441
func (s *ServerRPC) ImagePull(req *types.ImagePullRequest, stream types.PublicAPI_ImagePullServer) error {
45-
glog.V(3).Infof("ImagePull with request %s", req.String())
46-
4742
authConfig := &enginetypes.AuthConfig{}
4843
if req.Auth != nil {
4944
authConfig = &enginetypes.AuthConfig{
@@ -55,6 +50,7 @@ func (s *ServerRPC) ImagePull(req *types.ImagePullRequest, stream types.PublicAP
5550
RegistryToken: req.Auth.Registrytoken,
5651
}
5752
}
53+
glog.V(3).Infof("ImagePull with ServerStream %s request %s", stream, req.String())
5854

5955
r, w := io.Pipe()
6056

@@ -80,7 +76,7 @@ func (s *ServerRPC) ImagePull(req *types.ImagePullRequest, stream types.PublicAP
8076
}
8177

8278
if err := stream.Send(&types.ImagePullResponse{Data: data[:n]}); err != nil {
83-
glog.Errorf("Send image pull progress to stream error: %v", err)
79+
glog.Errorf("Send image pull progress to stream error: %v", err)
8480
return
8581
}
8682
}
@@ -89,14 +85,14 @@ func (s *ServerRPC) ImagePull(req *types.ImagePullRequest, stream types.PublicAP
8985
pullResult = s.daemon.CmdImagePull(req.Image, req.Tag, authConfig, nil, w)
9086
complete = true
9187

92-
glog.V(3).Infof("ImagePull done with request %s", req.String())
88+
if pullResult != nil {
89+
pullResult = fmt.Errorf("s.daemon.CmdImagePull with request %s error: %v", req.String(), pullResult)
90+
}
9391
return pullResult
9492
}
9593

9694
// ImagePush pushes a local image to registry
9795
func (s *ServerRPC) ImagePush(req *types.ImagePushRequest, stream types.PublicAPI_ImagePushServer) error {
98-
glog.V(3).Infof("ImagePush with request %s", req.String())
99-
10096
authConfig := &enginetypes.AuthConfig{}
10197
if req.Auth != nil {
10298
authConfig = &enginetypes.AuthConfig{
@@ -108,6 +104,7 @@ func (s *ServerRPC) ImagePush(req *types.ImagePushRequest, stream types.PublicAP
108104
RegistryToken: req.Auth.Registrytoken,
109105
}
110106
}
107+
glog.V(3).Infof("ImagePush with ServerStream %s request %s", stream, req.String())
111108

112109
buffer := bytes.NewBuffer([]byte{})
113110
var pushResult error
@@ -128,30 +125,27 @@ func (s *ServerRPC) ImagePush(req *types.ImagePushRequest, stream types.PublicAP
128125
}
129126

130127
if err != nil {
131-
glog.Errorf("ImagePush read image push stream failed %v with request %s", err, req.String())
132-
return err
128+
return fmt.Errorf("ImagePush read image push stream with request %s error: %v", req.String(), err)
133129
}
134130

135131
if err := stream.Send(&types.ImagePushResponse{Data: data}); err != nil {
136-
return err
132+
return fmt.Errorf("stream.Send with request %s error: %v", req.String(), err)
137133
}
138134
}
139135

140-
glog.V(3).Infof("ImagePush done with request %s", req.String())
136+
if pushResult != nil {
137+
pushResult = fmt.Errorf("s.daemon.CmdImagePush with request %s error: %v", req.String(), pushResult)
138+
}
141139
return pushResult
142140
}
143141

144142
// ImageRemove deletes a image from hyperd
145143
func (s *ServerRPC) ImageRemove(ctx context.Context, req *types.ImageRemoveRequest) (*types.ImageRemoveResponse, error) {
146-
glog.V(3).Infof("ImageDelete with request %s", req.String())
147-
148144
resp, err := s.daemon.CmdImageDelete(req.Image, req.Force, req.Prune)
149145
if err != nil {
150-
glog.Errorf("ImageDelete failed %v with request %s", err, req.String())
151146
return nil, err
152147
}
153148

154-
glog.V(3).Infof("ImageDelete done with request %s", req.String())
155149
return &types.ImageRemoveResponse{
156150
Images: resp,
157151
}, nil

0 commit comments

Comments
 (0)