X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=o2ims%2Fservice%2Fauditor%2Focloud_handler.py;h=388013fbdb3c5ea73dd27bffd53ff991bfcae75d;hb=5c06a061d32abdfefcc2c2d562a444db030f3135;hp=9dd4f0e4ffdedecc16ea21b3787f668e8c03659d;hpb=62f8863960ebd439c714b0ceed204731d9b31266;p=pti%2Fo2.git diff --git a/o2ims/service/auditor/ocloud_handler.py b/o2ims/service/auditor/ocloud_handler.py index 9dd4f0e..388013f 100644 --- a/o2ims/service/auditor/ocloud_handler.py +++ b/o2ims/service/auditor/ocloud_handler.py @@ -14,17 +14,20 @@ # pylint: disable=unused-argument from __future__ import annotations +# from typing import Callable -from o2ims.domain.stx_object import StxGenericModel # from dataclasses import asdict # from typing import List, Dict, Callable, Type # TYPE_CHECKING -from o2ims.domain import commands -from o2ims.service.unit_of_work import AbstractUnitOfWork -from o2ims.domain.resource_type import InvalidOcloudState -from o2ims.domain.resource_type import MismatchedModel + +from o2common.config import config, conf +# from o2common.service.messagebus import MessageBus +from o2common.service.unit_of_work import AbstractUnitOfWork +from o2ims.domain import events, commands from o2ims.domain.ocloud import Ocloud -from o2ims import config +from o2ims.domain.stx_object import StxGenericModel +from o2ims.domain.resource_type import InvalidOcloudState, MismatchedModel +from o2ims.domain.subscription_obj import NotificationEventEnum # if TYPE_CHECKING: # from . import unit_of_work @@ -43,9 +46,9 @@ def update_ocloud( stxobj = cmd.data with uow: oclouds = uow.oclouds.list() - if oclouds and len(oclouds) > 1: + if oclouds and oclouds.count() > 1: raise InvalidOcloudState("More than 1 ocloud is found") - elif not oclouds or len(oclouds) == 0: + elif not oclouds or oclouds.count() == 0: logger.info("add ocloud:" + stxobj.name + " update_at: " + str(stxobj.updatetime) + " id: " + str(stxobj.id) @@ -56,7 +59,7 @@ def update_ocloud( logger.info("Add the ocloud: " + stxobj.id + ", name: " + stxobj.name) else: - localmodel = oclouds.pop() + localmodel = oclouds.first() if is_outdated(localmodel, stxobj): logger.info("update ocloud:" + stxobj.name + " update_at: " + str(stxobj.updatetime) @@ -78,14 +81,19 @@ def is_outdated(ocloud: Ocloud, stxobj: StxGenericModel): def create_by(stxobj: StxGenericModel) -> Ocloud: - imsendpoint = config.get_api_url() + config.get_o2ims_api_base() - globalcloudId = stxobj.id # to be updated + imsendpoint = config.get_api_url() + globalcloudId = conf.DEFAULT.ocloud_global_id description = "An ocloud" ocloud = Ocloud(stxobj.id, stxobj.name, imsendpoint, globalcloudId, description, 1) ocloud.createtime = stxobj.createtime ocloud.updatetime = stxobj.updatetime ocloud.hash = stxobj.hash + ocloud.events.append(events.OcloudChanged( + id=stxobj.id, + notificationEventType=NotificationEventEnum.CREATE, + updatetime=stxobj.updatetime + )) return ocloud @@ -99,3 +107,8 @@ def update_by(ocloud: Ocloud, stxobj: StxGenericModel) -> None: # ocloud.content = stxobj.content ocloud.hash = stxobj.hash ocloud.version_number = ocloud.version_number + 1 + ocloud.events.append(events.OcloudChanged( + id=stxobj.id, + notificationEventType=NotificationEventEnum.MODIFY, + updatetime=stxobj.updatetime + ))