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(®ion.TORegion{}), auth.PrivLevelOperations, Authenticated,
nil, 2288334488, noPerlBypass},
{api.Version{2, 0}, http.MethodDelete, `regions/?$`,
api.DeleteHandler(®ion.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(®ion.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;