Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Latest commit

 

History

History
History
76 lines (59 loc) · 2.11 KB

File metadata and controls

76 lines (59 loc) · 2.11 KB
Copy raw file
Download raw file
Open symbols panel
Edit and raw actions
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
#!/usr/bin/env python
"""Cloudflare API code - example"""
import os
import sys
sys.path.insert(0, os.path.abspath('..'))
import CloudFlare
def main():
"""Cloudflare API code - example"""
method = 'POST'
try:
if sys.argv[1] == '--delete':
del sys.argv[1]
method = 'DELETE'
except IndexError:
pass
try:
zone_name = sys.argv[1]
except IndexError:
exit('usage: example_zone_purge_cache.py zone')
cf = CloudFlare.CloudFlare()
# grab the zone identifier
try:
params = {'name': zone_name}
zones = cf.zones.get(params=params)
except CloudFlare.exceptions.CloudFlareAPIError as e:
exit('/zones %d %s - api call failed' % (e, e))
except Exception as e:
exit('/zones.get - %s - api call failed' % (e))
if len(zones) == 0:
exit('/zones.get - %s - zone not found' % (zone_name))
if len(zones) != 1:
exit('/zones.get - %s - api call returned %d items' % (zone_name, len(zones)))
zone_id = zones[0]['id']
zone_type = zones[0]['plan']['name']
if 'Enterprise' in zone_type:
# Enterprise accounts can do all things ...
data = {
# 'purge_everything': True,
'hosts': [zone_name],
'tags': ['random-tag'],
'prefixes': [zone_name + '/' + 'index.html'],
}
else:
# Free, Pro, Business accounts can only do this ...
data = {'purge_everything': True}
print('%s: zone type="%s" and hence using data="%s" method="%s"' % (zone_name, zone_type, data, method))
try:
if method == 'DELETE':
# delete method is not in documents; however, it works
r = cf.zones.purge_cache.delete(zone_id, data=data)
else:
r = cf.zones.purge_cache.post(zone_id, data=data)
except CloudFlare.exceptions.CloudFlareAPIError as e:
exit('/zones/purge_cache %s - %d %s - api call failed' % (zone_name, e, e))
if 'id' not in r or r['id'] != zone_id:
print('%s: weird response: result="%s"' % (zone_name, r))
exit(0)
if __name__ == '__main__':
main()
Morty Proxy This is a proxified and sanitized view of the page, visit original site.