Skip to content
This repository was archived by the owner on Nov 24, 2025. It is now read-only.
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -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`
Expand Down Expand Up @@ -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
Expand Down
6 changes: 6 additions & 0 deletions docs/source/api/v1/deliveryservice_server_dsid_serverid.rst
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,8 @@
************************************************
``deliveryservice_server/{{DSID}}/{{serverID}}``
************************************************
.. deprecated:: ATCv4
Use the ``DELETE`` method of :ref:`to-api-deliveryserviceserver-dsid-serverid` instead.

``DELETE``
==========
Expand Down Expand Up @@ -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"
}
]}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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``
==========
Expand Down
4 changes: 2 additions & 2 deletions traffic_control/clients/python/trafficops/tosession.py
Original file line number Diff line number Diff line change
Expand Up @@ -767,11 +767,11 @@ def assign_deliveryservice_servers_by_names(self, xml_id=None, data=None):
: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
Expand Down
2 changes: 1 addition & 1 deletion traffic_ops/client/deliveryserviceserver.go
Original file line number Diff line number Diff line change
Expand Up @@ -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 {
Expand Down
31 changes: 24 additions & 7 deletions traffic_ops/traffic_ops_golang/deliveryservice/servers/delete.go
Original file line number Diff line number Diff line change
Expand Up @@ -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()
Expand All @@ -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.")
}

Expand Down
5 changes: 2 additions & 3 deletions traffic_ops/traffic_ops_golang/routing/routes.go
Original file line number Diff line number Diff line change
Expand Up @@ -281,12 +281,11 @@ func Routes(d ServerData) ([]Route, []RawRoute, http.Handler, error) {
{api.Version{2, 0}, http.MethodDelete, `regions/?$`, api.DeleteHandler(&region.TORegion{}), auth.PrivLevelOperations, Authenticated, nil, 2232626758, noPerlBypass},
{api.Version{2, 0}, http.MethodDelete, `regions/{id}$`, api.DeleteHandler(&region.TORegion{}), auth.PrivLevelOperations, Authenticated, nil, 2181575271, 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},
Expand Down Expand Up @@ -676,7 +675,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.DeleteHandler(&region.TORegion{}), 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)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down