1
0
Fork 0
mirror of https://github.com/moby/moby.git synced 2022-11-09 12:21:53 -05:00
moby--moby/daemon
Kir Kolyshkin bb934c6aca 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>
2018-04-19 14:48:09 -07:00
..
caps Add canonical import comment 2018-02-05 16:51:57 -05:00
cluster Refactor code in cmd/dockerd/daemon.go 2018-04-13 00:14:20 +05:30
config Expose swarm raft tuning parameters in engine config 2018-03-28 16:54:43 -07:00
discovery Automated migration using 2018-03-16 11:03:43 -04:00
events Add canonical import comment 2018-02-05 16:51:57 -05:00
exec Add canonical import comment 2018-02-05 16:51:57 -05:00
graphdriver pkg/mount: implement/use filter for mountinfo parsing 2018-04-19 14:48:09 -07:00
images Builder: Fix CI issues 2018-03-19 14:29:36 -07:00
initlayer Add canonical import comment 2018-02-05 16:51:57 -05:00
links Add canonical import comment 2018-02-05 16:51:57 -05:00
listeners Add canonical import comment 2018-02-05 16:51:57 -05:00
logger Merge pull request #35739 from thaJeztah/bump-go-1.10 2018-04-13 13:56:38 -10:00
names Add canonical import comment 2018-02-05 16:51:57 -05:00
network Add canonical import comment 2018-02-05 16:51:57 -05:00
stats Fix stats collector spinning CPU if no stats are collected 2018-03-15 17:56:15 +01:00
testdata Remove libtrust dep from api 2017-09-06 12:05:19 -04:00
apparmor_default.go Add canonical import comment 2018-02-05 16:51:57 -05:00
apparmor_default_unsupported.go Add canonical import comment 2018-02-05 16:51:57 -05:00
archive.go Add canonical import comment 2018-02-05 16:51:57 -05:00
archive_tarcopyoptions.go Add canonical import comment 2018-02-05 16:51:57 -05:00
archive_tarcopyoptions_unix.go Add canonical import comment 2018-02-05 16:51:57 -05:00
archive_tarcopyoptions_windows.go Add canonical import comment 2018-02-05 16:51:57 -05:00
archive_unix.go Add canonical import comment 2018-02-05 16:51:57 -05:00
archive_windows.go Add canonical import comment 2018-02-05 16:51:57 -05:00
attach.go Add canonical import comment 2018-02-05 16:51:57 -05:00
auth.go Add canonical import comment 2018-02-05 16:51:57 -05:00
bindmount_unix.go Add canonical import comment 2018-02-05 16:51:57 -05:00
changes.go c.RWLayer: check for nil before use 2018-02-09 11:24:09 -08:00
checkpoint.go Add canonical import comment 2018-02-05 16:51:57 -05:00
cluster.go Add canonical import comment 2018-02-05 16:51:57 -05:00
commit.go Move all daemon image methods into imageService 2018-02-26 16:48:29 -05:00
configs.go Merge configs/secrets in unix implementation 2018-02-16 11:25:14 -05:00
configs_linux.go Add canonical import comment 2018-02-05 16:51:57 -05:00
configs_unsupported.go Add canonical import comment 2018-02-05 16:51:57 -05:00
configs_windows.go Add canonical import comment 2018-02-05 16:51:57 -05:00
container.go Move all daemon image methods into imageService 2018-02-26 16:48:29 -05:00
container_linux.go Add canonical import comment 2018-02-05 16:51:57 -05:00
container_operations.go Remove (now) extra call to sb.DisableService() 2018-03-28 14:16:31 -04:00
container_operations_unix.go Don't make container mount unbindable 2018-04-10 15:14:34 -04:00
container_operations_windows.go Move ImageService to new package 2018-02-26 16:49:37 -05:00
container_unix_test.go Automated migration using 2018-03-16 11:03:43 -04:00
container_windows.go Add canonical import comment 2018-02-05 16:51:57 -05:00
create.go Move ImageService to new package 2018-02-26 16:49:37 -05:00
create_test.go Automated migration using 2018-03-16 11:03:43 -04:00
create_unix.go Add canonical import comment 2018-02-05 16:51:57 -05:00
create_windows.go Add canonical import comment 2018-02-05 16:51:57 -05:00
daemon.go Remove use of global volume driver store 2018-04-17 14:07:08 -04:00
daemon_linux.go pkg/mount: implement/use filter for mountinfo parsing 2018-04-19 14:48:09 -07:00
daemon_linux_test.go Automated migration using 2018-03-16 11:03:43 -04:00
daemon_test.go Remove use of global volume driver store 2018-04-17 14:07:08 -04:00
daemon_unix.go Remove duplicate rootFSToAPIType 2018-02-14 11:59:18 -05:00
daemon_unix_test.go Remove old/uneeded volume migration from vers 1.7 2018-04-17 14:06:53 -04:00
daemon_unsupported.go Add canonical import comment 2018-02-05 16:51:57 -05:00
daemon_windows.go Remove old/uneeded volume migration from vers 1.7 2018-04-17 14:06:53 -04:00
daemon_windows_test.go Add canonical import comment 2018-02-05 16:51:57 -05:00
debugtrap_unix.go Add canonical import comment 2018-02-05 16:51:57 -05:00
debugtrap_unsupported.go Add canonical import comment 2018-02-05 16:51:57 -05:00
debugtrap_windows.go Add canonical import comment 2018-02-05 16:51:57 -05:00
delete.go Move ImageService to new package 2018-02-26 16:49:37 -05:00
delete_test.go Automated migration using 2018-03-16 11:03:43 -04:00
dependency.go Add canonical import comment 2018-02-05 16:51:57 -05:00
disk_usage.go Move direct volume driver interaction to store 2018-04-17 14:06:53 -04:00
errors.go Add canonical import comment 2018-02-05 16:51:57 -05:00
events.go Image events 2018-02-21 18:26:16 -05:00
events_test.go Add canonical import comment 2018-02-05 16:51:57 -05:00
exec.go daemon: use context error rather than inventing new one 2018-03-22 09:38:59 -07:00
exec_linux.go Fix AppArmor not being applied to Exec processes 2018-03-02 14:05:36 +01:00
exec_linux_test.go Fix AppArmor not being applied to Exec processes 2018-03-02 14:05:36 +01:00
exec_windows.go Add canonical import comment 2018-02-05 16:51:57 -05:00
export.go daemon.ContainerExport(): do not panic 2018-03-13 21:24:43 -07:00
health.go Add canonical import comment 2018-02-05 16:51:57 -05:00
health_test.go Add canonical import comment 2018-02-05 16:51:57 -05:00
info.go Remove use of global volume driver store 2018-04-17 14:07:08 -04:00
info_unix.go Add canonical import comment 2018-02-05 16:51:57 -05:00
info_unix_test.go Automated migration using 2018-03-16 11:03:43 -04:00
info_windows.go Add canonical import comment 2018-02-05 16:51:57 -05:00
inspect.go Move all daemon image methods into imageService 2018-02-26 16:48:29 -05:00
inspect_linux.go Add canonical import comment 2018-02-05 16:51:57 -05:00
inspect_test.go Automated migration using 2018-03-16 11:03:43 -04:00
inspect_windows.go Add canonical import comment 2018-02-05 16:51:57 -05:00
keys.go Add canonical import comment 2018-02-05 16:51:57 -05:00
keys_unsupported.go Add canonical import comment 2018-02-05 16:51:57 -05:00
kill.go Add canonical import comment 2018-02-05 16:51:57 -05:00
links.go Add canonical import comment 2018-02-05 16:51:57 -05:00
list.go Remove unnecessary GetImageIDAndOS use GetImage 2018-02-26 16:49:37 -05:00
list_test.go Clean some cli-only integration tests 2018-02-19 11:19:19 +01:00
list_unix.go Add canonical import comment 2018-02-05 16:51:57 -05:00
list_windows.go Add canonical import comment 2018-02-05 16:51:57 -05:00
logdrivers_linux.go Add canonical import comment 2018-02-05 16:51:57 -05:00
logdrivers_windows.go Add canonical import comment 2018-02-05 16:51:57 -05:00
logs.go Move log validator logic after plugins are loaded 2018-02-15 11:53:11 -05:00
logs_test.go Add canonical import comment 2018-02-05 16:51:57 -05:00
metrics.go Move ImageService to new package 2018-02-26 16:49:37 -05:00
metrics_unix.go Merge pull request #35829 from cpuguy83/no_private_mount_for_plugins 2018-02-21 12:28:13 +01:00
metrics_unsupported.go Add canonical import comment 2018-02-05 16:51:57 -05:00
monitor.go Windows: Remove servicing mode 2018-02-27 08:48:31 -08:00
mounts.go Add canonical import comment 2018-02-05 16:51:57 -05:00
names.go Add canonical import comment 2018-02-05 16:51:57 -05:00
network.go Delete the load balancer endpoint in Ingress nets 2018-03-12 15:19:08 -04:00
oci_linux.go pkg/mount: implement/use filter for mountinfo parsing 2018-04-19 14:48:09 -07:00
oci_linux_test.go Automated migration using 2018-03-16 11:03:43 -04:00
oci_windows.go Windows: Fix Hyper-V containers regression from 36586 2018-03-15 15:36:36 -07:00
pause.go Add canonical import comment 2018-02-05 16:51:57 -05:00
prune.go Move direct volume driver interaction to store 2018-04-17 14:06:53 -04:00
reload.go Move ImageService to new package 2018-02-26 16:49:37 -05:00
reload_test.go Automated migration using 2018-03-16 11:03:43 -04:00
reload_unix.go Add canonical import comment 2018-02-05 16:51:57 -05:00
reload_windows.go Add canonical import comment 2018-02-05 16:51:57 -05:00
rename.go Add canonical import comment 2018-02-05 16:51:57 -05:00
resize.go Add canonical import comment 2018-02-05 16:51:57 -05:00
restart.go Add canonical import comment 2018-02-05 16:51:57 -05:00
seccomp_disabled.go Add canonical import comment 2018-02-05 16:51:57 -05:00
seccomp_linux.go Add canonical import comment 2018-02-05 16:51:57 -05:00
seccomp_unsupported.go Add canonical import comment 2018-02-05 16:51:57 -05:00
secrets.go Add canonical import comment 2018-02-05 16:51:57 -05:00
secrets_linux.go Add canonical import comment 2018-02-05 16:51:57 -05:00
secrets_unsupported.go Add canonical import comment 2018-02-05 16:51:57 -05:00
secrets_windows.go Add canonical import comment 2018-02-05 16:51:57 -05:00
selinux_linux.go Add canonical import comment 2018-02-05 16:51:57 -05:00
selinux_unsupported.go Add canonical import comment 2018-02-05 16:51:57 -05:00
start.go Move ImageService to new package 2018-02-26 16:49:37 -05:00
start_unix.go Add canonical import comment 2018-02-05 16:51:57 -05:00
start_windows.go Add canonical import comment 2018-02-05 16:51:57 -05:00
stats.go Add canonical import comment 2018-02-05 16:51:57 -05:00
stats_collector.go Add canonical import comment 2018-02-05 16:51:57 -05:00
stats_unix.go Add canonical import comment 2018-02-05 16:51:57 -05:00
stats_windows.go Add canonical import comment 2018-02-05 16:51:57 -05:00
stop.go Add canonical import comment 2018-02-05 16:51:57 -05:00
top_unix.go Add canonical import comment 2018-02-05 16:51:57 -05:00
top_unix_test.go Add canonical import comment 2018-02-05 16:51:57 -05:00
top_windows.go Add canonical import comment 2018-02-05 16:51:57 -05:00
trustkey.go Add canonical import comment 2018-02-05 16:51:57 -05:00
trustkey_test.go Automated migration using 2018-03-16 11:03:43 -04:00
unpause.go Add canonical import comment 2018-02-05 16:51:57 -05:00
update.go Add canonical import comment 2018-02-05 16:51:57 -05:00
update_linux.go Add canonical import comment 2018-02-05 16:51:57 -05:00
update_windows.go Add canonical import comment 2018-02-05 16:51:57 -05:00
volumes.go Move direct volume driver interaction to store 2018-04-17 14:06:53 -04:00
volumes_linux.go Use rslave propagation for mounts from daemon root 2018-02-07 14:27:09 -05:00
volumes_linux_test.go Use rslave propagation for mounts from daemon root 2018-02-07 14:27:09 -05:00
volumes_unit_test.go Add canonical import comment 2018-02-05 16:51:57 -05:00
volumes_unix.go Remove old/uneeded volume migration from vers 1.7 2018-04-17 14:06:53 -04:00
volumes_unix_test.go Add canonical import comment 2018-02-05 16:51:57 -05:00
volumes_windows.go Merge pull request #36055 from cpuguy83/slave_mounts_for_root 2018-02-15 12:57:25 +01:00
wait.go Add canonical import comment 2018-02-05 16:51:57 -05:00
workdir.go Add canonical import comment 2018-02-05 16:51:57 -05:00