def __init__(self) : logger = MLogger('report generator') self._logger = logger.get_logger() try: self._db = DBManager().get_query() except MySQLdb.Error, message: self._logger.error("Report generator. Init mysql db manager error - %s" % message) log_traceback(self._logger, traceback) print simplejson.dumps({'status': 'ERROR', 'message': '%s' % message}) sys.exit()
def __init__(self) : self._db = DBManager().get_query() logger = MLogger('report data manager') self._logger = logger.get_logger()
def _clone_element(_db, original_element_id, new_element_id): """ Used to clone dashboard element. Only in test mode (-t), because in real usage element is cloned by php backend """ _db.Query("SELECT * FROM dashboard_element WHERE element_id = %s", (original_element_id, )) record = dict(_db.record[0]) record['element_id'] = new_element_id #record['primary_topic_id'] = None column_count = len(record) columns_sql = ", ".join(record.keys()) values_placeholders_sql = "%s, " * column_count sql_insert = _sql_insert % ('dashboard_element', columns_sql, values_placeholders_sql[:-2]) _db.Query(sql_insert, tuple(record.values())) if __name__ == "__main__": logger = MLogger('report duplication') _logger = logger.get_logger() params = sys.argv[1:] usage = """Usage: report_duplicate.py <original_element_id> <new_element_id> [-t] [-p[-c]] [-d] | -h <original_element_id> : original dashboard element_id. <new_element_id> : new dashboard element_id. -p : duplicate pivots -c : duplicate charts. Duplicate all charts if -p is set, only non-pivot charts if -p not set. -d : duplicate drill-to links. -t : only in the test mode, element is duplicated (in real usage it's done by the php backend) -h,--h,-help,--help : show this message. Notice: