fcb73df1cb added this message back in 2019 but the specific error code
that we receive from the Python bridge is now different, as we can see
in new failures:
/base1/fonts/patternfly.woff: external channel failed: protocol-error
Instead of trying to figure out how to make the Python bridge return
exactly the same error code in this situation, let's just expand the
pattern.
With only looking at aos-release's `ID` field, we are missing out a lot
of derivatives, such as CentOS Stream, Rocky, or Debian-likes. Consider
ID_LIKE as well to fix that.
E.g. on Ubuntu, `ID_LIKE` is "debian", on CentOS it's "rhel fedora", on
Rocky Linux it's "rhel centos fedora".
Use that to clean up the manifest map, as Ubuntu and RHEL are now
redundant.
testBasic covers the "direct package name" case in the manifest. Add
a new testOsMap test to check the distroname → packagename map that we
use in real life.
Similarly to commit 584cdfb6a0, remove the installed cockpit-beiboot
from the temporary install tree for arch-indep builds. That file was
added in commit fb673e0a7.
changing the `value` attribute of React input elements to null changes
it from controlled to uncontrolled, which leads to React logging errors
in the browser console.
This fixes errors of the form:
Warning: A component is changing a controlled input to be uncontrolled. This is likely caused by the value changing from a defined to undefined, which should not happen...
This scenario installs updates-testing updates before running the tests
to offer a "nightly" scenario and to replace the fedora-testing image
which is tested every X days.
On the most recent image refresh [1] the rendered MAC string becomes
shorter, which makes the string from the reference stick out of the
ignored area, and thus cause a pixel diff. Use the new reference with
the shorter string, so that it works with both the old and the new
image.
[1] https://github.com/cockpit-project/bots/pull/5189
`semanage` needs a lot of memory, and with 768 MiB the VM often runs
into low ram and kswapd rampage especially on RHEL 8. Increase to
default RAM size to fix that.
The original reason for reducing the memory was the static "packing" of
parallelized tests by run-tests, but since it introduced the concept of
"cost" that isn't necessary any more.
It was defined in argparse, but entirely ignored, so that it started the
protocol. Also add it to the manpage.
This also unbreaks the regular cockpit/ws container builds, as they use
--version to define the tag.
Add an integration test which exercises all non-protocol options.
Fixes#19233
It has never been in the manpage, it isn't implemented (it just starts
the protocol), and the C version's output is next to useless for users.
We can implement this if/when we ever get an use case.
This previously initialized `self.bridge_rules`, but never actually
updated it, due to the `bridge_configs` vs. `bridge_rules` confusion.
Change both the class member and the local variable to `bridge_configs`
to become consistent with `Packages.get_bridge_configs()`.
Fix the type of this rules list. mypy spotted this after fixing the
variable confusion.
These are mock tests for check-testlib. There's no point in actually
running them as top-level tests, as that wastes quite a number of VM
boots.
So move them into test/example/, and check run-tests against that
testdir instead of the real test/verify/. This also better isolates
check-testlib from the real tests.
testReboot and testLuks1Slots are destructive (the latter because of its
rm rampage in /usr/bin), so move them into a new
TestStorageLuksDestructive class which keeps the provisioning.
The others can now run in FMF, it's useful to cover LUKS there.
This causes some inexplicable pixel noise, adjust the references.
We have many storage tests which are only destructive because they
provision a VM with more RAM, to fit cryptsetup's
inflexible/unconfigurable PBKDF. Let's convert them to nondestructive
tests to speed them up and also make them easier to debug.
We don't try to be specific about what is exactly wrong with the pool
since that doesn't seem to be too well defined. Instead we rely on
error messages from Stratis itself when the user tries operations that
are no longer possible.
The basic test is extended to make sure that no unexpected alert shows
up.
Doing that messes up the kernel's mount state, and eventually mounts the
new /boot *on top of* the old /boot and /boot/efi. This results in
/boot/efi not being umountable any more, and hanging forever during
shutdown on waiting for boot-efi.mount to finish stopping.
The cause of this is unclear, but this keeps breaking random tests and
thus causes unnecessary pain/retries. Until we investigate this bug,
let's shut it up.
See issue #19235
Fedora 39 now has a default crashkernel= kernel option, so that
kdump.service can start by default. Now only old Fedoras are left, so
invert the condition to become simpler and eventually empty.
This will allow us to control the value from test plans, in particular
for disabling at least some unexpected message checks for reverse
dependency testing. We don't want to disable unexpected messages
in general for fmf, as we are looking for exactly these in e.g.
selinux-policy reverse dependency tests.
Move from `su` to `runtest`, as with the former it's impossible to plumb
through variables with non-trivial characters, as they cannot be quoted.
Taken from https://github.com/cockpit-project/cockpit-podman/commit/c38692fa4ce66
Start shipping it in the cockpit-bridge rpm/deb in libexecdir. This
paves the way for enabling this functionality in the cockpit/ws
container and other places, and reduces the flatpak special cases.
Note that this still keeps the beiboot functionality disabled for
standard package installs, as desired -- this needs to be explicitly
configured in `cockpit.conf`.
The Peer superclass defines it as not returning anything, and
_connect_task_done() doesn't care about the returned value.
Fixes
> Return type "Coroutine[Any, Any, Transport]" of "do_connect_transport" incompatible with return type "Coroutine[Any, Any, None]" in supertype "Peer" [override]
This is difficult to fix, we can't just require AuthorizeResponder to
actually receive a `Bridge` object, as that will collide with SshPeer.
> "Router" has no attribute "packages" [attr-defined]
This is the same hack as in src/cockpit/channels/packages.py
Fixes mypy error:
> Unsupported target for indexed assignment ("object") [index]
Unfortunately the isinstance() check doesn't convince mypy enough, so
add an extra assertion.