help='Define the sheet_id', required=True) parser.add_argument( '--notify', action='store_true', default=False, help='If notify is defined, then errors will be sent by email', required=False) parser.add_argument( '--logging_level', default='ERROR', choices=['DEBUG', 'INFO', 'WARNING', 'ERROR', 'CRITICAL'], help='Set the logging level of detail.') flags = parser.parse_args() args = vars(flags) except ImportError: flags = None sheet_id = args['sheet_id'] or None logging_level = args['logging_level'] or 'ERROR' logger = logger_builder.initLogger(logging_level) config = Config() knowledge = Knowledge(config) project = Project(config) stack = Stack(config) project.delete_by_query("sheet_id:" + sheet_id) knowledge.delete_by_query("sheet_id:" + sheet_id) stack.delete_by_query('key:' + sheet_id)
try: project = knowledge.load_spreadsheet_knowledge_map( spreadsheet_api, service, item, notify ) logger.info('=> loading stack') stack.load_stack(project) except errors.HttpError, err: if err.resp.status in [404, 500]: # delete sheet_id from index project and knowledge index q = "sheet_id:"+spreadsheetId project.delete_by_query(q) knowledge.delete_by_query(q) logger.warning("==> Spreadsheet %s doesn't exists: %s" % (spreadsheetId, err)) else: # send email to owner logger.error("==> exception on %s : %s" % (spreadsheetId, err)) if notify: subject = 'ACTION NEEDED: Tech Gallery %s-%s' % (contract, flow) gmail.send(owner, subject, spreadsheetId, str(err)) except Exception, e: logger.error("==> exception on %s : %s" % (spreadsheetId, e)) if notify: subject = 'ACTION NEEDED: Tech Gallery %s-%s' % (contract, flow) gmail.send(owner, subject, spreadsheetId, str(e)) logger.info('spreadsheet process finished')