Пример #1
0
def validate_dsn(dsn: str):
    """Validate a database DSN.

    Raises InvalideDatabaseDSN if invalid.

    """
    try:
        _parse_rfc1738_args(dsn)
    except (ArgumentError, ValueError):
        raise InvalidDatabaseDSN(dsn)
Пример #2
0
def check_keys():
    global error_message

    if request.form.get('database_uri') and request.form.get('username') and \
       request.form.get('password_1') and request.form.get('password_2') and \
       request.form.get('email'):

        try:
            _parse_rfc1738_args(request.form.get('database_uri'))
        except ArgumentError:
            error_message = messages.invalid_database_uri
            return False

        if request.form['password_1'] != request.form['password_2']:
            error_message = messages.passwords_dont_match
            return False

        return True

    else:
        error_message = u'Please fill in all fields'
        return False    
Пример #3
0
def update_index(surl, msgs):
    "update the RT index"
    url = _parse_rfc1738_args(surl)
    connparams = url.translate_connect_args(database='db',
                                            username='******',
                                            password='******')
    MySQLdb.paramstyle = 'pyformat'
    dbconn = MySQLdb.connect(**connparams)
    cursor = dbconn.cursor()
    c = 0
    for mesg in msgs:
        if not mesg.id:
            print "Missing id, skipping"
            continue
        print_(" Indexing: %d" % mesg.id)
        params = {}
        for field in [
                'id', 'messageid', 'subject', 'headers', 'hostname',
                'timestamp', 'isquarantined'
        ]:
            params[field] = getattr(mesg, field)
        params['from_addr'] = crc32(getattr(mesg, 'from_address'))
        params['to_addr'] = crc32(getattr(mesg, 'to_address'))
        params['from_dom'] = crc32(getattr(mesg, 'from_domain'))
        params['to_dom'] = crc32(getattr(mesg, 'to_domain'))
        params['isquarantined'] = int(params['isquarantined'])
        params['timestamp'] = int(time.mktime(params['timestamp']\
                                .timetuple()))
        sql = """INSERT INTO messages_rt (id, messageid,
                    subject, headers, hostname, from_addr,
                    to_addr, from_dom, to_dom, timestamp,
                    isquarantined) VALUES(
                    %(id)s, %(messageid)s, %(subject)s, %(headers)s,
                    %(hostname)s, %(from_addr)s, %(to_addr)s,
                    %(from_dom)s, %(to_dom)s, %(timestamp)s,
                    %(isquarantined)s)"""
        try:
            cursor.execute(sql, params)
            c += 1
            print_(" Indexed: %d" % c)
        except MySQLdb.MySQLError:
            #print err
            pass
    dbconn.close()
    msgs[:] = []
Пример #4
0
def update_index(surl, msgs):
    "update the RT index"
    url = _parse_rfc1738_args(surl)
    connparams = url.translate_connect_args(database='db',
                    username='******', password='******')
    MySQLdb.paramstyle = 'pyformat'
    dbconn = MySQLdb.connect(**connparams)
    cursor = dbconn.cursor()
    count = 0
    for mesg in msgs:
        if not mesg.id:
            print "Missing id, skipping"
            continue
        print_(" Indexing: %d" % mesg.id)
        params = {}
        for field in ['id', 'messageid', 'subject', 'headers',
                    'hostname', 'timestamp', 'isquarantined']:
            params[field] = getattr(mesg, field)
        params['from_addr'] = crc32(getattr(mesg, 'from_address'))
        params['to_addr'] = crc32(getattr(mesg, 'to_address'))
        params['from_dom'] = crc32(getattr(mesg, 'from_domain'))
        params['to_dom'] = crc32(getattr(mesg, 'to_domain'))
        params['isquarantined'] = int(params['isquarantined'])
        params['timestamp'] = int(time.mktime(params['timestamp']
                                .timetuple()))
        sql = """INSERT INTO messages_rt (id, messageid,
                    subject, headers, hostname, from_addr,
                    to_addr, from_dom, to_dom, timestamp,
                    isquarantined) VALUES(
                    %(id)s, %(messageid)s, %(subject)s, %(headers)s,
                    %(hostname)s, %(from_addr)s, %(to_addr)s,
                    %(from_dom)s, %(to_dom)s, %(timestamp)s,
                    %(isquarantined)s)"""
        try:
            cursor.execute(sql, params)
            count += 1
            print_(" Indexed: %d" % count)
        except MySQLdb.MySQLError:
            # print err
            pass
    dbconn.close()
    msgs[:] = []
Пример #5
0
import os
from sqlalchemy.engine.url import _parse_rfc1738_args
from pyfaf.config import config, paths
from pyfaf.utils.parse import str2bool
dburl = _parse_rfc1738_args(config["storage.connectstring"])

WEBFAF_DIR = os.path.dirname(__file__)


class Config(object):
    DEBUG = False
    TESTING = False
    SECRET_KEY = 'NOT_A_RANDOM_STRING'
    SQLALCHEMY_DATABASE_URI = dburl
    OPENID_ENABLED = str2bool(config.get("openid.enabled", "false"))
    OPENID_FS_STORE = os.path.join(paths["spool"], "openid_store")
    OPENID_PRIVILEGED_TEAMS = map(lambda s: s.strip(),
                                  config.get("openid.privileged_teams", "").split(","))
    PROXY_SETUP = False
    MAX_CONTENT_LENGTH = int(config["dumpdir.maxdumpdirsize"])
    RSTPAGES_SRC = os.path.join(WEBFAF_DIR, "templates")
    RSTPAGES_RST_SETTINGS = {'initial_header_level': 3}
    ADMINS = config.get("mail.admins", "").split(",")
    MAIL_SERVER = config.get("mail.server", "localhost")
    MAIL_PORT = config.get("mail.port", "25")
    MAIL_USERNAME = config.get("mail.username", None)
    MAIL_PASSWORD = config.get("mail.password", None)
    BRAND_TITLE = config.get("hub.brand_title", "FAF")
    BRAND_SUBTITLE = config.get("hub.brand_subtitle", "Fedora Analysis Framework")
    CACHE_TYPE = config.get("cache.type", "simple")
    MEMCACHED_HOST = config.get("cache.memcached_host", None)
Пример #6
0
import os
from sqlalchemy.engine.url import _parse_rfc1738_args
import pyfaf
from pyfaf.config import config, paths
from pyfaf.common import get_connect_string
from pyfaf.utils.parse import str2bool
dburl = _parse_rfc1738_args(get_connect_string())

WEBFAF_DIR = os.path.dirname(__file__)


class Config(object):
    DEBUG = False
    TESTING = False
    SECRET_KEY = 'NOT_A_RANDOM_STRING'
    SQLALCHEMY_DATABASE_URI = dburl
    SQLALCHEMY_TRACK_MODIFICATIONS = False
    OPENID_ENABLED = str2bool(config.get("openid.enabled", "false"))
    OPENID_FS_STORE = os.path.join(paths["spool"], "openid_store")
    OPENID_PRIVILEGED_TEAMS = [
        s.strip() for s in config.get("openid.privileged_teams", "").split(",")
    ]
    PROXY_SETUP = False
    MAX_CONTENT_LENGTH = int(config["dumpdir.maxdumpdirsize"])
    TEMPLATES_DIR = os.path.join(WEBFAF_DIR, "templates")
    ADMINS = config.get("mail.admins", "").split(",")
    MAIL_SERVER = config.get("mail.server", "localhost")
    MAIL_PORT = config.get("mail.port", "25")
    MAIL_USERNAME = config.get("mail.username", None)
    MAIL_PASSWORD = config.get("mail.password", None)
    MAIL_FROM = config.get("mail.from", 'no-reply@' + MAIL_SERVER)
Пример #7
0
 def get_url_data(self):
     url = _parse_rfc1738_args(cfg.CONF[self.name].database_connection)
     return url.translate_connect_args()
Пример #8
0
 def get_url_data(self):
     url = _parse_rfc1738_args(cfg.CONF[self.name].database_connection)
     return url.translate_connect_args()
Пример #9
0
import os
from sqlalchemy.engine.url import _parse_rfc1738_args
from pyfaf.config import config, paths
from pyfaf.common import get_connect_string
from pyfaf.utils.parse import str2bool
dburl = _parse_rfc1738_args(get_connect_string())

WEBFAF_DIR = os.path.dirname(__file__)


class Config(object):
    DEBUG = False
    TESTING = False
    SECRET_KEY = 'NOT_A_RANDOM_STRING'
    SQLALCHEMY_DATABASE_URI = dburl
    OPENID_ENABLED = str2bool(config.get("openid.enabled", "false"))
    OPENID_FS_STORE = os.path.join(paths["spool"], "openid_store")
    OPENID_PRIVILEGED_TEAMS = [s.strip() for s in config.get("openid.privileged_teams", "").split(",")]
    PROXY_SETUP = False
    MAX_CONTENT_LENGTH = int(config["dumpdir.maxdumpdirsize"])
    RSTPAGES_SRC = os.path.join(WEBFAF_DIR, "templates")
    RSTPAGES_RST_SETTINGS = {'initial_header_level': 3}
    ADMINS = config.get("mail.admins", "").split(",")
    MAIL_SERVER = config.get("mail.server", "localhost")
    MAIL_PORT = config.get("mail.port", "25")
    MAIL_USERNAME = config.get("mail.username", None)
    MAIL_PASSWORD = config.get("mail.password", None)
    MAIL_FROM = config.get("mail.from", 'no-reply@' + MAIL_SERVER)
    BRAND_TITLE = config.get("hub.brand_title", "FAF")
    BRAND_SUBTITLE = config.get("hub.brand_subtitle", "Fedora Analysis Framework")
    CACHE_TYPE = config.get("cache.type", "simple")