@@ -30,7 +30,7 @@ import (
30
30
"sync"
31
31
"time"
32
32
33
- "google.golang.org/grpc"
33
+ grpcstatus "google.golang.org/grpc/status "
34
34
35
35
"github.com/armon/circbuf"
36
36
"k8s.io/klog"
@@ -94,7 +94,8 @@ func (m *kubeGenericRuntimeManager) startContainer(podSandboxID string, podSandb
94
94
// Step 1: pull the image.
95
95
imageRef , msg , err := m .imagePuller .EnsureImageExists (pod , container , pullSecrets , podSandboxConfig )
96
96
if err != nil {
97
- m .recordContainerEvent (pod , container , "" , v1 .EventTypeWarning , events .FailedToCreateContainer , "Error: %v" , grpc .ErrorDesc (err ))
97
+ s , _ := grpcstatus .FromError (err )
98
+ m .recordContainerEvent (pod , container , "" , v1 .EventTypeWarning , events .FailedToCreateContainer , "Error: %v" , s .Message ())
98
99
return msg , err
99
100
}
100
101
@@ -117,19 +118,22 @@ func (m *kubeGenericRuntimeManager) startContainer(podSandboxID string, podSandb
117
118
defer cleanupAction ()
118
119
}
119
120
if err != nil {
120
- m .recordContainerEvent (pod , container , "" , v1 .EventTypeWarning , events .FailedToCreateContainer , "Error: %v" , grpc .ErrorDesc (err ))
121
- return grpc .ErrorDesc (err ), ErrCreateContainerConfig
121
+ s , _ := grpcstatus .FromError (err )
122
+ m .recordContainerEvent (pod , container , "" , v1 .EventTypeWarning , events .FailedToCreateContainer , "Error: %v" , s .Message ())
123
+ return s .Message (), ErrCreateContainerConfig
122
124
}
123
125
124
126
containerID , err := m .runtimeService .CreateContainer (podSandboxID , containerConfig , podSandboxConfig )
125
127
if err != nil {
126
- m .recordContainerEvent (pod , container , containerID , v1 .EventTypeWarning , events .FailedToCreateContainer , "Error: %v" , grpc .ErrorDesc (err ))
127
- return grpc .ErrorDesc (err ), ErrCreateContainer
128
+ s , _ := grpcstatus .FromError (err )
129
+ m .recordContainerEvent (pod , container , containerID , v1 .EventTypeWarning , events .FailedToCreateContainer , "Error: %v" , s .Message ())
130
+ return s .Message (), ErrCreateContainer
128
131
}
129
132
err = m .internalLifecycle .PreStartContainer (pod , container , containerID )
130
133
if err != nil {
131
- m .recordContainerEvent (pod , container , containerID , v1 .EventTypeWarning , events .FailedToStartContainer , "Internal PreStartContainer hook failed: %v" , grpc .ErrorDesc (err ))
132
- return grpc .ErrorDesc (err ), ErrPreStartHook
134
+ s , _ := grpcstatus .FromError (err )
135
+ m .recordContainerEvent (pod , container , containerID , v1 .EventTypeWarning , events .FailedToStartContainer , "Internal PreStartContainer hook failed: %v" , s .Message ())
136
+ return s .Message (), ErrPreStartHook
133
137
}
134
138
m .recordContainerEvent (pod , container , containerID , v1 .EventTypeNormal , events .CreatedContainer , fmt .Sprintf ("Created container %s" , container .Name ))
135
139
@@ -143,8 +147,9 @@ func (m *kubeGenericRuntimeManager) startContainer(podSandboxID string, podSandb
143
147
// Step 3: start the container.
144
148
err = m .runtimeService .StartContainer (containerID )
145
149
if err != nil {
146
- m .recordContainerEvent (pod , container , containerID , v1 .EventTypeWarning , events .FailedToStartContainer , "Error: %v" , grpc .ErrorDesc (err ))
147
- return grpc .ErrorDesc (err ), kubecontainer .ErrRunContainer
150
+ s , _ := grpcstatus .FromError (err )
151
+ m .recordContainerEvent (pod , container , containerID , v1 .EventTypeWarning , events .FailedToStartContainer , "Error: %v" , s .Message ())
152
+ return s .Message (), kubecontainer .ErrRunContainer
148
153
}
149
154
m .recordContainerEvent (pod , container , containerID , v1 .EventTypeNormal , events .StartedContainer , fmt .Sprintf ("Started container %s" , container .Name ))
150
155
0 commit comments