class DatabaseDatabase(RenkiBase, RenkiUserDataTable): __tablename__ = 'database' name = Column('name', String(512), nullable=False) user_id = Column('user_id', Integer, ForeignKey("users.id"), nullable=False) type = Column('type', types.Enum('mysql', 'postgresql', name='database_types', native_enum=True), nullable=False) service_group_id = Column(Integer, ForeignKey('service_group.id')) service_group = relationship(ServiceGroupDatabase, backref="databases") __table_args__ = (UniqueConstraint('service_group_id', 'name', 'type'), ) soft_limit = 5 hard_limit = 10 def validate(self): if len(self.name) > 50: raise Invalid('Database name too long') return True register_table(DatabaseDatabase)
# encoding: utf-8 from lib.database.user_data_table import RenkiUserDataTable from lib.database.table import RenkiBase from lib.database.tables import register_table from lib.exceptions import Invalid from sqlalchemy import Column, String, Integer, types, ForeignKey, UniqueConstraint from sqlalchemy.orm import relationship from lib.database.basic_tables import ServiceGroupDatabase class DatabaseDatabase(RenkiBase, RenkiUserDataTable): __tablename__ = 'database' name = Column('name', String(512), nullable=False) user_id = Column('user_id', Integer, ForeignKey("users.id"), nullable=False) type = Column('type', types.Enum('mysql', 'postgresql', name='database_types', native_enum=True), nullable=False) service_group_id = Column(Integer, ForeignKey('service_group.id')) service_group = relationship(ServiceGroupDatabase, backref="databases") __table_args__ = (UniqueConstraint('service_group_id', 'name', 'type'),) soft_limit = 5 hard_limit = 10 def validate(self): if len(self.name) > 50: raise Invalid('Database name too long') return True register_table(DatabaseDatabase)
if self.password: validate_string(self.password) return True def has_permission(self, permission): for perm in self.permissions: if perm.name == permission: return True for group in self.permission_groups: for perm in group.permissions: if perm.name == permission: return True return False register_table(Users) class AuthKeys(RenkiBase, RenkiTable): """ Database table for keys """ __tablename__ = 'auth_keys' key = Column("key", Unicode, nullable=False) expires = Column("expires", DateTime, nullable=False, default=expires_funct) user_id = Column("user_id", Integer, ForeignKey('users.id'),
validate_string(self.lastname) if self.password: validate_string(self.password) return True def has_permission(self, permission): for perm in self.permissions: if perm.name == permission: return True for group in self.permission_groups: for perm in group.permissions: if perm.name == permission: return True return False register_table(Users) class AuthKeys(RenkiBase, RenkiTable): """ Database table for keys """ __tablename__ = 'auth_keys' key = Column("key", Unicode, nullable=False) expires = Column("expires", DateTime, nullable=False, default=expires_funct) user_id = Column("user_id", Integer, ForeignKey('users.id'), nullable=False) user = relationship("Users", backref='auth_keys') def validate(self):
# encoding: utf-8 from lib.database.user_data_table import RenkiUserDataTable from lib.database.table import RenkiBase from lib.database.tables import register_table from lib.exceptions import Invalid from sqlalchemy import Column, String, Integer, ForeignKey, UniqueConstraint from sqlalchemy.orm import relationship from lib.database.basic_tables import ServiceGroupDatabase class PortDatabase(RenkiBase, RenkiUserDataTable): __tablename__ = 'port' port = Column('port', Integer, nullable=False) service_group_id = Column(Integer, ForeignKey('service_group.id')) service_group = relationship(ServiceGroupDatabase, backref="ports") __table_args__ = (UniqueConstraint('service_group_id', 'port'), ) soft_limit = 5 hard_limit = 10 def validate(self): return True # Register table register_table(PortDatabase)
# encoding: utf-8 from lib.database.user_data_table import RenkiUserDataTable from lib.database.table import RenkiBase from lib.database.tables import register_table from lib.exceptions import Invalid from sqlalchemy import Column, String, Integer, types, ForeignKey, UniqueConstraint from sqlalchemy.orm import relationship from lib.database.basic_tables import ServiceGroupDatabase class RepositoryDatabase(RenkiBase, RenkiUserDataTable): __tablename__ = 'repository' name = Column('name', String(512), nullable=False) type = Column('type', types.Enum('git', 'svn', name='repository_types', native_enum=True), nullable=False) service_group_id = Column(Integer, ForeignKey('service_group.id')) service_group = relationship(ServiceGroupDatabase, backref="repositories") __table_args__ = (UniqueConstraint('service_group_id', 'name', 'type'),) soft_limit = 5 hard_limit = 10 def validate(self): if len(self.name) > 50: raise Invalid('Repository name too long') return True register_table(RepositoryDatabase)
# encoding: utf-8 from lib.database.user_data_table import RenkiUserDataTable from lib.database.table import RenkiBase from lib.database.tables import register_table from lib.exceptions import Invalid from sqlalchemy import Column, String, Integer, ForeignKey, UniqueConstraint from sqlalchemy.orm import relationship from lib.database.basic_tables import ServiceGroupDatabase class DummyDatabase(RenkiBase, RenkiUserDataTable): __tablename__ = 'dummy' name = Column('name', String, nullable=False) service_group_id = Column(Integer, ForeignKey('service_group.id')) service_group = relationship(ServiceGroupDatabase, backref="dummies") soft_limit = 5 hard_limit = 10 def validate(self): return True # Register table register_table(DummyDatabase)
from lib.database.table import RenkiDataTable, RenkiBase from lib.database.tables import register_table from lib.exceptions import Invalid from sqlalchemy import Column, String, Integer, ForeignKey, DateTime, UniqueConstraint from sqlalchemy.orm import relationship class ServerDatabase(RenkiBase, RenkiDataTable): __tablename__ = 'server' name = Column('name', String, nullable=False) __table_args__ = (UniqueConstraint('name'),) def validate(self): return True register_table(ServerDatabase) class ServiceGroupDatabase(RenkiBase, RenkiDataTable): __tablename__ = 'service_group' name = Column("name", String, nullable=False) type = Column("type", String, nullable=False) __table_args__ = (UniqueConstraint('name'),) def validate(self): return True register_table(ServiceGroupDatabase) class ServiceDatabase(RenkiBase, RenkiDataTable): __tablename__ = 'service' name = Column("name", String, nullable=False)
from lib.database.tables import register_table from lib.exceptions import Invalid from sqlalchemy import Column, String, Integer, ForeignKey, DateTime, UniqueConstraint from sqlalchemy.orm import relationship class ServerDatabase(RenkiBase, RenkiDataTable): __tablename__ = 'server' name = Column('name', String, nullable=False) __table_args__ = (UniqueConstraint('name'), ) def validate(self): return True register_table(ServerDatabase) class ServiceGroupDatabase(RenkiBase, RenkiDataTable): __tablename__ = 'service_group' name = Column("name", String, nullable=False) type = Column("type", String, nullable=False) __table_args__ = (UniqueConstraint('name'), ) def validate(self): return True register_table(ServiceGroupDatabase)
# encoding: utf-8 from lib.database.user_data_table import RenkiUserDataTable from lib.database.table import RenkiBase from lib.database.tables import register_table from lib.exceptions import Invalid from sqlalchemy import Column, String, Integer, ForeignKey, UniqueConstraint from sqlalchemy.orm import relationship from lib.database.basic_tables import ServiceGroupDatabase class PortDatabase(RenkiBase, RenkiUserDataTable): __tablename__ = 'port' port = Column('port', Integer, nullable=False) service_group_id = Column(Integer, ForeignKey('service_group.id')) service_group = relationship(ServiceGroupDatabase, backref="ports") __table_args__ = (UniqueConstraint('service_group_id', 'port'),) soft_limit = 5 hard_limit = 10 def validate(self): return True # Register table register_table(PortDatabase)
from time import sleep from threading import Thread import threading import logging logger = logging.getLogger() logger.setLevel(logging.DEBUG) class SimpleTable(RenkiBase, RenkiUserDataTable): __tablename__ = 'test_table1' col_1 = Column('col_1', String(1024), nullable=False) register_table(SimpleTable) connection.initialize_connection(unittest=True, echo=False) class Worker(Thread): def __init__(self, string, sleep, commit=True): Thread.__init__(self) self.string = string self.sleep = sleep self.commit = commit def run(self): print(vars(threading.local())) s = SimpleTable() s.col_1 = self.string
from lib.database.table import RenkiDataTable, RenkiBase from lib.database.tables import register_table from lib.exceptions import Invalid from sqlalchemy import Column, String, Integer, ForeignKey, DateTime from sqlalchemy.orm import relationship class TicketGroupDatabase(RenkiBase, RenkiDataTable): __tablename__ = 'ticket_group' def validate(self): return True register_table(TicketGroupDatabase) class TicketDatabase(RenkiBase, RenkiDataTable): __tablename__ = 'ticket' new_data = Column("new_data", String) old_data = Column('old_data', String, nullable=True) created = Column("created", DateTime) done = Column("done", DateTime, nullable=True) ticket_group_id = Column(Integer, ForeignKey('ticket_group.id')) ticket_group = relationship(TicketGroupDatabase, backref="ticket_groups") def validate(self): return True register_table(TicketDatabase)
# encoding: utf-8 """ Domain objects database module """ from lib.database.user_data_table import RenkiUserDataTable from lib.database.table import RenkiBase from lib.database.tables import register_table from lib.validators import validate_user_id, validate_domain from sqlalchemy import Column, String, Integer, ForeignKey from sqlalchemy.orm import relationship class DomainDatabase(RenkiBase, RenkiUserDataTable): __tablename__ = 'domain' name = Column('name', String(1024), nullable=False) dns_zone = relationship("DNSZoneDatabase", uselist=False, backref="domain") user = relationship("Users", backref="domains") soft_limit = 5 hard_limit = 10 def validate(self): validate_user_id(self.user_id) validate_domain(self.name) # Register table register_table(DomainDatabase)
nullable=False, default=lambda: settings.DNS_ZONE_TTL) # EMail address field rname = Column('rname', String, nullable=False, default=lambda: settings.DNS_ZONE_RNAME) # This is default TTL for records record_ttl = Column('record_ttl', Integer, nullable=False, default=lambda: settings.DNS_ZONE_RECORD_TTL) records = relationship('DNSRecordDatabase', uselist=True, backref='dns_zone') soft_limit = 5 hard_limit = 10 def validate(self): # TODO: add validators pass # Register tables register_table(DNSZoneDatabase) register_table(DNSRecordDatabase)
refresh = Column('refresh', Integer, nullable=False, default=lambda: settings.DNS_ZONE_REFRESH) retry = Column('retry', Integer, nullable=False, default=lambda: settings.DNS_ZONE_RETRY) expire = Column('expire', Integer, nullable=False, default=lambda: settings.DNS_ZONE_EXPIRE) ttl = Column('ttl', Integer, nullable=False, default=lambda: settings.DNS_ZONE_TTL) # EMail address field rname = Column('rname', String, nullable=False, default=lambda: settings.DNS_ZONE_RNAME) # This is default TTL for records record_ttl = Column('record_ttl', Integer, nullable=False, default=lambda: settings.DNS_ZONE_RECORD_TTL) records = relationship('DNSRecordDatabase', uselist=True, backref='dns_zone') soft_limit = 5 hard_limit = 10 def validate(self): # TODO: add validators pass # Register tables register_table(DNSZoneDatabase) register_table(DNSRecordDatabase)