Skip to content
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 use of "-w" flag to iptables-restore #60978

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Jump to
Jump to file
Failed to load files.
Diff view
Diff view
6 changes: 3 additions & 3 deletions pkg/util/iptables/iptables.go
Expand Up @@ -124,7 +124,7 @@ const MinCheckVersion = "1.4.11"
const WaitMinVersion = "1.4.20"
const WaitSecondsMinVersion = "1.4.22"
const WaitString = "-w"
const WaitSecondsString = "-w5"
const WaitSecondsValue = "5"

const LockfilePath16x = "/run/xtables.lock"

Expand Down Expand Up @@ -558,7 +558,7 @@ func getIPTablesWaitFlag(vstring string) []string {
if version.LessThan(minVersion) {
return []string{WaitString}
} else {
return []string{WaitSecondsString}
return []string{WaitString, WaitSecondsValue}
}
}

Expand Down Expand Up @@ -594,7 +594,7 @@ func getIPTablesRestoreWaitFlag(exec utilexec.Interface, protocol Protocol) []st
return nil
}

return []string{WaitSecondsString}
return []string{WaitString, WaitSecondsValue}
}

// getIPTablesRestoreVersionString runs "iptables-restore --version" to get the version string
Expand Down
36 changes: 17 additions & 19 deletions pkg/util/iptables/iptables_test.go
Expand Up @@ -23,6 +23,7 @@ import (
"fmt"
"net"
"os"
"reflect"
"strings"
"testing"
"time"
Expand Down Expand Up @@ -681,21 +682,21 @@ COMMIT
func TestIPTablesWaitFlag(t *testing.T) {
testCases := []struct {
Version string
Result string
Result []string
}{
{"0.55.55", ""},
{"1.0.55", ""},
{"1.4.19", ""},
{"1.4.20", WaitString},
{"1.4.21", WaitString},
{"1.4.22", WaitSecondsString},
{"1.5.0", WaitSecondsString},
{"2.0.0", WaitSecondsString},
{"0.55.55", nil},
{"1.0.55", nil},
{"1.4.19", nil},
{"1.4.20", []string{WaitString}},
{"1.4.21", []string{WaitString}},
{"1.4.22", []string{WaitString, WaitSecondsValue}},
{"1.5.0", []string{WaitString, WaitSecondsValue}},
{"2.0.0", []string{WaitString, WaitSecondsValue}},
}

for _, testCase := range testCases {
result := getIPTablesWaitFlag(testCase.Version)
if strings.Join(result, "") != testCase.Result {
if !reflect.DeepEqual(result, testCase.Result) {
t.Errorf("For %s expected %v got %v", testCase.Version, testCase.Result, result)
}
}
Expand Down Expand Up @@ -730,7 +731,7 @@ func TestWaitFlagUnavailable(t *testing.T) {
if fcmd.CombinedOutputCalls != 3 {
t.Errorf("expected 3 CombinedOutput() calls, got %d", fcmd.CombinedOutputCalls)
}
if sets.NewString(fcmd.CombinedOutputLog[2]...).HasAny(WaitString, WaitSecondsString) {
if sets.NewString(fcmd.CombinedOutputLog[2]...).Has(WaitString) {
t.Errorf("wrong CombinedOutput() log, got %s", fcmd.CombinedOutputLog[2])
}
}
Expand Down Expand Up @@ -765,7 +766,7 @@ func TestWaitFlagOld(t *testing.T) {
if !sets.NewString(fcmd.CombinedOutputLog[2]...).HasAll("iptables", WaitString) {
t.Errorf("wrong CombinedOutput() log, got %s", fcmd.CombinedOutputLog[2])
}
if sets.NewString(fcmd.CombinedOutputLog[2]...).HasAny(WaitSecondsString) {
if sets.NewString(fcmd.CombinedOutputLog[2]...).Has(WaitSecondsValue) {
t.Errorf("wrong CombinedOutput() log, got %s", fcmd.CombinedOutputLog[2])
}
}
Expand Down Expand Up @@ -797,10 +798,7 @@ func TestWaitFlagNew(t *testing.T) {
if fcmd.CombinedOutputCalls != 3 {
t.Errorf("expected 3 CombinedOutput() calls, got %d", fcmd.CombinedOutputCalls)
}
if !sets.NewString(fcmd.CombinedOutputLog[2]...).HasAll("iptables", WaitSecondsString) {
t.Errorf("wrong CombinedOutput() log, got %s", fcmd.CombinedOutputLog[2])
}
if sets.NewString(fcmd.CombinedOutputLog[2]...).HasAny(WaitString) {
if !sets.NewString(fcmd.CombinedOutputLog[2]...).HasAll("iptables", WaitString, WaitSecondsValue) {
t.Errorf("wrong CombinedOutput() log, got %s", fcmd.CombinedOutputLog[2])
}
}
Expand Down Expand Up @@ -1165,7 +1163,7 @@ func TestRestoreAllWait(t *testing.T) {
}

commandSet := sets.NewString(fcmd.CombinedOutputLog[2]...)
if !commandSet.HasAll("iptables-restore", WaitSecondsString, "--counters", "--noflush") {
if !commandSet.HasAll("iptables-restore", WaitString, WaitSecondsValue, "--counters", "--noflush") {
t.Errorf("wrong CombinedOutput() log, got %s", fcmd.CombinedOutputLog[2])
}

Expand Down Expand Up @@ -1214,8 +1212,8 @@ func TestRestoreAllWaitOldIptablesRestore(t *testing.T) {
if !commandSet.HasAll("iptables-restore", "--counters", "--noflush") {
t.Errorf("wrong CombinedOutput() log, got %s", fcmd.CombinedOutputLog[2])
}
if commandSet.HasAny(WaitSecondsString) {
t.Errorf("wrong CombinedOutput() log (unexpected %s option), got %s", WaitSecondsString, fcmd.CombinedOutputLog[2])
if commandSet.HasAll(WaitString, WaitSecondsValue) {
t.Errorf("wrong CombinedOutput() log (unexpected %s option), got %s", WaitString, fcmd.CombinedOutputLog[2])
}

if fcmd.CombinedOutputCalls != 3 {
Expand Down