Closed jhesketh closed 1 year ago
This pull request can no longer be automatically merged: a rebase is needed and changes have to be manually resolved
This has been reworked with the latest large refactor(s).
You can set an SSL cert by POST'ing to /api/local/ssl a json blob such as
{
"use_ssl": true,
"key_contents": "XYZ",
"cert_contents": "ABC"
}
Obviously future improvements will be to auto-generate self-signed or allow lets-encrypt etc.
Found a bug when the node is not deployed and shutdown is forced.
node1:/srv/aquarium # ./tools/run_aquarium.sh --debug
INFO: 2022-01-18 07:32:25 -- aquarium -- Aquarium startup!
DEBUG: 2022-01-18 07:32:25 -- config -- Aquarium config dir: /etc/aquarium
DEBUG: 2022-01-18 07:32:25 -- selector_events -- Using selector: EpollSelector
DEBUG: 2022-01-18 07:32:25 -- aquarium -- Starting main Aquarium task.
DEBUG: 2022-01-18 07:32:25 -- mgr -- Starting main task.
DEBUG: 2022-01-18 07:32:25 -- mgr -- Checking deployment state
DEBUG: 2022-01-18 07:32:25 -- utils -- run ['lvm', 'lvs', '--noheadings', '-o', 'vg_name,lv_name', '@aquarium']: retcode = 0
INFO: 2022-01-18 07:32:25 -- mgr -- System Disk not found, assuming fresh node.
DEBUG: 2022-01-18 07:32:25 -- kv -- Starting cluster connection thread
DEBUG: 2022-01-18 07:32:25 -- aquarium -- Starting uvicorn
DEBUG: 2022-01-18 07:32:25 -- aquarium -- Waiting for node to be installed.
INFO: 2022-01-18 07:32:25 -- kv -- Can't get cluster handle: '[errno 2] RADOS object not found (error calling conf_read_file)' - will keep retrying
DEBUG: 2022-01-18 07:32:25 -- kv -- Cluster connection thread sleeping for 10 seconds
INFO: Started server process [3692]
INFO: 2022-01-18 07:32:25 -- server -- Started server process [3692]
INFO: Waiting for application startup.
INFO: 2022-01-18 07:32:25 -- on -- Waiting for application startup.
INFO: Application startup complete.
INFO: 2022-01-18 07:32:25 -- on -- Application startup complete.
INFO: Uvicorn running on http://0.0.0.0:80 (Press CTRL+C to quit)
INFO: 2022-01-18 07:32:25 -- server -- Uvicorn running on http://0.0.0.0:80 (Press CTRL+C to quit)
^CDEBUG: 2022-01-18 07:32:26 -- mgr -- Checking deployment state
DEBUG: 2022-01-18 07:32:26 -- aquarium -- Stopping uvicorn
INFO: Shutting down
INFO: 2022-01-18 07:32:26 -- server -- Shutting down
INFO: Waiting for application shutdown.
INFO: 2022-01-18 07:32:26 -- on -- Waiting for application shutdown.
INFO: Application shutdown complete.
INFO: 2022-01-18 07:32:26 -- on -- Application shutdown complete.
INFO: Finished server process [3692]
INFO: 2022-01-18 07:32:26 -- server -- Finished server process [3692]
INFO: 2022-01-18 07:32:26 -- aquarium -- Aquarium shutdown!
INFO: 2022-01-18 07:32:26 -- aquarium -- shutting down gstate
INFO: 2022-01-18 07:32:26 -- gstate -- shutdown!
DEBUG: 2022-01-18 07:32:26 -- kv -- Shutting down cluster connection
DEBUG: 2022-01-18 07:32:26 -- kv -- Cluster connection is shut down
Traceback (most recent call last):
File "./aquarium.py", line 344, in <module>
main()
File "./aquarium.py", line 339, in main
asyncio.run(aqr.run())
File "/usr/lib64/python3.8/asyncio/runners.py", line 44, in run
return loop.run_until_complete(main)
File "/usr/lib64/python3.8/asyncio/base_events.py", line 616, in run_until_complete
return future.result()
File "./aquarium.py", line 180, in run
await self.shutdown()
File "./aquarium.py", line 285, in shutdown
await self.gstate.shutdown()
File "/srv/aquarium/src/gravel/controllers/gstate.py", line 201, in shutdown
await self.tick_task
AttributeError: 'GlobalState' object has no attribute 'tick_task'
Can be fixed by:
--- a/src/gravel/controllers/gstate.py (revision 3319080e55ea440a316c753aeac90408ab939522)
+++ b/src/gravel/controllers/gstate.py (date 1642491153943)
@@ -198,7 +198,8 @@
self._is_shutting_down = True
await self._kvstore.close()
logger.info("shutdown!")
- await self.tick_task
+ if hasattr(self, 'tick_task'):
+ await self.tick_task
async def tick(self) -> None:
while not self._is_shutting_down:
@votdev good catches, thanks for that :+1:
This won't work due to the large patchset that just merged. I'll rebase this shortly but looking for first feedback.