change behaviour of stopped a stopped/exited machine to match qemu in that stopping a stopped machine is NOT an error.
add condition to machine rm where rm is not run twice due to a logic error
[NO NEW TESTS NEEDED]
Signed-off-by: Brent Baude <bbaude@redhat.com>
HyperV and appleHV machine inspect commands were missing podman socket
info. This also fixes machine inspect tests on hyperV
Signed-off-by: Ashley Cui <acui@redhat.com>
allow the machine stop test to pass.
small change to WSL stop on an already stopped machine to allow for it
to behave like hyperv and qemu
Signed-off-by: Brent Baude <bbaude@redhat.com>
a couple of small corrections for the ssh tests on WSL. we need to
check for a different os type and windows emits a warning in stderr.
Signed-off-by: Brent Baude <bbaude@redhat.com>
the emitted message for starting a machine that is is already started
needed to be slightly altered for wsl.
[NO NEW TESTS NEEDED]
Signed-off-by: Brent Baude <bbaude@redhat.com>
Currently proxys are not supported on hyperV, skip the test and
document it for now.
Opened https://github.com/containers/podman/issues/20129 to track the
issue.
Signed-off-by: Ashley Cui <acui@redhat.com>
This PR allows you to run the pkg/machine/e2e tests for the applehv PROVIDER. This does not mean they pass, only that they can run. There also appears to be leftover gvproxy processes at the conclusion of a single test. This will need to be corrected.
[NO NEW TESTS NEEDED]
Signed-off-by: Brent Baude <bbaude@redhat.com>
Fixed a bug where the rootful option to the podman machine init command
would not be written to to the machine config, and the rootful docker
sock would not be set.
Signed-off-by: Ashley Cui <acui@redhat.com>
The processing and setting of the static and volume directories was
scattered across the code base (including c/common) leading to subtle
errors that surfaced in #19938.
There were multiple issues that I try to summarize below:
- c/common loaded the graphroot from c/storage to set the defaults for
static and volume dir. That ignored Podman's --root flag and
surfaced in #19938 and other bugs. c/common does not set the
defaults anymore which gives Podman the ability to detect when the
user/admin configured a custom directory (not empty value).
- When parsing the CLI, Podman (ab)uses containers.conf structures to
set the defaults but also to override them in case the user specified
a flag. The --root flag overrode the static dir which is wrong and
broke a couple of use cases. Now there is a dedicated field for in
the "PodmanConfig" which also includes a containers.conf struct.
- The defaults for static and volume dir and now being set correctly
and adhere to --root.
- The CONTAINERS_CONF_OVERRIDE env variable has not been passed to the
cleanup process. I believe that _all_ env variables should be passed
to conmon to avoid such subtle bugs.
Overall I find that the code and logic is scattered and hard to
understand and follow. I refrained from larger refactorings as I really
just want to get #19938 fixed and then go back to other priorities.
https://github.com/containers/common/pull/1659 broke three pkg/machine
tests. Those have been commented out until getting fixed.
Fixes: #19938
Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
the window for hyperv's "Starting" state is very narrow; so to more
mimic qemu, we follow suit. starting bools are set when the vm boots
and when it communicates back on the read socket.
this allows pkg/machine/init_test.go to pass
[NO NEW TESTS NEEDED]
Signed-off-by: Brent Baude <bbaude@redhat.com>
When doing a machine rm -f (force removal of a machine) or a machine
reset (force removal of all machines), there is no need to use a
"polite/soft" stop.
this will also speed up pkg/machine/e2e tests.
[NO NEW TESTS NEEDED]
Signed-off-by: Brent Baude <bbaude@redhat.com>
Container ports defined with containerPort were exposed by default
even though kubernetes interprets them as mostly informative.
Closes#17028
Signed-off-by: Peter Werner <wpw.peter@gmail.com>
the timezone was being set with the wrong path separator for hyperv
because it was being generated on Windows.
Fixes: coreos/fedora-coreos-tracker#1580
Signed-off-by: Brent Baude <bbaude@redhat.com>
some problems were found in machine tests on hyperv.
in the case of rootful, it is currently not implemented. an issue #20092 has been
created for that problem.
there also seems to be a timezone issue between ignition and fcos right
now. inquiries are in for that but no issue generated for that. this
problem is not exclusive to hyperv by any means.
both of the above have been skipped or commented out.
otherwise, this fixes machine state reporting for consistency.
Signed-off-by: Brent Baude <bbaude@redhat.com>
previous attempts to us os.truncate to resize raw disks did not work because the unit was wrong. the unit must be in bytes.
[NO NEW TESTS NEEDED]
Signed-off-by: Brent Baude <bbaude@redhat.com>
This PR is a mishmash of updates needed so that the hyperv provider can
begin to passd the machine e2e tests.
Summary as follows:
* Added custom error handling for machine errors so that all providers
can generate the same formatted error messages. The ones implemented
thus far are needed for the basic and init tests. More will come as
they are identified.
* Vendored new libhvee for better memory inspection. The memory type
changed from uint32 to uint64.
* Some machine e2e tests used linux-specific utilities to check various
error conditions and messages (like pgrep). Those were made into
functions and implemented on an operating system level.
[NO NEW TESTS NEEDED]
Signed-off-by: Brent Baude <bbaude@redhat.com>
commit cf364703fc changed the way
/sys/fs/cgroup is mounted when there is not a netns and it now honors
the ro flag. The mount was created using a bind mount that is a
problem when using a cgroup namespace, fix that by mounting a fresh
cgroup file system.
Closes: https://github.com/containers/podman/issues/20073
Signed-off-by: Giuseppe Scrivano <gscrivan@redhat.com>
If you are running a quadlet with anonymous volumes, then the volume
will leak ever time you restart the service. This change will
cause the volume to be removed.
Fixes: https://github.com/containers/podman/issues/20070
Signed-off-by: Daniel J Walsh <dwalsh@redhat.com>
podman could benefit from stronger typing with some of our methods and
functions where uint64s, for example, are used because the unit of
measurement is unknown. Also, the need to convert between storage units
is critical in podman and this package supports easy conversion as
needed.
to start, we implement the storage units (bytes, KiB, MiB, and GiB)
only.
Signed-off-by: Brent Baude <bbaude@redhat.com>
The --syslog flag has not been passed to the cleanup process (i.e.,
conmon's exit args) complicating debugging quite a bit.
Signed-off-by: Valentin Rothberg <vrothberg@redhat.com>
The network list compat API requires us to include all containers with
their ip addresses for the selected networks. Because we have no network
-> container mapping in the db we have to go through all containers
every time. However the old code did it in the most ineffective way
possible, it quered the containers from the db for each individual
network. The of course is extremely expensive. Now the other expensive
call is calling Inspect() on the container each time. Inspect does for
more than we need.
To fix this we fist query containers only once for the API call, then
replace the inspect call with directly accessing the network status.
This will speed things up a lot!
The reported scenario includes 100 containers and 25 networks,
previously it took 1.5s for the API call not it takes 24ms, that is a
more than a 62x improvement. (tested with curl)
[NO NEW TESTS NEEDED] We have no timing tests.
Fixes#20035
Signed-off-by: Paul Holzinger <pholzing@redhat.com>