from o2dms.domain import commands
from typing import Callable
+from o2dms.domain.exceptions import NfdeploymentNotFoundError
from o2dms.domain import events
from o2common.service.unit_of_work import AbstractUnitOfWork
from helm_sdk import Helm
or cmd.FromState == NfDeploymentState.Abnormal:
if cmd.ToState == NfDeploymentState.Deleting:
- cmd2 = commands.UninstallNfDeployment(cmd.NfDeploymentId)
- uninstall_nfdeployment(cmd2, uow)
+ # cmd2 = commands.UninstallNfDeployment(cmd.NfDeploymentId)
+ # uninstall_nfdeployment(cmd2, uow)
cmd2 = commands.DeleteNfDeployment(cmd.NfDeploymentId)
delete_nfdeployment(cmd2, uow)
else:
# retry 10 seconds
-@retry(tries=20, max_delay=10000)
+@retry(
+ (NfdeploymentNotFoundError),
+ tries=100,
+ delay=2, max_delay=10000, backoff=1)
def _retry_get_nfdeployment(
cmd: commands.InstallNfDeployment,
uow: AbstractUnitOfWork):
nfdeployment: NfDeployment = uow.nfdeployments.get(
cmd.NfDeploymentId)
if nfdeployment is None:
- raise Exception("Cannot find NfDeployment: {}".format(
- cmd.NfDeploymentId))
+ raise NfdeploymentNotFoundError(
+ "Cannot find NfDeployment: {}".format(
+ cmd.NfDeploymentId))
return nfdeployment
nfdeployment.descriptorId, nfdeployment.id
))
- nfdeployment.set_state(NfDeploymentState.Uninstalling)
+ with uow:
+ entity: NfDeployment = uow.nfdeployments.get(cmd.NfDeploymentId)
+ if entity:
+ entity.set_state(NfDeploymentState.Uninstalling)
+ uow.commit()
+
helm = Helm(logger, LOCAL_HELM_BIN, environment_variables={})
logger.debug('Try to helm del {}'.format(
with uow:
entity: NfDeployment = uow.nfdeployments.get(cmd.NfDeploymentId)
if entity:
- entity.transit_state(NfDeploymentState.Initial)
+ entity.set_state(NfDeploymentState.Initial)
+ entity.transit_state(NfDeploymentState.Deleting)
# uow.nfdeployments.update(
# cmd.NfDeploymentId, status=NfDeploymentState.Initial)
uow.commit()