Skip to content

Commit

Permalink
added example python code for dns_records/export
Browse files Browse the repository at this point in the history
  • Loading branch information
mahtin committed Aug 30, 2017
1 parent b596a90 commit 06b4c6b
Show file tree
Hide file tree
Showing 3 changed files with 101 additions and 0 deletions.
24 changes: 24 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -671,6 +671,30 @@ $

The **jq -r** option is used to convert newlines and tabs within the JSON response data. The egrep is used for documentation brevity.

This can also be done via Python code with the following example.
```
#!/usr/bin/env python
import sys
import CloudFlare
def main():
zone_name = sys.argv[1]
cf = CloudFlare.CloudFlare()
zones = cf.zones.get(params={'name': zone_name})
zone_id = zones[0]['id']
dns_records = cf.zones.dns_records.export.get(zone_id)
for l in dns_records.splitlines():
if len(l) == 0 or l[0] == ';':
continue
print l
exit(0)
if __name__ == '__main__':
main()
```

## Implemented API calls

The **--dump** argument to cli4 will produce a list of all the call implemented within the library.
Expand Down
25 changes: 25 additions & 0 deletions README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -739,6 +739,31 @@ page within the Cloudflare portal.
The **jq -r** option is used to convert newlines and tabs within the
JSON response data. The egrep is used for documentation brevity.

This can also be done via Python code with the following example.

::

#!/usr/bin/env python
import sys
import CloudFlare

def main():
zone_name = sys.argv[1]
cf = CloudFlare.CloudFlare()

zones = cf.zones.get(params={'name': zone_name})
zone_id = zones[0]['id']

dns_records = cf.zones.dns_records.export.get(zone_id)
for l in dns_records.splitlines():
if len(l) == 0 or l[0] == ';':
continue
print l
exit(0)

if __name__ == '__main__':
main()

Implemented API calls
---------------------

Expand Down
52 changes: 52 additions & 0 deletions examples/example_dns_export.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,52 @@
#!/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"""

try:
zone_name = sys.argv[1]
except IndexError:
exit('usage: example_dns_export.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']

try:
dns_records = cf.zones.dns_records.export.get(zone_id)
except CloudFlare.exceptions.CloudFlareAPIError as e:
exit('/zones/dns_records/export %s - %d %s - api call failed' % (dns_name, e, e))

for l in dns_records.splitlines():
if len(l) == 0 or l[0] == ';':
# blank line or comment line are skipped - to make example easy to see
continue
print l

exit(0)

if __name__ == '__main__':
main()

0 comments on commit 06b4c6b

Please sign in to comment.