X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=o2ims%2Fdomain%2Fstx_object.py;fp=o2ims%2Fdomain%2Fstx_object.py;h=36ce34976f27b93fd85d19fc8bad815db34333cd;hb=8be81dfad35b08c4de77168e885bb18253069771;hp=09d1a16cc0017b999ba632e6b14bc996a4f3c788;hpb=bff814cb30e501eb1e54aecb8110a78d41e7bdb0;p=pti%2Fo2.git diff --git a/o2ims/domain/stx_object.py b/o2ims/domain/stx_object.py index 09d1a16..36ce349 100644 --- a/o2ims/domain/stx_object.py +++ b/o2ims/domain/stx_object.py @@ -13,40 +13,44 @@ # limitations under the License. # from dataclasses import dataclass -# import datetime +import datetime import json +from o2ims.domain.resource_type import ResourceTypeEnum +import logging +logger = logging.getLogger(__name__) + class MismatchedModel(Exception): pass class StxGenericModel: - def __init__(self, api_response: dict = None) -> None: + def __init__(self, type: ResourceTypeEnum, + api_response: dict = None, content_hash=None) -> None: if api_response: self.id = api_response.uuid - self.content = json.dumps(api_response.to_dict()) - self.updatetime = api_response.updated_at - self.createtime = api_response.created_at + self.type = type + self.updatetime = datetime.datetime.strptime( + api_response.updated_at.split('.')[0], "%Y-%m-%dT%H:%M:%S") \ + if api_response.updated_at else None + self.createtime = datetime.datetime.strptime( + api_response.created_at.split('.')[0], "%Y-%m-%dT%H:%M:%S") \ + if api_response.created_at else None self.name = api_response.name + self.hash = content_hash if content_hash \ + else str(hash((self.id, self.updatetime))) + self.content = json.dumps(api_response.to_dict()) def is_outdated(self, newmodel) -> bool: - return self.updatetime < newmodel.updatetime + # return self.updatetime < newmodel.updatetime + # logger.warning("hash1: " + self.hash + " vs hash2: " + newmodel.hash) + return self.hash != newmodel.hash def update_by(self, newmodel) -> None: if self.id != newmodel.id: raise MismatchedModel("Mismatched model") self.name = newmodel.name - - self.content = newmodel.content self.createtime = newmodel.createtime self.updatetime = newmodel.updatetime - - -class StxK8sClusterModel(StxGenericModel): - def __init__(self, api_response: dict = None) -> None: - super().__init__(api_response=api_response) - - def is_outdated(self, newmodel) -> bool: - # never outdated since lack of such evidence - return False + self.content = newmodel.content