Skip to content
main
Switch branches/tags
Code

Latest commit

The determination of sysroot - being automatic, user-specified, or
controlled via environment variables in a container - has gotten muddied
over time. This has resulted in different parts of the project;
`Policy`, `Plugin`, `SoSComponent`, etc... to not always be in sync when
sysroot is not `/`, thus causing varying and unexpected/unintended
behavior.

Fix this by only determining sysroot within `Policy()` initialization,
and then using that determination across all aspects of the project that
use or reference sysroot.

This results in several changes:

- `PackageManager()` will now (again) correctly reference host package
  lists when sos is run in a container.

- `ContainerRuntime()` is now able to activate when sos is running in a
  container.

- Plugins will now properly use sysroot for _all_ plugin enablement
  triggers.

- Plugins, Policy, and SoSComponents now all reference the
  `self.sysroot` variable, rather than changing between `sysroot`.
`_host_sysroot`, and `commons['sysroot']`. `_host_sysroot` has been
removed from `Policy`.

Signed-off-by: Jake Hunsaker <jhunsake@redhat.com>
9596473

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time

Build Status Documentation Status Language grade: Python

SoS

Sos is an extensible, portable, support data collection tool primarily aimed at Linux distributions and other UNIX-like operating systems.

This project is hosted at:

For the latest version, to contribute, and for more information, please visit the project pages or join the mailing list.

To clone the current main (development) branch run:

git clone git://github.com/sosreport/sos.git

Reporting bugs

Please report bugs via the mailing list or by opening an issue in the GitHub Issue Tracker

Chat

The SoS project has rooms in Matrix and in Libera.Chat.

Matrix Room: #sosreport:matrix.org

Libera.Chat: #sos

These rooms are bridged, so joining either is sufficient as messages from either will appear in both.

The Freenode #sos room is no longer used by this project.

Mailing list

The sos-devel list is the mailing list for any sos-related questions and discussion. Patch submissions and reviews are welcome too.

Patches and pull requests

Patches can be submitted via the mailing list or as GitHub pull requests. If using GitHub please make sure your branch applies to the current main branch as a 'fast forward' merge (i.e. without creating a merge commit). Use the git rebase command to update your branch to the current main if necessary.

Please refer to the contributor guidelines for guidance on formatting patches and commit messages.

Before sending a pull request, it is advisable to check your contribution against the flake8 linter, the unit tests, and the stage one avocado test suite:

# from within the git checkout
$ flake8 sos
$ nosetests -v tests/unittests/

# as root
# PYTHONPATH=tests/ avocado run --test-runner=runner -t stageone tests/{cleaner,collect,report,vendor}_tests

Note that the avocado test suite will generate and remove several reports over its execution, but no changes will be made to your local system.

All contributions must pass the entire test suite before being accepted.

Documentation

User and API documentation is automatically generated using Sphinx and Read the Docs.

To generate HTML documents locally, install dependencies using

pip install -r requirements.txt

and run

python3 setup.py build_sphinx -a

Wiki

For more in-depth information on the project's features and functionality, please see the GitHub wiki.

If you are interested in contributing an entirely new plugin, or extending sos to support your distribution of choice, please see these wiki pages:

To help get your changes merged quickly with as few revisions as possible please refer to the Contributor Guidelines when submitting patches or pull requests.

Installation

Manual Installation

You can simply run from the git checkout now:

$ sudo ./bin/sos report 

The command sosreport is still available, as a legacy redirector, and can be used like this:

$ sudo ./bin/sosreport 

To see a list of all available plugins and plugin options, run

$ sudo ./bin/sos report -l

To install locally (as root):

# python3 setup.py install

Pre-built Packaging

Fedora/RHEL users install via yum:

# yum install sos

Debian users install via apt:

# apt install sosreport

Ubuntu (14.04 LTS and above) users install via apt:

# sudo apt install sosreport