blob: 6faec6e7c592c7bb924f5f12a349e57d17cafa74 [file] [log] [blame]
# Copyright 2020 Open Networking Foundation
# delivered by ADTRAN, 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 __future__ import absolute_import
from __future__ import print_function
import inspect
import os
# global definition of keys (find in given 'inventory_data')
_NAME = 'name'
_CHILDREN = 'children'
_SENSOR_DATA = 'sensor_data'
_ROOT = 'root'
_INVENTORY = 'inventory'
_UUID = 'uuid'
def test(success):
if success is True:
return True
return False
def unique():
"""Returns the current filename and line number in our program."""
trace = str(os.path.basename(__file__) +
"[" + str(inspect.currentframe().f_back.f_lineno) + "]:")
return trace
# check if given paramter exist in inventory data, search recursive
def check_in_inventory_Component_data(inventory_data, name, element, value):
print(unique(), str(inventory_data), str(name), str(element), str(value))
if inventory_data.get(_NAME) == name and inventory_data.get(element) == value:
return True
for child in inventory_data[_CHILDREN]:
print(unique(), str(child))
if child.get(_NAME) == name and child.get(element) == value:
return True
if _SENSOR_DATA in child:
for sensor_data in child[_SENSOR_DATA]:
print(unique(), str(sensor_data))
if sensor_data.get(element) == value:
return True
if _CHILDREN in child:
result = check_in_inventory_Component_data(child, name, element, value)
if result is True:
return result
return False
# get uuid out of inventory data, search recursive
def get_uuid_from_inventory_Component_data(inventory_data, searchFor):
print(unique(), str(inventory_data), ', ', str(searchFor))
if inventory_data.get(_NAME) == searchFor:
return inventory_data.get(_UUID)
for child in inventory_data[_CHILDREN]:
print(unique(), str(child))
result = None
if child.get(_NAME) == searchFor:
print(unique(), str(child[_NAME]))
result = child.get(_UUID)
print(unique(), child.keys())
if result is None and _CHILDREN in child:
result = get_uuid_from_inventory_Component_data(child, searchFor)
if result is not None:
return result
return None
def get_uuid_from_Inventory_Element(inventory, searchFor):
for children in inventory[_INVENTORY][_ROOT][_CHILDREN]:
return get_uuid_from_inventory_Component_data(children, searchFor)
return None
def check_Inventory_Element(inventory, name, element, value):
for childrens in inventory[_INVENTORY][_ROOT][_CHILDREN]:
return check_in_inventory_Component_data(childrens, name, element, value)
return False
def getWord(line, number):
line_in_list = line.split()
if len(line_in_list) >= number-1:
return line_in_list[number-1]
return ""
def decode(data):
decoded_data = data
print(unique(), str(decoded_data))