This is an automated email from the ASF dual-hosted git repository.

mitchell852 pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/trafficcontrol.git


The following commit(s) were added to refs/heads/master by this push:
     new 8fe5dbe  Servers service interface fix (#4828)
8fe5dbe is described below

commit 8fe5dbe61b9478aa0c5085ef2dbff4949280b5cf
Author: ocket8888 <[email protected]>
AuthorDate: Sun Jun 28 16:58:20 2020 -0600

    Servers service interface fix (#4828)
    
    * Fixed not re-filling rows in servers test
    
    * Fixed allowing servers with bad MTU or no service addresses
---
 traffic_ops/traffic_ops_golang/server/servers.go      |  6 +++++-
 traffic_ops/traffic_ops_golang/server/servers_test.go | 16 ++++++++++++++++
 2 files changed, 21 insertions(+), 1 deletion(-)

diff --git a/traffic_ops/traffic_ops_golang/server/servers.go 
b/traffic_ops/traffic_ops_golang/server/servers.go
index d977b13..86cedb3 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)
 }
diff --git a/traffic_ops/traffic_ops_golang/server/servers_test.go 
b/traffic_ops/traffic_ops_golang/server/servers_test.go
index 15a68dd..08ce772 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)
 

Reply via email to