X-Git-Url: https://gerrit.o-ran-sc.org/r/gitweb?a=blobdiff_plain;f=o2common%2Fdomain%2Fbase.py;h=698843c73627ed3292e1898b2c51c9f3c1854351;hb=e161cae314703d7717d55099566c2d3fe112ca52;hp=130fdad9d3210274f9f63d9790bd5fe6dea02843;hpb=b37a7d8e36bd9fdf862cb1aad29f9a29052e725f;p=pti%2Fo2.git diff --git a/o2common/domain/base.py b/o2common/domain/base.py index 130fdad..698843c 100644 --- a/o2common/domain/base.py +++ b/o2common/domain/base.py @@ -1,53 +1,68 @@ -# Copyright (C) 2021 Wind River Systems, Inc. -# -# Licensed under the Apache License, Version 2.0 (the "License"); -# you may not use this file except in compliance with the License. -# You may obtain a copy of the License at -# -# http://www.apache.org/licenses/LICENSE-2.0 -# -# Unless required by applicable law or agreed to in writing, software -# distributed under the License is distributed on an "AS IS" BASIS, -# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. -# See the License for the specific language governing permissions and -# limitations under the License. - -from datetime import datetime -from typing import List -from sqlalchemy.inspection import inspect -from sqlalchemy.exc import NoInspectionAvailable -from .events import Event - - -class AgRoot: - - events = [] - - def __init__(self) -> None: - self.hash = "" - self.updatetime = datetime.now() - self.createtime = datetime.now() - self.events = [] # type: List[Event] - # self.id = "" - - # def append_event(self, event: Event): - # self.events = self.events.append(event) - - -class Serializer(object): - - def serialize(self): - try: - # d = {c: getattr(self, c) for c in inspect(self).attrs.keys()} - # if 'createtime' in d: - # d['createtime'] = d['createtime'].isoformat() - # if 'updatetime' in d: - # d['updatetime'] = d['updatetime'].isoformat() - # return d - return {c: getattr(self, c) for c in inspect(self).attrs.keys()} - except NoInspectionAvailable: - return self.__dict__ - - @staticmethod - def serialize_list(li): - return [m.serialize() for m in li] +# Copyright (C) 2021 Wind River Systems, Inc. +# +# Licensed under the Apache License, Version 2.0 (the "License"); +# you may not use this file except in compliance with the License. +# You may obtain a copy of the License at +# +# http://www.apache.org/licenses/LICENSE-2.0 +# +# Unless required by applicable law or agreed to in writing, software +# distributed under the License is distributed on an "AS IS" BASIS, +# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +# See the License for the specific language governing permissions and +# limitations under the License. + +from datetime import datetime +from typing import List +from sqlalchemy.inspection import inspect +from sqlalchemy.exc import NoInspectionAvailable +# from sqlalchemy.orm.exc import DetachedInstanceError +from .events import Event + + +class InfrastructureInventoryObject: + ObjectState = {} + + def __init__(self) -> None: + # self.ObjectState = {} + pass + + def get_fields_as_dict(self, fields): + for field in fields: + if hasattr(self, field): + self.ObjectState[field] = getattr(self, field) + return self.ObjectState + + +class AgRoot: + + events = [] + + def __init__(self) -> None: + self.hash = "" + self.updatetime = datetime.now() + self.createtime = datetime.now() + self.events = [] # type: List[Event] + # self.id = "" + + # def append_event(self, event: Event): + # self.events = self.events.append(event) + + +class Serializer(object): + + def serialize(self): + try: + d = {c: getattr(self, c) for c in inspect(self).attrs.keys()} + # if 'createtime' in d: + # d['createtime'] = d['createtime'].isoformat() + # if 'updatetime' in d: + # d['updatetime'] = d['updatetime'].isoformat() + return d + # return {c: getattr(self, c) for c in inspect(self).attrs.keys()} + except NoInspectionAvailable: + return self.__dict__ + + @staticmethod + def serialize_list(li): + return [m.serialize() for m in li]