Beispiel #1
0
        def on_session_timeout():
            print "session timeout"
            _db_con_clr = before_first_request()
            _db_clr = Database(_db_con_clr)
            _db_clr.begin()
            try:
                _db_clr.clear_session(SESSION_CUTOFF)
                _db_clr.commit()
                _db_con_clr.close()

                t = threading.Timer(500, on_session_timeout)
                t.daemon = True
                t.start()

            except Exception, e:
                logger.logKnowledge("error", "remove_old_session", str(e))
                logger.logKnowledge("error", "remove_old_session",
                                    str(traceback.format_exc()))
                _db_clr.rollback()
        def get_file_stats(csvid):
            file_status = None
            c_db_con = bulkupload_db_connect()
            _db_check = Database(c_db_con)
            try:
                _db_check.begin()
                # data = _db_check.call_proc(
                #     "sp_pastdata_get_file_download_status", [csvid]
                # )
                query = "select file_download_status from " \
                        "tbl_bulk_past_data_csv where csv_past_id = %s"
                param = [csvid]

                data = _db_check.select_all(query, param)
                print "DAta -> ", data
                if len(data) > 0:
                    file_status = data[0].get("file_download_status")

            except Exception, e:
                print e
                _db_check.rollback()
Beispiel #3
0
    def handle_api_request(self, unbound_method, request_data_type,
                           need_session_id):
        is_bulk_upload = False
        # self._ip_addess = request.remote_addr
        self._ip_addess = request.headers.get("X-Real-Ip")
        caller_name = request.headers.get("Caller-Name")

        api_type = request.url

        try:
            if request_data_type == "knowledgeformat":
                request_data = request
            else:
                request_data = self._parse_request(request_data_type)

            if request_data is None:
                raise ValueError("Request data is Null")

            elif type(request_data) is str:
                raise ValueError(request_data)
            if "/api/bu" in api_type:
                is_bulk_upload = True
                _db_con = bulk_db_connect()
            else:
                _db_con = before_first_request()

            _db = Database(_db_con)
            _db.begin()

            valid_session_data = None
            session_user = None
            _session_db = None
            _session_db_con = None

            print is_bulk_upload
            if is_bulk_upload is True:
                _session_db_con = before_first_request()
                _session_db = Database(_session_db_con)
                _session_db.begin()
                valid_session_data, session_user = self.validate_user_rights(
                    request_data, _session_db, caller_name)
                if valid_session_data is None:
                    session_user = UserInfo(_session_db, session_user)
                _session_db.commit()

            else:
                valid_session_data, session_user = self.validate_user_rights(
                    request_data, _db, caller_name)

            if valid_session_data is None:
                if need_session_id is True:
                    response_data = unbound_method(self, request_data, _db,
                                                   session_user)
                else:
                    response_data = unbound_method(self, request_data, _db)
            else:
                response_data = valid_session_data

            if response_data is None or type(response_data) is bool:
                _db.rollback()
                raise fetch_error()

            elif type(response_data) != technomasters.ClientCreationFailed:
                _db.commit()
            else:
                _db.rollback()

            _db.close()
            _db_con.close()
            return self.respond(response_data)

        except Exception, e:
            logger.logKnowledge("error", "handle_api_request", str(e))
            logger.logKnowledge("error", "handle_api_request",
                                str(traceback.format_exc()))

            if str(e).find("expected a") is False:
                _db.rollback()
                _db.close()
                _db_con.close()

            return self._send_response(str(e), 400)