def create_session(data, wsck):
    c_key = ndb.Key(urlsafe=wsck)
    s_id = Session.allocate_ids(size=1, parent=c_key)[0]
    s_key = ndb.Key(Session, s_id, parent=c_key)
    data['key'] = s_key
    speaker = get_create_speaker(data["speaker"])
    data["speaker"] = speaker
    session = Session(**data)
    session.put()

    return session
Esempio n. 2
0
 def __translate_unscanned(self, value=None):
     """
     Add subquerie as filter to keep only services that have not been 
     scanned yet (i.e. with no checks already run)
     """
     session = Session()
     return not_(
         session.query(Result) \
             .filter(Service.id == Result.service_id) \
             .exists()
     )
def get_conference_sessions(wsck, typeOfSession=None):
    conference = ndb.Key(urlsafe=wsck)
    sessions = Session.query(ancestor=conference)
    if typeOfSession is not None:
        sessions = sessions.filter(Session.typeOfSession == typeOfSession)

    return sessions
def set_featured_speaker(wsck, speaker_name):
    speaker = get_create_speaker(speaker_name)
    query = Session.query()
    query = query.filter(Session.speaker == speaker)
    sessions = query.filter(Session.websafeConferenceKey == wsck)
    if sessions.count() > 1:
        message = MESSAGE_FEATURED_SPEAKER.format(
            speaker_name,
            ", ".join([sess.name for sess in sessions]))
        memcache.set(MEMCACHE_FEATURED_SPEAKER, message)
Esempio n. 5
0
    def __init__(self):

        try:
            print(BANNER)
            # Parse settings files
            settings = Settings()

            # Parse command-line arguments
            arguments = ArgumentsParser(settings)

            # Create db if needed and initialize sqlalchemy session
            Base.metadata.create_all(engine)
            session = Session()

            # Create "default" mission if necessary
            mission = session.query(Mission).filter(
                Mission.name == 'default').first()
            if not mission:
                mission = Mission(name='default', comment='Default scope')
                session.add(mission)
                session.commit()

            # Controller
            controller = MainController(arguments, settings, session)
            controller.run()

        except KeyboardInterrupt:
            print()
            if Output.prompt_confirm('Are you sure you want to exit ?',
                                     default=False):
                logger.error('User aborted')
                sys.exit(0)
        except (SettingsException, AttackException) as e:
            logger.error(e)
            sys.exit(1)
        except (ValueError, ArgumentsException):
            print
            sys.exit(1)
        except Exception as e:
            print
            logger.error('Unexpected error occured: {0}'.format(str(e)))
            traceback.print_exc()
            sys.exit(1)
def query_session_task3(last_hour, session_type):
    query = Session.query()
    query = query.filter(Session.startTime.IN(range(1, last_hour+1)))
    query = query.filter(Session.typeOfSession != session_type)
    return query
def get_sessions_by_speaker(speaker_name):
    speaker = get_create_speaker(speaker_name)
    query = Session.query()
    query = query.filter(Session.speaker == speaker)

    return query
def get_sessions():
    query = Session.query()
    return query.fetch()
Esempio n. 9
0
def addApp():
    "添加应用"
    if request.method == "GET":
        g.add = True
        g.obj = {}

        sql = "select * from paas_account where status != 3"
        dao = db.execute(sql)
        g.users = map(objToDict, dao.fetchall())
        dao.close()

        return render_template("admin/addApp.html")
    else:
        uid = request.form.get("uid", None)
        title = request.form.get("title", None)
        description = request.form.get("description", None)
        language = request.form.get("language", None)
        host = request.form.get("host", None)
        gitUrl = request.form.get("gitUrl", None)
        #处理git地址,防止注入恶意代码
        gitUrl = gitUrl.replace(" ", "")

        #添加应用信息
        session = Session()
        obj = AppModel(title, description, uid, language, host, gitUrl, -1)
        session.add(obj)
        session.commit()

        #记录应用路径,用户,用户组
        appUser, appGroup, appPath = client.getAppMessage(
            obj.id, sqlDeal(language))
        sql = "update paas_app set appAccount = '%s' , appGroup = '%s',appPath = '%s' where id = %d" % (
            appUser, appGroup, appPath, obj.id)
        dao = db.execute(sql)
        dao.close()

        #为应用创建一个数据库,但是静态环境不需要数据库
        if language != "static":
            dbName = hashlib.md5(str(time.time())).hexdigest()
            username = hashlib.md5(uid + str(time.time())).hexdigest()[8:-8]
            password = hashlib.md5(title.encode("UTF-8") +
                                   str(time.time())).hexdigest()
            #建立数据库
            buildDb(dbName, username, password)

            sql = "insert into paas_db(uid,aid,dbName,username,password,host,port) values('%s','%s','%s','%s','%s','%s','%s')" % (
                sqlDeal(uid), str(obj.id), dbName, username, password,
                config.MYSQL_HOST, config.MYSQL_PORT)
            dao = db.execute(sql)
            dao.close()

        #初始化应用
        client.buildApp(obj.id, sqlDeal(host), sqlDeal(language))

        #生成apiKey和secretKey
        apiKey = hashlib.md5("apiKey_" + str(time.time())).hexdigest()
        secretKey = hashlib.md5("secretKey_" + str(time.time())).hexdigest()
        sql = "insert into paas_app_token(aid,apiKey,secretKey) values('%s','%s','%s')" % (
            str(obj.id), apiKey, secretKey)
        dao = db.execute(sql)
        dao.close()

        return redirect("/admin/appManager")