def auto_add_record(domain, region, username): is_valid_domain_name(domain) if not SubnetIpDal.is_intranet_region(region): raise BadParam("Can't automatically bind an A record with public ip.", msg_ch=u'不能自动绑定A记录到公网IP') if ZoneRecordDal.get_domain_records(domain_name=domain): raise BadParam('Domain name %s has already had a record' % domain, msg_ch=u'域名已有记录, 不能自动绑定') return ZoneRecordDal.auto_add_record(domain, region, username)
def get_domain_records(**kwargs): if 'record' in kwargs: key = 'record' # return ZoneRecordDal.get_domain_records(**kwargs) else: key = 'domain_name' codition = kwargs[key] tmp = codition.replace('*', '%') pattern = re.search("(\[.*\])", codition) if pattern is not None: tmp = tmp.replace(pattern.group(1), '%') records = ZoneRecordDal.search_domain_records(key, tmp) # Expression with square brackets is not used, the records are satisified. if pattern is None or len(records) == 0: return records m = re.search("\[([0-9]*)\-([0-9]*)\]", codition) start = int(m.group(1)) end = int(m.group(2)) needed = [ codition.replace(pattern.group(1), str(i)) for i in range(start, end + 1) ] return filter(lambda x: x[key] in needed, records)
def manually_add_record(domain, record, record_type, ttl, username, check_record=True): update_dict = dict(record_type=record_type, record=record, check_record=check_record, ttl=ttl) _validate_args(domain, update_dict) return ZoneRecordDal.add_record(domain, record, record_type, ttl, username)
def get_domain_records(**kwargs): if 'record' in kwargs: key = 'record' # return ZoneRecordDal.get_domain_records(**kwargs) else: key = 'domain_name' codition = kwargs[key] tmp = codition.replace('*', '%') pattern = re.search("(\[.*\])", codition) if pattern is not None: tmp = tmp.replace(pattern.group(1), '%') records = ZoneRecordDal.search_domain_records(key, tmp) # Expression with square brackets is not used, the records are satisified. if pattern is None or len(records) == 0: return records m = re.search("\[([0-9]*)\-([0-9]*)\]", codition) start = int(m.group(1)) end = int(m.group(2)) needed = [codition.replace(pattern.group(1), str(i)) for i in range(start, end + 1)] return filter(lambda x: x[key] in needed, records)
def list_zone_header(): return ZoneRecordDal.list_zone_header()
def delete_record(domain_name, record, record_type): return ZoneRecordDal.delete_record(domain_name, record, record_type)
def modify_record(domain_name, origin_record, update_dict, username): _validate_args(domain_name, update_dict) return ZoneRecordDal.modify_record(domain_name, origin_record, update_dict, username)
def update_zone_serial(zone_name): return ZoneRecordDal.update_serial_num(zone_name)
def update_zone_header(): params = request.get_json(force=True) serial_num = ZoneRecordDal.update_zone_header(params['zone_name'], params['header_content']) return params['zone_name'], serial_num
def check_zone_header(): params = request.get_json(force=True) return ZoneRecordDal.check_zone_header(params['zone_name'], params['header_content'])
def get_zone_info(zone_name): zone_info = ZoneRecordDal.get_zone_header(zone_name) zone_info['records'] = ZoneRecordDal.get_zone_records(zone_name) return zone_info
def list_zone_ttl(): return ZoneRecordDal.list_zone_ttl()
def manually_add_record(domain, record, record_type, ttl, username, check_record=True): update_dict = dict(record_type=record_type, record=record, check_record=check_record, ttl=ttl) _validate_args(domain, update_dict) return ZoneRecordDal.add_record(domain, update_dict['record'], record_type, ttl, username)
def get_update_zones(group_name): return ZoneRecordDal.get_zone_need_update(group_name)
def get_zone_header(zone_name): return ZoneRecordDal.get_zone_header(zone_name)