-
Notifications
You must be signed in to change notification settings - Fork 13
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
fix(evpn-bridge): fix for frr to handle vrf setup and teardown #401
base: main
Are you sure you want to change the base?
Conversation
Signed-off-by: Venkatesh, Vemula <[email protected]>
pkg/frr/frr.go
Outdated
if strings.Contains(data, "Can't find BGP instance") { // Trying to delete non exist VRF return true | ||
return true | ||
} | ||
if err != nil || checkFrrResult(data, false) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
if we need to check frr for each frr cmd, why not move that check into FrrBgpCmd/FrrZebraCmd and other frr functions?
as well as strings.Contains(
?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done
if err != nil { | ||
data, err = Frr.FrrZebraCmd(ctx, fmt.Sprintf("configure terminal\n %s\n exit\n", delCmd2)) | ||
if err != nil || checkFrrResult(data, false) { | ||
log.Printf("FRR: Error %s\n", data) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Does data contain error description?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes data contains the complete FRR command output.
pkg/frr/frr.go
Outdated
@@ -437,7 +430,7 @@ func setUpVrf(vrf *infradb.Vrf) (string, bool) { | |||
|
|||
// checkFrrResult checks the vrf result | |||
func checkFrrResult(cp string, show bool) bool { | |||
return ((show && reflect.ValueOf(cp).IsZero()) || strings.Contains(cp, "warning") || strings.Contains(cp, "unknown") || strings.Contains(cp, "Unknown") || strings.Contains(cp, "Warning") || strings.Contains(cp, "Ambiguous") || strings.Contains(cp, "specified does not exist")) | |||
return ((show && reflect.ValueOf(cp).IsZero()) || strings.Contains(cp, "warning") || strings.Contains(cp, "unknown") || strings.Contains(cp, "Unknown") || strings.Contains(cp, "Warning") || strings.Contains(cp, "Ambiguous") || strings.Contains(cp, "specified does not exist") || strings.Contains(cp, "Error")) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
reflect.ValueOf(cp).IsZero()) -> cp == ""
what if cp contains waRning
? Will you add a new comparison then? Will it be better to lower case the string and only then check what itcontains?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Done
pkg/frr/frr.go
Outdated
} | ||
hname, _ := os.Hostname() | ||
L2vpnCmd := strings.Split(cp, "json") | ||
L2vpnCmd = strings.Split(L2vpnCmd[1], hname) | ||
cp = L2vpnCmd[0] | ||
// fmt.Printf("FRR_L2vpn[0]: %s\n",cp) | ||
if len(cp) != 7 { | ||
if len(cp) != 7 { // Checking CMD o/p |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
magic number. Rely on string length is very unreliable
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Addressed this and changed to string compare instead of string length
Signed-off-by: atulpatel261194 <[email protected]>
585cd47
to
138318f
Compare
Codecov ReportAttention: Patch coverage is
Additional details and impacted files@@ Coverage Diff @@
## main #401 +/- ##
===========================================
- Coverage 50.77% 20.23% -30.54%
===========================================
Files 37 51 +14
Lines 2525 6863 +4338
===========================================
+ Hits 1282 1389 +107
- Misses 1114 5306 +4192
- Partials 129 168 +39
Flags with carried forward coverage won't be shown. Click here to find out more. ☔ View full report in Codecov by Sentry. |
4d5e03c
to
a553e28
Compare
Signed-off-by: Vemula Venkatesh <[email protected]>
a553e28
to
5ab2fc8
Compare
Signed-off-by: atulpatel261194 <[email protected]>
fix: frr handle the duplicate vni and deleting of non-existence vrf and svi.