Skip to content

Commit ad3ce0f

Browse files
committed
ui: add BIOS settings and virtual media properties to BMC data
Signed-off-by: Lucas Bremgartner <lucas.bremgartner@futurfusion.io>
1 parent bcb23d5 commit ad3ce0f

2 files changed

Lines changed: 111 additions & 0 deletions

File tree

ui/src/pages/ServerBMC.tsx

Lines changed: 101 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -51,6 +51,22 @@ const healthStatusBadge = (status: string | undefined) => {
5151
return <Badge bg="danger">{status}</Badge>;
5252
};
5353

54+
const insertedBadge = (inserted: boolean | undefined) => {
55+
return inserted ? (
56+
<Badge bg="success">Inserted</Badge>
57+
) : (
58+
<Badge bg="secondary">Not inserted</Badge>
59+
);
60+
};
61+
62+
const writeProtectedBadge = (writeProtected: boolean | undefined) => {
63+
return writeProtected ? (
64+
<Badge bg="warning">Write protected</Badge>
65+
) : (
66+
<Badge bg="secondary">Writable</Badge>
67+
);
68+
};
69+
5470
const forceField: OSActionField[] = [
5571
{ name: "force", label: "Force", type: "checkbox" },
5672
];
@@ -61,6 +77,7 @@ const ServerBMC = () => {
6177
const queryClient = useQueryClient();
6278
const [logSource, setLogSource] = useState("");
6379
const [isDataVisible, setIsDataVisible] = useState(false);
80+
const [isBiosAttributesVisible, setIsBiosAttributesVisible] = useState(false);
6481
const [refreshing, setRefreshing] = useState(false);
6582

6683
const {
@@ -238,6 +255,90 @@ const ServerBMC = () => {
238255
{bmcData?.server_bios_version}
239256
</div>
240257
</div>
258+
<div className="row">
259+
<div className="col-2 detail-table-header">
260+
BIOS attributes{" "}
261+
<span
262+
onClick={() => setIsBiosAttributesVisible(!isBiosAttributesVisible)}
263+
className="hide-field-switch"
264+
>
265+
{isBiosAttributesVisible ? (
266+
<>
267+
<IoChevronDownOutline /> Hide
268+
</>
269+
) : (
270+
<>
271+
<IoChevronUpOutline /> Show
272+
</>
273+
)}
274+
</span>
275+
</div>
276+
<div className="col-10 detail-table-cell">
277+
{isBiosAttributesVisible && (
278+
<pre>
279+
{JSON.stringify(bmcData?.server_bios_attributes, null, 2)}
280+
</pre>
281+
)}
282+
</div>
283+
</div>
284+
<div className="row">
285+
<div className="col-2 detail-table-header">Virtual media</div>
286+
<div className="col-10 detail-table-cell">
287+
{insertedBadge(bmcData?.virtual_media_inserted)}
288+
</div>
289+
</div>
290+
<div className="row">
291+
<div className="col-2 detail-table-header">Virtual media image</div>
292+
<div className="col-10 detail-table-cell">
293+
{bmcData?.virtual_media_image_name || bmcData?.virtual_media_image}
294+
</div>
295+
</div>
296+
<div className="row">
297+
<div className="col-2 detail-table-header">
298+
Virtual media connected via
299+
</div>
300+
<div className="col-10 detail-table-cell">
301+
{bmcData?.virtual_media_connected_via}
302+
</div>
303+
</div>
304+
<div className="row">
305+
<div className="col-2 detail-table-header">Virtual media status</div>
306+
<div className="col-10 detail-table-cell">
307+
{healthStatusBadge(bmcData?.virtual_media_status)}
308+
</div>
309+
</div>
310+
<div className="row">
311+
<div className="col-2 detail-table-header">
312+
Virtual media media types
313+
</div>
314+
<div className="col-10 detail-table-cell">
315+
{bmcData?.virtual_media_media_types?.join(", ")}
316+
</div>
317+
</div>
318+
<div className="row">
319+
<div className="col-2 detail-table-header">
320+
Virtual media transfer method
321+
</div>
322+
<div className="col-10 detail-table-cell">
323+
{bmcData?.virtual_media_transfer_method}
324+
</div>
325+
</div>
326+
<div className="row">
327+
<div className="col-2 detail-table-header">
328+
Virtual media transfer protocol type
329+
</div>
330+
<div className="col-10 detail-table-cell">
331+
{bmcData?.virtual_media_transfer_protocol_type}
332+
</div>
333+
</div>
334+
<div className="row">
335+
<div className="col-2 detail-table-header">
336+
Virtual media write protected
337+
</div>
338+
<div className="col-10 detail-table-cell">
339+
{writeProtectedBadge(bmcData?.virtual_media_write_protected)}
340+
</div>
341+
</div>
241342
<div className="row">
242343
<div className="col-2 detail-table-header">Last updated</div>
243344
<div className="col-10 detail-table-cell">

ui/src/types/server.d.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -47,11 +47,21 @@ export interface BMCData {
4747
server_sku: string;
4848
server_serial_number: string;
4949
server_bios_version: string;
50+
server_bios_attributes: Record<string, unknown>;
5051
server_processor_architecture: string;
5152
server_processor_instruction_set: string;
5253
server_power_state: string;
5354
server_location_indicator_active: boolean;
5455
server_health_status: string;
56+
virtual_media_inserted: boolean;
57+
virtual_media_image: string;
58+
virtual_media_image_name: string;
59+
virtual_media_connected_via: string;
60+
virtual_media_status: string;
61+
virtual_media_media_types: string[];
62+
virtual_media_transfer_method: string;
63+
virtual_media_transfer_protocol_type: string;
64+
virtual_media_write_protected: boolean;
5565
last_updated: string;
5666
}
5767

0 commit comments

Comments
 (0)