forked from cloudflare-api/python-cloudflare-v4
-
Notifications
You must be signed in to change notification settings - Fork 158
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
moved converts into seperate file. corrected zone name converter to b…
…e simpler
- Loading branch information
Showing
2 changed files
with
152 additions
and
124 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,120 @@ | ||
#!/usr/bin/env python | ||
"""Cloudflare API via command line""" | ||
|
||
import os | ||
import sys | ||
|
||
sys.path.insert(0, os.path.abspath('..')) | ||
import CloudFlare | ||
import CloudFlare.exceptions | ||
|
||
def convert_zones_to_identifier(cf, zone_name): | ||
"""zone names to numbers""" | ||
params = {'name':zone_name, 'per_page':1} | ||
try: | ||
zones = cf.zones.get(params=params) | ||
except CloudFlare.exceptions.CloudFlareAPIError as e: | ||
exit('cli4: %s - %d %s' % (zone_name, e, e)) | ||
except Exception as e: | ||
exit('cli4: %s - %s' % (zone_name, e)) | ||
|
||
if len(zones) == 1: | ||
return zones[0]['id'] | ||
|
||
exit('cli4: %s - zone not found' % (zone_name)) | ||
|
||
def convert_dns_record_to_identifier(cf, zone_id, dns_name): | ||
"""dns record names to numbers""" | ||
# this can return an array of results as there can be more than one DNS entry for a name. | ||
params = {'name':dns_name} | ||
try: | ||
dns_records = cf.zones.dns_records.get(zone_id, params=params) | ||
except CloudFlare.exceptions.CloudFlareAPIError as e: | ||
exit('cli4: %s - %d %s' % (dns_name, e, e)) | ||
except Exception as e: | ||
exit('cli4: %s - %s' % (dns_name, e)) | ||
|
||
r = [] | ||
for dns_record in dns_records: | ||
if dns_name == dns_record['name']: | ||
r.append(dns_record['id']) | ||
if len(r) > 0: | ||
return r | ||
|
||
exit('cli4: %s - dns name not found' % (dns_name)) | ||
|
||
def convert_certificates_to_identifier(cf, certificate_name): | ||
"""certificate names to numbers""" | ||
try: | ||
certificates = cf.certificates.get() | ||
except CloudFlare.exceptions.CloudFlareAPIError as e: | ||
exit('cli4: %s - %d %s' % (certificate_name, e, e)) | ||
except Exception as e: | ||
exit('cli4: %s - %s' % (certificate_name, e)) | ||
|
||
for certificate in certificates: | ||
if certificate_name in certificate['hostnames']: | ||
return certificate['id'] | ||
|
||
exit('cli4: %s - no zone certificates found' % (certificate_name)) | ||
|
||
def convert_organizations_to_identifier(cf, organization_name): | ||
"""organizations names to numbers""" | ||
try: | ||
organizations = cf.user.organizations.get() | ||
except CloudFlare.exceptions.CloudFlareAPIError as e: | ||
exit('cli4: %s - %d %s' % (organization_name, e, e)) | ||
except Exception as e: | ||
exit('cli4: %s - %s' % (organization_name, e)) | ||
|
||
for organization in organizations: | ||
if organization_name == organization['name']: | ||
return organization['id'] | ||
|
||
exit('cli4: %s - no organizations found' % (organization_name)) | ||
|
||
def convert_invites_to_identifier(cf, invite_name): | ||
"""invite names to numbers""" | ||
try: | ||
invites = cf.user.invites.get() | ||
except CloudFlare.exceptions.CloudFlareAPIError as e: | ||
exit('cli4: %s - %d %s' % (invite_name, e, e)) | ||
except Exception as e: | ||
exit('cli4: %s - %s' % (invite_name, e)) | ||
|
||
for invite in invites: | ||
if invite_name == invite['organization_name']: | ||
return invite['id'] | ||
|
||
exit('cli4: %s - no invites found' % (invite_name)) | ||
|
||
def convert_virtual_dns_to_identifier(cf, virtual_dns_name): | ||
"""virtual dns names to numbers""" | ||
try: | ||
virtual_dnss = cf.user.virtual_dns.get() | ||
except CloudFlare.exceptions.CloudFlareAPIError as e: | ||
exit('cli4: %s - %d %s\n' % (virtual_dns_name, e, e)) | ||
except Exception as e: | ||
exit('cli4: %s - %s\n' % (virtual_dns_name, e)) | ||
|
||
for virtual_dns in virtual_dnss: | ||
if virtual_dns_name == virtual_dns['name']: | ||
return virtual_dns['id'] | ||
|
||
exit('cli4: %s - no virtual_dns found' % (virtual_dns_name)) | ||
|
||
def convert_load_balancers_pool_to_identifier(cf, pool_name): | ||
"""load balancer pool names to numbers""" | ||
try: | ||
pools = cf.user.load_balancers.pools.get() | ||
except CloudFlare.exceptions.CloudFlareAPIError as e: | ||
exit('cli4: %s - %d %s' % (pool_name, e, e)) | ||
except Exception as e: | ||
exit('cli4: %s - %s' % (pool_name, e)) | ||
|
||
for p in pools: | ||
if pool_name == p['description']: | ||
return p['id'] | ||
|
||
exit('cli4: %s - no pools found' % (pool_name)) | ||
|