Fix INF-378 inventory subscription filter not take effect as expected 19/9819/1
authorZhang Rong(Jon) <rong.zhang@windriver.com>
Wed, 23 Nov 2022 06:29:00 +0000 (14:29 +0800)
committerJackie Huang <jackie.huang@windriver.com>
Fri, 25 Nov 2022 08:27:24 +0000 (16:27 +0800)
Issue-ID: INF-378
Signed-off-by: Zhang Rong(Jon) <rong.zhang@windriver.com>
Change-Id: Iadae8f197b5ee8163ab4a7e26f54accce7410282

15 files changed:
o2common/views/view.py
o2ims/adapter/orm.py
o2ims/domain/ocloud.py
o2ims/service/auditor/agg_compute_handler.py
o2ims/service/auditor/agg_network_handler.py
o2ims/service/auditor/agg_storage_handler.py
o2ims/service/auditor/agg_undefined_handler.py
o2ims/service/auditor/pserver_acc_handler.py
o2ims/service/auditor/pserver_cpu_handler.py
o2ims/service/auditor/pserver_dev_handler.py
o2ims/service/auditor/pserver_eth_handler.py
o2ims/service/auditor/pserver_handler.py
o2ims/service/auditor/pserver_if_handler.py
o2ims/service/auditor/pserver_mem_handler.py
o2ims/service/auditor/pserver_port_handler.py

index 558384a..af02e78 100644 (file)
@@ -89,6 +89,7 @@ def check_filter_attribute(obj: ColumnElement, filter_str: str):
         else:
             pass
         filter_key = transfer_filter_attr_name_in_special(obj, filter_key)
-        if not hasattr(obj, filter_key):
+        if not hasattr(obj, filter_key) or \
+                filter_key in ['hash', 'updatetime', 'createtime', 'events']:
             raise BadRequestException(
                 'Filter attrName {} is invalid'.format(filter_key))
index 762004f..3c0440b 100644 (file)
@@ -114,7 +114,6 @@ resource = Table(
     Column("resourceId", String(255), primary_key=True),
     Column("resourceTypeId", ForeignKey("resourceType.resourceTypeId")),
     Column("resourcePoolId", ForeignKey("resourcePool.resourcePoolId")),
-    Column("name", String(255)),
     Column("globalAssetId", String(255)),
     Column("parentId", String(255)),
     Column("description", String()),
index a7ca18e..eb4f34b 100644 (file)
@@ -113,7 +113,7 @@ class ResourceType(AgRoot, Serializer):
 
 class Resource(AgRoot, Serializer):
     def __init__(self, resourceId: str, resourceTypeId: str,
-                 resourcePoolId: str, name: str, parentId: str = '',
+                 resourcePoolId: str, parentId: str = '',
                  gAssetId: str = '', elements: str = '',
                  description: str = '', extensions: str = '') -> None:
         super().__init__()
@@ -125,7 +125,6 @@ class Resource(AgRoot, Serializer):
         self.elements = elements
         self.extensions = extensions
 
-        self.name = name
         self.parentId = parentId
         self.children = []
 
index 7bb8b15..6c32986 100644 (file)
@@ -107,8 +107,7 @@ def create_by(stxobj: StxGenericModel, parentid: str, resourcetype_id: str) \
     gAssetId = ''  # TODO: global ID
     description = "%s : A Compute Aggregate server resource" % stxobj.name
     resource = Resource(stxobj.id, resourcetype_id, resourcepool_id,
-                        stxobj.name, parent_id, gAssetId, stxobj.content,
-                        description)
+                        parent_id, gAssetId, stxobj.content, description)
     resource.createtime = stxobj.createtime
     resource.updatetime = stxobj.updatetime
     resource.hash = stxobj.hash
index 5a5b02e..5feb700 100644 (file)
@@ -107,8 +107,7 @@ def create_by(stxobj: StxGenericModel, parentid: str, resourcetype_id: str) \
     gAssetId = ''  # TODO: global ID
     description = "%s : A Network Aggregate server resource" % stxobj.name
     resource = Resource(stxobj.id, resourcetype_id, resourcepool_id,
-                        stxobj.name, parent_id, gAssetId, stxobj.content,
-                        description)
+                        parent_id, gAssetId, stxobj.content, description)
     resource.createtime = stxobj.createtime
     resource.updatetime = stxobj.updatetime
     resource.hash = stxobj.hash
index 6fddf19..3a3d5e4 100644 (file)
@@ -107,8 +107,7 @@ def create_by(stxobj: StxGenericModel, parentid: str, resourcetype_id: str) \
     gAssetId = ''  # TODO: global ID
     description = "%s : A Storage Aggregate server resource" % stxobj.name
     resource = Resource(stxobj.id, resourcetype_id, resourcepool_id,
-                        stxobj.name, parent_id, gAssetId, stxobj.content,
-                        description)
+                        parent_id, gAssetId, stxobj.content, description)
     resource.createtime = stxobj.createtime
     resource.updatetime = stxobj.updatetime
     resource.hash = stxobj.hash
index 3cee222..d8ab956 100644 (file)
@@ -107,8 +107,7 @@ def create_by(stxobj: StxGenericModel, parentid: str, resourcetype_id: str) \
     gAssetId = ''  # TODO: global ID
     description = "%s : An Undefined Aggregate server resource" % stxobj.name
     resource = Resource(stxobj.id, resourcetype_id, resourcepool_id,
-                        stxobj.name, parent_id, gAssetId, stxobj.content,
-                        description)
+                        parent_id, gAssetId, stxobj.content, description)
     resource.createtime = stxobj.createtime
     resource.updatetime = stxobj.updatetime
     resource.hash = stxobj.hash
index 6c3ed51..5c9771b 100644 (file)
@@ -112,14 +112,14 @@ def create_by(stxobj: StxGenericModel, parent: Resource, resourcetype_id: str)\
         "name", "pdevice", "pciaddr", "pvendor_id", "pvendor",
         "pclass_id", "pclass", "psvendor", "psdevice",
         "sriov_totalvfs", "sriov_numvfs", "numa_node"
-        ]
+    ]
     filtered = dict(
         filter(lambda item: item[0] in selected_keys, content.items()))
     extensions = json.dumps(filtered)
     description = ";".join([f"{k}:{v}" for k, v in filtered.items()])
     resource = Resource(stxobj.id, resourcetype_id, resourcepool_id,
-                        stxobj.name, parent_id, gAssetId, stxobj.content,
-                        description, extensions)
+                        parent_id, gAssetId, stxobj.content, description,
+                        extensions)
     resource.createtime = stxobj.createtime
     resource.updatetime = stxobj.updatetime
     resource.hash = stxobj.hash
index 111259c..5ad64ca 100644 (file)
@@ -110,14 +110,14 @@ def create_by(stxobj: StxGenericModel, parent: Resource, resourcetype_id: str)\
     selected_keys = [
         "cpu", "core", "thread", "allocated_function", "numa_node",
         "cpu_model", "cpu_family"
-        ]
+    ]
     filtered = dict(
         filter(lambda item: item[0] in selected_keys, content.items()))
     extensions = json.dumps(filtered)
     description = ";".join([f"{k}:{v}" for k, v in filtered.items()])
     resource = Resource(stxobj.id, resourcetype_id, resourcepool_id,
-                        stxobj.name, parent_id, gAssetId, stxobj.content,
-                        description, extensions)
+                        parent_id, gAssetId, stxobj.content, description,
+                        extensions)
     resource.createtime = stxobj.createtime
     resource.updatetime = stxobj.updatetime
     resource.hash = stxobj.hash
index 7303732..5b8ede8 100644 (file)
@@ -108,8 +108,7 @@ def create_by(stxobj: StxGenericModel, parent: Resource, resourcetype_id: str)\
     description = "%s : A device resource of the physical server"\
         % stxobj.name
     resource = Resource(stxobj.id, resourcetype_id, resourcepool_id,
-                        stxobj.name, parent_id, gAssetId, stxobj.content,
-                        description)
+                        parent_id, gAssetId, stxobj.content, description)
     resource.createtime = stxobj.createtime
     resource.updatetime = stxobj.updatetime
     resource.hash = stxobj.hash
index 517bb32..6d3a5ff 100644 (file)
@@ -114,14 +114,14 @@ def create_by(stxobj: StxGenericModel, parent: Resource, resourcetype_id: str)\
         "pciaddr", "pclass", "psvendor", "psdevice",
         "sriov_totalvfs", "sriov_numvfs", "dpdksupport",
         "sriov_vf_driver", "sriov_vf_pdevice_id", "interface_uuid"
-        ]
+    ]
     filtered = dict(
         filter(lambda item: item[0] in selected_keys, content.items()))
     extensions = json.dumps(filtered)
     description = ";".join([f"{k}:{v}" for k, v in filtered.items()])
     resource = Resource(stxobj.id, resourcetype_id, resourcepool_id,
-                        stxobj.name, parent_id, gAssetId, stxobj.content,
-                        description, extensions)
+                        parent_id, gAssetId, stxobj.content, description,
+                        extensions)
     resource.createtime = stxobj.createtime
     resource.updatetime = stxobj.updatetime
     resource.hash = stxobj.hash
index 7fa2b12..1ab1189 100644 (file)
@@ -122,8 +122,8 @@ def create_by(stxobj: StxGenericModel, parentid: str, resourcetype_id: str) \
     extensions = json.dumps(filtered)
     description = ";".join([f"{k}:{v}" for k, v in filtered.items()])
     resource = Resource(stxobj.id, resourcetype_id, resourcepool_id,
-                        stxobj.name, parent_id, gAssetId, stxobj.content,
-                        description, extensions)
+                        parent_id, gAssetId, stxobj.content, description,
+                        extensions)
     resource.createtime = stxobj.createtime
     resource.updatetime = stxobj.updatetime
     resource.hash = stxobj.hash
index ef5a385..fa0b9d4 100644 (file)
@@ -112,14 +112,14 @@ def create_by(stxobj: StxGenericModel, parent: Resource, resourcetype_id: str)\
         "ifname", "iftype", "imac", "vlan_id", "imtu",
         "ifclass", "uses", "max_tx_rate",
         "sriov_vf_driver", "sriov_numvfs", "ptp_role"
-        ]
+    ]
     filtered = dict(
         filter(lambda item: item[0] in selected_keys, content.items()))
     extensions = json.dumps(filtered)
     description = ";".join([f"{k}:{v}" for k, v in filtered.items()])
     resource = Resource(stxobj.id, resourcetype_id, resourcepool_id,
-                        stxobj.name, parent_id, gAssetId, stxobj.content,
-                        description, extensions)
+                        parent_id, gAssetId, stxobj.content, description,
+                        extensions)
     resource.createtime = stxobj.createtime
     resource.updatetime = stxobj.updatetime
     resource.hash = stxobj.hash
index 806d8d7..a6fb500 100644 (file)
@@ -115,14 +115,14 @@ def create_by(stxobj: StxGenericModel, parent: Resource, resourcetype_id: str)\
         "vm_hugepages_nr_4K", "vm_hugepages_nr_2M",
         "vm_hugepages_possible_2M", "vm_hugepages_avail_2M",
         "platform_reserved_mib", "numa_node"
-        ]
+    ]
     filtered = dict(
         filter(lambda item: item[0] in selected_keys, content.items()))
     extensions = json.dumps(filtered)
     description = ";".join([f"{k}:{v}" for k, v in filtered.items()])
     resource = Resource(stxobj.id, resourcetype_id, resourcepool_id,
-                        stxobj.name, parent_id, gAssetId, stxobj.content,
-                        description, extensions)
+                        parent_id, gAssetId, stxobj.content, description,
+                        extensions)
     resource.createtime = stxobj.createtime
     resource.updatetime = stxobj.updatetime
     resource.hash = stxobj.hash
index 045b8f5..30c0ddd 100644 (file)
@@ -108,8 +108,7 @@ def create_by(stxobj: StxGenericModel, parent: Resource, resourcetype_id: str)\
     description = "%s : A port resource of the interface"\
         % stxobj.name
     resource = Resource(stxobj.id, resourcetype_id, resourcepool_id,
-                        stxobj.name, parent_id, gAssetId, stxobj.content,
-                        description)
+                        parent_id, gAssetId, stxobj.content, description)
     resource.createtime = stxobj.createtime
     resource.updatetime = stxobj.updatetime
     resource.hash = stxobj.hash