Kir Kolyshkin
a97e7a41c8
pkg/mount: implement/use filter for mountinfo parsing
...
Functions `GetMounts()` and `parseMountTable()` return all the entries
as read and parsed from /proc/self/mountinfo. In many cases the caller
is only interested only one or a few entries, not all of them.
One good example is `Mounted()` function, which looks for a specific
entry only. Another example is `RecursiveUnmount()` which is only
interested in mount under a specific path.
This commit adds `filter` argument to `GetMounts()` to implement
two things:
1. filter out entries a caller is not interested in
2. stop processing if a caller is found what it wanted
`nil` can be passed to get a backward-compatible behavior, i.e. return
all the entries.
A few filters are implemented:
- `PrefixFilter`: filters out all entries not under `prefix`
- `SingleEntryFilter`: looks for a specific entry
Finally, `Mounted()` is modified to use `SingleEntryFilter()`, and
`RecursiveUnmount()` is using `PrefixFilter()`.
Unit tests are added to check filters are working.
[v2: ditch NoFilter, use nil]
[v3: ditch GetMountsFiltered()]
[v4: add unit test for filters]
[v5: switch to gotestyourself]
Signed-off-by: Kir Kolyshkin <kolyshkin@gmail.com >
Upstream-commit: bb934c6aca3e77541dd4fd51b9ab2706294dadda
Component: engine
2018-04-19 14:48:09 -07:00
..
2018-02-05 16:51:57 -05:00
2018-04-13 00:14:20 +05:30
2018-03-28 16:54:43 -07:00
2018-03-16 11:03:43 -04:00
2018-02-05 16:51:57 -05:00
2018-02-05 16:51:57 -05:00
2018-04-19 14:48:09 -07:00
2018-03-19 14:29:36 -07:00
2018-02-05 16:51:57 -05:00
2018-02-05 16:51:57 -05:00
2018-02-05 16:51:57 -05:00
2018-04-13 13:56:38 -10:00
2018-02-05 16:51:57 -05:00
2018-02-05 16:51:57 -05:00
2018-03-15 17:56:15 +01:00
2017-09-06 12:05:19 -04:00
2018-02-05 16:51:57 -05:00
2018-02-05 16:51:57 -05:00
2018-02-05 16:51:57 -05:00
2018-02-05 16:51:57 -05:00
2018-02-05 16:51:57 -05:00
2018-02-05 16:51:57 -05:00
2018-02-05 16:51:57 -05:00
2018-02-05 16:51:57 -05:00
2018-02-05 16:51:57 -05:00
2018-02-05 16:51:57 -05:00
2018-02-05 16:51:57 -05:00
2018-02-09 11:24:09 -08:00
2018-02-05 16:51:57 -05:00
2018-02-05 16:51:57 -05:00
2018-02-26 16:48:29 -05:00
2018-02-05 16:51:57 -05:00
2018-02-05 16:51:57 -05:00
2018-02-05 16:51:57 -05:00
2018-02-16 11:25:14 -05:00
2018-02-05 16:51:57 -05:00
2018-04-10 15:14:34 -04:00
2018-02-26 16:49:37 -05:00
2018-03-28 14:16:31 -04:00
2018-03-16 11:03:43 -04:00
2018-02-05 16:51:57 -05:00
2018-02-26 16:48:29 -05:00
2018-03-16 11:03:43 -04:00
2018-02-05 16:51:57 -05:00
2018-02-05 16:51:57 -05:00
2018-02-26 16:49:37 -05:00
2018-03-16 11:03:43 -04:00
2018-04-19 14:48:09 -07:00
2018-04-17 14:07:08 -04:00
2018-04-17 14:06:53 -04:00
2018-02-14 11:59:18 -05:00
2018-02-05 16:51:57 -05:00
2018-02-05 16:51:57 -05:00
2018-04-17 14:06:53 -04:00
2018-04-17 14:07:08 -04:00
2018-02-05 16:51:57 -05:00
2018-02-05 16:51:57 -05:00
2018-02-05 16:51:57 -05:00
2018-03-16 11:03:43 -04:00
2018-02-26 16:49:37 -05:00
2018-02-05 16:51:57 -05:00
2018-04-17 14:06:53 -04:00
2018-02-05 16:51:57 -05:00
2018-02-05 16:51:57 -05:00
2018-02-21 18:26:16 -05:00
2018-03-02 14:05:36 +01:00
2018-03-02 14:05:36 +01:00
2018-02-05 16:51:57 -05:00
2018-03-22 09:38:59 -07:00
2018-03-13 21:24:43 -07:00
2018-02-05 16:51:57 -05:00
2018-02-05 16:51:57 -05:00
2018-03-16 11:03:43 -04:00
2018-02-05 16:51:57 -05:00
2018-02-05 16:51:57 -05:00
2018-04-17 14:07:08 -04:00
2018-02-05 16:51:57 -05:00
2018-03-16 11:03:43 -04:00
2018-02-05 16:51:57 -05:00
2018-02-26 16:48:29 -05:00
2018-02-05 16:51:57 -05:00
2018-02-05 16:51:57 -05:00
2018-02-05 16:51:57 -05:00
2018-02-05 16:51:57 -05:00
2018-02-19 11:19:19 +01:00
2018-02-05 16:51:57 -05:00
2018-02-05 16:51:57 -05:00
2018-02-26 16:49:37 -05:00
2018-02-05 16:51:57 -05:00
2018-02-05 16:51:57 -05:00
2018-02-05 16:51:57 -05:00
2018-02-15 11:53:11 -05:00
2018-02-21 12:28:13 +01:00
2018-02-05 16:51:57 -05:00
2018-02-26 16:49:37 -05:00
2018-02-27 08:48:31 -08:00
2018-02-05 16:51:57 -05:00
2018-02-05 16:51:57 -05:00
2018-03-12 15:19:08 -04:00
2018-03-16 11:03:43 -04:00
2018-04-19 14:48:09 -07:00
2018-03-15 15:36:36 -07:00
2018-02-05 16:51:57 -05:00
2018-04-17 14:06:53 -04:00
2018-03-16 11:03:43 -04:00
2018-02-05 16:51:57 -05:00
2018-02-05 16:51:57 -05:00
2018-02-26 16:49:37 -05:00
2018-02-05 16:51:57 -05:00
2018-02-05 16:51:57 -05:00
2018-02-05 16:51:57 -05:00
2018-02-05 16:51:57 -05:00
2018-02-05 16:51:57 -05:00
2018-02-05 16:51:57 -05:00
2018-02-05 16:51:57 -05:00
2018-02-05 16:51:57 -05:00
2018-02-05 16:51:57 -05:00
2018-02-05 16:51:57 -05:00
2018-02-05 16:51:57 -05:00
2018-02-05 16:51:57 -05:00
2018-02-05 16:51:57 -05:00
2018-02-05 16:51:57 -05:00
2018-02-26 16:49:37 -05:00
2018-02-05 16:51:57 -05:00
2018-02-05 16:51:57 -05:00
2018-02-05 16:51:57 -05:00
2018-02-05 16:51:57 -05:00
2018-02-05 16:51:57 -05:00
2018-02-05 16:51:57 -05:00
2018-02-05 16:51:57 -05:00
2018-02-05 16:51:57 -05:00
2018-03-16 11:03:43 -04:00
2018-02-05 16:51:57 -05:00
2018-02-05 16:51:57 -05:00
2018-02-05 16:51:57 -05:00
2018-02-05 16:51:57 -05:00
2018-02-05 16:51:57 -05:00
2018-02-07 14:27:09 -05:00
2018-02-07 14:27:09 -05:00
2018-02-05 16:51:57 -05:00
2018-02-05 16:51:57 -05:00
2018-04-17 14:06:53 -04:00
2018-02-15 12:57:25 +01:00
2018-04-17 14:06:53 -04:00
2018-02-05 16:51:57 -05:00
2018-02-05 16:51:57 -05:00