Es posible borrar determinado contenido cacheado en la CDN de modo programático sirviendo del API REST del VIMS.
Para poder autenticarse con el sistema es necesario obtener un token de autenticación que se debe envíar como header en cada request. Usted puede conseguir su token a través de VIMS Console
Para averiguar los parámetros del servicio de CDN contratado se puede hacer una request como indicado a continuación
Obtener Información
Para obtener información de tu CDN: GET /api/services/cdn/
curl "https://vims.planisys. net/api/services/cdn/" -H "Authorization: sk_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
Lista todos los servicios de tipo CDN
Response 200 OK
{
"count": 1,
"data": [
{
"active": true,
"bundle": {},
"company": {
"id": ,
"name": "Company name"
},
"configs": [],
"description": "CDN name",
"id": ,
"meta_service": {},
"monitored_urls": [],
"name": null,
"properties": [],
"stats": [],
"sub_services": [
{
"description": "",
"id": ,
"type": {
"id": ,
"name": "CDN_HOST"
},
"vm": {
"company": {
"id": ,
"name": ""
},
"id": ,
"name": "cdn-ejemplo.planisys.net",
"networking": [
{
"id": ,
"ip": "365.124.12.xxx"
}
]
}
}
],
"tasks": [],
"type": {
"id": 1,
"name": "CDN"
},
"vm": {}
}
],
"message": "found",
"status": "ok"
}
Borrar Contenido Cacheado
POST /api/services/cdn/<:cdn_id>/purge
Parámetros
-
- target – <:vm_id> o “all”
Si uno quiere borrar un host determinado se usa el id del host que se ve en la consola del vims, o “all” para borrar en todos.
-
- pattern – regex o “*”
El “*” es para borrar todo. En caso de querer borrar en base a un pattern, hay que pasar una expresión regular.
Response 200 OK
{
"message": "purge running",
"status": "ok",
"task_id": <:task_id>
}
Response 400
{
"message": "failed creation : some reason",
"status": "error"
}
Ejemplo en bash
curl "https://vims.planisys.net/api/services/cdn/<:cdn_id>/purge" -H "Content-Type: application/json"-H 'Authorization: sk_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx' -X POST -d '{"target":"<:vm_id>", "pattern":"jpg"}'
Revisar resultado del purge
GET /api/tasks/<:task_id>
Ejemplo en bash
curl "https://vims.planisys.net/api/task/<:task_id>" -H 'Authorization: sk_live_xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx'
Response 200 OK
{
"data": {
"comment": null,
"end": "Wed, 04 Feb 2015 18:11:15 GMT",
"hn": {},
"id": <:task_id>,
"name": "Task name",
"output": "Command failed: ['output']",
"percentage": 100,
"service": {
"description": "CDN Name",
"id": <:cdn_id>,
"name": null
},
"start": "Wed, 04 Feb 2015 18:06:06 GMT",
"status": "FAILURE",
"task_remote_id": "28e8a51e-1a9d-xxxx-xxxx-65e81117742a",
"task_type": "celery",
"user": {
"email": "user@domain.com",
"id": <:user_id>
},
"vims_task_type": "cdn_purge",
"vm": {}
},
"message": "bundle found",
"status": "ok"
}