|
Server : LiteSpeed System : Linux srv104790275 5.15.0-161-generic #171-Ubuntu SMP Sat Oct 11 08:17:01 UTC 2025 x86_64 User : dewac4139 ( 1077) PHP Version : 8.0.30 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, Directory : /usr/local/CyberPanel/lib64/python3.10/site-packages/cli4/ |
Upload File : |
"""Cloudflare API via command line"""
from __future__ import absolute_import
import CloudFlare
class ConverterError(Exception):
""" errors for converters"""
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:
raise ConverterError(int(e), '%s - %d %s' % (zone_name, e, e))
except Exception as e:
raise ConverterError(0, '%s - %s' % (zone_name, e))
if len(zones) == 1:
return zones[0]['id']
raise ConverterError('%s: not found' % (zone_name))
def convert_accounts_to_identifier(cf, account_name):
"""account names to numbers"""
params = {'name':account_name, 'per_page':1}
try:
accounts = cf.accounts.get(params=params)
except CloudFlare.exceptions.CloudFlareAPIError as e:
raise ConverterError(int(e), '%s - %d %s' % (account_name, e, e))
except Exception as e:
raise ConverterError(0, '%s - %s' % (account_name, e))
if len(accounts) == 1:
return accounts[0]['id']
raise ConverterError('%s: not found' % (account_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:
raise ConverterError(int(e), '%s - %d %s' % (dns_name, e, e))
except Exception as e:
raise ConverterError(0, '%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
raise ConverterError('%s: 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:
raise ConverterError(int(e), '%s - %d %s' % (certificate_name, e, e))
except Exception as e:
raise ConverterError(0, '%s - %s' % (certificate_name, e))
for certificate in certificates:
if certificate_name in certificate['hostnames']:
return certificate['id']
raise ConverterError('%s: not 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:
raise ConverterError(int(e), '%s - %d %s' % (organization_name, e, e))
except Exception as e:
raise ConverterError(0, '%s - %s' % (organization_name, e))
for organization in organizations:
if organization_name == organization['name']:
return organization['id']
raise ConverterError('%s not 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:
raise ConverterError(int(e), '%s - %d %s' % (invite_name, e, e))
except Exception as e:
raise ConverterError(0, '%s - %s' % (invite_name, e))
for invite in invites:
if invite_name == invite['organization_name']:
return invite['id']
raise ConverterError('%s: not 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:
raise ConverterError(int(e), '%s - %d %s' % (virtual_dns_name, e, e))
except Exception as e:
raise ConverterError(0, '%s - %s' % (virtual_dns_name, e))
for virtual_dns in virtual_dnss:
if virtual_dns_name == virtual_dns['name']:
return virtual_dns['id']
raise ConverterError('%s: not 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:
raise ConverterError(int(e), '%s - %d %s' % (pool_name, e, e))
except Exception as e:
raise ConverterError(0, '%s - %s' % (pool_name, e))
for p in pools:
if pool_name == p['description']:
return p['id']
raise ConverterError('%s: not found' % (pool_name))
def convert_custom_hostnames_to_identifier(cf, zone_id, custom_hostname):
"""custom_hostnames to numbers"""
# this can return an array of results
params = {'name':custom_hostname}
try:
custom_hostnames_records = cf.zones.custom_hostnames.get(zone_id, params=params)
except CloudFlare.exceptions.CloudFlareAPIError as e:
raise ConverterError(int(e), '%s - %d %s' % (dns_name, e, e))
except Exception as e:
raise ConverterError(0, '%s - %s' % (dns_name, e))
r = []
for custom_hostnames_record in custom_hostnames_records:
if custom_hostname == custom_hostnames_record['hostname']:
r.append(custom_hostnames_record['id'])
if len(r) > 0:
return r
raise ConverterError('%s: not found' % (custom_hostname))