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)