Skip to content

Commit

Permalink
storage: Tell people that big mdraids really should have a bitmap
Browse files Browse the repository at this point in the history
  • Loading branch information
mvollmer committed Jun 30, 2023
1 parent a172bae commit 27926c9
Showing 1 changed file with 18 additions and 21 deletions.
39 changes: 18 additions & 21 deletions pkg/storaged/mdraid-details.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -180,23 +180,6 @@ export class MDRaidDetails extends React.Component {
if (mdraid.ChunkSize > 0)
level += ", " + cockpit.format(_("$0 chunk size"), utils.fmt_size(mdraid.ChunkSize));

function toggle_bitmap(val) {
return mdraid.SetBitmapLocation(utils.encode_filename(val ? 'internal' : 'none'), {});
}

let bitmap = null;
if (mdraid.BitmapLocation) {
const value = utils.decode_filename(mdraid.BitmapLocation) != "none";
bitmap = (
<DescriptionListGroup>
<DescriptionListTerm>{_("storage", "Bitmap")}</DescriptionListTerm>
<DescriptionListDescription>
<StorageOnOff state={value} aria-label={_("Toggle bitmap")} onChange={toggle_bitmap} />
</DescriptionListDescription>
</DescriptionListGroup>
);
}

let degraded_message = null;
if (mdraid.Degraded > 0) {
const text = cockpit.format(
Expand All @@ -208,6 +191,23 @@ export class MDRaidDetails extends React.Component {
);
}

function fix_bitmap() {
return mdraid.SetBitmapLocation(utils.encode_filename("internal"), { });
}

let bitmap_message = null;
if (mdraid.Size > 100 * 1024 * 1024 * 1024 &&
mdraid.BitmapLocation && utils.decode_filename(mdraid.BitmapLocation) == "none") {
bitmap_message = (
<Alert isInline variant="warning"
title={_("This RAID array has no bitmap. A bitmap can reduce sychronization times significantly.")}>
<div className="storage_alert_action_buttons">
<StorageButton onClick={fix_bitmap}>{_("Add a bitmap")}</StorageButton>
</div>
</Alert>
);
}

/* Older versions of Udisks/storaged don't have a Running property */
let running = mdraid.Running;
if (running === undefined)
Expand Down Expand Up @@ -338,9 +338,6 @@ export class MDRaidDetails extends React.Component {
<DescriptionListTerm>{_("storage", "RAID level")}</DescriptionListTerm>
<DescriptionListDescription>{ level }</DescriptionListDescription>
</DescriptionListGroup>

{ bitmap }

<DescriptionListGroup>
<DescriptionListTerm>{_("storage", "State")}</DescriptionListTerm>
<DescriptionListDescription>{ running ? _("Running") : _("Not running") }</DescriptionListDescription>
Expand All @@ -354,7 +351,7 @@ export class MDRaidDetails extends React.Component {

const content = <Block client={this.props.client} block={block} />;

return <StdDetailsLayout client={this.props.client} alert={degraded_message}
return <StdDetailsLayout client={this.props.client} alert={<>{degraded_message}{bitmap_message}</>}
header={ header }
sidebar={ sidebar }
content={ content }
Expand Down

0 comments on commit 27926c9

Please sign in to comment.