This repository was archived by the owner on Nov 24, 2025. It is now read-only.
-
Notifications
You must be signed in to change notification settings - Fork 356
Assign multiple servers to a capability #7079
Merged
srijeet0406
merged 30 commits into
apache:master
from
rimashah25:assign-multiple-servers-to-capability
Oct 31, 2022
Merged
Changes from all commits
Commits
Show all changes
30 commits
Select commit
Hold shift + click to select a range
5b1f4bf
Added TO logic to assign multiple servers per capability.
rimashah25 bb9b700
Added TP logic to assign multiple servers per capability.
rimashah25 9d371c1
minor corrections and variable name change
rimashah25 d4d5173
Fixed vairable names.
rimashah25 46c00bc
Fixed broken links and another variable name change.
rimashah25 0ac8e34
Updated test client.
rimashah25 5924351
Updated based on review comments.
rimashah25 b31b4eb
Changed serverIDs type to int to avoid string to int conversion.
rimashah25 997379e
Added multiple_servers_capabilities() and changed the documents and r…
rimashah25 6271af2
Updated tests, and TP to relate to multiple_servers_capabilities().
rimashah25 5ac15fa
Removed old function for mass-assignment (server or capability)
rimashah25 f55f614
Updated route ID
rimashah25 63d9e15
Updated docs
rimashah25 27dc286
Updated docs-1
rimashah25 b4d16bd
Split PUT API call into POST and DELETE.
rimashah25 bbb60c8
Updated tests
rimashah25 a2ff315
Updated docs-2
rimashah25 b568d72
Updated tests, added another condition for simultaneous add, delete.
rimashah25 8aa5973
Updated tests-1
rimashah25 ef2ae39
Tired to remove database query built from user-controlled sources
rimashah25 66cb5b4
Fix APIv5 test.
rimashah25 29b55eb
Fixed docs based on review comments and removed duplicate code.
rimashah25 888acca
Added pageType variable to reduce if-else statements.
rimashah25 b4b2d8d
Updated per review comments-1
rimashah25 4065690
Updated tests.
rimashah25 bdf32e1
Updated tests and docs.
rimashah25 35f6e8e
Removed unused variable
rimashah25 2228131
Added check for many:many
rimashah25 68fae1d
Added validation for JSON body.
rimashah25 a6a3a02
Updated tests based on newly added validation logic.
rimashah25 File filter
Filter by extension
Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
There are no files selected for viewing
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file was deleted.
Oops, something went wrong.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -0,0 +1,192 @@ | ||
| .. | ||
| .. | ||
| .. Licensed under the Apache License, Version 2.0 (the "License"); | ||
| .. you may not use this file except in compliance with the License. | ||
| .. You may obtain a copy of the License at | ||
| .. | ||
| .. http://www.apache.org/licenses/LICENSE-2.0 | ||
| .. | ||
| .. Unless required by applicable law or agreed to in writing, software | ||
| .. distributed under the License is distributed on an "AS IS" BASIS, | ||
| .. WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
| .. See the License for the specific language governing permissions and | ||
| .. limitations under the License. | ||
| .. | ||
|
|
||
| .. _to-api-v4-multiple_servers_capabilities: | ||
|
|
||
| ********************************* | ||
| ``multiple_servers_capabilities`` | ||
| ********************************* | ||
|
|
||
| .. versionadded:: 4.1 | ||
|
|
||
| ``POST`` | ||
| ======== | ||
| Inserts a list of :term:`Server Capability` names associated to a server and vice versa i.e insert a list of :term:`Server` ids associated to a server capability. | ||
|
|
||
| :Auth. Required: Yes | ||
| :Roles Required: "admin" or "operations" | ||
| :Permissions Required: SERVER:READ, SERVER:CREATE, SERVER-CAPABILITY:READ, SERVER-CAPABILITY:CREATE | ||
| :Response Type: Object | ||
|
|
||
| Request Structure | ||
| ----------------- | ||
| :serverIds: List of :term:`Server` ids (integral, unique identifier) associated with a :term:`Server Capability` | ||
| :serverCapabilities: List of :term:`Server Capability` names to associate with a :term:`Server` id | ||
| :pageType: To determine which configuration (server or server capabilities) is requesting association. Only two values are permitted: `server` or `sc` (short for server capability). If `server` is chosen, it implies that multiple server capabilities are to be associated with a given server id. If `sc` is chosen, it implies that multiple server ids are to be associated with a given server capability. | ||
|
|
||
| .. code-block:: http | ||
| :caption: Request Example1 | ||
|
|
||
| POST /api/4.1/multiple_servers_capabilities/ HTTP/1.1 | ||
| Host: trafficops.infra.ciab.test | ||
| User-Agent: curl/7.47.0 | ||
| Accept: */* | ||
| Cookie: mojolicious=... | ||
| Content-Length: 84 | ||
| Content-Type: application/json | ||
|
|
||
| { | ||
| "serverIds": [1], | ||
| "serverCapabilities": ["test", "disk"] | ||
| "pageType": "server" | ||
| } | ||
|
|
||
| .. code-block:: http | ||
| :caption: Request Example2 | ||
|
|
||
| POST /api/4.1/multiple_servers_capabilities/ HTTP/1.1 | ||
| Host: trafficops.infra.ciab.test | ||
| User-Agent: curl/7.47.0 | ||
| Accept: */* | ||
| Cookie: mojolicious=... | ||
| Content-Length: 84 | ||
| Content-Type: application/json | ||
|
|
||
| { | ||
| "serverIds": [2, 3] | ||
| "serverCapabilities": ["eas"], | ||
| "pageType": "sc" | ||
| } | ||
|
|
||
| Response Structure | ||
| ------------------ | ||
| :serverId: List of :term:`Server` ids (integral, unique identifier) associated with a server capability. | ||
| :serverCapabilities: List of :term:`Server Capability` names to be associated with a :term:`Server` id. | ||
|
|
||
| .. code-block:: http | ||
| :caption: Response Example1 | ||
|
|
||
| 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, 8 Aug 2022 22:40:54 GMT; Max-Age=3600; HttpOnly | ||
| Whole-Content-Sha512: eQrl48zWids0kDpfCYmmtYMpegjnFxfOVvlBYxxLSfp7P7p6oWX4uiC+/Cfh2X9i3G+MQ36eH95gukJqOBOGbQ== | ||
| X-Server-Name: traffic_ops_golang/ | ||
| Date: Mon, 08 Aug 2022 16:15:11 GMT | ||
| Content-Length: 157 | ||
|
|
||
| { | ||
| "alerts": [{ | ||
| "text": "Multiple Server Capabilities assigned to a server", | ||
| "level": "success" | ||
| }], | ||
| "response": { | ||
| "serverIds": [1], | ||
| "serverCapabilities": ["test", "disk"] | ||
| } | ||
| } | ||
|
|
||
| .. code-block:: http | ||
| :caption: Response Example2 | ||
|
|
||
| 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, 8 Aug 2022 22:40:54 GMT; Max-Age=3600; HttpOnly | ||
| Whole-Content-Sha512: eQrl48zWids0kDpfCYmmtYMpegjnFxfOVvlBYxxLSfp7P7p6oWX4uiC+/Cfh2X9i3G+MQ36eH95gukJqOBOGbQ== | ||
| X-Server-Name: traffic_ops_golang/ | ||
| Date: Mon, 08 Aug 2022 16:15:11 GMT | ||
| Content-Length: 157 | ||
|
|
||
| { | ||
| "alerts": [{ | ||
| "text": "Multiple Servers assigned to a capability", | ||
| "level": "success" | ||
| }], | ||
| "response": { | ||
| "serverIds": [2, 3] | ||
| "serverCapabilities": ["eas"], | ||
| } | ||
| } | ||
|
|
||
| ``DELETE`` | ||
| ========== | ||
| Deletes a list of :term:`Server Capability` names associated to a server and vice versa i.e. deletes a list of :term:`Server` ids associated to a server capability. | ||
|
|
||
| :Auth. Required: Yes | ||
| :Roles Required: "admin" or "operations" | ||
| :Permissions Required: SERVER:READ, SERVER:DELETE, SERVER-CAPABILITY:READ, SERVER-CAPABILITY:DELETE | ||
| :Response Type: Object | ||
|
|
||
| Request Structure | ||
| ----------------- | ||
| :serverIds: List of :term:`Server` ids (integral, unique identifier) associated with a :term:`Server Capability` | ||
| :serverCapabilities: List of :term:`Server Capability` names to associate with a :term:`Server` id | ||
| :pageType: To determine which configuration (server or server capabilities) is requesting deletion. Only two values are permitted: `server` or `sc` (short for server capability). If `server` is chosen, it implies that multiple server capabilities are to be deleted for a given server id. If `sc` is chosen, it implies that multiple server ids are to be deleted for a given server capability. | ||
|
|
||
| .. code-block:: http | ||
| :caption: Request Example | ||
|
|
||
| DELETE /api/4.1/multiple_servers_capabilities/ HTTP/1.1 | ||
| Host: trafficops.infra.ciab.test | ||
| User-Agent: curl/7.47.0 | ||
| Accept: */* | ||
| Cookie: mojolicious=... | ||
| Content-Length: 84 | ||
| Content-Type: application/json | ||
|
|
||
| { | ||
| "serverIds": [2, 3] | ||
| "serverCapabilities": ["eas"], | ||
| "pageType": "sc" | ||
| } | ||
|
|
||
| Response Structure | ||
| ------------------ | ||
| :serverId: List of :term:`Server` ids (integral, unique identifier) associated with a server capability. | ||
| :serverCapabilities: List of :term:`Server Capability` names to be associated with a :term:`Server` id. | ||
|
|
||
| .. 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, 8 Aug 2022 22:40:54 GMT; Max-Age=3600; HttpOnly | ||
| Whole-Content-Sha512: eQrl48zWids0kDpfCYmmtYMpegjnFxfOVvlBYxxLSfp7P7p6oWX4uiC+/Cfh2X9i3G+MQ36eH95gukJqOBOGbQ== | ||
| X-Server-Name: traffic_ops_golang/ | ||
| Date: Mon, 08 Aug 2022 16:15:11 GMT | ||
| Content-Length: 157 | ||
|
|
||
| { | ||
| "alerts": [{ | ||
| "text": "Removed multiple servers from capabilities or multiple servers to a capability", | ||
| "level": "success" | ||
| }], | ||
| "response": { | ||
| "serverIds": [2, 3] | ||
| "serverCapabilities": ["eas"], | ||
| } | ||
| } | ||
|
|
||
This file was deleted.
Oops, something went wrong.
Oops, something went wrong.
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Uh oh!
There was an error while loading. Please reload this page.