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

mattjackson 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 53cf941  Rework /deliveryservice_server/:dsid/:serverid (#4520)
53cf941 is described below

commit 53cf9419fae480f687cb4aff0e9e26c76b26665b
Author: Michael Hoppal <[email protected]>
AuthorDate: Wed Mar 25 07:55:35 2020 -0600

    Rework /deliveryservice_server/:dsid/:serverid (#4520)
    
    * Rework /deliveryservice_server/:dsid/:serverid
    
    * Use common function
---
 CHANGELOG.md                                       |  2 ++
 .../v1/deliveryservice_server_dsid_serverid.rst    |  6 +++++
 ...rst => deliveryserviceserver_dsid_serverid.rst} |  8 +++---
 .../clients/python/trafficops/tosession.py         |  4 +--
 traffic_ops/client/deliveryserviceserver.go        |  2 +-
 .../deliveryservice/servers/delete.go              | 31 +++++++++++++++++-----
 traffic_ops/traffic_ops_golang/routing/routes.go   |  5 ++--
 .../app/src/common/api/DeliveryServiceService.js   |  2 +-
 8 files changed, 42 insertions(+), 18 deletions(-)

diff --git a/CHANGELOG.md b/CHANGELOG.md
index 596efe8..45d91cd 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -26,6 +26,7 @@ The format is based on [Keep a 
Changelog](http://keepachangelog.com/en/1.0.0/).
   - /api/2.0/isos
   - /api/1.5/deliveryservice/:id/routing
   - /api/1.5/deliveryservices/sslkeys/generate/letsencrypt `POST`
+  - /deliveryserviceserver/:dsid/:serverid
   - /api/1.5/letsencrypt/autorenew `POST`
   - /api/1.5/letsencrypt/dnsrecords `GET`
   - /api/2.0/vault/ping `GET`
@@ -62,6 +63,7 @@ The format is based on [Keep a 
Changelog](http://keepachangelog.com/en/1.0.0/).
   - /cdns/name/:name (GET)
   - /cdns/usage/overview
   - /deliveryservice_matches
+  - /deliveryservice_server/:dsid/:serverid
   - /deliveryservice_user
   - /deliveryservice_user/:dsId/:userId
   - /deliveryservices/hostname/:name/sslkeys
diff --git a/docs/source/api/v1/deliveryservice_server_dsid_serverid.rst 
b/docs/source/api/v1/deliveryservice_server_dsid_serverid.rst
index 8e3990e..4174df0 100644
--- a/docs/source/api/v1/deliveryservice_server_dsid_serverid.rst
+++ b/docs/source/api/v1/deliveryservice_server_dsid_serverid.rst
@@ -18,6 +18,8 @@
 ************************************************
 ``deliveryservice_server/{{DSID}}/{{serverID}}``
 ************************************************
+.. deprecated:: ATCv4
+       Use the ``DELETE`` method of 
:ref:`to-api-deliveryserviceserver-dsid-serverid` instead.
 
 ``DELETE``
 ==========
@@ -62,6 +64,10 @@ Response Structure
                {
                        "text": "Server unlinked from delivery service.",
                        "level": "success"
+               },
+               {
+                       "text": "This endpoint is deprecated, please use DELETE 
deliveryserviceserver/:dsid/:serverid instead",
+                       "level": "warning"
                }
        ]}
 
diff --git a/docs/source/api/v2/deliveryservice_server_dsid_serverid.rst 
b/docs/source/api/v2/deliveryserviceserver_dsid_serverid.rst
similarity index 92%
rename from docs/source/api/v2/deliveryservice_server_dsid_serverid.rst
rename to docs/source/api/v2/deliveryserviceserver_dsid_serverid.rst
index 125754d..d4d6ada 100644
--- a/docs/source/api/v2/deliveryservice_server_dsid_serverid.rst
+++ b/docs/source/api/v2/deliveryserviceserver_dsid_serverid.rst
@@ -13,11 +13,11 @@
 .. limitations under the License.
 ..
 
-.. _to-api-deliveryservice_server-dsid-serverid:
+.. _to-api-deliveryserviceserver-dsid-serverid:
 
-************************************************
-``deliveryservice_server/{{DSID}}/{{serverID}}``
-************************************************
+***********************************************
+``deliveryserviceserver/{{DSID}}/{{serverID}}``
+***********************************************
 
 ``DELETE``
 ==========
diff --git a/traffic_control/clients/python/trafficops/tosession.py 
b/traffic_control/clients/python/trafficops/tosession.py
index 7f19470..9630fb4 100644
--- a/traffic_control/clients/python/trafficops/tosession.py
+++ b/traffic_control/clients/python/trafficops/tosession.py
@@ -767,11 +767,11 @@ class TOSession(RestApiSession):
                :raises: Union[LoginError, OperationError]
                """
 
-       @api_request('delete', 
'deliveryservice_server/{delivery_service_id:d}/{server_id:d}',('2.0',))
+       @api_request('delete', 
'deliveryserviceserver/{delivery_service_id:d}/{server_id:d}',('2.0',))
        def delete_deliveryservice_servers_by_id(self, 
delivery_service_id=None, server_id=None):
                """
                Removes a server (cache) from a delivery service.
-               :ref:`to-api-deliveryservice_server-dsid-serverid`
+               :ref:`to-api-deliveryserviceserver-dsid-serverid`
                :param delivery_service_id: The delivery service id
                :type delivery_service_id: int
                :param server_id: The server id to remove from delivery service
diff --git a/traffic_ops/client/deliveryserviceserver.go 
b/traffic_ops/client/deliveryserviceserver.go
index d446fb3..cb81ff3 100644
--- a/traffic_ops/client/deliveryserviceserver.go
+++ b/traffic_ops/client/deliveryserviceserver.go
@@ -49,7 +49,7 @@ func (to *Session) CreateDeliveryServiceServers(dsID int, 
serverIDs []int, repla
 }
 
 func (to *Session) DeleteDeliveryServiceServer(dsID int, serverID int) 
(tc.Alerts, ReqInf, error) {
-       route := apiBase + `/deliveryservice_server/` + strconv.Itoa(dsID) + 
"/" + strconv.Itoa(serverID)
+       route := apiBase + `/deliveryserviceserver/` + strconv.Itoa(dsID) + "/" 
+ strconv.Itoa(serverID)
        reqResp, remoteAddr, err := to.request(http.MethodDelete, route, nil)
        reqInf := ReqInf{CacheHitStatus: CacheHitStatusMiss, RemoteAddr: 
remoteAddr}
        if err != nil {
diff --git a/traffic_ops/traffic_ops_golang/deliveryservice/servers/delete.go 
b/traffic_ops/traffic_ops_golang/deliveryservice/servers/delete.go
index 0b627e0..0de7785 100644
--- a/traffic_ops/traffic_ops_golang/deliveryservice/servers/delete.go
+++ b/traffic_ops/traffic_ops_golang/deliveryservice/servers/delete.go
@@ -31,10 +31,21 @@ import (
        "github.com/apache/trafficcontrol/traffic_ops/traffic_ops_golang/tenant"
 )
 
+// Delete handler for deleting the association between a Delivery Service and 
a Server
 func Delete(w http.ResponseWriter, r *http.Request) {
+       delete(w, r, false)
+}
+
+// Delete deprecatation handler for deleting the association between a 
Delivery Service and a Server
+func DeleteDeprecated(w http.ResponseWriter, r *http.Request) {
+       delete(w, r, true)
+}
+
+func delete(w http.ResponseWriter, r *http.Request, deprecated bool) {
+       alt := "DELETE deliveryserviceserver/:dsid/:serverid"
        inf, userErr, sysErr, errCode := api.NewInfo(r, []string{"serverid", 
"dsid"}, []string{"serverid", "dsid"})
        if userErr != nil || sysErr != nil {
-               api.HandleErr(w, r, inf.Tx.Tx, errCode, userErr, sysErr)
+               api.HandleErrOptionalDeprecation(w, r, inf.Tx.Tx, errCode, 
userErr, sysErr, deprecated, &alt)
                return
        }
        defer inf.Close()
@@ -44,35 +55,41 @@ func Delete(w http.ResponseWriter, r *http.Request) {
 
        userErr, sysErr, errCode = tenant.CheckID(inf.Tx.Tx, inf.User, dsID)
        if userErr != nil || sysErr != nil {
-               api.HandleErr(w, r, inf.Tx.Tx, errCode, userErr, sysErr)
+               api.HandleErrOptionalDeprecation(w, r, inf.Tx.Tx, errCode, 
userErr, sysErr, deprecated, &alt)
                return
        }
 
        dsName, _, err := dbhelpers.GetDSNameFromID(inf.Tx.Tx, dsID)
        if err != nil {
-               api.HandleErr(w, r, inf.Tx.Tx, http.StatusInternalServerError, 
nil, errors.New("getting delivery service name from id: "+err.Error()))
+               api.HandleErrOptionalDeprecation(w, r, inf.Tx.Tx, 
http.StatusInternalServerError, nil, errors.New("getting delivery service name 
from id: "+err.Error()), deprecated, &alt)
                return
        }
 
        serverName, exists, err := dbhelpers.GetServerNameFromID(inf.Tx.Tx, 
serverID)
        if err != nil {
-               api.HandleErr(w, r, inf.Tx.Tx, http.StatusInternalServerError, 
nil, errors.New("getting server name from id: "+err.Error()))
+               api.HandleErrOptionalDeprecation(w, r, inf.Tx.Tx, 
http.StatusInternalServerError, nil, errors.New("getting server name from id: 
"+err.Error()), deprecated, &alt)
                return
        } else if !exists {
-               api.HandleErr(w, r, inf.Tx.Tx, http.StatusNotFound, 
errors.New("server not found"), nil)
+               api.HandleErrOptionalDeprecation(w, r, inf.Tx.Tx, 
http.StatusNotFound, errors.New("server not found"), nil, deprecated, &alt)
                return
        }
 
        ok, err := deleteDSServer(inf.Tx.Tx, dsID, serverID)
        if err != nil {
-               api.HandleErr(w, r, inf.Tx.Tx, http.StatusInternalServerError, 
nil, errors.New("deleting delivery service server: "+err.Error()))
+               api.HandleErrOptionalDeprecation(w, r, inf.Tx.Tx, 
http.StatusInternalServerError, nil, errors.New("deleting delivery service 
server: "+err.Error()), deprecated, &alt)
                return
        }
        if !ok {
-               api.HandleErr(w, r, inf.Tx.Tx, http.StatusNotFound, nil, nil)
+               api.HandleErrOptionalDeprecation(w, r, inf.Tx.Tx, 
http.StatusNotFound, nil, nil, deprecated, &alt)
                return
        }
        api.CreateChangeLogRawTx(api.ApiChange, "DS: "+string(dsName)+", ID: 
"+strconv.Itoa(dsID)+", ACTION: Remove server "+string(serverName)+" from 
delivery service", inf.User, inf.Tx.Tx)
+       if deprecated {
+               alerts := api.CreateDeprecationAlerts(&alt)
+               alerts.AddNewAlert(tc.SuccessLevel, "Server unlinked from 
delivery service.")
+               api.WriteAlerts(w, r, http.StatusOK, alerts)
+               return
+       }
        api.WriteRespAlert(w, r, tc.SuccessLevel, "Server unlinked from 
delivery service.")
 }
 
diff --git a/traffic_ops/traffic_ops_golang/routing/routes.go 
b/traffic_ops/traffic_ops_golang/routing/routes.go
index 7e6c0b8..1892fc8 100644
--- a/traffic_ops/traffic_ops_golang/routing/routes.go
+++ b/traffic_ops/traffic_ops_golang/routing/routes.go
@@ -279,12 +279,11 @@ func Routes(d ServerData) ([]Route, []RawRoute, 
http.Handler, error) {
                {api.Version{2, 0}, http.MethodPost, `regions/?$`, 
api.CreateHandler(&region.TORegion{}), auth.PrivLevelOperations, Authenticated, 
nil, 2288334488, noPerlBypass},
                {api.Version{2, 0}, http.MethodDelete, `regions/?$`, 
api.DeleteHandler(&region.TORegion{}), auth.PrivLevelOperations, Authenticated, 
nil, 2232626758, noPerlBypass},
 
-               {api.Version{2, 0}, http.MethodDelete, 
`deliveryservice_server/{dsid}/{serverid}`, dsserver.Delete, 
auth.PrivLevelOperations, Authenticated, nil, 2532184523, noPerlBypass},
-
                // get all edge servers associated with a delivery service 
(from deliveryservice_server table)
 
                {api.Version{2, 0}, http.MethodGet, `deliveryserviceserver/?$`, 
dsserver.ReadDSSHandlerV14, auth.PrivLevelReadOnly, Authenticated, nil, 
2946145033, noPerlBypass},
                {api.Version{2, 0}, http.MethodPost, `deliveryserviceserver$`, 
dsserver.GetReplaceHandler, auth.PrivLevelOperations, Authenticated, nil, 
229799788, noPerlBypass},
+               {api.Version{2, 0}, http.MethodDelete, 
`deliveryserviceserver/{dsid}/{serverid}`, dsserver.Delete, 
auth.PrivLevelOperations, Authenticated, nil, 2532184523, noPerlBypass},
                {api.Version{2, 0}, http.MethodPost, 
`deliveryservices/{xml_id}/servers$`, dsserver.GetCreateHandler, 
auth.PrivLevelOperations, Authenticated, nil, 2428181206, noPerlBypass},
                {api.Version{2, 0}, http.MethodGet, 
`servers/{id}/deliveryservices$`, 
api.ReadHandler(&dsserver.TODSSDeliveryService{}), auth.PrivLevelReadOnly, 
Authenticated, nil, 233115411, noPerlBypass},
                {api.Version{2, 0}, http.MethodGet, 
`deliveryservices/{id}/servers$`, dsserver.GetReadAssigned, 
auth.PrivLevelReadOnly, Authenticated, nil, 2345121223, noPerlBypass},
@@ -674,7 +673,7 @@ func Routes(d ServerData) ([]Route, []RawRoute, 
http.Handler, error) {
                {api.Version{1, 1}, http.MethodDelete, `regions/name/{name}$`, 
handlerToFunc(proxyHandler), 0, NoAuth, nil, 1925881096, noPerlBypass},
                {api.Version{1, 1}, http.MethodDelete, `regions/{id}$`, 
api.DeprecatedDeleteHandler(&region.TORegion{}, util.StrPtr("DELETE /regions 
with query parameter id")), auth.PrivLevelOperations, Authenticated, nil, 
1181575271, noPerlBypass},
 
-               {api.Version{1, 1}, http.MethodDelete, 
`deliveryservice_server/{dsid}/{serverid}`, dsserver.Delete, 
auth.PrivLevelOperations, Authenticated, nil, 1532184523, noPerlBypass},
+               {api.Version{1, 1}, http.MethodDelete, 
`deliveryservice_server/{dsid}/{serverid}`, dsserver.DeleteDeprecated, 
auth.PrivLevelOperations, Authenticated, nil, 1532184523, noPerlBypass},
 
                // get all edge servers associated with a delivery service 
(from deliveryservice_server table)
 
diff --git a/traffic_portal/app/src/common/api/DeliveryServiceService.js 
b/traffic_portal/app/src/common/api/DeliveryServiceService.js
index 2cb8019..7af8ae2 100644
--- a/traffic_portal/app/src/common/api/DeliveryServiceService.js
+++ b/traffic_portal/app/src/common/api/DeliveryServiceService.js
@@ -208,7 +208,7 @@ var DeliveryServiceService = function($http, locationUtils, 
messageModel, ENV) {
     };
 
     this.deleteDeliveryServiceServer = function(dsId, serverId) {
-        return $http.delete(ENV.api['root'] + 'deliveryservice_server/' + dsId 
+ '/' + serverId).then(
+        return $http.delete(ENV.api['root'] + 'deliveryserviceserver/' + dsId 
+ '/' + serverId).then(
             function(result) {
                 messageModel.setMessages(result.data.alerts, false);
                 return result;

Reply via email to