feat(rust): probe after running pre-scripts#1735
Merged
Conversation
3146066 to
c6e74e8
Compare
jreidinger
reviewed
Nov 7, 2024
| println!( | ||
| "{} {}", | ||
| style("\u{2713}").bold().green(), | ||
| "The profile is valid." |
jreidinger
reviewed
Nov 7, 2024
| scripts_client.run_scripts(ScriptsGroup::Pre).await?; | ||
|
|
||
| let status = self.manager_client.status().await; | ||
| if status.is_ok_and(|s| s.phase == InstallationPhase::Config) { |
Contributor
There was a problem hiding this comment.
can we have race condition here, that phase is still probing, but already runs, so changes from pre script is not taken into account?
Contributor
Author
There was a problem hiding this comment.
I do not think so. There are three different phases: "startup" (before selecting a product), "config" (once a product is selected) and "installation" (when performing the real installation). Once the config phase starts, the phase is updated and it does not change again until the installation starts.
jreidinger
approved these changes
Nov 7, 2024
Merged
imobachgs
added a commit
that referenced
this pull request
Jan 13, 2025
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
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Problem
The typical use cases for pre-scripts are:
About the first use case, customers coming from AutoYaST can still use their old profiles because the pre-scripts will continue to work. For Agama, we could find a better way to modify the profile in place.
However, about the other use cases, we might need the scripts to run before system probing. The problem is that, in the single-product scenario, Agama performs the probing from the very beginning. It does not wait for a profile or the UI to start.
Solution
Run the system probing again after running pre-scripts only if the system is already in the
configphase.Drawback
As a side effect, importing a profile containing a pre-script causes the storage proposal to be lost. However, that's not a problem if the profile already contains a storage section, so it is kind of a corner case.
Moreover, the storage service should be responsible for keeping the proposal, which is out of this PR's scope.
Testing