Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Btrfs storage redesign #19512

Closed
wants to merge 20 commits into from
Closed

Btrfs storage redesign #19512

wants to merge 20 commits into from

Conversation

jelly
Copy link
Member

@jelly jelly commented Oct 20, 2023

Depends on:

Demo:

  1. https://www.youtube.com/watch?v=bAxGWoEH4Ak

Screenshots:

Storage overview page

image

BTRFS Volume overview page

image

To Do:

  • Debug udisks/udev btrfs device add/remove not always getting detected in udisks
  • Subvolume monitoring
  • Figure out UX with @garrett regarding subvolumes and detail pages
  • Don't show warnings for a volume wiht multiple devices which happens now for lvol0
  • Extend GetSubVolumes? At the moment it doesn't give much information
  • Discuss if everything from fstab should show up in the new storage overview re-design (For example now you won't see /home which is a btrfs subvolume but you do see /)
  • Figure out if btrfs subvolume set-default/get-default should be an UDisks API. This should control what subvolume is mounted by default if you just mount /dev/vda3 /mnt/foo. Also needs more research
  • Mounting! Do we even want to give users the option to mount things
  • Filtering, subvolumes should be filtered ideally one can have many, of different types! Endless possibilities
  • Expose qgroup in udisks? And creating of a qgroup? Needs more research, to be postponed for a follow up
  • Create subvolume now requires mounting, it should absolutely not btrfs subvolume create foo is completely valid.

@jelly jelly added the no-test For doc/workflow changes, or experiments which don't need a full CI run, label Oct 20, 2023
@jelly jelly temporarily deployed to gh-cockpituous October 20, 2023 11:51 — with GitHub Actions Inactive
props: { block }
});

make_block_pages(p, block, null);

Check warning

Code scanning / CodeQL

Superfluous trailing arguments

Superfluous argument passed to [function make_block_pages](1).
});

if (block.Size > 0)
make_block_pages(drive_page, block, null);

Check warning

Code scanning / CodeQL

Superfluous trailing arguments

Superfluous argument passed to [function make_block_pages](1).
} else if ((content_block.IdUsage == "raid") ||
(client.mdraids[content_block.MDRaidMember])) {
make_mdraid_disk_page(parent, block, content_block, container);
} else if (block_swap || (content_block && content_block.IdUsage == "other" && content_block.IdType == "swap")) {

Check warning

Code scanning / CodeQL

Useless conditional Warning

This use of variable 'content_block' always evaluates to true.
import { SCard } from "../utils/card.jsx";
import { SDesc } from "../utils/desc.jsx";
import { StorageButton } from "../storage-controls.jsx";
import { PageChildrenCard, ParentPageLink, new_page, page_type, block_location, register_crossref } from "../pages.jsx";

Check notice

Code scanning / CodeQL

Unused variable, import, function or class

Unused import register_crossref.
b.wait_not_present("#devices .pf-v5-c-dropdown a:contains('Create Stratis pool')")
# XXX - explain this or make it more explicit
raid_clicks = self.dropdown_action(self.card_header("Storage"), "Create RAID device")
stratic_clicks = self.dropdown_action(self.card_header("Storage"), "Create Stratis pool")

Check notice

Code scanning / CodeQL

Unused local variable

Variable stratic_clicks is not used.
mvollmer and others added 20 commits October 31, 2023 09:42
It gets spuriously closed sometimes.
All card actions are defined via the page and container abstractions,
which will put them into the kebab menu of table rows.  But then,
dangerous and impossible actions are removed from that menu.
We could do the same in other places.
To be able to link to a BTRFS device in the BTRFS volume page we want to
register all backing blocks to create link to btrfs volume devices.
This introduces the concept of BTRFS volumes in the storage page, a
BTRFS volume can have multiple device(s). The first version won't
implement adding/removing devices but should support showing them and
making sense of it. We also show the btrfs subvolumes of a volume and
should in the future allow creating of subvolumes under a subvolume and
the root.
@jelly
Copy link
Member Author

jelly commented Jan 16, 2024

Partially implemented in #19690

@jelly jelly closed this Jan 16, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
no-test For doc/workflow changes, or experiments which don't need a full CI run,
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants