Skip to content
This repository was archived by the owner on Nov 22, 2024. It is now read-only.

Commit c6c3175

Browse files
committed
fixed CloudFlare.exceptions in raise/except
1 parent 5c59702 commit c6c3175

13 files changed

Lines changed: 98 additions & 36 deletions

CloudFlare/__init__.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,4 @@
22

33
from cloudflare import CloudFlare
44

5-
__version__ = '1.2.3'
5+
__version__ = '1.2.4'

README.md

Lines changed: 29 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -68,8 +68,8 @@ if __name__ == '__main__':
6868
A more complex example follows.
6969

7070
```python
71-
import sys
7271
import CloudFlare
72+
import CloudFlare.exceptions
7373

7474
def main():
7575
zone_name = 'example.com'
@@ -79,19 +79,22 @@ def main():
7979
# query for the zone name and expect only one value back
8080
try:
8181
zones = cf.zones.get(params = {'name':zone_name,'per_page':1})
82-
except CloudFlare.CloudFlareAPIError as e:
82+
except CloudFlare.exceptions.CloudFlareAPIError as e:
8383
exit('/zones.get %d %s - api call failed' % (e, e))
8484
except Exception as e:
8585
exit('/zones.get - %s - api call failed' % (e))
8686

87+
if len(zones) == 0:
88+
exit('No zones found')
89+
8790
# extract the zone_id which is needed to process that zone
8891
zone = zones[0]
8992
zone_id = zone['id']
9093

9194
# request the DNS records from that zone
9295
try:
9396
dns_records = cf.zones.dns_records.get(zone_id)
94-
except CloudFlare.CloudFlareAPIError as e:
97+
except CloudFlare.exceptions.CloudFlareAPIError as e:
9598
exit('/zones/dns_records.get %d %s - api call failed' % (e, e))
9699

97100
# print the results - first the zone name
@@ -171,7 +174,9 @@ You can leave *extras* in the configuration with a blank value (or omit the opti
171174

172175
## Exceptions and return values
173176

174-
The response is build from the JSON in the API call.
177+
### Response data
178+
179+
The response is build from the JSON in the API call.
175180
It contains the **results** values; but does not contain the paging values.
176181

177182
You can return all the paging values by calling the class with raw=True. Here's an example without paging.
@@ -235,6 +240,26 @@ This produces.
235240

236241
A full example of paging is provided below.
237242

243+
244+
### Exceptions
245+
246+
The library will raise **CloudFlareAPIError** when the API call fails.
247+
The exception returns both an integer and textual message in one value.
248+
249+
```python
250+
import CloudFlare
251+
import CloudFlare.exceptions
252+
253+
...
254+
try
255+
r = ...
256+
except CloudFlare.exceptions.CloudFlareAPIError as e:
257+
exit('api error: %d %s' % (e, e))
258+
...
259+
```
260+
261+
The other raised response is **CloudFlareInternalError** which can happen when calling an invalid method.
262+
238263
## Included example code
239264

240265
The [examples](https://github.com/cloudflare/python-cloudflare/tree/master/examples) folder contains many examples in both simple and verbose formats.

README.rst

Lines changed: 30 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -84,8 +84,8 @@ A more complex example follows.
8484

8585
.. code:: python
8686
87-
import sys
8887
import CloudFlare
88+
import CloudFlare.exceptions
8989
9090
def main():
9191
zone_name = 'example.com'
@@ -95,19 +95,22 @@ A more complex example follows.
9595
# query for the zone name and expect only one value back
9696
try:
9797
zones = cf.zones.get(params = {'name':zone_name,'per_page':1})
98-
except CloudFlare.CloudFlareAPIError as e:
98+
except CloudFlare.exceptions.CloudFlareAPIError as e:
9999
exit('/zones.get %d %s - api call failed' % (e, e))
100100
except Exception as e:
101101
exit('/zones.get - %s - api call failed' % (e))
102102
103+
if len(zones) == 0:
104+
exit('No zones found')
105+
103106
# extract the zone_id which is needed to process that zone
104107
zone = zones[0]
105108
zone_id = zone['id']
106109
107110
# request the DNS records from that zone
108111
try:
109112
dns_records = cf.zones.dns_records.get(zone_id)
110-
except CloudFlare.CloudFlareAPIError as e:
113+
except CloudFlare.exceptions.CloudFlareAPIError as e:
111114
exit('/zones/dns_records.get %d %s - api call failed' % (e, e))
112115
113116
# print the results - first the zone name
@@ -199,6 +202,9 @@ value (or omit the option variable fully).
199202
Exceptions and return values
200203
----------------------------
201204

205+
Response data
206+
~~~~~~~~~~~~~
207+
202208
The response is build from the JSON in the API call. It contains the
203209
**results** values; but does not contain the paging values.
204210

@@ -265,6 +271,27 @@ This produces.
265271

266272
A full example of paging is provided below.
267273

274+
Exceptions
275+
~~~~~~~~~~
276+
277+
The library will raise **CloudFlareAPIError** when the API call fails.
278+
The exception returns both an integer and textual message in one value.
279+
280+
.. code:: python
281+
282+
import CloudFlare
283+
import CloudFlare.exceptions
284+
285+
...
286+
try
287+
r = ...
288+
except CloudFlare.exceptions.CloudFlareAPIError as e:
289+
exit('api error: %d %s' % (e, e))
290+
...
291+
292+
The other raised response is **CloudFlareInternalError** which can
293+
happen when calling an invalid method.
294+
268295
Included example code
269296
---------------------
270297

examples/example_are_zones_ipv6.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77
sys.path.insert(0, os.path.abspath('..'))
88
import CloudFlare
9+
import CloudFlare.exceptions
910

1011
def main():
1112
"""Cloudflare API code - example"""
@@ -31,7 +32,7 @@ def main():
3132
# grab the zone identifier
3233
try:
3334
zones = cf.zones.get(params=params)
34-
except CloudFlare.CloudFlareAPIError as e:
35+
except CloudFlare.exceptions.CloudFlareAPIError as e:
3536
exit('/zones.get %d %s - api call failed' % (e, e))
3637
except Exception as e:
3738
exit('/zones - %s - api call failed' % (e))
@@ -41,15 +42,15 @@ def main():
4142
zone_id = zone['id']
4243
try:
4344
ipv6 = cf.zones.settings.ipv6.get(zone_id)
44-
except CloudFlare.CloudFlareAPIError as e:
45+
except CloudFlare.exceptions.CloudFlareAPIError as e:
4546
exit('/zones.settings.ipv6.get %d %s - api call failed' % (e, e))
4647

4748
ipv6_value = ipv6['value']
4849
if update_ipv6 and ipv6_value == 'off':
4950
print zone_id, ipv6_value, zone_name, '(now updating... off -> on)'
5051
try:
5152
ipv6 = cf.zones.settings.ipv6.patch(zone_id, data={'value':'on'})
52-
except CloudFlare.CloudFlareAPIError as e:
53+
except CloudFlare.exceptions.CloudFlareAPIError as e:
5354
exit('/zones.settings.ipv6.patch %d %s - api call failed' % (e, e))
5455
ipv6_value = ipv6['value']
5556
if ipv6_value == 'on':

examples/example_certificates.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77

88
sys.path.insert(0, os.path.abspath('..'))
99
import CloudFlare
10+
import CloudFlare.exceptions
1011

1112
def main():
1213
"""Cloudflare API code - example"""
@@ -23,7 +24,7 @@ def main():
2324
# grab the zone identifier
2425
try:
2526
zones = cf.zones.get(params=params)
26-
except CloudFlare.CloudFlareAPIError as e:
27+
except CloudFlare.exceptions.CloudFlareAPIError as e:
2728
exit('/zones %d %s - api call failed' % (e, e))
2829
except Exception as e:
2930
exit('/zones - %s - api call failed' % (e))
@@ -34,7 +35,7 @@ def main():
3435
zone_id = zone['id']
3536
try:
3637
certificates = cf.zones.ssl.certificate_packs.get(zone_id)
37-
except CloudFlare.CloudFlareAPIError as e:
38+
except CloudFlare.exceptions.CloudFlareAPIError as e:
3839
exit('/zones.ssl.certificate_packs %d %s - api call failed' % (e, e))
3940

4041
for certificate in certificates:

examples/example_create_zone_and_populate.py

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77
sys.path.insert(0, os.path.abspath('..'))
88
import CloudFlare
9+
import CloudFlare.exceptions
910

1011
def main():
1112
"""Cloudflare API code - example"""
@@ -23,7 +24,7 @@ def main():
2324
print 'Create zone %s ...' % (zone_name)
2425
try:
2526
zone_info = cf.zones.post(data={'jump_start':False, 'name': zone_name})
26-
except CloudFlare.CloudFlareAPIError as e:
27+
except CloudFlare.exceptions.CloudFlareAPIError as e:
2728
exit('/zones.post %s - %d %s' % (zone_name, e, e))
2829
except Exception as e:
2930
exit('/zones.post %s - %s' % (zone_name, e))
@@ -58,7 +59,7 @@ def main():
5859
# Create DNS record
5960
try:
6061
r = cf.zones.dns_records.post(zone_id, data=dns_record)
61-
except CloudFlare.CloudFlareAPIError as e:
62+
except CloudFlare.exceptions.CloudFlareAPIError as e:
6263
exit('/zones.dns_records.post %s %s - %d %s' % (zone_name, dns_record['name'], e, e))
6364
# Print respose info - they should be the same
6465
dns_record = r
@@ -86,7 +87,7 @@ def main():
8687

8788
try:
8889
dns_record = cf.zones.dns_records.put(zone_id, dns_record_id, data=new_dns_record)
89-
except CloudFlare.CloudFlareAPIError as e:
90+
except CloudFlare.exceptions.CloudFlareAPIError as e:
9091
exit('/zones/dns_records.put %d %s - api call failed' % (e, e))
9192

9293
print ''
@@ -95,7 +96,7 @@ def main():
9596
print 'Read back DNS records ...'
9697
try:
9798
dns_records = cf.zones.dns_records.get(zone_id)
98-
except CloudFlare.CloudFlareAPIError as e:
99+
except CloudFlare.exceptions.CloudFlareAPIError as e:
99100
exit('/zones.dns_records.get %s - %d %s' % (zone_name, e, e))
100101

101102
for dns_record in sorted(dns_records, key=lambda v: v['name']):

examples/example_dnssec_settings.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77
sys.path.insert(0, os.path.abspath('..'))
88
import CloudFlare
9+
import CloudFlare.exceptions
910

1011
def main():
1112
"""Cloudflare API code - example"""
@@ -22,7 +23,7 @@ def main():
2223
# grab the zone identifier
2324
try:
2425
zones = cf.zones.get(params=params)
25-
except CloudFlare.CloudFlareAPIError as e:
26+
except CloudFlare.exceptions.CloudFlareAPIError as e:
2627
exit('/zones.get %d %s - api call failed' % (e, e))
2728
except Exception as e:
2829
exit('/zones.get - %s - api call failed' % (e))
@@ -34,7 +35,7 @@ def main():
3435
# grab the DNSSEC settings
3536
try:
3637
settings = cf.zones.dnssec.get(zone_id)
37-
except CloudFlare.CloudFlareAPIError as e:
38+
except CloudFlare.exceptions.CloudFlareAPIError as e:
3839
exit('/zones.dnssec.get %d %s - api call failed' % (e, e))
3940

4041
print zone_id, zone_name

examples/example_ips.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,14 +6,15 @@
66

77
sys.path.insert(0, os.path.abspath('..'))
88
import CloudFlare
9+
import CloudFlare.exceptions
910

1011
def main():
1112
"""Cloudflare API code - example"""
1213

1314
cf = CloudFlare.CloudFlare()
1415
try:
1516
ips = cf.ips.get()
16-
except CloudFlare.CloudFlareAPIError as e:
17+
except CloudFlare.exceptions.CloudFlareAPIError as e:
1718
exit('/ips - %d %s' % (e, e))
1819
except Exception as e:
1920
exit('/ips - %s - api call connection failed' % (e))

examples/example_proxied.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77
sys.path.insert(0, os.path.abspath('..'))
88
import CloudFlare
9+
import CloudFlare.exceptions
910

1011
def main():
1112
"""Change the proxied value on a FQDN"""
@@ -30,7 +31,7 @@ def main():
3031
try:
3132
params = {'name':zone_name, 'per_page':1}
3233
zones = cf.zones.get(params=params)
33-
except CloudFlare.CloudFlareAPIError as e:
34+
except CloudFlare.exceptions.CloudFlareAPIError as e:
3435
exit('/zones.get %d %s - api call failed' % (e, e))
3536
except Exception as e:
3637
exit('/zones.get - %s - api call failed' % (e))
@@ -49,7 +50,7 @@ def main():
4950
try:
5051
params = {'name': dns_name}
5152
dns_records = cf.zones.dns_records.get(zone_id, params=params)
52-
except CloudFlare.CloudFlareAPIError as e:
53+
except CloudFlare.exceptions.CloudFlareAPIError as e:
5354
exit('/zones/dns_records.get %d %s - api call failed' % (e, e))
5455

5556
if len(dns_records) == 0:
@@ -86,7 +87,7 @@ def main():
8687

8788
try:
8889
dns_record = cf.zones.dns_records.put(zone_id, dns_record_id, data=new_dns_record)
89-
except CloudFlare.CloudFlareAPIError as e:
90+
except CloudFlare.exceptions.CloudFlareAPIError as e:
9091
exit('/zones/dns_records.put %d %s - api call failed' % (e, e))
9192

9293
r_zone_id = dns_record['zone_id']

examples/example_settings.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66

77
sys.path.insert(0, os.path.abspath('..'))
88
import CloudFlare
9+
import CloudFlare.exceptions
910

1011
def main():
1112
"""Cloudflare API code - example"""
@@ -22,7 +23,7 @@ def main():
2223
# grab the zone identifier
2324
try:
2425
zones = cf.zones.get(params=params)
25-
except CloudFlare.CloudFlareAPIError as e:
26+
except CloudFlare.exceptions.CloudFlareAPIError as e:
2627
exit('/zones.get %d %s - api call failed' % (e, e))
2728
except Exception as e:
2829
exit('/zones.get - %s - api call failed' % (e))
@@ -33,7 +34,7 @@ def main():
3334
zone_id = zone['id']
3435
try:
3536
settings = cf.zones.settings.get(zone_id)
36-
except CloudFlare.CloudFlareAPIError as e:
37+
except CloudFlare.exceptions.CloudFlareAPIError as e:
3738
exit('/zones.settings.get %d %s - api call failed' % (e, e))
3839

3940
print zone_id, zone_name

0 commit comments

Comments
 (0)