mirror of
https://github.com/jupyterhub/jupyterhub.git
synced 2025-10-12 04:23:01 +00:00
Sync with master
This commit is contained in:
@@ -252,6 +252,35 @@ class User:
|
||||
await self.save_auth_state(auth_state)
|
||||
return auth_state
|
||||
|
||||
async def delete_spawners(self):
|
||||
"""Call spawner cleanup methods
|
||||
|
||||
Allows the spawner to cleanup persistent resources
|
||||
"""
|
||||
for name in self.orm_user.orm_spawners.keys():
|
||||
await self._delete_spawner(name)
|
||||
|
||||
async def _delete_spawner(self, name_or_spawner):
|
||||
"""Delete a single spawner"""
|
||||
# always ensure full Spawner
|
||||
# this may instantiate the Spawner if it wasn't already running,
|
||||
# just to delete it
|
||||
if isinstance(name_or_spawner, str):
|
||||
spawner = self.spawners[name_or_spawner]
|
||||
else:
|
||||
spawner = name_or_spawner
|
||||
|
||||
if spawner.active:
|
||||
raise RuntimeError(
|
||||
f"Spawner {spawner._log_name} is active and cannot be deleted."
|
||||
)
|
||||
try:
|
||||
await maybe_future(spawner.delete_forever())
|
||||
except Exception as e:
|
||||
self.log.exception(
|
||||
f"Error cleaning up persistent resources on {spawner._log_name}"
|
||||
)
|
||||
|
||||
def all_spawners(self, include_default=True):
|
||||
"""Generator yielding all my spawners
|
||||
|
||||
@@ -810,14 +839,8 @@ class User:
|
||||
if orm_token:
|
||||
self.db.delete(orm_token)
|
||||
# remove oauth client as well
|
||||
# handle upgrades from 0.8, where client id will be `user-USERNAME`,
|
||||
# not just `jupyterhub-user-USERNAME`
|
||||
client_ids = (
|
||||
spawner.oauth_client_id,
|
||||
spawner.oauth_client_id.split('-', 1)[1],
|
||||
)
|
||||
for oauth_client in self.db.query(orm.OAuthClient).filter(
|
||||
orm.OAuthClient.identifier.in_(client_ids)
|
||||
for oauth_client in self.db.query(orm.OAuthClient).filter_by(
|
||||
identifier=spawner.oauth_client_id,
|
||||
):
|
||||
self.log.debug("Deleting oauth client %s", oauth_client.identifier)
|
||||
self.db.delete(oauth_client)
|
||||
|
Reference in New Issue
Block a user