@@ -19,7 +19,6 @@ limitations under the License.
19
19
package ipvs
20
20
21
21
import (
22
- "errors"
23
22
"fmt"
24
23
"net"
25
24
"strings"
@@ -28,6 +27,8 @@ import (
28
27
"time"
29
28
30
29
libipvs "github.com/moby/ipvs"
30
+ "github.com/pkg/errors"
31
+
31
32
"k8s.io/klog"
32
33
utilexec "k8s.io/utils/exec"
33
34
)
@@ -59,7 +60,7 @@ func New(exec utilexec.Interface) Interface {
59
60
func (runner * runner ) AddVirtualServer (vs * VirtualServer ) error {
60
61
svc , err := toIPVSService (vs )
61
62
if err != nil {
62
- return err
63
+ return errors . Wrap ( err , "could not convert local virtual server to IPVS service" )
63
64
}
64
65
runner .mu .Lock ()
65
66
defer runner .mu .Unlock ()
@@ -70,7 +71,7 @@ func (runner *runner) AddVirtualServer(vs *VirtualServer) error {
70
71
func (runner * runner ) UpdateVirtualServer (vs * VirtualServer ) error {
71
72
svc , err := toIPVSService (vs )
72
73
if err != nil {
73
- return err
74
+ return errors . Wrap ( err , "could not convert local virtual server to IPVS service" )
74
75
}
75
76
runner .mu .Lock ()
76
77
defer runner .mu .Unlock ()
@@ -81,7 +82,7 @@ func (runner *runner) UpdateVirtualServer(vs *VirtualServer) error {
81
82
func (runner * runner ) DeleteVirtualServer (vs * VirtualServer ) error {
82
83
svc , err := toIPVSService (vs )
83
84
if err != nil {
84
- return err
85
+ return errors . Wrap ( err , "could not convert local virtual server to IPVS service" )
85
86
}
86
87
runner .mu .Lock ()
87
88
defer runner .mu .Unlock ()
@@ -92,18 +93,18 @@ func (runner *runner) DeleteVirtualServer(vs *VirtualServer) error {
92
93
func (runner * runner ) GetVirtualServer (vs * VirtualServer ) (* VirtualServer , error ) {
93
94
svc , err := toIPVSService (vs )
94
95
if err != nil {
95
- return nil , err
96
+ return nil , errors . Wrap ( err , "could not convert local virtual server to IPVS service" )
96
97
}
97
98
runner .mu .Lock ()
98
99
ipvsSvc , err := runner .ipvsHandle .GetService (svc )
99
100
runner .mu .Unlock ()
100
101
101
102
if err != nil {
102
- return nil , err
103
+ return nil , errors . Wrap ( err , "could not get IPVS service" )
103
104
}
104
105
vServ , err := toVirtualServer (ipvsSvc )
105
106
if err != nil {
106
- return nil , err
107
+ return nil , errors . Wrap ( err , "could not convert IPVS service to local virtual server" )
107
108
}
108
109
return vServ , nil
109
110
}
@@ -114,13 +115,13 @@ func (runner *runner) GetVirtualServers() ([]*VirtualServer, error) {
114
115
ipvsSvcs , err := runner .ipvsHandle .GetServices ()
115
116
runner .mu .Unlock ()
116
117
if err != nil {
117
- return nil , err
118
+ return nil , errors . Wrap ( err , "could not get IPVS services" )
118
119
}
119
120
vss := make ([]* VirtualServer , 0 )
120
121
for _ , ipvsSvc := range ipvsSvcs {
121
122
vs , err := toVirtualServer (ipvsSvc )
122
123
if err != nil {
123
- return nil , err
124
+ return nil , errors . Wrap ( err , "could not convert IPVS service to local virtual server" )
124
125
}
125
126
vss = append (vss , vs )
126
127
}
@@ -138,11 +139,11 @@ func (runner *runner) Flush() error {
138
139
func (runner * runner ) AddRealServer (vs * VirtualServer , rs * RealServer ) error {
139
140
svc , err := toIPVSService (vs )
140
141
if err != nil {
141
- return err
142
+ return errors . Wrap ( err , "could not convert local virtual server to IPVS service" )
142
143
}
143
144
dst , err := toIPVSDestination (rs )
144
145
if err != nil {
145
- return err
146
+ return errors . Wrap ( err , "could not convert local real server to IPVS destination" )
146
147
}
147
148
runner .mu .Lock ()
148
149
defer runner .mu .Unlock ()
@@ -153,11 +154,11 @@ func (runner *runner) AddRealServer(vs *VirtualServer, rs *RealServer) error {
153
154
func (runner * runner ) DeleteRealServer (vs * VirtualServer , rs * RealServer ) error {
154
155
svc , err := toIPVSService (vs )
155
156
if err != nil {
156
- return err
157
+ return errors . Wrap ( err , "could not convert local virtual server to IPVS service" )
157
158
}
158
159
dst , err := toIPVSDestination (rs )
159
160
if err != nil {
160
- return err
161
+ return errors . Wrap ( err , "could not convert local real server to IPVS destination" )
161
162
}
162
163
runner .mu .Lock ()
163
164
defer runner .mu .Unlock ()
@@ -167,11 +168,11 @@ func (runner *runner) DeleteRealServer(vs *VirtualServer, rs *RealServer) error
167
168
func (runner * runner ) UpdateRealServer (vs * VirtualServer , rs * RealServer ) error {
168
169
svc , err := toIPVSService (vs )
169
170
if err != nil {
170
- return err
171
+ return errors . Wrap ( err , "could not convert local virtual server to IPVS service" )
171
172
}
172
173
dst , err := toIPVSDestination (rs )
173
174
if err != nil {
174
- return err
175
+ return errors . Wrap ( err , "could not convert local real server to IPVS destination" )
175
176
}
176
177
runner .mu .Lock ()
177
178
defer runner .mu .Unlock ()
@@ -182,20 +183,20 @@ func (runner *runner) UpdateRealServer(vs *VirtualServer, rs *RealServer) error
182
183
func (runner * runner ) GetRealServers (vs * VirtualServer ) ([]* RealServer , error ) {
183
184
svc , err := toIPVSService (vs )
184
185
if err != nil {
185
- return nil , err
186
+ return nil , errors . Wrap ( err , "could not convert local virtual server to IPVS service" )
186
187
}
187
188
runner .mu .Lock ()
188
189
dsts , err := runner .ipvsHandle .GetDestinations (svc )
189
190
runner .mu .Unlock ()
190
191
if err != nil {
191
- return nil , err
192
+ return nil , errors . Wrap ( err , "could not get IPVS destination for service" )
192
193
}
193
194
rss := make ([]* RealServer , 0 )
194
195
for _ , dst := range dsts {
195
196
dst , err := toRealServer (dst )
196
197
// TODO: aggregate errors?
197
198
if err != nil {
198
- return nil , err
199
+ return nil , errors . Wrap ( err , "could not convert IPVS destination to local real server" )
199
200
}
200
201
rss = append (rss , dst )
201
202
}
0 commit comments