-
Notifications
You must be signed in to change notification settings - Fork 45
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
feat(storage): configure boot #1808
feat(storage): configure boot #1808
Conversation
joseivanlopez
commented
Dec 4, 2024
•
edited
Loading
edited
- Add support in the config model for configuring boot.
- The Configure boot option in the More options menu goes to the page for configuring boot.
- Adapt the page for configuring boot to use the new config model hooks.
9d8129f
to
573b811
Compare
54756b8
to
e5a510f
Compare
- Allows to indicate whether the device is the default one.
- ProposalSettings cannot use Configs::Boot.
e5a510f
to
cbf0d39
Compare
Pull Request Test Coverage Report for Build 12432686864Details
💛 - Coveralls |
If the space policy is not provided by the model: - Use 'keep' for a drive added for booting. - Use the default space policy defined by the product in other cases.
function setBoot(originalModel: configModel.Config, boot: configModel.Boot) { | ||
const model = copyModel(originalModel); | ||
const name = model.boot?.device?.name; | ||
const remove = name !== undefined && isExplicitBoot(model, name) && !isUsedDrive(model, name); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Just to check I understood it correctly (I'm not against it). When a drive is not longer necessary after a change at the boot device, that drive is removed here. On the other hand, when a new drive needs to get added because a change at the boot device, that drive is added at the backend (during the conversion from the JSON model to config).
Right?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Yes. The backend takes care of adding drives if needed. Right now it only has the boot device use case, but maybe we have more in the future (raid?). On the other hand, removing unnecessary drives is something the client should do. The client can decide what is not needed anymore, but the backend has not enough info to decide by itself. For example, if the client adds a new disk for installation, then the backend should not remove it.
setState({ ...state, bootDevice: v }); | ||
}; | ||
|
||
return ( | ||
<Page> | ||
<Page.Header> | ||
<h2>{_("Select booting partition")}</h2> | ||
<h2>{_("Boot options")}</h2> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
A question for @dgdavid
When we navigate to page for defining a custom policy to find space, the title and subtitles are
Find space in /dev/sda
Select what to do with each partition bla bla
When we navigate to the boot options, they are:
Boot options
To ensure the new system is able to boot, the installer may need to create bla bla
Both are fine to me. But I wonder whether they should follow a more similar schema. I mean, the first one is explicitly exhorting the user to do something while the other is explaining where we are and what it means.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Good point!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Anyway, this is not a blocker for merging. Let's do a demo at the next review meeting that discuss those details afterwards.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I'm more for going to the second approach: let the user know where they are and what can do there.
That said, unless I have not strong opinion right now, it looks perfectly fine to me to now follow/force an schema just because. If it is better to use a different approach in a very specific page, why not? It will be better than providing nor enough informatio.
In any case, I fully agree with you on not blocking the PR for this and letting titles evolve with the rest of development. Do not forget that most probably Agama will end up getting breadcrumbs at some point, which can make us to rethink these texts.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM
Co-authored-by: Ancor Gonzalez Sosa <[email protected]>
e6d8bf4
into
agama-project:storage-config-ui
Update to release version 11. * #1495 * #1564 * #1617 * #1618 * #1625 * #1626 * #1627 * #1628 * #1630 * #1631 * #1632 * #1633 * #1634 * #1635 * #1636 * #1639 * #1640 * #1641 * #1642 * #1643 * #1644 * #1645 * #1646 * #1647 * #1648 * #1649 * #1650 * #1651 * #1652 * #1654 * #1655 * #1656 * #1657 * #1660 * #1663 * #1666 * #1667 * #1668 * #1670 * #1671 * #1673 * #1674 * #1675 * #1676 * #1677 * #1681 * #1682 * #1683 * #1684 * #1687 * #1688 * #1689 * #1690 * #1691 * #1692 * #1693 * #1694 * #1695 * #1696 * #1698 * #1699 * #1702 * #1703 * #1704 * #1705 * #1707 * #1708 * #1709 * #1710 * #1711 * #1712 * #1713 * #1714 * #1715 * #1716 * #1717 * #1718 * #1720 * #1721 * #1722 * #1723 * #1727 * #1728 * #1729 * #1731 * #1732 * #1733 * #1734 * #1735 * #1736 * #1737 * #1740 * #1741 * #1743 * #1744 * #1745 * #1746 * #1751 * #1753 * #1754 * #1755 * #1757 * #1762 * #1763 * #1764 * #1765 * #1766 * #1767 * #1769 * #1771 * #1772 * #1773 * #1774 * #1777 * #1778 * #1785 * #1786 * #1787 * #1788 * #1789 * #1790 * #1791 * #1792 * #1793 * #1794 * #1795 * #1796 * #1797 * #1798 * #1799 * #1800 * #1802 * #1803 * #1804 * #1805 * #1807 * #1808 * #1809 * #1810 * #1811 * #1812 * #1814 * #1815 * #1821 * #1822 * #1823 * #1824 * #1825 * #1826 * #1827 * #1828 * #1830 * #1831 * #1832 * #1833 * #1834 * #1835 * #1836 * #1837 * #1838 * #1839 * #1840 * #1841 * #1842 * #1843 * #1844 * #1845 * #1847 * #1848 * #1849 * #1850 * #1851 * #1854 * #1855 * #1856 * #1857 * #1860 * #1861 * #1863 * #1864 * #1865 * #1866 * #1867 * #1871 * #1872 * #1873 * #1875 * #1876 * #1877 * #1878 * #1880 * #1881 * #1882 * #1883 * #1884 * #1885 * #1886 * #1888 * #1889 * #1890