249 lines
7.7 KiB
Python
249 lines
7.7 KiB
Python
# Copyright 2019 Intel, Inc.
|
|
# All Rights Reserved.
|
|
#
|
|
# 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.
|
|
|
|
processor_req_schema = {
|
|
'type': 'array',
|
|
'items': [{
|
|
'type': 'object',
|
|
'properties': {
|
|
'@odata.type': {'type': 'string'},
|
|
'Model': {'type': 'string'},
|
|
'TotalCores': {'type': 'number'},
|
|
'AchievableSpeedMHz': {'type': 'number'},
|
|
'InstructionSet': {
|
|
'type': 'string',
|
|
'enum': ['x86', 'x86-64', 'IA-64', 'ARM-A32',
|
|
'ARM-A64', 'MIPS32', 'MIPS64', 'OEM']
|
|
},
|
|
'Oem': {
|
|
'type': 'object',
|
|
'properties': {
|
|
'Intel_RackScale': {
|
|
'type': 'object',
|
|
'properties': {
|
|
'Brand': {
|
|
'type': 'string',
|
|
'enum': ['E3', 'E5', 'E7', 'X3', 'X5', 'X7',
|
|
'I3', 'I5', 'I7', 'Silver', 'Gold',
|
|
'Platinum', 'Unknown']
|
|
},
|
|
'Capabilities': {
|
|
'type': 'array',
|
|
'items': [{'type': 'string'}]
|
|
}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
'Resource': {
|
|
'type': 'object',
|
|
'properties': {
|
|
'@odata.id': {'type': 'string'}
|
|
}
|
|
},
|
|
'Chassis': {
|
|
'type': 'object',
|
|
'properties': {
|
|
'@odata.id': {'type': 'string'}
|
|
}
|
|
},
|
|
'ProcessorType': {
|
|
'type': 'string',
|
|
'enum': ['CPU', 'FPGA', 'GPU', 'DSP', 'Accelerator', 'OEM']
|
|
},
|
|
'Connectivity': {
|
|
'type': 'array',
|
|
'items': [{
|
|
'type': 'string',
|
|
'enum': ['Local', 'Ethernet', 'RemotePCIe']
|
|
}]
|
|
}
|
|
},
|
|
'additionalProperties': False,
|
|
}]
|
|
}
|
|
|
|
memory_req_schema = {
|
|
'type': 'array',
|
|
'items': [{
|
|
'type': 'object',
|
|
'properties': {
|
|
'@odata.type': {'type': 'string'},
|
|
'CapacityMiB': {'type': 'number'},
|
|
'MemoryType': {
|
|
'type': 'string',
|
|
'enum': ['DRAM', 'NVDIMM_N', 'NVDIMM_F', 'NVMDIMM_P',
|
|
'IntelOptane']
|
|
},
|
|
'MemoryDeviceType': {
|
|
'type': 'string',
|
|
'enum': ['DDR', 'DDR2', 'DDR3', 'DDR4', 'DDR4_SDRAM',
|
|
'DDR4E_SDRAM', 'LPDDR4_SDRAM', 'DDR3_SDRAM',
|
|
'LPDDR3_SDRAM', 'DDR2_SDRAM', 'DDR2_SDRAM_FB_DIMM',
|
|
'DDR2_SDRAM_FB_DIMM_PROBE', 'DDR_SGRAM',
|
|
'DDR_SDRAM', 'ROM', 'SDRAM', 'EDO',
|
|
'FastPageMode', 'PipelinedNibble']
|
|
},
|
|
'SpeedMHz': {'type': 'number'},
|
|
'Manufacturer': {'type': 'string'},
|
|
'DataWidthBits': {'type': 'number'},
|
|
'Resource': {
|
|
'type': 'object',
|
|
'properties': {
|
|
'@odata.id': {'type': 'string'}
|
|
}
|
|
},
|
|
'Chassis': {
|
|
'type': 'object',
|
|
'properties': {
|
|
'@odata.id': {'type': 'string'}
|
|
}
|
|
}
|
|
},
|
|
'additionalProperties': False,
|
|
}]
|
|
}
|
|
|
|
remote_drive_req_schema = {
|
|
'type': 'array',
|
|
'items': [{
|
|
'type': 'object',
|
|
'properties': {
|
|
'@odata.type': {'type': 'string'},
|
|
'CapacityGiB': {'type': 'number'},
|
|
'Protocol': {
|
|
'type': 'string',
|
|
'enum': ['iSCSI', 'NVMeOverFabrics']
|
|
},
|
|
'Master': {
|
|
'type': 'object',
|
|
'properties': {
|
|
'Type': {
|
|
'type': 'string',
|
|
'enum': ['Snapshot', 'Clone']
|
|
},
|
|
'Resource': {
|
|
'type': 'object',
|
|
'properties': {
|
|
'@odata.id': {'type': 'string'}
|
|
}
|
|
}
|
|
}
|
|
},
|
|
'Resource': {
|
|
'type': 'object',
|
|
'properties': {
|
|
'@odata.id': {'type': 'string'}
|
|
}
|
|
}
|
|
},
|
|
'additionalProperties': False,
|
|
}]
|
|
}
|
|
|
|
local_drive_req_schema = {
|
|
'type': 'array',
|
|
'items': [{
|
|
'type': 'object',
|
|
'properties': {
|
|
'@odata.type': {'type': 'string'},
|
|
'CapacityGiB': {'type': 'number'},
|
|
'Type': {
|
|
'type': 'string',
|
|
'enum': ['HDD', 'SSD']
|
|
},
|
|
'MinRPM': {'type': 'number'},
|
|
'SerialNumber': {'type': 'string'},
|
|
'Interface': {
|
|
'type': 'string',
|
|
'enum': ['SAS', 'SATA', 'NVMe']
|
|
},
|
|
'Resource': {
|
|
'type': 'object',
|
|
'properties': {
|
|
'@odata.id': {'type': 'string'}
|
|
}
|
|
},
|
|
'Chassis': {
|
|
'type': 'object',
|
|
'properties': {
|
|
'@odata.id': {'type': 'string'}
|
|
}
|
|
},
|
|
'FabricSwitch': {'type': 'boolean'}
|
|
},
|
|
'additionalProperties': False,
|
|
}]
|
|
}
|
|
|
|
ethernet_interface_req_schema = {
|
|
'type': 'array',
|
|
'items': [{
|
|
'type': 'object',
|
|
'properties': {
|
|
'@odata.type': {'type': 'string'},
|
|
'SpeedMbps': {'type': 'number'},
|
|
'PrimaryVLAN': {'type': 'number'},
|
|
'VLANs': {
|
|
'type': 'array',
|
|
'additionalItems': {
|
|
'type': 'object',
|
|
'properties': {
|
|
'VLANId': {'type': 'number'},
|
|
'Tagged': {'type': 'boolean'}
|
|
}
|
|
}
|
|
},
|
|
'Resource': {
|
|
'type': 'object',
|
|
'properties': {
|
|
'@odata.id': {'type': 'string'}
|
|
}
|
|
},
|
|
'Chassis': {
|
|
'type': 'object',
|
|
'properties': {
|
|
'@odata.id': {'type': 'string'}
|
|
}
|
|
}
|
|
},
|
|
'additionalProperties': False,
|
|
}]
|
|
}
|
|
|
|
security_req_schema = {
|
|
'type': 'object',
|
|
'properties': {
|
|
'@odata.type': {'type': 'string'},
|
|
'TpmPresent': {'type': 'boolean'},
|
|
'TpmInterfaceType': {'type': 'string'},
|
|
'TxtEnabled': {'type': 'boolean'},
|
|
'ClearTPMOnDelete': {'type': 'boolean'},
|
|
'PersistentMemoryOperationOnDelete': {
|
|
'type': 'string',
|
|
'enum': ['PreserveConfiguration', 'SecureErase', 'OverwritePCD']
|
|
}
|
|
},
|
|
'additionalProperties': False,
|
|
}
|
|
|
|
total_system_core_req_schema = {
|
|
'type': 'number'
|
|
}
|
|
|
|
total_system_memory_req_schema = {
|
|
'type': 'number'
|
|
}
|