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
if cmd.ToState == NfDeploymentState.Installing:
cmd2 = commands.InstallNfDeployment(cmd.NfDeploymentId)
install_nfdeployment(cmd2, uow)
+ elif cmd.ToState == NfDeploymentState.Deleting:
+ cmd2 = commands.DeleteNfDeployment(cmd.NfDeploymentId)
+ delete_nfdeployment(cmd2, uow)
else:
logger.debug("Not insterested state change: {}".format(cmd))
elif cmd.FromState == NfDeploymentState.Installed \
uninstall_nfdeployment(cmd2, uow)
else:
logger.debug("Not insterested state change: {}".format(cmd))
- elif cmd.FromState == NfDeploymentState.Initial \
- or cmd.FromState == NfDeploymentState.Abnormal:
-
+ elif 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()