podman/libpod
Matthew Heon e45456223c Add validate() for containers
Until now, we've been validating every part of container
configuration through the With... functions that set the options.
This if fine when we are just validating the options to an
individual function, but things get complicated once we need to
validate conflicts between different options. We don't know the
order in which things were passed, so we need the validation on
both of the potential options that can conflict, resulting in
significant code duplication. To solve this, add a validate()
function for containers, and use this to check whether everything
is in a good state.

We can probably move more into this function (there are other
parts of container creation that also do validation of a sort)
but this is a good start to simplifying our options.

Signed-off-by: Matthew Heon <matthew.heon@pm.me>
2020-03-02 10:58:11 -05:00
..
common Set blob cache directory based on GraphDriver 2019-03-29 08:27:33 -04:00
config libpod/config: use built-in TOML instead of manually merging 2020-02-19 11:04:02 +01:00
define Add basic deadlock detection for container start/remove 2020-02-24 09:29:34 -05:00
driver removMergeDir from inspect result if not mounted 2019-08-13 15:13:20 -04:00
events make lint: enable gocritic 2020-01-13 14:27:02 +01:00
image Merge pull request #5236 from marusak/filter_by_id 2020-02-21 12:17:38 -05:00
layers Initial checkin from CRI-O repo 2017-11-01 11:24:59 -04:00
lock make lint: include unit tests 2020-01-14 10:51:59 +01:00
logs Merge pull request #5244 from Akasurde/i4962 2020-02-28 18:55:58 +01:00
boltdb_state.go codespell: spelling corrections 2019-11-13 08:15:00 +11:00
boltdb_state_internal.go make lint: enable gocritic 2020-01-13 14:27:02 +01:00
boltdb_state_linux.go Error on netns not exist only when ctr is running 2019-11-19 15:38:03 -05:00
boltdb_state_unsupported.go podman-remote inspect 2019-01-18 15:43:11 -06:00
common_test.go Remove ImageVolumes from database 2020-02-21 09:37:30 -05:00
container.go Remove ImageVolumes from database 2020-02-21 09:37:30 -05:00
container.log.go [WIP] Add cmd flag to show container name in log 2020-02-19 16:58:04 +05:30
container_api.go Ensure that exec sessions inherit supplemental groups 2020-02-28 11:32:56 -05:00
container_commit.go Deprecate & remove IsCtrSpecific in favor of IsAnon 2020-01-29 14:04:51 -05:00
container_graph.go make lint: enable gocritic 2020-01-13 14:27:02 +01:00
container_graph_test.go generate systemd: support pods and geneartig files 2019-08-21 17:28:30 +02:00
container_inspect.go Add support for multiple CNI networks in podman inspect 2020-02-25 13:20:25 -05:00
container_internal.go Add basic deadlock detection for container start/remove 2020-02-24 09:29:34 -05:00
container_internal_linux.go Ensure that exec sessions inherit supplemental groups 2020-02-28 11:32:56 -05:00
container_internal_test.go make lint: include unit tests 2020-01-14 10:51:59 +01:00
container_internal_unsupported.go When restoring containers, reset cgroup path 2019-10-10 14:53:29 -04:00
container_linux.go Do not fetch pod and ctr State on retrieval in Bolt 2018-07-31 14:19:50 +00:00
container_log_linux.go Misc typo fixes 2020-02-18 16:00:36 +05:30
container_log_unsupported.go libpod removal from main (phase 2) 2019-06-27 07:56:24 -05:00
container_top_linux.go refactor top code 2020-01-15 17:08:22 +01:00
container_top_unsupported.go libpod removal from main (phase 2) 2019-06-27 07:56:24 -05:00
container_unsupported.go Do not fetch pod and ctr State on retrieval in Bolt 2018-07-31 14:19:50 +00:00
container_validate.go Add validate() for containers 2020-03-02 10:58:11 -05:00
diff.go Correctly export the root file-system changes 2019-12-09 13:29:36 +01:00
events.go get last container event 2019-07-07 08:54:20 -05:00
healthcheck.go make lint: enable gocritic 2020-01-13 14:27:02 +01:00
healthcheck_linux.go golangci-lint pass number 2 2019-07-11 09:13:06 -05:00
healthcheck_unsupported.go remove libpod from main 2019-06-25 13:51:24 -05:00
in_memory_state.go add libpod/config 2019-10-31 17:42:37 +01:00
info.go Merge pull request #4220 from mheon/null_runtime 2019-10-11 20:55:37 +02:00
kube.go Merge pull request #4850 from vrothberg/fix-linting 2020-01-13 21:03:21 +01:00
mounts_linux.go set root propagation based on volume properties 2018-11-26 13:55:02 +01:00
networking_linux.go Add support for multiple CNI networks in podman inspect 2020-02-25 13:20:25 -05:00
networking_unsupported.go Add support for multiple CNI networks in podman inspect 2020-02-25 13:20:25 -05:00
oci.go Add an API for Attach over HTTP API 2020-01-16 13:49:21 -05:00
oci_attach_linux.go Allow users to disable detach keys 2019-11-05 14:10:43 -05:00
oci_attach_linux_cgo.go Implement conmon exec 2019-07-22 15:57:23 -04:00
oci_attach_linux_nocgo.go Implement conmon exec 2019-07-22 15:57:23 -04:00
oci_attach_unsupported.go Implement conmon exec 2019-07-22 15:57:23 -04:00
oci_conmon_linux.go Ensure that exec sessions inherit supplemental groups 2020-02-28 11:32:56 -05:00
oci_conmon_unsupported.go add libpod/config 2019-10-31 17:42:37 +01:00
oci_missing.go Add an API for Attach over HTTP API 2020-01-16 13:49:21 -05:00
oci_util.go libpod: fix case for executable file not found errors 2019-12-02 18:03:33 +01:00
options.go Add validate() for containers 2020-03-02 10:58:11 -05:00
pod.go Add ability for pods to use the host network 2020-02-17 16:21:07 -05:00
pod_api.go if container is not in a pid namespace, stop all processes 2019-12-19 13:33:17 -05:00
pod_internal.go add libpod/config 2019-10-31 17:42:37 +01:00
pod_status.go APIv2 review corrections #3 2020-01-25 15:09:09 -06:00
pod_top_linux.go libpod removal from main (phase 2) 2019-06-27 07:56:24 -05:00
pod_top_unsupported.go remove libpod from main 2019-06-25 13:51:24 -05:00
reset.go Add podman system reset command 2019-11-29 05:34:52 -05:00
runtime.go make lint: enable gocritic 2020-01-13 14:27:02 +01:00
runtime_cstorage.go make lint: enable gocritic 2020-01-13 14:27:02 +01:00
runtime_ctr.go Add validate() for containers 2020-03-02 10:58:11 -05:00
runtime_img.go Initial commit on compatible API 2020-01-10 09:41:39 -06:00
runtime_img_test.go switch projectatomic to containers 2018-08-16 17:12:36 +00:00
runtime_migrate.go Migrate can move containers to a new runtime 2019-10-10 10:25:06 -04:00
runtime_migrate_unsupported.go Add podman system reset command 2019-11-29 05:34:52 -05:00
runtime_pod.go APIv2 review corrections #3 2020-01-25 15:09:09 -06:00
runtime_pod_infra_linux.go Remove ImageVolumes from database 2020-02-21 09:37:30 -05:00
runtime_pod_linux.go Only modify conmon cgroup if we have running containers 2020-02-06 10:20:54 -05:00
runtime_pod_unsupported.go remove libpod from main 2019-06-25 13:51:24 -05:00
runtime_renumber.go Re-add locks to volumes. 2019-08-28 11:35:00 -04:00
runtime_volume.go Add basic deadlock detection for container start/remove 2020-02-24 09:29:34 -05:00
runtime_volume_linux.go Add basic deadlock detection for container start/remove 2020-02-24 09:29:34 -05:00
runtime_volume_unsupported.go remove libpod from main 2019-06-25 13:51:24 -05:00
state.go add libpod/config 2019-10-31 17:42:37 +01:00
state_test.go make lint: include unit tests 2020-01-14 10:51:59 +01:00
stats.go api: fix the CPU stats reported 2020-02-11 22:24:14 +01:00
stats_config.go api: fix the CPU stats reported 2020-02-11 22:24:14 +01:00
stats_unsupported.go remove libpod from main 2019-06-25 13:51:24 -05:00
storage.go bump containers/image to v5.0.0, buildah to v1.11.4 2019-10-29 13:35:18 -04:00
util.go Add an API for Attach over HTTP API 2020-01-16 13:49:21 -05:00
util_linux.go Fix SELinux labels of volumes 2020-02-13 21:42:57 -05:00
util_test.go Remove ImageVolumes from database 2020-02-21 09:37:30 -05:00
util_unsupported.go rm: add containers eviction with rm --force 2019-09-25 19:44:38 +02:00
volume.go binding tests for volumes 2020-02-27 13:11:42 -06:00
volume_inspect.go Deprecate & remove IsCtrSpecific in favor of IsAnon 2020-01-29 14:04:51 -05:00
volume_internal.go Ensure volumes reacquire locks on state refresh 2019-12-02 23:06:00 -05:00
volume_internal_linux.go make lint: enable gocritic 2020-01-13 14:27:02 +01:00
volume_internal_unsupported.go Add ability for volumes with options to mount/umount 2019-09-05 17:12:27 -04:00