Add new endpoint /chronik-info to check the version of the currently running chronik-client server
Details
- Reviewers
PiRK Fabien - Group Reviewers
Restricted Project - Commits
- rABC423262c39829: [chronik] Add new endpoint to check chronik version
cmake .. -GNinja -DBUILD_BITCOIN_CHRONIK=ON
ninja check-functional
Diff Detail
- Repository
- rABC Bitcoin ABC
- Lint
Lint Not Applicable - Unit
Tests Not Applicable
Event Timeline
need to set up the unit test so it doesn't need to be manually changed every time the version changes
Failed tests logs:
====== Bitcoin ABC functional tests: chronik_chronik_info.py ======
------- Stdout: -------
2023-10-26T21:48:25.153000Z TestFramework (INFO): Initializing test directory /work/abc-ci-builds/build-chronik/test/tmp/test_runner_₿₵_ _20231026_214357/chronik_chronik_info_238
2023-10-26T21:48:25.458000Z TestFramework (ERROR): Unexpected exception caught during testing
Traceback (most recent call last):
File "/work/test/functional/test_framework/test_framework.py", line 142, in main
self.run_test()
File "/work/test/functional/chronik_chronik_info.py", line 29, in run_test
chronik.chronik_info().ok(),
AttributeError: 'ChronikClient' object has no attribute 'chronik_info'
2023-10-26T21:48:25.508000Z TestFramework (INFO): Stopping nodes
2023-10-26T21:48:25.660000Z TestFramework (WARNING): Not cleaning up dir /work/abc-ci-builds/build-chronik/test/tmp/test_runner_₿₵_ _20231026_214357/chronik_chronik_info_238
2023-10-26T21:48:25.660000Z TestFramework (ERROR): Test failed. Test logging available at /work/abc-ci-builds/build-chronik/test/tmp/test_runner_₿₵_ _20231026_214357/chronik_chronik_info_238/test_framework.log
2023-10-26T21:48:25.660000Z TestFramework (ERROR):
2023-10-26T21:48:25.660000Z TestFramework (ERROR): Hint: Call /work/test/functional/combine_logs.py '/work/abc-ci-builds/build-chronik/test/tmp/test_runner_₿₵_ _20231026_214357/chronik_chronik_info_238' to consolidate all logs
2023-10-26T21:48:25.660000Z TestFramework (ERROR):
2023-10-26T21:48:25.660000Z TestFramework (ERROR): If this failure happened unexpectedly or intermittently, please file a bug and provide a link or upload of the combined log.
2023-10-26T21:48:25.660000Z TestFramework (ERROR): https://github.com/Bitcoin-ABC/bitcoin-abc/issues
2023-10-26T21:48:25.660000Z TestFramework (ERROR):Each failure log is accessible here:
Bitcoin ABC functional tests: chronik_chronik_info.py
Failed tests logs:
====== Bitcoin ABC functional tests: chronik_chronik_info.py ======
------- Stdout: -------
2023-10-26T21:50:49.555000Z TestFramework (INFO): Initializing test directory /work/abc-ci-builds/build-chronik/test/tmp/test_runner_₿₵_ _20231026_214614/chronik_chronik_info_238
2023-10-26T21:50:49.847000Z TestFramework (ERROR): Unexpected exception caught during testing
Traceback (most recent call last):
File "/work/test/functional/test_framework/test_framework.py", line 142, in main
self.run_test()
File "/work/test/functional/chronik_chronik_info.py", line 29, in run_test
chronik.chronik_info().ok(),
AttributeError: 'ChronikClient' object has no attribute 'chronik_info'
2023-10-26T21:50:49.898000Z TestFramework (INFO): Stopping nodes
2023-10-26T21:50:49.999000Z TestFramework (WARNING): Not cleaning up dir /work/abc-ci-builds/build-chronik/test/tmp/test_runner_₿₵_ _20231026_214614/chronik_chronik_info_238
2023-10-26T21:50:49.999000Z TestFramework (ERROR): Test failed. Test logging available at /work/abc-ci-builds/build-chronik/test/tmp/test_runner_₿₵_ _20231026_214614/chronik_chronik_info_238/test_framework.log
2023-10-26T21:50:49.999000Z TestFramework (ERROR):
2023-10-26T21:50:49.999000Z TestFramework (ERROR): Hint: Call /work/test/functional/combine_logs.py '/work/abc-ci-builds/build-chronik/test/tmp/test_runner_₿₵_ _20231026_214614/chronik_chronik_info_238' to consolidate all logs
2023-10-26T21:50:49.999000Z TestFramework (ERROR):
2023-10-26T21:50:49.999000Z TestFramework (ERROR): If this failure happened unexpectedly or intermittently, please file a bug and provide a link or upload of the combined log.
2023-10-26T21:50:49.999000Z TestFramework (ERROR): https://github.com/Bitcoin-ABC/bitcoin-abc/issues
2023-10-26T21:50:49.999000Z TestFramework (ERROR):Each failure log is accessible here:
Bitcoin ABC functional tests: chronik_chronik_info.py
Failed tests logs:
====== Bitcoin ABC functional tests: chronik_chronik_info.py ======
------- Stderr: -------
Traceback (most recent call last):
File "/work/test/functional/chronik_chronik_info.py", line 15, in <module>
chronik_cargo_toml = Path('../../chronik/chronik-http/Cargo.toml').read_text()
File "/usr/lib/python3.9/pathlib.py", line 1255, in read_text
with self.open(mode='r', encoding=encoding, errors=errors) as f:
File "/usr/lib/python3.9/pathlib.py", line 1241, in open
return io.open(self, mode, buffering, encoding, errors, newline,
File "/usr/lib/python3.9/pathlib.py", line 1109, in _opener
return self._accessor.open(self, flags, mode)
FileNotFoundError: [Errno 2] No such file or directory: '../../chronik/chronik-http/Cargo.toml'Each failure log is accessible here:
Bitcoin ABC functional tests: chronik_chronik_info.py
Failed tests logs:
====== Bitcoin ABC functional tests: chronik_chronik_info.py ======
------- Stderr: -------
Traceback (most recent call last):
File "/work/test/functional/chronik_chronik_info.py", line 15, in <module>
chronik_cargo_toml = Path('../../chronik/chronik-http/Cargo.toml').read_text()
File "/usr/lib/python3.9/pathlib.py", line 1255, in read_text
with self.open(mode='r', encoding=encoding, errors=errors) as f:
File "/usr/lib/python3.9/pathlib.py", line 1241, in open
return io.open(self, mode, buffering, encoding, errors, newline,
File "/usr/lib/python3.9/pathlib.py", line 1109, in _opener
return self._accessor.open(self, flags, mode)
FileNotFoundError: [Errno 2] No such file or directory: '../../chronik/chronik-http/Cargo.toml'Each failure log is accessible here:
Bitcoin ABC functional tests: chronik_chronik_info.py
Failed tests logs:
====== Bitcoin ABC functional tests: chronik_chronik_info.py ======
------- Stderr: -------
Traceback (most recent call last):
File "/work/test/functional/chronik_chronik_info.py", line 15, in <module>
chronik_cargo_toml = Path("../../chronik/chronik-http/Cargo.toml").read_text()
File "/usr/lib/python3.9/pathlib.py", line 1255, in read_text
with self.open(mode='r', encoding=encoding, errors=errors) as f:
File "/usr/lib/python3.9/pathlib.py", line 1241, in open
return io.open(self, mode, buffering, encoding, errors, newline,
File "/usr/lib/python3.9/pathlib.py", line 1109, in _opener
return self._accessor.open(self, flags, mode)
FileNotFoundError: [Errno 2] No such file or directory: '../../chronik/chronik-http/Cargo.toml'Each failure log is accessible here:
Bitcoin ABC functional tests: chronik_chronik_info.py
Failed tests logs:
====== Bitcoin ABC functional tests: abc_p2p_compactproofs.py ======
------- Stdout: -------
2023-10-26T22:14:53.043000Z TestFramework (INFO): Initializing test directory /work/abc-ci-builds/build-diff/test/tmp/test_runner_₿₵_ _20231026_221348/abc_p2p_compactproofs_11
2023-10-26T22:14:53.539000Z TestFramework (INFO): Check we send a getavaproofs message to our avalanche outbound peers
2023-10-26T22:14:55.532000Z TestFramework (INFO): Check we send periodic getavaproofs message to some of our peers
2023-10-26T22:14:55.582000Z TestFramework (INFO): After the first avaproofs has been received, all the peers are requested periodically
2023-10-26T22:14:55.845000Z TestFramework (INFO): Empty avaproofs will not trigger any request
2023-10-26T22:14:55.846000Z TestFramework (INFO): Check we send a getavaproofs message to our manually connected peers that support avalanche
2023-10-26T22:14:57.268000Z TestFramework (INFO): Check the node responds to getavaproofs messages
2023-10-26T22:15:22.054000Z TestFramework.utils (ERROR): wait_until() failed. Predicate: ''''
def avapeer_connected():
node_list = []
try:
node_list = node.getavalanchepeerinfo(proofid_hex)[0]["node_list"]
except BaseException:
pass
return n.nodeid in node_list
'''
2023-10-26T22:15:22.616000Z TestFramework (ERROR): Assertion failed
Traceback (most recent call last):
File "/work/test/functional/test_framework/test_framework.py", line 142, in main
self.run_test()
File "/work/test/functional/abc_p2p_compactproofs.py", line 736, in run_test
self.test_respond_getavaproofs()
File "/work/test/functional/abc_p2p_compactproofs.py", line 288, in test_respond_getavaproofs
p = get_ava_p2p_interface(self, node)
File "/work/test/functional/test_framework/avatools.py", line 411, in get_ava_p2p_interface
wait_until_helper(avapeer_connected, timeout=5)
File "/work/test/functional/test_framework/util.py", line 298, in wait_until_helper
raise AssertionError(
AssertionError: Predicate ''''
def avapeer_connected():
node_list = []
try:
node_list = node.getavalanchepeerinfo(proofid_hex)[0]["node_list"]
except BaseException:
pass
return n.nodeid in node_list
''' not true after 5.0 seconds
2023-10-26T22:15:22.670000Z TestFramework (INFO): Stopping nodes
2023-10-26T22:15:29.062000Z TestFramework (WARNING): Not cleaning up dir /work/abc-ci-builds/build-diff/test/tmp/test_runner_₿₵_ _20231026_221348/abc_p2p_compactproofs_11
2023-10-26T22:15:29.062000Z TestFramework (ERROR): Test failed. Test logging available at /work/abc-ci-builds/build-diff/test/tmp/test_runner_₿₵_ _20231026_221348/abc_p2p_compactproofs_11/test_framework.log
2023-10-26T22:15:29.062000Z TestFramework (ERROR):
2023-10-26T22:15:29.062000Z TestFramework (ERROR): Hint: Call /work/test/functional/combine_logs.py '/work/abc-ci-builds/build-diff/test/tmp/test_runner_₿₵_ _20231026_221348/abc_p2p_compactproofs_11' to consolidate all logs
2023-10-26T22:15:29.062000Z TestFramework (ERROR):
2023-10-26T22:15:29.062000Z TestFramework (ERROR): If this failure happened unexpectedly or intermittently, please file a bug and provide a link or upload of the combined log.
2023-10-26T22:15:29.062000Z TestFramework (ERROR): https://github.com/Bitcoin-ABC/bitcoin-abc/issues
2023-10-26T22:15:29.063000Z TestFramework (ERROR):
====== Bitcoin ABC functional tests: chronik_chronik_info.py ======
------- Stderr: -------
Traceback (most recent call last):
File "/work/test/functional/chronik_chronik_info.py", line 15, in <module>
chronik_cargo_toml = Path('../../chronik/chronik-http/Cargo.toml').read_text()
File "/usr/lib/python3.9/pathlib.py", line 1255, in read_text
with self.open(mode='r', encoding=encoding, errors=errors) as f:
File "/usr/lib/python3.9/pathlib.py", line 1241, in open
return io.open(self, mode, buffering, encoding, errors, newline,
File "/usr/lib/python3.9/pathlib.py", line 1109, in _opener
return self._accessor.open(self, flags, mode)
FileNotFoundError: [Errno 2] No such file or directory: '../../chronik/chronik-http/Cargo.toml'
====== Bitcoin ABC functional tests with the next upgrade activated: chronik_chronik_info.py ======
------- Stderr: -------
Traceback (most recent call last):
File "/work/test/functional/chronik_chronik_info.py", line 15, in <module>
chronik_cargo_toml = Path('../../chronik/chronik-http/Cargo.toml').read_text()
File "/usr/lib/python3.9/pathlib.py", line 1255, in read_text
with self.open(mode='r', encoding=encoding, errors=errors) as f:
File "/usr/lib/python3.9/pathlib.py", line 1241, in open
return io.open(self, mode, buffering, encoding, errors, newline,
File "/usr/lib/python3.9/pathlib.py", line 1109, in _opener
return self._accessor.open(self, flags, mode)
FileNotFoundError: [Errno 2] No such file or directory: '../../chronik/chronik-http/Cargo.toml'Each failure log is accessible here:
Bitcoin ABC functional tests: abc_p2p_compactproofs.py
Bitcoin ABC functional tests: chronik_chronik_info.py
Bitcoin ABC functional tests with the next upgrade activated: chronik_chronik_info.py
Failed tests logs:
====== Bitcoin ABC functional tests: chronik_chronik_info.py ======
------- Stderr: -------
Traceback (most recent call last):
File "/work/test/functional/chronik_chronik_info.py", line 15, in <module>
chronik_cargo_toml = Path('../../chronik/chronik-http/Cargo.toml').read_text()
File "/usr/lib/python3.9/pathlib.py", line 1255, in read_text
with self.open(mode='r', encoding=encoding, errors=errors) as f:
File "/usr/lib/python3.9/pathlib.py", line 1241, in open
return io.open(self, mode, buffering, encoding, errors, newline,
File "/usr/lib/python3.9/pathlib.py", line 1109, in _opener
return self._accessor.open(self, flags, mode)
FileNotFoundError: [Errno 2] No such file or directory: '../../chronik/chronik-http/Cargo.toml'Each failure log is accessible here:
Bitcoin ABC functional tests: chronik_chronik_info.py
Failed tests logs:
====== Bitcoin ABC functional tests: chronik_chronik_info.py ======
------- Stderr: -------
Traceback (most recent call last):
File "/work/test/functional/chronik_chronik_info.py", line 15, in <module>
chronik_cargo_toml = Path("../../chronik/chronik-http/Cargo.toml").read_text()
File "/usr/lib/python3.9/pathlib.py", line 1255, in read_text
with self.open(mode='r', encoding=encoding, errors=errors) as f:
File "/usr/lib/python3.9/pathlib.py", line 1241, in open
return io.open(self, mode, buffering, encoding, errors, newline,
File "/usr/lib/python3.9/pathlib.py", line 1109, in _opener
return self._accessor.open(self, flags, mode)
FileNotFoundError: [Errno 2] No such file or directory: '../../chronik/chronik-http/Cargo.toml'Each failure log is accessible here:
Bitcoin ABC functional tests: chronik_chronik_info.py
Failed tests logs:
====== Bitcoin ABC functional tests: chronik_chronik_info.py ======
------- Stderr: -------
Traceback (most recent call last):
File "/work/test/functional/chronik_chronik_info.py", line 15, in <module>
chronik_cargo_toml = Path("../../chronik/chronik-http/Cargo.toml").read_text()
File "/usr/lib/python3.9/pathlib.py", line 1255, in read_text
with self.open(mode='r', encoding=encoding, errors=errors) as f:
File "/usr/lib/python3.9/pathlib.py", line 1241, in open
return io.open(self, mode, buffering, encoding, errors, newline,
File "/usr/lib/python3.9/pathlib.py", line 1109, in _opener
return self._accessor.open(self, flags, mode)
FileNotFoundError: [Errno 2] No such file or directory: '../../chronik/chronik-http/Cargo.toml'Each failure log is accessible here:
Bitcoin ABC functional tests: chronik_chronik_info.py
Failed tests logs:
====== Bitcoin ABC functional tests: chronik_chronik_info.py ======
------- Stderr: -------
Traceback (most recent call last):
File "/work/test/functional/chronik_chronik_info.py", line 15, in <module>
chronik_cargo_toml = Path("../../chronik/chronik-http/Cargo.toml").read_text()
File "/usr/lib/python3.9/pathlib.py", line 1255, in read_text
with self.open(mode='r', encoding=encoding, errors=errors) as f:
File "/usr/lib/python3.9/pathlib.py", line 1241, in open
return io.open(self, mode, buffering, encoding, errors, newline,
File "/usr/lib/python3.9/pathlib.py", line 1109, in _opener
return self._accessor.open(self, flags, mode)
FileNotFoundError: [Errno 2] No such file or directory: '../../chronik/chronik-http/Cargo.toml'
====== Bitcoin ABC functional tests with the next upgrade activated: chronik_chronik_info.py ======
------- Stderr: -------
Traceback (most recent call last):
File "/work/test/functional/chronik_chronik_info.py", line 15, in <module>
chronik_cargo_toml = Path("../../chronik/chronik-http/Cargo.toml").read_text()
File "/usr/lib/python3.9/pathlib.py", line 1255, in read_text
with self.open(mode='r', encoding=encoding, errors=errors) as f:
File "/usr/lib/python3.9/pathlib.py", line 1241, in open
return io.open(self, mode, buffering, encoding, errors, newline,
File "/usr/lib/python3.9/pathlib.py", line 1109, in _opener
return self._accessor.open(self, flags, mode)
FileNotFoundError: [Errno 2] No such file or directory: '../../chronik/chronik-http/Cargo.toml'Each failure log is accessible here:
Bitcoin ABC functional tests: chronik_chronik_info.py
Bitcoin ABC functional tests with the next upgrade activated: chronik_chronik_info.py
| test/functional/chronik_chronik_info.py | ||
|---|---|---|
| 16 ↗ | (On Diff #42830) | This won't work when running the tests outside a git repository (source distribution...) |
| 18 ↗ | (On Diff #42830) | an OS agnostic solution in case we someday want to make the tests work on windows |
| test/functional/chronik_chronik_info.py | ||
|---|---|---|
| 24 ↗ | (On Diff #42837) | Make it a function that returns the version instead so there is no global var/code |