# clone *.dmp files for dmp_file in glob(os.path.join(original_saved_data_path, "*.dmp")): filename = os.path.basename(dmp_file) dst = os.path.join(new_saved_data_path, filename) copy2(dmp_file, dst) os.chmod(dst, 0777) os.chown(dst, config.file_owner_uid, config.file_owner_gid) except IOError, e: raise Exception("Cannot copy file into %s. %s" % (dst, e)) except OSError, e: raise Exception("Cannot copy file into %s. %s" % (dst, e)) # Restore validation files from saved_data and run validation to create all required files. jfile = JFileValidator(config.report_root, new_element_id, None) jfile.restore_validation_data() reportValidator = ReportValidator() reportValidator.init(new_element_id) reportValidator.report_generation() # print simplejson.dumps({'status': 'OK', 'message': 'report %s duplicated to %s successfully' % (original_element_id, new_element_id)}) # except Exception, message: # _logger.error("Report duplication. Report %s duplication failed. Exception %s" % (original_element_id, message)) # log_traceback(_logger, traceback) # print simplejson.dumps({'status':'ERROR', 'message':'report %s duplication failed. %s' % (original_element_id, message)}) def _clone_relation_data(_db, object_id, tables, table_info, select_info, update_values): """ Clone relation data. @param object_id: root record id, for example element_id @param tables: list of tables to copy (order is respected)
try: res = self._db.Query("""SELECT dashboard_element.element_id FROM dashboard_element WHERE dashboard_element.`type`='internal report' AND element_id = %s""", (element_id, )) except MySQLdb.Error, message: self._logger.error("Report validator. Try to get element %s. SQL error %s" % (element_id, message)) log_traceback(self._logger, traceback) print simplejson.dumps({'status':'ERROR', 'message':'SQL error %s' % message, 'fetched_rows': ''}) sys.exit() if not res: print simplejson.dumps({'status':'ERROR', 'message':'incorrect report element id', 'fetched_rows':''}) sys.exit() try: report = ReportValidator() report.set_logger(self._logger) #report.init(element_id) # validator_commands = {'data_fetch': report.data_fetch, # 'metadata_update': report.metadata_update, # 'saving_chart': report.saving_chart, # 'data_generation': report.data_generation, # 'report_generation': report.report_generation, # 'pivot_generation': report.pivot_generation, # 'chart_generation': report.chart_generation, # 'restore_data': report.restore_data, # 'saving_report': report.saving_report # } # fetched_rows = validator_commands.get(validator_command, self.unknown_command)(id1) command = None params = None