id, input['name'], deploymentManagerId, input['description'],\r
input['descriptorId'], input['parentDeploymentId'])\r
uow.nfdeployments.add(entity)\r
- entity.transit_state(NfDeploymentState.NotInstalled)\r
+ # entity.transit_state(NfDeploymentState.NotInstalled)\r
\r
# to be refactor later according to O2 DMS API design\r
entity.transit_state(NfDeploymentState.Installing)\r
uow = bus.uow\r
with uow:\r
entity: NfDeployment = uow.nfdeployments.get(nfdeploymentid)\r
- if entity.status == NfDeploymentState.Installed:\r
+ if not entity:\r
+ pass\r
+ elif entity.status == NfDeploymentState.Initial:\r
+ bus.uow.nfdeployments.delete(nfdeploymentid)\r
+ # elif entity.status == NfDeploymentState.NotInstalled:\r
+ # bus.uow.nfdeployments.delete(nfdeploymentid)\r
+ elif entity.status == NfDeploymentState.Installing:\r
+ entity.transit_state(NfDeploymentState.Uninstalling)\r
+ elif entity.status == NfDeploymentState.Installed:\r
+ entity.transit_state(NfDeploymentState.Uninstalling)\r
+ elif entity.status == NfDeploymentState.Updating:\r
entity.transit_state(NfDeploymentState.Uninstalling)\r
+ elif entity.status == NfDeploymentState.Uninstalling:\r
+ pass\r
elif entity.status == NfDeploymentState.Abnormal:\r
bus.uow.nfdeployments.delete(nfdeploymentid)\r
else:\r
# "NfDeployment {} is not in status to delete".format(\r
# nfdeploymentid))\r
# uow.nfdeployments.delete(nfdeploymentid)\r
-# entity.transit_state(NfDeploymentState.Deleted)\r
+# entity.transit_state(NfDeploymentState.Deleting)\r
# uow.commit()\r
# return True\r
\r
# limitations under the License.\r
\r
from __future__ import annotations\r
+# from os import stat\r
from o2dms.domain import events\r
from o2dms.domain.states import NfDeploymentState\r
\r
def transit_state(self, state: NfDeploymentState):\r
if (self.status != state):\r
self._append_event(self.status, state)\r
+ # self.status = state\r
+\r
+ def set_state(self, state: NfDeploymentState):\r
+ if (self.status != state):\r
self.status = state\r
\r
def _append_event(self, fromState, toState):\r
uow: AbstractUnitOfWork
):
if cmd.FromState == NfDeploymentState.Initial:
- if cmd.ToState == NfDeploymentState.NotInstalled:
+ if cmd.ToState == NfDeploymentState.Installing:
cmd2 = commands.InstallNfDeployment(cmd.NfDeploymentId)
install_nfdeployment(cmd2, uow)
else:
logger.debug("Not insterested state change: {}".format(cmd))
- elif cmd.FromState == NfDeploymentState.Installed:
+ elif cmd.FromState == NfDeploymentState.Installed \
+ or cmd.FromState == NfDeploymentState.Installing \
+ or cmd.FromState == NfDeploymentState.Updating \
+ or cmd.FromState == NfDeploymentState.Abnormal:
+
if cmd.ToState == NfDeploymentState.Uninstalling:
cmd2 = commands.UninstallNfDeployment(cmd.NfDeploymentId)
uninstall_nfdeployment(cmd2, uow)
else:
logger.debug("Not insterested state change: {}".format(cmd))
- elif cmd.FromState == NfDeploymentState.NotInstalled:
- if cmd.ToState == NfDeploymentState.Initial:
+ elif cmd.FromState == NfDeploymentState.Initial \
+ or cmd.FromState == NfDeploymentState.Abnormal:
+
+ if cmd.ToState == NfDeploymentState.Deleting:
+ cmd2 = commands.UninstallNfDeployment(cmd.NfDeploymentId)
+ uninstall_nfdeployment(cmd2, uow)
cmd2 = commands.DeleteNfDeployment(cmd.NfDeploymentId)
delete_nfdeployment(cmd2, uow)
else:
nfdeployment.descriptorId, nfdeployment.id
))
+ nfdeployment.set_state(NfDeploymentState.Installing)
+
# helm repo add
repourl = desc.artifactRepoUrl
helm = Helm(logger, LOCAL_HELM_BIN, environment_variables={})
# in case success
with uow:
entity: NfDeployment = uow.nfdeployments.get(cmd.NfDeploymentId)
- entity.transit_state(NfDeploymentState.Installed)
+ if entity:
+ entity.set_state(NfDeploymentState.Installed)
+ entity.transit_state(NfDeploymentState.Installed)
uow.commit()
nfdeployment.descriptorId, nfdeployment.id
))
+ nfdeployment.set_state(NfDeploymentState.Uninstalling)
helm = Helm(logger, LOCAL_HELM_BIN, environment_variables={})
logger.debug('Try to helm del {}'.format(
with uow:
entity: NfDeployment = uow.nfdeployments.get(cmd.NfDeploymentId)
- entity.transit_state(NfDeploymentState.Initial)
+ if entity:
+ entity.transit_state(NfDeploymentState.Initial)
# uow.nfdeployments.update(
# cmd.NfDeploymentId, status=NfDeploymentState.Initial)
uow.commit()