Ejemplo n.º 1
0
class DomainModel(TinyJsonModel):
    __tablename__ = "domains"

    domain = fields.StringField(required=True, validators=[validators.Length(1, 255)])
    dnsprovider = fields.StringField(required=True, validators=[validators.Length(1, 25)])
    _last_update = fields.DateTimeField(required=True)
    _created_at = fields.DateTimeField(required=True)

    def __init__(self, *args, **kwargs):
        self._last_update = datetime.utcnow()
        self._created_at = self._last_update
        #if 'db' in kwargs:
        #    self.Meta.database = kwargs['db']
        super(DomainModel, self).__init__(*args, **kwargs)

    @classmethod
    def domainexist(cls, domain):
        table = cls.Meta.database.table(cls.__tablename__)
        query = where('domain') == domain
        row = table.get(cond=query)
        if row is not None:
            return True
        else:
            return False
    
    class Meta:
        database = DOMAINS_DB
Ejemplo n.º 2
0
    class ConfigModel(TinyJsonModel):
        __tablename__ = "config"

        name = fields.StringField()
        key = fields.StringField()
        CACHE_TYPE = fields.ListField([CacheType])
        last_update = fields.DateTimeField(required=True)
        created_at = fields.DateTimeField(required=True)

        def __init__(self, *args, **kwargs):
            self.last_update = datetime.utcnow()
            self.created_at = self.last_update
            super(ConfigModel, self).__init__(*args, **kwargs)

        # this attribute wont be saved because it's not a field
        address = "this attribute will not be saved"

        # Example model custom method
        def created_at_datetime(self):
            return self.created_at

        @property
        def location(self):
            return "Earth"

        class Meta:
            database = dbj
Ejemplo n.º 3
0
class SiteRedirects(TinyJsonModel):
    __tablename__ = "siteredirects"
    hosturl = fields.StringField(required=True, validators=[validators.Length(0, 255)])
    domain = fields.StringField(required=True, validators=[validators.Length(1, 255)])
    ssl = fields.BoolField(required=True)
    sslcert = fields.StringField(required=False, validators=[validators.Length(0, 255)])
    sslkey = fields.StringField(required=False, validators=[validators.Length(0, 255)])
    version = fields.StringField(required=True, validators=[validators.Length(25, 25)])
Ejemplo n.º 4
0
class SiteVersion(TinyJsonModel):
    __tablename__ = "siteversions"
    description = fields.StringField(required=True, validators=[validators.Length(1, 255)])
    tag = fields.StringField(required=True, validators=[validators.Length(1, 255)])
    date = fields.DateTimeField(required=True)
    directory = fields.StringField(required=True, validators=[validators.Length(1, 255)])
    sitetype = fields.StringField(required=False, validators=[validators.Length(0, 64)])
    runtime = fields.StringField(required=False, validators=[validators.Length(0, 64)])
Ejemplo n.º 5
0
class SiteModel(TinyJsonModel):
    __tablename__ = "sites"
    urlprefix = fields.StringField(required=True, validators=[validators.Length(1, 255)])
    #sitetype = fields.StringField(required=True, validators=[validators.Length(1, 64)])
    sitedescription = fields.StringField(required=True, validators=[validators.Length(1, 255)])
    #runtime = fields.StringField(required=True, validators=[validators.Length(1, 64)])
    versions = fields.ListField(['SiteVersion'])
    redirects = fields.ListField(['SiteRedirects'])
    active_version = fields.StringField(required=True, validators=[validators.Length(25, 25)])
    active_dir = fields.StringField(required=True, validators=[validators.Length(1, 255)])
    _last_update = fields.DateTimeField(required=True)
    _created_at = fields.DateTimeField(required=True)

    def __init__(self, *args, **kwargs):
        super(SiteModel, self).__init__(*args, **kwargs)
        self._last_update = datetime.utcnow()
        self._created_at = self._last_update
        #if 'db' in kwargs:
        #    self.Meta.database = kwargs['db']

    def version_exist(self, version):
        records = self.to_struct()['versions']
        for i, v in enumerate(records):
            if v['_cuid'] == version:
                return True
        return False

    def redirectexist(self, domain, host):
        records = self.to_struct()['redirects']
        for i, v in enumerate(records):
            if v['domain'] == domain and v['hosturl'] == host:
                return True
        return False

    @classmethod
    def redirected_used(cls, domain, host):
        table = cls.Meta.database.table(cls.__tablename__)
        allrec = table.all()
        for rec in allrec:
            sublst = rec['redirects']
            for i, v in enumerate(sublst):
                if v['domain'] == domain and v['hosturl'] == host:
                    return True, rec['_cuid']
        return False, None

    @classmethod
    def urlprefix_used(cls, prefix):
        table = cls.Meta.database.table(cls.__tablename__)
        allrec = table.all()
        for rec in allrec:
            if rec['urlprefix'] == prefix:
                return True, rec['_cuid']
        return False, None
        
    class Meta:
        database = SITES_DB
Ejemplo n.º 6
0
class CacheType(models.Base):
    __tablename__ = "cachetypes"
    engine = fields.StringField(required=True)
    host = fields.StringField(required=True,
                              validators=[validators.Length(1, 256)])
    port = fields.IntField(
        validators=[validators.Min(0),
                    validators.Max(65535)])
    username = fields.StringField()
    password = fields.StringField()
Ejemplo n.º 7
0
    class ConfigModel(TinyJsonModel):
        __tablename__ = "config"

        ENV = fields.StringField(required=True,
                                 validators=[validators.Length(3, 25)])
        SECRET_KEY = fields.StringField(required=True,
                                        validators=[validators.Length(50, 64)])
        APP_DIR = fields.StringField(required=True,
                                     validators=[validators.Length(1, 253)])
        PROJECT_ROOT = fields.StringField(
            required=True, validators=[validators.Length(1, 256)])
        BCRYPT_LOG_ROUNDS = fields.IntField(
            required=True,
            validators=[
                validators.Min(4), validators.Max(10000)
            ])  # needs at least 4 to avoid "ValueError: Invalid rounds"
        DEBUG = fields.BoolField(required=True)
        ASSETS_DEBUG = fields.BoolField(required=True)
        DEBUG_TB_ENABLED = fields.BoolField(required=True)
        DEBUG_TB_INTERCEPT_REDIRECTS = fields.BoolField(required=True)
        CACHE_TYPE = fields.EmbeddedField(CacheType)
        SQLALCHEMY_TRACK_MODIFICATIONS = fields.BoolField(required=True)
        APP_NAME = fields.StringField(required=True,
                                      validators=[validators.Length(1, 32)])
        APP_TMPL = fields.StringField(required=True,
                                      validators=[validators.Length(1, 32)])
        DB_NAME = fields.StringField(required=True,
                                     validators=[validators.Length(1, 32)])
        DB_PATH = fields.StringField(required=True,
                                     validators=[validators.Length(1, 256)])
        SQLALCHEMY_DATABASE_URI = fields.StringField(
            required=True, validators=[validators.Length(1, 256)])
        WTF_CSRF_ENABLED = fields.BoolField(required=True)
        TESTING = fields.BoolField(required=True)
        AUTH_ENGINES = fields.ListField([AuthType])
        FLASK_DEBUG_DISABLE_STRICT = fields.BoolField(required=True)
        _last_update = fields.DateTimeField(required=True)
        _created_at = fields.DateTimeField(required=True)

        def __init__(self, *args, **kwargs):
            self._last_update = datetime.utcnow()
            self._created_at = self._last_update
            super(ConfigModel, self).__init__(*args, **kwargs)

        # Example model custom method
        def created_at_datetime(self):
            return self._created_at

        @property
        def getauthbackends(self):
            return self.AUTH_ENGINES

        class Meta:
            database = dbj
Ejemplo n.º 8
0
class PetsModel(TinyJsonModel):
    __tablename__ = "pets"
    id = fields.StringField(required=True,
                            validators=[validators.Length(1, 255)])
    name = fields.StringField(required=True,
                              validators=[validators.Length(1, 100)])
    animal_type = fields.StringField(required=True,
                                     validators=[validators.Length(1, 255)])
    tags = fields.ListField(['PetTags'])
    _last_update = fields.DateTimeField(required=True)
    _created_at = fields.DateTimeField(required=True)

    def __init__(self, *args, **kwargs):
        self._last_update = datetime.utcnow()
        self._created_at = self._last_update
        super(PetsModel, self).__init__(*args, **kwargs)

    class Meta:
        database = PETS_DB
Ejemplo n.º 9
0
class DatabaseModel(TinyJsonModel):
    __tablename__ = "databases"

    dbprovider = fields.StringField(required=True,
                                    validators=[validators.Length(5, 63)])
    dbdescription = fields.StringField(required=True,
                                       validators=[validators.Length(1, 255)])
    dbname = fields.StringField(required=True,
                                validators=[validators.Length(1, 63)])
    dbuser = fields.StringField(required=True,
                                validators=[validators.Length(1, 32)])
    _last_update = fields.DateTimeField(required=True)
    _created_at = fields.DateTimeField(required=True)

    def __init__(self, *args, **kwargs):
        self._last_update = datetime.utcnow()
        self._created_at = self._last_update
        #if 'db' in kwargs:
        #    self.Meta.database = kwargs['db']
        super(DatabaseModel, self).__init__(*args, **kwargs)

    class Meta:
        database = DATABASES_DB
Ejemplo n.º 10
0
class PetTags(models.Base):
    id = fields.IntField(required=True)
    name = fields.StringField(required=True,
                              validators=[validators.Length(1, 20)])
Ejemplo n.º 11
0
class AuthType(models.Base):
    __tablename__ = "authtypes"
    provider = fields.StringField(required=True,
                                  validators=[validators.Length(1, 256)])
Ejemplo n.º 12
0
class CacheType(models.Base):
    __tablename__ = "cachetypes"
    name = fields.StringField(required=True)
Ejemplo n.º 13
0
class Version(TinyJsonModel):
    __tablename__ = "versions"
    tag = fields.StringField(required=True,
                             validators=[validators.Length(1, 255)])