[RM-16979] zypper handle ZYPPER_EXIT_INF_CAP_NOT_FOUND return code
[RM-16979] zypper handle ZYPPER_EXIT_INF_CAP_NOT_FOUND return code

When removing package(s) with zypper, that are (all) installed zypper may
succeed and return 0, but when any package(s) are not present before requesting
them to be removed zypper will return 104 on success.

The function remoto.process.run raises a "RuntimeError" exception when the
command does not return 0 in the form:

    RuntimeError("Failed to execute command: %s" % " ".join(cmd))

Hence to maintain the expected behaviour, remoto.process.check is used, and the
error code is checked, and if it does not match 0 or 104 the exception is
raised.

Signed-off-by: Owen Synge <ea78e0e20fce5319fd66b8fd4f543d9e30ef46a5@suse.com>

ceph/ceph-deploy,trhoden/ceph-deploy,codenrhoden/ceph-deploy,trhoden/ceph-deploy,codenrhoden/ceph-deploy,ceph/ceph-deploy