This is an automated email from the ASF dual-hosted git repository.
ocket8888 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 2df8eaa updated server ip_address usage (#4932)
2df8eaa is described below
commit 2df8eaae645eefc0503d04feaaa35fb15dd94f9e
Author: mattjackson220 <[email protected]>
AuthorDate: Mon Aug 3 13:33:24 2020 -0600
updated server ip_address usage (#4932)
* updated server ip_address usage
* fixed tests
* fixed test
Co-authored-by: mattjackson220 <[email protected]>
---
.../traffic_ops_golang/cachesstats/cachesstats.go | 2 +-
.../traffic_ops_golang/monitoring/monitoring.go | 8 +-----
.../monitoring/monitoring_test.go | 10 +++----
traffic_ops/traffic_ops_golang/server/detail.go | 31 +++++++++++++++++-----
.../traffic_ops_golang/server/detail_test.go | 22 +++++++++++++++
5 files changed, 52 insertions(+), 21 deletions(-)
diff --git a/traffic_ops/traffic_ops_golang/cachesstats/cachesstats.go
b/traffic_ops/traffic_ops_golang/cachesstats/cachesstats.go
index 36e1053..cba0e22 100644
--- a/traffic_ops/traffic_ops_golang/cachesstats/cachesstats.go
+++ b/traffic_ops/traffic_ops_golang/cachesstats/cachesstats.go
@@ -214,7 +214,7 @@ SELECT
cg.name as cachegroup,
st.name as status,
p.name as profile,
- s.ip_address
+ (select address from ip_address where s.id = ip_address.server and
service_address = true AND family(address) = 4) as ip
FROM
server s
JOIN cachegroup cg ON s.cachegroup = cg.id
diff --git a/traffic_ops/traffic_ops_golang/monitoring/monitoring.go
b/traffic_ops/traffic_ops_golang/monitoring/monitoring.go
index 24e448d..64d6e74 100644
--- a/traffic_ops/traffic_ops_golang/monitoring/monitoring.go
+++ b/traffic_ops/traffic_ops_golang/monitoring/monitoring.go
@@ -187,8 +187,6 @@ SELECT
status.name as status,
cachegroup.name as cachegroup,
me.tcp_port as port,
- me.ip_address as ip,
- me.ip6_address as ip6,
profile.name as profile,
type.name as type,
me.xmpp_id as hashID,
@@ -296,14 +294,12 @@ AND cdn.name = $3
var status sql.NullString
var cachegroup sql.NullString
var port sql.NullInt64
- var ip sql.NullString
- var ip6 sql.NullString
var profile sql.NullString
var ttype sql.NullString
var hashID sql.NullString
var serverID sql.NullInt64
- if err := rows.Scan(&hostName, &fqdn, &status, &cachegroup,
&port, &ip, &ip6, &profile, &ttype, &hashID, &serverID); err != nil {
+ if err := rows.Scan(&hostName, &fqdn, &status, &cachegroup,
&port, &profile, &ttype, &hashID, &serverID); err != nil {
return nil, nil, nil, err
}
@@ -318,8 +314,6 @@ AND cdn.name = $3
HostName: hostName.String,
FQDN: fqdn.String,
},
- IP: ip.String,
- IP6: ip6.String,
},
})
} else if strings.HasPrefix(ttype.String, "EDGE") ||
strings.HasPrefix(ttype.String, "MID") {
diff --git a/traffic_ops/traffic_ops_golang/monitoring/monitoring_test.go
b/traffic_ops/traffic_ops_golang/monitoring/monitoring_test.go
index 3f5ecb7..2c09208 100644
--- a/traffic_ops/traffic_ops_golang/monitoring/monitoring_test.go
+++ b/traffic_ops/traffic_ops_golang/monitoring/monitoring_test.go
@@ -678,19 +678,17 @@ func createMockMonitor() Monitor {
HostName: "monitorHost",
FQDN: "monitorFqdn.me",
},
- IP: "1.2.3.4",
- IP6: "2001::4",
},
}
}
func setupMockGetMonitoringServers(mock sqlmock.Sqlmock, monitor Monitor,
router Router, caches []Cache, cacheIDs []uint64, cdn string) {
- serverRows := sqlmock.NewRows([]string{"hostName", "fqdn", "status",
"cachegroup", "port", "ip", "ip6", "profile", "type", "hashId", "serverID"})
+ serverRows := sqlmock.NewRows([]string{"hostName", "fqdn", "status",
"cachegroup", "port", "profile", "type", "hashId", "serverID"})
interfaceRows := sqlmock.NewRows([]string{"name", "max_bandwidth",
"mtu", "monitor", "server"})
ipAddressRows := sqlmock.NewRows([]string{"address", "gateway",
"service_address", "server", "interface"})
- serverRows = serverRows.AddRow(monitor.HostName, monitor.FQDN,
monitor.Status, monitor.Cachegroup, monitor.Port, monitor.IP, monitor.IP6,
monitor.Profile, MonitorType, "noHash", 2)
+ serverRows = serverRows.AddRow(monitor.HostName, monitor.FQDN,
monitor.Status, monitor.Cachegroup, monitor.Port, monitor.Profile, MonitorType,
"noHash", 2)
for index, cache := range caches {
- serverRows = serverRows.AddRow(cache.HostName, cache.FQDN,
cache.Status, cache.Cachegroup, cache.Port, "127.0.0.1", "2001::4",
cache.Profile, cache.Type, cache.HashID, cacheIDs[index])
+ serverRows = serverRows.AddRow(cache.HostName, cache.FQDN,
cache.Status, cache.Cachegroup, cache.Port, cache.Profile, cache.Type,
cache.HashID, cacheIDs[index])
interfaceRows = interfaceRows.AddRow("none", nil, 1500, false,
0)
for _, interf := range cache.Interfaces {
@@ -704,7 +702,7 @@ func setupMockGetMonitoringServers(mock sqlmock.Sqlmock,
monitor Monitor, router
}
}
}
- serverRows = serverRows.AddRow("noHostname", "noFqdn", "noStatus",
"noGroup", 0, "noIp", "noIp6", router.Profile, RouterType, "noHashid", 3)
+ serverRows = serverRows.AddRow("noHostname", "noFqdn", "noStatus",
"noGroup", 0, router.Profile, RouterType, "noHashid", 3)
mock.ExpectQuery("SELECT (.+) FROM interface i
(.+)").WithArgs(cdn).WillReturnRows(interfaceRows)
mock.ExpectQuery("SELECT (.+) FROM ip_address ip
(.+)").WillReturnRows(ipAddressRows)
mock.ExpectQuery("SELECT (.+) FROM server me
(.+)").WithArgs(cdn).WillReturnRows(serverRows)
diff --git a/traffic_ops/traffic_ops_golang/server/detail.go
b/traffic_ops/traffic_ops_golang/server/detail.go
index a80f83c..3061a08 100644
--- a/traffic_ops/traffic_ops_golang/server/detail.go
+++ b/traffic_ops/traffic_ops_golang/server/detail.go
@@ -154,12 +154,12 @@ func getDetailServers(tx *sql.Tx, user *auth.CurrentUser,
hostName string, physL
"ilo_password": "server.ilo_password",
"ilo_username": "server.ilo_username",
"interface_mtu": "interface_mtu",
- "interface_name": "server.interface_name",
- "ip6_address": "server.ip6_address",
- "ip6_gateway": "server.ip6_gateway",
- "ip_address": "server.ip_address",
- "ip_gateway": "server.ip_gateway",
- "ip_netmask": "server.ip_netmask",
+ "interface_name": "interface_name",
+ "ip6_address": "service_ip6",
+ "ip6_gateway": "service_gateway6",
+ "ip_address": "service_ip",
+ "ip_gateway": "service_gateway",
+ "ip_netmask": "service_netmask",
"mgmt_ip_address": "server.mgmt_ip_address",
"mgmt_ip_gateway": "server.mgmt_ip_gateway",
"mgmt_ip_netmask": "server.mgmt_ip_netmask",
@@ -181,6 +181,7 @@ func getDetailServers(tx *sql.Tx, user *auth.CurrentUser,
hostName string, physL
return nil, errors.New("orderBy '" + orderBy + "' not
permitted")
}
const JumboFrameBPS = 9000
+
q := `
SELECT
cg.name AS cachegroup,
@@ -197,6 +198,13 @@ SELECT
server.ilo_password,
server.ilo_username,
` + InterfacesArray + ` AS interfaces,
+ (SELECT address FROM ip_address WHERE service_address = true AND
family(address) = 4 AND server = server.id) AS service_ip,
+ (SELECT address FROM ip_address WHERE service_address = true AND
family(address) = 6 AND server = server.id) AS service_ip6,
+ (SELECT gateway FROM ip_address WHERE service_address = true AND
family(address) = 4 AND server = server.id) AS service_gateway,
+ (SELECT gateway FROM ip_address WHERE service_address = true AND
family(address) = 6 AND server = server.id) AS service_gateway6,
+ (SELECT host(netmask(ip_address.address)) FROM ip_address WHERE
service_address = true AND family(address) = 4 AND server = server.id) AS
service_netmask,
+ (SELECT interface FROM ip_address WHERE service_address = true AND
family(address) = 4 AND server = server.id) AS interface_name,
+ (SELECT mtu FROM interface WHERE server.id = interface.server AND
interface.name = (SELECT interface FROM ip_address WHERE service_address = true
AND family(address) = 4 AND server = server.id)) AS interface_mtu,
server.mgmt_ip_address,
server.mgmt_ip_gateway,
server.mgmt_ip_netmask,
@@ -250,9 +258,18 @@ JOIN type t ON server.type = t.id
sIDs := []int{}
servers := []tc.ServerDetailV30{}
serverInterfaceInfo := []tc.ServerInterfaceInfo{}
+
+ serviceAddress := util.StrPtr("")
+ service6Address := util.StrPtr("")
+ serviceGateway := util.StrPtr("")
+ service6Gateway := util.StrPtr("")
+ serviceNetmask := util.StrPtr("")
+ serviceInterface := util.StrPtr("")
+ serviceMtu := util.StrPtr("")
+
for rows.Next() {
s := tc.ServerDetailV30{}
- if err := rows.Scan(&s.CacheGroup, &s.CDNName,
pq.Array(&s.DeliveryServiceIDs), &s.DomainName, &s.GUID, &s.HostName,
&s.HTTPSPort, &s.ID, &s.ILOIPAddress, &s.ILOIPGateway, &s.ILOIPNetmask,
&s.ILOPassword, &s.ILOUsername, pq.Array(&serverInterfaceInfo),
&s.MgmtIPAddress, &s.MgmtIPGateway, &s.MgmtIPNetmask, &s.OfflineReason,
&s.PhysLocation, &s.Profile, &s.ProfileDesc, &s.Rack, &s.RouterHostName,
&s.RouterPortName, &s.Status, &s.TCPPort, &s.Type, &s.XMPPID, &s.XMPPPasswd);
err != nil {
+ if err := rows.Scan(&s.CacheGroup, &s.CDNName,
pq.Array(&s.DeliveryServiceIDs), &s.DomainName, &s.GUID, &s.HostName,
&s.HTTPSPort, &s.ID, &s.ILOIPAddress, &s.ILOIPGateway, &s.ILOIPNetmask,
&s.ILOPassword, &s.ILOUsername, pq.Array(&serverInterfaceInfo),
&serviceAddress, &service6Address, &serviceGateway, &service6Gateway,
&serviceNetmask, &serviceInterface, &serviceMtu, &s.MgmtIPAddress,
&s.MgmtIPGateway, &s.MgmtIPNetmask, &s.OfflineReason, &s.PhysLocation,
&s.Profile, &s.ProfileDesc, & [...]
return nil, errors.New("Error scanning detail server: "
+ err.Error())
}
diff --git a/traffic_ops/traffic_ops_golang/server/detail_test.go
b/traffic_ops/traffic_ops_golang/server/detail_test.go
index 1eeaffb..0fdd370 100644
--- a/traffic_ops/traffic_ops_golang/server/detail_test.go
+++ b/traffic_ops/traffic_ops_golang/server/detail_test.go
@@ -49,6 +49,13 @@ func TestGetDetailServers(t *testing.T) {
"ilo_password",
"ilo_username",
"interfaces",
+ "service_ip",
+ "service_ip6",
+ "service_gateway",
+ "service_gateway6",
+ "service_netmask",
+ "interface_name",
+ "interface_mtu",
"mgmt_ip_address",
"mgmt_ip_gateway",
"mgmt_ip_netmask",
@@ -67,6 +74,14 @@ func TestGetDetailServers(t *testing.T) {
}
rows := sqlmock.NewRows(cols)
+ serviceAddress := util.StrPtr("")
+ service6Address := util.StrPtr("")
+ serviceGateway := util.StrPtr("")
+ service6Gateway := util.StrPtr("")
+ serviceNetmask := util.StrPtr("")
+ serviceInterface := util.StrPtr("")
+ serviceMtu := util.StrPtr("")
+
for _, sd := range testServerDetails {
rows = rows.AddRow(
sd.CacheGroup,
@@ -83,6 +98,13 @@ func TestGetDetailServers(t *testing.T) {
sd.ILOPassword,
sd.ILOUsername,
[]byte(`{"{\"ipAddresses\" : [{\"address\" :
\"127.0.0.0\", \"gateway\" : null, \"serviceAddress\" : true}],
\"max_bandwidth\" : null, \"monitor\" : true, \"mtu\" : 1500, \"name\" :
\"eth0\"}"}`),
+ serviceAddress,
+ service6Address,
+ serviceGateway,
+ service6Gateway,
+ serviceNetmask,
+ serviceInterface,
+ serviceMtu,
sd.MgmtIPAddress,
sd.MgmtIPGateway,
sd.MgmtIPNetmask,