From 82b43e831fc2dc57a8640748f4f490b404216385 Mon Sep 17 00:00:00 2001 From: ocket8888 Date: Wed, 24 Jun 2020 13:21:21 -0600 Subject: [PATCH 1/2] Fixed not re-filling rows in servers test --- .../traffic_ops_golang/server/servers_test.go | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/traffic_ops/traffic_ops_golang/server/servers_test.go b/traffic_ops/traffic_ops_golang/server/servers_test.go index 15a68ddc0e..08ce77214a 100644 --- a/traffic_ops/traffic_ops_golang/server/servers_test.go +++ b/traffic_ops/traffic_ops_golang/server/servers_test.go @@ -554,6 +554,8 @@ func TestV3Validations(t *testing.T) { testServer.Interfaces = []tc.ServerInterfaceInfo{} + typeRows = sqlmock.NewRows(typeCols).AddRow("EDGE", "server") + cdnRows = sqlmock.NewRows(cdnCols).AddRow(*testServer.CDNID) mock.ExpectQuery("SELECT name, use_in_table").WillReturnRows(typeRows) mock.ExpectQuery("SELECT").WillReturnRows(cdnRows) @@ -566,6 +568,8 @@ func TestV3Validations(t *testing.T) { testServer.Interfaces = nil + typeRows = sqlmock.NewRows(typeCols).AddRow("EDGE", "server") + cdnRows = sqlmock.NewRows(cdnCols).AddRow(*testServer.CDNID) mock.ExpectQuery("SELECT name, use_in_table").WillReturnRows(typeRows) mock.ExpectQuery("SELECT").WillReturnRows(cdnRows) @@ -581,6 +585,8 @@ func TestV3Validations(t *testing.T) { badIface.MTU = &badMTU testServer.Interfaces = []tc.ServerInterfaceInfo{badIface} + typeRows = sqlmock.NewRows(typeCols).AddRow("EDGE", "server") + cdnRows = sqlmock.NewRows(cdnCols).AddRow(*testServer.CDNID) mock.ExpectQuery("SELECT name, use_in_table").WillReturnRows(typeRows) mock.ExpectQuery("SELECT").WillReturnRows(cdnRows) @@ -595,6 +601,8 @@ func TestV3Validations(t *testing.T) { badIface.IPAddresses = []tc.ServerIPAddress{} testServer.Interfaces = []tc.ServerInterfaceInfo{badIface} + typeRows = sqlmock.NewRows(typeCols).AddRow("EDGE", "server") + cdnRows = sqlmock.NewRows(cdnCols).AddRow(*testServer.CDNID) mock.ExpectQuery("SELECT name, use_in_table").WillReturnRows(typeRows) mock.ExpectQuery("SELECT").WillReturnRows(cdnRows) @@ -608,6 +616,8 @@ func TestV3Validations(t *testing.T) { badIface.IPAddresses = nil testServer.Interfaces = []tc.ServerInterfaceInfo{badIface} + typeRows = sqlmock.NewRows(typeCols).AddRow("EDGE", "server") + cdnRows = sqlmock.NewRows(cdnCols).AddRow(*testServer.CDNID) mock.ExpectQuery("SELECT name, use_in_table").WillReturnRows(typeRows) mock.ExpectQuery("SELECT").WillReturnRows(cdnRows) @@ -627,6 +637,8 @@ func TestV3Validations(t *testing.T) { badIface.IPAddresses = []tc.ServerIPAddress{badIP} testServer.Interfaces = []tc.ServerInterfaceInfo{badIface} + typeRows = sqlmock.NewRows(typeCols).AddRow("EDGE", "server") + cdnRows = sqlmock.NewRows(cdnCols).AddRow(*testServer.CDNID) mock.ExpectQuery("SELECT name, use_in_table").WillReturnRows(typeRows) mock.ExpectQuery("SELECT").WillReturnRows(cdnRows) @@ -639,6 +651,8 @@ func TestV3Validations(t *testing.T) { testServer.Interfaces = []tc.ServerInterfaceInfo{goodInterface, goodInterface} + typeRows = sqlmock.NewRows(typeCols).AddRow("EDGE", "server") + cdnRows = sqlmock.NewRows(cdnCols).AddRow(*testServer.CDNID) mock.ExpectQuery("SELECT name, use_in_table").WillReturnRows(typeRows) mock.ExpectQuery("SELECT").WillReturnRows(cdnRows) @@ -657,6 +671,8 @@ func TestV3Validations(t *testing.T) { }) testServer.Interfaces = []tc.ServerInterfaceInfo{badIface} + typeRows = sqlmock.NewRows(typeCols).AddRow("EDGE", "server") + cdnRows = sqlmock.NewRows(cdnCols).AddRow(*testServer.CDNID) mock.ExpectQuery("SELECT name, use_in_table").WillReturnRows(typeRows) mock.ExpectQuery("SELECT").WillReturnRows(cdnRows) From 1457bad9aa1f3549e221b02b24e2f6ff00cbee11 Mon Sep 17 00:00:00 2001 From: ocket8888 Date: Wed, 24 Jun 2020 13:32:41 -0600 Subject: [PATCH 2/2] Fixed allowing servers with bad MTU or no service addresses --- traffic_ops/traffic_ops_golang/server/servers.go | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/traffic_ops/traffic_ops_golang/server/servers.go b/traffic_ops/traffic_ops_golang/server/servers.go index d977b13829..86cedb3d04 100644 --- a/traffic_ops/traffic_ops_golang/server/servers.go +++ b/traffic_ops/traffic_ops_golang/server/servers.go @@ -433,7 +433,7 @@ func validateV3(s *tc.ServerNullable, tx *sql.Tx) (string, error) { ruleName := fmt.Sprintf("interface '%s' ", iface.Name) errs = append(errs, tovalidate.ToErrors(validation.Errors{ ruleName + "name": validation.Validate(iface.Name, validation.Required), - ruleName + "mtu": validation.Validate(iface.MaxBandwidth, validation.By(validateMTU)), + ruleName + "mtu": validation.Validate(iface.MTU, validation.By(validateMTU)), ruleName + "ipAddresses": validation.Validate(iface.IPAddresses, validation.Required), })...) @@ -477,6 +477,10 @@ func validateV3(s *tc.ServerNullable, tx *sql.Tx) (string, error) { } } + if !serviceAddrV6Found && !serviceAddrV4Found { + errs = append(errs, errors.New("a server must have at least one service address")) + } + errs = append(errs, validateCommon(&s.CommonServerProperties, tx)...) return serviceInterface, util.JoinErrs(errs) }