-# Copyright (C) 2021 Wind River Systems, Inc.\r
-#\r
-# Licensed under the Apache License, Version 2.0 (the "License");\r
-# you may not use this file except in compliance with the License.\r
-# You may obtain a copy of the License at\r
-#\r
-# http://www.apache.org/licenses/LICENSE-2.0\r
-#\r
-# Unless required by applicable law or agreed to in writing, software\r
-# distributed under the License is distributed on an "AS IS" BASIS,\r
-# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
-# See the License for the specific language governing permissions and\r
-# limitations under the License.\r
-\r
-from datetime import datetime\r
-from typing import List\r
-from sqlalchemy.inspection import inspect\r
-from sqlalchemy.exc import NoInspectionAvailable\r
-from .events import Event\r
-\r
-\r
-class AgRoot:\r
-\r
- events = []\r
-\r
- def __init__(self) -> None:\r
- self.hash = ""\r
- self.updatetime = datetime.now()\r
- self.createtime = datetime.now()\r
- self.events = [] # type: List[Event]\r
- # self.id = ""\r
-\r
- # def append_event(self, event: Event):\r
- # self.events = self.events.append(event)\r
-\r
-\r
-class Serializer(object):\r
-\r
- def serialize(self):\r
- try:\r
- # d = {c: getattr(self, c) for c in inspect(self).attrs.keys()}\r
- # if 'createtime' in d:\r
- # d['createtime'] = d['createtime'].isoformat()\r
- # if 'updatetime' in d:\r
- # d['updatetime'] = d['updatetime'].isoformat()\r
- # return d\r
- return {c: getattr(self, c) for c in inspect(self).attrs.keys()}\r
- except NoInspectionAvailable:\r
- return self.__dict__\r
-\r
- @staticmethod\r
- def serialize_list(li):\r
- return [m.serialize() for m in li]\r
+# 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]