|
1 | 1 | package srv6 |
2 | 2 |
|
3 | 3 | import ( |
| 4 | + "errors" |
4 | 5 | "fmt" |
5 | 6 | "net" |
6 | 7 | "strings" |
@@ -89,13 +90,17 @@ func RouteEgressAdd(prefixStr, srcStr string, segmentsStr []string) error { |
89 | 90 | return fmt.Errorf("invalid vpcattachment: %w", err) |
90 | 91 | } |
91 | 92 |
|
| 93 | + var errs []error |
92 | 94 | if IsHost(prefix) { |
93 | 95 | if err := neighborproxy.Add(prefix, vpc, vpcAttachment); err != nil { |
94 | | - return fmt.Errorf("neighborproxy add failed: %w", err) |
| 96 | + errs = append(errs, fmt.Errorf("neighborproxy add failed: %w", err)) |
95 | 97 | } |
96 | 98 | } |
97 | 99 | if err := routeegress.Add(vpc, vpcAttachment, prefix, segments); err != nil { |
98 | | - return fmt.Errorf("routeegress add failed: %w", err) |
| 100 | + errs = append(errs, fmt.Errorf("routeegress add failed: %w", err)) |
| 101 | + } |
| 102 | + if len(errs) > 0 { |
| 103 | + return errors.Join(errs...) |
99 | 104 | } |
100 | 105 | return nil |
101 | 106 | } |
@@ -127,13 +132,17 @@ func RouteEgressDel(prefixStr, srcStr string, segmentsStr []string) error { |
127 | 132 | return fmt.Errorf("invalid vpcattachment: %w", err) |
128 | 133 | } |
129 | 134 |
|
| 135 | + var errs []error |
130 | 136 | if IsHost(prefix) { |
131 | 137 | if err := neighborproxy.Delete(prefix, vpc, vpcAttachment); err != nil { |
132 | | - return fmt.Errorf("neighborproxy delete failed: %w", err) |
| 138 | + errs = append(errs, fmt.Errorf("neighborproxy delete failed: %w", err)) |
133 | 139 | } |
134 | 140 | } |
135 | 141 | if err := routeegress.Delete(vpc, vpcAttachment, prefix, segments); err != nil { |
136 | | - return fmt.Errorf("routeegress delete failed: %w", err) |
| 142 | + errs = append(errs, fmt.Errorf("routeegress delete failed: %w", err)) |
| 143 | + } |
| 144 | + if len(errs) > 0 { |
| 145 | + return errors.Join(errs...) |
137 | 146 | } |
138 | 147 | return nil |
139 | 148 | } |
|
0 commit comments