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/03/18 20:56:00 UTC
[trafficcontrol] branch master updated: Deprecate GET servers id
(#4505)
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 22f523e Deprecate GET servers id (#4505)
22f523e is described below
commit 22f523ef1a942780e2f5f6ae6f24c8030932bcf4
Author: Michael Hoppal <54...@users.noreply.github.com>
AuthorDate: Wed Mar 18 14:55:52 2020 -0600
Deprecate GET servers id (#4505)
* Deprecate GET servers id
* Fix docs build issue
---
CHANGELOG.md | 1 +
docs/source/api/v1/servers_id.rst | 9 ++
docs/source/api/v2/servers_id.rst | 175 +--------------------
.../clients/python/trafficops/tosession.py | 11 --
traffic_ops/client/server.go | 2 +-
traffic_ops/traffic_ops_golang/routing/routes.go | 3 +-
6 files changed, 14 insertions(+), 187 deletions(-)
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 21ec6aa..871febb 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -90,6 +90,7 @@ The format is based on [Keep a Changelog](http://keepachangelog.com/en/1.0.0/).
- /riak/ping
- /riak/stats
- /servercheck/aadata
+ - /servers/:id (GET)
- /servers/totals
- /stats_summary/create
- /to_extensions/:id/delete
diff --git a/docs/source/api/v1/servers_id.rst b/docs/source/api/v1/servers_id.rst
index bb3e715..1273227 100644
--- a/docs/source/api/v1/servers_id.rst
+++ b/docs/source/api/v1/servers_id.rst
@@ -21,6 +21,9 @@
``GET``
=======
+.. deprecated:: ATCv4
+ Use the ``GET`` method of :ref:`to-api-v1-servers` with the query parameter ``id`` instead.
+
Retrieves properties of a specific server.
:Auth. Required: Yes
@@ -184,6 +187,12 @@ Response Structure
"xmppId": "mid",
"xmppPasswd": ""
}
+ ],
+ "alerts": [
+ {
+ "text": "This endpoint is deprecated, please use GET /servers with query parameter id instead",
+ "level": "warning"
+ }
]}
.. [1] For more information see the `Wikipedia page on Lights-Out management <https://en.wikipedia.org/wiki/Out-of-band_management>`_\ .
diff --git a/docs/source/api/v2/servers_id.rst b/docs/source/api/v2/servers_id.rst
index 6d4ce3c..de0666b 100644
--- a/docs/source/api/v2/servers_id.rst
+++ b/docs/source/api/v2/servers_id.rst
@@ -19,179 +19,6 @@
``servers/{{ID}}``
******************
-``GET``
-=======
-Retrieves properties of a specific server.
-
-:Auth. Required: Yes
-:Roles Required: None
-:Response Type: Array
-
-Request Structure
------------------
-.. table:: Request Path Parameters
-
- +------+---------------------------------------------+
- | Name | Description |
- +======+=============================================+
- | ID | The integral, unique identifier of a server |
- +------+---------------------------------------------+
-
-.. table:: Request Query Parameters
-
- +-----------+----------+---------------------------------------------------------------------------------------------------------------+
- | Name | Required | Description |
- +===========+==========+===============================================================================================================+
- | orderby | no | Choose the ordering of the results - must be the name of one of the fields of the objects in the ``response`` |
- | | | array |
- +-----------+----------+---------------------------------------------------------------------------------------------------------------+
- | sortOrder | no | Changes the order of sorting. Either ascending (default or "asc") or descending ("desc") |
- +-----------+----------+---------------------------------------------------------------------------------------------------------------+
- | limit | no | Choose the maximum number of results to return |
- +-----------+----------+---------------------------------------------------------------------------------------------------------------+
- | offset | no | The number of results to skip before beginning to return results. Must use in conjunction with limit |
- +-----------+----------+---------------------------------------------------------------------------------------------------------------+
- | page | no | Return the n\ :sup:`th` page of results, where "n" is the value of this parameter, pages are ``limit`` long |
- | | | and the first page is 1. If ``offset`` was defined, this query parameter has no effect. ``limit`` must be |
- | | | defined to make use of ``page``. |
- +-----------+----------+---------------------------------------------------------------------------------------------------------------+
-
-.. code-block:: http
- :caption: Request Example
-
- GET /api/2.0/servers?id=10 HTTP/1.1
- Host: trafficops.infra.ciab.test
- User-Agent: curl/7.47.0
- Accept: */*
- Cookie: mojolicious=...
-
-Response Structure
-------------------
-:cachegroup: A string that is the :ref:`name of the Cache Group <cache-group-name>` to which the server belongs
-:cachegroupId: An integer that is the :ref:`ID of the Cache Group <cache-group-id>` to which the server belongs
-:cdnId: The integral, unique identifier of the CDN to which the server belongs
-:cdnName: Name of the CDN to which the server belongs
-:domainName: The domain part of the server's Fully Qualified Domain Name (FQDN)
-:guid: An identifier used to uniquely identify the server
-
- .. note:: This is a legacy key which only still exists for compatibility reasons - it should always be ``null``
-
-:hostName: The (short) hostname of the server
-:httpsPort: The port on which the server listens for incoming HTTPS connections/requests
-:id: An integral, unique identifier for this server
-:iloIpAddress: The IPv4 address of the server's Integrated Lights-Out (ILO) service\ [1]_
-:iloIpGateway: The IPv4 gateway address of the server's ILO service\ [1]_
-:iloIpNetmask: The IPv4 subnet mask of the server's ILO service\ [1]_
-:iloPassword: The password of the of the server's ILO service user\ [1]_ - displays as simply ``******`` if the currently logged-in user does not have the 'admin' or 'operations' role(s)
-:iloUsername: The user name for the server's ILO service\ [1]_
-:interfaceMtu: The Maximum Transmission Unit (MTU) to configured on ``interfaceName``
-:interfaceName: The name of the primary network interface used by the server
-:ip6Address: The IPv6 address and subnet mask of ``interfaceName``
-:ip6IsService: A boolean value which if ``true`` indicates that the IPv6 address will be used for routing content.
-:ip6Gateway: The IPv6 address of the gateway used by ``interfaceName``
-:ipAddress: The IPv4 address of ``interfaceName``
-:ipIsService: A boolean value which if ``true`` indicates that the IPv4 address will be used for routing content.
-:ipGateway: The IPv4 address of the gateway used by ``interfaceName``
-:ipNetmask: The IPv4 subnet mask used by ``interfaceName``
-:lastUpdated: The date and time at which this server description was last modified
-:mgmtIpAddress: The IPv4 address of some network interface on the server used for 'management'
-:mgmtIpGateway: The IPv4 address of a gateway used by some network interface on the server used for 'management'
-:mgmtIpNetmask: The IPv4 subnet mask used by some network interface on the server used for 'management'
-:offlineReason: A user-entered reason why the server is in ADMIN_DOWN or OFFLINE status
-:physLocation: The name of the physical location where the server resides
-:physLocationId: An integral, unique identifier for the physical location where the server resides
-:profile: The :ref:`profile-name` of the :term:`Profile` used by this server
-:profileDesc: A :ref:`profile-description` of the :term:`Profile` used by this server
-:profileId: The :ref:`profile-id` the :term:`Profile` used by this server
-:revalPending: A boolean value which, if ``true`` indicates that this server has pending content invalidation/revalidation
-:rack: A string indicating "server rack" location
-:routerHostName: The human-readable name of the router responsible for reaching this server
-:routerPortName: The human-readable name of the port used by the router responsible for reaching this server
-:status: The status of the server
-
- .. seealso:: :ref:`health-proto`
-
-:statusId: The integral, unique identifier of the status of this server
-
- .. seealso:: :ref:`health-proto`
-
-:tcpPort: The port on which this server listens for incoming TCP connections
-
- .. note:: This is typically thought of as synonymous with "HTTP port", as the port specified by ``httpsPort`` may also be used for incoming TCP connections.
-
-:type: The name of the 'type' of this server
-:typeId: The integral, unique identifier of the 'type' of this server
-:updPending: A boolean value which, if ``true``, indicates that the server has updates of some kind pending, typically to be acted upon by Traffic Ops ORT
-:xmppId: An identifier to be used in XMPP communications with the server - in nearly all cases this will be the same as ``hostName``
-:xmppPasswd: The password used in XMPP communications with the server
-
-.. code-block:: http
- :caption: Response Example
-
- HTTP/1.1 200 OK
- Access-Control-Allow-Credentials: true
- Access-Control-Allow-Headers: Origin, X-Requested-With, Content-Type, Accept, Set-Cookie, Cookie
- Access-Control-Allow-Methods: POST,GET,OPTIONS,PUT,DELETE
- Access-Control-Allow-Origin: *
- Content-Type: application/json
- Set-Cookie: mojolicious=...; Path=/; Expires=Mon, 18 Nov 2019 17:40:54 GMT; Max-Age=3600; HttpOnly
- Whole-Content-Sha512: WyapQctUIhjzEALka5QbBiZRZ58Mlc6MJSwjBeGyJS2UzbL3W6lN/4kvAZtPrP4qMWQBWz6JjbF7Y5lNRASUmQ==
- X-Server-Name: traffic_ops_golang/
- Date: Mon, 10 Dec 2018 16:40:01 GMT
- Content-Length: 939
-
- { "response": [
- {
- "cachegroup": "CDN_in_a_Box_Mid",
- "cachegroupId": 6,
- "cdnId": 2,
- "cdnName": "CDN-in-a-Box",
- "domainName": "infra.ciab.test",
- "guid": null,
- "hostName": "mid",
- "httpsPort": 443,
- "id": 10,
- "iloIpAddress": "",
- "iloIpGateway": "",
- "iloIpNetmask": "",
- "iloPassword": "",
- "iloUsername": "",
- "interfaceMtu": 1500,
- "interfaceName": "eth0",
- "ip6Address": "fc01:9400:1000:8::120",
- "ip6Gateway": "fc01:9400:1000:8::1",
- "ipAddress": "172.16.239.120",
- "ipGateway": "172.16.239.1",
- "ipNetmask": "255.255.255.0",
- "lastUpdated": "2018-12-05 18:45:05+00",
- "mgmtIpAddress": "",
- "mgmtIpGateway": "",
- "mgmtIpNetmask": "",
- "offlineReason": "",
- "physLocation": "Apachecon North America 2018",
- "physLocationId": 1,
- "profile": "ATS_MID_TIER_CACHE",
- "profileDesc": "Mid Cache - Apache Traffic Server",
- "profileId": 10,
- "rack": "",
- "revalPending": false,
- "routerHostName": "",
- "routerPortName": "",
- "status": "REPORTED",
- "statusId": 3,
- "tcpPort": 80,
- "type": "MID",
- "typeId": 12,
- "updPending": false,
- "xmppId": "mid",
- "xmppPasswd": "",
- "ipIsService": true,
- "ip6IsService": true
- }
- ]}
-
-.. [1] For more information see the `Wikipedia page on Lights-Out management <https://en.wikipedia.org/wiki/Out-of-band_management>`_\ .
-
``PUT``
=======
Allow user to edit a server.
@@ -478,3 +305,5 @@ Response Structure
"level": "success"
}
]}
+
+.. [1] For more information see the `Wikipedia page on Lights-Out management <https://en.wikipedia.org/wiki/Out-of-band_management>`_\ .
diff --git a/traffic_control/clients/python/trafficops/tosession.py b/traffic_control/clients/python/trafficops/tosession.py
index 8e01c57..82ff492 100644
--- a/traffic_control/clients/python/trafficops/tosession.py
+++ b/traffic_control/clients/python/trafficops/tosession.py
@@ -1640,17 +1640,6 @@ class TOSession(RestApiSession):
:raises: Union[LoginError, OperationError]
"""
- @api_request('get', 'servers/{server_id:d}', ('2.0',))
- def get_server_by_id(self, server_id=None):
- """
- Get Server by Server ID
- :ref:`to-api-servers-id`
- :param server_id: The server id to retrieve
- :type server_id: int
- :rtype: Tuple[Union[Dict[str, Any], List[Dict[str, Any]]], requests.Response]
- :raises: Union[LoginError, OperationError]
- """
-
@api_request('get', 'servers/{server_id:d}/deliveryservices', ('2.0',))
def get_server_delivery_services(self, server_id=None):
"""
diff --git a/traffic_ops/client/server.go b/traffic_ops/client/server.go
index 6127d87..90c6f60 100644
--- a/traffic_ops/client/server.go
+++ b/traffic_ops/client/server.go
@@ -152,7 +152,7 @@ func (to *Session) GetServers() ([]tc.Server, ReqInf, error) {
// GetServerByID GETs a Server by the Server ID.
func (to *Session) GetServerByID(id int) ([]tc.Server, ReqInf, error) {
- route := fmt.Sprintf("%s/%d", API_SERVERS, id)
+ route := fmt.Sprintf("%s?id=%d", API_SERVERS, id)
resp, remoteAddr, err := to.request(http.MethodGet, route, nil)
reqInf := ReqInf{CacheHitStatus: CacheHitStatusMiss, RemoteAddr: remoteAddr}
if err != nil {
diff --git a/traffic_ops/traffic_ops_golang/routing/routes.go b/traffic_ops/traffic_ops_golang/routing/routes.go
index 6f4b1b1..222731c 100644
--- a/traffic_ops/traffic_ops_golang/routing/routes.go
+++ b/traffic_ops/traffic_ops_golang/routing/routes.go
@@ -313,7 +313,6 @@ func Routes(d ServerData) ([]Route, []RawRoute, http.Handler, error) {
//Server: CRUD
{api.Version{2, 0}, http.MethodGet, `servers/?$`, api.ReadHandler(&server.TOServer{}), auth.PrivLevelReadOnly, Authenticated, nil, 2720959285, noPerlBypass},
- {api.Version{2, 0}, http.MethodGet, `servers/{id}$`, api.ReadHandler(&server.TOServer{}), auth.PrivLevelReadOnly, Authenticated, nil, 2543122028, noPerlBypass},
{api.Version{2, 0}, http.MethodPut, `servers/{id}$`, api.UpdateHandler(&server.TOServer{}), auth.PrivLevelOperations, Authenticated, nil, 258634103, noPerlBypass},
{api.Version{2, 0}, http.MethodPost, `servers/?$`, api.CreateHandler(&server.TOServer{}), auth.PrivLevelOperations, Authenticated, nil, 2225558061, noPerlBypass},
{api.Version{2, 0}, http.MethodDelete, `servers/{id}$`, api.DeleteHandler(&server.TOServer{}), auth.PrivLevelOperations, Authenticated, nil, 292322233, noPerlBypass},
@@ -719,7 +718,7 @@ func Routes(d ServerData) ([]Route, []RawRoute, http.Handler, error) {
//Server: CRUD
{api.Version{1, 1}, http.MethodGet, `servers/?(\.json)?$`, api.ReadHandler(&server.TOServer{}), auth.PrivLevelReadOnly, Authenticated, nil, 1720959285, noPerlBypass},
- {api.Version{1, 1}, http.MethodGet, `servers/{id}$`, api.ReadHandler(&server.TOServer{}), auth.PrivLevelReadOnly, Authenticated, nil, 1543122028, noPerlBypass},
+ {api.Version{1, 1}, http.MethodGet, `servers/{id}$`, api.DeprecatedReadHandler(&server.TOServer{}, util.StrPtr("GET /servers with query parameter id")), auth.PrivLevelReadOnly, Authenticated, nil, 1543122028, noPerlBypass},
{api.Version{1, 1}, http.MethodPut, `servers/{id}$`, api.UpdateHandler(&server.TOServer{}), auth.PrivLevelOperations, Authenticated, nil, 958634103, noPerlBypass},
{api.Version{1, 1}, http.MethodPost, `servers/?$`, api.CreateHandler(&server.TOServer{}), auth.PrivLevelOperations, Authenticated, nil, 2025558061, noPerlBypass},
{api.Version{1, 1}, http.MethodDelete, `servers/{id}$`, api.DeleteHandler(&server.TOServer{}), auth.PrivLevelOperations, Authenticated, nil, 192322233, noPerlBypass},