mirror of
https://github.com/usmannasir/cyberpanel.git
synced 2025-11-10 23:36:11 +01:00
sync to cf by default
This commit is contained in:
@@ -987,65 +987,16 @@ class DNSManager:
|
|||||||
|
|
||||||
## Get zone
|
## Get zone
|
||||||
|
|
||||||
self.loadCFKeys()
|
dns = DNS()
|
||||||
|
|
||||||
|
status, error = dns.cfTemplate(zoneDomain, admin)
|
||||||
|
|
||||||
cf = CloudFlare.CloudFlare(email=self.email, token=self.key)
|
if status == 1:
|
||||||
|
final_dic = {'status': 1, 'error_message': 'None'}
|
||||||
|
|
||||||
try:
|
|
||||||
params = {'name': zoneDomain, 'per_page': 50}
|
|
||||||
zones = cf.zones.get(params=params)
|
|
||||||
|
|
||||||
for zone in sorted(zones, key=lambda v: v['name']):
|
|
||||||
zone = zone['id']
|
|
||||||
|
|
||||||
domain = Domains.objects.get(name=zoneDomain)
|
|
||||||
records = Records.objects.filter(domain_id=domain.id)
|
|
||||||
|
|
||||||
for record in records:
|
|
||||||
DNS.createDNSRecordCloudFlare(cf, zone, record.name, record.type, record.content, record.prio,
|
|
||||||
record.ttl)
|
|
||||||
|
|
||||||
final_dic = {'status': 1, 'error_message': "None"}
|
|
||||||
final_json = json.dumps(final_dic)
|
final_json = json.dumps(final_dic)
|
||||||
return HttpResponse(final_json)
|
return HttpResponse(final_json)
|
||||||
|
else:
|
||||||
|
final_dic = {'status': 0, 'error_message': error}
|
||||||
except CloudFlare.exceptions.CloudFlareAPIError as e:
|
|
||||||
logging.writeToFile(str(e))
|
|
||||||
except Exception as e:
|
|
||||||
logging.writeToFile(str(e))
|
|
||||||
|
|
||||||
|
|
||||||
try:
|
|
||||||
zone_info = cf.zones.post(data={'jump_start': False, 'name': zoneDomain})
|
|
||||||
|
|
||||||
zone = zone_info['id']
|
|
||||||
|
|
||||||
domain = Domains.objects.get(name=zoneDomain)
|
|
||||||
records = Records.objects.filter(domain_id=domain.id)
|
|
||||||
|
|
||||||
for record in records:
|
|
||||||
DNS.createDNSRecordCloudFlare(cf, zone, record.name, record.type, record.content, record.prio,
|
|
||||||
record.ttl)
|
|
||||||
|
|
||||||
final_dic = {'status': 1, 'error_message': "None"}
|
|
||||||
final_json = json.dumps(final_dic)
|
|
||||||
return HttpResponse(final_json)
|
|
||||||
|
|
||||||
|
|
||||||
except CloudFlare.exceptions.CloudFlareAPIError as e:
|
|
||||||
|
|
||||||
logging.writeToFile(str(e))
|
|
||||||
final_dic = {'status': 0, 'error_message': str(e)}
|
|
||||||
final_json = json.dumps(final_dic)
|
|
||||||
return HttpResponse(final_json)
|
|
||||||
|
|
||||||
except Exception as e:
|
|
||||||
|
|
||||||
logging.writeToFile(str(e))
|
|
||||||
final_dic = {'status': 0, 'error_message': str(e)}
|
|
||||||
final_json = json.dumps(final_dic)
|
final_json = json.dumps(final_dic)
|
||||||
return HttpResponse(final_json)
|
return HttpResponse(final_json)
|
||||||
|
|
||||||
|
|||||||
@@ -12,11 +12,11 @@ import subprocess
|
|||||||
import shlex
|
import shlex
|
||||||
try:
|
try:
|
||||||
from dns.models import Domains,Records
|
from dns.models import Domains,Records
|
||||||
from plogical.processUtilities import ProcessUtilities
|
|
||||||
from manageServices.models import PDNSStatus, SlaveServers
|
from manageServices.models import PDNSStatus, SlaveServers
|
||||||
except:
|
except:
|
||||||
pass
|
pass
|
||||||
import CloudFlare
|
import CloudFlare
|
||||||
|
from plogical.processUtilities import ProcessUtilities
|
||||||
|
|
||||||
class DNS:
|
class DNS:
|
||||||
|
|
||||||
@@ -28,6 +28,77 @@ class DNS:
|
|||||||
|
|
||||||
## DNS Functions
|
## DNS Functions
|
||||||
|
|
||||||
|
def loadCFKeys(self):
|
||||||
|
cfFile = '%s%s' % (DNS.CFPath, self.admin.userName)
|
||||||
|
data = open(cfFile, 'r').readlines()
|
||||||
|
self.email = data[0].rstrip('\n')
|
||||||
|
self.key = data[1].rstrip('\n')
|
||||||
|
self.status = data[2].rstrip('\n')
|
||||||
|
|
||||||
|
def cfTemplate(self, zoneDomain, admin, enableCheck = None):
|
||||||
|
try:
|
||||||
|
self.admin = admin
|
||||||
|
## Get zone
|
||||||
|
|
||||||
|
self.loadCFKeys()
|
||||||
|
|
||||||
|
if enableCheck == None:
|
||||||
|
pass
|
||||||
|
else:
|
||||||
|
if self.status == 'Enable':
|
||||||
|
pass
|
||||||
|
else:
|
||||||
|
return 0, 'Sync not enabled.'
|
||||||
|
|
||||||
|
|
||||||
|
cf = CloudFlare.CloudFlare(email=self.email, token=self.key)
|
||||||
|
|
||||||
|
|
||||||
|
try:
|
||||||
|
params = {'name': zoneDomain, 'per_page': 50}
|
||||||
|
zones = cf.zones.get(params=params)
|
||||||
|
|
||||||
|
for zone in sorted(zones, key=lambda v: v['name']):
|
||||||
|
zone = zone['id']
|
||||||
|
|
||||||
|
domain = Domains.objects.get(name=zoneDomain)
|
||||||
|
records = Records.objects.filter(domain_id=domain.id)
|
||||||
|
|
||||||
|
for record in records:
|
||||||
|
DNS.createDNSRecordCloudFlare(cf, zone, record.name, record.type, record.content, record.prio,
|
||||||
|
record.ttl)
|
||||||
|
|
||||||
|
return 1, None
|
||||||
|
|
||||||
|
|
||||||
|
except CloudFlare.exceptions.CloudFlareAPIError as e:
|
||||||
|
logging.CyberCPLogFileWriter.writeToFile(str(e))
|
||||||
|
except Exception as e:
|
||||||
|
logging.CyberCPLogFileWriter.writeToFile(str(e))
|
||||||
|
|
||||||
|
try:
|
||||||
|
zone_info = cf.zones.post(data={'jump_start': False, 'name': zoneDomain})
|
||||||
|
|
||||||
|
zone = zone_info['id']
|
||||||
|
|
||||||
|
domain = Domains.objects.get(name=zoneDomain)
|
||||||
|
records = Records.objects.filter(domain_id=domain.id)
|
||||||
|
|
||||||
|
for record in records:
|
||||||
|
DNS.createDNSRecordCloudFlare(cf, zone, record.name, record.type, record.content, record.prio,
|
||||||
|
record.ttl)
|
||||||
|
|
||||||
|
return 1, None
|
||||||
|
|
||||||
|
|
||||||
|
except CloudFlare.exceptions.CloudFlareAPIError as e:
|
||||||
|
return 0, str(e)
|
||||||
|
except Exception as e:
|
||||||
|
return 0, str(e)
|
||||||
|
|
||||||
|
except BaseException as msg:
|
||||||
|
return 0, str(e)
|
||||||
|
|
||||||
@staticmethod
|
@staticmethod
|
||||||
def dnsTemplate(domain, admin):
|
def dnsTemplate(domain, admin):
|
||||||
try:
|
try:
|
||||||
@@ -372,6 +443,9 @@ class DNS:
|
|||||||
command = 'sudo systemctl restart pdns'
|
command = 'sudo systemctl restart pdns'
|
||||||
ProcessUtilities.executioner(command)
|
ProcessUtilities.executioner(command)
|
||||||
|
|
||||||
|
dns = DNS()
|
||||||
|
dns.cfTemplate(domain, admin)
|
||||||
|
|
||||||
except BaseException as msg:
|
except BaseException as msg:
|
||||||
logging.CyberCPLogFileWriter.writeToFile(
|
logging.CyberCPLogFileWriter.writeToFile(
|
||||||
"We had errors while creating DNS records for: " + domain + ". Error message: " + str(msg))
|
"We had errors while creating DNS records for: " + domain + ". Error message: " + str(msg))
|
||||||
|
|||||||
Reference in New Issue
Block a user