fix a few bugs with app del uninstall and deletion

This commit is contained in:
Maarten de Waard 2022-09-28 14:46:49 +02:00
parent 2e55e2fa39
commit 82478e5006
No known key found for this signature in database
GPG key ID: 1D3E893A657CC8DA
3 changed files with 18 additions and 6 deletions

View file

@ -3,3 +3,8 @@
# List of plugins (as comma separated values of python module names) to load, # List of plugins (as comma separated values of python module names) to load,
# usually to register additional checkers. # usually to register additional checkers.
load-plugins=pylint_flask,pylint_flask_sqlalchemy load-plugins=pylint_flask,pylint_flask_sqlalchemy
# List of class names for which member attributes should not be checked (useful
# for classes with dynamically set attributes). This supports the use of
# qualified names.
ignored-classes=optparse.Values,thread._local,_thread._local,argparse.Namespace,scoped_session

View file

@ -51,7 +51,8 @@ class App(db.Model):
""" """
# Delete all roles first # Delete all roles first
for role in self.roles: for role in self.roles:
role.delete() db.session.delete(role)
db.session.commit()
db.session.delete(self) db.session.delete(self)
return db.session.commit() return db.session.commit()
@ -166,6 +167,7 @@ class AppStatus(): # pylint: disable=too-few-public-methods
self.installed = False self.installed = False
self.ready = False self.ready = False
self.message = "Not installed" self.message = "Not installed"
return
for helmrelease in helmreleases: for helmrelease in helmreleases:
hr_status = helmrelease['status'] hr_status = helmrelease['status']

View file

@ -98,9 +98,14 @@ def delete_app(slug):
current_app.logger.info("Not found") current_app.logger.info("Not found")
return return
app_status = app_obj.get_status()
if not app_status.installed:
deleted = app_obj.delete() deleted = app_obj.delete()
current_app.logger.info(f"Success: {deleted}") current_app.logger.info(f"Success.")
return else:
current_app.logger.info("Can not delete installed application, run"
" 'uninstall' first")
@app_cli.command( @app_cli.command(
"uninstall", "uninstall",
@ -110,7 +115,7 @@ def uninstall_app(slug):
"""Uninstalls the app from the cluster """Uninstalls the app from the cluster
:param slug: str Slug of app to remove :param slug: str Slug of app to remove
""" """
current_app.logger.info(f"Trying to delete app: {slug}") current_app.logger.info(f"Trying to uninstall app: {slug}")
app_obj = App.query.filter_by(slug=slug).first() app_obj = App.query.filter_by(slug=slug).first()
if not app_obj: if not app_obj:
@ -152,7 +157,7 @@ def install_app(slug):
return return
current_status = app.get_status() current_status = app.get_status()
if current_status.installed == False: if not current_status.installed:
app.install() app.install()
current_app.logger.info( current_app.logger.info(
f"App {slug} installing... use `status` to see status") f"App {slug} installing... use `status` to see status")