def _create_vm_list_db_for_failed_instance(self, session, notification_id, notification_uuid): try: conf_recover_starter_dic = self.rc_config.get_value( 'recover_starter') interval_to_be_retry = conf_recover_starter_dic.get( "interval_to_be_retry") max_retry_cnt = conf_recover_starter_dic.get("max_retry_cnt") msg = "Do get_one_vm_list_by_uuid_create_at_last." LOG.info(msg) result = dbapi.get_one_vm_list_by_uuid_create_at_last( session, notification_uuid) msg = "Succeeded in get_one_vm_list_by_uuid_create_at_last. " \ + "Return_value = " + str(result) LOG.info(msg) primary_id = None # row_cnt is always 0 or 1 if not result: primary_id = self.rc_util_db.insert_vm_list_db( session, notification_id, notification_uuid, 0) return primary_id else: result_progress = result.progress result_create_at = result.create_at result_retry_cnt = result.retry_cnt delta = self._compare_timestamp(datetime.datetime.now(), result_create_at) if result_progress == 2 and \ delta <= long(interval_to_be_retry): if result_retry_cnt < long(max_retry_cnt): primary_id = self.rc_util_db.insert_vm_list_db( session, notification_id, notification_uuid, result_retry_cnt + 1) return primary_id else: # Not insert vm_list db. msg = "Do not insert a record" \ + " into vm_list db because retry_cnt about " \ + notification_uuid \ + " is over " \ + max_retry_cnt \ + " times." LOG.warning(msg) return None elif result_progress == 2 and \ delta > long(interval_to_be_retry): primary_id = self.rc_util_db.insert_vm_list_db( session, notification_id, notification_uuid, 0) return primary_id else: # Not insert vm_list db. msg = "Do not insert a record " \ + "into vm_list db because progress of " \ + notification_uuid \ + " is " \ + str(result_progress) LOG.warning(msg) return None except KeyError: error_type, error_value, traceback_ = sys.exc_info() tb_list = traceback.format_tb(traceback_) LOG.error(error_type) LOG.error(error_value) for tb in tb_list: LOG.error(tb) raise KeyError
def _create_vm_list_db_for_failed_instance(self, session, notification_id, notification_uuid): try: conf_recover_starter_dic = self.rc_config.get_value("recover_starter") interval_to_be_retry = conf_recover_starter_dic.get("interval_to_be_retry") max_retry_cnt = conf_recover_starter_dic.get("max_retry_cnt") result = dbapi.get_one_vm_list_by_uuid_create_at_last(session, notification_uuid) primary_id = None # row_cnt is always 0 or 1 if not result: primary_id = self.rc_util_db.insert_vm_list_db(session, notification_id, notification_uuid, 0) return primary_id else: result_progress = result.progress result_create_at = result.create_at result_retry_cnt = result.retry_cnt delta = self._compare_timestamp(datetime.datetime.now(), result_create_at) if result_progress == 2 and delta <= long(interval_to_be_retry): if result_retry_cnt < long(max_retry_cnt): primary_id = self.rc_util_db.insert_vm_list_db( session, notification_id, notification_uuid, result_retry_cnt + 1 ) return primary_id else: # Not insert vm_list db. self.rc_util.syslogout_ex("RecoveryControllerStarter_0004", syslog.LOG_INFO) msg = ( "Do not insert a record" + " into vm_list db because retry_cnt about " + notification_uuid + " is over " + max_retry_cnt + " times." ) self.rc_util.syslogout(msg, syslog.LOG_INFO) return None elif result_progress == 2 and delta > long(interval_to_be_retry): primary_id = self.rc_util_db.insert_vm_list_db(session, notification_id, notification_uuid, 0) return primary_id else: # Not insert vm_list db. self.rc_util.syslogout_ex("RecoveryControllerStarter_0005", syslog.LOG_INFO) msg = ( "Do not insert a record " + "into vm_list db because progress of " + notification_uuid + " is " + str(result_progress) ) self.rc_util.syslogout(msg, syslog.LOG_INFO) return None except KeyError: self.rc_util.syslogout_ex("RecoveryControllerStarter_0007", syslog.LOG_ERR) error_type, error_value, traceback_ = sys.exc_info() tb_list = traceback.format_tb(traceback_) self.rc_util.syslogout(error_type, syslog.LOG_ERR) self.rc_util.syslogout(error_value, syslog.LOG_ERR) for tb in tb_list: self.rc_util.syslogout(tb, syslog.LOG_ERR) raise KeyError
def _create_vm_list_db_for_failed_instance(self, session, notification_id, notification_uuid): try: conf_recover_starter_dic = self.rc_config.get_value( 'recover_starter') interval_to_be_retry = conf_recover_starter_dic.get( "interval_to_be_retry") max_retry_cnt = conf_recover_starter_dic.get("max_retry_cnt") result = dbapi.get_one_vm_list_by_uuid_create_at_last( session, notification_uuid) primary_id = None # row_cnt is always 0 or 1 if not result: primary_id = self.rc_util_db.insert_vm_list_db( session, notification_id, notification_uuid, 0) return primary_id else: result_progress = result.progress result_create_at = result.create_at result_retry_cnt = result.retry_cnt delta = self._compare_timestamp(datetime.datetime.now(), result_create_at) if result_progress == 2 and \ delta <= long(interval_to_be_retry): if result_retry_cnt < long(max_retry_cnt): primary_id = self.rc_util_db.insert_vm_list_db( session, notification_id, notification_uuid, result_retry_cnt + 1) return primary_id else: # Not insert vm_list db. self.rc_util.syslogout_ex( "RecoveryControllerStarter_0004", syslog.LOG_INFO) msg = "Do not insert a record" \ + " into vm_list db because retry_cnt about " \ + notification_uuid \ + " is over " \ + max_retry_cnt \ + " times." self.rc_util.syslogout(msg, syslog.LOG_INFO) return None elif result_progress == 2 and \ delta > long(interval_to_be_retry): primary_id = self.rc_util_db.insert_vm_list_db( session, notification_id, notification_uuid, 0) return primary_id else: # Not insert vm_list db. self.rc_util.syslogout_ex("RecoveryControllerStarter_0005", syslog.LOG_INFO) msg = "Do not insert a record " \ + "into vm_list db because progress of " \ + notification_uuid \ + " is " \ + str(result_progress) self.rc_util.syslogout(msg, syslog.LOG_INFO) return None except KeyError: self.rc_util.syslogout_ex("RecoveryControllerStarter_0007", syslog.LOG_ERR) error_type, error_value, traceback_ = sys.exc_info() tb_list = traceback.format_tb(traceback_) self.rc_util.syslogout(error_type, syslog.LOG_ERR) self.rc_util.syslogout(error_value, syslog.LOG_ERR) for tb in tb_list: self.rc_util.syslogout(tb, syslog.LOG_ERR) raise KeyError
def _create_vm_list_db_for_failed_instance(self, session, notification_id, notification_uuid): try: conf_recover_starter_dic = self.rc_config.get_value( 'recover_starter') interval_to_be_retry = conf_recover_starter_dic.get( "interval_to_be_retry") max_retry_cnt = conf_recover_starter_dic.get("max_retry_cnt") msg = "Do get_one_vm_list_by_uuid_create_at_last." LOG.info(msg) result = dbapi.get_one_vm_list_by_uuid_create_at_last( session, notification_uuid) msg = "Succeeded in get_one_vm_list_by_uuid_create_at_last. " \ + "Return_value = " + str(result) LOG.info(msg) primary_id = None # row_cnt is always 0 or 1 if not result: primary_id = self.rc_util_db.insert_vm_list_db( session, notification_id, notification_uuid, 0) return primary_id else: result_progress = result.progress result_create_at = result.create_at result_retry_cnt = result.retry_cnt delta = self._compare_timestamp( datetime.datetime.now(), result_create_at) if result_progress == 2 and \ delta <= long(interval_to_be_retry): if result_retry_cnt < long(max_retry_cnt): primary_id = self.rc_util_db.insert_vm_list_db( session, notification_id, notification_uuid, result_retry_cnt + 1) return primary_id else: # Not insert vm_list db. msg = "Do not insert a record" \ + " into vm_list db because retry_cnt about " \ + notification_uuid \ + " is over " \ + max_retry_cnt \ + " times." LOG.warning(msg) return None elif result_progress == 2 and \ delta > long(interval_to_be_retry): primary_id = self.rc_util_db.insert_vm_list_db( session, notification_id, notification_uuid, 0) return primary_id else: # Not insert vm_list db. msg = "Do not insert a record " \ + "into vm_list db because progress of " \ + notification_uuid \ + " is " \ + str(result_progress) LOG.warning(msg) return None except KeyError: error_type, error_value, traceback_ = sys.exc_info() tb_list = traceback.format_tb(traceback_) LOG.error(error_type) LOG.error(error_value) for tb in tb_list: LOG.error(tb) raise KeyError