cdn_locks

New in version 4.0.

GET

Gets information for all CDN locks.

Auth. Required:

Yes

Roles Required:

None

Permissions Required:

CDN:READ

Response Type:

Array

Request Structure

Table 275 Request Query Parameters

Parameter

Required

Description

username

no

Return only the CDN lock that the user with username possesses

cdn

no

Return only the CDN lock for the CDN that has the name cdn

Response Structure

userName:

The username for which the lock exists.

cdn:

The name of the CDN for which the lock exists.

message:

The message or reason that the user specified while acquiring the lock.

soft:

Whether or not this is a soft(shared) lock.

sharedUserNames:

An array of the usernames that the creator of the lock has shared their lock with.

lastUpdated:

Time that this lock was last updated(created).

#665 Response Example
HTTP/2 200
Content-Type: application/json

{ "response": [
    {
        "userName": "foo",
        "cdn": "bar",
        "message": "acquiring lock to snap CDN",
        "soft": true,
        "sharedUserNames": [
            "user1"
        ],
        "lastUpdated": "2021-05-26T09:31:57.01527-06:00"
    }
]}

POST

Allows user to acquire a lock on a CDN.

Auth. Required:

Yes

Roles Required:

“admin” or “operations”

Permissions Required:

CDN-LOCK:CREATE, CDN:READ

Response Type:

Object

Request Structure

The request body must be a single CDN Lock object with the following keys:

cdn:

The name of the CDN for which the user wants to acquire a lock.

message:

The message or reason for the user to acquire the lock. This is an optional field.

sharedUserNames:

An array of the usernames that the creator of the lock wants to share their lock with. This is an optional field.

soft:

Whether or not this is a soft(shared) lock. This is an optional field; soft will be set to true by default.

#666 Request Example
POST /api/4.0/cdn_locks HTTP/2
Host: localhost:8443
User-Agent: curl/7.64.2
Accept: */*
Cookie: mojolicious=...
Content-Type: application/json
Content-Length: 81

{
    "cdn": "bar",
    "message": "acquiring lock to snap CDN",
    "sharedUserNames": [
            "user1"
    ],
    "soft": true
}

Response Structure

userName:

The username for which the lock was created.

cdn:

The name of the CDN for which the lock was created.

message:

The message or reason that the user specified while acquiring the lock.

soft:

Whether or not this is a soft(shared) lock.

sharedUserNames:

An array of the usernames that the creator of the lock has shared their lock with.

lastUpdated:

Time that this lock was last updated(created).

#667 Response Example
HTTP/2 201
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=Wed, 26 May 2021 17:59:10 GMT; Max-Age=3600; HttpOnly
Whole-Content-Sha512: IWjt4zhg4OlPDTfOebjMTS1uHsZ8LycEaHgSS3KHnmc6Vvmw5/S6q70CCnbAePV2x1bxKkVEifTIxfft8vq3sg==
X-Server-Name: traffic_ops_golang/
Date: Wed, 26 May 2021 16:59:10 GMT
Content-Length: 204

{ "alerts": [
    {
        "text": "soft CDN lock acquired!",
        "level":"success"
    }
],
"response": {
    "userName": "foo",
    "cdn": "bar",
    "message": "acquiring lock to snap CDN",
    "soft": true,
    "sharedUserNames": [
        "user1"
    ],
    "lastUpdated": "2021-05-26T10:59:10.03557-06:00"
}}

DELETE

Deletes an existing CDN Lock.

Auth. Required:

Yes

Roles Required:

“admin” or “operations”

Permissions Required:

CDN-LOCK:DELETE, CDN:READ

Response Type:

Object

Request Structure

Table 276 Request Query Parameters

Parameter

Required

Description

cdn

yes

Delete the CDN lock for the CDN that has the name cdn

#668 Request Example
DELETE /api/4.0/cdn_locks?cdn=bar HTTP/2
Host: localhost:8443
User-Agent: curl/7.64.1
Accept: */*
Connection: keep-alive
Cookie: mojolicious=...
Content-Length: 0
Content-Type: application/json

Response Structure

userName:

The username for which the lock was created.

cdn:

The name of the CDN for which the lock was created.

message:

The message or reason that the user specified while acquiring the lock.

soft:

Whether or not this is a soft(shared) lock.

sharedUserNames:

An array of the usernames that the creator of the lock has shared their lock with.

lastUpdated:

Time that this lock was last updated(created).

#669 Response Example
HTTP/2 200
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=Wed, 26 May 2021 22:20:10 GMT; Max-Age=3600; HttpOnly
Whole-Content-Sha512: p/M2OEmhaws6QLhzzoSBvpC5UnIM+/84RI1wO42PYXiyUKWnxoQQEtm4lkN+K5NOKIH+OkyUlI2ovQZP6lGOcg==
X-Server-Name: traffic_ops_golang/
Date: Wed, 26 May 2021 21:20:10 GMT
Content-Length: 202

{ "alerts": [
    {
        "text": "cdn lock deleted",
        "level":"success"
    }
],
"response": {
    "userName": "foo",
    "cdn": "bar",
    "message": "acquiring lock to snap CDN",
    "soft": true,
    "sharedUserNames": [
        "user1"
    ],
    "lastUpdated": "2021-05-26T10:59:10.02632-06:00"
}}