Commit Graph

1201 Commits

Author SHA1 Message Date
Miloslav Trmač
754fc8e8ec Call imageNameForSaveDestination while creating the references
Instead of creating a reference string and then checking it again
to see which kind of archive it is, just call
imageNameForSaveDestination at the place where we already know
what kind of archive it is because we are making that decision.

This also notably fixes the use of strings.CONTAINS to see
whether the just constructed strings start with one of the
transport names; that would match anywhere in the
path.

Signed-off-by: Miloslav Trmač <mitr@redhat.com>

Closes: #1176
Approved by: rhatdan
2018-08-01 18:22:59 +00:00
Miloslav Trmač
18c4e2c835 Exit early in the simple case in imageNameForSaveDestination
... to make it a tiny bit easier to read.

Should not change behavior (but does not add unit tests).

Signed-off-by: Miloslav Trmač <mitr@redhat.com>

Closes: #1176
Approved by: rhatdan
2018-08-01 18:22:59 +00:00
Miloslav Trmač
b142cc6b4e Rename parameters of imageNameForSaveDestination
... to make their relationship clear, at the very least.

Should not change behavior (but does not add unit tests).

Signed-off-by: Miloslav Trmač <mitr@redhat.com>

Closes: #1176
Approved by: rhatdan
2018-08-01 18:22:59 +00:00
Miloslav Trmač
c27c6c6707 Split imageNameForSaveDestination from saveCmd
We will need to call it from two places in the future.

Should not change behavior, the code is pretty unchanged
(down to using confusing parameter names, which we will change
immediately) (but does not add unit tests).

Signed-off-by: Miloslav Trmač <mitr@redhat.com>

Closes: #1176
Approved by: rhatdan
2018-08-01 18:22:58 +00:00
Miloslav Trmač
a4b15548d1 Split a single if statement into two.
This should not change behavior; it will only make it
easier to show that future code move does not change it (but
does not add unit tets.)

Signed-off-by: Miloslav Trmač <mitr@redhat.com>

Closes: #1176
Approved by: rhatdan
2018-08-01 18:22:58 +00:00
Miloslav Trmač
3cebdc68b8 Move source handling before destination parsing
This will allow adding the reference in the OCIArchive/DockerArchive case
in one step, instead of appending it later.

Should not change behavior, except that source-related errors
will now be reported before possible destination-related errors
(but does not add unit tests).

Signed-off-by: Miloslav Trmač <mitr@redhat.com>

Closes: #1176
Approved by: rhatdan
2018-08-01 18:22:58 +00:00
Daniel J Walsh
8e1ef558eb Add --force to podman umount to force the unmounting of the rootfs
podman umount will currently only unmount file system if not other
process is using it, otherwise the umount decrements the container
storage to indicate that the caller is no longer using the mount
point, once the count gets to 0, the file system is actually unmounted.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>

Closes: #1184
Approved by: TomSweeneyRedHat
2018-08-01 17:53:30 +00:00
haircommander
f258e43c7c Add pod pause/unpause
Added Pause() and Unpause() to libpod/pod.go

Added man pages, tests and completions

Signed-off-by: haircommander <pehunt@redhat.com>

Closes: #1126
Approved by: rhatdan
2018-07-27 14:20:08 +00:00
haircommander
876a30590b Refactored method of getting pods
Now, for commands that have --latest and --all, the context flags are checked, and pods are grabbed in a single function

Signed-off-by: haircommander <pehunt@redhat.com>

Closes: #1161
Approved by: rhatdan
2018-07-27 12:39:12 +00:00
Daniel J Walsh
f9152d075a Cleanup descriptions and help information
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>

Closes: #1167
Approved by: baude
2018-07-27 02:17:29 +00:00
Miloslav Trmač
c142409598 Skip seccomp-dependent tests on non-Linux
Currently, getRuntimeSpec always fails on non-Linux because
spec.CreateConfigToOCISpec always fails, because the podman CLI
sets up a seccomp path, and processing that on non-Linux is not supported.  This
breaks testing of entirely unrelated options.

We can either skip the tests on non-Linux, or explicitly disable seccomp
inside the tests.  Linux testing matters much more than other platforms,
and the tests are more reliable when they don't change supposedly
unrelated options; so, skip the tests on non-Linux.

Signed-off-by: Miloslav Trmač <mitr@redhat.com>

Closes: #1115
Approved by: rhatdan
2018-07-26 20:47:31 +00:00
Miloslav Trmač
f649db951e Remove cmd/podman/user.go
None of the functions are used within the package, and it does not build
on non-Linux systems.

(Similar code continues to exist in pkg/chrootuser, and is unaffected.)

Signed-off-by: Miloslav Trmač <mitr@redhat.com>

Closes: #1115
Approved by: rhatdan
2018-07-26 20:47:31 +00:00
haircommander
73e3945282 Add pod kill
With tests, man page, and completions.

Signed-off-by: haircommander <pehunt@redhat.com>

Closes: #1125
Approved by: rhatdan
2018-07-25 18:22:35 +00:00
haircommander
8ce0e0b246 Added pod restart
With tests, man page and completions.

Signed-off-by: haircommander <pehunt@redhat.com>

Closes: #1152
Approved by: rhatdan
2018-07-25 17:54:27 +00:00
Daniel J Walsh
c90b7400a8 Merge pull request #1116 from mheon/namespaces
Add Pod and Container namespaces
2018-07-25 08:47:35 -04:00
Giuseppe Scrivano
e43270fc5e podman: allow to specify the IPC namespace to join
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>

Closes: #1145
Approved by: rhatdan
2018-07-24 21:50:49 +00:00
Giuseppe Scrivano
977c8a9cd6 podman: allow to specify the UTS namespace to join
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>

Closes: #1145
Approved by: rhatdan
2018-07-24 21:50:49 +00:00
Giuseppe Scrivano
8223fbaac6 podman: allow to specify the PID namespace to join
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>

Closes: #1145
Approved by: rhatdan
2018-07-24 21:50:49 +00:00
Giuseppe Scrivano
819c807125 podman: allow to specify the userns to join
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>

Closes: #1145
Approved by: rhatdan
2018-07-24 21:50:49 +00:00
Matthew Heon
7a358e4277 Address first round of review comments
Signed-off-by: Matthew Heon <matthew.heon@gmail.com>
2018-07-24 16:12:31 -04:00
Matthew Heon
3ae0c80806 Add --namespace flag to Podman
Allows joining libpod to a specific namespace when running a
Podman command.

Signed-off-by: Matthew Heon <matthew.heon@gmail.com>
2018-07-24 16:12:31 -04:00
Daniel J Walsh
153d33814d We don't currently support --mac-address
Make this clear in the docs and Command.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>

Closes: #1138
Approved by: mheon
2018-07-24 14:52:30 +00:00
Matthew Heon
3c5ce9b8bf Update container Mounted() and Mountpoint() functions
Addresses a regression in `podman mount` due to our mount changes
to allow concurrency by letting c/storage handle mounting and
unmounting.

Combine Mounted() and Mountpoint() into one function and query
c/storage directly to ensure we get accurate information.

Fixes: #1143

Signed-off-by: Matthew Heon <matthew.heon@gmail.com>

Closes: #1144
Approved by: baude
2018-07-24 02:25:11 +00:00
Valentin Rothberg
8569ed0305 AppArmor: runtime check if it's enabled on the host
Check at runtime if AppArmor is enabled on the host.

Signed-off-by: Valentin Rothberg <vrothberg@suse.com>

Closes: #1128
Approved by: mheon
2018-07-23 18:11:09 +00:00
Daniel J Walsh
2c11e38b24 Add format descriptors infor to podman top
Trying to play with podman top, I had a hard time
finding info on format options.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>

Closes: #1134
Approved by: umohnani8
2018-07-23 17:02:12 +00:00
haircommander
8f48e60840 Fix error handling in pod start/stop.
Before, errors in containers would never be printed, and a generic error would only be shown.

Signed-off-by: haircommander <pehunt@redhat.com>

Closes: #1132
Approved by: mheon
2018-07-23 14:22:07 +00:00
Matthew Heon
72c82fb79e Merge pull request #1117 from haircommander/pod-start-stop1
Add pod start and stop
2018-07-20 13:50:54 -04:00
Matthew Heon
15a1e9c951 Merge pull request #1120 from haircommander/pod-ps-status-hotfix
Pod ps now uses pod.Status()
2018-07-20 13:26:09 -04:00
Matthew Heon
6cae4a0e94 Merge pull request #1103 from haircommander/load_dockerless
Podman load/tag/save prepends localhost when no registry is present
2018-07-20 12:50:18 -04:00
Matthew Heon
7944bca468 Merge pull request #1104 from rhatdan/mounting
Let containers/storage keep track of mounts
2018-07-20 12:31:32 -04:00
haircommander
0fecfeee63 Podman load/tag/save prepend localhost when no repository is present
Instead of having docker.io/library as its repository. Test included.

Signed-off-by: haircommander <pehunt@redhat.com>
2018-07-20 11:46:11 -04:00
haircommander
7716628e6f Pod ps now uses pod.Status()
It used to call ctr.State() to figure out what the pod status was, which certainly locked/unlocked excessively. Status now uses the libpod/pod function that bypasses this.

Signed-off-by: haircommander <pehunt@redhat.com>
2018-07-20 11:38:54 -04:00
haircommander
17f257140e Added pod start and stop
As well as added tests, man pages, and completions.
Also reformatted and refactored a couple of other small things in the other pod commands.

Signed-off-by: haircommander <pehunt@redhat.com>
2018-07-20 08:44:44 -04:00
Giuseppe Scrivano
067ae31095 rootless: allow a per-user storage.conf file
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2018-07-20 11:00:50 +02:00
Daniel J Walsh
85db3f09bf Let containers/storage keep track of mounts
Currently we unmount storage that is still in use.
We should not be unmounting storeage that we mounted
via a different command or by podman mount. This
change relies on containers/storage to umount keep track of
how many times the storage was mounted before really unmounting
it from the system.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
2018-07-19 17:01:07 -04:00
Valentin Rothberg
ba1871dac0 podman-top: use containers/psgo
Use github.com/containers/psgo instead of execing `ps (1)`.  The psgo
library enables a much more flexible interface with respect to which
data to be printed (e.g., capabilities, seccomp mode, PID, PCPU, etc.)
while the output can be parsed reliably.  The library does not use
ps (1) but parses /proc and /dev instead.  To list the processes of a
given container, psgo will join the mount namespace of the given
container and extract all data from there.

Notice that this commit breaks compatibility with docker-top.

Signed-off-by: Valentin Rothberg <vrothberg@suse.com>

Closes: #1113
Approved by: rhatdan
2018-07-19 20:47:52 +00:00
Joshua Roys
ea5fad6c8b Fix ps filter with key=value labels
Closes: #1101
Approved by: rhatdan
2018-07-16 18:27:02 +00:00
Matthew Heon
259136c36c Change logic for detecting conflicting flags in ps
There's no reason --size cannot be used together with a Go
template - in fact, using a Go template for {{.Size}} without
--size being passed will not work.

Allow use of --namespace and --size with Go templates, but not
with --quiet. Do not allow --namespace and --size at the same
time.

Signed-off-by: Matthew Heon <mheon@redhat.com>
2018-07-13 16:00:23 -04:00
Matthew Heon
5b43a6a7ee Only print container size JSON if --size was requested
To do this, move it into a separate struct, and embed that in
the JSON we return.

Signed-off-by: Matthew Heon <mheon@redhat.com>
2018-07-13 14:28:41 -04:00
Matthew Heon
f08fffa306 Don't print rootfs and rw sizes if they're empty
We're printing them unconditionally now, even if --size is not
passed, which is confusing (you see a pair of 0s for container
size, when it is clearly not 0).

This may introduce bugs related to containers with an rwsize of 0
(freshly created from an image) and --size specified, but is
definitely better than what we have now.

Signed-off-by: Matthew Heon <mheon@redhat.com>
2018-07-13 14:28:41 -04:00
Matthew Heon
4c44185199 Major fixes to podman ps --format=json output
A number of fields were never being populated. Populate them as
best we can.

Add a new field, exited, to indicate whether the exit code has
meaning (IE, the container has exited).

Fix handling of running time - it stops ticking when the
container stops. There is further work needed here, I suspect.

Signed-off-by: Matthew Heon <mheon@redhat.com>
2018-07-13 14:28:41 -04:00
Matthew Heon
d25ebcc35b Ignore running containers in ps exit-code filters
Signed-off-by: Matthew Heon <mheon@redhat.com>
2018-07-13 14:28:41 -04:00
Matthew Heon
028374b99e Record whether the container has exited
Use this to supplement exit codes returned from containers, to
make sure we know when exit codes are invalid (as the container
has not yet exited)

Signed-off-by: Matthew Heon <mheon@redhat.com>
2018-07-13 14:28:41 -04:00
Daniel J Walsh
673465a747 Merge pull request #1075 from giuseppe/rootless-no-symlinks-into-storage-path
rootless: fix usage on Fedora Silverblue/CoreOS
2018-07-13 14:15:54 -04:00
Daniel J Walsh
827359c8e6 Merge pull request #1065 from haircommander/pod-start-create-rm
Podman pod create/rm/ps commands with man pages and tests
2018-07-13 13:57:04 -04:00
Giuseppe Scrivano
62e48e5b71 rootless: correctly propagate the exit status from the container
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
2018-07-13 16:41:11 +02:00
Daniel J Walsh
35b7a875fd Need to wait for container to exit before completing run/start completes
This fixes a race condition where conmon is still writing the exit
file and the container is exiting.

Also we should not be ignoring the -a stdin flag if the user specifies
--interactive mode.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>

Closes: #1086
Approved by: baude
2018-07-13 14:14:42 +00:00
Daniel J Walsh
299f471d1f If proxy fails then then signal should be sent to the main process
This way ^c will actually kill the host process if the container is not
actually running.

Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>

Closes: #1086
Approved by: baude
2018-07-13 14:14:42 +00:00
haircommander
a04a8d1dd4 Added full podman pod ps, with tests and man page
Signed-off-by: haircommander <pehunt@redhat.com>
2018-07-13 09:17:33 -04:00
haircommander
1aad3fd96b Podman pod create/rm commands with man page and tests.
Includes a very stripped down version of podman pod ps, just for testing

Signed-off-by: haircommander <pehunt@redhat.com>
2018-07-13 09:05:03 -04:00