HEX
Server: Apache/2.4.6 () PHP/7.4.33
System: Linux chile-dev-app-1 5.4.17-2136.315.5.el7uek.x86_64 #2 SMP Wed Dec 21 19:57:57 PST 2022 x86_64
User: apache (48)
PHP: 7.4.33
Disabled: NONE
Upload Files
File: //lib/python2.7/site-packages/sos/plugins/btrfs.py
# This file is part of the sos project: https://github.com/sosreport/sos
#
# This copyrighted material is made available to anyone wishing to use,
# modify, copy, or redistribute it subject to the terms and conditions of
# version 2 of the GNU General Public License.
#
# See the LICENSE file in the source distribution for further information.

from sos.plugins import Plugin, RedHatPlugin, UbuntuPlugin, DebianPlugin


class Btrfs(Plugin, RedHatPlugin, UbuntuPlugin, DebianPlugin):
    """Btrfs filesystem
    """

    plugin_name = 'btrfs'
    profiles = ('storage',)

    packages = ('btrfs-progs', 'btrfs-tools')

    option_list = [
        ('details', "gather details for every btrfs filesystem", 'slow',
         False)]

    def setup(self):

        self.add_cmd_output([
            "btrfs filesystem show",
            "btrfs version"
        ])

        if self.get_option('details'):
            btrfs_list = self.exec_cmd("mount -t btrfs")
            device_list = []
            if btrfs_list['status'] == 0:
                for line in btrfs_list["output"].splitlines():
                    dev = line.split()[0]
                    fs = line.split()[2]
                    if not dev in device_list:
                        device_list.append(dev)
                        self.add_cmd_output(["btrfs filesystem usage '%s'" % fs,
                            "btrfs device stat '%s'" % fs,
                            "btrfs device usage '%s'" % fs,
                            "btrfs balance status '%s'" % fs,
                            "btrfs scrub status '%s'" % fs,
                            "btrfs subvolume list '%s'" % fs])

# vim: set et ts=4 sw=4 :