Files
bitchmin/bitchmin-api/app/tests/seeder.py
2020-11-18 22:48:56 +00:00

65 lines
1.7 KiB
Python

from app.models import DnsZone, User, DnsHost, DnsNameServer, DnsMailExchanger
class DbSeeder(object):
def __init__(self, database):
self._db = database
def _create_user(self):
user = User(
'fergal.moran@gmail.com',
'Fergal Moran',
'topsecret'
)
self._db.session.add(user)
def _create_zone(self):
zone = DnsZone('bitchmints.com')
self._db.session.add(zone)
return zone
def _create_nameservers(self, zone):
for i in range(1, 3):
ns = DnsNameServer(
zone,
'ns-{}.{}'.format(i, zone.zone_name),
'10.1.1.10{}'.format(i)
)
self._db.session.add(ns)
def _create_mailexchangers(self, zone):
for i in range(1, 11):
host = DnsMailExchanger(
zone,
'mail-{}.bitchmints.com'.format(i),
i
)
self._db.session.add(host)
def _create_hosts(self, zone):
for i in range(1, 11):
host = DnsHost(
zone,
'host-{}'.format(i),
'10.1.1.{}'.format(i)
)
self._db.session.add(host)
def seed(self):
self._db.metadata.drop_all(self._db.engine)
self._db.metadata.create_all(self._db.engine)
self._create_user()
z = self._create_zone()
self._create_nameservers(z)
self._create_mailexchangers(z)
self._create_hosts(z)
self._db.session.commit()
self._db.session.flush()
def teardown(self):
self._db.metadata.drop_all(self._db.engine)
self._db.engine.dispose()