lemur/lemur/dns_providers/models.py

38 lines
1.3 KiB
Python
Raw Normal View History

from sqlalchemy import Column, Integer, String, text
2018-04-11 01:04:07 +02:00
from sqlalchemy.dialects.postgresql import JSON
from sqlalchemy_utils import ArrowType
from lemur.database import db
2018-04-27 20:18:41 +02:00
from lemur.plugins.base import plugins
2018-05-07 18:58:24 +02:00
from lemur.utils import Vault
2018-04-11 01:04:07 +02:00
class DnsProvider(db.Model):
2018-04-12 00:56:00 +02:00
__tablename__ = 'dns_providers'
2018-04-27 20:18:41 +02:00
id = Column(
Integer(),
primary_key=True,
)
2018-04-12 00:56:00 +02:00
name = Column(String(length=256), unique=True, nullable=True)
description = Column(String(length=1024), nullable=True)
provider_type = Column(String(length=256), nullable=True)
2018-05-07 18:58:24 +02:00
credentials = Column(Vault, nullable=True)
2018-04-12 00:56:00 +02:00
api_endpoint = Column(String(length=256), nullable=True)
date_created = Column(ArrowType(), server_default=text('now()'), nullable=False)
status = Column(String(length=128), nullable=True)
options = Column(JSON, nullable=True)
domains = Column(JSON, nullable=True)
2018-04-27 20:18:41 +02:00
def __init__(self, name, description, provider_type, credentials):
self.name = name
self.description = description
self.provider_type = provider_type
self.credentials = credentials
@property
def plugin(self):
return plugins.get(self.plugin_name)
def __repr__(self):
return "DnsProvider(name={name})".format(name=self.name)