Commit Graph

308 Commits

Author SHA1 Message Date
Adriaan de Groot
79934aa513 [partition] Use GiB consistently in code 2019-06-07 23:04:24 +02:00
Adriaan de Groot
acf3dbcdcb [partition] Refactor getting the globalStorage value 2019-06-07 22:55:50 +02:00
Adriaan de Groot
3548792d1b [partition] Improve check canBeResized
- Report the globalSettings name properly (with "GiB")
 - Bail out on bad conversion early.
2019-06-07 22:51:33 +02:00
Adriaan de Groot
a263381996 [partition] Avoid an assert when running Calamares as user. 2019-05-31 12:27:32 +02:00
Adriaan de Groot
4a6b9f3528 [partition] Call update from init() in BootLoaderModel
- update() (might) add some extra rows for boot and root,
   which otherwise vanish temporarily when calling init.
2019-05-31 12:11:48 +02:00
Adriaan de Groot
d5f0bdd28c [partition] Simplify negative logic
- Instead of multiple continue statements to avoid negative cases,
   state the one positive case instead.
2019-05-31 12:08:58 +02:00
Adriaan de Groot
353e713f81 [partition] Complain loudly on dangling Partition pointers
- Don't crash if a bad pointer gets into colorutils.
2019-05-31 12:08:58 +02:00
Adriaan de Groot
0ebabfafd4 [partition] Move BootLoaderModel convenience functions
- These were hidden inside PartitionPage, but are useful elsewhere.
2019-05-31 12:08:58 +02:00
Adriaan de Groot
8d451622db [partition] Idiomatic use of Calamares::JobList 2019-05-28 16:39:00 +02:00
Adriaan de Groot
34ffc7a20a [libcalamares] Consistent namespace usage in partition service
- The sub-directories under libcalamares (e.g. Utils, ..)
   all live in namespace CalamaresUtils (well, except for Logger).
   The services (e.g. subdirs other than utils/) live in their
   own nested namespace, so partitioning should go into
   CalamaresUtils::Partition for consistency.
2019-05-14 05:52:58 -04:00
Adriaan de Groot
fd4bc4bb17 [partition] Avoid UB by initializing size everywhere 2019-05-14 05:29:18 -04:00
Adriaan de Groot
bbd2afc20f Merge branch 'issue-1129'
FIXES #1129
2019-05-09 08:14:25 -04:00
Adriaan de Groot
b08de96315 [partition] Comment w/ MiB instead of MB 2019-05-09 08:00:23 -04:00
Arnaud Ferraris
eb57be1be8 [partition] Remove deprecated sizeToSectors() function
Signed-off-by: Arnaud Ferraris <arnaud.ferraris@collabora.com>
2019-05-08 19:31:41 +02:00
Arnaud Ferraris
80fd3d3353 [partition] Switch to using the generic PartitionSize class
Instead of relying on a module-specific implementation, use the new
PartitionSize class for storing partition sizes.

Signed-off-by: Arnaud Ferraris <arnaud.ferraris@collabora.com>
2019-05-08 19:31:20 +02:00
Arnaud Ferraris
36bc0e6308 [partition] Move bytesToSectors() to CalamaresUtils namespace
In order to prepare for future refactoring of the PartSize class, move
the bytesToSectors() function to libcalamares in the CalamaresUtils
namespace.

Signed-off-by: Arnaud Ferraris <arnaud.ferraris@collabora.com>
2019-05-08 19:20:38 +02:00
Adriaan de Groot
9331a25905 [libcalamares] Remove Typedefs.h
- This small header file contained a few unrelated typedefs.
   Move those typedefs to the classes they relate to. This
   **does** mean that some consumers need to #include something
   else instead.
 - Use type names more consistently.

Editorial: why are **pages** responsible for creating the jobs?
2019-05-07 09:51:23 -04:00
Adriaan de Groot
502d43d111 [welcome] [partition] Rename GlobalStorage variable used for storage
- Change name passed into GS to use "GiB" instead of "GB", for
   consistency. This needs to be done in consumers as well.
2019-05-06 16:39:14 +02:00
Adriaan de Groot
e0a79f4c0f [partition] Reduce scope for nullptr dereference
- document what types are in use
 - avoid at least one nullptr deref
2019-05-03 08:47:34 -04:00
Adriaan de Groot
090aee9196 Modules: adjust to split-out utils/Variant.h
- Most modules only needed the variant support, not the "whole"
   CalamaresUtils header.
 - While here improve ordering of headers as well.
2019-04-29 06:14:21 -04:00
Adriaan de Groot
ca3110d429 [partition] Drop extra ; (warnings--) 2019-04-25 10:17:07 -04:00
Adriaan de Groot
3533bb3c2d Merge branch 'master' into issue-1061 2019-04-24 12:26:01 -04:00
Arnaud Ferraris
123222c0a8 Add global checks for partition layout
This commit adds several checks while reading the configuration of the
`partition` module, in case the partition layout configuration is
misformed. If an error is encountered, an message is printed to the
console and the module reverts to the default partition layout.

Checks are also added when implementing the partition layout, in case a
problem occurs that couldn't be anticipated (for example, when a
partition size is in %, checking its absolute value require knowing the
total device size, which is not the case when the configuration is
being read).

Signed-off-by: Arnaud Ferraris <arnaud.ferraris@collabora.com>
2019-04-18 10:55:47 +02:00
Arnaud Ferraris
d32733bf59 Switch to using PartSize class for partition sizes
Every call of `ParseStringSize` is replaced by using an instance of the
`PartUtils::PartSize` class.

This commit also removes the now-unused previous size parsing functions.

Signed-off-by: Arnaud Ferraris <arnaud.ferraris@collabora.com>
2019-04-18 10:55:47 +02:00
Arnaud Ferraris
3a58ae5e8b Introduce new partition size class based on NamedSuffix
In order to maintain consistency, and make use, create a new PartSize
class in the PartUtils namespace, which inherits from NamedSuffix for
easier parsing and handling of size strings.

The switch to using this class instead of the previous functions will be
done in a follow-up commit.

Signed-off-by: Arnaud Ferraris <arnaud.ferraris@collabora.com>
2019-04-18 10:55:47 +02:00
Adriaan de Groot
93be1a6582 [partition] Remove confusing spaces in logging 2019-04-15 10:16:09 -04:00
Adriaan de Groot
d2404851cd [partition] Reduce warnings (shadow, ;, types) 2019-04-15 10:06:21 -04:00
Adriaan de Groot
1a4a265262 [partition] Refactor check for ISO9660 2019-04-15 10:06:03 -04:00
Adriaan de Groot
75f1a05fec [partition] No copy-constructor for CDebug 2019-04-15 10:05:29 -04:00
Adriaan de Groot
520478847c Make logging more consistent.
- Across all the C++ modules, use Logger::SubEntry for sub/continues
   log lines, instead of somewhat-random indent strings.
2019-04-15 09:02:21 -04:00
Adriaan de Groot
63b317902d [libcalamares] [partition] Adjust to logging changes
- Use the un-paren'ed Continuation and SubEntry
2019-04-15 08:27:43 -04:00
Adriaan de Groot
198acadd23 [partition] [fsresizer] Fix KPMCore API versions
- tests need the defines as well
 - scandevices API changed with API 3.3.1
2019-04-12 13:17:38 +02:00
Adriaan de Groot
c844188907 [partition] Fix build w/ "3.3.1" API
- Need older-style scanning, but new-style iteration
2019-04-12 12:54:13 +02:00
Adriaan de Groot
4e24ea29e2 [partition] [fsresizer] Adjust to post-3.3.0 API
- KDE neon ships a post-3.3.0 KPMCore, with deprecations, but not yet
   the KPMCore 4 API, so add another API-version check to handle the
   deprecations. Keeps warnings down.
2019-04-12 12:44:59 +02:00
Adriaan de Groot
c0710cabe4 [partition] [fsresizer] Adjust to new #define
- Using KPMCORE4API is clearer than just relying on a version number
2019-04-12 12:16:55 +02:00
Adriaan de Groot
9917bc27fc
Merge pull request #1119 from cjlcarvalho/master
[partition] Fixing LVM scanning according to new kpmcore API
2019-04-12 11:03:03 +02:00
Adriaan de Groot
1a063a9b5d [partition] Use modern tr() annotation 2019-04-11 10:28:35 -04:00
Adriaan de Groot
547dc7d334
Merge pull request #1117 from a-wai/partition-layout-add-maxsize
[partition] Add max size parameter
2019-04-11 11:39:44 +02:00
Caio Carvalho
2c33535ee8 [partition] Using std::find_if to search in container for elements according to a condition 2019-04-09 23:14:34 -06:00
Caio Carvalho
34e091833d [partition] Fixing LVM scanning according to new kpmcore API 2019-04-09 23:12:31 -06:00
Arnaud Ferraris
5358e2314d [partition] Add max size parameter
When using a custom partition layout with partition sizes in %, it can
be useful to set an upper limit to the partition size.

For instance, using a 20% size for the `/` partition will create a 24G
partition on a 120GB drive, but a 200GB partition on a 1TB drive, which
is not useful, and could be avoided by setting a maximum partition size.

This commit adds the `maxSize` parameter (with a default value of 100%).

Signed-off-by: Arnaud Ferraris <arnaud.ferraris@collabora.com>
2019-04-08 12:19:35 +02:00
Adriaan de Groot
4caa401a07 [partition] Use structured logging
- Structured logging
 - Reduce chattiness
 - Use helper functions
 - Some TODO were done a while ago
2019-04-04 17:58:03 +02:00
Adriaan de Groot
b5a997d11e [partition] Use structured logging 2019-04-04 17:13:57 +02:00
Adriaan de Groot
7074829c24 [partition] Initialising BootLoader model is atomic
- don't send a bunch of update signals, do only a single
   model-reset when the BootLoaderModel is (re-)initialised.
2019-04-02 05:46:37 -04:00
Adriaan de Groot
cccd4402d8 [partition] Simplify DeviceModel sorting 2019-04-01 08:53:35 -04:00
Adriaan de Groot
544131c4bc [partition] Improve type notation 2019-04-01 08:48:25 -04:00
Adriaan de Groot
dd6d1bf1c1 [partition] Protect PartitionModel against concurrent access
- Try to avoid concurrent access while the model is being reset.
2019-04-01 08:14:39 -04:00
Adriaan de Groot
df921606b9 [partition] Update copyright headers
- Files modified in 2019 by me
2019-04-01 07:55:14 -04:00
Adriaan de Groot
752a922bde [partition] Lock the bootloader model during reset
- Try to avoid races between resetting the model and getting
   data from it for the UI.
2019-04-01 07:36:18 -04:00
Adriaan de Groot
3eae445ead [partition] Don't signal changes from model before they're done
- clear() signals modelReset(), which is true, but inconvenient
   when we do a bunch of changes afterwards. Block signals,
   and rely on own signaling when all of the changes are done.
 - Keep blocking signals while updating the model, since the row
   appends otherwise trigger a change in the connected combo box.
2019-03-29 11:59:51 -04:00