-
Notifications
You must be signed in to change notification settings - Fork 0
/
3EnterSourceNodes2TargetZone.py
60 lines (53 loc) · 1.74 KB
/
3EnterSourceNodes2TargetZone.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
#! python
from dyn.tm.zones import Zone
from dyn.tm.records import ARecord
from dyn.tm.records import CNAMERecord
from dyn.tm.zones import Node
import time
########################
### Function to add new zones to targetzone ###
########################
def createArecord(thenewnode):
thenewnode2 = ARecord
thenewnode2 = thezone.add_record(thenewnode, record_type='A', address='127.0.0.1', ttl='900')
print('Created: '+ thenewnode2.fqdn)
def existsinzonealready(thenode):
noderec = thezone.get_node(thenode).get_any_records()
try:
if '127.0.0.1' in str(noderec['a_records'][0]).split(': ')[1]:
print(thenode+' exists already')
return True
else:
print(thenode+ ' does not exist and should be added')
return False
except Exception:
return False
#targetzone = Zone('targetzone.com') ## create input here to take in whatever zone
zonename = 'targetzone.com'
thezone = Zone(zonename)
################################
f = open('nodescollection','r')
nodescollection = []
nodescollection = f.read().lower().split()
#total = len(nodescollection)
#numsubmitted = 25
icount = 0
for counter, i in enumerate(nodescollection):
try:
createArecord(i)
if counter % 25:
print('not publishing yet')
else:
if counter == 0:
pass #skip the first publish
else:
print('publish records + import new zone')
thezone.publish()
time.sleep(1) # sleep for some time before you continue
thezone = Zone(zonename)
icount += 1
print(icount)
except Exception:
pass
finally:
thezone.publish()