# Copyright 2018 Huawei Technologies Co.,LTD. # # 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 cyborg import objects from cyborg.objects import device from cyborg.objects import fields def get_fake_devices_as_dict(): device1 = { "id": 1, "vendor": "0xABCD", "uuid": "1c6c9033-560d-4a7a-bb8e-94455d1e7825", "hostname": "test-node-1", "vendor_board_info": "fake_vendor_info", "model": "miss model info", "type": "FPGA", "std_board_info": "{'class': 'Fake class', 'device_id': '0xabcd'}" } device2 = { "id": 2, "vendor": "0xDCBA", "uuid": "1c6c9033-560d-4a7a-bb8e-94455d1e7826", "hostname": "test-node-2", "vendor_board_info": "fake_vendor_info", "model": "miss model info", "type": "GPU", "std_board_info": "{'class': 'Fake class', 'device_id': '0xdcba'}" } return [device1, device2] def _convert_from_dict_to_obj(device_dict): obj_device = device.Device() for field in device_dict.keys(): obj_device[field] = device_dict[field] return obj_device def _convert_to_db_device(device_dict): for name, field in objects.Device.fields.items(): if name in device_dict: continue if field.nullable: device_dict[name] = None elif field.default != fields.UnspecifiedDefault: device_dict[name] = field.default else: raise Exception('fake_db_device needs help with %s' % name) return device_dict def get_db_devices(): devices_list = get_fake_devices_as_dict() db_devices = list(map(_convert_to_db_device, devices_list)) return db_devices def get_fake_devices_objs(): devices_list = get_fake_devices_as_dict() obj_devices = list(map(_convert_from_dict_to_obj, devices_list)) return obj_devices