예제 #1
0
    def __init__(self,
                 nodeId,
                 nodeName,
                 dataDir,
                 config,
                 ledger,
                 upgradeLog: UpgradeLog = None,
                 upgradeFailedCallback: Callable = None,
                 upgrade_start_callback: Callable = None):

        self.nodeId = nodeId
        self.nodeName = nodeName
        self.config = config
        self.dataDir = dataDir
        self.ledger = ledger
        self.scheduledUpgrade = None  # type: Tuple[str, int, str]
        self._notifier = notifier_plugin_manager.PluginManager()
        self._upgradeLog = upgradeLog if upgradeLog else \
            self.__defaultLog(dataDir, config)
        self._upgradeFailedCallback = \
            upgradeFailedCallback if upgradeFailedCallback else lambda: None
        self._upgrade_start_callback = \
            upgrade_start_callback if upgrade_start_callback else lambda: None

        self.retry_timeout = 5
        self.retry_limit = 3

        self.process_upgrade_log_for_first_run()

        HasActionQueue.__init__(self)
예제 #2
0
    def __init__(self,
                 nodeId,
                 nodeName,
                 dataDir,
                 config,
                 ledger=None,
                 actionLog=None,
                 actionFailedCallback: Callable = None,
                 action_start_callback: Callable = None):

        self.nodeId = nodeId
        self.nodeName = nodeName
        self.config = config
        self.dataDir = dataDir
        self.ledger = ledger
        self.scheduledAction = None
        self._notifier = notifier_plugin_manager.PluginManager()
        self._actionLog = actionLog if actionLog else \
            self._defaultLog(dataDir, config)
        self._actionFailedCallback = \
            actionFailedCallback if actionFailedCallback else lambda: None
        self._action_start_callback = \
            action_start_callback if action_start_callback else lambda: None

        self.retry_timeout = 5
        self.retry_limit = 3

        self.process_action_log_for_first_run()

        HasActionQueue.__init__(self)
예제 #3
0
    def __init__(self,
                 nodeId,
                 nodeName,
                 dataDir,
                 config,
                 ledger,
                 upgradeLog: UpgradeLog = None,
                 upgradeFailedCallback = None):

        self.nodeId = nodeId
        self.nodeName = nodeName
        self.config = config
        self.dataDir = dataDir
        self.ledger = ledger
        self.scheduledUpgrade = None  # type: Tuple[str, int]
        self._notifier = notifier_plugin_manager.PluginManager()
        self._upgradeLog = upgradeLog if upgradeLog else \
            self.__defaultLog(dataDir, config)
        self._upgradeFailedCallback = \
            upgradeFailedCallback if upgradeFailedCallback else lambda: None

        self.__isItFirstRunAfterUpgrade = None

        if self.isItFirstRunAfterUpgrade:
            (when, version) = self.lastExecutedUpgradeInfo
            if self.didLastExecutedUpgradeSucceeded:
                self._upgradeLog.appendSucceeded(when, version)
                logger.debug("Node '{}' successfully upgraded to version {}"
                             .format(nodeName, version))
                self._notifier.sendMessageUponNodeUpgradeComplete(
                    "Upgrade of node '{}' to version {} scheduled on {} "
                    "completed successfully"
                    .format(nodeName, version, when))
            else:
                self._upgradeLog.appendFailed(when, version)
                logger.error("Failed to upgrade node '{}' to version {}"
                             .format(nodeName, version))
                self._notifier.sendMessageUponNodeUpgradeFail(
                    "Upgrade of node '{}' to version {} "
                    "scheduled on {} failed"
                    .format(nodeName, version, when))
        HasActionQueue.__init__(self)