Skip to content

Commit 753ff9e

Browse files
committed
CCS-4538: Provide an endpoint in Git2Pantheon that would handle cache clearing for both Drupal and Akamai. Changes for Drupal API changes
1 parent f8ccc4c commit 753ff9e

File tree

3 files changed

+31
-43
lines changed

3 files changed

+31
-43
lines changed

git2pantheon/api-docs/cache_clear_api.yaml

Lines changed: 27 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -10,22 +10,6 @@ parameters:
1010
required: true
1111
schema:
1212
$ref: '#/definitions/CacheClearData'
13-
14-
reponses:
15-
200:
16-
description: 'The status of upload corresponding to the key'
17-
schema:
18-
$ref: '#/definitions/UploaderKey'
19-
400:
20-
description: 'Invalid content error'
21-
schema:
22-
$ref: '#/definitions/Error'
23-
500:
24-
description: 'Internal server error'
25-
schema:
26-
$ref: '#/definitions/Error'
27-
28-
2913
definitions:
3014
CacheClearData:
3115
type: object
@@ -50,4 +34,30 @@ definitions:
5034
details:
5135
type: string
5236
description: 'Error details'
53-
37+
CacheClearResult:
38+
type: object
39+
properties:
40+
akamai_result:
41+
type: object
42+
description: 'Result of Akamai cache clear'
43+
drupal_result_assemblies:
44+
type: object
45+
description: 'Result of Drupal cache clear for assemblies'
46+
drupal_result_modules:
47+
type: object
48+
description: 'Result of Drupal cache clear for modules'
49+
produces:
50+
- application/json
51+
reponses:
52+
200:
53+
description: 'The status of cache clear operation'
54+
schema:
55+
$ref: '#/definitions/CacheClearResult'
56+
400:
57+
description: 'Invalid content error'
58+
schema:
59+
$ref: '#/definitions/Error'
60+
500:
61+
description: 'Internal server error'
62+
schema:
63+
$ref: '#/definitions/Error'

git2pantheon/api/upload.py

Lines changed: 4 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -292,27 +292,15 @@ def clear_cache():
292292

293293
def bulk_cache_clear_drupal(cache_clear_result, cache_req_data):
294294
if ASSEMBLIES in cache_req_data:
295-
cache_clear_result["drupal_result_assemblies"] = drupal_client.purge_cache_assembly("assemblies")
295+
cache_clear_result["drupal_result_assemblies"] = drupal_client.purge_cache_assembly_bulk("assemblies")
296296

297297
if MODULES in cache_req_data:
298-
cache_clear_result["drupal_result_modules"] = drupal_client.purge_cache_assembly("modules")
298+
cache_clear_result["drupal_result_modules"] = drupal_client.purge_cache_module_bulk("modules")
299299

300300

301-
def clear_drupal_cache(data, cache_clear_result, bulk_clear=False):
301+
def clear_drupal_cache(data, cache_clear_result):
302302
cache_req_data = CacheObjectHelper.get_drupal_req_data(data)
303-
if bulk_clear:
304-
bulk_cache_clear_drupal(cache_clear_result, cache_req_data)
305-
return
306-
individual_cache_clear_drupal(cache_clear_result, cache_req_data)
307-
308-
309-
def individual_cache_clear_drupal(cache_clear_result, cache_req_data):
310-
if ASSEMBLIES in cache_req_data:
311-
for guid in cache_req_data[ASSEMBLIES]:
312-
cache_clear_result["drupal_result_assemblies"][str(guid)] = drupal_client.purge_cache_assembly(guid)
313-
if MODULES in cache_req_data:
314-
for guid in cache_req_data[MODULES]:
315-
cache_clear_result["drupal_result_modules"][str(guid)] = (drupal_client.purge_cache_module(guid))
303+
bulk_cache_clear_drupal(cache_clear_result, cache_req_data)
316304

317305

318306
def clear_akamai_cache(data, cache_clear_result):

git2pantheon/clients/drupal/drupal_rest_client.py

Lines changed: 0 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -5,16 +5,6 @@ class DrupalClient(RestClient):
55
def __init__(self, *args, **kwargs):
66
super(DrupalClient, self).__init__(*args, **kwargs)
77

8-
@GET('/api/cache_clear/topic/{guid}')
9-
@header('accept', 'application/json')
10-
def purge_cache_module(self, guid):
11-
"""Purge the drupal cache for module"""
12-
13-
@GET('/api/cache_clear/guide/{guid}')
14-
@header('accept', 'application/json')
15-
def purge_cache_assembly(self, guid):
16-
"""Purge the drupal cache for module"""
17-
188
@POST('/api/cache_clear/topic')
199
@header('content-type', 'application/json')
2010
@header('accept', 'application/json')

0 commit comments

Comments
 (0)