def getVersion(pkg: str = None): if pkg and pkg != APP_NAME: ver, _ = NodeControlUtil.curr_pkt_info(pkg) return ver from indy_node.__metadata__ import __version__ return __version__
def _upgrade(self, new_version, pkg_name, migrate=True, rollback=True): current_version, _ = NodeControlUtil.curr_pkt_info(pkg_name) try: from indy_node.server.upgrader import Upgrader node_cur_version = Upgrader.getVersion() logger.info('Trying to upgrade from {}={} to {}'.format(pkg_name, current_version, new_version)) self._call_upgrade_script(pkg_name, new_version) if migrate: node_new_version = Upgrader.getVersion() self._do_migration(node_cur_version, node_new_version) self._call_restart_node_script() except Exception as ex: self._declare_upgrade_failed(from_version=current_version, to_version=new_version, reason=str(ex)) logger.error("Trying to rollback to the previous version {}" .format(ex, current_version)) if rollback: self._upgrade(current_version, pkg_name, rollback=False)
def curr_pkt_info(self, pkg_name): if pkg_name == APP_NAME: return Upgrader.getVersion(), [APP_NAME] return NodeControlUtil.curr_pkt_info(pkg_name)
def _ext_info(self, pkg=None): pkg_name = pkg or self.upgrade_entry return NodeControlUtil.curr_pkt_info(pkg_name)