async def run(self, node_type): # check init if not self.node_list.get()['init_ed']: utils.error_msg('Please initialize first!') utils.info_msg('To get more initialize info:') utils.msg('tron-cli init -h') exit() # check config if not self.node_list.get()['config_ed']: utils.error_msg('Please config first!') utils.info_msg('To get more config info:') utils.msg('tron-cli config -h') exit() pid = await self.run_node(node_type) utils.success_msg('node running at pid:') _config = self.node_list.get()['config'] utils.msg(str(pid)) if node_type in ['full', 'sol', 'event']: utils.status_msg('HTTP', LOCAL_HOST + str(_config[node_type + 'httpport'])) utils.status_msg('RPC', LOCAL_HOST + str(_config[node_type + 'rpcport'])) utils.status_msg('LOG PATH', utils.log_location(self.root_path, node_type)) elif node_type == 'grid': utils.status_msg('HTTP', LOCAL_HOST + str(_config['gridport'])) utils.node_cmds(pid) await self.node_list.update_running_node(node_type, pid, 'add')
async def fetch_jars(self, version): """ get release url """ url = JAVA_TRON_RELEASES_URL if version == 'latest': url += 'Odyssey-v' + JAVA_TRON_LASTEST_VERSION await self.node_list.update_node_version(JAVA_TRON_LASTEST_VERSION) elif '3.1.3' <= version <= '3.1.3': url += 'Odyssey-v' + version self.source_full_jar = 'java-tron.jar' await self.node_list.update_node_version(version) elif '3.2.0' <= version < JAVA_TRON_LASTEST_VERSION: url += 'Odyssey-v' + version await self.node_list.update_node_version(version) else: utils.error_msg('version: ' + version + ' not supported') utils.info_msg('current support versions: 3.1.3 - ' + JAVA_TRON_LASTEST_VERSION) exit() """ download """ utils.progress_msg('Downloading full-node jar from released build') await utils.download(self.source_full_jar, url) utils.success_msg('.jar file of Fullnode is successfully downloaded') utils.progress_msg('Downloading solidity-node jar from released build') await utils.download(self.source_sol_jar, url) utils.success_msg( '.jar file of Soliditynode is successfully downloaded')
async def env_check(self): try: jdk_version = subprocess.check_output(['java', '-version'], stderr=subprocess.STDOUT) jdk_version = re.search('\"(\d+\.\d+).*\"', str(jdk_version)).groups()[0] except OSError as err: utils.warning_msg('OS Warning -' + str(err)) utils.error_msg( 'Please make sure you install Oracle JDK 1.8 correctly.') os.sys.exit() else: if jdk_version != '1.8': utils.error_msg( 'java-tron required Oracle JDK version = 1.8, please install and use JDK 1.8' ) os.sys.exit()
async def init(self, reset): """ Load raw json config """ # check init if not self.node_list.get()['init_ed']: utils.error_msg('Please initialize first!') utils.info_msg('To get more initialize info:') utils.msg('tron-cli init -h') exit() if reset != 'False': self.node_list.reset_config() self.full_config = copy.deepcopy(json_store.raw_config) self.sol_config = copy.deepcopy(json_store.raw_config) self.event_config = copy.deepcopy(json_store.raw_config) self.eventnode_db_properties = copy.deepcopy( json_store.raw_eventnode_mongodb_properties) self.gridapi_db_properties = copy.deepcopy( json_store.raw_gridapi_application_properties) _config_store = self.node_list.get() self.config_store = _config_store['config'] utils.success_msg('config initialized')
async def store_db_settings(self, dbname, dbusername, dbpassword, gridport): # check void and restore if dbname == 'Null': dbname = self.config_store['dbname'] else: self.config_store['dbname'] = dbname if dbusername == 'Null': dbusername = self.config_store['dbusername'] else: self.config_store['dbusername'] = dbusername if dbpassword == 'Null': dbpassword = self.config_store['dbpassword'] else: self.config_store['dbpassword'] = dbpassword if gridport == 0: gridport = self.config_store['gridport'] else: self.config_store['gridport'] = gridport utils.success_msg('grid api http request set to listen: ') utils.msg(LOCAL_HOST + str(gridport)) await self.update_config_store() if dbname == 'Null' and dbusername == 'Null' and dbpassword == 'Null': self.enable_event_services = False utils.warning_msg( 'Not configing event services since db settings not specified.' ) utils.info_msg( 'config event services by specify --dbname <name> --dbusername <user> --dbpassword <password>' ) elif dbname == 'Null': utils.error_msg('Please set db name with --dbname') exit() elif dbusername == 'Null': utils.error_msg('Please set db user name with --dbusername') exit() elif dbpassword == 'Null': utils.error_msg('Please set db password with --dbpassword') exit() else: self.enable_event_services = True await self.node_list.update_db_settings(dbname, dbusername, dbpassword) utils.success_msg('db settings stored') await self.change_eventnode_db_settings() await self.change_gridapi_db_settings(gridport) await self.build_eventnode_jar() await self.build_gridapi_jar() await self.move_gridapi_jar()