diff --git a/areas/apps/models.py b/areas/apps/models.py index 9cc24848b534564c783bb14bed63fc4ca89b0922..083bcbd41f7d9b893837822f1712fedb945b94be 100644 --- a/areas/apps/models.py +++ b/areas/apps/models.py @@ -25,7 +25,7 @@ class App(db.Model): id = db.Column(Integer, primary_key=True) name = db.Column(String(length=64)) slug = db.Column(String(length=64), unique=True) - external = db.Column(Boolean, unique=False, nullable=False, default=True, server_default='0') + external = db.Column(Boolean, unique=False, nullable=False, server_default='0') # The URL is only stored in the DB for external applications; otherwise the # URL is stored in a configmap (see get_url) url = db.Column(String(length=128), unique=False) @@ -229,6 +229,12 @@ class AppStatus(): # pylint: disable=too-few-public-methods :type app: App """ def __init__(self, app): + if app.external: + self.installed = True + self.ready = True + self.message = "App is external" + return + kustomization = app.kustomization if kustomization is not None and "status" in kustomization: ks_ready, ks_message = AppStatus.check_condition(kustomization['status']) diff --git a/cliapp/cliapp/cli.py b/cliapp/cliapp/cli.py index 8b14840598b34b1511c196d1cb7b916da3a24f41..3355dc6ae643b858188244b020359ee769ed9ef6 100644 --- a/cliapp/cliapp/cli.py +++ b/cliapp/cliapp/cli.py @@ -105,12 +105,13 @@ def delete_app(slug): return app_status = app_obj.get_status() - if not app_status.installed: - app_obj.delete() - current_app.logger.info("Success.") - else: + if app_status.installed and not app_obj.external: current_app.logger.info("Can not delete installed application, run" " 'uninstall' first") + return + + app_obj.delete() + current_app.logger.info("Success.") @app_cli.command(