Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #import re
- import os
- #import sys
- import tempfile
- import shutil
- #rc = call("./digger.sh", shell=True)
- file_domini = open("lista_con_ns_novanet.txt", "r")
- dir_name = 'D:'
- filename_suffix = '.zone'
- bad_words = ['TTL']
- prep_str = "$TTL 1d"
- def line_prepender(filename, line):
- """ aggiunge a inizio
- file la stringa $TTL 1d"""
- with open(filename, 'r+') as f:
- content = f.read()
- f.seek(0, 0)
- f.write(line.rstrip('\r\n') + '\n' + content)
- def create_temporary_copy(path):
- """ crea file temporaneo"""
- temp_dir = tempfile.gettempdir()
- temp_path = os.path.join(temp_dir, 'zone_file.tmp')
- shutil.copy2(path, temp_path)
- return temp_path
- def zone_file_checker(filename):
- """ aggiunge, modifica e verifica
- le condizioni per cui il file di zona
- sia corretto e non dia problemi
- in fase di migrazione"""
- text = open(filename, 'r')
- # copio file_di_zona su tmp, e rimuovo righe di eventuali
- # occorrenze di TTL
- with open(create_temporary_copy(filename), 'r+') as tmp:
- templist=[]
- for line in text:
- # vedi context manager e any
- if not any(bad_word in line for bad_word in bad_words):
- if line.lstrip().startswith('IN') and 'MX' in line:
- line = "@" + line[1:]
- tmp.write(line)
- else:
- tmp.write(line)
- # aggiungo $TTL 1d in prepending
- # line_prepender(tmp, prep_str)
- # aggiungo @ davanti agli mx records
- # esco
- print tmp
- tmp.close()
- text.close()
- print "controllo nomi di dominio"
- for riga in file_domini:
- # modifico casi particolari
- if not riga.startswith('('):
- if riga.startswith('design4resilience.com'):
- riga = riga.replace('4', '_for_')
- # rimpiazzo seguendo la sintassi del nome
- zone_name = riga.replace('.', '_').replace('\n', '')
- filename = dir_name + zone_name + filename_suffix
- print filename
- count = 0
- try:
- zone_file_checker(filename)
- except IOError as e:
- count += 1
- # print filename + ":"
- print " I/O error({0}): {1}".format(e.errno, e.strerror)
- if count > 0:
- print "IOError: %d nomi di dominio non trovati" % count
- file_domini.close()
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement