def validate_dsn(dsn: str): """Validate a database DSN. Raises InvalideDatabaseDSN if invalid. """ try: _parse_rfc1738_args(dsn) except (ArgumentError, ValueError): raise InvalidDatabaseDSN(dsn)
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
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[:] = []
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[:] = []
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)
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)
def get_url_data(self): url = _parse_rfc1738_args(cfg.CONF[self.name].database_connection) return url.translate_connect_args()
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")