diff --git a/electron/install.js b/electron/install.js index 1d32a235..158918c4 100644 --- a/electron/install.js +++ b/electron/install.js @@ -16,7 +16,7 @@ const { BrewScript } = require('./scripts'); * - use "" (nothing as a suffix) for latest release candidate, for example "0.1.0rc26" * - use "alpha" for alpha release, for example "0.1.0rc26-alpha" */ -const OlasMiddlewareVersion = '0.1.0rc47'; +const OlasMiddlewareVersion = '0.1.0rc50'; const OperateDirectory = `${os.homedir()}/.operate`; const VenvDir = `${OperateDirectory}/venv`; const TempDir = `${OperateDirectory}/temp`; diff --git a/operate/cli.py b/operate/cli.py index 821fa88a..64a7bfd2 100644 --- a/operate/cli.py +++ b/operate/cli.py @@ -42,7 +42,7 @@ from operate.account.user import UserAccount from operate.constants import KEY, KEYS, OPERATE, SERVICES from operate.ledger import get_ledger_type_from_chain_type -from operate.types import ChainType +from operate.types import ChainType, DeploymentStatus from operate.wallet.master import MasterWalletManager @@ -179,6 +179,25 @@ def cancel_funding_job(service: str) -> None: if not status: logger.info(f"Funding job cancellation for {service} failed") + def pause_all_services_on_startup(): + logger.info(f"stopping services on startup") + services = [i["hash"] for i in operate.service_manager().json] + + for service in services: + if not operate.service_manager().exists(service=service): + continue + deployment = operate.service_manager().create_or_load(service).deployment + if deployment.status == DeploymentStatus.DELETED: + continue + logger.info(f"stopping service {service}") + deployment.stop(force=True) + logger.info(f"Cancelling funding job for {service}") + cancel_funding_job(service=service) + logger.info(f"stopping services on startup: done") + + # on backend app started we assume there are now started agents, so we force to pause all + pause_all_services_on_startup() + app = FastAPI() app.add_middleware( diff --git a/operate/services/service.py b/operate/services/service.py index 1f03d93a..2f05c6d9 100644 --- a/operate/services/service.py +++ b/operate/services/service.py @@ -822,9 +822,9 @@ def start(self, use_docker: bool = False) -> None: self.status = DeploymentStatus.DEPLOYED self.store() - def stop(self, use_docker: bool = False) -> None: + def stop(self, use_docker: bool = False, force: bool=False) -> None: """Stop the deployment.""" - if self.status != DeploymentStatus.DEPLOYED: + if self.status != DeploymentStatus.DEPLOYED and not force: return self.status = DeploymentStatus.STOPPING diff --git a/package.json b/package.json index 3cb35748..7a22390d 100644 --- a/package.json +++ b/package.json @@ -3,7 +3,7 @@ "main": "electron/main.js", "name": "olas-operate-app", "productName": "Pearl", - "version": "0.1.0-rc47", + "version": "0.1.0-rc50", "dependencies": { "@ant-design/cssinjs": "^1.18.4", "@ant-design/icons": "^5.3.0", diff --git a/pyproject.toml b/pyproject.toml index 9473b857..b4c266b8 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [tool.poetry] name = "olas-operate-middleware" -version = "0.1.0-rc47" +version = "0.1.0-rc50" description = "" authors = ["David Vilela ", "Viraj Patel "] readme = "README.md"