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,

Reply via email to