]>
git.proxmox.com Git - pve-manager.git/blob - www/manager6/dc/PCIMapView.js
1 Ext
.define('pve-resource-pci-tree', {
2 extend
: 'Ext.data.Model',
3 idProperty
: 'internalId',
4 fields
: ['type', 'text', 'path', 'id', 'subsystem-id', 'iommugroup', 'description', 'digest'],
7 Ext
.define('PVE.dc.PCIMapView', {
8 extend
: 'PVE.tree.ResourceMapTree',
9 alias
: 'widget.pveDcPCIMapView',
11 editWindowClass
: 'PVE.window.PCIMapEditWindow',
12 baseUrl
: '/cluster/mapping/pci',
13 mapIconCls
: 'pve-itype-icon-pci',
14 getStatusCheckUrl
: (node
) => `/nodes/${node}/hardware/pci?pci-class-blacklist=`,
15 entryIdProperty
: 'path',
17 checkValidity: function(data
, node
) {
20 data
.forEach((entry
) => {
21 ids
[entry
.id
] = entry
;
23 me
.getRootNode()?.cascade(function(rec
) {
24 if (rec
.data
.node
!== node
|| rec
.data
.type
!== 'map') {
28 let id
= rec
.data
.path
;
29 if (!id
.match(/\.\d$/)) {
35 rec
.set('errmsg', Ext
.String
.format(gettext("Cannot find PCI id {0}"), id
));
41 let deviceId
= `${device.vendor}:${device.device}`.replace(/0x/g, '');
42 let subId
= `${device.subsystem_vendor}:${device.subsystem_device}`.replace(/0x/g, '');
46 'subsystem-id': subId
,
47 iommugroup
: device
.iommugroup
!== -1 ? device
.iommugroup
: undefined,
52 let errText
= gettext("Configuration for {0} not correct ('{1}' != '{2}')");
53 for (const [key
, validValue
] of Object
.entries(toCheck
)) {
54 if (`${rec.data[key]}` !== `${validValue}`) {
55 errors
.push(Ext
.String
.format(errText
, key
, rec
.data
[key
] ?? '', validValue
));
60 rec
.set('valid', valid
);
61 rec
.set('errmsg', errors
.join('<br>'));
68 model
: 'pve-resource-pci-tree',
75 text
: gettext('ID/Node/Path'),
80 text
: gettext('Vendor/Device'),
84 text
: gettext('Subsystem Vendor/Device'),
85 dataIndex
: 'subsystem-id',
88 text
: gettext('IOMMU-Group'),
89 dataIndex
: 'iommugroup',
92 header
: gettext('Status'),
95 renderer
: 'renderStatus',
98 header
: gettext('Comment'),
99 dataIndex
: 'description',
100 renderer: function(value
, _meta
, record
) {
101 return Ext
.String
.htmlEncode(value
?? record
.data
.comment
);