mirror of
https://github.com/fergalmoran/bitchmin.git
synced 2026-02-15 12:24:05 +00:00
65 lines
1.7 KiB
Python
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()
|