From d26412df7118a3cc7a184825590fb9c61749041b Mon Sep 17 00:00:00 2001 From: Vasiliy Zaznobin Date: Wed, 24 Nov 2021 10:49:24 +0300 Subject: [PATCH 1/5] Introduce neon_cli_version --- proxy/environment.py | 11 +++++++++++ proxy/plugin/solana_rest_api.py | 3 +++ 2 files changed, 14 insertions(+) diff --git a/proxy/environment.py b/proxy/environment.py index 7ba268c0a..4e5f8d7cd 100644 --- a/proxy/environment.py +++ b/proxy/environment.py @@ -39,6 +39,17 @@ def call(self, *args): logger.debug("ERR: neon-cli error {}".format(err)) raise + def version(self): + try: + cmd = ["neon-cli", + "--version"] + logger.debug("Calling: " + " ".join(cmd)) + return subprocess.check_output(cmd, timeout=neon_cli_timeout, universal_newlines=True).split()[1] + except subprocess.CalledProcessError as err: + import sys + logger.debug("ERR: neon-cli error {}".format(err)) + raise + def read_elf_params(out_dict): logger.debug('load for solana_url={} and evm_loader_id={}'.format(solana_url, evm_loader_id)) res = solana_cli().call('program', 'dump', evm_loader_id, './evm_loader.dump') diff --git a/proxy/plugin/solana_rest_api.py b/proxy/plugin/solana_rest_api.py index 2c1a44dcc..db99a1e13 100644 --- a/proxy/plugin/solana_rest_api.py +++ b/proxy/plugin/solana_rest_api.py @@ -93,6 +93,9 @@ def eth_chainId(self): # NEON_CHAIN_ID is a string in decimal form return hex(int(self.neon_config_dict['NEON_CHAIN_ID'])) + def neon_cli_version(self): + return neon_cli.version() + def net_version(self): neon_config_load(self) # NEON_CHAIN_ID is a string in decimal form From 946c6056f833ec80f96c871966393b88ed9fcb50 Mon Sep 17 00:00:00 2001 From: Vasiliy Zaznobin Date: Wed, 24 Nov 2021 10:54:35 +0300 Subject: [PATCH 2/5] Introduce test_neon_cli_version --- proxy/testing/test_neon_cli_version.py | 40 ++++++++++++++++++++++++++ 1 file changed, 40 insertions(+) create mode 100644 proxy/testing/test_neon_cli_version.py diff --git a/proxy/testing/test_neon_cli_version.py b/proxy/testing/test_neon_cli_version.py new file mode 100644 index 000000000..90da439f9 --- /dev/null +++ b/proxy/testing/test_neon_cli_version.py @@ -0,0 +1,40 @@ +import unittest +import os +import requests +import json +import inspect + +from proxy.environment import neon_cli +from proxy.plugin.solana_rest_api import NEON_PROXY_PKG_VERSION, NEON_PROXY_REVISION + +proxy_url = os.environ.get('PROXY_URL', 'http://localhost:9090/solana') +headers = {'Content-type': 'application/json'} + + +def get_line_number(): + cf = inspect.currentframe() + return cf.f_back.f_lineno + + +class TestNeonProxyVersion(unittest.TestCase): + @classmethod + def setUpClass(cls): + pass + + def test_01_neon_cli_version(self): + print("https://github.com/neonlabsorg/proxy-model.py/issues/319") + response = json.loads(requests.post( + proxy_url, headers=headers, + data=json.dumps({"jsonrpc": "2.0", + "id": get_line_number(), + "method": "neon_cli_version", + "params": [] + })).text) + print('response:', response) + neon_cli_version = response['result'] + print('neon_cli_version:', neon_cli_version) + self.assertEqual(neon_cli_version, neon_cli.version()) + + +if __name__ == '__main__': + unittest.main() From 630bdec8e75c85b92f0022fe8012d1a1ce2fc1ef Mon Sep 17 00:00:00 2001 From: Vasiliy Zaznobin Date: Wed, 24 Nov 2021 11:05:32 +0300 Subject: [PATCH 3/5] A small correction --- proxy/testing/test_neon_cli_version.py | 1 - 1 file changed, 1 deletion(-) diff --git a/proxy/testing/test_neon_cli_version.py b/proxy/testing/test_neon_cli_version.py index 90da439f9..49c0a5761 100644 --- a/proxy/testing/test_neon_cli_version.py +++ b/proxy/testing/test_neon_cli_version.py @@ -5,7 +5,6 @@ import inspect from proxy.environment import neon_cli -from proxy.plugin.solana_rest_api import NEON_PROXY_PKG_VERSION, NEON_PROXY_REVISION proxy_url = os.environ.get('PROXY_URL', 'http://localhost:9090/solana') headers = {'Content-type': 'application/json'} From 5cad811529141e69372a9d668483e83f927d18e1 Mon Sep 17 00:00:00 2001 From: Vasiliy Zaznobin Date: Wed, 24 Nov 2021 11:33:27 +0300 Subject: [PATCH 4/5] Fix: missing 1 required positional argument: 'self' --- proxy/plugin/solana_rest_api.py | 2 +- proxy/testing/test_neon_cli_version.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/proxy/plugin/solana_rest_api.py b/proxy/plugin/solana_rest_api.py index db99a1e13..53655b7cf 100644 --- a/proxy/plugin/solana_rest_api.py +++ b/proxy/plugin/solana_rest_api.py @@ -94,7 +94,7 @@ def eth_chainId(self): return hex(int(self.neon_config_dict['NEON_CHAIN_ID'])) def neon_cli_version(self): - return neon_cli.version() + return neon_cli().version() def net_version(self): neon_config_load(self) diff --git a/proxy/testing/test_neon_cli_version.py b/proxy/testing/test_neon_cli_version.py index 49c0a5761..66b82d68e 100644 --- a/proxy/testing/test_neon_cli_version.py +++ b/proxy/testing/test_neon_cli_version.py @@ -32,7 +32,7 @@ def test_01_neon_cli_version(self): print('response:', response) neon_cli_version = response['result'] print('neon_cli_version:', neon_cli_version) - self.assertEqual(neon_cli_version, neon_cli.version()) + self.assertEqual(neon_cli_version, neon_cli().version()) if __name__ == '__main__': From 7912f0518400e339aae0e24065a4bc36c7a47d1e Mon Sep 17 00:00:00 2001 From: Vasiliy Zaznobin Date: Wed, 24 Nov 2021 13:45:46 +0300 Subject: [PATCH 5/5] Remove import sys --- proxy/environment.py | 3 --- 1 file changed, 3 deletions(-) diff --git a/proxy/environment.py b/proxy/environment.py index 4e5f8d7cd..b06465798 100644 --- a/proxy/environment.py +++ b/proxy/environment.py @@ -19,7 +19,6 @@ def call(self, *args): logger.debug("Calling: " + " ".join(cmd)) return subprocess.check_output(cmd, universal_newlines=True) except subprocess.CalledProcessError as err: - import sys logger.debug("ERR: solana error {}".format(err)) raise @@ -35,7 +34,6 @@ def call(self, *args): logger.debug("Calling: " + " ".join(cmd)) return subprocess.check_output(cmd, timeout=neon_cli_timeout, universal_newlines=True) except subprocess.CalledProcessError as err: - import sys logger.debug("ERR: neon-cli error {}".format(err)) raise @@ -46,7 +44,6 @@ def version(self): logger.debug("Calling: " + " ".join(cmd)) return subprocess.check_output(cmd, timeout=neon_cli_timeout, universal_newlines=True).split()[1] except subprocess.CalledProcessError as err: - import sys logger.debug("ERR: neon-cli error {}".format(err)) raise