You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@trafficcontrol.apache.org by oc...@apache.org on 2020/07/10 20:42:35 UTC

[trafficcontrol] branch master updated: Fixing /api/1.1/servers/{id} endpoint to not return empty response (#4869)

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 fb9e186  Fixing /api/1.1/servers/{id} endpoint to not return empty response (#4869)
fb9e186 is described below

commit fb9e1865aa0ec4245a9d203fd397db6638d2054a
Author: Srijeet Chatterjee <30...@users.noreply.github.com>
AuthorDate: Fri Jul 10 14:42:24 2020 -0600

    Fixing /api/1.1/servers/{id} endpoint to not return empty response (#4869)
    
    * Fixing /api/1.1/servers/{id} endpoint
    
    * Fixing /api/1.1/servers/{id} endpoint
    
    * Code review fixes
    
    * Code review fixes
---
 traffic_ops/testing/api/v1/servers_test.go       |  5 ++---
 traffic_ops/traffic_ops_golang/server/servers.go | 15 +++++++++++++--
 2 files changed, 15 insertions(+), 5 deletions(-)

diff --git a/traffic_ops/testing/api/v1/servers_test.go b/traffic_ops/testing/api/v1/servers_test.go
index 1c33967..65c0f95 100644
--- a/traffic_ops/testing/api/v1/servers_test.go
+++ b/traffic_ops/testing/api/v1/servers_test.go
@@ -71,13 +71,12 @@ func UpdateTestServers(t *testing.T) {
 	var alert tc.Alerts
 	alert, _, err = TOSession.UpdateServerByID(remoteServer.ID, remoteServer)
 	if err != nil {
-		t.Errorf("cannot UPDATE Server by hostname: %v - %v", err, alert)
+		t.Errorf("cannot UPDATE Server by ID: %v - %v", err, alert)
 	}
-
 	// Retrieve the server to check rack and interfaceName values were updated
 	resp, _, err = TOSession.GetServerByID(remoteServer.ID)
 	if err != nil {
-		t.Errorf("cannot GET Server by ID: %v - %v", remoteServer.HostName, err)
+		t.Errorf("cannot GET Server by ID: %v - %v", remoteServer.ID, err)
 	}
 
 	respServer := resp[0]
diff --git a/traffic_ops/traffic_ops_golang/server/servers.go b/traffic_ops/traffic_ops_golang/server/servers.go
index 389a35d..2b9544a 100644
--- a/traffic_ops/traffic_ops_golang/server/servers.go
+++ b/traffic_ops/traffic_ops_golang/server/servers.go
@@ -581,18 +581,29 @@ func ReadID(w http.ResponseWriter, r *http.Request) {
 		log.Warnf("Couldn't get config %v", e)
 	}
 	servers, _, userErr, sysErr, errCode, _ = getServers(r.Header, inf.Params, inf.Tx, inf.User, useIMS)
-
 	if len(servers) > 1 {
 		api.HandleDeprecatedErr(w, r, tx, http.StatusInternalServerError, nil, fmt.Errorf("ID '%d' matched more than one server (%d total)", inf.IntParams["id"], len(servers)), &alternative)
 		return
 	}
-
 	deprecationAlerts := api.CreateDeprecationAlerts(&alternative)
 
 	// No need to bother converting if there's no data
 	if len(servers) < 1 {
 		api.WriteAlertsObj(w, r, http.StatusOK, deprecationAlerts, servers)
+		return
+	}
+	legacyServers := make([]tc.ServerNullableV11, 0, len(servers))
+	for _, server := range servers {
+		legacyServer, err := server.ToServerV2()
+		if err != nil {
+			api.HandleDeprecatedErr(w, r, tx, http.StatusInternalServerError, nil, fmt.Errorf("failed to convert servers to legacy format: %v", err), &alternative)
+			api.HandleErr(w, r, tx, http.StatusInternalServerError, nil, fmt.Errorf("failed to convert servers to legacy format: %v", err))
+			return
+		}
+		legacyServers = append(legacyServers, legacyServer.ServerNullableV11)
 	}
+	api.WriteAlertsObj(w, r, http.StatusOK, deprecationAlerts, legacyServers)
+	return
 }
 
 func selectMaxLastUpdatedQuery(where string) string {