sosreport/0000755000175000017500000000000012271442132011246 5ustar zefzefsosreport/sos.conf0000644000175000017500000000040012254061770012721 0ustar zefzef[general] #ftp_upload_url = ftp://example.com/incoming #gpg_keyring = /usr/share/sos/rhsupport.pub #gpg_recipient = support@redhat.com smtp_server = None [plugins] #disable = rpm, selinux, dovecot [tunables] #rpm.rpmva = off #general.syslogsize = 15 sosreport/setup.py0000644000175000017500000000424212254061770012770 0ustar zefzef#!/usr/bin/env python from distutils.core import setup from distutils.command.build import build from distutils.command.install_data import install_data from distutils.dep_util import newer from distutils.log import warn, info, error import glob import os import subprocess import sys from sos import __version__ as VERSION PO_DIR = 'po' MO_DIR = os.path.join('build', 'mo') class BuildData(build): def run(self): build.run(self) for po in glob.glob(os.path.join(PO_DIR, '*.po')): lang = os.path.basename(po[:-3]) mo = os.path.join(MO_DIR, lang, 'sos.mo') directory = os.path.dirname(mo) if not os.path.exists(directory): os.makedirs(directory) if newer(po, mo): try: rc = subprocess.call(['msgfmt', '-o', mo, po]) if rc != 0: raise Warning("msgfmt returned %d" % (rc,)) except Exception as e: error("Failed gettext.") sys.exit(1) class InstallData(install_data): def run(self): self.data_files.extend(self._find_mo_files()) install_data.run(self) def _find_mo_files(self): data_files = [] for mo in glob.glob(os.path.join(MO_DIR, '*', 'sos.mo')): lang = os.path.basename(os.path.dirname(mo)) dest = os.path.join('share', 'locale', lang, 'LC_MESSAGES') data_files.append((dest, [mo])) return data_files setup(name='sosreport', version=VERSION, description="""Set of tools to gather troubleshooting data from a system Sos is a set of tools that gathers information about system hardware and configuration. The information can then be used for diagnostic purposes and debugging. Sos is commonly used to help support technicians and developers.""", author='Bryn M. Reeves', author_email='bmr@redhat.com', url='https://github.com/sosreport/sosreport', license="GPLv2+", scripts=['sosreport'], data_files=[ ('share/man/man1', ['man/en/sosreport.1']), ('share/man/man5', ['man/en/sos.conf.5']), ], packages=['sos', 'sos.plugins', 'sos.policies'], cmdclass={'build': BuildData, 'install_data': InstallData}, requires=['six'], ) sosreport/sos.spec0000644000175000017500000006016512271430455012743 0ustar zefzef%{!?python_sitelib: %define python_sitelib %(%{__python} -c "from distutils.sysconfig import get_python_lib; print get_python_lib()")} Summary: A set of tools to gather troubleshooting information from a system Name: sos Version: 3.1 Release: 1%{?dist} Group: Applications/System Source0: http://people.redhat.com/breeves/sos/releases/sos-%{version}.tar.gz License: GPLv2+ BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildroot BuildArch: noarch Url: http://fedorahosted.org/sos BuildRequires: python-devel BuildRequires: gettext BuildRequires: python-six Requires: libxml2-python Requires: rpm-python Requires: tar Requires: bzip2 Requires: xz Requires: python-six %description Sos is a set of tools that gathers information about system hardware and configuration. The information can then be used for diagnostic purposes and debugging. Sos is commonly used to help support technicians and developers. %prep %setup -q %build make %install rm -rf ${RPM_BUILD_ROOT} make DESTDIR=${RPM_BUILD_ROOT} install %find_lang %{name} || echo 0 %clean rm -rf ${RPM_BUILD_ROOT} %files -f %{name}.lang %defattr(-,root,root,-) %{_sbindir}/sosreport %{_datadir}/%{name} %{python_sitelib}/* %{_mandir}/man1/* %{_mandir}/man5/* %doc AUTHORS README.md LICENSE %config(noreplace) %{_sysconfdir}/sos.conf %changelog * Mon Jun 10 2013 Bryn M. Reeves = 3.0-1 - New upstream release * Thu May 23 2013 Bryn M. Reeves = 2.2-39 - Always invoke tar with '-f-' option Resolves: bz966602 * Mon Jan 21 2013 Bryn M. Reeves = 2.2-38 - Fix interactive mode regression when --ticket unspecified Resolves: bz822113 * Fri Jan 18 2013 Bryn M. Reeves = 2.2-37 - Fix propagation of --ticket parameter in interactive mode Resolves: bz822113 * Thu Jan 17 2013 Bryn M. Reeves = 2.2-36 - Revert OpenStack patch Resolves: bz840057 * Wed Jan 9 2013 Bryn M. Reeves = 2.2-35 - Report --name and --ticket values as defaults Resolves: bz822113 - Fix device-mapper command execution logging Resolves: bz824378 - Fix data collection and rename PostreSQL module to pgsql Resolves: bz852049 * Fri Oct 19 2012 Bryn M. Reeves = 2.2-34 - Add support for content delivery hosts to RHUI module Resolves: bz821323 * Thu Oct 18 2012 Bryn M. Reeves = 2.2-33 - Add Red Hat Update Infrastructure module Resolves: bz821323 - Collect /proc/iomem in hardware module Resolves: bz840975 - Collect subscription-manager output in general module Resolves: bz825968 - Collect rhsm log files in general module Resolves: bz826312 - Fix exception in gluster module on non-gluster systems Resolves: bz849546 - Fix exception in psql module when dbname is not given Resolves: bz852049 * Wed Oct 17 2012 Bryn M. Reeves = 2.2-32 - Collect /proc/pagetypeinfo in memory module Resolves: bz809727 - Strip trailing newline from command output Resolves: bz850433 - Add sanlock module Resolves: bz850779 - Do not collect archived accounting files in psacct module Resolves: bz850542 - Call spacewalk-debug from rhn module to collect satellite data Resolves: bz859142 * Mon Oct 15 2012 Bryn M. Reeves = 2.2-31 - Avoid calling volume status when collecting gluster statedumps Resolves: bz849546 - Use a default report name if --name is empty Resolves: bz822113 - Quote tilde characters passed to shell in RPM module Resolves: bz821005 - Collect KDC and named configuration in ipa module Resolves: bz825149 - Sanitize hostname characters before using as report path Resolves: bz822174 - Collect /etc/multipath in device-mapper module Resolves: bz817093 - New plug-in for PostgreSQL Resolves: bz852049 - Add OpenStack module Resolves: bz840057 - Avoid deprecated sysctls in /proc/sys/net Resolves: bz834594 - Fix error logging when calling external programs Resolves: bz824378 - Use ip instead of ifconfig to generate network interface lists Resolves: bz833170 * Wed May 23 2012 Bryn M. Reeves = 2.2-29 - Collect the swift configuration directory in gluster module Resolves: bz822442 - Update IPA module and related plug-ins Resolves: bz812395 * Fri May 18 2012 Bryn M. Reeves = 2.2-28 - Collect mcelog files in the hardware module Resolves: bz810702 * Wed May 02 2012 Bryn M. Reeves = 2.2-27 - Add nfs statedump collection to gluster module Resolves: bz752549 * Tue May 01 2012 Bryn M. Reeves = 2.2-26 - Use wildcard to match possible libvirt log paths Resolves: bz814474 * Mon Apr 23 2012 Bryn M. Reeves = 2.2-25 - Add forbidden paths for new location of gluster private keys Resolves: bz752549 * Fri Mar 9 2012 Bryn M. Reeves = 2.2-24 - Fix katello and aeolus command string syntax Resolves: bz752666 - Remove stray hunk from gluster module patch Resolves: bz784061 * Thu Mar 8 2012 Bryn M. Reeves = 2.2-22 - Correct aeolus debug invocation in CloudForms module Resolves: bz752666 - Update gluster module for gluster-3.3 Resolves: bz784061 - Add additional command output to gluster module Resolves: bz768641 - Add support for collecting gluster configuration and logs Resolves: bz752549 * Wed Mar 7 2012 Bryn M. Reeves = 2.2-19 - Collect additional diagnostic information for realtime systems Resolves: bz789096 - Improve sanitization of RHN user and case number in report name Resolves: bz771393 - Fix verbose output and debug logging Resolves: bz782339 - Add basic support for CloudForms data collection Resolves: bz752666 - Add support for Subscription Asset Manager diagnostics Resolves: bz752670 * Tue Mar 6 2012 Bryn M. Reeves = 2.2-18 - Collect fence_virt.conf in cluster module Resolves: bz760995 - Fix collection of /proc/net directory tree Resolves: bz730641 - Gather output of cpufreq-info when present Resolves: bz760424 - Fix brctl showstp output when bridges contain multiple interfaces Resolves: bz751273 - Add /etc/modprobe.d to kernel module Resolves: bz749919 - Ensure relative symlink targets are correctly handled when copying Resolves: bz782589 - Fix satellite and proxy package detection in rhn plugin Resolves: bz749262 - Collect stderr output from external commands Resolves: bz739080 - Collect /proc/cgroups in the cgroups module Resolve: bz784874 - Collect /proc/irq in the kernel module Resolves: bz784862 - Fix installed-rpms formatting for long package names Resolves: bz767827 - Add symbolic links for truncated log files Resolves: bz766583 - Collect non-standard syslog and rsyslog log files Resolves: bz771501 - Use correct paths for tomcat6 in RHN module Resolves: bz749279 - Obscure root password if present in anacond-ks.cfg Resolves: bz790402 - Do not accept embedded forward slashes in RHN usernames Resolves: bz771393 - Add new sunrpc module to collect rpcinfo for gluster systems Resolves: bz784061 * Tue Nov 1 2011 Bryn M. Reeves = 2.2-17 - Do not collect subscription manager keys in general plugin Resolves: bz750607 * Fri Sep 23 2011 Bryn M. Reeves = 2.2-16 - Fix execution of RHN hardware.py from hardware plugin Resolves: bz736718 - Fix hardware plugin to support new lsusb path Resolves: bz691477 * Fri Sep 09 2011 Bryn M. Reeves = 2.2-15 - Fix brctl collection when a bridge contains no interfaces Resolves: bz697899 - Fix up2dateclient path in hardware plugin Resolves: bz736718 * Mon Aug 15 2011 Bryn M. Reeves = 2.2-14 - Collect brctl show and showstp output Resolves: bz697899 - Collect nslcd.conf in ldap plugin Resolves: bz682124 * Sun Aug 14 2011 Bryn M. Reeves = 2.2-11 - Truncate files that exceed specified size limit Resolves: bz683219 - Add support for collecting Red Hat Subscrition Manager configuration Resolves: bz714293 - Collect /etc/init on systems using upstart Resolves: bz694813 - Don't strip whitespace from output of external programs Resolves: bz713449 - Collect ipv6 neighbour table in network module Resolves: bz721163 - Collect basic cgroups configuration data Resolves: bz729455 * Sat Aug 13 2011 Bryn M. Reeves = 2.2-10 - Fix collection of data from LVM2 reporting tools in devicemapper plugin Resolves: bz704383 - Add /proc/vmmemctl collection to vmware plugin Resolves: bz709491 * Fri Aug 12 2011 Bryn M. Reeves = 2.2-9 - Collect yum repository list by default Resolves: bz600813 - Add basic Infiniband plugin Resolves: bz673244 - Add plugin for scsi-target-utils iSCSI target Resolves: bz677124 - Fix autofs plugin LC_ALL usage Resolves: bz683404 - Fix collection of lsusb and add collection of -t and -v outputs Resolves: bz691477 - Extend data collection by qpidd plugin Resolves: bz726360 - Add ethtool pause, coalesce and ring (-a, -c, -g) options to network plugin Resolves: bz726427 * Thu Apr 07 2011 Bryn M. Reeves = 2.2-8 - Use sha256 for report digest when operating in FIPS mode Resolves: bz689387 * Tue Apr 05 2011 Bryn M. Reeves = 2.2-7 - Fix parted and dumpe2fs output on s390 Resolves: bz622784 * Fri Feb 25 2011 Bryn M. Reeves = 2.2-6 - Fix collection of chkconfig output in startup.py Resolves: bz659467 - Collect /etc/dhcp in dhcp.py plugin Resolves: bz676522 - Collect dmsetup ls --tree output in devicemapper.py Resolves: bz675559 - Collect lsblk output in filesys.py Resolves: bz679433 * Thu Feb 24 2011 Bryn M. Reeves = 2.2-4 - Fix collection of logs and config files in sssd.py Resolves: bz624162 - Add support for collecting entitlement certificates in rhn.py Resolves: bz678665 * Thu Feb 03 2011 Bryn M. Reeves = 2.2-3 - Fix cluster plugin dlm lockdump for el6 Resolves: bz622407 - Add sssd plugin to collect configuration and logs Resolves: bz624162 - Collect /etc/anacrontab in system plugin Resolves: bz622527 - Correct handling of redhat-release for el6 Resolves: bz622528 * Thu Jul 29 2010 Adam Stokes = 2.2-2 - Resolves: bz582259 - Resolves: bz585942 - Resolves: bz584253 - Resolves: bz581817 * Thu Jun 10 2010 Adam Stokes = 2.2-0 - Resolves: bz581921 - Resolves: bz584253 - Resolves: bz562651 - Resolves: bz566170 - Resolves: bz586450 - Resolves: bz588223 - Resolves: bz559737 - Resolves: bz586405 - Resolves: bz598978 - Resolves: bz584763 * Wed Apr 28 2010 Adam Stokes = 2.1-0 - Resolves: bz585923 - Resolves: bz585942 - Resolves: bz586409 - Resolves: bz586389 - Resolves: bz548096 - Resolves: bz557828 - Resolves: bz563637 - Resolves: bz584253 - Resolves: bz462823 - Resolves: bz528881 - Resolves: bz566170 - Resolves: bz578787 - Resolves: bz581817 - Resolves: bz581826 - Resolves: bz584695 - Resolves: bz568637 - Resolves: bz584767 - Resolves: bz586370 * Mon Apr 12 2010 Adam Stokes = 2.0-0 - Resolves: bz580015 * Tue Mar 30 2010 Adam Stokes = 1.9-3 - fix setup.py to autocompile translations and man pages - rebase 1.9 * Fri Mar 19 2010 Adam Stokes = 1.9-2 - updated translations * Thu Mar 04 2010 Adam Stokes = 1.9-1 - version bump 1.9 - replaced compression utility with xz - strip threading/multiprocessing - simplified progress indicator - pylint update - put global vars in class container - unittests - simple profiling - make use of xgettext as pygettext is deprecated * Mon Jan 18 2010 Adam Stokes = 1.8-21 - more sanitizing options for log files - rhbz fixes from RHEL version merged into trunk - progressbar update * Tue Nov 19 2009 Adam Stokes = 1.8-20 - dont copy unwanted files due to symlinks - More plugin enhancements * Tue Nov 5 2009 Adam Stokes = 1.8-18 - Option to enable selinux fixfiles check - Start of replacing Thread module with multiprocessing - Update translations - More checks against conf file versus command line opts * Tue Sep 9 2009 Adam Stokes = 1.8-16 - Update rh-upload-core to rh-upload and allows general files - Fix cluster plugin with pwd mangling invalidating xml - Cluster support detecting invalid fence_id and fence states - Read variables from conf file * Thu Jul 23 2009 Adam Stokes = 1.8-14 - resolves: rhbz512536 wrong group in spec file - resolves: rhbz498398 A series of refactoring patches to sos - resolves: rhbz501149 A series of refactoring patches to sos (2) - resolves: rhbz503804 remove obsolete translation - resolves: rhbz502455 tricking sosreport into rm -rf / - resolves: rhbz501146 branding in fedora * Mon Jul 20 2009 Adam Stokes = 1.8-13 - Add requirements for tar,bzip2 during minimal installs - More merges from reports against RHEL version of plugins - Remove unecessary definition of localdir in spec * Wed May 05 2009 Adam Stokes - 1.8-11 - Remove all instances of sysrq - Consistent macro usage in spec * Wed Feb 25 2009 Fedora Release Engineering - 1.8-10 - Rebuilt for https://fedoraproject.org/wiki/Fedora_11_Mass_Rebuild * Mon Dec 29 2008 Adam Stokes - 1.8-5 - removed source defines as python manifest handles this * Fri Dec 19 2008 Adam Stokes - 1.8-4 - spec cleanup, fixed license, source - reworked Makefile to build properly * Thu Oct 23 2008 Adam Stokes - 1.8-1 - Resolves: bz459845 collect krb5.conf - Resolves: bz457880 include output of xm list and xm list --long - Resolves: bz457919 add support for openswan and ipsec-tools - Resolves: bz456378 capture elilo configuration - Resolves: bz445007 s390 support - Resolves: bz371251 hangs when running with a xen kernel where xend has not been started - Resolves: bz452705 Add /root/anaconda-ks-cfg to sosreport archive - Resolves: bz445510 Do not rely on env to execute python - Resolves: bz446868 add support for emc devices - Resolves: bz453797 fails to generate fdisk -l - Resolves: bz433183 does not collect ext3 information - Resolves: bz444838 systool is passed deprecated arguments - Resolves: bz455096 add %{INSTALLTIME:date} to rpm --qf collection - Resolves: bz332211 avoid hazardous filenames * Wed Nov 21 2007 Navid Sheikhol-Eslami - 1.8-0 - Resolves: bz368261 sosGetCommandOutput() does not block on hung processes - Resolves: bz361861 work-around missing traceback.format_exc() in RHEL4 - Resolves: bz394781 device-mapper: use /sbin/lvm_dump to collect dm related info - Resolves: bz386691 unattended --batch option - Resolves: bz371251 sos could hang when accessing /sys/hypervisor/uuid - selinux: always collect sestatus - added many languages - added --debug option which causes exceptions not to be trapped - updated to sysreport-1.4.3-13.el5 - ftp upload to dropbox with --upload - cluster: major rewrite to support different versions of RHEL - cluster: check rg_test for errors - minor changes in various plug-ins (yum, networking, process, kernel) - fixed some exceptions in threads which were not properly trapped - veritas: don't run rpm -qa every time - using rpm's python bindings instead of external binary - corrected autofs and ldap plugin that were failing when debug option was not found in config file. - implemented built-in checkdebug() that uses self.files and self.packages to make the decision - missing binaries are properly detected now. - better doExitCode handling - fixed problem with rpm module intercepting SIGINT - error when user specifies an invalid plugin or plugin option - named: fixed indentation - replaced isOptionEnabled() with getOption() - tune2fs and fdisk were not always run against the correct devices/mountpoint - added gpg key to package - updated README with new svn repo and contributors - updated manpage - better signal handling - caching of rpm -q outputs - report filename includes rhnUsername if available - report encryption via gpg and support pubkey - autofs: removed redundant files - filesys: better handling of removable devices - added sosReadFile() returns a file's contents - return after looping inside a directory - collect udevinfo for each block device - simply collect output of fdisk -l in one go - handle sysreport invocation properly (warn if shell is interactive, otherwise spawn sysreport.legacy) - progress bar don't show 100% until finished() is called - Resolves: bz238778 added lspci -t - now runs on RHEL3 as well (python 2.2) - replaced commonPrefix() with faster code - filesys: one fdisk -l for all - selinux: collect fixfilex check output - devicemapper: collect udevinfo for all block devices - cluster: validate node names according to RFC 2181 - systemtap: cleaned up and added checkenabled() method - added kdump plugin - added collection of /etc/inittab - Resolves: bz332151 apply regex to case number in sysreport for RHEL4 - Resolves: bz332211 apply regex to case number in sysreport for RHEL5 - Resolves: bz400111 sos incorrectly reports cluster data in SMP machine * Wed Aug 13 2007 Navid Sheikhol-Eslami - 1.7-8 - added README.rh-upload-core * Mon Aug 13 2007 Navid Sheikhol-Eslami - 1.7-7 - Resolves: bz251927 SOS errata needs to be respin to match 4.6 code base - added extras/rh-upload-core script from David Mair * Mon Aug 9 2007 Navid Sheikhol-Eslami - 1.7-6 - more language fixes - added arabic, italian and french - package prepared for release - included sysreport as sysreport.legacy * Mon Aug 9 2007 Navid Sheikhol-Eslami - 1.7-5 - package obsoletes sysreport and creates a link pointing to sosreport - added some commands in cluster and process plugins - fixed html output (wrong links to cmds, thanks streeter) - process: back down sleep if D state doesn't change - Resolves: bz241277 Yum Plugin for sos - Resolves: bz247520 Spelling mistake in sosreport output - Resolves: bz247531 Feature: plugin to gather initial ramdisk scripts - Resolves: bz248252 sos to support language localization - Resolves: bz241282 Make SOS for RHEL 4 * Mon Aug 1 2007 Navid Sheikhol-Eslami - 1.7-4 - catch KeyboardInterrupt when entering sosreport name - added color output for increased readability - list was sorted twice, removing latter .sort() * Mon Jul 31 2007 Navid Sheikhol-Eslami - 1.7-3 - added preliminary problem diagnosis support - better i18n initialization - better user messages - more progressbar fixes - catch and log python exceptions in report - use python native commands to create symlinks - limit concurrent running threads * Mon Jul 28 2007 Navid Sheikhol-Eslami - 1.7-2 - initial language localization support - added italian translation * Mon Jul 16 2007 Navid Sheikhol-Eslami - 1.7-1 - split up command outputs in sub-directories (sos_command/plugin/command instead of sos_command/plugin.command) - fixed doExitCode() calling thread.wait() instead of join() - curses menu is disabled by default - multithreading is enabled by default - major progressbar changes (now has ETA) - multithreading fixes - plugins class descriptions shortened to fix better in --list-plugins - rpm -Va in plugins/rpm.py sets eta_weight to 200 (plugin 200 longer than other plugins, for ETA calculation) - beautified command output filenames in makeCommandFilename() * Mon Jul 12 2007 Navid Sheikhol-Eslami - 1.7-0 - curses menu disabled by default (enable with -c) - sosreport output friendlier to the user (and similar to sysreport) - smarter plugin listing which also shows options and disable/enabled plugins - require root permissions only for actual sosreport generation - fix in -k where option value was treated as string instead of int - made progressbar wider (60 chars) - selinux plugin is enabled only if selinux is also enabled on the system - made some errors less verbose to the user - made sosreport not copy files pointed by symbolic links (same as sysreport, we don't need /usr/bin/X or /sbin/ifup) - copy links as links (cp -P) - added plugin get_description() that returns a short decription for the plugin - guess sosreport name from system's name * Mon Jul 5 2007 Navid Sheikhol-Eslami - 1.6-5 - Yet more fixes to make package Fedora compliant. * Mon Jul 5 2007 Navid Sheikhol-Eslami - 1.6-4 - More fixes to make package Fedora compliant. * Mon Jul 2 2007 Navid Sheikhol-Eslami - 1.6-3 - Other fixes to make package Fedora compliant. * Mon Jul 2 2007 Navid Sheikhol-Eslami - 1.6-2 - Minor fixes. * Mon Jul 2 2007 Navid Sheikhol-Eslami - 1.6-1 - Beautified output of --list-plugins. - GPL licence is now included in the package. - added python-devel requirement for building package - Resolves: bz241282 fixed incompatibility with python from RHEL4 * Fri May 25 2007 Steve Conklin - 1.5-1 - Bumped version * Fri May 25 2007 Steve Conklin - 1.4-2 - Fixed a backtrace on nonexistent file in kernel plugin (thanks, David Robinson) * Mon Apr 30 2007 Steve Conklin - 1.4-1 - Fixed an error in option handling - Forced the file generated by traceroute to not end in .com - Fixed a problem with manpage - Added optional traceroute collection to networking plugin - Added clalance's patch to gather iptables info. - Fixes to the device-mapper plugin - Fixed a problem with installation of man page * Mon Apr 16 2007 Steve Conklin - 1.3-3 - including patches to fix the following: - Resolves: bz219745 sosreport needs a man page - Resolves: bz219667 sosreport does not terminate cleanly on ^C - Resolves: bz233375 Make SOS flag the situation when running on a fully virtu... - Resolves: bz234873 rhel5 sos needs to include rpm-va by default - Resolves: bz219669 sosreport multi-threaded option sometimes fails - Resolves: bz219671 RFE for sosreport - allow specification of plugins to be run - Resolves: bz219672 RFE - show progress while sosreport is running - Resolves: bz219673 Add xen information gathering to sosreport - Resolves: bz219675 Collect information related to the new driver update model - Resolves: bz219877 'Cancel' button during option selection only cancels sele... * Tue Feb 20 2007 John Berninger - 1.3-2 - Add man page * Fri Dec 15 2006 Steve Conklin - 1.3-1 - really fixed bz_219654 * Fri Dec 15 2006 Steve Conklin - 1.2-1 - fixed a build problem * Fri Dec 15 2006 Steve Conklin - 1.1-1 - Tighten permissions of tmp directory so only readable by creator bz_219657 - Don't print message 'Problem at path ...' bz_219654 - Removed useless message bz_219670 - Preserve file modification times bz_219674 - Removed unneeded message about files on copyProhibitedList bz_219712 * Wed Aug 30 2006 Steve Conklin - 1.0-1 - Seperated upstream and RPM versioning * Mon Aug 21 2006 Steve Conklin - 0.1-11 - Code cleanup, fixed a regression in threading * Mon Aug 14 2006 Steve Conklin - 0.1-10 - minor bugfixes, added miltithreading option, setup now quiet * Mon Jul 17 2006 Steve Conklin - 0.1-9 - migrated to svn on 108.redhat.com, fixed a problem with command output linking in report * Mon Jun 19 2006 Steve Conklin - 0.1-6 - Added LICENSE file containing GPL * Wed May 31 2006 Steve Conklin - 0.1-5 - Added fixes to network plugin and prepped for Fedora submission * Wed May 31 2006 John Berninger - 0.1-4 - Reconsolidated subpackages into one package per discussion with sconklin * Mon May 22 2006 John Berninger - 0.1-3 - Added ftp, ldap, mail, named, samba, squid SOS plugins - Fixed various errors in kernel and hardware plugins * Mon May 22 2006 John Benringer - 0.1-2 - split off cluster plugin into subpackage - correct file payload lists * Mon May 22 2006 John Berninger - 0.1-1 - initial package build sosreport/sos/0000755000175000017500000000000012271442132012052 5ustar zefzefsosreport/sos/sosreport.py0000644000175000017500000012137112271430455014476 0ustar zefzef""" Gather information about a system and report it using plugins supplied for application-specific information """ ## sosreport.py ## gather information about a system and report it ## Copyright (C) 2006 Steve Conklin ### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. # pylint: disable-msg = W0611 # pylint: disable-msg = W0702 # pylint: disable-msg = R0912 # pylint: disable-msg = R0914 # pylint: disable-msg = R0915 # pylint: disable-msg = R0913 # pylint: disable-msg = E0611 # pylint: disable-msg = E1101 # pylint: disable-msg = R0904 # pylint: disable-msg = R0903 import sys import traceback import os import logging from optparse import OptionParser, Option from sos.plugins import import_plugin from sos.utilities import ImporterHelper from stat import ST_UID, ST_GID, ST_MODE, ST_CTIME, ST_ATIME, ST_MTIME, S_IMODE from time import strftime, localtime from collections import deque import textwrap import tempfile from sos import _sos as _ from sos import __version__ import sos.policies from sos.archive import TarFileArchive, ZipFileArchive from sos.reporting import Report, Section, Command, CopiedFile, CreatedFile, Alert, Note, PlainTextReport # PYCOMPAT import six from six.moves import zip if six.PY3: from configparser import ConfigParser else: from ConfigParser import ConfigParser from six import print_ class TempFileUtil(object): def __init__(self, tmp_dir): self.tmp_dir = tmp_dir self.files = [] def new(self): fd, fname = tempfile.mkstemp(dir=self.tmp_dir) fobj = open(fname, 'w') self.files.append((fname, fobj)) return fobj def clean(self): for fname, f in self.files: try: f.flush() f.close() except Exception as e: pass try: os.unlink(fname) except Exception as e: pass self.files = [] class OptionParserExtended(OptionParser): """ Show examples """ def print_help(self, out=sys.stdout): """ Prints help content including examples """ OptionParser.print_help(self, out) print_() print_( "Some examples:") print_() print_( " enable cluster plugin only and collect dlm lockdumps:") print_( " # sosreport -o cluster -k cluster.lockdump") print_() print_( " disable memory and samba plugins, turn off rpm -Va collection:") print_( " # sosreport -n memory,samba -k rpm.rpmva=off") print_() class SosOption(Option): """Allow to specify comma delimited list of plugins""" ACTIONS = Option.ACTIONS + ("extend",) STORE_ACTIONS = Option.STORE_ACTIONS + ("extend",) TYPED_ACTIONS = Option.TYPED_ACTIONS + ("extend",) def take_action(self, action, dest, opt, value, values, parser): """ Performs list extension on plugins """ if action == "extend": try: lvalue = value.split(",") except: pass else: values.ensure_value(dest, deque()).extend(lvalue) else: Option.take_action(self, action, dest, opt, value, values, parser) class XmlReport(object): """ Report build class """ def __init__(self): try: import libxml2 except ImportError: self.enabled = False return else: self.enabled = False return self.doc = libxml2.newDoc("1.0") self.root = self.doc.newChild(None, "sos", None) self.commands = self.root.newChild(None, "commands", None) self.files = self.root.newChild(None, "files", None) def add_command(self, cmdline, exitcode, stdout = None, stderr = None, f_stdout=None, f_stderr=None, runtime=None): """ Appends command run into report """ if not self.enabled: return cmd = self.commands.newChild(None, "cmd", None) cmd.setNsProp(None, "cmdline", cmdline) cmdchild = cmd.newChild(None, "exitcode", str(exitcode)) if runtime: cmd.newChild(None, "runtime", str(runtime)) if stdout or f_stdout: cmdchild = cmd.newChild(None, "stdout", stdout) if f_stdout: cmdchild.setNsProp(None, "file", f_stdout) if stderr or f_stderr: cmdchild = cmd.newChild(None, "stderr", stderr) if f_stderr: cmdchild.setNsProp(None, "file", f_stderr) def add_file(self, fname, stats): """ Appends file(s) added to report """ if not self.enabled: return cfile = self.files.newChild(None, "file", None) cfile.setNsProp(None, "fname", fname) cchild = cfile.newChild(None, "uid", str(stats[ST_UID])) cchild = cfile.newChild(None, "gid", str(stats[ST_GID])) cfile.newChild(None, "mode", str(oct(S_IMODE(stats[ST_MODE])))) cchild = cfile.newChild(None, "ctime", strftime('%a %b %d %H:%M:%S %Y', localtime(stats[ST_CTIME]))) cchild.setNsProp(None, "tstamp", str(stats[ST_CTIME])) cchild = cfile.newChild(None, "atime", strftime('%a %b %d %H:%M:%S %Y', localtime(stats[ST_ATIME]))) cchild.setNsProp(None, "tstamp", str(stats[ST_ATIME])) cchild = cfile.newChild(None, "mtime", strftime('%a %b %d %H:%M:%S %Y', localtime(stats[ST_MTIME]))) cchild.setNsProp(None, "tstamp", str(stats[ST_MTIME])) def serialize(self): """ Serializes xml """ if not self.enabled: return self.ui_log.info(self.doc.serialize(None, 1)) def serialize_to_file(self, fname): """ Serializes to file """ if not self.enabled: return outf = tempfile.NamedTemporaryFile() outf.write(self.doc.serialize(None, 1)) outf.flush() self.archive.add_file(outf.name, dest=fname) outf.close() class SoSOptions(object): _list_plugins = False _noplugins = [] _enableplugins = [] _onlyplugins = [] _plugopts = [] _usealloptions = False _batch = False _build = False _verbosity = 0 _quiet = False _debug = False _ticket_number = "" _customer_name = "" _config_file = "" _tmp_dir = "" _report = True _profiler = False _compression_type = 'auto' _options = None def __init__(self, args=None): if args: self._options = self._parse_args(args) else: self._options = None def _check_options_initialized(self): if self._options != None: raise ValueError("SoSOptions object already initialized " + "from command line") @property def list_plugins(self): if self._options != None: return self._options.list_plugins return self._list_plugins @list_plugins.setter def list_plugins(self, value): self._check_options_initialized() if not isinstance(value, bool): raise TypeError("SoSOptions.list_plugins expects a boolean") self._list_plugins = value @property def noplugins(self): if self._options != None: return self._options.noplugins return self._noplugins @noplugins.setter def noplugins(self, value): self._check_options_initialized() self._noplugins = value @property def enableplugins(self): if self._options != None: return self._options.enableplugins return self._enableplugins @enableplugins.setter def enableplugins(self): self._check_options_initialized() self._enableplugins = value @property def onlyplugins(self): if self._options != None: return self._options.onlyplugins return self._onlyplugins @onlyplugins.setter def onlyplugins(self, value): self._check_options_initialized() self._onlyplugins = value @property def plugopts(self): if self._options != None: return self._options.plugopts return self._plugopts @plugopts.setter def plugopts(self, value): # If we check for anything it should be itterability. #if not isinstance(value, list): # raise TypeError("SoSOptions.plugopts expects a list") self._plugopts = value @property def usealloptions(self): if self._options != None: return self._options.usealloptions return self._usealloptions @usealloptions.setter def usealloptions(self, value): self._check_options_initialized() if not isinsance(value, bool): raise TypeError("SoSOptions.usealloptions expects a boolean") self._usealloptions = value @property def batch(self): if self._options != None: return self._options.batch return self._batch @batch.setter def batch(self, value): self._check_options_initialized() if not isinstance(value, bool): raise TypeError("SoSOptions.batch expects a boolean") self._batch = value @property def build(self): if self._options != None: return self._options.build return self._build @build.setter def build(self): self._check_options_initialized() if not isinstance(value, bool): raise TypeError("SoSOptions.build expects a boolean") self._build = value @property def verbosity(self): if self._options != None: return self._options.verbosity return self._verbosity @verbosity.setter def verbosity(self, value): self._check_options_initialized() if value < 0 or value > 3: raise ValueError("SoSOptions.verbosity expects a value [0..3]") self._verbosity = value @property def quiet(self): if self._options != None: return self._options.quiet return self._quiet @quiet.setter def quiet(self, value): self._check_options_initialized() if not isinstance(value, bool): raise TypeError("SoSOptions.quiet expects a boolean") self._quiet = value @property def debug(self): if self._options != None: return self._options.debug return self._debug @debug.setter def debug(self, value): self._check_options_initialized() if not isinstance(value, bool): raise TypeError("SoSOptions.debug expects a boolean") self._debug = value @property def ticket_number(self): if self._options != None: return self._options.ticket_number return self._ticket_number @ticket_number.setter def ticket_number(self, value): self._check_options_initialized() self._ticket_number = value @property def customer_name(self): if self._options != None: return self._options.customer_name return self._customer_name @customer_name.setter def customer_name(self, value): self._check_options_initialized() self._customer_name = value @property def config_file(self): if self._options != None: return self._options.config_file return self._config_file @config_file.setter def config_file(self, value): self._check_options_initialized() self._config_file = value @property def tmp_dir(self): if self._options != None: return self._options.tmp_dir return self._tmp_dir @tmp_dir.setter def tmp_dir(self, value): self._check_options_initialized() self._tmp_dir = value @property def report(self): if self._options != None: return self._options.report return self._report @report.setter def report(self, value): self._check_options_initialized() if not isinstance(value, bool): raise TypeError("SoSOptions.report expects a boolean") self._report = value @property def profiler(self): if self._options != None: return self._options.profiler return self._profiler @profiler.setter def profiler(self, value): self._check_options_initialized() if not isinstance(value, bool): raise TypeError("SoSOptions.profiler expects a boolean") self._profiler = value @property def compression_type(self): if self._options != None: return self._options.compression_type return self._compression_type @compression_type.setter def compression_type(self, value): self._check_options_initialized() self._compression_type = value def _parse_args(self, args): """ Parse command line options and arguments""" self.parser = parser = OptionParserExtended(option_class=SosOption) parser.add_option("-l", "--list-plugins", action="store_true", dest="list_plugins", default=False, help="list plugins and available plugin options") parser.add_option("-n", "--skip-plugins", action="extend", dest="noplugins", type="string", help="disable these plugins", default = deque()) parser.add_option("-e", "--enable-plugins", action="extend", dest="enableplugins", type="string", help="enable these plugins", default = deque()) parser.add_option("-o", "--only-plugins", action="extend", dest="onlyplugins", type="string", help="enable these plugins only", default = deque()) parser.add_option("-k", "--plugin-option", action="extend", dest="plugopts", type="string", help="plugin options in plugname.option=value format (see -l)", default = deque()) parser.add_option("-a", "--alloptions", action="store_true", dest="usealloptions", default=False, help="enable all options for loaded plugins") parser.add_option("--batch", action="store_true", dest="batch", default=False, help="batch mode - do not prompt interactively") parser.add_option("--build", action="store_true", \ dest="build", default=False, \ help="keep sos tree available and dont package results") parser.add_option("-v", "--verbose", action="count", dest="verbosity", help="increase verbosity") parser.add_option("", "--quiet", action="store_true", dest="quiet", default=False, help="only print fatal errors") parser.add_option("--debug", action="count", dest="debug", help="enable interactive debugging using the python debugger") parser.add_option("--ticket-number", action="store", dest="ticket_number", help="specify ticket number") parser.add_option("--name", action="store", dest="customer_name", help="specify report name") parser.add_option("--config-file", action="store", dest="config_file", help="specify alternate configuration file") parser.add_option("--tmp-dir", action="store", dest="tmp_dir", help="specify alternate temporary directory", default=None) parser.add_option("--no-report", action="store_true", dest="report", help="Disable HTML/XML reporting", default=False) parser.add_option("--profile", action="store_true", dest="profiler", help="turn on profiling", default=False) parser.add_option("-z", "--compression-type", dest="compression_type", help="compression technology to use [auto, zip, gzip, bzip2, xz] (default=auto)", default="auto") return parser.parse_args(args)[0] class SoSReport(object): def __init__(self, args): self.loaded_plugins = deque() self.skipped_plugins = deque() self.all_options = deque() self.xml_report = XmlReport() self.global_plugin_options = {} self.archive = None self.tempfile_util = None try: import signal signal.signal(signal.SIGTERM, self.get_exit_handler()) except Exception: pass # not available in java, but we don't care #self.opts = self.parse_options(args)[0] self.opts = SoSOptions(args) self._set_debug() self._read_config() self.policy = sos.policies.load() self._is_root = self.policy.is_root() self.tmpdir = os.path.abspath( self.policy.get_tmp_dir(self.opts.tmp_dir)) if not os.path.isdir(self.tmpdir) \ or not os.access(self.tmpdir, os.W_OK): # write directly to stderr as logging is not initialised yet sys.stderr.write("temporary directory %s " % self.tmpdir \ + "does not exist or is not writable\n") self._exit(1) self.tempfile_util = TempFileUtil(self.tmpdir) self._set_directories() def print_header(self): self.ui_log.info("\n%s\n" % _("sosreport (version %s)" % (__version__,))) def get_commons(self): return { 'cmddir': self.cmddir, 'logdir': self.logdir, 'rptdir': self.rptdir, 'tmpdir': self.tmpdir, 'soslog': self.soslog, 'proflog' : self.proflog, 'policy': self.policy, 'verbosity': self.opts.verbosity, 'xmlreport': self.xml_report, 'cmdlineopts': self.opts, 'config': self.config, 'global_plugin_options': self.global_plugin_options, } def get_temp_file(self): return self.tempfile_util.new() def _set_archive(self): if self.opts.compression_type not in ('auto', 'zip', 'bzip2', 'gzip', 'xz'): raise Exception("Invalid compression type specified. Options are:" + "auto, zip, bzip2, gzip and xz") archive_name = os.path.join(self.tmpdir,self.policy.get_archive_name()) if self.opts.compression_type == 'auto': auto_archive = self.policy.preferred_archive_name() self.archive = auto_archive(archive_name, self.tmpdir) elif self.opts.compression_type == 'zip': self.archive = ZipFileArchive(archive_name, self.tmpdir) else: self.archive = TarFileArchive(archive_name, self.tmpdir) def _make_archive_paths(self): self.archive.makedirs(self.cmddir, 0o755) self.archive.makedirs(self.logdir, 0o755) self.archive.makedirs(self.rptdir, 0o755) def _set_directories(self): self.cmddir = 'sos_commands' self.logdir = 'sos_logs' self.rptdir = 'sos_reports' def _set_debug(self): if self.opts.debug: sys.excepthook = self._exception self.raise_plugins = True else: self.raise_plugins = False @staticmethod def _exception(etype, eval_, etrace): """ Wrap exception in debugger if not in tty """ if hasattr(sys, 'ps1') or not sys.stderr.isatty(): # we are in interactive mode or we don't have a tty-like # device, so we call the default hook sys.__excepthook__(etype, eval_, etrace) else: import traceback, pdb # we are NOT in interactive mode, print the exception... traceback.print_exception(etype, eval_, etrace, limit=2, file=sys.stdout) print_() # ...then start the debugger in post-mortem mode. pdb.pm() def _exit(self, error=0): raise SystemExit() # sys.exit(error) def get_exit_handler(self): def exit_handler(signum, frame): self._exit() return exit_handler def _read_config(self): self.config = ConfigParser() if self.opts.config_file: config_file = self.opts.config_file else: config_file = '/etc/sos.conf' try: self.config.readfp(open(config_file)) except IOError: pass def _setup_logging(self): # main soslog self.soslog = logging.getLogger('sos') self.soslog.setLevel(logging.DEBUG) self.sos_log_file = self.get_temp_file() self.sos_log_file.close() flog = logging.FileHandler(self.sos_log_file.name) flog.setFormatter(logging.Formatter('%(asctime)s %(levelname)s: %(message)s')) flog.setLevel(logging.INFO) self.soslog.addHandler(flog) if not self.opts.quiet: console = logging.StreamHandler(sys.stderr) console.setFormatter(logging.Formatter('%(message)s')) if self.opts.verbosity and self.opts.verbosity > 1: console.setLevel(logging.DEBUG) flog.setLevel(logging.DEBUG) elif self.opts.verbosity and self.opts.verbosity > 0: console.setLevel(logging.INFO) else: console.setLevel(logging.WARNING) self.soslog.addHandler(console) # ui log self.ui_log = logging.getLogger('sos_ui') self.ui_log.setLevel(logging.INFO) self.sos_ui_log_file = self.get_temp_file() self.sos_ui_log_file.close() ui_fhandler = logging.FileHandler(self.sos_ui_log_file.name) ui_fhandler.setFormatter(logging.Formatter('%(asctime)s %(levelname)s: %(message)s')) self.ui_log.addHandler(ui_fhandler) if not self.opts.quiet: ui_console = logging.StreamHandler(sys.stdout) ui_console.setFormatter(logging.Formatter('%(message)s')) ui_console.setLevel(logging.INFO) self.ui_log.addHandler(ui_console) # profile logging if self.opts.profiler: self.proflog = logging.getLogger('sosprofile') self.proflog.setLevel(logging.DEBUG) self.sos_profile_log_file = self.get_temp_file() plog = logging.FileHandler(self.sos_profile_log_file.name) plog.setFormatter(logging.Formatter('%(message)s')) plog.setLevel(logging.DEBUG) self.proflog.addHandler(plog) else: self.proflog = logging.getLogger('sosprofile') self.proflog.setLevel(logging.FATAL) def _finish_logging(self): logging.shutdown() # the logging module seems to persist in the jython/jboss/eap world # so the handlers need to be removed for logger in [logging.getLogger(x) for x in ('sos', 'sosprofile', 'sos_ui')]: for h in logger.handlers: logger.removeHandler(h) if getattr(self, "sos_log_file", None): self.archive.add_file(self.sos_log_file.name, dest=os.path.join('sos_logs', 'sos.log')) if getattr(self, "sos_profile_log_file", None): self.archive.add_file(self.sos_profile_log_file.name, dest=os.path.join('sos_logs', 'profile.log')) if getattr(self, "sos_ui_log_file", None): self.archive.add_file(self.sos_ui_log_file.name, dest=os.path.join('sos_logs', 'ui.log')) def _get_disabled_plugins(self): disabled = [] if self.config.has_option("plugins", "disable"): disabled = [plugin.strip() for plugin in self.config.get("plugins", "disable").split(',')] return disabled def _is_skipped(self, plugin_name): return (plugin_name in self.opts.noplugins or plugin_name in self._get_disabled_plugins()) def _is_inactive(self, plugin_name, pluginClass): return (not pluginClass(self.get_commons()).check_enabled() and not plugin_name in self.opts.enableplugins and not plugin_name in self.opts.onlyplugins) def _is_not_default(self, plugin_name, pluginClass): return (not pluginClass(self.get_commons()).default_enabled() and not plugin_name in self.opts.enableplugins and not plugin_name in self.opts.onlyplugins) def _is_not_specified(self, plugin_name): return (self.opts.onlyplugins and not plugin_name in self.opts.onlyplugins) def _skip(self, plugin_class, reason="unknown"): self.skipped_plugins.append(( plugin_class.name(), plugin_class(self.get_commons()), reason )) def _load(self, plugin_class): self.loaded_plugins.append(( plugin_class.name(), plugin_class(self.get_commons()) )) def load_plugins(self): import sos.plugins helper = ImporterHelper(sos.plugins) plugins = helper.get_modules() self.plugin_names = deque() # validate and load plugins for plug in plugins: plugbase, ext = os.path.splitext(plug) try: plugin_classes = import_plugin(plugbase, tuple(self.policy.valid_subclasses)) for plugin_class in plugin_classes: if not self.policy.validatePlugin(plugin_class): self.soslog.warning(_("plugin %s does not validate, skipping") % plug) if self.opts.verbosity > 0: self._skip(plugin_class, _("does not validate")) continue if plugin_class.requires_root and not self._is_root: self.soslog.info(_("plugin %s requires root permissions to execute, skipping") % plug) self._skip(plugin_class, _("requires root")) continue # plug-in is valid, let's decide whether run it or not self.plugin_names.append(plugbase) if self._is_skipped(plugbase): self._skip(plugin_class, _("skipped")) continue if self._is_inactive(plugbase, plugin_class): self._skip(plugin_class, _("inactive")) continue if self._is_not_default(plugbase, plugin_class): self._skip(plugin_class, _("not default")) continue if self._is_not_specified(plugbase): self._skip(plugin_class, _("not specified")) continue self._load(plugin_class) except Exception as e: self.soslog.warning(_("plugin %s does not install, skipping: %s") % (plug, e)) if self.raise_plugins: raise def _set_all_options(self): if self.opts.usealloptions: for plugname, plug in self.loaded_plugins: for name, parms in zip(plug.opt_names, plug.opt_parms): if type(parms["enabled"])==bool: parms["enabled"] = True def _set_tunables(self): if self.config.has_section("tunables"): if not self.opts.plugopts: self.opts.plugopts = deque() for opt, val in self.config.items("tunables"): if not opt.split('.')[0] in self._get_disabled_plugins(): self.opts.plugopts.append(opt + "=" + val) if self.opts.plugopts: opts = {} for opt in self.opts.plugopts: # split up "general.syslogsize=5" try: opt, val = opt.split("=") except: val = True else: if val.lower() in ["off", "disable", "disabled", "false"]: val = False else: # try to convert string "val" to int() try: val = int(val) except: pass # split up "general.syslogsize" try: plug, opt = opt.split(".") except: plug = opt opt = True try: opts[plug] except KeyError: opts[plug] = deque() opts[plug].append( (opt, val) ) for plugname, plug in self.loaded_plugins: if plugname in opts: for opt, val in opts[plugname]: if not plug.set_option(opt, val): self.soslog.error('no such option "%s" for plugin ' '(%s)' % (opt,plugname)) self._exit(1) del opts[plugname] for plugname in opts.keys(): self.soslog.error('unable to set option for disabled or non-existing ' 'plugin (%s)' % (plugname)) def _check_for_unknown_plugins(self): import itertools for plugin in itertools.chain(self.opts.onlyplugins, self.opts.noplugins, self.opts.enableplugins): plugin_name = plugin.split(".")[0] if not plugin_name in self.plugin_names: self.soslog.fatal('a non-existing plugin (%s) was specified in the ' 'command line' % (plugin_name)) self._exit(1) def _set_plugin_options(self): for plugin_name, plugin in self.loaded_plugins: names, parms = plugin.get_all_options() for optname, optparm in zip(names, parms): self.all_options.append((plugin, plugin_name, optname, optparm)) def list_plugins(self): if not self.loaded_plugins and not self.skipped_plugins: self.soslog.fatal(_("no valid plugins found")) return if self.loaded_plugins: self.ui_log.info(_("The following plugins are currently enabled:")) self.ui_log.info("") for (plugname, plug) in self.loaded_plugins: self.ui_log.info(" %-20s %s" % (plugname, plug.get_description())) else: self.ui_log.info(_("No plugin enabled.")) self.ui_log.info("") if self.skipped_plugins: self.ui_log.info(_("The following plugins are currently disabled:")) self.ui_log.info("") for (plugname, plugclass, reason) in self.skipped_plugins: self.ui_log.info(" %-20s %-14s %s" % (plugname, reason, plugclass.get_description())) self.ui_log.info("") if self.all_options: self.ui_log.info(_("The following plugin options are available:")) self.ui_log.info("") for (plug, plugname, optname, optparm) in self.all_options: # format option value based on its type (int or bool) if type(optparm["enabled"]) == bool: if optparm["enabled"] == True: tmpopt = "on" else: tmpopt = "off" else: tmpopt = optparm["enabled"] self.ui_log.info(" %-25s %-15s %s" % ( plugname + "." + optname, tmpopt, optparm["desc"])) else: self.ui_log.info(_("No plugin options available.")) self.ui_log.info("") def batch(self): if self.opts.batch: self.ui_log.info(self.policy.get_msg()) else: msg = self.policy.get_msg() msg += _("Press ENTER to continue, or CTRL-C to quit.\n") try: raw_input(msg) except: self.ui_log.info("") self._exit() def _log_plugin_exception(self, plugin_name): self.soslog.error("%s\n%s" % (plugin_name, traceback.format_exc())) def prework(self): try: self.policy.pre_work() self._set_archive() self._make_archive_paths() except Exception as e: import traceback traceback.print_exc(e) self.ui_log.info(e) self._exit(0) def setup(self): for plugname, plug in self.loaded_plugins: try: plug.archive = self.archive plug.setup() except KeyboardInterrupt: raise except: if self.raise_plugins: raise else: self._log_plugin_exception(plugname) def version(self): """Fetch version information from all plugins and store in the report version file""" versions = [] versions.append("sosreport: %s" % __version__) for plugname, plug in self.loaded_plugins: versions.append("%s: %s" % (plugname, plug.version)) self.archive.add_string(content="\n".join(versions), dest='version.txt') def collect(self): self.ui_log.info(_(" Running plugins. Please wait ...")) self.ui_log.info("") plugruncount = 0 for i in zip(self.loaded_plugins): plugruncount += 1 plugname, plug = i[0] if not self.opts.quiet: sys.stdout.write("\r Running %d/%d: %s... " % (plugruncount, len(self.loaded_plugins), plugname)) sys.stdout.flush() try: plug.collect() except KeyboardInterrupt: raise except: if self.raise_plugins: raise else: self._log_plugin_exception(plugname) self.ui_log.info("") def report(self): for plugname, plug in self.loaded_plugins: for oneFile in plug.copied_files: try: self.xml_report.add_file(oneFile["srcpath"], os.stat(oneFile["srcpath"])) except: pass self.xml_report.serialize_to_file( os.path.join(self.rptdir, "sosreport.xml")) def plain_report(self): report = Report() for plugname, plug in self.loaded_plugins: section = Section(name=plugname) for alert in plug.alerts: section.add(Alert(alert)) if plug.custom_text: section.add(Note(plug.custom_text)) for f in plug.copied_files: section.add(CopiedFile(name=f['srcpath'], href= ".." + f['dstpath'])) for cmd in plug.executed_commands: section.add(Command(name=cmd['exe'], return_code=0, href="../" + cmd['file'])) for content, f in plug.copy_strings: section.add(CreatedFile(name=f)) report.add(section) fd = self.get_temp_file() fd.write(str(PlainTextReport(report))) fd.flush() self.archive.add_file(fd.name, dest=os.path.join('sos_reports', 'sos.txt')) def html_report(self): # Generate the header for the html output file rfd = self.get_temp_file() rfd.write(""" Sos System Report """) # Make a pass to gather Alerts and a list of module names allAlerts = deque() plugNames = deque() for plugname, plug in self.loaded_plugins: for alert in plug.alerts: allAlerts.append('%s: %s' % (plugname, plugname, alert)) plugNames.append(plugname) # Create a table of links to the module info rfd.write("

Loaded Plugins:

") rfd.write("\n") rr = 0 for i in range(len(plugNames)): rfd.write('\n' % (plugNames[i], plugNames[i])) rr = divmod(i, 4)[1] if (rr == 3): rfd.write('') if not (rr == 3): rfd.write('') rfd.write('
%s
\n') rfd.write('

Alerts:

') rfd.write('
    ') for alert in allAlerts: rfd.write('
  • %s
  • ' % alert) rfd.write('
') # Call the report method for each plugin for plugname, plug in self.loaded_plugins: try: html = plug.report() except: if self.raise_plugins: raise else: rfd.write(html) rfd.write("") rfd.flush() self.archive.add_file(rfd.name, dest=os.path.join('sos_reports', 'sos.html')) def postproc(self): for plugname, plug in self.loaded_plugins: try: plug.postproc() except: if self.raise_plugins: raise def final_work(self): # this must come before archive creation to ensure that log # files are closed and cleaned up at exit. self._finish_logging() # package up the results for the support organization if not self.opts.build: print (_("Creating compressed archive...")) # compression could fail for a number of reasons try: final_filename = self.archive.finalize(self.opts.compression_type) except: if self.opts.debug: raise else: return False else: final_filename = self.archive.get_archive_path() self.policy.display_results(final_filename, build = self.opts.build) self.tempfile_util.clean() return True def verify_plugins(self): if not self.loaded_plugins: self.soslog.error(_("no valid plugins were enabled")) return False return True def set_global_plugin_option(self, key, value): self.global_plugin_options[key] = value; def execute(self): try: self._setup_logging() self.policy.set_commons(self.get_commons()) self.print_header() self.load_plugins() self._set_all_options() self._set_tunables() self._check_for_unknown_plugins() self._set_plugin_options() if self.opts.list_plugins: self.list_plugins() return True # verify that at least one plug-in is enabled if not self.verify_plugins(): return False self.batch() self.prework() self.setup() self.collect() if not self.opts.report: self.report() self.html_report() self.plain_report() self.postproc() self.version() return self.final_work() except (SystemExit, KeyboardInterrupt): if self.archive: self.archive.cleanup() if self.tempfile_util: self.tempfile_util.clean() return False def main(args): """The main entry point""" sos = SoSReport(args) sos.execute() sosreport/sos/__init__.py0000644000175000017500000000214612271430455014173 0ustar zefzef## Copyright 2010 Red Hat, Inc. ## Author: Adam Stokes ## This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. """ This module houses the i18n setup and message function. The default is to use gettext to internationalize messages. """ __version__ = "3.1" import gettext gettext_dir = "/usr/share/locale" gettext_app = "sos" gettext.bindtextdomain(gettext_app, gettext_dir) def _default(msg): return gettext.dgettext(gettext_app, msg) _sos = _default sosreport/sos/plugins/0000755000175000017500000000000012271442123013533 5ustar zefzefsosreport/sos/plugins/openstack_heat.py0000644000175000017500000000377712254061770017121 0ustar zefzef## Copyright (C) 2013 Red Hat, Inc. ### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. from sos import plugins class OpenStackHeat(plugins.Plugin): """openstack related information """ plugin_name = "openstack-heat" option_list = [("log", "gathers openstack-heat logs", "slow", False)] def setup(self): # Heat self.add_cmd_output( "heat-manage db_version", suggest_filename="heat_db_version") self.add_copy_specs(["/etc/heat/", "/var/log/heat/"]) class DebianOpenStack(OpenStackHeat, plugins.DebianPlugin, plugins.UbuntuPlugin): """OpenStackHeat related information for Debian based distributions.""" packages = ('heat-api', 'heat-api-cfn', 'heat-api-cloudwatch', 'heat-common', 'heat-engine', 'python-heat', 'python-heatclient') class RedHatOpenStack(OpenStackHeat, plugins.RedHatPlugin): """OpenStackHeat related information for Red Hat distributions.""" packages = ('openstack-heat-api', 'openstack-heat-api-cfn', 'openstack-heat-api-cloudwatch', 'openstack-heat-cli', 'openstack-heat-common', 'openstack-heat-engine', 'python-heatclient') sosreport/sos/plugins/kernelrt.py0000644000175000017500000000264012254061770015743 0ustar zefzef# -*- python -*- # -*- coding: utf-8 -*- # # Copyright 2012 Red Hat Inc. # Guy Streeter # # This program is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License # as published by the Free Software Foundation; version 2. # # This application is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. from sos.plugins import Plugin, RedHatPlugin class KernelRT(Plugin, RedHatPlugin): '''Information specific to the realtime kernel ''' plugin_name = 'kernelrt' # this file exists only when the realtime kernel is booted # this plugin will not be called is this file does not exist files = ('/sys/kernel/realtime',) def setup(self): self.add_copy_spec('/etc/rtgroups') self.add_copy_spec('/proc/sys/kernel/sched_rt_period_us') self.add_copy_spec('/proc/sys/kernel/sched_rt_runtime_us') self.add_copy_spec('/sys/kernel/realtime') self.add_copy_spec('/sys/devices/system/clocksource/clocksource0/available_clocksource') self.add_copy_spec('/sys/devices/system/clocksource/clocksource0/current_clocksource') if self.is_installed('tuna'): self.add_cmd_output('tuna -CP | /usthead -20') sosreport/sos/plugins/grub2.py0000644000175000017500000000237112254061770015137 0ustar zefzef### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin class Grub2(Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin): """Bootloader information """ plugin_name = 'grub2' packages = ('grub2',) def setup(self): self.add_copy_specs([ "/etc/grub.d", "/etc/grub2.cfg", "/etc/default/grub", "/boot/grub/grub.cfg", "/boot/grub2/grub.cfg", "/boot/grub2/grubenv" ]) self.add_cmd_output("ls -lanR /boot") self.add_cmd_output("grub2-mkconfig") sosreport/sos/plugins/gluster.py0000644000175000017500000000734612254061770015612 0ustar zefzef### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. import time import os.path import os import string from sos.plugins import Plugin, RedHatPlugin class Gluster(Plugin, RedHatPlugin): '''gluster related information''' plugin_name = 'gluster' statedump_dir = '/tmp/glusterfs-statedumps' packages = ["glusterfs", "glusterfs-core"] files = ["/etc/glusterd", "/var/lib/glusterd"] def default_enabled(self): return True def get_volume_names(self, volume_file): """Return a dictionary for which key are volume names according to the output of gluster volume info stored in volume_file. """ out=[] fp = open(volume_file, 'r') for line in fp.readlines(): if not line.startswith("Volume Name:"): continue volname = line[14:-1] out.append(volname) fp.close() return out def make_preparations(self, name_dir): try: os.mkdir(name_dir); except: pass fp = open ('/tmp/glusterdump.options', 'w'); data = 'path=' + name_dir + '\n'; fp.write(data); fp.write('all=yes'); fp.close(); def wait_for_statedump(self, name_dir): statedumps_present = 0; statedump_entries = os.listdir(name_dir); for statedump_file in statedump_entries: statedumps_present = statedumps_present+1; last_line = 'tmp'; ret = -1; while ret == -1: last_line = file(name_dir + '/' + statedump_file, "r").readlines()[-1]; ret = string.count (last_line, 'DUMP_END_TIME'); def postproc(self): if not os.path.exists(self.statedump_dir): return try: for dirs in os.listdir(self.statedump_dir): os.remove(os.path.join(self.statedump_dir,dirs)); os.rmdir(self.statedump_dir); os.unlink('/tmp/glusterdump.options'); except: pass def setup(self): self.add_cmd_output("gluster peer status") self.add_copy_spec("/var/lib/glusterd/") self.add_forbidden_path("/var/lib/glusterd/geo-replication/secret.pem") # collect unified file and object storage configuration self.add_copy_spec("/etc/swift/") # glusterfs-server rpm scripts stash this on migration to 3.3.x self.add_copy_spec("/etc/glusterd.rpmsave") # common to all versions self.add_copy_spec("/etc/glusterfs") self.make_preparations(self.statedump_dir) #self.add_cmd_output("killall -USR1 glusterfs glusterfsd") os.system("killall -USR1 glusterfs glusterfsd"); # let all the processes catch the signal and create statedump file # entries. time.sleep(1) self.wait_for_statedump(self.statedump_dir) self.add_copy_spec('/tmp/glusterdump.options') self.add_copy_spec(self.statedump_dir) self.add_cmd_output("gluster volume status") # collect this last as some of the other actions create log entries self.add_copy_spec("/var/log/glusterfs") sosreport/sos/plugins/lilo.py0000644000175000017500000000174012254061770015054 0ustar zefzef### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. from sos.plugins import Plugin, RedHatPlugin, UbuntuPlugin class Lilo(Plugin, RedHatPlugin, UbuntuPlugin): """Lilo information """ plugin_name = 'lilo' packages = ('lilo',) def setup(self): self.add_copy_spec("/etc/lilo.conf") self.add_cmd_output("lilo -q") sosreport/sos/plugins/ssh.py0000644000175000017500000000204412254061770014710 0ustar zefzef## Copyright (C) 2007 Red Hat, Inc., Eugene Teo ### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin class Ssh(Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin): """ssh-related information """ plugin_name = 'ssh' def setup(self): self.add_copy_specs(["/etc/ssh/ssh_config", "/etc/ssh/sshd_config"]) sosreport/sos/plugins/cs.py0000644000175000017500000000720612254061770014525 0ustar zefzef## Copyright (C) 2007-2010 Red Hat, Inc., Kent Lamb ## Marc Sauton ## Pierre Carrier ### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. from sos.plugins import Plugin, RedHatPlugin from os.path import exists from glob import glob class CertificateSystem(Plugin, RedHatPlugin): """Red Hat Certificate System 7.1, 7.3, 8.0 and dogtag related information """ plugin_name = 'certificatesystem' def checkversion(self): if self.is_installed("redhat-cs") or exists("/opt/redhat-cs"): return 71 elif self.is_installed("rhpki-common") or len(glob("/var/lib/rhpki-*")): return 73 # 8 should cover dogtag elif self.is_installed("pki-common") or exists("/usr/share/java/pki"): return 8 return False def check_enabled(self): if self.is_installed("redhat-cs") or \ self.is_installed("rhpki-common") or \ self.is_installed("pki-common") or \ exists("/opt/redhat-cs") or \ exists("/usr/share/java/rhpki") or \ exists("/usr/share/java/pki"): return True return False def setup(self): csversion = self.checkversion() if not csversion: self.add_alert("Red Hat Certificate System not found.") return if csversion == 71: self.add_copy_specs([ "/opt/redhat-cs/slapd-*/logs/access", "/opt/redhat-cs/slapd-*/logs/errors", "/opt/redhat-cs/slapd-*/config/dse.ldif", "/opt/redhat-cs/cert-*/errors", "/opt/redhat-cs/cert-*/config/CS.cfg", "/opt/redhat-cs/cert-*/access", "/opt/redhat-cs/cert-*/errors", "/opt/redhat-cs/cert-*/system", "/opt/redhat-cs/cert-*/transactions", "/opt/redhat-cs/cert-*/debug", "/opt/redhat-cs/cert-*/tps-debug.log"]) if csversion == 73: self.add_copy_specs([ "/var/lib/rhpki-*/conf/*cfg*", "/var/lib/rhpki-*/conf/*.ldif", "/var/lib/rhpki-*/logs/debug", "/var/lib/rhpki-*/logs/catalina.*", "/var/lib/rhpki-*/logs/ra-debug.log", "/var/lib/rhpki-*/logs/transactions", "/var/lib/rhpki-*/logs/system"]) if csversion in (73, 8): self.add_copy_specs([ "/etc/dirsrv/slapd-*/dse.ldif", "/var/log/dirsrv/slapd-*/access", "/var/log/dirsrv/slapd-*/errors"]) if csversion == 8: self.add_copy_specs([ "/etc/pki-*/CS.cfg", "/var/lib/pki-*/conf/*cfg*", "/var/log/pki-*/debug", "/var/log/pki-*/catalina.*", "/var/log/pki-*/ra-debug.log", "/var/log/pki-*/transactions", "/var/log/pki-*/system"]) sosreport/sos/plugins/libvirt.py0000644000175000017500000000230412254061770015565 0ustar zefzef### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. from sos.plugins import Plugin, RedHatPlugin, UbuntuPlugin, DebianPlugin import glob class Libvirt(Plugin, RedHatPlugin, UbuntuPlugin, DebianPlugin): """libvirt-related information """ plugin_name = 'libvirt' def setup(self): self.add_copy_specs(["/etc/libvirt/", "/var/log/libvirt*"]) def postproc(self): for xmlfile in glob.glob("/etc/libvirt/qemu/*.xml"): self.do_file_sub(xmlfile, r"(\s*passwd=\s*')([^']*)('.*$)", r"\1******\3") sosreport/sos/plugins/rhui.py0000644000175000017500000000276312254061770015072 0ustar zefzef### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. from sos.plugins import Plugin, RedHatPlugin import os class Rhui(Plugin, RedHatPlugin): """Red Hat Update Infrastructure for Cloud Providers data """ plugin_name = 'rhui' rhui_debug_path = "/usr/share/rh-rhua/rhui-debug.py" packages = [ "rh-rhui-tools" ] files = [ rhui_debug_path ] def setup(self): if self.is_installed("pulp-cds"): cds = "--cds" else: cds = "" rhui_debug_dst_path = os.path.join(self.get_cmd_path(), self.commons['cmddir'], self.name()) try: os.mkdir(rhui_debug_dst_path) except: return self.add_cmd_output("python %s %s --dir %s" % (self.rhui_debug_path, cds, rhui_debug_dst_path), suggest_filename="rhui-debug") return sosreport/sos/plugins/mysql.py0000644000175000017500000000326612254061770015267 0ustar zefzef### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin from os.path import exists class Mysql(Plugin): """MySQL related information """ plugin_name = "mysql" mysql_cnf = "/etc/my.cnf" def setup(self): super(Mysql, self).setup() self.add_copy_specs([self.mysql_cnf, "/var/log/mysql*"]) class RedHatMysql(Mysql, RedHatPlugin): """MySQL related information for RedHat based distributions """ packages = ('mysql-server', 'mysql') def setup(self): self.mysql_cnf = "/etc/my.cnf" super(RedHatMysql, self).setup() self.add_copy_spec("/etc/ld.so.conf.d/mysql*") class DebianMysql(Mysql, DebianPlugin, UbuntuPlugin): """MySQL related information for Debian based distributions """ packages = ('mysql-server', 'mysql-common') def setup(self): self.mysql_cnf = "/etc/mysql/my.cnf" super(DebianMysql, self).setup() self.add_copy_spec("/etc/mysql/conf.d/mysql*") sosreport/sos/plugins/rhevm.py0000644000175000017500000000151112254061770015232 0ustar zefzeffrom sos.plugins import Plugin, RedHatPlugin # Class name must be the same as file name and method names must not change class RhevM(Plugin, RedHatPlugin): """RHEV-Manager related information""" plugin_name = 'rhevm' option_list = [("vdsmlogs", 'Directory containing all of the SOS logs from the RHEV hypervisor(s)', '', False)] def setup(self): # Copy rhevm config files. self.add_copy_spec("/etc/rhevm") self.add_copy_spec("/var/log/rhevm") if self.get_option("vdsmlogs"): self.add_copy_spec(self.get_option("vdsmlogs")) def postproc(self): """ Obfuscate passwords. """ self.do_file_sub("/etc/rhevm/rhevm-config/rhevm-config.properties", r"Password.type=(.*)", r'Password.type=********') sosreport/sos/plugins/__init__.py0000644000175000017500000006670712271432722015670 0ustar zefzef## This exports methods available for use by plugins for sos ## Copyright (C) 2006 Steve Conklin ### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. # pylint: disable-msg = R0902 # pylint: disable-msg = R0904 # pylint: disable-msg = W0702 # pylint: disable-msg = W0703 # pylint: disable-msg = R0201 # pylint: disable-msg = W0611 # pylint: disable-msg = W0613 from __future__ import with_statement from sos.utilities import sos_get_command_output, import_module, grep, fileobj, tail import os import glob import re import traceback from stat import * from time import time from itertools import * import logging import fnmatch # PYCOMPAT import six from six.moves import zip, filter try: import json except ImportError: import simplejson as json def common_prefix(l1, l2, common = None): """Returns a tuple like the following: ([common, elements, from l1, and l2], [[tails, from, l1], [tails, from, l2]]) >>> common_prefix(['usr','share','foo'], ['usr','share','bar']) (['usr','share'], [['foo'], ['bar']]) """ if common is None: common = [] if len(l1) < 1 or len(l2) < 1 or l1[0] != l2[0]: return (common, [l1, l2]) return common_prefix(l1[1:], l2[1:], common+[l1[0]]) def sos_relative_path(path1, path2, sep=os.path.sep, pardir=os.path.pardir): '''Return a relative path from path1 equivalent to path path2. In particular: the empty string, if path1 == path2; path2, if path1 and path2 have no common prefix. ''' try: common, (u1, u2) = common_prefix(path1.split(sep), path2.split(sep)) except AttributeError: return path2 if not common: return path2 # leave path absolute if nothing at all in common return sep.join( [pardir]*len(u1) + u2 ) def regex_findall(regex, fname): '''Return a list of all non overlapping matches in the string(s)''' try: with fileobj(fname) as f: return re.findall(regex, f.read(), re.MULTILINE) except AttributeError: return [] def mangle_command(command): # FIXME: this can be improved mangledname = re.sub(r"^/(usr/|)(bin|sbin)/", "", command) mangledname = re.sub(r"[^\w\-\.\/]+", "_", mangledname) mangledname = re.sub(r"/", ".", mangledname).strip(" ._-")[0:64] return mangledname class PluginException(Exception): pass class Plugin(object): """ This is the base class for sosreport plugins. Plugins should subclass this and set the class variables where applicable. plugin_name is a string returned by plugin.name(). If this is set to None (the default) class_.__name__.tolower() will be returned. Be sure to set this if you are defining multiple plugins that do the same thing on different platforms. requires_root is a boolean that specifies whether or not sosreport should execute this plugin as a super user. version is a string representing the version of the plugin. This can be useful for post-collection tooling. packages (files) is an iterable of the names of packages (the paths of files) to check for before running this plugin. If any of these packages or files is found on the system, the default implementation of check_enabled will return True. """ plugin_name = None requires_root = True version = 'unversioned' packages = () files = () def __init__(self, commons): if not getattr(self, "option_list", False): self.option_list = [] self.copied_files = [] self.executed_commands = [] self.alerts = [] self.custom_text = "" self.opt_names = [] self.opt_parms = [] self.commons = commons self.forbidden_paths = [] self.copy_paths = [] self.copy_strings = [] self.collect_cmds = [] self.soslog = self.commons['soslog'] if 'soslog' in self.commons else logging.getLogger('sos') self.proflog = self.commons['proflog'] if 'proflog' in self.commons else logging.getLogger('sosprofile') # get the option list into a dictionary for opt in self.option_list: self.opt_names.append(opt[0]) self.opt_parms.append({'desc':opt[1], 'speed':opt[2], 'enabled':opt[3]}) @classmethod def name(class_): """Returns the plugin's name as a string. This should return a lowercase string. """ if class_.plugin_name: return class_.plugin_name return class_.__name__.lower() def policy(self): return self.commons["policy"] def is_installed(self, package_name): '''Is the package $package_name installed?''' return (self.policy().pkg_by_name(package_name) is not None) def do_cmd_output_sub(self, cmd, regexp, subst): '''Apply a regexp substitution to command output archived by sosreport. cmd is the command name from which output is collected (i.e. excluding parameters). The regexp can be a string or a compiled re object. The substitution string, subst, is a string that replaces each occurrence of regexp in each file collected from cmd. Internally 'cmd' is treated as a glob with a leading and trailing '*' and each matching file from the current module's command list is subjected to the replacement. This function returns the number of replacements made. ''' if self.commons['cmdlineopts'].profiler: start_time = time() globstr = '*' + cmd + '*' self.soslog.debug("substituting '%s' for '%s' in commands matching %s" % (subst, regexp, globstr)) if not self.executed_commands: return 0 try: for called in self.executed_commands: # was anything collected? if called['file'] == None: continue if fnmatch.fnmatch(called['exe'], globstr): path = os.path.join(self.commons['cmddir'], called['file']) self.soslog.debug("applying substitution to %s" % path) readable = self.archive.open_file(path) result, replacements = re.subn( regexp, subst, readable.read()) if replacements: self.archive.add_string(result, path) else: replacements = 0 except Exception as e: msg = 'regex substitution failed for %s in plugin %s with: "%s"' self.soslog.error(msg % (called['exe'], self.name(), e)) replacements = 0 if self.commons['cmdlineopts'].profiler: time_passed = time() - start_time self.proflog.debug("subst: %-75s time: %f" % (globstr, time_passed)) return replacements def do_file_sub(self, srcpath, regexp, subst): '''Apply a regexp substitution to a file archived by sosreport. srcpath is the path in the archive where the file can be found. regexp can be a regexp string or a compiled re object. subst is a string to replace each occurance of regexp in the content of srcpath. This function returns the number of replacements made. ''' if self.commons['cmdlineopts'].profiler: start_time = time() try: path = self._get_dest_for_srcpath(srcpath) self.soslog.debug("substituting '%s' for '%s' in %s" % (subst, regexp, path)) if not path: return 0 readable = self.archive.open_file(path) result, replacements = re.subn(regexp, subst, readable.read()) if replacements: self.archive.add_string(result, srcpath) else: replacements = 0 except Exception as e: msg = 'regex substitution failed for %s in plugin %s with: "%s"' self.soslog.error(msg % (path, self.name(), e)) replacements = 0 if self.commons['cmdlineopts'].profiler: time_passed = time() - start_time self.proflog.debug("subst : %-75s time: %f" % (srcpath, time_passed)) return replacements def do_regex_find_all(self, regex, fname): return regex_findall(regex, fname) def _path_in_path_list(self, path, path_list): for p in path_list: if p in path: return True return False def copy_symlink(self, srcpath, sub=None): # the target stored in the original symlink linkdest = os.readlink(srcpath) # absolute path to the link target absdest = os.path.normpath(os.path.join( os.path.dirname(srcpath), linkdest)) # adjust the target used inside the report to always be relative if os.path.isabs(linkdest): reldest = os.path.relpath(linkdest, os.path.dirname(srcpath)) self.soslog.debug("made link target %s relative as %s" % (linkdest, reldest)) else: reldest = linkdest self.soslog.debug( "copying link %s pointing to %s with sub=%s, isdir=%s" % (srcpath, linkdest, sub, os.path.isdir(absdest))) if os.path.isdir(absdest): self.soslog.debug("link %s is a directory, skipping..." % linkdest) return if sub: old, new = sub reldest = srcpath.replace(old, new) # use the relative target path in the tarball self.archive.add_link(reldest,srcpath) # copy the symlink target translating relative targets # to absolute paths to pass to do_copy_file_or_dir. self.soslog.debug("normalized link target %s as %s" %(linkdest, absdest)) self.do_copy_file_or_dir(absdest) self.copied_files.append({ 'srcpath':srcpath, 'dstpath':srcpath, 'symlink':"yes", 'pointsto':linkdest}) def copy_dir(self, srcpath, sub=None): for afile in os.listdir(srcpath): self.do_copy_file_or_dir(os.path.join(srcpath, afile), dest=None, sub=sub) def _get_dest_for_srcpath(self, srcpath): for copied in self.copied_files: if srcpath == copied["srcpath"]: return copied["dstpath"] return None # Methods for copying files and shelling out def do_copy_file_or_dir(self, srcpath, dest=None, sub=None): # pylint: disable-msg = R0912 # pylint: disable-msg = R0915 '''Copy file or directory to the destination tree. If a directory, then everything below it is recursively copied. A list of copied files are saved for use later in preparing a report. sub can be used to rename the destination of the file, sub should be a two-tuple of (old,new). For example if you passed in ("etc","configurations") for use against /etc/my_file.conf the file would end up at /configurations/my_file.conf. ''' if self.commons['cmdlineopts'].profiler: start_time = time() if self._path_in_path_list(srcpath, self.forbidden_paths): self.soslog.debug("%s is in the forbidden path list" % srcpath) return '' if not os.path.exists(srcpath): self.soslog.debug("file or directory %s does not exist" % srcpath) return if not dest: dest = srcpath if sub: old, new = sub dest = srcpath.replace(old, new) if os.path.islink(srcpath): self.copy_symlink(srcpath, sub=sub) return else: if os.path.isdir(srcpath): self.copy_dir(srcpath, sub=sub) return # if we get here, it's definitely a regular file (not a symlink or dir) self.soslog.debug("copying file %s to %s" % (srcpath,dest)) try: stat = os.stat(srcpath) # if not readable(srcpath) if not (stat.st_mode & 0o444): # FIXME: reflect permissions in archive self.archive.add_string("", dest) else: self.archive.add_file(srcpath, dest) self.copied_files.append({ 'srcpath':srcpath, 'dstpath':dest, 'symlink':"no"}) if self.commons['cmdlineopts'].profiler: time_passed = time() - start_time self.proflog.debug("copied: %-75s time: %f" % (srcpath, time_passed)) except Exception as e: self.soslog.error("Unable to copy %s to %s" % (srcpath, dest)) self.soslog.error(traceback.format_exc()) def add_forbidden_path(self, forbiddenPath): """Specify a path to not copy, even if it's part of a copy_paths[] entry. """ # Glob case handling is such that a valid non-glob is a reduced glob for filespec in glob.glob(forbiddenPath): self.forbidden_paths.append(filespec) def get_all_options(self): """return a list of all options selected""" return (self.opt_names, self.opt_parms) def set_option(self, optionname, value): '''set the named option to value.''' for name, parms in zip(self.opt_names, self.opt_parms): if name == optionname: parms['enabled'] = value return True else: return False def option_enabled(self, optionname): '''Deprecated, use get_option() instead''' return self.get_option(optionname) def get_option(self, optionname, default=0): """Returns the first value that matches 'optionname' in parameters passed in via the command line or set via set_option or via the global_plugin_options dictionary, in that order. optionaname may be iterable, in which case the first option that matches any of the option names is returned. """ def _check(key): if hasattr(optionname, "__iter__"): return key in optionname else: return key == optionname for name, parms in zip(self.opt_names, self.opt_parms): if _check(name): val = parms['enabled'] if val != None: return val for key, value in six.iteritems(self.commons.get('global_plugin_options', {})): if _check(key): return value return default def get_option_as_list(self, optionname, delimiter=",", default=None): '''Will try to return the option as a list separated by the delimiter. ''' option = self.get_option(optionname) try: opt_list = [opt.strip() for opt in option.split(delimiter)] return list(filter(None, opt_list)) except Exception: return default def add_copy_spec_limit(self, copyspec, sizelimit=None, sub=None): """Add a file or glob but limit it to sizelimit megabytes. If fname is a single file the file will be tailed to meet sizelimit. If the first file in a glob is too large it will be tailed to meet the sizelimit. """ if not (copyspec and len(copyspec)): return False files = glob.glob(copyspec) files.sort() if len(files) == 0: return current_size = 0 limit_reached = False sizelimit *= 1024 * 1024 # in MB _file = None for _file in files: current_size += os.stat(_file)[ST_SIZE] if sizelimit and current_size > sizelimit: limit_reached = True break self.add_copy_spec(_file, sub) if limit_reached: file_name = _file if sub: old, new = sub file_name = _file.replace(old, new) if file_name[0] == os.sep: file_name = file_name.lstrip(os.sep) strfile = file_name.replace(os.path.sep, ".") + ".tailed" self.add_string_as_file(tail(_file, sizelimit), strfile) self.archive.add_link(os.path.join( os.path.relpath('/', os.path.dirname(_file)), 'sos_strings', self.name(), strfile), _file) def add_copy_specs(self, copyspecs, sub=None): for copyspec in copyspecs: self.add_copy_spec(copyspec, sub) def add_copy_spec(self, copyspec, sub=None): """Add a file specification (can be file, dir,or shell glob) to be copied into the sosreport by this module. """ if not (copyspec and len(copyspec)): # self.soslog.warning("invalid file path") return False # Glob case handling is such that a valid non-glob is a reduced glob for filespec in glob.glob(copyspec): if filespec not in self.copy_paths: self.copy_paths.append((filespec, sub)) def get_command_output(self, prog, timeout=300): (status, output, runtime) = sos_get_command_output(prog, timeout) if status == 124: self.soslog.warning("command '%s' timed out after %ds" % (prog, timeout)) if status == 127: self.soslog.warning("could not run '%s': command not found" % prog) return (status, output, runtime) def call_ext_prog(self, prog, timeout=300): """Execute a command independantly of the output gathering part of sosreport. """ # pylint: disable-msg = W0612 return self.get_command_output(prog, timeout) def check_ext_prog(self, prog): """Execute a command independently of the output gathering part of sosreport and check the return code. Return True for a return code of 0 and False otherwise. """ (status, output, runtime) = self.call_ext_prog(prog) return (status == 0) def add_cmd_output(self, exe, suggest_filename=None, root_symlink=None, timeout=300): """Run a program and collect the output""" self.collect_cmds.append( (exe, suggest_filename, root_symlink, timeout) ) def get_cmd_path(self): """Return a path into which this module should store collected command output """ return os.path.join(self.archive.get_tmp_dir(), 'sos_commands', self.name()) def make_cmd_path(self, path): """Return a string representing an absolute path within this plug-in's command output directory by apending the relative path name 'path'. """ return os.path.join(self.get_cmd_path(), path) def make_cmd_dirs(self, path): """Recursively create new subdirectories under this plug-in's command output path. """ os.makedirs(self.make_cmd_path(path)) def file_grep(self, regexp, *fnames): """Returns lines matched in fnames, where fnames can either be pathnames to files to grep through or open file objects to grep through line by line. """ return grep(regexp, *fnames) def mangle_command(self, exe): return mangle_command(exe) def make_command_filename(self, exe): """The internal function to build up a filename based on a command.""" outfn = os.path.join(self.commons['cmddir'], self.name(), self.mangle_command(exe)) # check for collisions if os.path.exists(outfn): inc = 2 while True: newfn = "%s_%d" % (outfn, inc) if not os.path.exists(newfn): outfn = newfn break inc +=1 return outfn def add_string_as_file(self, content, filename): """Add a string to the archive as a file named `filename`""" self.copy_strings.append((content, filename)) def get_cmd_output_now(self, exe, suggest_filename=None, root_symlink=False, timeout=300): """Execute a command and save the output to a file for inclusion in the report. """ if self.commons['cmdlineopts'].profiler: start_time = time() # pylint: disable-msg = W0612 status, shout, runtime = self.get_command_output(exe, timeout=timeout) if (status == 127): return None if suggest_filename: outfn = self.make_command_filename(suggest_filename) else: outfn = self.make_command_filename(exe) outfn_strip = outfn[len(self.commons['cmddir'])+1:] self.archive.add_string(shout, outfn) if root_symlink: self.archive.add_link(outfn, root_symlink) # save info for later self.executed_commands.append({'exe': exe, 'file':outfn_strip}) # save in our list self.commons['xmlreport'].add_command(cmdline=exe,exitcode=status,f_stdout=outfn_strip,runtime=runtime) if self.commons['cmdlineopts'].profiler: time_passed = time() - start_time self.proflog.debug("output: %-75s time: %f" % (exe, time_passed)) return outfn # For adding output def add_alert(self, alertstring): """Add an alert to the collection of alerts for this plugin. These will be displayed in the report """ self.alerts.append(alertstring) def add_custom_text(self, text): """Append text to the custom text that is included in the report. This is freeform and can include html. """ self.custom_text += text def collect(self): """Collect the data for a plugin.""" for path, sub in self.copy_paths: self.do_copy_file_or_dir(path, sub=sub) for string, file_name in self.copy_strings: try: self.archive.add_string(string, os.path.join('sos_strings', self.name(), file_name)) except Exception as e: self.soslog.debug("could not create %s, traceback follows: %s" % (file_name, e)) for progs in zip(self.collect_cmds): prog, suggest_filename, root_symlink, timeout = progs[0] self.soslog.debug("collecting output of '%s'" % prog) try: self.get_cmd_output_now(prog, suggest_filename, root_symlink, timeout) except Exception as e: self.soslog.debug("error collecting output of '%s' (%s)" % (prog, e)) def get_description(self): """ This function will return the description for the plugin""" try: return self.__doc__.strip() except: return "" def check_enabled(self): """This method will be used to verify that a plugin should execute given the condition of the underlying environment. The default implementation will return True if neither class.files or class.packages is specified. If either are specified the plugin will check for the existence of any of the supplied files or packages and return True if any exist. It is encouraged to override this method if this behavior isn't applicable. """ # some files or packages have been specified for this package if self.files or self.packages: if isinstance(self.files, six.string_types): self.files = [self.files] if isinstance(self.packages, six.string_types): self.packages = [self.packages] return (any(os.path.exists(fname) for fname in self.files) or any(self.is_installed(pkg) for pkg in self.packages)) return True def default_enabled(self): """This devices whether a plugin should be automatically loaded or only if manually specified in the command line.""" return True def setup(self): """This method must be overridden to add the copy_paths, forbidden_paths, and external programs to be collected at a minimum. """ pass def postproc(self): """ perform any postprocessing. To be replaced by a plugin if desired """ pass def report(self): """ Present all information that was gathered in an html file that allows browsing the results. """ # make this prettier html = '
\n' % self.name() # Intro html = html + "

Plugin " + self.name() + "

\n" # Files if len(self.copied_files): html = html + "

Files copied:

    \n" for afile in self.copied_files: html = html + '
  • %s' % \ (".." + afile['dstpath'], afile['srcpath']) if (afile['symlink'] == "yes"): html = html + " (symlink to %s)" % afile['pointsto'] html = html + '
  • \n' html = html + "

\n" # Command Output if len(self.executed_commands): html = html + "

Commands Executed:

    \n" # convert file name to relative path from our root # don't use relpath - these are HTML paths not OS paths. for cmd in self.executed_commands: if cmd["file"] and len(cmd["file"]): cmdOutRelPath = "../" + self.commons['cmddir'] \ + "/" + cmd['file'] html = html + '
  • %s
  • \n' % \ (cmdOutRelPath, cmd['exe']) else: html = html + '
  • %s
  • \n' % (cmd['exe']) html = html + "

\n" # Alerts if len(self.alerts): html = html + "

Alerts:

    \n" for alert in self.alerts: html = html + '
  • %s
  • \n' % alert html = html + "

\n" # Custom Text if (self.custom_text != ""): html = html + "

Additional Information:
\n" html = html + self.custom_text + "

\n" return html class RedHatPlugin(object): """Tagging class to indicate that this plugin works with Red Hat Linux""" pass class UbuntuPlugin(object): """Tagging class to indicate that this plugin works with Ubuntu Linux""" pass class DebianPlugin(object): """Tagging class to indicate that this plugin works with Debian Linux""" pass class IndependentPlugin(object): """Tagging class that indicates this plugin can run on any platform""" pass def import_plugin(name, superclasses=None): """Import name as a module and return a list of all classes defined in that module. superclasses should be a tuple of valid superclasses to import, this defaults to (Plugin,). """ plugin_fqname = "sos.plugins.%s" % name if not superclasses: superclasses = (Plugin,) return import_module(plugin_fqname, superclasses) sosreport/sos/plugins/pam.py0000644000175000017500000000271612254061770014676 0ustar zefzef### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin class Pam(Plugin): """PAM related information """ plugin_name = "pam" security_libs = "" def setup(self): self.add_copy_spec("/etc/pam.d") self.add_copy_spec("/etc/security") self.add_cmd_output("ls -lanF %s" % self.security_libs) class RedHatPam(Pam, RedHatPlugin): """PAM related information for RedHat based distribution """ security_libs = "/lib*/security" def setup(self): super(RedHatPam, self).setup() class DebianPam(Pam, DebianPlugin, UbuntuPlugin): """PAM related information for Debian based distribution """ security_libs = "/lib/x86_64-linux-gnu/security" def setup(self): super(DebianPam, self).setup() sosreport/sos/plugins/soundcard.py0000644000175000017500000000337612254061770016106 0ustar zefzef### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin import os class Soundcard(Plugin): """ Sound card information """ plugin_name = "soundcard" def default_enabled(self): return False def setup(self): self.add_copy_spec("/proc/asound/*") self.add_cmd_output("lspci | grep -i audio") self.add_cmd_output("aplay -l") self.add_cmd_output("aplay -L") self.add_cmd_output("amixer") self.add_cmd_output("lsmod | grep snd | awk '{print $1}'",\ suggest_filename = "sndmodules_loaded") class RedHatSoundcard(Soundcard, RedHatPlugin): """ Sound card information for RedHat distros """ def setup(self): super(RedHatSoundcard, self).setup() self.add_copy_specs([ "/etc/alsa/*", "/etc/asound.*"]) class DebianSoundcard(Soundcard, DebianPlugin, UbuntuPlugin): """ Sound card information for Debian/Ubuntu distros """ def setup(self): super(DebianSoundcard, self).setup() self.add_copy_spec("/etc/pulse/*") sosreport/sos/plugins/psacct.py0000644000175000017500000000341312254061770015371 0ustar zefzef### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin class Psacct(Plugin): """Process accounting related information """ option_list = [("all", "collect all process accounting files", "slow", False)] packages = [ "psacct" ] class RedHatPsacct(Psacct, RedHatPlugin): """Process accounting related information for RedHat based distributions """ plugin_name = "psacct" packages = [ "psacct" ] def setup(self): super(RedHatPsacct, self).setup() self.add_copy_spec("/var/account/pacct") if self.get_option("all"): self.add_copy_spec("/var/account/pacct*.gz") class DebianPsacct(Psacct, DebianPlugin, UbuntuPlugin): """Process accounting related information for Debian based distributions """ plugin_name = "acct" packages = [ "acct" ] def setup(self): super(DebianPsacct, self).setup() self.add_copy_specs(["/var/log/account/pacct", "/etc/default/acct"]) if self.get_option("all"): self.add_copy_spec("/var/log/account/pacct*.gz") sosreport/sos/plugins/block.py0000644000175000017500000000337312254061770015213 0ustar zefzef### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. import os from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin class Block(Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin): """Block device related information """ plugin_name = 'block' def setup(self): self.add_copy_spec("/proc/partitions") self.add_cmd_output("lsblk") self.add_cmd_output("blkid -c /dev/null") self.add_cmd_output("ls -lanR /dev") self.add_cmd_output("ls -lanR /sys/block") # legacy location for non-/run distributions self.add_copy_spec("/etc/blkid.tab") self.add_copy_spec("/run/blkid/blkid.tab") if os.path.isdir("/sys/block"): for disk in os.listdir("/sys/block"): if disk in [ ".", ".." ] or disk.startswith("ram"): continue disk_path = os.path.join('/dev/', disk) self.add_cmd_output("udevadm info -ap /sys/block/%s" % (disk)) self.add_cmd_output("parted -s %s print" % (disk_path)) self.add_cmd_output("fdisk -l %s" % disk_path) sosreport/sos/plugins/lsbrelease.py0000644000175000017500000000220112254061770016227 0ustar zefzef### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin import os class LsbRelease(Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin): """Linux Standard Base information """ plugin_name = 'lsbrelease' def setup(self): self.add_cmd_output("lsb_release -a") self.add_cmd_output("lsb_release -d", suggest_filename = "lsb_release", root_symlink = "lsb-release") self.add_copy_spec("/etc/lsb-release*") sosreport/sos/plugins/cron.py0000644000175000017500000000224012254061770015052 0ustar zefzef### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin class Cron(Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin): """Crontab information """ plugin_name = "cron" files = ('/etc/crontab') def setup(self): self.add_copy_specs([ "/etc/cron*", "/var/log/cron*", "/var/spool/cron" ]) self.add_cmd_output("crontab -l -u root", suggest_filename = "root_crontab") sosreport/sos/plugins/apport.py0000644000175000017500000000174212254061770015424 0ustar zefzef## Copyright (c) 2012 Adam Stokes ## This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. from sos.plugins import Plugin, DebianPlugin, UbuntuPlugin class Apport(Plugin, DebianPlugin, UbuntuPlugin): """apport information """ plugin_name = 'apport' def setup(self): self.add_copy_spec("/etc/apport/*") sosreport/sos/plugins/general.py0000644000175000017500000000475312254061770015541 0ustar zefzef### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. import os from sos.plugins import Plugin, RedHatPlugin, UbuntuPlugin, DebianPlugin class General(Plugin): """basic system information""" plugin_name = "general" def setup(self): self.add_copy_specs([ "/etc/init", # upstart "/etc/event.d", # " "/etc/inittab", "/etc/sos.conf", "/etc/sysconfig", "/proc/stat", "/var/log/pm/suspend.log", "/var/log/up2date", "/etc/hostid", "/var/lib/dbus/machine-id", "/etc/exports", "/etc/localtime" ]) self.add_cmd_output("hostname", root_symlink="hostname") self.add_cmd_output("date", root_symlink="date") self.add_cmd_output("uptime", root_symlink="uptime") self.add_cmd_output("tree /var/lib") self.add_cmd_output("ls -lR /var/lib") class RedHatGeneral(General, RedHatPlugin): """Basic system information for RedHat based distributions""" def setup(self): super(RedHatGeneral, self).setup() self.add_copy_specs([ "/etc/redhat-release", "/etc/fedora-release", ]) def postproc(self): self.do_file_sub("/etc/sysconfig/rhn/up2date", r"(\s*proxyPassword\s*=\s*)\S+", r"\1***") class DebianGeneral(General, DebianPlugin): """Basic system information for Debian based distributions""" def setup(self): super(DebianGeneral, self).setup() self.add_copy_specs([ "/etc/default", "/etc/lsb-release" "/etc/debian_version", ]) class UbuntuGeneral(DebianGeneral): """Basic system information for Ubuntu based distributions""" def setup(self): super(UbuntuGeneral, self).setup() self.add_copy_spec("/etc/os-release") sosreport/sos/plugins/vmware.py0000644000175000017500000000212612254061770015415 0ustar zefzef### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. from sos.plugins import Plugin, RedHatPlugin class VMWare(Plugin, RedHatPlugin): """VMWare related information """ plugin_name = 'vmware' files = ('vmware','/usr/init.d/vmware-tools') def setup(self): self.add_cmd_output("vmware -v") self.add_copy_specs(["/etc/vmware/locations", "/etc/vmware/config", "/proc/vmmemctl"]) sosreport/sos/plugins/openstack_horizon.py0000644000175000017500000000517712254061770017664 0ustar zefzef## Copyright (C) 2009 Red Hat, Inc., Joey Boggs ## Copyright (C) 2012 Rackspace US, Inc., Justin Shepherd ## Copyright (C) 2013 Red Hat, Inc., Jeremy Agee ### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. import os from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin class OpenStackHorizon(Plugin): """openstack horizon related information """ plugin_name = "openstack-horizon" option_list = [("log", "gathers openstack horizon logs", "slow", True)] def setup(self): self.add_copy_specs(["/etc/openstack-dashboard/"]) if self.option_enabled("log"): self.add_copy_specs(["/var/log/horizon/"]) class DebianOpenStackHorizon(OpenStackHorizon, DebianPlugin): """OpenStack Horizon related information for Debian based distributions """ packages = ('python-django-horizon', 'openstack-dashboard', 'openstack-dashboard-apache') def setup(self): super(DebianOpenStackHorizon, self).setup() self.add_copy_specs(["/etc/apache2/sites-available/"]) class UbuntuOpenStackHorizon(OpenStackHorizon, UbuntuPlugin): """OpenStack Horizon related information for Ubuntu based distributions """ packages = ('python-django-horizon', 'openstack-dashboard', 'openstack-dashboard-ubuntu-theme') def setup(self): super(UbuntuOpenStackHorizon, self).setup() self.add_copy_specs(["/etc/apache2/conf.d/openstack-dashboard.conf"]) class RedHatOpenStackHorizon(OpenStackHorizon, RedHatPlugin): """OpenStack Horizon related information for Red Hat distributions """ packages = ('python-django-horizon', 'openstack-dashboard') def setup(self): super(RedHatOpenStackHorizon, self).setup() self.add_copy_specs(["/etc/httpd/conf.d/openstack-dashboard.conf"]) if self.option_enabled("log"): self.add_copy_specs(["/var/log/httpd/"]) sosreport/sos/plugins/named.py0000644000175000017500000000557112271434006015202 0ustar zefzef### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin from os.path import exists, join, normpath import pdb class Named(Plugin): """named related information """ plugin_name = "named" named_conf = "/etc/named.conf" config_files = named_conf def setup(self): for cfg in self.config_files: if exists(cfg): self.add_copy_spec(cfg) self.add_copy_spec(self.get_dns_dir(cfg)) self.add_forbidden_path(join(self.get_dns_dir(cfg), "chroot/dev")) self.add_forbidden_path(join(self.get_dns_dir(cfg), "chroot/proc")) def get_dns_dir(self, config_file): """ grab directory path from named{conf,boot} """ directory_list = self.do_regex_find_all("directory\s+\"(.*)\"", config_file) if directory_list: return normpath(directory_list[0]) else: return "" def postproc(self): match = r"(\s*arg \"password )[^\"]*" subst = r"\1******" self.do_file_sub(self.named_conf, match, subst) class RedHatNamed(Named, RedHatPlugin): """named related information for RedHat based distribution """ named_conf = "/etc/named.conf" config_files = ("/etc/named.conf", "/etc/named.boot") files = (named_conf, '/etc/sysconfig/named') packages = ('bind',) def setup(self): super(RedHatNamed, self).setup() self.add_copy_spec("/etc/named/") self.add_copy_spec("/etc/sysconfig/named") self.add_cmd_output("klist -ket /etc/named.keytab") self.add_forbidden_path("/etc/named.keytab") return class DebianNamed(Named, DebianPlugin, UbuntuPlugin): """named related information for Debian based distribution """ files = ('/etc/bind/named.conf') packages = ('bind9',) named_conf = "/etc/bind/named.conf" config_files = (named_conf, "/etc/bind/named.conf.options", "/etc/bind/named.conf.local") def setup(self): super(DebianNamed, self).setup() self.add_copy_spec("/etc/bind/") return sosreport/sos/plugins/acpid.py0000644000175000017500000000232412254061770015174 0ustar zefzef### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin class Acpid(Plugin): plugin_name = "acpid" class RedHatAcpid(Acpid, RedHatPlugin): """acpid related information """ def setup(self): self.add_copy_specs([ "/var/log/acpid*", "/etc/acpi/events/power.conf"]) class DebianAcpid(Acpid, DebianPlugin, UbuntuPlugin): """acpid related information for Debian and Ubuntu """ def setup(self): self.add_copy_specs([ "/etc/acpi/events/powerbtn*"]) sosreport/sos/plugins/vsftpd.py0000644000175000017500000000176412254061770015431 0ustar zefzef### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. from sos.plugins import Plugin, RedHatPlugin class Vsftpd(Plugin, RedHatPlugin): """FTP server related information """ plugin_name = 'vsftpd' files = ('/etc/vsftpd',) packages = ('vsftpd',) def setup(self): self.add_copy_spec("/etc/ftp*") self.add_copy_spec("/etc/vsftpd") sosreport/sos/plugins/postgresql.py0000644000175000017500000000562512254061770016326 0ustar zefzefimport os import tempfile from sos.plugins import Plugin, RedHatPlugin, UbuntuPlugin, DebianPlugin from sos.utilities import find class PostgreSQL(Plugin): """PostgreSQL related information""" plugin_name = "postgresql" packages = ('postgresql',) tmp_dir = None option_list = [ ("pghome", 'PostgreSQL server home directory.', '', '/var/lib/pgsql'), ("username", 'username for pg_dump', '', 'postgres'), ("password", 'password for pg_dump', '', ''), ("dbname", 'database name to dump for pg_dump', '', ''), ] def pg_dump(self): dest_file = os.path.join(self.tmp_dir, "sos_pgdump.tar") old_env_pgpassword = os.environ.get("PGPASSWORD") os.environ["PGPASSWORD"] = self.get_option("password") (status, output, rtime) = self.call_ext_prog("pg_dump %s -U %s -w -f %s -F t" % (self.get_option("dbname"), self.get_option("username"), dest_file)) if old_env_pgpassword is not None: os.environ["PGPASSWORD"] = old_env_pgpassword if (status == 0): self.add_copy_spec(dest_file) else: self.add_alert("ERROR: Unable to execute pg_dump. Error(%s)" % (output)) def setup(self): if self.get_option("dbname"): if self.get_option("password"): self.tmp_dir = tempfile.mkdtemp() self.pg_dump() else: self.add_alert("WARN: password must be supplied to dump a database.") def postproc(self): import shutil if self.tmp_dir: shutil.rmtree(self.tmp_dir) class RedHatPostgreSQL(PostgreSQL, RedHatPlugin): """PostgreSQL related information for Red Hat distributions""" def setup(self): super(RedHatPostgreSQL, self).setup() # Copy PostgreSQL log files. for file in find("*.log", self.get_option("pghome")): self.add_copy_spec(file) # Copy PostgreSQL config files. for file in find("*.conf", self.get_option("pghome")): self.add_copy_spec(file) self.add_copy_spec(os.path.join(self.get_option("pghome"), "data" , "PG_VERSION")) self.add_copy_spec(os.path.join(self.get_option("pghome"), "data" , "postmaster.opts")) class DebianPostgreSQL(PostgreSQL, DebianPlugin, UbuntuPlugin): """PostgreSQL related information for Debian/Ubuntu distributions""" def setup(self): super(DebianPostgreSQL, self).setup() # Copy PostgreSQL log files. self.add_copy_spec("/var/log/postgresql/*.log") # Copy PostgreSQL config files. self.add_copy_spec("/etc/postgresql/*/main/*.conf") self.add_copy_spec("/var/lib/postgresql/*/main/PG_VERSION") self.add_copy_spec("/var/lib/postgresql/*/main/postmaster.opts") sosreport/sos/plugins/openstack_swift.py0000644000175000017500000000377712254061770017334 0ustar zefzef## Copyright (C) 2013 Red Hat, Inc., Flavio Percoco ## Copyright (C) 2012 Rackspace US, Inc., Justin Shepherd ## Copyright (C) 2009 Red Hat, Inc., Joey Boggs ### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. from sos import plugins class OpenStackSwift(plugins.Plugin): """OpenstackSwift related information.""" plugin_name = "openstack-swift" option_list = [("log", "gathers openstack-swift logs", "slow", False)] def setup(self): # Swift self.add_copy_spec("/etc/swift/") class DebianOpenStackSwift(OpenStackSwift, plugins.DebianPlugin, plugins.UbuntuPlugin): """OpenStackSwift related information for Debian based distributions.""" packages = ('swift', 'swift-account', 'swift-container', 'swift-object', 'swift-proxy', 'swauth', 'python-swift', 'python-swauth') class RedHatOpenStackSwift(OpenStackSwift, plugins.RedHatPlugin): """OpenStackSwift related information for Red Hat distributions.""" packages = ('openstack-swift', 'openstack-swift-account', 'openstack-swift-container', 'openstack-swift-object', 'openstack-swift-proxy', 'swift', 'python-swiftclient') sosreport/sos/plugins/upstart.py0000644000175000017500000000304212254061770015614 0ustar zefzef## Copyright (C) 2012 Red Hat, Inc., Bryn M. Reeves ### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin class Upstart(Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin): """ Information on Upstart, the event-based init system. """ plugin_name = 'upstart' packages = ('upstart',) def setup(self): self.add_cmd_output('initctl --system list') self.add_cmd_output('initctl --system version') self.add_cmd_output('init --version') self.add_cmd_output("ls -l /etc/init/") # Job Configuration Files self.add_copy_spec('/etc/init.conf') self.add_copy_spec('/etc/init/') # State file self.add_copy_spec('/var/log/upstart/upstart.state') # Session Jobs (running Upstart as a Session Init) self.add_copy_spec('/usr/share/upstart/') sosreport/sos/plugins/ntp.py0000644000175000017500000000304012254061770014711 0ustar zefzef### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin class Ntp(Plugin): """NTP related information """ plugin_name = "ntp" packages = ('ntp',) def setup(self): self.add_copy_specs([ "/etc/ntp.conf", "/etc/ntp/step-tickers", "/etc/ntp/ntpservers" ]) self.add_cmd_output("ntptime") class RedHatNtp(Ntp, RedHatPlugin): """NTP related information for RedHat based distributions """ def setup(self): super(RedHatNtp, self).setup() self.add_copy_spec("/etc/sysconfig/ntpd") self.add_cmd_output("ntpstat") class DebianNtp(Ntp, DebianPlugin, UbuntuPlugin): """NTP related information for Debian based distributions """ def setup(self): super(DebianNtp, self).setup() self.add_copy_spec('/etc/default/ntp') sosreport/sos/plugins/powerpc.py0000644000175000017500000000565012254061770015600 0ustar zefzef### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. ## This plugin enables collection of logs for Power systems and more ## specific logs for Pseries, PowerNV platforms. import os from sos.plugins import Plugin, RedHatPlugin, UbuntuPlugin, DebianPlugin class PowerPC(Plugin, RedHatPlugin, UbuntuPlugin, DebianPlugin): """IBM Power System related information """ plugin_name = 'powerpc' def check_enabled(self): return (self.policy().get_arch() == "ppc64") def setup(self): try: with open('/proc/cpuinfo', 'r') as fp: contents = fp.read() ispSeries = "pSeries" in contents isPowerNV = "PowerNV" in contents except: ispSeries = False isPowerNV = False if ispSeries or isPowerNV: self.add_copy_spec("/proc/device-tree/") self.add_copy_spec("/proc/loadavg") self.add_copy_spec("/proc/locks") self.add_copy_spec("/proc/misc") self.add_copy_spec("/proc/swaps") self.add_copy_spec("/proc/version") self.add_copy_spec("/dev/nvram") self.add_copy_spec("/var/log/platform") self.add_cmd_output("ppc64_cpu --smt") self.add_cmd_output("ppc64_cpu --cores-present") self.add_cmd_output("ppc64_cpu --cores-on") self.add_cmd_output("ppc64_cpu --run-mode") self.add_cmd_output("ppc64_cpu --frequency") self.add_cmd_output("ppc64_cpu --dscr") if ispSeries: self.add_copy_spec("/proc/ppc64/lparcfg") self.add_copy_spec("/proc/ppc64/eeh") self.add_copy_spec("/proc/ppc64/systemcfg") self.add_cmd_output("lscfg -vp") self.add_cmd_output("lsmcode -A") self.add_cmd_output("lsvpd --debug") self.add_cmd_output("lsvio -des") self.add_cmd_output("servicelog --dump") self.add_cmd_output("servicelog_notify --list") self.add_cmd_output("usysattn") self.add_cmd_output("usysident") self.add_cmd_output("serv_config -l") self.add_cmd_output("bootlist -m both -r") self.add_cmd_output("lparstat -i") if isPowerNV: self.add_copy_spec("/proc/ppc64/") sosreport/sos/plugins/rpm.py0000644000175000017500000000415612254061770014717 0ustar zefzef### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. from sos.plugins import Plugin, RedHatPlugin class Rpm(Plugin, RedHatPlugin): """RPM information """ plugin_name = 'rpm' option_list = [("rpmq", "queries for package information via rpm -q", "fast", True), ("rpmva", "runs a verify on all packages", "slow", False)] verify_list = [ 'kernel$', 'glibc', 'initscripts', 'pam_.*', 'java.*', 'perl.*', 'rpm', 'yum', 'spacewalk.*', ] def setup(self): self.add_copy_spec("/var/log/rpmpkgs") if self.get_option("rpmq"): self.add_cmd_output("rpm -qa --qf=" "\"%{NAME}-%{VERSION}-%{RELEASE}.%{ARCH}~~" "%{INSTALLTIME:date}\t%{INSTALLTIME}\t%{VENDOR}\n\"" " --nosignature --nodigest | awk -F '~~' " "'{printf \"%-59s %s\\n\",$1,$2}'|sort", root_symlink = "installed-rpms") if self.get_option("rpmva"): self.add_cmd_output("rpm -Va", root_symlink = "rpm-Va", timeout = 3600) else: pkgs_by_regex = self.policy().package_manager.all_pkgs_by_name_regex verify_list = map(pkgs_by_regex, self.verify_list) for pkg_list in verify_list: for pkg in pkg_list: if 'debuginfo' in pkg \ or pkg.endswith('-debuginfo-common'): continue self.add_cmd_output("rpm -V %s" % pkg) sosreport/sos/plugins/sendmail.py0000644000175000017500000000313512254061770015711 0ustar zefzef## Copyright (C) 2007 Red Hat, Inc., Eugene Teo ### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin from os.path import exists class Sendmail(Plugin): """sendmail information """ plugin_name = "sendmail" packages = ('sendmail',) class RedHatSendmail(Sendmail, RedHatPlugin): """sendmail information for RedHat based distributions """ files = ('/etc/rc.d/init.d/sendmail',) packages = ('sendmail',) def setup(self): super(RedHatSendmail, self).setup() self.add_copy_specs(["/etc/mail/*", "/var/log/maillog"]) class DebianSendmail(Sendmail, DebianPlugin, UbuntuPlugin): """sendmail information for Debian based distributions """ files = ('/etc/init.d/sendmail',) packages = ('sendmail',) def setup(self): super(DebianSendmail, self).setup() self.add_copy_specs(["/etc/mail/*", "/var/log/mail.*"]) sosreport/sos/plugins/gdm.py0000644000175000017500000000167512254061770014673 0ustar zefzef### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin class Gdm(Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin): """gdm related information """ plugin_name = 'gdm' def setup(self): self.add_copy_spec("/etc/gdm/*") sosreport/sos/plugins/smartcard.py0000644000175000017500000000244212254061770016075 0ustar zefzef## Copyright (C) 2007 Sadique Puthen ### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. from sos.plugins import Plugin, RedHatPlugin class Smartcard(Plugin, RedHatPlugin): """Smart Card related information """ plugin_name = 'smartcard' files = ('/etc/pam_pkcs11/pam_pkcs11.conf',) packages = ('pam_pkcs11',) def setup(self): self.add_copy_specs([ "/etc/reader.conf", "/etc/reader.conf.d/", "/etc/pam_pkcs11/"]) self.add_cmd_output("pkcs11_inspect debug") self.add_cmd_output("pklogin_finder debug") self.add_cmd_output("ls -nl /usr/lib*/pam_pkcs11/") sosreport/sos/plugins/xinetd.py0000644000175000017500000000216112254061770015406 0ustar zefzef## Copyright (C) 2007 Red Hat, Inc., Eugene Teo ### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin class Xinetd(Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin): """xinetd information """ plugin_name = 'xinetd' files = ('/etc/xinetd.conf',) packages = ('xinetd',) def setup(self): self.add_copy_spec("/etc/xinetd.conf") self.add_copy_spec("/etc/xinetd.d") sosreport/sos/plugins/x11.py0000644000175000017500000000223412254061770014525 0ustar zefzef### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin class X11(Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin): """X related information """ plugin_name = 'x11' files = ('/etc/X11',) def setup(self): self.add_copy_specs([ "/etc/X11", "/var/log/Xorg.*.log", "/var/log/XFree86.*.log", ]) self.add_forbidden_path("/etc/X11/X") self.add_forbidden_path("/etc/X11/fontpath.d") sosreport/sos/plugins/auditd.py0000644000175000017500000000233512254061770015370 0ustar zefzef### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin class Auditd(Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin): """Auditd related information """ option_list = [("logsize", "maximum size (MiB) of logs to collect", "", 15)] plugin_name = 'auditd' def setup(self): self.add_copy_specs(["/etc/audit/auditd.conf", "/etc/audit/audit.rules"]) self.add_copy_spec_limit("/var/log/audit*", sizelimit = self.get_option("logsize")) sosreport/sos/plugins/kernel.py0000644000175000017500000000446012254061770015377 0ustar zefzef### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin import os class Kernel(Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin): """kernel related information """ plugin_name = 'kernel' sys_module = '/sys/module' def setup(self): # compat self.add_cmd_output("uname -a", root_symlink = "uname") self.add_cmd_output("lsmod", root_symlink = "lsmod") try: modules = os.listdir(self.sys_module) self.add_cmd_output("modinfo " + " ".join(modules)) except OSError: self.soslog.warning("could not list %s" % self.sys_module) self.add_cmd_output("dmesg") self.add_cmd_output("sysctl -a") self.add_copy_specs([ "/proc/modules", "/proc/sys/kernel/random/boot_id", "/sys/module/*/parameters", "/sys/module/*/initstate", "/sys/module/*/refcnt", "/sys/module/*/taint", "/proc/kallsyms", "/proc/buddyinfo", "/proc/slabinfo", "/proc/zoneinfo", "/lib/modules/%s/modules.dep" % self.policy().kernel_version(), "/etc/conf.modules", "/etc/modules.conf", "/etc/modprobe.conf", "/etc/modprobe.d", "/etc/sysctl.conf", "/etc/sysctl.d", "/lib/sysctl.d", "/proc/cmdline", "/proc/driver", "/proc/sys/kernel/tainted", "/proc/softirqs", "/proc/timer*", "/proc/lock*", "/var/log/dmesg" ]) self.add_cmd_output("dkms status") sosreport/sos/plugins/iscsitarget.py0000644000175000017500000000336412254061770016442 0ustar zefzef## Copyright (C) 2007-2012 Red Hat, Inc., Ben Turner ## Copyright (C) 2012 Adam Stokes ### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin class IscsiTarget(Plugin): """iscsi-target related information """ plugin_name = "iscsitarget" class RedHatIscsiTarget(IscsiTarget, RedHatPlugin): """iscsi-target related information for Red Hat distributions """ packages = ('scsi-target-utils',) def setup(self): super(RedHatIscsiTarget, self).setup() self.add_copy_spec("/etc/tgt/targets.conf") self.add_cmd_output("tgtadm --lld iscsi --op show --mode target") class DebianIscsiTarget(IscsiTarget, DebianPlugin, UbuntuPlugin): """iscsi-target related information for Debian based distributions """ packages = ('iscsitarget',) def setup(self): super(DebianIscsiTarget, self).setup() self.add_copy_specs([ "/etc/iet", "/etc/sysctl.d/30-iscsitarget.conf", "/etc/default/iscsitarget" ]) sosreport/sos/plugins/systemd.py0000644000175000017500000000402012254061770015577 0ustar zefzef## Copyright (C) 2012 Red Hat, Inc., Bryn M. Reeves ### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. from sos.plugins import Plugin, RedHatPlugin class Systemd(Plugin, RedHatPlugin): """ Information on systemd and related subsystems """ plugin_name = "systemd" packages = ('systemd',) files = ('/usr/lib/systemd/systemd',) def setup(self): self.add_cmd_output("systemctl show --all") self.add_cmd_output("systemctl list-units --failed") self.add_cmd_output("systemctl list-unit-files") self.add_cmd_output("systemctl list-units --all") self.add_cmd_output("systemctl dump") self.add_cmd_output("systemd-delta") self.add_cmd_output("journalctl --verify") self.add_cmd_output("journalctl --all --this-boot --no-pager") self.add_cmd_output("journalctl --all --this-boot --no-pager -o verbose") self.add_cmd_output("ls -l /lib/systemd") self.add_cmd_output("ls -l /lib/systemd/system-shutdown") self.add_cmd_output("ls -l /lib/systemd/system-generators") self.add_cmd_output("ls -l /lib/systemd/user-generators") self.add_copy_specs(["/etc/systemd", "/lib/systemd/system", "/lib/systemd/user", "/etc/vconsole.conf", "/etc/yum/protected.d/systemd.conf"]) sosreport/sos/plugins/i18n.py0000644000175000017500000000203412254061770014671 0ustar zefzef### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin class I18n(Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin): """Internationalization related information """ plugin_name = 'i18n' def setup(self): self.add_copy_specs(["/etc/X11/xinit/xinput.d/*", "/etc/locale.conf"]) self.add_cmd_output("locale") sosreport/sos/plugins/sar.py0000644000175000017500000000541712254061770014707 0ustar zefzef### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin import os class Sar(Plugin,): """ Collect system activity reporter data """ plugin_name = 'sar' packages = ('sysstat',) sa_path = '/var/log/sa' option_list = [("all_sar", "gather all system activity records", "", False)] # size-limit SAR data collected by default (MB) sa_size = 20 def check_enabled(self): # check to see if we are force-enabled with no sar installation if not os.path.exists(self.sa_path) or not os.path.isdir(self.sa_path): self.soslog.info("sar directory %s does not exist" % self.sa_path + " or is not a directory") return False return True def setup(self): if self.get_option("all_sar"): self.sa_size = 0 self.add_copy_spec_limit("/var/log/sa/sar[0-9]*", sizelimit = self.sa_size) self.add_copy_spec_limit("/var/log/sa/sa[0-9]*", sizelimit = self.sa_size) try: dirList = os.listdir(self.sa_path) except: self.soslog.warning("sar: could not list /var/log/sa") return # find all the sa file that don't have an existing sar file for fname in dirList: if fname[0:2] == 'sa' and fname[2] != 'r': sar_filename = 'sar' + fname[2:4] sa_data_path = os.path.join(self.sa_path, fname) if sar_filename not in dirList: sar_cmd = 'sh -c "LANG=C sar -A -f %s"' % sa_data_path self.add_cmd_output(sar_cmd, sar_filename) sadf_cmd = "sadf -x %s" % sa_data_path self.add_cmd_output(sadf_cmd, "%s.xml" % fname) self.add_copy_spec(os.path.join(self.sa_path, "sar*")) class RedHatSar(Sar, RedHatPlugin): """ Collect system activity reporter data """ sa_path = '/var/log/sa' class DebianSar(Sar, DebianPlugin, UbuntuPlugin): """ Collect system activity reporter data """ sa_path = '/var/log/sysstat' sosreport/sos/plugins/anaconda.py0000644000175000017500000000273412254061770015665 0ustar zefzef### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. from sos.plugins import Plugin, RedHatPlugin import os class Anaconda(Plugin, RedHatPlugin): """Anaconda / Installation information """ plugin_name = 'anaconda' files = ('/var/log/anaconda.log', '/var/log/anaconda') def setup(self): paths = [ "/root/anaconda-ks.cfg"] if os.path.isdir('/var/log/anaconda'): # new anaconda paths.append('/var/log/anaconda') else: paths = paths + \ [ "/var/log/anaconda.*" "/root/install.log", "/root/install.log.syslog"] self.add_copy_specs(paths) def postproc(self): self.do_file_sub("/root/anaconda-ks.cfg", r"(\s*rootpw\s*).*", r"\1******") sosreport/sos/plugins/cups.py0000644000175000017500000000262712254061770015074 0ustar zefzef### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin class Printing(Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin): """printing related information (cups) """ plugin_name = 'printing' packages = ('cups',) option_list = [("cups", "max size (MiB) to collect per cups log file", "", 15)] def setup(self): self.add_copy_specs([ "/etc/cups/*.conf", "/etc/cups/lpoptions", "/etc/cups/ppd/*.ppd"]) self.add_copy_spec_limit("/var/log/cups", sizelimit=self.option_enabled("cupslogsize")) self.add_cmd_output("lpstat -t") self.add_cmd_output("lpstat -s") self.add_cmd_output("lpstat -d") sosreport/sos/plugins/ipsec.py0000644000175000017500000000273512254061770015225 0ustar zefzef## Copyright (C) 2007 Sadique Puthen ### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin class IPSec(Plugin): """ipsec related information """ plugin_name = "ipsec" packages = ('ipsec-tools',) class RedHatIpsec(IPSec, RedHatPlugin): """ipsec related information for Red Hat distributions """ files = ('/etc/racoon/racoon.conf',) def setup(self): self.add_copy_spec("/etc/racoon") class DebianIPSec(IPSec, DebianPlugin, UbuntuPlugin): """ipsec related information for Debian distributions """ files = ('/etc/ipsec-tools.conf',) def setup(self): self.add_copy_specs(["/etc/ipsec-tools.conf", "/etc/ipsec-tools.d", "/etc/default/setkey"]) sosreport/sos/plugins/tomcat.py0000644000175000017500000000170412254061770015404 0ustar zefzef### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. from sos.plugins import Plugin, RedHatPlugin class Tomcat(Plugin, RedHatPlugin): """Tomcat related information """ plugin_name = 'tomcat' packages = ('tomcat5',) def setup(self): self.add_copy_specs(["/etc/tomcat5", "/var/log/tomcat5"]) sosreport/sos/plugins/iscsi.py0000644000175000017500000000274212254061770015232 0ustar zefzef## Copyright (C) 2007-2012 Red Hat, Inc., Ben Turner ### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. from sos.plugins import Plugin, RedHatPlugin class Iscsi(Plugin): """iscsi-initiator related information """ plugin_name = "iscsi" class RedHatIscsi(Iscsi, RedHatPlugin): """iscsi-initiator related information Red Hat based distributions """ packages = ('iscsi-initiator-utils',) def setup(self): super(RedHatIscsi, self).setup() self.add_copy_specs([ "/etc/iscsi/iscsid.conf", "/etc/iscsi/initiatorname.iscsi", "/var/lib/iscsi"]) self.add_cmd_output("iscsiadm -m session -P 3") self.add_cmd_output("iscsiadm -m node -P 3") self.add_cmd_output("iscsiadm -m iface -P 1") self.add_cmd_output("iscsiadm -m node --op=show") sosreport/sos/plugins/pxe.py0000644000175000017500000000345012254061770014711 0ustar zefzef### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin from os.path import exists class Pxe(Plugin): """PXE related information """ option_list = [("tftpboot", 'gathers content from the tftpboot path', 'slow', False)] plugin_name = "pxe" class RedHatPxe(Pxe, RedHatPlugin): """PXE related information for RedHat based distributions """ files = ('/usr/sbin/pxeos',) packages = ('system-config-netboot-cmd',) def setup(self): super(RedHatPxe, self).setup() self.add_cmd_output("/usr/sbin/pxeos -l") self.add_copy_spec("/etc/dhcpd.conf") if self.get_option("tftpboot"): self.add_copy_spec("/tftpboot") class DebianPxe(Pxe, DebianPlugin, UbuntuPlugin): """PXE related information for Ubuntu based distributions """ packages = ('tftpd-hpa',) def setup(self): super(DebianPxe, self).setup() self.add_copy_spec("/etc/dhcp/dhcpd.conf") self.add_copy_spec("/etc/default/tftpd-hpa") if self.get_option("tftpboot"): self.add_copy_spec("/var/lib/tftpboot") sosreport/sos/plugins/qpid.py0000644000175000017500000000366312254061770015060 0ustar zefzef## This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. from sos.plugins import Plugin, RedHatPlugin class Qpid(Plugin, RedHatPlugin): """Messaging related information """ plugin_name = 'qpid' packages = ('qpidd', 'qpid-cpp-server', 'qpid-tools') def setup(self): """ performs data collection for mrg """ self.add_cmd_output("qpid-stat -e") self.add_cmd_output("qpid-stat -b") self.add_cmd_output("qpid-config") self.add_cmd_output("qpid-config -b exchanges") self.add_cmd_output("qpid-config -b queues") self.add_cmd_output("qpid-stat -c") self.add_cmd_output("qpid-route link list") self.add_cmd_output("qpid-route route list") self.add_cmd_output("ls -lanR /var/lib/qpidd") self.add_copy_specs([ "/etc/qpidd.conf", "/var/lib/qpid/syslog", "/etc/ais/openais.conf", "/var/log/cumin.log", "/var/log/mint.log" "/etc/sasl2/qpidd.conf", "/etc/qpid/qpidc.conf", "/etc/sesame/sesame.conf", "/etc/cumin/cumin.conf", "/etc/corosync/corosync.conf", "/var/lib/sesame", "/var/log/qpidd.log", "/var/log/sesame", "/var/log/cumin", "/var/log/cluster"]) sosreport/sos/plugins/ppp.py0000644000175000017500000000223412254061770014713 0ustar zefzef## Copyright (C) 2007 Sadique Puthen ### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin class Ppp(Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin): """ppp, wvdial and rp-pppoe related information """ plugin_name = 'ppp' packages = ('ppp',) def setup(self): self.add_copy_specs([ "/etc/wvdial.conf", "/etc/ppp", "/var/log/ppp"]) self.add_cmd_output("adsl-status") sosreport/sos/plugins/cgroups.py0000644000175000017500000000271512254061770015602 0ustar zefzef### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin class Cgroups(Plugin): """cgroup subsystem information """ plugin_name = "cgroups" class DebianCgroups(Cgroups, DebianPlugin, UbuntuPlugin): files = ('/proc/cgroups',) def setup(self): self.add_copy_specs(["/proc/cgroups", "/sys/fs/cgroup"]) return class RedHatCgroups(Cgroups, RedHatPlugin): """Red Hat specific cgroup subsystem information """ def setup(self): self.add_copy_specs(["/etc/sysconfig/cgconfig", "/etc/sysconfig/cgred.conf", "/etc/cgsnapshot_blacklist.conf", "/etc/cgconfig.conf", "/etc/cgrules.conf"]) sosreport/sos/plugins/libraries.py0000644000175000017500000000236712254061770016077 0ustar zefzef### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. from sos.plugins import Plugin, RedHatPlugin, UbuntuPlugin class Libraries(Plugin, RedHatPlugin, UbuntuPlugin): """information on shared libraries """ plugin_name = 'libraries' option_list = [('ldconfigv', 'the name of each directory as it is scanned, and any links that are created.', "slow", False)] def setup(self): self.add_copy_specs(["/etc/ld.so.conf", "/etc/ld.so.conf.d"]) if self.get_option("ldconfigv"): self.add_cmd_output("ldconfig -v -N -X") self.add_cmd_output("ldconfig -p -N -X") sosreport/sos/plugins/mrgmessg.py0000644000175000017500000000175312254061770015745 0ustar zefzef### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. from sos.plugins import Plugin, RedHatPlugin class MrgMessg(Plugin, RedHatPlugin): """MRG Messaging related information """ plugin_name = 'mrgmessg' def setup(self): self.add_copy_specs([ "/etc/qpidd.conf", "/etc/sasl2/qpidd.conf", "/var/rhm"]) sosreport/sos/plugins/krb5.py0000644000175000017500000000216312254061770014760 0ustar zefzef## Copyright (C) 2013 Red Hat, Inc., Bryn M. Reeves ### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin class Krb5(Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin): """Kerberos related information """ packages = ('krb5-libs', 'krb5-user') plugin_name = 'krb5' def setup(self): self.add_copy_spec("/etc/krb5.conf") self.add_cmd_output("klist -ket /etc/krb5.keytab") sosreport/sos/plugins/yum.py0000644000175000017500000000473612271430455014736 0ustar zefzef### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. from sos.plugins import Plugin, RedHatPlugin class Yum(Plugin, RedHatPlugin): """yum information """ plugin_name = 'yum' files = ('/etc/yum.conf',) packages = ('yum',) option_list = [("yumlist", "list repositories and packages", "slow", False), ("yumdebug", "gather yum debugging data", "slow", False)] def setup(self): # Pull all yum related information self.add_copy_specs([ "/etc/yum", "/etc/yum.repos.d", "/etc/yum.conf", "/var/log/yum.log"]) # Get a list of channels the machine is subscribed to. self.add_cmd_output("yum -C repolist") # candlepin info self.add_forbidden_path("/etc/pki/entitlement/key.pem") self.add_forbidden_path("/etc/pki/entitlement/*-key.pem") self.add_copy_specs([ "/etc/pki/product/*.pem", "/etc/pki/consumer/cert.pem", "/etc/pki/entitlement/*.pem", "/etc/rhsm/", "/var/log/rhsm/rhsm.log", "/var/log/rhsm/rhsmcertd.log"]) self.add_cmd_output("subscription-manager list --installed") self.add_cmd_output("subscription-manager list --consumed") if self.get_option("yumlist"): # List various information about available packages self.add_cmd_output("yum list") if self.get_option("yumdebug") and self.is_installed('yum-utils'): # RHEL6+ alternative for this whole function: # self.add_cmd_output("yum-debug-dump '%s'" % os.path.join(self.commons['dstroot'],"yum-debug-dump")) ret, output, rtime = self.call_ext_prog("yum-debug-dump") try: self.add_cmd_output("zcat %s" % (output.split()[-1],)) except IndexError: pass sosreport/sos/plugins/openswan.py0000644000175000017500000000260112254061770015744 0ustar zefzef## Copyright (C) 2007 Sadique Puthen ### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin class Openswan(Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin): """ipsec related information """ plugin_name = 'openswan' option_list = [("ipsec-barf", "collect the output of the ipsec barf command", "slow", False)] files = ('/etc/ipsec.conf',) packages = ('openswan',) def setup(self): self.add_copy_specs([ "/etc/ipsec.conf", "/etc/ipsec.d"]) self.add_cmd_output("ipsec verify") if self.get_option("ipsec-barf"): self.add_cmd_output("ipsec barf") sosreport/sos/plugins/abrt.py0000644000175000017500000000324712254061770015051 0ustar zefzef## Copyright (C) 2010 Red Hat, Inc., Tomas Smetana ### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. from sos.plugins import Plugin, RedHatPlugin from os.path import exists class Abrt(Plugin, RedHatPlugin): """ABRT log dump """ plugin_name = "abrt" packages = ('abrt-cli',) files = ('/var/spool/abrt',) option_list = [("backtraces", 'collect backtraces for every report', 'slow', False)] def do_backtraces(self): ret, output, rtime = self.call_ext_prog('sqlite3 ' + '/var/spool/abrt/abrt-db \'select UUID from abrt_v4\'') try: for uuid in output.split(): self.add_cmd_output("abrt-cli -ib %s" % uuid, suggest_filename=("backtrace_%s" % uuid)) except IndexError: pass def setup(self): self.add_cmd_output("abrt-cli -lf", suggest_filename="abrt-log") if self.get_option('backtraces'): self.do_backtraces() sosreport/sos/plugins/process.py0000644000175000017500000000227112254061770015573 0ustar zefzef### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin import os class Process(Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin): """process information """ plugin_name = 'process' def setup(self): self.add_cmd_output("ps auxwww", root_symlink = "ps") self.add_cmd_output("ps auxwwwm") self.add_cmd_output("ps alxwww") self.add_cmd_output("pstree", root_symlink = "pstree") self.add_cmd_output("lsof -b +M -n -l", root_symlink = "lsof") sosreport/sos/plugins/openstack_keystone.py0000644000175000017500000000541512254061770020030 0ustar zefzef## Copyright (C) 2013 Red Hat, Inc., Jeremy Agee ### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. import os from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin class OpenStackKeystone(Plugin): """openstack keystone related information """ plugin_name = "openstack-keystone" option_list = [("log", "gathers openstack keystone logs", "slow", True), ("nopw", "dont gathers keystone passwords", "slow", True)] def setup(self): self.add_copy_specs(["/etc/keystone/default_catalog.templates", "/etc/keystone/keystone.conf", "/etc/keystone/logging.conf", "/etc/keystone/policy.json"]) if self.option_enabled("log"): self.add_copy_specs(["/var/log/keystone/"]) def postproc(self): self.do_file_sub('/etc/keystone/keystone.conf', r"(?m)^(admin_password.*=)(.*)", r"\1 ******") self.do_file_sub('/etc/keystone/keystone.conf', r"(?m)^(admin_token.*=)(.*)", r"\1 ******") self.do_file_sub('/etc/keystone/keystone.conf', r"(?m)^(connection.*=.*mysql://)(.*)(:)(.*)(@)(.*)", r"\1\2:******@\6") self.do_file_sub('/etc/keystone/keystone.conf', r"(?m)^(password.*=)(.*)", r"\1 ******") self.do_file_sub('/etc/keystone/keystone.conf', r"(?m)^(ca_password.*=)(.*)", r"\1 ******") class DebianOpenStackKeystone(OpenStackKeystone, DebianPlugin, UbuntuPlugin): """OpenStack Keystone related information for Debian based distributions """ packages = ('keystone', 'python-keystone', 'python-keystoneclient') class RedHatOpenStackKeystone(OpenStackKeystone, RedHatPlugin): """OpenStack Keystone related information for Red Hat distributions """ packages = ('openstack-keystone', 'python-keystone', 'python-django-openstack-auth', 'python-keystoneclient') sosreport/sos/plugins/ds.py0000644000175000017500000000335212254061770014524 0ustar zefzef## Copyright (C) 2007 Red Hat, Inc., Kent Lamb ## This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. from sos.plugins import Plugin, RedHatPlugin import os class DirectoryServer(Plugin, RedHatPlugin): """Directory Server information """ plugin_name = 'directoryserver' files = ('/etc/dirsrv', '/opt/redhat-ds') packages = ('redhat-ds-base', 'redhat-ds-7') def check_version(self): if self.is_installed("redhat-ds-base") or \ os.path.exists("/etc/dirsrv"): return "ds8" elif self.is_installed("redhat-ds-7") or \ os.path.exists("/opt/redhat-ds"): return "ds7" return False def setup(self): if not self.check_version(): self.add_alert("Directory Server not found.") elif "ds8" in self.check_version(): self.add_copy_specs([ "/etc/dirsrv/slapd*", "/var/log/dirsrv/*"]) elif "ds7" in self.check_version(): self.add_copy_specs([ "/opt/redhat-ds/slapd-*/config", "/opt/redhat-ds/slapd-*/logs"]) sosreport/sos/plugins/sysvipc.py0000644000175000017500000000223512254061770015615 0ustar zefzef## Copyright (C) 2007-2012 Red Hat, Inc., Bryn M. Reeves ### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin class SysVIPC(Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin): """SysV IPC related information """ plugin_name = "sysvipc" def setup(self): self.add_copy_specs([ "/proc/sysvipc/msg", "/proc/sysvipc/sem", "/proc/sysvipc/shm"]) self.add_cmd_output("ipcs") sosreport/sos/plugins/procenv.py0000644000175000017500000000177512254061770015601 0ustar zefzef## Copyright (c) 2012 Adam Stokes ## This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin class Procenv(Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin): """Process environment. """ plugin_name = 'procenv' def setup(self): self.add_cmd_output('procenv') sosreport/sos/plugins/startup.py0000644000175000017500000000341512254061770015620 0ustar zefzef### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin class Startup(Plugin): """startup information """ plugin_name = "startup" option_list = [("servicestatus", "get a status of all running services", "slow", False)] def setup(self): if self.get_option('servicestatus'): self.add_cmd_output("/sbin/service --status-all") self.add_cmd_output("/sbin/runlevel") class RedHatStartup(Startup, RedHatPlugin): """startup information for RedHat based distributions """ def setup(self): super(RedHatStartup, self).setup() self.add_copy_spec("/etc/rc.d") self.add_cmd_output("/sbin/chkconfig --list", root_symlink = "chkconfig") class DebianStartup(Startup, DebianPlugin, UbuntuPlugin): """startup information """ def setup(self): super(DebianStartup, self).setup() self.add_copy_spec("/etc/rc*.d") self.add_cmd_output("/sbin/initctl show-config", root_symlink = "initctl") if self.get_option('servicestatus'): self.add_cmd_output("/sbin/initctl list") sosreport/sos/plugins/neutron.py0000644000175000017500000001703512254061770015613 0ustar zefzef## Copyright (C) 2013 Red Hat, Inc., Brent Eagles ### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. import os import re from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin # The Networking plugin includes most of what is needed from a snapshot # of the networking, so we only need to focus on the parts that are specific # to OpenStack Networking. The Process plugin should capture the dnsmasq # command line. The libvirt plugin grabs the instance's XML definition which # has the interface names for an instance. So what remains is relevant database # info... class Neutron(Plugin): """OpenStack Networking (quantum/neutron) related information """ plugin_name = "neutron" option_list = [("log", "Gathers all Neutron logs", "slow", False), ("quantum", "Overrides checks for newer Neutron components", "fast", False)] component_name = "neutron" def setup(self): if os.path.exists("/etc/neutron/") and self.get_option("quantum", False): self.component_name = self.plugin_name else: self.component_name = "quantum" self.add_copy_specs(["/etc/%s/" % self.component_name, "/var/log/%s/" % self.component_name]) self.netns_dumps() self.get_ovs_dumps() def get_ovs_dumps(self): # Check to see if we are using the Open vSwitch plugin. If not we # should be able to skip the rest of the dump. ovs_conf_check_out = self.call_ext_prog('grep "^core_plugin.*openvswitch" ' + ("/etc/%s/*.conf" + self.component_name)) if not ovs_conf_check_out or len(ovs_conf_check_out[1].splitlines()) == 0: return # The '-s' option enables dumping of packet counters on the # ports. self.add_cmd_output("ovs-dpctl -s show") # The '-t 5' adds an upper bound on how long to wait to connect # to the Open vSwitch server, avoiding hangs when running sosreport. self.add_cmd_output("ovs-vsctl -t 5 show") def netns_dumps(self): # It would've been beautiful if we could get parts of the networking # plugin to run in different namespaces. There are a couple of options # in the short term: create a local instance and "borrow" some of the # functionality, or simply copy some of the functionality. prefixes = ["qdhcp", "qrouter"] nslist = self.call_ext_prog("ip netns") lease_directories = [] if nslist: for nsname in nslist[1].splitlines(): prefix, netid = nsname.split('-', 1) if len(netid) > 0 and prefix in prefixes: self.ns_gather_data(nsname) lease_directories.append("/var/lib/%s/dhcp/%s/" % (self.component_name, netid)) self.add_copy_specs(lease_directories) # TODO: Refactor! Copied from Networking plugin. def get_interface_name(self,ip_addr_out): """Return a dictionary for which key are interface name according to the output of ifconifg-a stored in ifconfig_file. """ out={} for line in ip_addr_out[1].splitlines(): match=re.match('.*link/ether', line) if match: int=match.string.split(':')[1].lstrip() out[int]=True return out def ns_gather_data(self, nsname): cmd_prefix = "ip netns exec %s " % nsname self.add_cmd_output(cmd_prefix + "iptables-save") self.add_cmd_output(cmd_prefix + "ifconfig -a") self.add_cmd_output(cmd_prefix + "route -n") # borrowed from networking plugin ip_addr_out=self.call_ext_prog(cmd_prefix + "ip -o addr") if ip_addr_out: for eth in self.get_interface_name(ip_addr_out): self.add_cmd_output(cmd_prefix + "ethtool "+eth) self.add_cmd_output(cmd_prefix + "ethtool -i "+eth) self.add_cmd_output(cmd_prefix + "ethtool -k "+eth) self.add_cmd_output(cmd_prefix + "ethtool -S "+eth) # Most, if not all, IFs in the namespaces are going to be # virtual. The '-a', '-c' and '-g' options are not likely to be # supported so these ops are not copied from the network # plugin. # As all of the bridges are in the "global namespace", we do not need # to gather info on them. def gen_pkg_tuple(self, packages): names = [] for p in packages: names.append(p % { "comp" : self.component_name }) return tuple(names) class DebianNeutron(Neutron, DebianPlugin, UbuntuPlugin): """OpenStack Neutron related information for Debian based distributions """ package_list_template = ['%(comp)s-common', '%(comp)s-plugin-cisco', '%(comp)s-plugin-linuxbridge-agent', '%(comp)s-plugin-nicira', '%(comp)s-plugin-openvswitch', '%(comp)s-plugin-openvswitch-agent', '%(comp)s-plugin-ryu', '%(comp)s-plugin-ryu-agent', '%(comp)s-server', 'python-%(comp)s', 'python-%(comp)sclient'] def check_enabled(self): return self.is_installed("%s-common" % self.component_name) def setup(self): super(DebianNeutron, self).setup() self.packages = self.gen_pkg_tuple(self.package_list_template) self.add_copy_spec("/etc/sudoers.d/%s_sudoers" % self.component_name) class RedHatNeutron(Neutron, RedHatPlugin): """OpenStack Neutron related information for Red Hat distributions """ package_list_template = ['openstack-%(comp)s', 'openstack-%(comp)s-linuxbridge' 'openstack-%(comp)s-metaplugin', 'openstack-%(comp)s-openvswitch', 'openstack-%(comp)s-bigswitch', 'openstack-%(comp)s-brocade', 'openstack-%(comp)s-cisco', 'openstack-%(comp)s-hyperv', 'openstack-%(comp)s-midonet', 'openstack-%(comp)s-nec' 'openstack-%(comp)s-nicira', 'openstack-%(comp)s-plumgrid', 'openstack-%(comp)s-ryu', 'python-%(comp)s', 'python-%(comp)sclient'] def check_enabled(self): return self.is_installed("openstack-%s" % self.component_name) def setup(self): super(RedHatNeutron, self).setup() self.packages = self.gen_pkg_tuple(self.package_list_template) self.add_copy_specs(["/etc/sudoers.d/%s-rootwrap" % self.component_name]) sosreport/sos/plugins/ipa.py0000644000175000017500000000614512254061770014672 0ustar zefzef## Copyright (C) 2007 Red Hat, Inc., Kent Lamb ## This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. from sos.plugins import Plugin, RedHatPlugin class Ipa(Plugin, RedHatPlugin): """IPA diagnostic information """ plugin_name = 'ipa' ipa_server = False ipa_client = False files = ('/etc/ipa',) packages = ('ipa-server', 'ipa-client') def check_enabled(self): self.ipa_server = self.is_installed("ipa-server") self.ipa_client = self.is_installed("ipa-client") return Plugin.check_enabled(self) def setup(self): if self.ipa_server: self.add_copy_spec("/var/log/ipaserver-install.log") self.add_copy_spec("/var/log/ipareplica-install.log") if self.ipa_client: self.add_copy_spec("/var/log/ipaclient-install.log") self.add_copy_specs(["/var/log/ipaupgrade.log", "/var/log/krb5kdc.log", "/var/log/pki-ca/debug", "/var/log/pki-ca/catalina.out", "/var/log/pki-ca/system", "/var/log/pki-ca/transactions", "/var/log/dirsrv/slapd-*/logs/access", "/var/log/dirsrv/slapd-*/logs/errors", "/etc/dirsrv/slapd-*/dse.ldif", "/etc/dirsrv/slapd-*/schema/99user.ldif", "/etc/hosts", "/etc/named.*"]) self.add_forbidden_path("/etc/pki/nssdb/key*") self.add_forbidden_path("/etc/pki-ca/flatfile.txt") self.add_forbidden_path("/etc/pki-ca/password.conf") self.add_forbidden_path("/var/lib/pki-ca/alias/key*") self.add_forbidden_path("/etc/dirsrv/slapd-*/key*") self.add_forbidden_path("/etc/dirsrv/slapd-*/pin.txt") self.add_forbidden_path("/etc/dirsrv/slapd-*/pwdfile.txt") self.add_forbidden_path("/etc/named.keytab") self.add_cmd_output("ls -la /etc/dirsrv/slapd-*/schema/") self.add_cmd_output("ipa-getcert list") self.add_cmd_output("certutil -L -d /etc/httpd/alias/") self.add_cmd_output("certutil -L -d /etc/dirsrv/slapd-*/") self.add_cmd_output("klist -ket /etc/dirsrv/ds.keytab") self.add_cmd_output("klist -ket /etc/httpd/conf/ipa.keytab") return def postproc(self): match = r"(\s*arg \"password )[^\"]*" subst = r"\1********" self.do_file_sub("/etc/named.conf", match, subst) sosreport/sos/plugins/selinux.py0000644000175000017500000000354612254061770015612 0ustar zefzef### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. from sos.plugins import Plugin, RedHatPlugin from os.path import join class SELinux(Plugin, RedHatPlugin): """selinux related information """ plugin_name = 'selinux' option_list = [("fixfiles", 'Print incorrect file context labels', 'slow', False), ("list", 'List objects and their context', 'slow', False)] packages = ('libselinux',) def setup(self): # sestatus is always collected in check_enabled() self.add_copy_spec("/etc/selinux") self.add_cmd_output("sestatus -b") self.add_cmd_output("semodule -l") self.add_cmd_output("selinuxdefcon root") self.add_cmd_output("selinuxconlist root") self.add_cmd_output("selinuxexeccon /bin/passwd") self.add_cmd_output("ausearch -m avc,user_avc -ts today") self.add_cmd_output("semanage -o -") if self.get_option('fixfiles'): self.add_cmd_output("fixfiles -v check") if self.get_option('list'): self.add_cmd_output("semanage fcontext -l") self.add_cmd_output("semanage user -l") self.add_cmd_output("semanage login -l") self.add_cmd_output("semanage port -l") sosreport/sos/plugins/java.py0000644000175000017500000000225212254061770015035 0ustar zefzef### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. import os from sos.plugins import Plugin, RedHatPlugin, UbuntuPlugin, DebianPlugin class Java(Plugin, RedHatPlugin, UbuntuPlugin, DebianPlugin): """basic java information""" plugin_name = "java" def setup(self): self.add_copy_spec("/etc/java") self.add_forbidden_path("/etc/java/security") self.add_cmd_output("alternatives --display java", root_symlink="java") self.add_cmd_output("readlink -f /usr/bin/java") sosreport/sos/plugins/nfs.py0000644000175000017500000000220612254061770014701 0ustar zefzef### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin class Nfs(Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin): """NFS related information """ plugin_name = 'nfs' packages = ['nfs-utils'] def setup(self): self.add_copy_specs([ "/etc/nfsmount.conf", "/etc/idmapd.conf", "/proc/fs/nfsfs/servers", "/proc/fs/nfsfs/volumes" ]) return sosreport/sos/plugins/devicemapper.py0000644000175000017500000000216612254061770016564 0ustar zefzef### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. import os from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin class DeviceMapper(Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin): """device-mapper related information """ plugin_name = 'devicemapper' def setup(self): self.add_cmd_output("dmsetup info -c") self.add_cmd_output("dmsetup table") self.add_cmd_output("dmsetup status") self.add_cmd_output("dmsetup ls --tree") sosreport/sos/plugins/memory.py0000644000175000017500000000246512254061770015432 0ustar zefzef### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin class Memory(Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin): """memory usage information """ plugin_name = 'memory' def setup(self): self.add_copy_specs([ "/proc/pci", "/proc/meminfo", "/proc/vmstat", "/proc/slabinfo", "/proc/pagetypeinfo"]) self.add_cmd_output("dmesg | grep -e 'e820.' -e 'aperature.'", suggest_filename="dmesg.e820-map") self.add_cmd_output("free", root_symlink = "free") self.add_cmd_output("free -m") sosreport/sos/plugins/scsi.py0000644000175000017500000000244312254061770015057 0ustar zefzef### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. from sos.plugins import Plugin, RedHatPlugin, UbuntuPlugin, DebianPlugin from glob import glob import os class Scsi(Plugin, RedHatPlugin, UbuntuPlugin, DebianPlugin): """hardware related information """ plugin_name = 'scsi' def setup(self): self.add_copy_specs([ "/proc/scsi", "/etc/stinit.def", "/sys/bus/scsi", "/sys/class/scsi_host", "/sys/class/scsi_disk", "/sys/class/scsi_device", "/sys/class/scsi_generic" ]) self.add_cmd_output("lsscsi") self.add_cmd_output("sg_map") sosreport/sos/plugins/nfsserver.py0000644000175000017500000000325112254061770016131 0ustar zefzef## Copyright (C) 2007 Red Hat, Inc., Eugene Teo ### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. from sos.plugins import Plugin, RedHatPlugin import os from stat import ST_SIZE class NfsServer(Plugin, RedHatPlugin): """NFS server-related information """ plugin_name = 'nfsserver' def check_enabled(self): default_runlevel = self.policy().default_runlevel() nfs_runlevels = self.policy().runlevel_by_service("nfs") if default_runlevel in nfs_runlevels: return True try: exports = os.stat("/etc/exports")[ST_SIZE] xtab = os.stat("/var/lib/nfs/xtab")[ST_SIZE] if exports or xtab: return True except: pass return False def setup(self): self.add_copy_specs([ "/etc/exports", "/var/lib/nfs/etab", "/var/lib/nfs/xtab", "/var/lib/nfs/rmtab"]) self.add_cmd_output("rpcinfo -p localhost") self.add_cmd_output("nfsstat -o all") sosreport/sos/plugins/openshift.py0000644000175000017500000000505312254061770016115 0ustar zefzef### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. from sos.plugins import Plugin, RedHatPlugin class Openshift(Plugin, RedHatPlugin): '''Openshift related information''' plugin_name = "Openshift" option_list = [("broker", "Gathers broker specific files", "slow", False), ("node", "Gathers node specific files", "slow", False)] def setup(self): self.add_copy_specs(["/etc/openshift-enterprise-version", "/etc/openshift/", "/etc/dhcp/dhclient-*"]) if self.option_enabled("broker"): self.add_copy_specs(["/var/log/activemq", "/var/log/mongodb", "/var/log/openshift", "/var/www/openshift/broker/log", "/var/www/openshift/broker/httpd/logs/", "/var/www/openshift/console/log", "/var/www/openshift/console/httpd/logs", "/var/log/openshift/user_action.log"]) self.add_cmd_output("oo-accpet-broker -v") self.add_cmd_output("oo-admin-chk -v") self.add_cmd_output("mco ping") self.add_cmd_output("gem list --local") self.add_cmd_output("cd /var/www/openshift/broker/ && bundle --local") if self.option_enabled("node"): self.add_copy_specs(["/var/log/openshift/node", "/cgroup/all/openshift", "/var/log/mcollective.log", "/var/log/openshift-gears-async-start.log", "/var/log/httpd/error_log"]) self.add_cmd_output("oo-accept-node -v") self.add_cmd_output("oo-admin-ctl-gears list") self.add_cmd_output("ls -l /var/lib/openshift") def postproc(self): self.do_file_sub('/etc/openshift/broker.conf', r"(MONGO_PASSWORD=)(.*)", r"\1*******") self.do_file_sub('/etc/openshift/broker.conf', r"(SESSION_SECRET=)(.*)", r"\1*******") self.do_file_sub('/etc/openshift/console.conf', r"(SESSION_SECRET=)(.*)", r"\1*******") self.do_file_sub('/etc/openshift/htpasswd', r"(.*:)(.*)", r"\1********") sosreport/sos/plugins/ata.py0000644000175000017500000000265412254061770014667 0ustar zefzef### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. from sos.plugins import Plugin, RedHatPlugin, UbuntuPlugin, DebianPlugin import os class Ata(Plugin, RedHatPlugin, UbuntuPlugin, DebianPlugin): """ ATA and IDE related information (including PATA and SATA) """ plugin_name = "ata" packages = ('hdparm', 'smartmontools') def setup(self): dev_path = '/dev' sys_block = '/sys/block' self.add_copy_spec('/proc/ide') if os.path.isdir(sys_block): for disk in os.listdir(sys_block): if disk.startswith("sd") or disk.startswith("hd"): disk_path = os.path.join(dev_path, disk) self.add_cmd_output("hdparm %s" % disk_path) self.add_cmd_output("smartctl -a %s" % disk_path) sosreport/sos/plugins/dmraid.py0000644000175000017500000000207012254061770015352 0ustar zefzef### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. import os from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin class Dmraid(Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin): """dmraid related information """ plugin_name = 'dmraid' dmraid_options = ['V','b','r','s','tay','rD'] def setup(self): for opt in self.dmraid_options: self.add_cmd_output("dmraid -%s" % (opt,)) sosreport/sos/plugins/apache.py0000644000175000017500000000345112254061770015337 0ustar zefzef### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin class Apache(Plugin): """Apache related information """ plugin_name = "apache" option_list = [("log", "gathers all apache logs", "slow", False)] class RedHatApache(Apache, RedHatPlugin): """Apache related information for Red Hat distributions """ files = ('/etc/httpd/conf/httpd.conf',) def setup(self): super(RedHatApache, self).setup() self.add_copy_specs([ "/etc/httpd/conf/httpd.conf", "/etc/httpd/conf.d/*.conf"]) self.add_forbidden_path("/etc/httpd/conf/password.conf") if self.get_option("log"): self.add_copy_spec("/var/log/httpd/*") class DebianApache(Apache, DebianPlugin, UbuntuPlugin): """Apache related information for Debian distributions """ files = ('/etc/apache2/apache2.conf',) def setup(self): super(DebianApache, self).setup() self.add_copy_specs([ "/etc/apache2/*", "/etc/default/apache2"]) if self.get_option("log"): self.add_copy_spec("/var/log/apache2/*") sosreport/sos/plugins/Makefile0000644000175000017500000000110212254061770015173 0ustar zefzefPYTHON=python PACKAGE = $(shell basename `pwd`) PYFILES = $(wildcard *.py) PYVER := $(shell $(PYTHON) -c 'import sys; print "%.3s" %(sys.version)') PYSYSDIR := $(shell $(PYTHON) -c 'import sys; print sys.prefix') PYLIBDIR = $(PYSYSDIR)/lib/python$(PYVER) PKGDIR = $(PYLIBDIR)/site-packages/sos/$(PACKAGE) all: echo "nada" clean: rm -f *.pyc *.pyo *~ install: mkdir -p $(DESTDIR)/$(PKGDIR) for p in $(PYFILES) ; do \ install -m 644 $$p $(DESTDIR)/$(PKGDIR)/$$p; \ done $(PYTHON) -c "import compileall; compileall.compile_dir('$(DESTDIR)/$(PKGDIR)', 1, '$(PYDIR)', 1)" sosreport/sos/plugins/systemtap.py0000644000175000017500000000217312254061770016147 0ustar zefzef## Copyright (C) 2007 Red Hat, Inc., Eugene Teo ### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin class SystemTap(Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin): """SystemTap information """ plugin_name = 'systemtap' files = ('stap',) packages = ('systemtap', 'systemtap-runtime') def setup(self): self.add_cmd_output("stap -V 2") self.add_cmd_output("uname -r") sosreport/sos/plugins/foreman.py0000644000175000017500000000223112271435675015550 0ustar zefzef## Copyright (C) 2013 Red Hat, Inc., Lukas Zapletal ## This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. import os from sos.plugins import Plugin, RedHatPlugin class Foreman(Plugin, RedHatPlugin): """Foreman project related information """ plugin_name = 'foreman' packages = ('foreman') def setup(self): foreman_debug_path = os.path.join( self.get_cmd_path(),"foreman-debug") self.add_cmd_output("%s -q -a -d %s" % ("foreman-debug", foreman_debug_path)) sosreport/sos/plugins/boot.py0000644000175000017500000000320112254061770015052 0ustar zefzef### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin from glob import glob class Boot(Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin): """Bootloader information """ plugin_name = 'boot' option_list = [("all-images", "collect a file listing for all initramfs images", "slow", False)] def setup(self): self.add_copy_specs([ # legacy / special purpose bootloader configs "/etc/milo.conf", "/etc/silo.conf", "/boot/efi/efi/redhat/elilo.conf", "/etc/yaboot.conf", "/boot/yaboot.conf" ]) self.add_cmd_output("ls -lanR /boot") self.add_cmd_output("lsinitrd") if self.get_option("all-images"): for image in glob('/boot/initr*.img'): if image[-9:] == "kdump.img": continue self.add_cmd_output("lsinitrd %s" % image) sosreport/sos/plugins/cobbler.py0000644000175000017500000000267212254061770015532 0ustar zefzef### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin class Cobbler(Plugin): plugin_name = "cobbler" class RedHatCobbler(Cobbler, RedHatPlugin): """cobbler related information """ packages = ('cobbler',) def setup(self): self.add_copy_spec("/etc/cobbler") self.add_copy_spec("/var/log/cobbler") self.add_copy_spec("/var/lib/rhn/kickstarts") self.add_copy_spec("/var/lib/cobbler") class DebianCobbler(Cobbler, DebianPlugin, UbuntuPlugin): """cobbler related information for Debian and Ubuntu """ packages = ('cobbler',) def setup(self): self.add_copy_spec("/etc/cobbler") self.add_copy_spec("/var/log/cobbler") self.add_copy_spec("/var/lib/cobbler") sosreport/sos/plugins/apparmor.py0000644000175000017500000000175512254061770015744 0ustar zefzef## Copyright (c) 2012 Adam Stokes ## This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. from sos.plugins import Plugin, UbuntuPlugin class Apparmor(Plugin, UbuntuPlugin): """Apparmor related information """ plugin_name = 'apparmor' def setup(self): self.add_copy_specs([ "/etc/apparmor" ]) sosreport/sos/plugins/filesys.py0000644000175000017500000000364212254061770015576 0ustar zefzef### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin import os import re from six.moves import zip class Filesys(Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin): """information on filesystems """ plugin_name = 'filesys' option_list = [("lsof", 'gathers information on all open files', 'slow', False), ("dumpe2fs", 'dump filesystem information', 'slow', False)] def setup(self): self.add_copy_specs([ "/proc/filesystems", "/etc/fstab", "/proc/self/mounts", "/proc/self/mountinfo", "/proc/self/mountstats", "/proc/mounts" ]) self.add_cmd_output("mount -l", root_symlink = "mount") self.add_cmd_output("df -al", root_symlink = "df") self.add_cmd_output("df -ali") self.add_cmd_output("findmnt") if self.get_option('lsof'): self.add_cmd_output("lsof -b +M -n -l -P", root_symlink = "lsof") if self.get_option('dumpe2fs'): mounts = '/proc/mounts' ext_fs_regex = r"^(/dev/.+).+ext[234]\s+" for dev in zip(self.do_regex_find_all(ext_fs_regex, mounts)): self.add_cmd_output("dumpe2fs -h %s" % (dev)) sosreport/sos/plugins/pci.py0000644000175000017500000000231312254061770014665 0ustar zefzef### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. from sos.plugins import Plugin, RedHatPlugin, UbuntuPlugin, DebianPlugin from glob import glob import os class Pci(Plugin, RedHatPlugin, UbuntuPlugin, DebianPlugin): """PCI device related information """ plugin_name = "pci" def setup(self): self.add_copy_specs([ "/proc/ioports", "/proc/iomem", "/proc/bus/pci" ]) self.add_cmd_output("lspci", root_symlink = "lspci") self.add_cmd_output("lspci -nvv") self.add_cmd_output("lspci -tv") sosreport/sos/plugins/landscape.py0000644000175000017500000000455012254061770016051 0ustar zefzef### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. from sos.plugins import Plugin, UbuntuPlugin class Landscape(Plugin, UbuntuPlugin): """ landscape client related information """ plugin_name = 'landscape' files = ('/etc/landscape/client.conf', 'broker.log', 'broker.log.gz', 'broker.log.1', 'broker.log.1.gz', 'broker.log.2', 'broker.log.2.gz', 'manager.log', 'manager.log.gz', 'manager.log.1', 'manager.log.1.gz', 'manager.log.2', 'manager.log.2.gz', 'monitor.log', 'monitor.log.gz', 'monitor.log.1', 'monitor.log.1.gz', 'monitor.log.2', 'monitor.log.2.gz', 'package-reporter.log', 'package-reporter.log.gz', 'package-reporter.log.1', 'package-reporter.log.1.gz', 'package-reporter.log.2', 'package-reporter.log.2.gz', 'sysinfo.log', 'sysinfo.log.gz', 'sysinfo.log.1', 'sysinfo.log.1.gz', 'sysinfo.log.2', 'sysinfo.log.2.gz', 'watchdog.log', 'watchdog.log.gz', 'watchdog.log.1', 'watchdog.log.1.gz', 'watchdog.log.2', 'watchdog.log.2.gz' ,) packages = ('landscape-client',) def setup(self): self.add_copy_spec("/etc/landscape/client.conf") def postproc(self): self.do_file_sub("/etc/landscape/client.conf", r"registration_password(.*)", r"registration_password[***]" ) sosreport/sos/plugins/logs.py0000644000175000017500000000555212254061770015066 0ustar zefzef### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. import os from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin class Logs(Plugin): """log data """ plugin_name = "logs" option_list = [ ("logsize", "max size (MiB) to collect per syslog file", "", 15), ("all_logs", "collect all log files defined in syslog.conf", "", False) ] def setup(self): self.add_copy_specs([ "/etc/syslog.conf", "/etc/rsyslog.conf" ]) self.limit = self.get_option("logsize") self.add_copy_spec_limit("/var/log/boot*", sizelimit = self.limit) if self.get_option('all_logs'): logs = self.do_regex_find_all("^\S+\s+(-?\/.*$)\s+", "/etc/syslog.conf") if self.policy().pkg_by_name("rsyslog") \ or os.path.exists("/etc/rsyslog.conf"): logs += self.do_regex_find_all("^\S+\s+(-?\/.*$)\s+", "/etc/rsyslog.conf") for i in logs: if i.startswith("-"): i = i[1:] if os.path.isfile(i): self.add_copy_spec_limit(i, sizelimit = self.limit) class RedHatLogs(Logs, RedHatPlugin): """Basic system information for RedHat based distributions""" def setup(self): super(RedHatLogs, self).setup() self.add_copy_spec_limit("/var/log/secure*", sizelimit = self.limit) self.add_copy_spec_limit("/var/log/messages*", sizelimit = self.limit) class DebianLogs(Logs, DebianPlugin): """Basic system information for Debian based distributions""" def setup(self): super(DebianLogs, self).setup() self.add_copy_specs([ "/var/log/syslog", "/var/log/udev", "/var/log/kern*", "/var/log/mail*", "/var/log/dist-upgrade", "/var/log/installer", "/var/log/unattended-upgrades" ]) class UbuntuLogs(Logs, UbuntuPlugin): """Basic system information for Ubuntu based distributions""" def setup(self): super(UbuntuLogs, self).setup() self.add_copy_specs([ "/var/log/apport.log", "/var/log/landscape", ]) sosreport/sos/plugins/infiniband.py0000644000175000017500000000271312254061770016217 0ustar zefzef## Copyright (C) 2011, 2012 Red Hat, Inc., Bryn M. Reeves ### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin class Infiniband(Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin): """Infiniband related information """ plugin_name = 'infiniband' def check_enabled(self): if self.commons["policy"].pkg_by_name("libibverbs-utils"): return True return False def setup(self): self.add_copy_specs([ "/etc/ofed/openib.conf", "/etc/ofed/opensm.conf"]) self.add_cmd_output("ibv_devices") self.add_cmd_output("ibv_devinfo") self.add_cmd_output("ibstat") self.add_cmd_output("ibstatus") self.add_cmd_output("ibhosts") return sosreport/sos/plugins/azure.py0000644000175000017500000000237112254061770015244 0ustar zefzef# Copyright (C) 2013 Adam Stokes # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. from sos.plugins import Plugin, UbuntuPlugin class Azure(Plugin, UbuntuPlugin): """ Microsoft Azure Client Plugin """ plugin_name = 'azure' packages = ('walinuxagent',) def setup(self): self.add_copy_specs(["/var/log/waagent*", "/var/lib/cloud", "/etc/default/kv-kvp-daemon-init", "/sys/module/hv_netvsc/parameters/ring_size", "/sys/module/hv_storvsc/parameters/storvsc_ringbuffer_size"]) sosreport/sos/plugins/satellite.py0000644000175000017500000000616412254061770016110 0ustar zefzef### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. from sos.plugins import Plugin, RedHatPlugin import os class Satellite(Plugin, RedHatPlugin): """RHN Satellite and Spacewalk related information """ plugin_name = 'satellite' satellite = False proxy = False option_list = [("log", 'gathers all apache logs', 'slow', False)] def default_enabled(self): return False def rhn_package_check(self): self.satellite = self.is_installed("rhns-satellite-tools") \ or self.is_installed("spacewalk-java") \ or self.is_installed("rhn-base") self.proxy = self.is_installed("rhns-proxy-tools") \ or self.is_installed("spacewalk-proxy-management") \ or self.is_installed("rhn-proxy-management") return self.satellite or self.proxy def check_enabled(self): # enable if any related package is installed return self.rhn_package_check() def setup(self): self.rhn_package_check() self.add_copy_specs([ "/etc/httpd/conf*", "/etc/rhn", "/var/log/rhn*"]) if self.get_option("log"): self.add_copy_spec("/var/log/httpd") # all these used to go in $DIR/mon-logs/ self.add_copy_specs([ "/opt/notification/var/*.log*", "/var/tmp/ack_handler.log*", "/var/tmp/enqueue.log*"]) # monitoring scout logs self.add_copy_specs([ "/home/nocpulse/var/*.log*", "/home/nocpulse/var/commands/*.log*", "/var/tmp/ack_handler.log*", "/var/tmp/enqueue.log*", "/var/log/nocpulse/*.log*", "/var/log/notification/*.log*", "/var/log/nocpulse/TSDBLocalQueue/TSDBLocalQueue.log"]) self.add_copy_spec("/root/ssl-build") self.add_cmd_output("rhn-schema-version", root_symlink = "database-schema-version") self.add_cmd_output("rhn-charsets", root_symlink = "database-character-sets") if self.satellite: self.add_copy_specs(["/etc/tnsnames.ora", "/etc/jabberd", "/etc/tomcat6/", "/var/log/tomcat6/"]) if os.path.exists("spacewalk-debug"): self.add_cmd_output("spacewalk-debug --dir %s" % os.path.join(self.get_cmd_path())) if self.proxy: self.add_copy_specs(["/etc/squid", "/var/log/squid"]) sosreport/sos/plugins/maas.py0000644000175000017500000000242712271430455015040 0ustar zefzef# Copyright (C) 2013 Adam Stokes # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. from sos.plugins import Plugin, UbuntuPlugin class Maas(Plugin, UbuntuPlugin): """MAAS Plugin """ plugin_name = 'maas' def setup(self): self.add_copy_specs([ "/etc/squid-deb-proxy", "/etc/maas", "/var/lib/maas/dhcp*", "/var/log/apache2*", "/var/log/maas*", "/var/log/upstart/maas-*", ]) self.add_cmd_output("apt-cache policy maas-*") self.add_cmd_output("apt-cache policy python-django-*") self.add_cmd_output("maas dumpdata") sosreport/sos/plugins/emc.py0000644000175000017500000002520212254061770014660 0ustar zefzef## emc.py ## Captures EMC specific information during a sos run. ## Copyright (C) 2008 EMC Corporation. Keith Kearnan ### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. from sos.plugins import Plugin, RedHatPlugin, os class Emc(Plugin, RedHatPlugin): """EMC related information (PowerPath, Solutions Enabler CLI and Navisphere CLI) """ plugin_name = 'emc' def about_emc(self): """ EMC Corporation specific information """ self.add_custom_text('

EMC²®') self.add_custom_text('
where information lives®

') self.add_custom_text("EMC Corporation is the world's leading developer and provider of information ") self.add_custom_text("infrastructure technology and solutions that enable organizations of all sizes to transform ") self.add_custom_text("the way they compete and create value from their information.  ") self.add_custom_text("Information about EMC's products and services can be found at ") self.add_custom_text('www.EMC.com.
') def get_pp_files(self): """ EMC PowerPath specific information - files """ self.add_cmd_output("powermt version") self.add_copy_specs([ "/etc/init.d/PowerPath", "/etc/powermt.custom", "/etc/emcp_registration", "/etc/emc/mpaa.excluded", "/etc/emc/mpaa.lams", "/etc/emcp_devicesDB.dat", "/etc/emcp_devicesDB.idx", "/etc/emc/powerkmd.custom", "/etc/modprobe.conf.pp"]) def get_pp_config(self): """ EMC PowerPath specific information - commands """ self.add_cmd_output("powermt display") self.add_cmd_output("powermt display dev=all") self.add_cmd_output("powermt check_registration") self.add_cmd_output("powermt display options") self.add_cmd_output("powermt display ports") self.add_cmd_output("powermt display paths") self.add_cmd_output("powermt dump") def get_symcli_files(self): """ EMC Solutions Enabler SYMCLI specific information - files """ self.add_copy_specs([ "/var/symapi/db/symapi_db.bin", "/var/symapi/config/[a-z]*", "/var/symapi/log/[a-z]*"]) def get_symcli_config(self): """ EMC Solutions Enabler SYMCLI specific information - Symmetrix/DMX - commands """ self.add_cmd_output("symclisymcli -def") self.add_cmd_output("symclisymdg list") self.add_cmd_output("symclisymdg -v list") self.add_cmd_output("symclisymcg list") self.add_cmd_output("symclisymcg -v list") self.add_cmd_output("symclisymcfg list") self.add_cmd_output("symclisymcfg -v list") self.add_cmd_output("symclisymcfg -db") self.add_cmd_output("symclisymcfg -semaphores list") self.add_cmd_output("symclisymcfg -dir all -v list") self.add_cmd_output("symclisymcfg -connections list") self.add_cmd_output("symclisymcfg -app -v list") self.add_cmd_output("symclisymcfg -fa all -port list") self.add_cmd_output("symclisymcfg -ra all -port list") self.add_cmd_output("symclisymcfg -sa all -port list") self.add_cmd_output("symclisymcfg list -lock") self.add_cmd_output("symclisymcfg list -lockn all") self.add_cmd_output("symclisyminq") self.add_cmd_output("symclisyminq -v") self.add_cmd_output("symclisyminq -symmids") self.add_cmd_output("symclisyminq hba -fibre") self.add_cmd_output("symclisyminq hba -scsi") self.add_cmd_output("symclisymhost show -config") self.add_cmd_output("symclistordaemon list") self.add_cmd_output("symclistordaemon -v list") self.add_cmd_output("symclisympd list") self.add_cmd_output("symclisympd list -vcm") self.add_cmd_output("symclisymdev list") self.add_cmd_output("symclisymdev -v list") self.add_cmd_output("symclisymdev -rdfa list") self.add_cmd_output("symclisymdev -rdfa -v list") self.add_cmd_output("symclisymbcv list") self.add_cmd_output("symclisymbcv -v list") self.add_cmd_output("symclisymrdf list") self.add_cmd_output("symclisymrdf -v list") self.add_cmd_output("symclisymrdf -rdfa list") self.add_cmd_output("symclisymrdf -rdfa -v list") self.add_cmd_output("symclisymsnap list") self.add_cmd_output("symclisymsnap list -savedevs") self.add_cmd_output("symclisymclone list") self.add_cmd_output("symclisymevent list") self.add_cmd_output("symclisymmask list hba") self.add_cmd_output("symclisymmask list logins") self.add_cmd_output("symclisymmaskdb list database") self.add_cmd_output("symclisymmaskdb -v list database") def get_navicli_config(self): """ EMC Navisphere Host Agent NAVICLI specific information - files """ self.add_copy_specs([ "/etc/Navisphere/agent.config", "/etc/Navisphere/Navimon.cfg", "/etc/Navisphere/Quietmode.cfg", "/etc/Navisphere/messages/[a-z]*", "/etc/Navisphere/log/[a-z]*"]) def get_navicli_SP_info(self,SP_address): """ EMC Navisphere Host Agent NAVICLI specific information - CLARiiON - commands """ self.add_cmd_output("navicli -h %s getall" % SP_address) self.add_cmd_output("navicli -h %s getsptime -spa" % SP_address) self.add_cmd_output("navicli -h %s getsptime -spb" % SP_address) self.add_cmd_output("navicli -h %s getlog" % SP_address) self.add_cmd_output("navicli -h %s getdisk" % SP_address) self.add_cmd_output("navicli -h %s getcache" % SP_address) self.add_cmd_output("navicli -h %s getlun" % SP_address) self.add_cmd_output("navicli -h %s getlun -rg -type -default -owner -crus -capacity" % SP_address) self.add_cmd_output("navicli -h %s lunmapinfo" % SP_address) self.add_cmd_output("navicli -h %s getcrus" % SP_address) self.add_cmd_output("navicli -h %s port -list -all" % SP_address) self.add_cmd_output("navicli -h %s storagegroup -list" % SP_address) self.add_cmd_output("navicli -h %s spportspeed -get" % SP_address) def check_enabled(self): self.packages = [ "EMCpower" ] self.files = [ "/opt/Navisphere/bin", "/proc/emcp" ] return Plugin.check_enabled(self) def setup(self): from subprocess import Popen, PIPE ## About EMC Corporation default no if no EMC products are installed add_about_emc="no" ## If PowerPath is installed collect PowerPath specific information if self.is_installed("EMCpower"): print("EMC PowerPath is installed.") print(" Gathering EMC PowerPath information...") self.add_custom_text("EMC PowerPath is installed.
") self.get_pp_files() add_about_emc = "yes" ## If PowerPath is running collect additional PowerPath specific information if os.path.isdir("/proc/emcp"): print("EMC PowerPath is running.") print(" Gathering additional EMC PowerPath information...") self.get_pp_config() ## If Solutions Enabler is installed collect Symmetrix/DMX specific information if len(self.policy().package_manager.all_pkgs_by_name_regex('[Ss][Yy][Mm][Cc][Ll][Ii]-[Ss][Yy][Mm][Cc][Ll][Ii]')) > 0: print("EMC Solutions Enabler SYMCLI is installed.") print(" Gathering EMC Solutions Enabler SYMCLI information...") self.add_custom_text("EMC Solutions Enabler is installed.
") self.get_symcli_files() self.get_symcli_config() add_about_emc = "yes" ## If Navisphere Host Agent is installed collect CLARiiON specific information if os.path.isdir("/opt/Navisphere/bin"): print("") print("The EMC CLARiiON Navisphere Host Agent is installed.") self.add_custom_text("EMC CLARiiON Navisphere Host Agent is installed.
") self.get_navicli_config() print(" Gathering Navisphere NAVICLI Host Agent information...") print(" Please enter a CLARiiON SP IP address. In order to collect") print( " information for both SPA and SPB as well as multiple") print(" CLARiiON arrays (if desired) you will be prompted multiple times.") print(" To exit simply press [Enter]") print("") add_about_emc = "yes" CLARiiON_IP_address_list = [] CLARiiON_IP_loop = "stay_in" while CLARiiON_IP_loop == "stay_in": ans = raw_input("CLARiiON SP IP Address or [Enter] to exit: ") ## Check to make sure the CLARiiON SP IP address provided is valid p = Popen("navicli -h %s getsptime" % (ans,), shell=True, stdout=PIPE, stderr=PIPE) out, err = p.communicate() if p.returncode == 0: CLARiiON_IP_address_list.append(ans) else: if ans != "": print("The IP address you entered, %s, is not to an active CLARiiON SP." % ans) if ans == "": CLARiiON_IP_loop = "get_out" ## Sort and dedup the list of CLARiiON IP Addresses CLARiiON_IP_address_list.sort() for SP_address in CLARiiON_IP_address_list: if CLARiiON_IP_address_list.count(SP_address) > 1: CLARiiON_IP_address_list.remove(SP_address) for SP_address in CLARiiON_IP_address_list: if SP_address != "": print(" Gathering NAVICLI information for %s..." % SP_address) self.get_navicli_SP_info(SP_address) ## Only provide About EMC if EMC products are installed if add_about_emc != "no": self.about_emc() sosreport/sos/plugins/postfix.py0000644000175000017500000000321512254061770015610 0ustar zefzef### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin from os.path import exists class Postfix(Plugin): """mail server related information """ plugin_name = "postfix" packages = ('postfix',) def setup(self): self.add_copy_specs([ "/etc/postfix/main.cf", "/etc/postfix/master.cf"]) self.add_cmd_output("postconf") class RedHatPostfix(Postfix, RedHatPlugin): """mail server related information for RedHat based distributions """ files = ('/etc/rc.d/init.d/postfix',) packages = ('postfix',) def setup(self): super(RedHatPostfix, self).setup() self.add_copy_spec("/etc/mail") class DebianPostfix(Postfix, DebianPlugin, UbuntuPlugin): """mail server related information for Debian based Distribution """ packages = ('postfix',) def setup(self): super(DebianPostfix, self).setup() self.add_copy_spec("/etc/postfix/dynamicmaps.cf") sosreport/sos/plugins/md.py0000644000175000017500000000213712254061770014516 0ustar zefzef### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. import os from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin class Md(Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin): """MD subsystem information """ plugin_name = 'md' def setup(self): self.add_cmd_output("mdadm -D /dev/md*") self.add_copy_specs([ "/proc/mdstat", "/etc/mdadm.conf", "/dev/md/md-device-map" ]) sosreport/sos/plugins/nis.py0000644000175000017500000000215712254061770014711 0ustar zefzef## nis.py ## A plugin to gather all the NIS information ### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin import os class Nis(Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin): """NIS related information """ plugin_name = 'nis' files = ('/var/yp',) def setup(self): self.add_copy_spec("/etc/yp*.conf") self.add_copy_spec("/var/yp/*") self.add_cmd_output("domainname") sosreport/sos/plugins/oddjob.py0000644000175000017500000000220112254061770015347 0ustar zefzef## Copyright (C) 2007 Sadique Puthen ### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. from sos.plugins import Plugin, RedHatPlugin class Oddjob(Plugin, RedHatPlugin): """oddjob related information """ plugin_name = 'oddjob' files = ('/etc/oddjobd.conf',) packages = ('oddjob',) def setup(self): self.add_copy_spec("/etc/oddjobd.conf") self.add_copy_spec("/etc/oddjobd.conf.d") self.add_copy_spec("/etc/dbus-1/system.d/oddjob.conf") sosreport/sos/plugins/apt.py0000644000175000017500000000223212254061770014676 0ustar zefzef# Copyright (C) 2013 Louis Bouchard # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. from sos.plugins import Plugin, UbuntuPlugin, DebianPlugin class Apt(Plugin, DebianPlugin, UbuntuPlugin): """ Apt Plugin """ plugin_name = 'apt' def setup(self): self.add_copy_specs(["/etc/apt", "/var/log/apt"]) self.add_cmd_output("apt-get check") self.add_cmd_output("apt-config dump") self.add_cmd_output("apt-cache stats") self.add_cmd_output("apt-cache policy") sosreport/sos/plugins/hts.py0000644000175000017500000000176012254061770014715 0ustar zefzef### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. from sos.plugins import Plugin, RedHatPlugin class HardwareTestSuite(Plugin, RedHatPlugin): """Red Hat Hardware Test Suite related information """ plugin_name = 'hardwaretestsuite' def setup(self): self.add_copy_spec("/etc/httpd/conf.d/hts.conf") self.add_copy_spec("/var/hts") sosreport/sos/plugins/openstack_cinder.py0000644000175000017500000000535112254061770017432 0ustar zefzef## Copyright (C) 2009 Red Hat, Inc., Joey Boggs ## Copyright (C) 2012 Rackspace US, Inc., Justin Shepherd ## Copyright (C) 2013 Red Hat, Inc., Flavio Percoco ## Copyright (C) 2013 Red Hat, Inc., Jeremy Agee ### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. import os from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin class OpenStackCinder(Plugin): """openstack cinder related information """ plugin_name = "openstack-cinder" option_list = [("log", "gathers openstack cinder logs", "slow", True), ("db", "gathers openstack cinder db version", "slow", False)] def setup(self): if self.option_enabled("db"): self.add_cmd_output( "cinder-manage db version", suggest_filename="cinder_db_version") self.add_copy_specs(["/etc/cinder/"]) if self.option_enabled("log"): self.add_copy_specs(["/var/log/cinder/"]) class DebianOpenStackCinder(OpenStackCinder, DebianPlugin, UbuntuPlugin): """OpenStack Cinder related information for Debian based distributions """ cinder = False packages = ('cinder-api', 'cinder-backup', 'cinder-common', 'cinder-scheduler', 'cinder-volume', 'python-cinder', 'python-cinderclient') def check_enabled(self): self.cinder = self.is_installed("cinder-common") return self.cinder def setup(self): super(DebianOpenStackCinder, self).setup() class RedHatOpenStackCinder(OpenStackCinder, RedHatPlugin): """OpenStack related information for Red Hat distributions """ cinder = False packages = ('openstack-cinder', 'python-cinder', 'python-cinderclient') def check_enabled(self): self.cinder = self.is_installed("openstack-cinder") return self.cinder def setup(self): super(RedHatOpenStackCinder, self).setup() self.add_copy_specs(["/etc/sudoers.d/cinder"]) sosreport/sos/plugins/openstack_glance.py0000644000175000017500000000376412254061770017425 0ustar zefzef## Copyright (C) 2013 Red Hat, Inc., Flavio Percoco ## Copyright (C) 2012 Rackspace US, Inc., Justin Shepherd ## Copyright (C) 2009 Red Hat, Inc., Joey Boggs ### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. from sos import plugins class OpenStackGlance(plugins.Plugin): """OpenstackGlance related information.""" plugin_name = "openstack-glance" option_list = [("log", "gathers openstack-glance logs", "slow", False)] def setup(self): # Glance self.add_cmd_output( "glance-manage db_version", suggest_filename="glance_db_version") self.add_copy_specs(["/etc/glance/", "/var/log/glance/"]) class DebianOpenStackGlance(OpenStackGlance, plugins.DebianPlugin, plugins.UbuntuPlugin): """OpenStackGlance related information for Debian based distributions.""" packages = ('glance', 'glance-api', 'glance-client', 'glance-common', 'glance-registry', 'python-glance') class RedHatOpenStackGlance(OpenStackGlance, plugins.RedHatPlugin): """OpenStackGlance related information for Red Hat distributions.""" packages = ('openstack-glance', 'python-glanceclient') sosreport/sos/plugins/dhcp.py0000644000175000017500000000273412254061770015037 0ustar zefzef### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. from sos.plugins import Plugin, RedHatPlugin, UbuntuPlugin class Dhcp(Plugin): """DHCP related information """ plugin_name = "dhcp" class RedHatDhcp(Dhcp, RedHatPlugin): """DHCP related information for Red Hat based distributions""" files = ('/etc/rc.d/init.d/dhcpd',) packages = ('dhcp',) def setup(self): super(RedHatDhcp, self).setup() self.add_copy_specs([ "/etc/dhcpd.conf", "/etc/dhcp"]) class UbuntuDhcp(Dhcp, UbuntuPlugin): """DHCP related information for Debian based distributions""" files = ('/etc/init.d/udhcpd',) packages = ('udhcpd',) def setup(self): super(DebianDhcp, self).setup() self.add_copy_specs([ "/etc/default/udhcpd", "/etc/udhcpd.conf" ]) sosreport/sos/plugins/squid.py0000644000175000017500000000311512254062025015232 0ustar zefzef### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin class Squid(Plugin): """squid related information """ plugin_name = 'squid' option_list = [("logsize", "maximum size (MiB) of logs to collect", "", 15)] class RedHatSquid(Squid, RedHatPlugin): """squid Red Hat related information """ files = ('/etc/squid/squid.conf',) packages = ('squid',) def setup(self): self.add_copy_spec_limit("/etc/squid/squid.conf", sizelimit=self.get_option('logsize')) class DebianSquid(Squid, DebianPlugin, UbuntuPlugin): """squid related information for Debian and Ubuntu """ plugin_name = 'squid' files = ('/etc/squid3/squid.conf',) packages = ('squid3',) def setup(self): self.add_copy_spec_limit("/etc/squid3/squid.conf", sizelimit=self.get_option('logsize')) sosreport/sos/plugins/dpkg.py0000644000175000017500000000205012254061770015035 0ustar zefzef## Copyright (c) 2012 Adam Stokes ## This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. from sos.plugins import Plugin, DebianPlugin, UbuntuPlugin class Dpkg(Plugin, DebianPlugin, UbuntuPlugin): """dpkg information """ plugin_name = 'dpkg' def setup(self): self.add_copy_spec("/var/log/dpkg.log") self.add_cmd_output("dpkg -l", root_symlink = "installed-debs") sosreport/sos/plugins/s390.py0000644000175000017500000000464212254061770014617 0ustar zefzef## Copyright (C) 2007 Red Hat, Inc., Justin Payne ### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. from sos.plugins import Plugin, RedHatPlugin class S390(Plugin, RedHatPlugin): """s390 related information """ plugin_name = 's390' ### Check for s390 arch goes here def check_enabled(self): return (self.policy().get_arch() == "s390") ### Gather s390 specific information def setup(self): self.add_copy_specs([ "/proc/cio_ignore" "/proc/crypto", "/proc/dasd/devices", "/proc/dasd/statistics", "/proc/misc", "/proc/qeth", "/proc/qeth_perf", "/proc/qeth_ipa_takeover", "/proc/sys/appldata/*", "/proc/sys/kernel/hz_timer", "/proc/sysinfo", "/sys/bus/ccwgroup/drivers/qeth/0.*/*", "/sys/bus/ccw/drivers/zfcp/0.*/*", "/sys/bus/ccw/drivers/zfcp/0.*/0x*/*", "/sys/bus/ccw/drivers/zfcp/0.*/0x*/0x*/*", "/etc/zipl.conf", "/etc/zfcp.conf", "/etc/sysconfig/dumpconf", "/etc/src_vipa.conf", "/etc/ccwgroup.conf", "/etc/chandev.conf"]) self.add_cmd_output("lscss") self.add_cmd_output("lsdasd") self.add_cmd_output("lstape") self.add_cmd_output("find /sys -type f") self.add_cmd_output("find /proc/s390dbf -type f") self.add_cmd_output("qethconf list_all") self.add_cmd_output("lsqeth") self.add_cmd_output("lszfcp") ret, dasd_dev, rtime = self.call_ext_prog("ls /dev/dasd?") for x in dasd_dev.split('\n'): self.add_cmd_output("dasdview -x -i -j -l -f %s" % (x,)) self.add_cmd_output("fdasd -p %s" % (x,)) sosreport/sos/plugins/xfs.py0000644000175000017500000000306312254061770014715 0ustar zefzef### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin import os import re from six.moves import zip class Xfs(Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin): """information on the XFS filesystem """ plugin_name = 'xfs' option_list = [("logprint", 'gathers the log information', 'slow', False)] def setup(self): mounts = '/proc/mounts' ext_fs_regex = r"^(/dev/.+).+xfs\s+" for dev in zip(self.do_regex_find_all(ext_fs_regex, mounts)): for e in dev: parts = e.split(' ') self.add_cmd_output("xfs_info %s" % (parts[1])) if self.get_option('logprint'): for dev in zip(self.do_regex_find_all(ext_fs_regex, mounts)): for e in dev: parts = e.split(' ') self.add_cmd_output("xfs_logprint -c %s" % (parts[0])) sosreport/sos/plugins/cluster.py0000644000175000017500000001070212254061770015574 0ustar zefzef### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. from sos.plugins import Plugin, RedHatPlugin import re from glob import glob class Cluster(Plugin, RedHatPlugin): """cluster suite and GFS related information """ plugin_name = 'cluster' option_list = [("gfslockdump", 'gather output of gfs lockdumps', 'slow', False), ('lockdump', 'gather dlm lockdumps', 'slow', False)] packages = [ "ricci", "corosync", "openais", "cman", "clusterlib", "fence-agents", "pacemaker" ] files = [ "/etc/cluster/cluster.conf" ] def setup(self): self.add_copy_spec("/etc/cluster.conf") self.add_copy_spec("/etc/cluster.xml") self.add_copy_spec("/etc/cluster") self.add_copy_spec("/etc/sysconfig/cluster") self.add_copy_spec("/etc/sysconfig/cman") self.add_copy_spec("/etc/fence_virt.conf") self.add_copy_spec("/var/lib/ricci") self.add_copy_spec("/var/lib/luci/data/luci.db") self.add_copy_spec("/var/lib/luci/etc") self.add_copy_spec("/var/log/cluster") self.add_copy_spec("/var/log/luci") self.add_copy_spec("/etc/fence_virt.conf") if self.get_option('gfslockdump'): self.do_gfslockdump() if self.get_option('lockdump'): self.do_lockdump() self.add_cmd_output("rg_test test " + "/etc/cluster/cluster.conf" ) self.add_cmd_output("fence_tool ls -n") self.add_cmd_output("gfs_control ls -n") self.add_cmd_output("dlm_tool log_plock") self.get_cmd_output_now("clustat") self.get_cmd_output_now("group_tool dump") self.add_cmd_output("cman_tool services") self.add_cmd_output("cman_tool nodes") self.add_cmd_output("cman_tool status") self.add_cmd_output("ccs_tool lsnode") self.add_cmd_output("ipvsadm -L") self.add_cmd_output("corosync-quorumtool -l") self.add_cmd_output("corosync-quorumtool -s") self.add_cmd_output("corosync-cpgtool") self.add_cmd_output("corosync-objctl") self.add_cmd_output("group_tool ls -g1") self.add_cmd_output("gfs_control ls -n") self.add_cmd_output("gfs_control dump") self.add_cmd_output("fence_tool dump") self.add_cmd_output("dlm_tool dump") self.add_cmd_output("dlm_tool ls -n") self.add_cmd_output("mkqdisk -L") crm_dest = os.path.join(self.cInfo['cmddir'], self.name(), 'crm_report') self.collectExtOutput("crm_report -S --dest %s" % crm_dest) def do_lockdump(self): status, output, time = self.call_ext_prog("dlm_tool ls") for lockspace in re.compile(r'^name\s+([^\s]+)$', re.MULTILINE).findall(output): self.add_cmd_output("dlm_tool lockdebug -svw '%s'" % lockspace, suggest_filename = "dlm_locks_%s" % lockspace) def do_gfslockdump(self): for mntpoint in self.do_regex_find_all(r'^\S+\s+([^\s]+)\s+gfs\s+.*$', "/proc/mounts"): self.add_cmd_output("gfs_tool lockdump %s" % mntpoint, suggest_filename = "gfs_lockdump_" + self.mangle_command(mntpoint)) def postproc(self): for cluster_conf in glob("/etc/cluster/cluster.conf*"): self.do_file_sub(cluster_conf, r"(\s*\ ### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin class Radius(Plugin): """radius related information """ plugin_name = "radius" packages = ('freeradius',) class RedHatRadius(Radius, RedHatPlugin): """radius related information on Red Hat distributions """ files = ('/etc/raddb',) def setup(self): super(RedHatRadius, self).setup() self.add_copy_specs(["/etc/raddb", "/etc/pam.d/radiusd", "/var/log/radius"]) def postproc(self): self.do_file_sub("/etc/raddb/sql.conf", r"(\s*password\s*=\s*)\S+", r"\1***") class DebianRadius(Radius, DebianPlugin, UbuntuPlugin): """radius related information on Debian distributions """ files = ('/etc/freeradius',) def setup(self): super(DebianRadius, self).setup() self.add_copy_specs(["/etc/freeradius", "/etc/pam.d/radiusd", "/etc/default/freeradius", "/var/log/freeradius"]) sosreport/sos/plugins/anacron.py0000644000175000017500000000177612271434006015542 0ustar zefzef ### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin import os class Anacron(Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin): """ capture scheduled jobs information """ plugin_name = 'anacron' packages = ('anacron',) def setup(self): self.add_copy_spec("/etc/anacrontab") sosreport/sos/plugins/corosync.py0000644000175000017500000000365612254061770015764 0ustar zefzef### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin class Corosync(Plugin): """ corosync information """ plugin_name = "corosync" packages = ('corosync',) def setup(self): self.add_copy_specs([ "/etc/corosync", "/var/lib/corosync/fdata", "/var/log/cluster/corosync.log"]) self.add_cmd_output("corosync-quorumtool -l") self.add_cmd_output("corosync-quorumtool -s") self.add_cmd_output("corosync-cpgtool") self.add_cmd_output("corosync-objctl -a") self.add_cmd_output("corosync-fplay") self.add_cmd_output("corosync-objctl -w runtime.blackbox.dump_state=$(date +\%s)") self.add_cmd_output("corosync-objctl -w runtime.blackbox.dump_flight_data=$(date +\%s)") self.call_ext_prog("killall -USR2 corosync") class RedHatCorosync(Corosync, RedHatPlugin): """ corosync information for RedHat based distribution """ def setup(self): super(RedHatCorosync, self).setup() class DebianCorosync(Corosync, DebianPlugin, UbuntuPlugin): """ corosync information for Debian and Ubuntu distributions """ def setup(self): super(DebianCorosync, self).setup() files = ('/usr/sbin/corosync',) sosreport/sos/plugins/openhpi.py0000644000175000017500000000220512254061770015554 0ustar zefzef### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. from sos.plugins import Plugin, RedHatPlugin import os class OpenHPI(Plugin, RedHatPlugin): """OpenHPI related information """ plugin_name = 'openhpi' def setup(self): self.add_copy_specs([ "/etc/openhpi/openhpi.conf", "/etc/openhpi/openhpiclient.conf" ]) def postproc(self): self.do_file_sub("/etc/openhpi/openhpi.conf", r'(\s*[Pp]ass.*\s*=\s*).*', r'\1********') sosreport/sos/plugins/usb.py0000644000175000017500000000213612254061770014706 0ustar zefzef### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. from sos.plugins import Plugin, RedHatPlugin, UbuntuPlugin, DebianPlugin from glob import glob import os class Usb(Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin): """USB device related information """ plugin_name = "usb" def setup(self): self.add_copy_spec("/sys/bus/usb") self.add_cmd_output("lsusb") self.add_cmd_output("lsusb -v") self.add_cmd_output("lsusb -t") sosreport/sos/plugins/hardware.py0000644000175000017500000000333412254061770015713 0ustar zefzef### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. from sos.plugins import Plugin, RedHatPlugin, UbuntuPlugin, DebianPlugin from glob import glob import os class Hardware(Plugin): """hardware related information """ plugin_name = "hardware" def setup(self): self.add_copy_specs([ "/proc/interrupts", "/proc/irq", "/proc/dma", "/proc/devices", "/proc/rtc", "/var/log/mcelog" ]) self.add_cmd_output("dmidecode", root_symlink = "dmidecode") class RedHatHardware(Hardware, RedHatPlugin): """hardware related information for Red Hat distribution """ def setup(self): super(RedHatHardware, self).setup() hwpaths = glob("/usr/share/rhn/up2date*client/hardware.py") if (len(hwpaths) == 0): return self.add_cmd_output("python " + hwpaths[0]) class DebianHardware(Hardware, DebianPlugin, UbuntuPlugin): """hardware related information for Debian distribution """ def setup(self): super(DebianHardware, self).setup() sosreport/sos/plugins/mrggrid.py0000644000175000017500000000171512254061770015552 0ustar zefzef### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. from sos.plugins import Plugin, RedHatPlugin class MrgGrid(Plugin, RedHatPlugin): """MRG GRID related information """ plugin_name = 'mrggrid' def setup(self): self.add_copy_spec("/etc/condor/condor_config") self.add_copy_spec("condor_status") sosreport/sos/plugins/logrotate.py0000644000175000017500000000224512254061770016116 0ustar zefzef### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin class LogRotate(Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin): """logrotate configuration files and debug info """ plugin_name = 'logrotate' def setup(self): self.add_cmd_output("logrotate --debug /etc/logrotate.conf", suggest_filename = "logrotate_debug") self.add_copy_specs([ "/etc/logrotate*", "/var/lib/logrotate.status"]) sosreport/sos/plugins/udev.py0000644000175000017500000000204612254061770015060 0ustar zefzef### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin class Udev(Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin): """Udev related information """ plugin_name = 'udev' def setup(self): self.add_copy_specs([ "/etc/udev/udev.conf", "/lib/udev/rules.d", "/etc/udev/rules.d/*" ]) sosreport/sos/plugins/katello.py0000644000175000017500000000230012254061770015541 0ustar zefzef## Copyright (C) 2013 Red Hat, Inc., Lukas Zapletal ## This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. import os from sos.plugins import Plugin, RedHatPlugin class Katello(Plugin, RedHatPlugin): """Katello project related information """ plugin_name = 'katello' packages = ('katello', 'katello-common', 'katello-headpin') def setup(self): katello_debug_path = os.path.join( self.get_cmd_path(),"katello-debug") self.add_cmd_output("%s --notar -d %s" % ("katello-debug", katello_debug_path)) sosreport/sos/plugins/xen.py0000644000175000017500000000752412254061770014715 0ustar zefzef### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. from sos.plugins import Plugin, RedHatPlugin import os import re from stat import * class Xen(Plugin, RedHatPlugin): """Xen related information """ plugin_name = 'xen' def determine_xen_host(self): if os.access("/proc/acpi/dsdt", os.R_OK): (status, output, rtime) = self.call_ext_prog("grep -qi xen /proc/acpi/dsdt") if status == 0: return "hvm" if os.access("/proc/xen/capabilities", os.R_OK): (status, output, rtime) = self.call_ext_prog("grep -q control_d /proc/xen/capabilities") if status == 0: return "dom0" else: return "domU" return "baremetal" def check_enabled(self): return (self.determine_xen_host() == "baremetal") def is_running_xenstored(self): xs_pid = os.popen("pidof xenstored").read() xs_pidnum = re.split('\n$',xs_pid)[0] return xs_pidnum.isdigit() def dom_collect_proc(self): self.add_copy_specs([ "/proc/xen/balloon", "/proc/xen/capabilities", "/proc/xen/xsd_kva", "/proc/xen/xsd_port"]) # determine if CPU has PAE support self.add_cmd_output("grep pae /proc/cpuinfo") # determine if CPU has Intel-VT or AMD-V support self.add_cmd_output("egrep -e 'vmx|svm' /proc/cpuinfo") def setup(self): host_type = self.determine_xen_host() if host_type == "domU": # we should collect /proc/xen and /sys/hypervisor self.dom_collect_proc() # determine if hardware virtualization support is enabled # in BIOS: /sys/hypervisor/properties/capabilities self.add_copy_spec("/sys/hypervisor") elif host_type == "hvm": # what do we collect here??? pass elif host_type == "dom0": # default of dom0, collect lots of system information self.add_copy_specs([ "/var/log/xen", "/etc/xen", "/sys/hypervisor/version", "/sys/hypervisor/compilation", "/sys/hypervisor/properties", "/sys/hypervisor/type"]) self.add_cmd_output("xm dmesg") self.add_cmd_output("xm info") self.add_cmd_output("xm list") self.add_cmd_output("xm list --long") self.add_cmd_output("brctl show") self.dom_collect_proc() if self.is_running_xenstored(): self.add_copy_spec("/sys/hypervisor/uuid") self.add_cmd_output("xenstore-ls") else: # we need tdb instead of xenstore-ls if cannot get it. self.add_copy_spec("/var/lib/xenstored/tdb") # FIXME: we *might* want to collect things in /sys/bus/xen*, # /sys/class/xen*, /sys/devices/xen*, /sys/modules/blk*, # /sys/modules/net*, but I've never heard of them actually being # useful, so I'll leave it out for now else: # for bare-metal, we don't have to do anything special return #USEFUL self.add_custom_text("Xen hostType: "+host_type) sosreport/sos/plugins/system.py0000644000175000017500000000221212254061770015434 0ustar zefzef### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin class System(Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin): """core system related information """ plugin_name = "system" def setup(self): self.add_copy_spec("/proc/sys") self.add_forbidden_path( "/proc/sys/net/ipv6/neigh/*/retrans_time") self.add_forbidden_path( "/proc/sys/net/ipv6/neigh/*/base_reachable_time") sosreport/sos/plugins/dovecot.py0000644000175000017500000000271412254061770015562 0ustar zefzef### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin import os class Dovecot(Plugin): """dovecot server related information """ plugin_name = "dovecot" def setup(self): self.add_copy_spec("/etc/dovecot*") self.add_cmd_output("dovecot -n") class RedHatDovecot(Dovecot, RedHatPlugin): """dovecot server related information for RedHat based distribution """ def setup(self): super(RedHatDovecot, self).setup() packages = ('dovecot', ) files = ('/etc/dovecot.conf',) class DebianDovecot(Dovecot, DebianPlugin, UbuntuPlugin): """dovecot server related information for Debian based distribution """ def setup(self): super(DebianDovecot, self).setup() files = ('/etc/dovecot/README',) sosreport/sos/plugins/multipath.py0000644000175000017500000000217712254061770016131 0ustar zefzef### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. import os from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin class Multipath(Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin): """device-mapper multipath information """ plugin_name = 'multipath' def setup(self): self.add_copy_specs([ "/etc/multipath/", "/etc/multipath.conf" ]) self.add_cmd_output("multipath -l") self.add_cmd_output("multipath -v4 -ll") sosreport/sos/plugins/openstack_nova.py0000644000175000017500000001265312254061770017134 0ustar zefzef## Copyright (C) 2009 Red Hat, Inc., Joey Boggs ## Copyright (C) 2012 Rackspace US, Inc., Justin Shepherd ## Copyright (C) 2013 Red Hat, Inc., Jeremy Agee ### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin class OpenStackNova(Plugin): """openstack nova related information """ plugin_name = "openstack-nova" option_list = [("log", "gathers openstack nova logs", "slow", True), ("cmds", "gathers openstack nova commands", "slow", False)] def setup(self): if self.option_enabled("cmds"): self.add_cmd_output( "nova-manage config list 2>/dev/null | sort", suggest_filename="nova_config_list") self.add_cmd_output( "nova-manage service list 2>/dev/null", suggest_filename="nova_service_list") self.add_cmd_output( "nova-manage db version 2>/dev/null", suggest_filename="nova_db_version") self.add_cmd_output( "nova-manage fixed list 2>/dev/null", suggest_filename="nova_fixed_ip_list") self.add_cmd_output( "nova-manage floating list 2>/dev/null", suggest_filename="nova_floating_ip_list") self.add_cmd_output( "nova-manage flavor list 2>/dev/null", suggest_filename="nova_flavor_list") self.add_cmd_output( "nova-manage network list 2>/dev/null", suggest_filename="nova_network_list") self.add_cmd_output( "nova-manage vm list 2>/dev/null", suggest_filename="nova_vm_list") if self.option_enabled("log"): self.add_copy_spec("/var/log/nova/") self.add_copy_spec("/etc/nova/") def postproc(self): protect_keys = [ "ldap_dns_password", "neutron_admin_password", "rabbit_password", "qpid_password", "powervm_mgr_passwd", "virtual_power_host_pass", "xenapi_connection_password", "password", "host_password", "vnc_password", "connection", "sql_connection", "admin_password" ] regexp = r"((?m)^\s*#*(%s)\s*=\s*)(.*)" % "|".join(protect_keys) for conf_file in ["/etc/nova/nova.conf", "/etc/nova/api-paste.ini"]: self.do_file_sub(conf_file, regexp, r"\1*********") class DebianOpenStackNova(OpenStackNova, DebianPlugin, UbuntuPlugin): """OpenStack nova related information for Debian based distributions """ nova = False packages = ('nova-api-ec2', 'nova-api-metadata', 'nova-api-os-compute', 'nova-api-os-volume', 'nova-common', 'nova-compute', 'nova-compute-kvm', 'nova-compute-lxc', 'nova-compute-qemu', 'nova-compute-uml', 'nova-compute-xcp', 'nova-compute-xen', 'nova-xcp-plugins', 'nova-consoleauth', 'nova-network', 'nova-scheduler', 'nova-volume', 'novnc', 'python-nova', 'python-novaclient', 'python-novnc') def check_enabled(self): self.nova = self.is_installed("nova-common") return self.nova def setup(self): super(DebianOpenStackNova, self).setup() self.add_copy_specs(["/etc/sudoers.d/nova_sudoers"]) class RedHatOpenStackNova(OpenStackNova, RedHatPlugin): """OpenStack nova related information for Red Hat distributions """ nova = False packages = ('openstack-nova-common', 'openstack-nova-network', 'openstack-nova-conductor', 'openstack-nova-conductor', 'openstack-nova-scheduler', 'openstack-nova-console', 'openstack-nova-novncproxy', 'openstack-nova-compute', 'openstack-nova-api', 'openstack-nova-cert', 'openstack-nova-cells', 'openstack-nova-objectstore', 'python-nova', 'python-novaclient', 'novnc') def check_enabled(self): self.nova = self.is_installed("openstack-nova-common") return self.nova def setup(self): super(RedHatOpenStackNova, self).setup() self.add_copy_specs([ "/etc/logrotate.d/openstack-nova", "/etc/polkit-1/localauthority/50-local.d/50-nova.pkla", "/etc/sudoers.d/nova", "/etc/security/limits.d/91-nova.conf", "/etc/sysconfig/openstack-nova-novncproxy"]) sosreport/sos/plugins/networking.py0000644000175000017500000001365312271436217016313 0ustar zefzef### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin import os import re class Networking(Plugin): """network related information """ plugin_name = "networking" trace_host = "www.example.com" option_list = [("traceroute", "collects a traceroute to %s" % trace_host, "slow", False)] def setup(self): super(Networking, self).setup() def get_bridge_name(self,brctl_out): """Return a list for which items are bridge name according to the output of brctl show stored in brctl_file. """ out=[] for line in brctl_out[1].splitlines(): if line.startswith("bridge name") \ or line.isspace() \ or line[:1].isspace(): continue br_name, br_rest = line.split(None, 1) out.append(br_name) return out def get_eth_interfaces(self,ip_link_out): """Return a dictionary for which keys are ethernet interface names taken from the output of "ip -o link". """ out={} for line in ip_link_out[1].splitlines(): match=re.match('.*link/ether', line) if match: iface=match.string.split(':')[1].lstrip() out[iface]=True return out def collect_iptable(self,tablename): """ When running the iptables command, it unfortunately auto-loads the modules before trying to get output. Some people explicitly don't want this, so check if the modules are loaded before running the command. If they aren't loaded, there can't possibly be any relevant rules in that table """ (status, output, time) = self.call_ext_prog("lsmod | grep -q "+tablename) if status == 0: cmd = "iptables -t "+tablename+" -nvL" self.add_cmd_output(cmd) def setup(self): self.add_copy_specs([ "/proc/net/", "/etc/nsswitch.conf", "/etc/yp.conf", "/etc/inetd.conf", "/etc/xinetd.conf", "/etc/xinetd.d", "/etc/host*", "/etc/resolv.conf" "/etc/network*", "/etc/NetworkManager/NetworkManager.conf", "/etc/NetworkManager/system-connections", "/etc/dnsmasq*"]) self.add_forbidden_path("/proc/net/rpc/use-gss-proxy") self.add_forbidden_path("/proc/net/rpc/*/channel") self.add_forbidden_path("/proc/net/rpc/*/flush") ip_addr_file=self.get_cmd_output_now("ip -o addr", root_symlink = "ip_addr") self.add_cmd_output("route -n", root_symlink = "route") self.collect_iptable("filter") self.collect_iptable("nat") self.collect_iptable("mangle") self.add_cmd_output("netstat -s") self.add_cmd_output("netstat -agn") self.add_cmd_output("netstat -neopa", root_symlink = "netstat") self.add_cmd_output("ip route show table all") self.add_cmd_output("ip -6 route show table all") self.add_cmd_output("ip link") self.add_cmd_output("ip address") self.add_cmd_output("ifenslave -a") self.add_cmd_output("ip mroute show") self.add_cmd_output("ip maddr show") self.add_cmd_output("ip neigh show") ip_link_out=self.call_ext_prog("ip -o link") if ip_link_out: for eth in self.get_eth_interfaces(ip_link_out): self.add_cmd_output("ethtool "+eth) self.add_cmd_output("ethtool -i "+eth) self.add_cmd_output("ethtool -k "+eth) self.add_cmd_output("ethtool -S "+eth) self.add_cmd_output("ethtool -a "+eth) self.add_cmd_output("ethtool -c "+eth) self.add_cmd_output("ethtool -g "+eth) brctl_file=self.add_cmd_output("brctl show") brctl_out=self.call_ext_prog("brctl show") if brctl_out: for br_name in self.get_bridge_name(brctl_out): self.add_cmd_output("brctl showstp "+br_name) if self.get_option("traceroute"): self.add_cmd_output("/bin/traceroute -n %s" % self.trace_host) return def postproc(self): for root, dirs, files in os.walk("/etc/NetworkManager/system-connections"): for net_conf in files: self.do_file_sub("/etc/NetworkManager/system-connections/"+net_conf, r"psk=(.*)",r"psk=***") class RedHatNetworking(Networking, RedHatPlugin): """network related information for RedHat based distribution """ trace_host = "rhn.redhat.com" def setup(self): super(RedHatNetworking, self).setup() class UbuntuNetworking(Networking, UbuntuPlugin): """network related information for Ubuntu based distribution """ trace_host = "archive.ubuntu.com" def setup(self): super(UbuntuNetworking, self).setup() self.add_copy_specs([ "/etc/resolvconf", "/etc/network/interfaces", "/etc/ufw", "/var/log/ufw.Log", "/etc/resolv.conf"]) self.add_cmd_output("/usr/sbin/ufw status") self.add_cmd_output("/usr/sbin/ufw app list") if self.get_option("traceroute"): self.add_cmd_output("/usr/sbin/traceroute -n %s" % self.trace_host) sosreport/sos/plugins/autofs.py0000644000175000017500000000465712254061770015430 0ustar zefzef## Copyright (C) 2007 Red Hat, Inc., Adam Stokes ### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. from sos.plugins import Plugin, RedHatPlugin, UbuntuPlugin, DebianPlugin class Autofs(Plugin): """autofs server-related information """ plugin_name = "autofs" files = ('/etc/sysconfig/autofs', '/etc/default/autofs') packages = ('autofs',) def checkdebug(self): """ testing if autofs debug has been enabled anywhere """ # Global debugging opt = self.file_grep(r"^(DEFAULT_LOGGING|DAEMONOPTIONS)=(.*)", *self.files) for opt1 in opt: for opt2 in opt1.split(" "): if opt2 in ("--debug", "debug"): return True return False def getdaemondebug(self): """ capture daemon debug output """ debugout = self.file_grep(r"^(daemon.*)\s+(\/var\/log\/.*)", *self.files) for i in debugout: return i[1] def setup(self): self.add_copy_spec("/etc/auto*") self.add_cmd_output("/etc/init.d/autofs status") self.add_cmd_output("ps auxwww | grep automount") self.add_cmd_output("egrep -e 'automount|pid.*nfs' /proc/mounts") self.add_cmd_output("mount | egrep -e 'automount|pid.*nfs'") if self.checkdebug(): self.add_copy_spec(self.getdaemondebug()) class RedHatAutofs(Autofs, RedHatPlugin): """autofs server-related on RedHat based distributions""" def setup(self): super(RedHatAutofs, self).setup() self.add_cmd_output("rpm -qV autofs") class DebianAutofs(Autofs, DebianPlugin, UbuntuPlugin): """autofs server-related on Debian based distributions""" def setup(self): super(DebianAutofs, self).setup() self.add_cmd_output("dpkg-query -s autofs") sosreport/sos/plugins/sanlock.py0000644000175000017500000000246212254061770015551 0ustar zefzef### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. from sos.plugins import Plugin, RedHatPlugin class SANLock(Plugin): """sanlock-related information """ plugin_name = "sanlock" packages = [ "sanlock" ] def setup(self): self.add_copy_spec("/var/log/sanlock.log*") self.add_cmd_output("sanlock client status -D") self.add_cmd_output("sanlock client host_status -D") self.add_cmd_output("sanlock client log_dump") return class RedHatSANLock(SANLock, RedHatPlugin): files = [ "/etc/sysconfig/sanlock" ] def setup(self): super(RedHatSANLock, self).setup() self.add_copy_spec("/etc/sysconfig/sanlock") sosreport/sos/plugins/snmp.py0000644000175000017500000000266012254061770015074 0ustar zefzef## Copyright (C) 2007 Sadique Puthen ### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin from os.path import exists class Snmp(Plugin): """snmp related information """ plugin_name = "snmp" files = ('/etc/snmp/snmpd.conf',) def setup(self): self.add_copy_spec("/etc/snmp") class RedHatSnmp(Snmp, RedHatPlugin): """snmp related information for RedHat based distributions """ packages = ('net-snmp',) def setup(self): super(RedHatSnmp, self).setup() class DebianSnmp(Snmp, DebianPlugin, UbuntuPlugin): """snmp related information for Debian based distributions """ packages = ('snmp',) def setup(self): super(DebianSnmp, self).setup() sosreport/sos/plugins/veritas.py0000644000175000017500000000322112254061770015566 0ustar zefzef### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. from sos.plugins import Plugin, RedHatPlugin import os class Veritas(Plugin, RedHatPlugin): """Veritas related information """ plugin_name = 'veritas' # Information about VRTSexplorer obtained from # http://seer.entsupport.symantec.com/docs/243150.htm option_list = [("script", "Define VRTSexplorer script path", "", "/opt/VRTSspt/VRTSexplorer")] def check_enabled(self): return os.path.isfile(self.get_option("script")) def setup(self): """ interface with vrtsexplorer to capture veritas related data """ stat, out, runtime = self.call_ext_prog(self.get_option("script")) try: for line in out.readlines(): line = line.strip() tarfile = self.do_regex_find_all(r"ftp (.*tar.gz)", line) if len(tarfile) == 1: self.add_copy_spec(tarfile[0]) except AttributeError as e: self.add_alert(e) sosreport/sos/plugins/samba.py0000644000175000017500000000225712254061770015204 0ustar zefzef### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin class Samba(Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin): """Samba related information """ packages = ('samba-common',) plugin_name = "samba" def setup(self): self.add_copy_specs([ "/etc/samba", "/var/log/samba/*",]) self.add_cmd_output("wbinfo --domain='.' -g") self.add_cmd_output("wbinfo --domain='.' -u") self.add_cmd_output("testparm -s -v") sosreport/sos/plugins/sunrpc.py0000644000175000017500000000321312254061770015424 0ustar zefzef## Copyright (C) 2012 Red Hat, Inc., Bryn M. Reeves ### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. from sos.plugins import Plugin, RedHatPlugin class SunRPC(Plugin): """Sun RPC related information """ plugin_name = "sunrpc" service = None def check_enabled(self): if self.policy().default_runlevel() in \ self.policy().runlevel_by_service(self.service): return True return False def setup(self): self.add_cmd_output("rpcinfo -p localhost") return class RedHatSunRPC(SunRPC, RedHatPlugin): """Sun RPC related information for Red Hat systems """ service = 'rpcbind' # FIXME: depends on addition of runlevel_by_service (or similar) # in Debian/Ubuntu policy classes #class DebianSunRPC(SunRPC, DebianPlugin, UbuntuPlugin): # """Sun RPC related information for Red Hat systems # """ # # service = 'rpcbind-boot' # # def setup(self): # self.add_cmd_output("rpcinfo -p localhost") # return sosreport/sos/plugins/quagga.py0000644000175000017500000000202112254061770015353 0ustar zefzef## Copyright (C) 2007 Ranjith Rajaram ### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. from sos.plugins import Plugin, RedHatPlugin class Quagga(Plugin, RedHatPlugin): """quagga related information """ plugin_name = 'quagga' files = ('/etc/quagga/zebra.conf',) packages = ('quagga',) def setup(self): self.add_copy_spec("/etc/quagga/") sosreport/sos/plugins/ldap.py0000644000175000017500000000645112254061770015041 0ustar zefzef## This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin import os class Ldap(Plugin): """LDAP related information """ plugin_name = "ldap" ldap_conf = "/etc/openldap/ldap.conf" def get_ldap_opts(self): # capture /etc/openldap/ldap.conf options in dict # FIXME: possibly not hardcode these options in? ldapopts=["URI","BASE","TLS_CACERTDIR"] results={} tmplist=[] for i in ldapopts: t=self.do_regex_find_all(r"^(%s)\s+(.*)" % i,self.ldap_conf) for x in t: results[x[0]]=x[1].rstrip("\n") return results def setup(self): super(Ldap, self).setup() self.add_copy_spec("/etc/ldap.conf") def postproc(self): self.do_file_sub("/etc/ldap.conf", r"(\s*bindpw\s*)\S+", r"\1******") class RedHatLdap(Ldap, RedHatPlugin): """LDAP related information for RedHat based distribution """ packages = ('openldap', 'nss-pam-ldapd') files = ('/etc/ldap.conf', '/etc/pam_ldap.conf') def setup(self): super(RedHatLdap, self).setup() self.add_copy_specs([ "/etc/openldap", "/etc/nslcd.conf", "/etc/pam_ldap.conf" ]) def postproc(self): self.do_file_sub("/etc/nslcd.conf", r"(\s*bindpw\s*)\S+", r"\1********") self.do_file_sub("/etc/pam_ldap.conf", r"(\s*bindpw\s*)\S+", r"\1********") class DebianLdap(Ldap, DebianPlugin, UbuntuPlugin): """LDAP related information for Debian based distribution """ ldap_conf = "/etc/ldap/ldap.conf" packages = ('slapd', 'ldap-utils') def setup(self): super(DebianLdap, self).setup() ldap_search = "ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// " self.add_copy_specs([ "/etc/ldap/ldap.conf", "/etc/slapd.conf", "/etc/ldap/slapd.d" ]) self.add_cmd_output("ldapsearch -x -b '' -s base 'objectclass=*'") self.add_cmd_output(ldap_search + "-b cn=config '(!(objectClass=olcSchemaConfig))'", suggest_filename="configuration_minus_schemas") self.add_cmd_output(ldap_search + "-b cn=schema,cn=config dn", suggest_filename="loaded_schemas") self.add_cmd_output(ldap_search + "-b cn=config '(olcAccess=*)' olcAccess olcSuffix", suggest_filename="access_control_lists") def postproc(self): self.do_cmd_output_sub( "ldapsearch -Q -LLL -Y EXTERNAL -H ldapi:/// -b cn=config '(!(objectClass=olcSchemaConfig))'", r"(olcRootPW\: \s*)\S+", r"\1********") sosreport/sos/plugins/processor.py0000644000175000017500000000320512254061770016132 0ustar zefzef### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. from sos.plugins import Plugin, RedHatPlugin, UbuntuPlugin, DebianPlugin from glob import glob import os class Processor(Plugin, RedHatPlugin, UbuntuPlugin, DebianPlugin): """CPU information """ plugin_name = 'processor' def setup(self): self.add_copy_specs([ "/proc/cpuinfo", "/sys/class/cpuid", "/sys/devices/system/cpu" ]) if self.policy().pkg_by_name("cpufreq-utils"): self.add_cmd_output("cpufreq-info") self.add_cmd_output("cpupower info") self.add_cmd_output("cpupower frequency-info") if self.policy().pkg_by_name("kernel-tools"): self.add_cmd_output("cpupower info") self.add_cmd_output("cpupower frequency-info") self.add_cmd_output("cpupower idle-info") if self.policy().get_arch().endswith("386"): self.add_cmd_output("x86info -a") self.add_cmd_output("lscpu") sosreport/sos/plugins/openssl.py0000644000175000017500000000350512254061770015601 0ustar zefzef## Copyright (C) 2007 Sadique Puthen ### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin class OpenSSL(Plugin): """openssl related information """ plugin_name = "openssl" packages = ('openssl',) def postproc(self): protect_keys = ["input_password", "output_password", "challengePassword"] regexp = r"(?m)^(\s*#?\s*(%s).*=)(.*)" % "|".join(protect_keys) self.do_file_sub('/etc/ssl/openssl.cnf', regexp, r"\1 ******") class RedHatOpenSSL(OpenSSL, RedHatPlugin): """openssl related information for Red Hat distributions """ files = ('/etc/pki/tls/openssl.cnf',) def setup(self): super(RedHatOpenSSL, self).setup() self.add_copy_spec("/etc/pki/tls/openssl.cnf") class DebianOpenSSL(OpenSSL, DebianPlugin, UbuntuPlugin): """openssl related information for Debian distributions """ files = ('/etc/ssl/openssl.cnf',) def setup(self): super(DebianOpenSSL, self).setup() self.add_copy_spec("/etc/ssl/openssl.cnf") sosreport/sos/plugins/openstack_neutron.py0000644000175000017500000000630512254061770017660 0ustar zefzef## Copyright (C) 2009 Red Hat, Inc., Joey Boggs ## Copyright (C) 2012 Rackspace US, Inc., Justin Shepherd ## Copyright (C) 2013 Red Hat, Inc., Jeremy Agee ### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. import os from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin class OpenStackNeutron(Plugin): """openstack neutron related information """ plugin_name = "openstack-neutron" option_list = [("log", "gathers openstack neutron logs", "slow", True)] def setup(self): self.add_copy_specs(["/etc/neutron/"]) if self.option_enabled("log"): self.add_copy_specs(["/var/log/neutron/"]) class DebianOpenStackNeutron(OpenStackNeutron, DebianPlugin, UbuntuPlugin): """OpenStack Neutron related information for Debian based distributions """ neutron = False packages = ('neutron-common', 'neutron-plugin-cisco', 'neutron-plugin-linuxbridge-agent', 'neutron-plugin-nicira', 'neutron-plugin-openvswitch', 'neutron-plugin-openvswitch-agent', 'neutron-plugin-ryu', 'neutron-plugin-ryu-agent', 'neutron-server', 'python-neutron', 'python-neutronclient') def check_enabled(self): self.neutron = self.is_installed("neutron-common") return self.neutron def setup(self): super(DebianOpenStackNeutron, self).setup() self.add_copy_specs(["/etc/sudoers.d/neutron_sudoers"]) class RedHatOpenStackNeutron(OpenStackNeutron, RedHatPlugin): """OpenStack Neutron related information for Red Hat distributions """ neutron = False packages = ('openstack-neutron-bigswitch', 'openstack-neutron-brocade', 'openstack-neutron-cisco', 'openstack-neutron-hyperv', 'openstack-neutron-linuxbridge', 'openstack-neutron-metaplugin', 'openstack-neutron-midonet', 'openstack-neutron-nec', 'openstack-neutron-nicira', 'openstack-neutron-openvswitch', 'openstack-neutron-plumgrid', 'openstack-neutron-ryu', 'python-neutron', 'python-neutronclient', 'openstack-neutron') def check_enabled(self): self.neutron = self.is_installed("openstack-neutron") return self.neutron def setup(self): super(RedHatOpenStackNeutron, self).setup() sosreport/sos/plugins/lvm2.py0000644000175000017500000000407712254061770015003 0ustar zefzef### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. import os from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin class Lvm2(Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin): """lvm2 related information """ plugin_name = 'lvm2' option_list = [("lvmdump", 'collect an lvmdump tarball', 'fast', False), ("lvmdump-am", 'attempt to collect an lvmdump with advanced ' \ + 'options and raw metadata collection', 'slow', False)] def do_lvmdump(self, metadata=False): """Collects an lvmdump in standard format with optional metadata archives for each physical volume present. """ lvmdump_cmd = "lvmdump %s -d '%s'" lvmdump_opts = "" if metadata: lvmdump_opts = "-a -m" cmd = lvmdump_cmd % (lvmdump_opts, os.path.join(self.get_cmd_path(), "lvmdump")) self.add_cmd_output(cmd) def setup(self): self.add_cmd_output("vgdisplay -vv", root_symlink = "vgdisplay") self.add_cmd_output("vgscan -vvv") self.add_cmd_output("pvscan -v") self.add_cmd_output("pvs -a -v") self.add_cmd_output("vgs -v") self.add_cmd_output("lvs -a -o +devices") self.add_copy_spec("/etc/lvm") if self.get_option('lvmdump'): self.do_lvmdump() elif self.get_option('lvmdump-am'): self.do_lvmdump(metadata=True) sosreport/sos/plugins/ceph.py0000644000175000017500000000321412254061770015032 0ustar zefzef### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. from sos.plugins import Plugin, RedHatPlugin, UbuntuPlugin class Ceph(Plugin, RedHatPlugin, UbuntuPlugin): """information on CEPH """ plugin_name = 'ceph' option_list = [("log", "gathers all ceph logs", "slow", False)] packages = ('ceph', 'ceph-mds', 'ceph-common', 'libcephfs1', 'ceph-fs-common') def setup(self): self.add_copy_specs(["/etc/ceph/", "/var/log/ceph/"]) self.add_cmd_output("ceph status") self.add_cmd_output("ceph health") self.add_cmd_output("ceph osd tree") self.add_cmd_output("ceph osd stat") self.add_cmd_output("ceph osd dump") self.add_cmd_output("ceph mon stat") self.add_cmd_output("ceph mon dump") self.add_forbidden_path("/etc/ceph/*keyring") self.add_forbidden_path("/var/lib/ceph/*/*keyring") self.add_forbidden_path("/var/lib/ceph/*keyring") sosreport/sos/plugins/kdump.py0000644000175000017500000000310512254061770015232 0ustar zefzef### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin class KDump(Plugin): """Kdump related information """ plugin_name = "kdump" def setup(self): self.add_copy_specs([ "/proc/cmdline" ]) class RedHatKDump(KDump, RedHatPlugin): """Kdump related information for Red Hat distributions """ files = ('/etc/kdump.conf',) packages = ('kexec-tools',) def setup(self): self.add_copy_specs([ "/etc/kdump.conf", "/etc/udev/rules.d/*kexec.rules", "/var/crash/*/vmcore-dmesg.txt" ]) class DebianKDump(KDump, DebianPlugin, UbuntuPlugin): """Kdump related information for Debian distributions """ files = ('/etc/default/kdump-tools',) packages = ('kdump-tools',) def setup(self): self.add_copy_specs([ "/etc/default/kdump-tools" ]) sosreport/sos/plugins/tftpserver.py0000644000175000017500000000204312254061770016316 0ustar zefzef## Copyright (C) 2007 Shijoe George ### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. from sos.plugins import Plugin, RedHatPlugin class TftpServer(Plugin, RedHatPlugin): """tftpserver related information """ plugin_name = 'tftpserver' files = ('/etc/xinetd.d/tftp',) packages = ('tftp-server',) def setup(self): self.add_cmd_output("ls -lanR /tftpboot") sosreport/sos/plugins/sssd.py0000644000175000017500000000271012254061770015067 0ustar zefzef## Copyright (C) 2007 Red Hat, Inc., Pierre Carrier ### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin class Sssd(Plugin): """sssd-related Diagnostic Information """ plugin_name = "sssd" packages = ('sssd',) def setup(self): self.add_copy_specs(["/etc/sssd", "/var/log/sssd/*"]) class RedHatSssd(Sssd, RedHatPlugin): """sssd-related Diagnostic Information on Red Hat based distributions """ def setup(self): super(RedHatSssd, self).setup() class DebianSssd(Sssd, DebianPlugin, UbuntuPlugin): """sssd-related Diagnostic Information on Debian based distributions """ def setup(self): super(DebianSssd, self).setup() self.add_copy_specs(["/etc/default/sssd"]) sosreport/sos/plugins/juju.py0000644000175000017500000000210612254061770015067 0ustar zefzef# Copyright (C) 2013 Adam Stokes # # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. from sos.plugins import Plugin, UbuntuPlugin class Juju(Plugin, UbuntuPlugin): """ Juju Plugin """ plugin_name = 'juju' def setup(self): self.add_copy_specs(["/var/log/juju", "/var/lib/juju"]) self.add_cmd_output("juju -v status") self.add_cmd_output("juju -v get-constraints") sosreport/sos/plugins/openstack_ceilometer.py0000644000175000017500000000424112254061770020313 0ustar zefzef## Copyright (C) 2013 Red Hat, Inc., Eoghan Lynn ## Copyright (C) 2012 Rackspace US, Inc., Justin Shepherd ## Copyright (C) 2009 Red Hat, Inc., Joey Boggs ### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. from sos import plugins class OpenStackCeilometer(plugins.Plugin): """Openstack Ceilometer related information.""" plugin_name = "openstack-ceilometer" option_list = [("log", "gathers openstack-ceilometer logs", "slow", False)] def setup(self): # Ceilometer self.add_copy_spec("/etc/ceilometer/", "/var/log/ceilometer") class DebianOpenStackCeilometer(OpenStackCeilometer, plugins.DebianPlugin, plugins.UbuntuPlugin): """OpenStackCeilometer related information for Debian based distributions.""" packages = ('ceilometer-api', 'ceilometer-agent-central', 'ceilometer-agent-compute', 'ceilometer-collector', 'ceilometer-common', 'python-ceilometer', 'python-ceilometerclient') class RedHatOpenStackCeilometer(OpenStackCeilometer, plugins.RedHatPlugin): """OpenStackCeilometer related information for Red Hat distributions.""" packages = ('openstack-ceilometer', 'openstack-ceilometer-api', 'openstack-ceilometer-central', 'openstack-ceilometer-collector', 'openstack-ceilometer-common', 'openstack-ceilometer-compute', 'python-ceilometerclient') sosreport/sos/plugins/kvm.py0000644000175000017500000000330212254061770014706 0ustar zefzef## Copyright (C) 2009 Red Hat, Inc., Joey Boggs ### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin import os class Kvm(Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin): """KVM related information """ plugin_name = 'kvm' def check_enabled(self): return os.access("/sys/module/kvm", os.R_OK) def setup(self): if not os.path.ismount("/sys/kernel/debug"): self._debugfs_cleanup = True os.popen("mount -t debugfs debugfs /sys/kernel/debug") else: self._debugfs_cleanup = False self.add_copy_spec("/sys/module/kvm/srcversion") self.add_copy_spec("/sys/module/kvm_intel/srcversion") self.add_copy_spec("/sys/module/kvm_amd/srcversion") self.add_copy_spec("/sys/module/ksm/srcversion") self.add_cmd_output("kvm_stat --once") def postproc(self): if self._debugfs_cleanup and os.path.ismount("/sys/kernel/debug"): os.popen("umount /sys/kernel/debug") sosreport/sos/plugins/nscd.py0000644000175000017500000000265612254061770015053 0ustar zefzef## Copyright (C) 2007 Shijoe George ### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin class Nscd(Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin): """NSCD related information """ plugin_name = 'nscd' option_list = [("nscdlogsize", "max size (MiB) to collect per nscd log file", "", 50)] files = ('/etc/nscd.conf',) packages = ('nscd',) def setup(self): self.add_copy_spec("/etc/nscd.conf") opt = self.file_grep(r"^\s*logfile", "/etc/nscd.conf") if (len(opt) > 0): for o in opt: f = o.split() self.add_copy_spec_limit(f[1], sizelimit = self.option_enabled("nscdlogsize")) sosreport/sos/plugins/grub.py0000644000175000017500000000212312254061770015050 0ustar zefzef### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. from sos.plugins import Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin class Grub(Plugin, RedHatPlugin, DebianPlugin, UbuntuPlugin): """Grub information """ plugin_name = 'grub' packages = ('grub',) def setup(self): self.add_copy_specs([ "/boot/grub/grub.conf", "/boot/grub/device.map", "/etc/grub.conf", "/etc/grub.d" ]) sosreport/sos/reporting.py0000644000175000017500000000602212254061770014443 0ustar zefzef"""This provides a restricted tag language to define the sosreport index/report""" try: import json except ImportError: import simplejson as json # PYCOMPAT from six import iteritems class Node(object): def __str__(self): return json.dumps(self.data) def can_add(self, node): return False class Leaf(Node): """Marker class that can be added to a Section node""" pass class Report(Node): """The root element of a report. This is a container for sections.""" def __init__(self): self.data = {} def can_add(self, node): return isinstance(node, Section) def add(self, *nodes): for node in nodes: if self.can_add(node): self.data[node.name] = node.data class Section(Node): """A section is a container for leaf elements. Sections may be nested inside of Report objects only.""" def __init__(self, name): self.name = name self.data = {} def can_add(self, node): return isinstance(node, Leaf) def add(self, *nodes): for node in nodes: if self.can_add(node): self.data.setdefault(node.ADDS_TO, []).append(node.data) class Command(Leaf): ADDS_TO = "commands" def __init__(self, name, return_code, href): self.data = {"name": name, "return_code": return_code, "href": href} class CopiedFile(Leaf): ADDS_TO = "copied_files" def __init__(self, name, href): self.data = {"name": name, "href": href} class CreatedFile(Leaf): ADDS_TO = "created_files" def __init__(self, name): self.data = {"name": name} class Alert(Leaf): ADDS_TO = "alerts" def __init__(self, content): self.data = content class Note(Leaf): ADDS_TO = "notes" def __init__(self, content): self.data = content class PlainTextReport(object): """Will generate a plain text report from a top_level Report object""" LEAF = " * %(name)s" ALERT = " ! %s" NOTE = " * %s" DIVIDER = "=" * 72 subsections = ( (Command, LEAF, "- commands executed:"), (CopiedFile, LEAF, "- files copied:"), (CreatedFile, LEAF, "- files created:"), (Alert, ALERT, "- alerts:"), (Note, NOTE, "- notes:"), ) buf = [] def __init__(self, report_node): self.report_node = report_node def __str__(self): self.buf = buf = [] for section_name, section_contents in sorted(iteritems(self.report_node.data)): buf.append(section_name + "\n" + self.DIVIDER) for type_, format_, header in self.subsections: self.process_subsection(section_contents, type_.ADDS_TO, header, format_) return "\n".join(buf) def process_subsection(self, section, key, header, format_): if key in section: self.buf.append(header) for item in section.get(key): self.buf.append(format_ % item) sosreport/sos/Makefile0000644000175000017500000000105112254061770013515 0ustar zefzefPYTHON=python PACKAGE = $(shell basename `pwd`) PYVER := $(shell $(PYTHON) -c 'import sys; print "%.3s" %(sys.version)') PYSYSDIR := $(shell $(PYTHON) -c 'import sys; print sys.prefix') PYLIBDIR = $(PYSYSDIR)/lib/python$(PYVER) PKGDIR = $(PYLIBDIR)/site-packages/$(PACKAGE) all: echo "nada" clean: rm -f *.pyc *.pyo *~ install: mkdir -p $(DESTDIR)/$(PKGDIR) for p in $(wildcard *.py) ; do \ install -m 644 $$p $(DESTDIR)/$(PKGDIR)/$$p; \ done $(PYTHON) -c "import compileall; compileall.compile_dir('$(DESTDIR)/$(PKGDIR)', 1, '$(PYDIR)', 1)" sosreport/sos/utilities.py0000644000175000017500000002667212271434006014455 0ustar zefzef### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. # pylint: disable-msg = R0902 # pylint: disable-msg = R0904 # pylint: disable-msg = W0702 # pylint: disable-msg = W0703 # pylint: disable-msg = R0201 # pylint: disable-msg = W0611 # pylint: disable-msg = W0613 from __future__ import with_statement import os import re import inspect from stat import * #from itertools import * from subprocess import Popen, PIPE, STDOUT import logging import zipfile import tarfile import hashlib import logging import fnmatch from contextlib import closing # PYCOMPAT import six from six import StringIO import time def tail(filename, number_of_bytes): """Returns the last number_of_bytes of filename""" with open(filename, "rb") as f: if os.stat(filename).st_size > number_of_bytes: f.seek(-number_of_bytes, 2) return f.read() def fileobj(path_or_file, mode='r'): """Returns a file-like object that can be used as a context manager""" if isinstance(path_or_file, six.string_types): try: return open(path_or_file, mode) except: log = logging.getLogger('sos') log.debug("fileobj: %s could not be opened" % path_or_file) return closing(StringIO()) else: return closing(path_or_file) def checksum(file_, chunk_size=128, algorithm=None): """Returns the checksum of the supplied filename. The file is read in chunk_size blocks""" if not algorithm: algorithm = get_hash_name() digest = hashlib.new(algorithm) with fileobj(file_, 'rb') as fd: data = fd.read(chunk_size) while data: digest.update(six.b(data)) data = fd.read(chunk_size) return digest.hexdigest() def get_hash_name(): """Returns the algorithm used when computing a hash""" import sos.policies policy = sos.policies.load() try: name = policy.get_preferred_hash_algorithm() hashlib.new(name) return name except: return 'sha256' def convert_bytes(bytes_, K=1 << 10, M=1 << 20, G=1 << 30, T=1 << 40): """Converts a number of bytes to a shorter, more human friendly format""" fn = float(bytes_) if bytes_ >= T: return '%.1fT' % (fn / T) elif bytes_ >= G: return '%.1fG' % (fn / G) elif bytes_ >= M: return '%.1fM' % (fn / M) elif bytes_ >= K: return '%.1fK' % (fn / K) else: return '%d' % bytes_ def find(file_pattern, top_dir, max_depth=None, path_pattern=None): """generator function to find files recursively. Usage: for filename in find("*.properties", "/var/log/foobar"): print filename """ if max_depth: base_depth = os.path.dirname(top_dir).count(os.path.sep) max_depth += base_depth for path, dirlist, filelist in os.walk(top_dir): if max_depth and path.count(os.path.sep) >= max_depth: del dirlist[:] if path_pattern and not fnmatch.fnmatch(path, path_pattern): continue for name in fnmatch.filter(filelist, file_pattern): yield os.path.join(path, name) def grep(pattern, *files_or_paths): """Returns lines matched in fnames, where fnames can either be pathnames to files to grep through or open file objects to grep through line by line""" matches = [] for fop in files_or_paths: with fileobj(fop) as fo: matches.extend((line for line in fo if re.match(pattern, line))) return matches def is_executable(command): """Returns if a command matches an executable on the PATH""" paths = os.environ.get("PATH", "").split(os.path.pathsep) candidates = [command] + [os.path.join(p, command) for p in paths] return any(os.access(path, os.X_OK) for path in candidates) def sos_get_command_output(command, timeout=300): """Execute a command through the system shell. First checks to see if the requested command is executable. Returns (returncode, stdout, 0)""" # XXX: what is this doing this for? cmdfile = command.strip("(").split()[0] cmd_env = os.environ # ensure consistent locale for collected command output cmd_env['LC_ALL'] = 'C' if is_executable(cmdfile): # use /usr/bin/timeout to implement a timeout if timeout and is_executable("/usr/bin/timeout"): command = "/usr/bin/timeout %ds %s" % (timeout, command) p = Popen(command, shell=True, stdout=PIPE, stderr=STDOUT, bufsize=-1, env = cmd_env) stdout, stderr = p.communicate() return (p.returncode, stdout.decode('utf-8'), 0) else: return (127, "", 0) def import_module(module_fqname, superclasses=None): """Imports the module module_fqname and returns a list of defined classes from that module. If superclasses is defined then the classes returned will be subclasses of the specified superclass or superclasses. If superclasses is plural it must be a tuple of classes.""" module_name = module_fqname.rpartition(".")[-1] module = __import__(module_fqname, globals(), locals(), [module_name]) modules = [class_ for cname, class_ in inspect.getmembers(module, inspect.isclass) if class_.__module__ == module_fqname] if superclasses: modules = [m for m in modules if issubclass(m, superclasses)] return modules def shell_out(cmd): """Uses subprocess.Popen to make a system call and returns stdout. Does not handle exceptions.""" return sos_get_command_output(cmd)[1] class DirTree(object): """Builds an ascii representation of a directory structure""" def __init__(self, top_directory): self.directory_count = 0 self.file_count = 0 self.buffer = [] self.top_directory = top_directory self._build_tree() def buf(self, s): self.buffer.append(s) def printtree(self): print (six.u(self)) def as_string(self): return self.__str__() def __str__(self): return "\n".join(self.buffer) def _build_tree(self): self.buf(os.path.abspath(self.top_directory)) self.tree_i(self.top_directory, first=True) def _get_user(self, stats): try: import pwd return pwd.getpwuid(stats.st_uid)[0] except: return six.u(stats.st_uid) def _get_group(self, stats): try: import grp return grp.getgrgid(stats.st_gid)[0] except: return six.u(stats.st_uid) def _format(self, path): """Conditionally adds detail to paths""" stats = os.stat(path) details = { "filename": os.path.basename(path), "user": self._get_user(stats), "group": self._get_group(stats), "filesize": convert_bytes(stats.st_size), } return ("[%(user)s %(group)s %(filesize)s] " % details, "%(filename)s" % details) def tree_i(self, dir_, padding='', first=False, fmt="%-30s %s%s%s"): if not first: details, filename = self._format(os.path.abspath(dir_)) line = fmt % (details, padding[:-1], "+-- ", filename) self.buf(line) padding += ' ' count = 0 files = os.listdir(dir_) files.sort(key=str.lower) for f in files: count += 1 path = os.path.join(dir_, f) if f.startswith("."): pass elif os.path.isfile(path): self.file_count += 1 details, filename = self._format(path) line = fmt % (details, padding, "+-- ", filename) self.buf(line) elif os.path.islink(path): self.buf(padding + '+-- ' + f + ' -> ' + os.path.basename(os.path.realpath(path))) if os.path.isdir(path): self.directory_count += 1 else: self.file_count += 1 elif os.path.isdir(path): self.directory_count += 1 if count == len(files): self.tree_i(path, padding + ' ') else: self.tree_i(path, padding + '|') class ImporterHelper(object): """Provides a list of modules that can be imported in a package. Importable modules are located along the module __path__ list and modules are files that end in .py. This class will read from PKZip archives as well for listing out jar and egg contents.""" def __init__(self, package): """package is a package module import my.package.module helper = ImporterHelper(my.package.module)""" self.package = package def _plugin_name(self, path): "Returns the plugin module name given the path" base = os.path.basename(path) name, ext = os.path.splitext(base) return name def _get_plugins_from_list(self, list_): plugins = [self._plugin_name(plugin) for plugin in list_ if "__init__" not in plugin and plugin.endswith(".py")] plugins.sort() return plugins def _find_plugins_in_dir(self, path): if os.path.exists(path): py_files = list(find("*.py", path)) pnames = self._get_plugins_from_list(py_files) if pnames: return pnames else: return [] def _get_path_to_zip(self, path, tail_list=None): if not tail_list: tail_list = [''] if path.endswith(('.jar', '.zip', '.egg')): return path, os.path.join(*tail_list) head, tail = os.path.split(path) tail_list.insert(0, tail) if head == path: raise Exception("not a zip file") else: return self._get_path_to_zip(head, tail_list) def _find_plugins_in_zipfile(self, path): try: path_to_zip, tail = self._get_path_to_zip(path) zf = zipfile.ZipFile(path_to_zip) # the path will have os separators, but the zipfile will always have '/' tail = tail.replace(os.path.sep, "/") root_names = [name for name in zf.namelist() if tail in name] candidates = self._get_plugins_from_list(root_names) zf.close() if candidates: return candidates else: return [] except (IOError, Exception): return [] def get_modules(self): "Returns the list of importable modules in the configured python package." plugins = [] for path in self.package.__path__: if os.path.isdir(path) or path == '': plugins.extend(self._find_plugins_in_dir(path)) else: plugins.extend(self._find_plugins_in_zipfile(path)) return plugins sosreport/sos/archive.py0000644000175000017500000002501612271434006014052 0ustar zefzef## Copyright (C) 2012 Red Hat, Inc., ## Jesse Jaggars ## Bryn M. Reeves ## ### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. import os import time import tarfile import zipfile import shutil import logging import shlex import re # required for compression callout (FIXME: move to policy?) from subprocess import Popen, PIPE try: import selinux except ImportError: pass # PYCOMPAT import six if six.PY3: long = int class Archive(object): log = logging.getLogger("sos") _name = "unset" # this is our contract to clients of the Archive class hierarchy. # All sub-classes need to implement these methods (or inherit concrete # implementations from a parent class. def add_file(self, src, dest=None): raise NotImplementedError def add_string(self, content, dest): raise NotImplementedError def add_link(self, source, link_name): raise NotImplementedError def add_dir(self, path): raise NotImplementedError def get_tmp_dir(self): """Return a temporary directory that clients of the archive may use to write content to. The content of the path is guaranteed to be included in the generated archive.""" raise NotImplementedError def get_archive_path(self): """Return a string representing the path to the temporary archive. For archive classes that implement in-line handling this will be the archive file itself. Archives that use a directory based cache prior to packaging should return the path to the temporary directory where the report content is located""" pass def cleanup(self): """Clean up any temporary resources used by an Archive class.""" pass def finalize(self, method): """Finalize an archive object via method. This may involve creating An archive that is subsequently compressed or simply closing an archive that supports in-line handling. If method is automatic then the following technologies are tried in order: xz, bz2 and gzip""" self.close() class FileCacheArchive(Archive): _tmp_dir = "" _archive_root = "" _archive_name = "" def __init__(self, name, tmpdir): self._name = name self._tmp_dir = tmpdir self._archive_root = os.path.join(tmpdir, name) os.makedirs(self._archive_root, 0o700) self.log.debug("initialised empty FileCacheArchive at %s" % (self._archive_root,)) def dest_path(self, name): if os.path.isabs(name): name = name.lstrip(os.sep) return (os.path.join(self._archive_root, name)) def _check_path(self, dest): dest_dir = os.path.split(dest)[0] if not dest_dir: return if not os.path.isdir(dest_dir): self._makedirs(dest_dir) def add_file(self, src, dest=None): if not dest: dest = src dest = self.dest_path(dest) self._check_path(dest) try: shutil.copy(src, dest) shutil.copystat(src, dest) stat = os.stat(src) os.chown(dest, stat.st_uid, stat.st_gid) except IOError: self.log.info("caught IO error copying %s" % src) self.log.debug("added %s to FileCacheArchive %s" % (src, self._archive_root)) def add_string(self, content, dest): src = dest dest = self.dest_path(dest) self._check_path(dest) f = open(dest, 'w') f.write(content) if os.path.exists(src): shutil.copystat(src, dest) self.log.debug("added string at %s to FileCacheArchive %s" % (src, self._archive_root)) def add_link(self, source, link_name): dest = self.dest_path(link_name) self._check_path(dest) if not os.path.exists(dest): os.symlink(source, dest) self.log.debug("added symlink at %s to %s in FileCacheArchive %s" % (dest, source, self._archive_root)) def add_dir(self, path): self.makedirs(path) def _makedirs(self, path, mode=0o700): os.makedirs(path, mode) def get_tmp_dir(self): return self._archive_root def get_archive_path(self): return self._archive_root def makedirs(self, path, mode=0o700): self._makedirs(self.dest_path(path)) self.log.debug("created directory at %s in FileCacheArchive %s" % (path, self._archive_root)) def open_file(self, path): path = self.dest_path(path) return open(path, "r") def cleanup(self): shutil.rmtree(self._archive_root) def finalize(self, method): self.log.debug("finalizing archive %s" % self._archive_root) self._build_archive() self.cleanup() self.log.debug("built archive at %s (size=%d)" % (self._archive_name, os.stat(self._archive_name).st_size)) return self._compress() class TarFileArchive(FileCacheArchive): method = None _with_selinux_context = False def __init__(self, name, tmpdir): super(TarFileArchive, self).__init__(name, tmpdir) self._suffix = "tar" self._archive_name = os.path.join(tmpdir, self.name()) def set_tarinfo_from_stat(self, tar_info, fstat, mode=None): tar_info.mtime = fstat.st_mtime tar_info.pax_headers['atime'] = "%.9f" % fstat.st_atime tar_info.pax_headers['ctime'] = "%.9f" % fstat.st_ctime if mode: tar_info.mode = mode else: tar_info.mode = fstat.st_mode tar_info.uid = fstat.st_uid tar_info.gid = fstat.st_gid # this can be used to set permissions if using the # tarfile.add() interface to add directory trees. def copy_permissions_filter(self, tarinfo): orig_path = tarinfo.name[len(os.path.split(self._name)[-1]):] if not orig_path: orig_path = self._archive_root try: fstat = os.stat(orig_path) except OSError: return tarinfo if self._with_selinux_context: context = self.get_selinux_context(orig_path) if(context): tarinfo.pax_headers['RHT.security.selinux'] = context self.set_tarinfo_from_stat(tarinfo, fstat) return tarinfo def get_selinux_context(self, path): try: (rc, c) = selinux.getfilecon(path) return c except: return None def name(self): return "%s.%s" % (self._name, self._suffix) def _build_archive(self): old_pwd = os.getcwd() old_umask = os.umask(0o077) os.chdir(self._tmp_dir) tar = tarfile.open(self._archive_name, mode="w") tar.add(os.path.split(self._name)[1], filter=self.copy_permissions_filter) tar.close() os.umask(old_umask) os.chdir(old_pwd) def _compress(self): methods = ['xz', 'bzip2', 'gzip'] if self.method in methods: methods = [self.method] last_error = Exception("compression failed for an unknown reason") log = logging.getLogger('sos') for cmd in methods: suffix = "." + cmd.replace('ip', '') # use fast compression if using xz or bz2 if cmd != "gzip": cmd = "%s -1" % cmd try: command = shlex.split("%s %s" % (cmd, self.name())) p = Popen(command, stdout=PIPE, stderr=PIPE, bufsize=-1) stdout, stderr = p.communicate() if stdout: log.info(stdout.decode('utf-8')) if stderr: log.error(stderr.decode('utf-8')) self._suffix += suffix return self.name() except Exception as e: last_error = e else: raise last_error class ZipFileArchive(Archive): def __init__(self, name): self._name = name try: import zlib self.compression = zipfile.ZIP_DEFLATED except: self.compression = zipfile.ZIP_STORED self.zipfile = zipfile.ZipFile(self.name(), mode="w", compression=self.compression) def name(self): return "%s.zip" % self._name def finalize(self, method): super(ZipFileArchive, self).finalize(method) return self.name() def add_file(self, src, dest=None): src = str(src) if dest: dest = str(dest) if os.path.isdir(src): # We may not need, this, but if we do I only want to do it # one time regex = re.compile(r"^" + src) for path, dirnames, filenames in os.walk(src): for filename in filenames: filename = "/".join((path, filename)) if dest: self.zipfile.write(filename, re.sub(regex, dest, filename)) else: self.zipfile.write(filename) else: if dest: self.zipfile.write(src, dest) else: self.zipfile.write(src) def add_string(self, content, dest): info = zipfile.ZipInfo(dest, date_time=time.localtime(time.time())) info.compress_type = self.compression info.external_attr = 0o400 << long(16) self.zipfile.writestr(info, content) def open_file(self, name): try: self.zipfile.close() self.zipfile = zipfile.ZipFile(self.name(), mode="r") file_obj = self.zipfile.open(name) return file_obj finally: self.zipfile.close() self.zipfile = zipfile.ZipFile(self.name(), mode="a") def close(self): self.zipfile.close() sosreport/sos/policies/0000755000175000017500000000000012271442123013661 5ustar zefzefsosreport/sos/policies/__init__.py0000644000175000017500000003040012271430455015774 0ustar zefzeffrom __future__ import with_statement import os import re import platform import time import fnmatch import sys import tempfile from os import environ from sos.utilities import ImporterHelper, \ import_module, \ get_hash_name, \ shell_out from sos.plugins import IndependentPlugin from sos import _sos as _ import hashlib from textwrap import fill from six import print_ def import_policy(name): policy_fqname = "sos.policies.%s" % name try: return import_module(policy_fqname, Policy) except ImportError: return None def load(cache={}): if 'policy' in cache: return cache.get('policy') import sos.policies helper = ImporterHelper(sos.policies) for module in helper.get_modules(): for policy in import_policy(module): if policy.check(): cache['policy'] = policy() if 'policy' not in cache: cache['policy'] = GenericPolicy() return cache['policy'] class PackageManager(object): """Encapsulates a package manager. If you provide a query_command to the constructor it should print each package on the system in the following format: package name|package.version\n You may also subclass this class and provide a get_pkg_list method to build the list of packages and versions. """ query_command = None def __init__(self, query_command=None): self.packages = {} if query_command: self.query_command = query_command def all_pkgs_by_name(self, name): """ Return a list of packages that match name. """ return fnmatch.filter(self.all_pkgs().keys(), name) def all_pkgs_by_name_regex(self, regex_name, flags=0): """ Return a list of packages that match regex_name. """ reg = re.compile(regex_name, flags) return [pkg for pkg in self.all_pkgs().keys() if reg.match(pkg)] def pkg_by_name(self, name): """ Return a single package that matches name. """ pkgmatches = self.all_pkgs_by_name(name) if (len(pkgmatches) != 0): return self.all_pkgs_by_name(name)[-1] else: return None def get_pkg_list(self): """ returns a dictionary of packages in the following format: {'package_name': {'name': 'package_name', 'version': 'major.minor.version'}} """ if self.query_command: pkg_list = shell_out(self.query_command).splitlines() for pkg in pkg_list: name, version = pkg.split("|") self.packages[name] = { 'name': name, 'version': version.split(".") } return self.packages def all_pkgs(self): """ Return a list of all packages. """ if not self.packages: self.packages = self.get_pkg_list() return self.packages def pkg_nvra(self, pkg): fields = pkg.split("-") version, release, arch = fields[-3:] name = "-".join(fields[:-3]) return (name, version, release, arch) class Policy(object): msg = _("""\ This command will collect diagnostic and configuration \ information from this %(distro)s system and installed \ applications. An archive containing the collected information will be \ generated in %(tmpdir)s and may be provided to a %(vendor)s \ support representative. Any information provided to %(vendor)s will be treated in \ accordance with the published support policies at:\n %(vendor_url)s The generated archive may contain data considered sensitive \ and its content should be reviewed by the originating \ organization before being passed to any third party. No changes will be made to system configuration. %(vendor_text)s """) distro = "Unknown" vendor = "Unknown" vendor_url = "http://www.example.com/" vendor_text = "" PATH = "" def __init__(self): """Subclasses that choose to override this initializer should call super() to ensure that they get the required platform bits attached. super(SubClass, self).__init__(). Policies that require runtime tests to construct PATH must call self.set_exec_path() after modifying PATH in their own initializer.""" self._parse_uname() self.report_name = self.hostname self.ticket_number = None self.package_manager = PackageManager() self._valid_subclasses = [] self.set_exec_path() def get_valid_subclasses(self): return [IndependentPlugin] + self._valid_subclasses def set_valid_subclasses(self, subclasses): self._valid_subclasses = subclasses def del_valid_subclasses(self): del self._valid_subclasses valid_subclasses = property(get_valid_subclasses, set_valid_subclasses, del_valid_subclasses, "list of subclasses that this policy can process") def check(self): """ This function is responsible for determining if the underlying system is supported by this policy. """ return False def preferred_archive_name(self): """ Return the class object of the prefered archive format for this platform """ from sos.archive import TarFileArchive return TarFileArchive def get_archive_name(self): """ This function should return the filename of the archive without the extension. """ if self.ticket_number: self.report_name += "." + self.ticket_number return "sosreport-%s-%s" % (self.report_name, time.strftime("%Y%m%d%H%M%S")) def get_tmp_dir(self, opt_tmp_dir): if not opt_tmp_dir: return tempfile.gettempdir() return opt_tmp_dir def validatePlugin(self, plugin_class): """ Verifies that the plugin_class should execute under this policy """ valid_subclasses = [IndependentPlugin] + self.valid_subclasses return any(issubclass(plugin_class, class_) for class_ in valid_subclasses) def pre_work(self): """ This function is called prior to collection. """ pass def post_work(self): """ This function is called after the sosreport has been generated. """ pass def pkg_by_name(self, pkg): return self.package_manager.pkg_by_name(pkg) def _parse_uname(self): (system, node, release, version, machine, processor) = platform.uname() self.system = system self.hostname = node self.release = release self.smp = version.split()[1] == "SMP" self.machine = machine def set_commons(self, commons): self.commons = commons def _set_PATH(self, path): environ['PATH'] = path def set_exec_path(self): self._set_PATH(self.PATH) def is_root(self): """This method should return true if the user calling the script is considered to be a superuser""" return (os.getuid() == 0) def _create_checksum(self, final_filename=None): if not final_filename: return False archive_fp = open(final_filename, 'rb') digest = hashlib.new(get_hash_name()) digest.update(archive_fp.read()) archive_fp.close() return digest.hexdigest() def get_preferred_hash_algorithm(self): """Returns the string name of the hashlib-supported checksum algorithm to use""" return "md5" def display_results(self, final_filename=None, build=False): # make sure a report exists if not final_filename: return False self._print() if not build: # store checksum into file fp = open(final_filename + "." + get_hash_name(), "w") checksum = self._create_checksum(final_filename) if checksum: fp.write(checksum + "\n") fp.close() self._print(_("Your sosreport has been generated and saved in:\n %s") % final_filename) else: checksum = None self._print(_("sosreport build tree is located at : %s" % final_filename)) self._print() if checksum: self._print(_("The checksum is: ") + checksum) self._print() self._print(_("Please send this file to your support representative.")) self._print() def _print(self, msg=None): """A wrapper around print that only prints if we are not running in quiet mode""" if not self.commons['cmdlineopts'].quiet: if msg: print_(msg) else: print_() def get_msg(self): """This method is used to prepare the preamble text to display to the user in non-batch mode. If your policy sets self.distro that text will be substituted accordingly. You can also override this method to do something more complicated.""" width = 72 _msg = self.msg % {'distro': self.distro, 'vendor': self.vendor, 'vendor_url': self.vendor_url, 'vendor_text': self.vendor_text, 'tmpdir': self.commons['tmpdir']} _fmt = "" for line in _msg.splitlines(): _fmt = _fmt + fill(line, width, replace_whitespace = False) + '\n' return _fmt class GenericPolicy(Policy): """This Policy will be returned if no other policy can be loaded. This should allow for IndependentPlugins to be executed on any system""" def get_msg(self): return self.msg % {'distro': self.system} class LinuxPolicy(Policy): """This policy is meant to be an abc class that provides common implementations used in Linux distros""" distro = "Linux" vendor = "None" PATH = "/bin:/sbin:/usr/bin:/usr/sbin" def __init__(self): super(LinuxPolicy, self).__init__() def get_preferred_hash_algorithm(self): checksum = "md5" try: fp = open("/proc/sys/crypto/fips_enabled", "r") except: return checksum fips_enabled = fp.read() if fips_enabled.find("1") >= 0: checksum = "sha256" fp.close() return checksum def default_runlevel(self): try: with open("/etc/inittab") as fp: pattern = r"id:(\d{1}):initdefault:" text = fp.read() return int(re.findall(pattern, text)[0]) except: return 3 def kernel_version(self): return self.release def host_name(self): return self.hostname def is_kernel_smp(self): return self.smp def get_arch(self): return self.machine def get_local_name(self): """Returns the name usd in the pre_work step""" return self.host_name() def sanitize_report_name(self, report_name): return re.sub(r"[^-a-zA-Z.0-9]", "", report_name) def sanitize_ticket_number(self, ticket_number): return re.sub(r"[^0-9]", "", ticket_number) def pre_work(self): # this method will be called before the gathering begins localname = self.get_local_name() if not self.commons['cmdlineopts'].batch and not self.commons['cmdlineopts'].quiet: try: self.report_name = raw_input(_("Please enter your first initial and last name [%s]: ") % localname) self.ticket_number = raw_input(_("Please enter the case number that you are generating this report for: ")) self._print() except: self._print() self.report_name = localname if len(self.report_name) == 0: self.report_name = localname if self.commons['cmdlineopts'].customer_name: self.report_name = self.commons['cmdlineopts'].customer_name if self.commons['cmdlineopts'].ticket_number: self.ticket_number = self.commons['cmdlineopts'].ticket_number self.report_name = self.sanitize_report_name(self.report_name) if self.ticket_number: self.ticket_number = self.sanitize_ticket_number(self.ticket_number) if (self.report_name == ""): self.report_name = "default" return sosreport/sos/policies/redhat.py0000644000175000017500000001166712271430455015522 0ustar zefzef## Copyright (C) Steve Conklin ### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. # This enables the use of with syntax in python 2.5 (e.g. jython) import os import sys from sos.plugins import RedHatPlugin from sos.policies import LinuxPolicy, PackageManager from sos import _sos as _ sys.path.insert(0, "/usr/share/rhn/") try: from up2date_client import up2dateAuth from up2date_client import config from rhn import rpclib except: # might fail if non-RHEL pass class RedHatPolicy(LinuxPolicy): distro = "Red Hat" vendor = "Red Hat" vendor_url = "http://www.redhat.com/" _tmp_dir = "/var/tmp" def __init__(self): super(RedHatPolicy, self).__init__() self.report_name = "" self.ticket_number = "" self.package_manager = PackageManager( 'rpm -qa --queryformat "%{NAME}|%{VERSION}\\n"') self.valid_subclasses = [RedHatPlugin] # handle PATH for UsrMove if self.package_manager.all_pkgs()['filesystem']['version'][0] == '3': self.PATH = "/usr/sbin:/usr/bin:/root/bin" else: self.PATH = "/sbin:/bin:/usr/sbin:/usr/bin:/root/bin" self.PATH += os.pathsep + "/usr/local/bin" self.PATH += os.pathsep + "/usr/local/sbin" self.set_exec_path() @classmethod def check(self): """This method checks to see if we are running on Red Hat. It must be overriden by concrete subclasses to return True when running on a Fedora, RHEL or other Red Hat distribution or False otherwise.""" return False def runlevel_by_service(self, name): from subprocess import Popen, PIPE ret = [] p = Popen("LC_ALL=C /sbin/chkconfig --list %s" % name, shell=True, stdout=PIPE, stderr=PIPE, bufsize=-1) out, err = p.communicate() if err: return ret for tabs in out.split()[1:]: try: (runlevel, onoff) = tabs.split(":", 1) except: pass else: if onoff == "on": ret.append(int(runlevel)) return ret def get_tmp_dir(self, opt_tmp_dir): if not opt_tmp_dir: return self._tmp_dir return opt_tmp_dir def get_local_name(self): return self.host_name() class RHELPolicy(RedHatPolicy): distro = "Red Hat Enterprise Linux" vendor = "Red Hat" vendor_url = "https://access.redhat.com/support/" def __init__(self): super(RHELPolicy, self).__init__() @classmethod def check(self): """This method checks to see if we are running on RHEL. It returns True or False.""" return (os.path.isfile('/etc/redhat-release') and not os.path.isfile('/etc/fedora-release')) def rhel_version(self): try: pkg = self.pkg_by_name("redhat-release") or \ self.all_pkgs_by_name_regex("redhat-release-.*")[-1] pkgname = pkg["version"] if pkgname[0] == "4": return 4 elif pkgname[0] in [ "5Server", "5Client" ]: return 5 elif pkgname[0] == "6": return 6 elif pkgname[0] == "7": return 7 except: pass return False def rhn_username(self): try: cfg = config.initUp2dateConfig() return rpclib.xmlrpclib.loads(up2dateAuth.getSystemId())[0][0]['username'] except: # ignore any exception and return an empty username return "" def get_local_name(self): return self.rhn_username() or self.host_name() class FedoraPolicy(RedHatPolicy): distro = "Fedora" vendor = "the Fedora Project" vendor_url = "https://fedoraproject.org/" def __init__(self): super(FedoraPolicy, self).__init__() @classmethod def check(self): """This method checks to see if we are running on Fedora. It returns True or False.""" return os.path.isfile('/etc/fedora-release') def fedora_version(self): pkg = self.pkg_by_name("fedora-release") or \ self.all_pkgs_by_name_regex("fedora-release-.*")[-1] return int(pkg["version"]) # vim: ts=4 sw=4 et sosreport/sos/policies/debian.py0000644000175000017500000000231412254061770015463 0ustar zefzeffrom sos.plugins import DebianPlugin from sos.policies import PackageManager, LinuxPolicy import os class DebianPolicy(LinuxPolicy): distro = "Debian" vendor = "the Debian project" vendor_url = "http://www.debian.org/" report_name = "" ticket_number = "" package_manager = PackageManager("dpkg-query -W -f='${Package}|${Version}\\n' \*") valid_subclasses = [DebianPlugin] PATH = "/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games" \ + ":/usr/local/sbin:/usr/local/bin" def __init__(self): super(DebianPolicy, self).__init__() self.report_name = "" self.ticket_number = "" self.package_manager = PackageManager("dpkg-query -W -f='${Package}|${Version}\\n' \*") self.valid_subclasses = [DebianPlugin] @classmethod def check(self): """This method checks to see if we are running on Debian. It returns True or False.""" return os.path.isfile('/etc/debian_version') def debianVersion(self): try: fp = open("/etc/debian_version").read() if "wheezy/sid" in fp: return 6 fp.close() except: pass return False sosreport/sos/policies/ubuntu.py0000644000175000017500000000131312254061770015561 0ustar zefzeffrom __future__ import with_statement import os from sos.plugins import UbuntuPlugin, DebianPlugin, IndependentPlugin from sos.policies.debian import DebianPolicy class UbuntuPolicy(DebianPolicy): distro = "Ubuntu" vendor = "Ubuntu" vendor_url = "http://www.ubuntu.com/" def __init__(self): super(UbuntuPolicy, self).__init__() self.valid_subclasses = [DebianPlugin, UbuntuPlugin] @classmethod def check(self): """This method checks to see if we are running on Ubuntu. It returns True or False.""" try: with open('/etc/lsb-release', 'r') as fp: return "Ubuntu" in fp.read() except: return False sosreport/sos/policies/osx.py0000644000175000017500000000045312254061770015054 0ustar zefzeffrom sos.policies import PackageManager, Policy from sos.utilities import shell_out class OSXPolicy(Policy): distro = "Mac OS X" @classmethod def check(class_): try: return "Mac OS X" in shell_out("sw_vers") except Exception as e: return False sosreport/sos/policies/windows.py0000644000175000017500000000306312254061770015735 0ustar zefzef### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. import os import time import platform from sos.policies import PackageManager, Policy from sos.utilities import shell_out class WindowsPolicy(Policy): distro = "Microsoft Windows" @classmethod def check(class_): is_windows = False try: from java.lang import System os_name = System.getProperty('os.name').lower() except: os_name = platform.system().lower() return "win" in os_name and "darwin" not in os_name def is_root(self): if "S-1-16-12288" in shell_out("whoami /groups"): return True else: admins = shell_out("net localgroup administrators") username = shell_out("echo %USERNAME%") return username.strip() in admins def preferred_archive_name(self): from sos.archive import ZipFileArchive return ZipFileArchive sosreport/sos/policies/Makefile0000644000175000017500000000110212254061770015321 0ustar zefzefPYTHON=python PACKAGE = $(shell basename `pwd`) PYFILES = $(wildcard *.py) PYVER := $(shell $(PYTHON) -c 'import sys; print "%.3s" %(sys.version)') PYSYSDIR := $(shell $(PYTHON) -c 'import sys; print sys.prefix') PYLIBDIR = $(PYSYSDIR)/lib/python$(PYVER) PKGDIR = $(PYLIBDIR)/site-packages/sos/$(PACKAGE) all: echo "nada" clean: rm -f *.pyc *.pyo *~ install: mkdir -p $(DESTDIR)/$(PKGDIR) for p in $(PYFILES) ; do \ install -m 644 $$p $(DESTDIR)/$(PKGDIR)/$$p; \ done $(PYTHON) -c "import compileall; compileall.compile_dir('$(DESTDIR)/$(PKGDIR)', 1, '$(PYDIR)', 1)" sosreport/sos/__pycache__/0000755000175000017500000000000012271442132014262 5ustar zefzefsosreport/sos/__init__.py.in0000644000175000017500000000215712254061770014603 0ustar zefzef## Copyright 2010 Red Hat, Inc. ## Author: Adam Stokes ## This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. """ This module houses the i18n setup and message function. The default is to use gettext to internationalize messages. """ __version__ = "@SOSVERSION@" import gettext gettext_dir = "/usr/share/locale" gettext_app = "sos" gettext.bindtextdomain(gettext_app, gettext_dir) def _default(msg): return gettext.dgettext(gettext_app, msg) _sos = _default sosreport/example_plugins/0000755000175000017500000000000012254061770014450 5ustar zefzefsosreport/example_plugins/example.py0000755000175000017500000000517112254061770016464 0ustar zefzef### This program is free software; you can redistribute it and/or modify ## it under the terms of the GNU General Public License as published by ## the Free Software Foundation; either version 2 of the License, or ## (at your option) any later version. ## This program is distributed in the hope that it will be useful, ## but WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ## GNU General Public License for more details. ## You should have received a copy of the GNU General Public License ## along with this program; if not, write to the Free Software ## Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. from sos.plugins import Plugin, RedHatPlugin # the class name determines the plugin name # if you want to override it simply provide a @classmethod name() # that returns the name you want class example(Plugin, RedHatPlugin): '''This is the description for the example plugin''' # Plugin developers want to override setup() from which they will call # add_copy_spec() to collect files and collectExtOutput() to collect programs # output. # Add your options here, indicate whether they are slow to run, and set # whether they are enabled by default # each option is a tuple of the following format: # (name, description, fast or slow, default value) # each option will be addressable like -k name=value option_list = [("init.d", 'Gathers the init.d directory', 'slow', 0), ('follicles', 'Gathers information about each follicle on every toe', 'slow', 0), ('color', 'Gathers toenail polish color', 'fast', 0)] def setup(self): ''' First phase - Collect all the information we need. Directories are copied recursively. arbitrary commands may be executed using the collectExtOutput() method. Information is automatically saved, and links are presented in the report to each file or directory which has been copied to the saved tree. Also, links are provided to the output from each command. ''' # Here's how to copy files and directory trees self.add_copy_spec("/etc/hosts") with open("/proc/cpuinfo") as f: for line in f: if "vendor_id" in line: self.add_alert("Vendor ID string is: %s
\n" % line) # Here's how to test your options and execute if enabled if self.option_enabled("init.d"): self.add_copy_spec("/etc/init.d") # copies a whole directory tree # Here's how to execute a command self.collectExtOutput("/bin/ps -ef") sosreport/po/0000755000175000017500000000000012254061770011672 5ustar zefzefsosreport/po/pt_BR.po0000644000175000017500000001515412254061770013246 0ustar zefzef# Brazilian Portuguese translations for sos package. # Igor Pires Soares , 2007. # Taylon Silmer , 2010. msgid "" msgstr "" "Project-Id-Version: sos\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-11-15 15:02+0000\n" "PO-Revision-Date: 2010-03-12 15:19-0300\n" "Last-Translator: Taylon Silmer \n" "Language-Team: Brazilian Portuguese \n" "Language: pt_BR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" "Generated-By: pygettext.py 1.5\n" #: ../sos/sosreport.py:350 msgid "Could not create temporary directory." msgstr "Não foi possível criar o diretório temporário." #: ../sos/sosreport.py:413 #, python-format msgid "sosreport (version %s)" msgstr "sosreport (versão %s)" #: ../sos/sosreport.py:438 #, python-format msgid "plugin %s does not validate, skipping" msgstr "o plugin %s não validou, ignorando" #: ../sos/sosreport.py:467 #, python-format msgid "plugin %s does not install, skipping" msgstr "o plugin %s não instala, ignorando" #: ../sos/sosreport.py:563 msgid "no valid plugins found" msgstr "nenhum plugin válido encontrado" #: ../sos/sosreport.py:567 msgid "The following plugins are currently enabled:" msgstr "Os seguintes plugins estão habilitados no momento:" #: ../sos/sosreport.py:573 msgid "No plugin enabled." msgstr "Nenhum plugin está habilitado." #: ../sos/sosreport.py:577 msgid "The following plugins are currently disabled:" msgstr "Os seguintes plugins estão desabilitados no momento:" #: ../sos/sosreport.py:585 msgid "The following plugin options are available:" msgstr "As seguintes opções de plugins estão disponíveis:" #: ../sos/sosreport.py:606 msgid "No plugin options available." msgstr "Nenhuma opção de plugins está disponível." #: ../sos/sosreport.py:614 msgid "sosreport requires root permissions to run." msgstr "o sosreport precisa de permissões de root para ser executado." #: ../sos/sosreport.py:621 msgid "no valid plugins were enabled" msgstr "nenhum plugin válido estava habilitado" #: ../sos/sosreport.py:624 #, python-format msgid "" "This utility will collect some detailed information about the\n" "hardware and setup of your %(distroa)s system.\n" "The information is collected and an archive is packaged under\n" "/tmp, which you can send to a support representative.\n" "%(distrob)s will use this information for diagnostic purposes ONLY\n" "and it will be considered confidential information.\n" "\n" "This process may take a while to complete.\n" "No changes will be made to your system.\n" "\n" msgstr "" "Este utilitário irá coletar algumas informações detalhadas sobre o\n" "hardware e a configuração do seu sistema %(distroa)s.\n" "A informação é coletada e um arquivo é empacotado no /tmp,\n" "o qual você pode enviar para um representante de suporte.\n" "A %(distrob)s irá utilizar estas informações SOMENTE para o propósito\n" "de diagnósticos e serão consideradas como informação confidencial.\n" "\n" "Este processo pode levar algum tempo para ser concluído.\n" "Nenhum alteração será feita no seu sistema.\n" "\n" #: ../sos/sosreport.py:639 msgid "Press ENTER to continue, or CTRL-C to quit.\n" msgstr "Pressione ENTER para continuar ou CTRL-C para encerrar.\n" #: ../sos/sosreport.py:665 msgid "One or more plugins have detected a problem in your configuration." msgstr "Um ou mais plugins detectaram problemas na sua configuração." #: ../sos/sosreport.py:667 msgid "Please review the following messages:" msgstr "Por favor, revise as seguintes mensagens:" #: ../sos/sosreport.py:683 msgid "Are you sure you would like to continue (y/n) ? " msgstr "Você tem certeza de que gostaria de continuar ? (s/n)" #: ../sos/sosreport.py:685 msgid "y" msgstr "s" #: ../sos/sosreport.py:685 msgid "Y" msgstr "S" #: ../sos/sosreport.py:688 msgid "n" msgstr "n" #: ../sos/sosreport.py:688 msgid "N" msgstr "N" #: ../sos/sosreport.py:713 msgid " Running plugins. Please wait ..." msgstr "Executando os plugins. Por favor aguarde..." #: ../sos/sosreport.py:827 #, python-format msgid " sosreport build tree is located at : %s" msgstr "a árvore de construção do sosreport está localizada em : %s" #: ../sos/policyredhat.py:211 #, python-format msgid "Please enter your first initial and last name [%s]: " msgstr "Por favor, insira a sua primeira inicial e o seu último nome [%s]: " #: ../sos/policyredhat.py:214 msgid "Please enter the case number that you are generating this report for: " msgstr "" "Por favor, insira o número do caso para o qual você está gerando este " "relatório: " #: ../sos/policyredhat.py:254 msgid "Creating compressed archive..." msgstr "Criando pacote compactado..." #: ../sos/policyredhat.py:284 msgid "Encrypting archive..." msgstr "Criptografando o pacote..." #: ../sos/policyredhat.py:304 msgid "There was a problem encrypting your report." msgstr "Houve um problema ao criptografar o seu relatório." #: ../sos/policyredhat.py:328 #, python-format msgid "" "Your sosreport has been generated and saved in:\n" " %s" msgstr "" "O seu sosreport foi gerado e salvo em:\n" " %s" #: ../sos/policyredhat.py:331 msgid "The md5sum is: " msgstr "O md5sum é: " #: ../sos/policyredhat.py:333 msgid "Please send this file to your support representative." msgstr "Por favor, envie este arquivo para o seu representante de suporte." #: ../sos/policyredhat.py:355 msgid "No URL defined in config file." msgstr "Nenhuma URL definida no arquivo de configuração." #: ../sos/policyredhat.py:362 msgid "Cannot upload to specified URL." msgstr "Não foi possível enviar para a URL especificada." #: ../sos/policyredhat.py:399 msgid "There was a problem uploading your report to Red Hat support." msgstr "Houve um problema ao enviar o seu relatório para o suporte da Red Hat." #: ../sos/policyredhat.py:401 #, python-format msgid "Your report was successfully uploaded to %s with name:" msgstr "O seu relatório foi enviado com sucesso para %s com o nome:" #: ../sos/policyredhat.py:404 msgid "Please communicate this name to your support representative." msgstr "Por favor, comunique este nome para o seu representante de suporte." #~ msgid "plugin %s skipped (--skip-plugins)" #~ msgstr "plugin %s ignorado (--skip-plugins)" #~ msgid "plugin %s is inactive (use -e or -o to enable)." #~ msgstr "o plugin %s está inativo (use -e ou -o para habilitar)." #~ msgid "plugin %s not specified in --only-plugins list" #~ msgstr "o plugin %s não está especificado na lista --only-plugins" #~ msgid "processing options from plugin: %s" #~ msgstr "processando opções do plugin: %s" sosreport/po/de.po0000644000175000017500000001450212254061770012624 0ustar zefzef# translation of sos.trunk.po to # German translation of sos # This file is distributed under the same license as the sos package. # Copyright (C) 2007 Red hat, Inc. # # # Timo Trinks , 2007. # Fabian Affolter , 2009. # sknirT omiT , 2010. msgid "" msgstr "" "Project-Id-Version: sos.trunk\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-11-15 15:02+0000\n" "PO-Revision-Date: 2010-03-31 14:19+1000\n" "Last-Translator: sknirT omiT \n" "Language-Team: \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: pygettext.py 1.5\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: KBabel 1.11.4\n" "X-Poedit-Language: German\n" #: ../sos/sosreport.py:350 msgid "Could not create temporary directory." msgstr "Temporäres Verzeichnis konnte nicht erstellt werden." #: ../sos/sosreport.py:413 #, python-format msgid "sosreport (version %s)" msgstr "sosreport (version %s)" #: ../sos/sosreport.py:438 #, python-format msgid "plugin %s does not validate, skipping" msgstr "Plugin %s validiert nicht, wird ausgelassen" #: ../sos/sosreport.py:467 #, python-format msgid "plugin %s does not install, skipping" msgstr "Plugin %s installiert sich nicht, wird ausgelassen" #: ../sos/sosreport.py:563 msgid "no valid plugins found" msgstr "keine gültigen Plugins gefunden" #: ../sos/sosreport.py:567 msgid "The following plugins are currently enabled:" msgstr "Die folgenden Plugins sind derzeit aktiviert:" #: ../sos/sosreport.py:573 msgid "No plugin enabled." msgstr "Kein Plugin aktiviert." #: ../sos/sosreport.py:577 msgid "The following plugins are currently disabled:" msgstr "Die folgenden Plugins sind derzeit deaktiviert:" #: ../sos/sosreport.py:585 msgid "The following plugin options are available:" msgstr "Die folgenden Plugin-Optionen stehen zur Verfügung:" #: ../sos/sosreport.py:606 msgid "No plugin options available." msgstr "Keine Plugin-Optionen verfügbar." #: ../sos/sosreport.py:614 msgid "sosreport requires root permissions to run." msgstr "sosreport benötigt zur Ausführung Root-Berechtigungen." #: ../sos/sosreport.py:621 msgid "no valid plugins were enabled" msgstr "keine gültigen Plugins wurden aktiviert" #: ../sos/sosreport.py:624 #, python-format msgid "" "This utility will collect some detailed information about the\n" "hardware and setup of your %(distroa)s system.\n" "The information is collected and an archive is packaged under\n" "/tmp, which you can send to a support representative.\n" "%(distrob)s will use this information for diagnostic purposes ONLY\n" "and it will be considered confidential information.\n" "\n" "This process may take a while to complete.\n" "No changes will be made to your system.\n" "\n" msgstr "" "Dieses Dienstprogramm sammelt einige detaillierte Informationen\n" "zur Hardware und Einrichtung Ihres %(distroa)s Systems.\n" "Die Informationen werden gesammelt und in einem Archiv unter /tmp\n" "zusammengefasst, welches Sie an einen Support-Vertreter schicken\n" "können. %(distrob)s verwendet diese Informationen AUSSCHLIEßLICH zu\n" "Diagnosezwecken und behandelt sie als vertrauliche Informationen.\n" "\n" "Die Fertigstellung dieses Prozesses kann eine Weile dauern.\n" "Es werden keinerlei Änderungen an Ihrem System vorgenommen.\n" "\n" #: ../sos/sosreport.py:639 msgid "Press ENTER to continue, or CTRL-C to quit.\n" msgstr "" "Drücken Sie die EINGABETASTE, um fortzufahren, oder STRG-C, um abzubrechen.\n" #: ../sos/sosreport.py:665 msgid "One or more plugins have detected a problem in your configuration." msgstr "" "Ein oder mehrere Plugins haben ein Problem in Ihrer Konfiguration entdeckt." #: ../sos/sosreport.py:667 msgid "Please review the following messages:" msgstr "Bitte überprüfen Sie die folgenden Meldungen erneut:" #: ../sos/sosreport.py:683 msgid "Are you sure you would like to continue (y/n) ? " msgstr "Möchten Sie wirklich fortfahren (j/n) ? " #: ../sos/sosreport.py:685 msgid "y" msgstr "j" #: ../sos/sosreport.py:685 msgid "Y" msgstr "J" #: ../sos/sosreport.py:688 msgid "n" msgstr "n" #: ../sos/sosreport.py:688 msgid "N" msgstr "N" #: ../sos/sosreport.py:713 msgid " Running plugins. Please wait ..." msgstr " Plugins werden ausgeführt. Bitte warten ..." #: ../sos/sosreport.py:827 #, python-format msgid " sosreport build tree is located at : %s" msgstr " sosreport-Build-Tree befindet sich unter : %s" #: ../sos/policyredhat.py:211 #, python-format msgid "Please enter your first initial and last name [%s]: " msgstr "Bitte geben Sie Ihren Vor- und Nachnamen ein [%s]: " #: ../sos/policyredhat.py:214 msgid "Please enter the case number that you are generating this report for: " msgstr "" "Bitte geben Sie die Fallnummer an, für die Sie diesen Bericht generieren: " #: ../sos/policyredhat.py:254 msgid "Creating compressed archive..." msgstr "Erstelle komprimiertes Archiv..." #: ../sos/policyredhat.py:284 msgid "Encrypting archive..." msgstr "Verschlüssele Archiv..." #: ../sos/policyredhat.py:304 msgid "There was a problem encrypting your report." msgstr "Beim Verschlüsseln Ihres Berichts trat ein Fehler auf." #: ../sos/policyredhat.py:328 #, python-format msgid "" "Your sosreport has been generated and saved in:\n" " %s" msgstr "" "Ihr \"sosreport\" wurde erstellt und gespeichert unter:\n" " %s" #: ../sos/policyredhat.py:331 msgid "The md5sum is: " msgstr "Die md5sum lautet: " #: ../sos/policyredhat.py:333 msgid "Please send this file to your support representative." msgstr "Bitte senden Sie diese Datei an Ihren Support-Vertreter." #: ../sos/policyredhat.py:355 msgid "No URL defined in config file." msgstr "Keine URL in Konfigurationsdatei definiert." #: ../sos/policyredhat.py:362 msgid "Cannot upload to specified URL." msgstr "Hochladen zu spezieller URL scheiterte." #: ../sos/policyredhat.py:399 msgid "There was a problem uploading your report to Red Hat support." msgstr "Beim Hochladen Ihres Berichts zum Red Hat Support trat ein Fehler auf." #: ../sos/policyredhat.py:401 #, python-format msgid "Your report was successfully uploaded to %s with name:" msgstr "Ihr Bericht wurde erfolgreich auf %s hochgeladen, mit dem Namen:" #: ../sos/policyredhat.py:404 msgid "Please communicate this name to your support representative." msgstr "Bitte teilen Sie diesen Namen Ihrem Support-Vertreter mit." sosreport/po/bs.po0000644000175000017500000001361012254061770012637 0ustar zefzef# Bosnian translations for PACKAGE package. # Copyright (C) 2007 ORGANIZATION # Automatically generated, 2007. # msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-11-15 15:02+0000\n" "PO-Revision-Date: 2007-10-24 08:45\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: pygettext.py 1.5\n" #: ../sos/sosreport.py:350 msgid "Could not create temporary directory." msgstr "Nije se mogao kreirati privremeni direktorij." #: ../sos/sosreport.py:413 #, python-format msgid "sosreport (version %s)" msgstr "sosizjestaj (verzija %s)" #: ../sos/sosreport.py:438 #, python-format msgid "plugin %s does not validate, skipping" msgstr "plugin %s se nije mogao potvrditi, preskace se" #: ../sos/sosreport.py:467 #, python-format msgid "plugin %s does not install, skipping" msgstr "plugin %s se nije instalirao, preskace se " #: ../sos/sosreport.py:563 msgid "no valid plugins found" msgstr "ispravan plugin nije nadjen" #: ../sos/sosreport.py:567 msgid "The following plugins are currently enabled:" msgstr "Sljedeci plugin-i su trenutno osposobljeni:" #: ../sos/sosreport.py:573 msgid "No plugin enabled." msgstr "Nema osposobljenih plugin-a." #: ../sos/sosreport.py:577 msgid "The following plugins are currently disabled:" msgstr "Sljedeci su plugin-i onesposobljeni:" #: ../sos/sosreport.py:585 msgid "The following plugin options are available:" msgstr "Sjedeci su plugini-i na raspolaganju:" #: ../sos/sosreport.py:606 msgid "No plugin options available." msgstr "Nema plugin-a na raspolaganju." #: ../sos/sosreport.py:614 msgid "sosreport requires root permissions to run." msgstr "sosizvjestaj zahtijeva 'root' privilegije da bi se pokrenuo." #: ../sos/sosreport.py:621 msgid "no valid plugins were enabled" msgstr "Nema ispravnih plugin-a na raspolaganju." #: ../sos/sosreport.py:624 #, python-format msgid "" "This utility will collect some detailed information about the\n" "hardware and setup of your %(distroa)s system.\n" "The information is collected and an archive is packaged under\n" "/tmp, which you can send to a support representative.\n" "%(distrob)s will use this information for diagnostic purposes ONLY\n" "and it will be considered confidential information.\n" "\n" "This process may take a while to complete.\n" "No changes will be made to your system.\n" "\n" msgstr "" "Ovaj ce usluzni program sakupiti detaljne informacije o\n" "\r\n" "hardveru i postavci vašeg %(distroa)s sistema.\n" "\r\n" "Informacije se sakupljaju i pakuje se arhiva pod\n" "\r\n" "/tmp, koju možete poslati predstavniku za podršku.\n" "\r\n" "%(distrob)s će upotrebiti ove informacije JEDINO u dijagnostičke\n" "\r\n" "svrhe i ove informacije biće smatrane povjerljivim informacijama.\n" "\r\n" "\n" "\r\n" "Ovom procesu može trebati vremena dok se ne završi.\n" "\r\n" "Nikakve promjene neće biti ucinjene vasem sistemu.\n" "\r\n" "\n" #: ../sos/sosreport.py:639 msgid "Press ENTER to continue, or CTRL-C to quit.\n" msgstr "Pritisnite ENTER da nastavite, ili CTRL-C da odustanete.\n" #: ../sos/sosreport.py:665 msgid "One or more plugins have detected a problem in your configuration." msgstr "Jedan ili vise plugin-a su otkrili probleme u vasoj konfiguraciji." #: ../sos/sosreport.py:667 msgid "Please review the following messages:" msgstr "Molim vas pregledajte sljedece poruke:" #: ../sos/sosreport.py:683 msgid "Are you sure you would like to continue (y/n) ? " msgstr "Jeste li sigurni da zelite nastaviti (d/n)?" #: ../sos/sosreport.py:685 msgid "y" msgstr "d" #: ../sos/sosreport.py:685 msgid "Y" msgstr "D" #: ../sos/sosreport.py:688 msgid "n" msgstr "n" #: ../sos/sosreport.py:688 msgid "N" msgstr "N" #: ../sos/sosreport.py:713 msgid " Running plugins. Please wait ..." msgstr "Pokrecu se plugin-i. Molim vas pricekajte ..." #: ../sos/sosreport.py:827 #, python-format msgid " sosreport build tree is located at : %s" msgstr "sosizvjestaj 'build' stablo nalazi se pod: %s" #: ../sos/policyredhat.py:211 #, python-format msgid "Please enter your first initial and last name [%s]: " msgstr "Molim vas unesite prvo slovo vaseg imena i prezime [%s]" #: ../sos/policyredhat.py:214 msgid "Please enter the case number that you are generating this report for: " msgstr "Molim vas unesite broj slucaja za koji pripremate ovaj izvjestaj:" #: ../sos/policyredhat.py:254 msgid "Creating compressed archive..." msgstr "Kreira se komprimirana arhiva ..." #: ../sos/policyredhat.py:284 msgid "Encrypting archive..." msgstr "Sifrira se arhiva ..." #: ../sos/policyredhat.py:304 msgid "There was a problem encrypting your report." msgstr "Bilo je problema u sifriranju vaseg izvjestaja." #: ../sos/policyredhat.py:328 #, python-format msgid "" "Your sosreport has been generated and saved in:\n" " %s" msgstr "" "Vas sosizvjestaj je kreiran i sacuvan u:\n" " %s" #: ../sos/policyredhat.py:331 msgid "The md5sum is: " msgstr "md5sum je:" #: ../sos/policyredhat.py:333 msgid "Please send this file to your support representative." msgstr "Molim vas posaljite ovu datoteku vasem predstavniku za podrsku." #: ../sos/policyredhat.py:355 msgid "No URL defined in config file." msgstr "Nema URL definiranog u konfiguracijskoj datoteci." #: ../sos/policyredhat.py:362 msgid "Cannot upload to specified URL." msgstr "Nije se mogao postaviti specificirani URL," #: ../sos/policyredhat.py:399 msgid "There was a problem uploading your report to Red Hat support." msgstr "Bilo je problema u postavljanju vaseg izvjestaja na Red Hat podrsku. " #: ../sos/policyredhat.py:401 #, python-format msgid "Your report was successfully uploaded to %s with name:" msgstr "Vas je izvjestaj uspjesno postavljen u %s sa nazivom:" #: ../sos/policyredhat.py:404 msgid "Please communicate this name to your support representative." msgstr "Molim vas prenesite ovo ime vasem predstavniku za podrsku." sosreport/po/vi.po0000644000175000017500000001005712254061770012653 0ustar zefzef# Vietnamese translations for PACKAGE package. # Copyright (C) 2007 ORGANIZATION # Automatically generated, 2007. # msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-11-15 15:02+0000\n" "PO-Revision-Date: 2007-10-24 08:45\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: pygettext.py 1.5\n" "Plural-Forms: nplurals=1; plural=0;\n" #: ../sos/sosreport.py:350 msgid "Could not create temporary directory." msgstr "" #: ../sos/sosreport.py:413 #, python-format msgid "sosreport (version %s)" msgstr "" #: ../sos/sosreport.py:438 #, python-format msgid "plugin %s does not validate, skipping" msgstr "" #: ../sos/sosreport.py:467 #, python-format msgid "plugin %s does not install, skipping" msgstr "" #: ../sos/sosreport.py:563 msgid "no valid plugins found" msgstr "" #: ../sos/sosreport.py:567 msgid "The following plugins are currently enabled:" msgstr "" #: ../sos/sosreport.py:573 msgid "No plugin enabled." msgstr "" #: ../sos/sosreport.py:577 msgid "The following plugins are currently disabled:" msgstr "" #: ../sos/sosreport.py:585 msgid "The following plugin options are available:" msgstr "" #: ../sos/sosreport.py:606 msgid "No plugin options available." msgstr "" #: ../sos/sosreport.py:614 msgid "sosreport requires root permissions to run." msgstr "" #: ../sos/sosreport.py:621 msgid "no valid plugins were enabled" msgstr "" #: ../sos/sosreport.py:624 #, python-format msgid "" "This utility will collect some detailed information about the\n" "hardware and setup of your %(distroa)s system.\n" "The information is collected and an archive is packaged under\n" "/tmp, which you can send to a support representative.\n" "%(distrob)s will use this information for diagnostic purposes ONLY\n" "and it will be considered confidential information.\n" "\n" "This process may take a while to complete.\n" "No changes will be made to your system.\n" "\n" msgstr "" #: ../sos/sosreport.py:639 msgid "Press ENTER to continue, or CTRL-C to quit.\n" msgstr "" #: ../sos/sosreport.py:665 msgid "One or more plugins have detected a problem in your configuration." msgstr "" #: ../sos/sosreport.py:667 msgid "Please review the following messages:" msgstr "" #: ../sos/sosreport.py:683 msgid "Are you sure you would like to continue (y/n) ? " msgstr "" #: ../sos/sosreport.py:685 msgid "y" msgstr "" #: ../sos/sosreport.py:685 msgid "Y" msgstr "" #: ../sos/sosreport.py:688 msgid "n" msgstr "" #: ../sos/sosreport.py:688 msgid "N" msgstr "" #: ../sos/sosreport.py:713 msgid " Running plugins. Please wait ..." msgstr "" #: ../sos/sosreport.py:827 #, python-format msgid " sosreport build tree is located at : %s" msgstr "" #: ../sos/policyredhat.py:211 #, python-format msgid "Please enter your first initial and last name [%s]: " msgstr "" #: ../sos/policyredhat.py:214 msgid "Please enter the case number that you are generating this report for: " msgstr "" #: ../sos/policyredhat.py:254 msgid "Creating compressed archive..." msgstr "" #: ../sos/policyredhat.py:284 msgid "Encrypting archive..." msgstr "" #: ../sos/policyredhat.py:304 msgid "There was a problem encrypting your report." msgstr "" #: ../sos/policyredhat.py:328 #, python-format msgid "" "Your sosreport has been generated and saved in:\n" " %s" msgstr "" #: ../sos/policyredhat.py:331 msgid "The md5sum is: " msgstr "" #: ../sos/policyredhat.py:333 msgid "Please send this file to your support representative." msgstr "" #: ../sos/policyredhat.py:355 msgid "No URL defined in config file." msgstr "" #: ../sos/policyredhat.py:362 msgid "Cannot upload to specified URL." msgstr "" #: ../sos/policyredhat.py:399 msgid "There was a problem uploading your report to Red Hat support." msgstr "" #: ../sos/policyredhat.py:401 #, python-format msgid "Your report was successfully uploaded to %s with name:" msgstr "" #: ../sos/policyredhat.py:404 msgid "Please communicate this name to your support representative." msgstr "" sosreport/po/ku.po0000644000175000017500000001000412254061770012644 0ustar zefzef# Kurdish translations for PACKAGE package. # Copyright (C) 2007 ORGANIZATION # Automatically generated, 2007. # msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-11-15 15:02+0000\n" "PO-Revision-Date: 2007-10-24 08:45\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: pygettext.py 1.5\n" #: ../sos/sosreport.py:350 msgid "Could not create temporary directory." msgstr "" #: ../sos/sosreport.py:413 #, python-format msgid "sosreport (version %s)" msgstr "" #: ../sos/sosreport.py:438 #, python-format msgid "plugin %s does not validate, skipping" msgstr "" #: ../sos/sosreport.py:467 #, python-format msgid "plugin %s does not install, skipping" msgstr "" #: ../sos/sosreport.py:563 msgid "no valid plugins found" msgstr "" #: ../sos/sosreport.py:567 msgid "The following plugins are currently enabled:" msgstr "" #: ../sos/sosreport.py:573 msgid "No plugin enabled." msgstr "" #: ../sos/sosreport.py:577 msgid "The following plugins are currently disabled:" msgstr "" #: ../sos/sosreport.py:585 msgid "The following plugin options are available:" msgstr "" #: ../sos/sosreport.py:606 msgid "No plugin options available." msgstr "" #: ../sos/sosreport.py:614 msgid "sosreport requires root permissions to run." msgstr "" #: ../sos/sosreport.py:621 msgid "no valid plugins were enabled" msgstr "" #: ../sos/sosreport.py:624 #, python-format msgid "" "This utility will collect some detailed information about the\n" "hardware and setup of your %(distroa)s system.\n" "The information is collected and an archive is packaged under\n" "/tmp, which you can send to a support representative.\n" "%(distrob)s will use this information for diagnostic purposes ONLY\n" "and it will be considered confidential information.\n" "\n" "This process may take a while to complete.\n" "No changes will be made to your system.\n" "\n" msgstr "" #: ../sos/sosreport.py:639 msgid "Press ENTER to continue, or CTRL-C to quit.\n" msgstr "" #: ../sos/sosreport.py:665 msgid "One or more plugins have detected a problem in your configuration." msgstr "" #: ../sos/sosreport.py:667 msgid "Please review the following messages:" msgstr "" #: ../sos/sosreport.py:683 msgid "Are you sure you would like to continue (y/n) ? " msgstr "" #: ../sos/sosreport.py:685 msgid "y" msgstr "" #: ../sos/sosreport.py:685 msgid "Y" msgstr "" #: ../sos/sosreport.py:688 msgid "n" msgstr "" #: ../sos/sosreport.py:688 msgid "N" msgstr "" #: ../sos/sosreport.py:713 msgid " Running plugins. Please wait ..." msgstr "" #: ../sos/sosreport.py:827 #, python-format msgid " sosreport build tree is located at : %s" msgstr "" #: ../sos/policyredhat.py:211 #, python-format msgid "Please enter your first initial and last name [%s]: " msgstr "" #: ../sos/policyredhat.py:214 msgid "Please enter the case number that you are generating this report for: " msgstr "" #: ../sos/policyredhat.py:254 msgid "Creating compressed archive..." msgstr "" #: ../sos/policyredhat.py:284 msgid "Encrypting archive..." msgstr "" #: ../sos/policyredhat.py:304 msgid "There was a problem encrypting your report." msgstr "" #: ../sos/policyredhat.py:328 #, python-format msgid "" "Your sosreport has been generated and saved in:\n" " %s" msgstr "" #: ../sos/policyredhat.py:331 msgid "The md5sum is: " msgstr "" #: ../sos/policyredhat.py:333 msgid "Please send this file to your support representative." msgstr "" #: ../sos/policyredhat.py:355 msgid "No URL defined in config file." msgstr "" #: ../sos/policyredhat.py:362 msgid "Cannot upload to specified URL." msgstr "" #: ../sos/policyredhat.py:399 msgid "There was a problem uploading your report to Red Hat support." msgstr "" #: ../sos/policyredhat.py:401 #, python-format msgid "Your report was successfully uploaded to %s with name:" msgstr "" #: ../sos/policyredhat.py:404 msgid "Please communicate this name to your support representative." msgstr "" sosreport/po/hy.po0000644000175000017500000001000512254061770012646 0ustar zefzef# Armenian translations for PACKAGE package. # Copyright (C) 2007 ORGANIZATION # Automatically generated, 2007. # msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-11-15 15:02+0000\n" "PO-Revision-Date: 2007-10-24 08:45\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: pygettext.py 1.5\n" #: ../sos/sosreport.py:350 msgid "Could not create temporary directory." msgstr "" #: ../sos/sosreport.py:413 #, python-format msgid "sosreport (version %s)" msgstr "" #: ../sos/sosreport.py:438 #, python-format msgid "plugin %s does not validate, skipping" msgstr "" #: ../sos/sosreport.py:467 #, python-format msgid "plugin %s does not install, skipping" msgstr "" #: ../sos/sosreport.py:563 msgid "no valid plugins found" msgstr "" #: ../sos/sosreport.py:567 msgid "The following plugins are currently enabled:" msgstr "" #: ../sos/sosreport.py:573 msgid "No plugin enabled." msgstr "" #: ../sos/sosreport.py:577 msgid "The following plugins are currently disabled:" msgstr "" #: ../sos/sosreport.py:585 msgid "The following plugin options are available:" msgstr "" #: ../sos/sosreport.py:606 msgid "No plugin options available." msgstr "" #: ../sos/sosreport.py:614 msgid "sosreport requires root permissions to run." msgstr "" #: ../sos/sosreport.py:621 msgid "no valid plugins were enabled" msgstr "" #: ../sos/sosreport.py:624 #, python-format msgid "" "This utility will collect some detailed information about the\n" "hardware and setup of your %(distroa)s system.\n" "The information is collected and an archive is packaged under\n" "/tmp, which you can send to a support representative.\n" "%(distrob)s will use this information for diagnostic purposes ONLY\n" "and it will be considered confidential information.\n" "\n" "This process may take a while to complete.\n" "No changes will be made to your system.\n" "\n" msgstr "" #: ../sos/sosreport.py:639 msgid "Press ENTER to continue, or CTRL-C to quit.\n" msgstr "" #: ../sos/sosreport.py:665 msgid "One or more plugins have detected a problem in your configuration." msgstr "" #: ../sos/sosreport.py:667 msgid "Please review the following messages:" msgstr "" #: ../sos/sosreport.py:683 msgid "Are you sure you would like to continue (y/n) ? " msgstr "" #: ../sos/sosreport.py:685 msgid "y" msgstr "" #: ../sos/sosreport.py:685 msgid "Y" msgstr "" #: ../sos/sosreport.py:688 msgid "n" msgstr "" #: ../sos/sosreport.py:688 msgid "N" msgstr "" #: ../sos/sosreport.py:713 msgid " Running plugins. Please wait ..." msgstr "" #: ../sos/sosreport.py:827 #, python-format msgid " sosreport build tree is located at : %s" msgstr "" #: ../sos/policyredhat.py:211 #, python-format msgid "Please enter your first initial and last name [%s]: " msgstr "" #: ../sos/policyredhat.py:214 msgid "Please enter the case number that you are generating this report for: " msgstr "" #: ../sos/policyredhat.py:254 msgid "Creating compressed archive..." msgstr "" #: ../sos/policyredhat.py:284 msgid "Encrypting archive..." msgstr "" #: ../sos/policyredhat.py:304 msgid "There was a problem encrypting your report." msgstr "" #: ../sos/policyredhat.py:328 #, python-format msgid "" "Your sosreport has been generated and saved in:\n" " %s" msgstr "" #: ../sos/policyredhat.py:331 msgid "The md5sum is: " msgstr "" #: ../sos/policyredhat.py:333 msgid "Please send this file to your support representative." msgstr "" #: ../sos/policyredhat.py:355 msgid "No URL defined in config file." msgstr "" #: ../sos/policyredhat.py:362 msgid "Cannot upload to specified URL." msgstr "" #: ../sos/policyredhat.py:399 msgid "There was a problem uploading your report to Red Hat support." msgstr "" #: ../sos/policyredhat.py:401 #, python-format msgid "Your report was successfully uploaded to %s with name:" msgstr "" #: ../sos/policyredhat.py:404 msgid "Please communicate this name to your support representative." msgstr "" sosreport/po/zu.po0000644000175000017500000001000112254061770012660 0ustar zefzef# Zulu translations for PACKAGE package. # Copyright (C) 2007 ORGANIZATION # Automatically generated, 2007. # msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-11-15 15:02+0000\n" "PO-Revision-Date: 2007-10-24 08:45\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: pygettext.py 1.5\n" #: ../sos/sosreport.py:350 msgid "Could not create temporary directory." msgstr "" #: ../sos/sosreport.py:413 #, python-format msgid "sosreport (version %s)" msgstr "" #: ../sos/sosreport.py:438 #, python-format msgid "plugin %s does not validate, skipping" msgstr "" #: ../sos/sosreport.py:467 #, python-format msgid "plugin %s does not install, skipping" msgstr "" #: ../sos/sosreport.py:563 msgid "no valid plugins found" msgstr "" #: ../sos/sosreport.py:567 msgid "The following plugins are currently enabled:" msgstr "" #: ../sos/sosreport.py:573 msgid "No plugin enabled." msgstr "" #: ../sos/sosreport.py:577 msgid "The following plugins are currently disabled:" msgstr "" #: ../sos/sosreport.py:585 msgid "The following plugin options are available:" msgstr "" #: ../sos/sosreport.py:606 msgid "No plugin options available." msgstr "" #: ../sos/sosreport.py:614 msgid "sosreport requires root permissions to run." msgstr "" #: ../sos/sosreport.py:621 msgid "no valid plugins were enabled" msgstr "" #: ../sos/sosreport.py:624 #, python-format msgid "" "This utility will collect some detailed information about the\n" "hardware and setup of your %(distroa)s system.\n" "The information is collected and an archive is packaged under\n" "/tmp, which you can send to a support representative.\n" "%(distrob)s will use this information for diagnostic purposes ONLY\n" "and it will be considered confidential information.\n" "\n" "This process may take a while to complete.\n" "No changes will be made to your system.\n" "\n" msgstr "" #: ../sos/sosreport.py:639 msgid "Press ENTER to continue, or CTRL-C to quit.\n" msgstr "" #: ../sos/sosreport.py:665 msgid "One or more plugins have detected a problem in your configuration." msgstr "" #: ../sos/sosreport.py:667 msgid "Please review the following messages:" msgstr "" #: ../sos/sosreport.py:683 msgid "Are you sure you would like to continue (y/n) ? " msgstr "" #: ../sos/sosreport.py:685 msgid "y" msgstr "" #: ../sos/sosreport.py:685 msgid "Y" msgstr "" #: ../sos/sosreport.py:688 msgid "n" msgstr "" #: ../sos/sosreport.py:688 msgid "N" msgstr "" #: ../sos/sosreport.py:713 msgid " Running plugins. Please wait ..." msgstr "" #: ../sos/sosreport.py:827 #, python-format msgid " sosreport build tree is located at : %s" msgstr "" #: ../sos/policyredhat.py:211 #, python-format msgid "Please enter your first initial and last name [%s]: " msgstr "" #: ../sos/policyredhat.py:214 msgid "Please enter the case number that you are generating this report for: " msgstr "" #: ../sos/policyredhat.py:254 msgid "Creating compressed archive..." msgstr "" #: ../sos/policyredhat.py:284 msgid "Encrypting archive..." msgstr "" #: ../sos/policyredhat.py:304 msgid "There was a problem encrypting your report." msgstr "" #: ../sos/policyredhat.py:328 #, python-format msgid "" "Your sosreport has been generated and saved in:\n" " %s" msgstr "" #: ../sos/policyredhat.py:331 msgid "The md5sum is: " msgstr "" #: ../sos/policyredhat.py:333 msgid "Please send this file to your support representative." msgstr "" #: ../sos/policyredhat.py:355 msgid "No URL defined in config file." msgstr "" #: ../sos/policyredhat.py:362 msgid "Cannot upload to specified URL." msgstr "" #: ../sos/policyredhat.py:399 msgid "There was a problem uploading your report to Red Hat support." msgstr "" #: ../sos/policyredhat.py:401 #, python-format msgid "Your report was successfully uploaded to %s with name:" msgstr "" #: ../sos/policyredhat.py:404 msgid "Please communicate this name to your support representative." msgstr "" sosreport/po/sv.po0000644000175000017500000001405712254061770012671 0ustar zefzef# Swedish translations for the sos package. # This file is distributed under the same license as the sos package. # Copyright © 2009-2010 Free Software Foundation, Inc. # Göran Uddeborg , 2009-2010. # # $Revision: 1.8 $ # msgid "" msgstr "" "Project-Id-Version: sos\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-11-15 15:02+0000\n" "PO-Revision-Date: 2010-08-11 22:07+0200\n" "Last-Translator: Göran Uddeborg \n" "Language-Team: Swedish \n" "Language: sv\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: pygettext.py 1.5\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: ../sos/sosreport.py:350 msgid "Could not create temporary directory." msgstr "Kunde inte skapa en temporärkatalog." #: ../sos/sosreport.py:413 #, python-format msgid "sosreport (version %s)" msgstr "sosreport (version %s)" #: ../sos/sosreport.py:438 #, python-format msgid "plugin %s does not validate, skipping" msgstr "insticksmodul %s validerar inte, hoppar över" #: ../sos/sosreport.py:467 #, python-format msgid "plugin %s does not install, skipping" msgstr "insticksmodul %s installerar inte, hoppar över" #: ../sos/sosreport.py:563 msgid "no valid plugins found" msgstr "inga giltiga insticksmoduler funna" #: ../sos/sosreport.py:567 msgid "The following plugins are currently enabled:" msgstr "Följande insticksmoduler är för närvarande aktiva:" #: ../sos/sosreport.py:573 msgid "No plugin enabled." msgstr "Inga insticksmoduler aktiverade." #: ../sos/sosreport.py:577 msgid "The following plugins are currently disabled:" msgstr "Följande insticksmoduler är för närvarande inaktiva:" #: ../sos/sosreport.py:585 msgid "The following plugin options are available:" msgstr "Följande flaggor för insticksmoduler är tillgängliga:" #: ../sos/sosreport.py:606 msgid "No plugin options available." msgstr "Inga flaggor för insticksmoduler finns tillgängliga." #: ../sos/sosreport.py:614 msgid "sosreport requires root permissions to run." msgstr "sosreport behöver root-rättigheter för att köra." #: ../sos/sosreport.py:621 msgid "no valid plugins were enabled" msgstr "inga giltiga insticksmoduler var aktiva" #: ../sos/sosreport.py:624 #, python-format msgid "" "This utility will collect some detailed information about the\n" "hardware and setup of your %(distroa)s system.\n" "The information is collected and an archive is packaged under\n" "/tmp, which you can send to a support representative.\n" "%(distrob)s will use this information for diagnostic purposes ONLY\n" "and it will be considered confidential information.\n" "\n" "This process may take a while to complete.\n" "No changes will be made to your system.\n" "\n" msgstr "" "Detta verktyg kommer att samla en del detaljerad information om\n" "hårdvaran och inställningarna hos ditt %(distroa)s-system.\n" "Informationen samlas och ett arkiv paketeras under /tmp, som du kan\n" "skicka till en servicerepresentant. %(distrob)s kommer använda denna\n" "information ENDAST för diagnostiksyften och det betraktas som\n" "konfidentiell information.\n" "\n" "Denna process kan ta ett tag att bli klar.\n" "Inga ändringar kommer att göras i ditt system.\n" "\n" #: ../sos/sosreport.py:639 msgid "Press ENTER to continue, or CTRL-C to quit.\n" msgstr "Tryck RETUR för att fortsätta, eller CTRL-C för att avbryta.\n" #: ../sos/sosreport.py:665 msgid "One or more plugins have detected a problem in your configuration." msgstr "" "En eller flera insticksmoduler har upptäckt problem i din konfiguration." #: ../sos/sosreport.py:667 msgid "Please review the following messages:" msgstr "Se över följande meddelanden:" #: ../sos/sosreport.py:683 msgid "Are you sure you would like to continue (y/n) ? " msgstr "Är du säker på att du vill fortsätta (j/n)? " #: ../sos/sosreport.py:685 msgid "y" msgstr "j" #: ../sos/sosreport.py:685 msgid "Y" msgstr "J" #: ../sos/sosreport.py:688 msgid "n" msgstr "n" #: ../sos/sosreport.py:688 msgid "N" msgstr "N" #: ../sos/sosreport.py:713 msgid " Running plugins. Please wait ..." msgstr " Kör insticksmoduler. Var god dröj ..." #: ../sos/sosreport.py:827 #, python-format msgid " sosreport build tree is located at : %s" msgstr " sosreports byggträd finns på: %s" #: ../sos/policyredhat.py:211 #, python-format msgid "Please enter your first initial and last name [%s]: " msgstr "Ange din förnamnsinitial och ditt efternam [%s]: " #: ../sos/policyredhat.py:214 msgid "Please enter the case number that you are generating this report for: " msgstr "Ange ärendenumret som du genererar denna rapport för: " #: ../sos/policyredhat.py:254 msgid "Creating compressed archive..." msgstr "Skapar komprimerat arkiv ..." #: ../sos/policyredhat.py:284 msgid "Encrypting archive..." msgstr "Krypterar arkiv ..." #: ../sos/policyredhat.py:304 msgid "There was a problem encrypting your report." msgstr "Ett problem uppstod vid kryptering av din rapport." #: ../sos/policyredhat.py:328 #, python-format msgid "" "Your sosreport has been generated and saved in:\n" " %s" msgstr "" "Din sos-rapport har genererats och sparats i:\n" " %s" #: ../sos/policyredhat.py:331 msgid "The md5sum is: " msgstr "MD5-summan är: " #: ../sos/policyredhat.py:333 msgid "Please send this file to your support representative." msgstr "Skicka denna fil till din servicerepresentant." #: ../sos/policyredhat.py:355 msgid "No URL defined in config file." msgstr "Ingen URL definierad i konfigurationsfilen." #: ../sos/policyredhat.py:362 msgid "Cannot upload to specified URL." msgstr "Kan inte skicka till angiven URL." #: ../sos/policyredhat.py:399 msgid "There was a problem uploading your report to Red Hat support." msgstr "Ett problem uppstod när din rapport skickades till Red Hat support." #: ../sos/policyredhat.py:401 #, python-format msgid "Your report was successfully uploaded to %s with name:" msgstr "Din rapport har skickats till %s med namnet:" #: ../sos/policyredhat.py:404 msgid "Please communicate this name to your support representative." msgstr "Berätta detta namn för din servicerepresentant." sosreport/po/sr@latin.po0000644000175000017500000001455012254061770014013 0ustar zefzef# Serbian(Latin) translations for sos # Copyright (C) 2007 Red Hat, Inc. # This file is distributed under the same license as the sos package. # Miloš Komarčević , 2009. # msgid "" msgstr "" "Project-Id-Version: sos\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-11-15 15:02+0000\n" "PO-Revision-Date: 2010-03-28 23:56+0100\n" "Last-Translator: Miloš Komarčević \n" "Language-Team: Serbian \n" "Language: sr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" #: ../sos/sosreport.py:350 msgid "Could not create temporary directory." msgstr "Ne mogu da napravim privremeni direktorijum." #: ../sos/sosreport.py:413 #, python-format msgid "sosreport (version %s)" msgstr "sosreport (verzija %s)" #: ../sos/sosreport.py:438 #, python-format msgid "plugin %s does not validate, skipping" msgstr "dodatak %s se nije overio, preskačem" #: ../sos/sosreport.py:467 #, python-format msgid "plugin %s does not install, skipping" msgstr "dodatak %s se nije instalirao, preskačem" #: ../sos/sosreport.py:563 msgid "no valid plugins found" msgstr "nisu pronađeni valjani dodaci" #: ../sos/sosreport.py:567 msgid "The following plugins are currently enabled:" msgstr "Sledeći dodaci su trenutno uključeni:" #: ../sos/sosreport.py:573 msgid "No plugin enabled." msgstr "Nema uključenih dodataka." #: ../sos/sosreport.py:577 msgid "The following plugins are currently disabled:" msgstr "Sledeći dodaci su trenutno isključeni:" #: ../sos/sosreport.py:585 msgid "The following plugin options are available:" msgstr "Dostupne su sledeće opcije dodatka:" #: ../sos/sosreport.py:606 msgid "No plugin options available." msgstr "Nema dostupnih opcija dodatka." #: ../sos/sosreport.py:614 msgid "sosreport requires root permissions to run." msgstr "sosreport zahteva root dozvole za izvršavanje." #: ../sos/sosreport.py:621 msgid "no valid plugins were enabled" msgstr "nisu uključeni valjani dodaci" #: ../sos/sosreport.py:624 #, python-format msgid "" "This utility will collect some detailed information about the\n" "hardware and setup of your %(distroa)s system.\n" "The information is collected and an archive is packaged under\n" "/tmp, which you can send to a support representative.\n" "%(distrob)s will use this information for diagnostic purposes ONLY\n" "and it will be considered confidential information.\n" "\n" "This process may take a while to complete.\n" "No changes will be made to your system.\n" "\n" msgstr "" "Ova alatka će sakupiti neke detaljne informacije o\n" "hardveru i postavci vašeg %(distroa)s sistema.\n" "Informacije se sakupljaju i pakuje se arhiva pod\n" "/tmp, koju možete poslati predstavniku za podršku.\n" "%(distrob)s će upotrebiti ove informacije SAMO u dijagnostičke\n" "svrhe i biće smatrane poverljivim informacijama.\n" "\n" "Ovaj proces može da potraje duže dok se ne završi.\n" "Nikakve promene neće bite načinjene na sistemu.\n" "\n" #: ../sos/sosreport.py:639 msgid "Press ENTER to continue, or CTRL-C to quit.\n" msgstr "Pritisnite ENTER za nastavak, ili CTRL-C za izlaz.\n" #: ../sos/sosreport.py:665 msgid "One or more plugins have detected a problem in your configuration." msgstr "Jedan ili više dodataka su otkrili problem sa vašim podešavanjima." #: ../sos/sosreport.py:667 msgid "Please review the following messages:" msgstr "Pregledajte sledeće poruke:" #: ../sos/sosreport.py:683 msgid "Are you sure you would like to continue (y/n) ? " msgstr "Da li sigurno želite da nastavite (d/n) ?" #: ../sos/sosreport.py:685 msgid "y" msgstr "d" #: ../sos/sosreport.py:685 msgid "Y" msgstr "D" #: ../sos/sosreport.py:688 msgid "n" msgstr "n" #: ../sos/sosreport.py:688 msgid "N" msgstr "N" #: ../sos/sosreport.py:713 msgid " Running plugins. Please wait ..." msgstr " Pokrećem dodatke. Molimo sačekajte ..." #: ../sos/sosreport.py:827 #, python-format msgid " sosreport build tree is located at : %s" msgstr " stablo sosreport izgradnje se nalazi na : %s" #: ../sos/policyredhat.py:211 #, python-format msgid "Please enter your first initial and last name [%s]: " msgstr "Unesite vaš prvi inicijal i prezime [%s]: " #: ../sos/policyredhat.py:214 msgid "Please enter the case number that you are generating this report for: " msgstr "Unesite broj slučaja za koji pravite ovaj izveštaj:" #: ../sos/policyredhat.py:254 msgid "Creating compressed archive..." msgstr "Pravim komprimovanu arhivu..." #: ../sos/policyredhat.py:284 msgid "Encrypting archive..." msgstr "Šifriram arhivu..." #: ../sos/policyredhat.py:304 msgid "There was a problem encrypting your report." msgstr "Došlo je do greške pri šifrovanju vašeg izveštaja." #: ../sos/policyredhat.py:328 #, python-format msgid "" "Your sosreport has been generated and saved in:\n" " %s" msgstr "" "Vaš sos izveštaj je napravljen i sačuvan u:\n" " %s" #: ../sos/policyredhat.py:331 msgid "The md5sum is: " msgstr "md5sum je: " #: ../sos/policyredhat.py:333 msgid "Please send this file to your support representative." msgstr "Pošaljite ovu datoteku vašem predstavniku podrške." #: ../sos/policyredhat.py:355 msgid "No URL defined in config file." msgstr "Nema definisane URL adrese u datoteci podešavanja." #: ../sos/policyredhat.py:362 msgid "Cannot upload to specified URL." msgstr "Ne mogu da pošaljem na navedeni URL." #: ../sos/policyredhat.py:399 msgid "There was a problem uploading your report to Red Hat support." msgstr "Pojavio se problem pri slanju vašeg izveštaja Red Hat podršci." #: ../sos/policyredhat.py:401 #, python-format msgid "Your report was successfully uploaded to %s with name:" msgstr "Vaš izveštaj je uspešno poslat na %s sa imenom:" #: ../sos/policyredhat.py:404 msgid "Please communicate this name to your support representative." msgstr "Prenesite ovo ime vašem predstavniku podrške." #~ msgid "plugin %s skipped (--skip-plugins)" #~ msgstr "dodatak %s je preskočen (--skip-plugins)" #~ msgid "plugin %s is inactive (use -e or -o to enable)." #~ msgstr "dodatak %s nije aktivan (upotrebite -e ili -o da ga uključite)" #~ msgid "plugin %s not specified in --only-plugins list" #~ msgstr "dodatak %s nije naveden u spisku --only-plugins" #~ msgid "processing options from plugin: %s" #~ msgstr "obrađujem opcije od dodatka: %s" sosreport/po/en_GB.po0000644000175000017500000001414412254061770013210 0ustar zefzef# English translations for PACKAGE package. # Copyright (C) 2007 ORGANIZATION # Automatically generated, 2007. # msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-11-15 15:02+0000\n" "PO-Revision-Date: 2007-10-24 08:45\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: pygettext.py 1.5\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: ../sos/sosreport.py:350 msgid "Could not create temporary directory." msgstr "Could not create temporary directory." #: ../sos/sosreport.py:413 #, python-format msgid "sosreport (version %s)" msgstr "sosreport (version %s)" #: ../sos/sosreport.py:438 #, python-format msgid "plugin %s does not validate, skipping" msgstr "plugin %s does not validate, skipping" #: ../sos/sosreport.py:467 #, python-format msgid "plugin %s does not install, skipping" msgstr "plugin %s does not install, skipping" #: ../sos/sosreport.py:563 msgid "no valid plugins found" msgstr "no valid plugins found" #: ../sos/sosreport.py:567 msgid "The following plugins are currently enabled:" msgstr "The following plugins are currently enabled:" #: ../sos/sosreport.py:573 msgid "No plugin enabled." msgstr "No plugin enabled." #: ../sos/sosreport.py:577 msgid "The following plugins are currently disabled:" msgstr "The following plugins are currently disabled:" #: ../sos/sosreport.py:585 msgid "The following plugin options are available:" msgstr "The following plugin options are available:" #: ../sos/sosreport.py:606 msgid "No plugin options available." msgstr "No plugin options available." #: ../sos/sosreport.py:614 msgid "sosreport requires root permissions to run." msgstr "sosreport requires root permissions to run." #: ../sos/sosreport.py:621 msgid "no valid plugins were enabled" msgstr "no valid plugins were enabled" #: ../sos/sosreport.py:624 #, fuzzy, python-format msgid "" "This utility will collect some detailed information about the\n" "hardware and setup of your %(distroa)s system.\n" "The information is collected and an archive is packaged under\n" "/tmp, which you can send to a support representative.\n" "%(distrob)s will use this information for diagnostic purposes ONLY\n" "and it will be considered confidential information.\n" "\n" "This process may take a while to complete.\n" "No changes will be made to your system.\n" "\n" msgstr "" "This utility will collect some detailed information about the\n" "hardware and setup of your Red Hat Enterprise Linux system.\n" "The information is collected and an archive is packaged under\n" "/tmp, which you can send to a support representative.\n" "Red Hat will use this information for diagnostic purposes ONLY\n" "and it will be considered confidential information.\n" "\n" "This process may take a while to complete.\n" "No changes will be made to your system.\n" "\n" #: ../sos/sosreport.py:639 msgid "Press ENTER to continue, or CTRL-C to quit.\n" msgstr "Press ENTER to continue, or CTRL-C to quit.\n" #: ../sos/sosreport.py:665 msgid "One or more plugins have detected a problem in your configuration." msgstr "One or more plugins have detected a problem in your configuration." #: ../sos/sosreport.py:667 msgid "Please review the following messages:" msgstr "Please review the following messages:" #: ../sos/sosreport.py:683 msgid "Are you sure you would like to continue (y/n) ? " msgstr "Are you sure you would like to continue (y/n) ? " #: ../sos/sosreport.py:685 msgid "y" msgstr "y" #: ../sos/sosreport.py:685 msgid "Y" msgstr "Y" #: ../sos/sosreport.py:688 msgid "n" msgstr "n" #: ../sos/sosreport.py:688 msgid "N" msgstr "N" #: ../sos/sosreport.py:713 msgid " Running plugins. Please wait ..." msgstr "" #: ../sos/sosreport.py:827 #, python-format msgid " sosreport build tree is located at : %s" msgstr "" #: ../sos/policyredhat.py:211 #, python-format msgid "Please enter your first initial and last name [%s]: " msgstr "Please enter your first initial and last name [%s]: " #: ../sos/policyredhat.py:214 msgid "Please enter the case number that you are generating this report for: " msgstr "Please enter the case number that you are generating this report for: " #: ../sos/policyredhat.py:254 msgid "Creating compressed archive..." msgstr "Creating compressed archive..." #: ../sos/policyredhat.py:284 msgid "Encrypting archive..." msgstr "Encrypting archive..." #: ../sos/policyredhat.py:304 msgid "There was a problem encrypting your report." msgstr "There was a problem encrypting your report." #: ../sos/policyredhat.py:328 #, python-format msgid "" "Your sosreport has been generated and saved in:\n" " %s" msgstr "" "Your sosreport has been generated and saved in:\n" " %s" #: ../sos/policyredhat.py:331 msgid "The md5sum is: " msgstr "The md5sum is: " #: ../sos/policyredhat.py:333 msgid "Please send this file to your support representative." msgstr "Please send this file to your support representative." #: ../sos/policyredhat.py:355 msgid "No URL defined in config file." msgstr "" #: ../sos/policyredhat.py:362 msgid "Cannot upload to specified URL." msgstr "Cannot upload to specified URL." #: ../sos/policyredhat.py:399 msgid "There was a problem uploading your report to Red Hat support." msgstr "There was a problem uploading your report to Red Hat support." #: ../sos/policyredhat.py:401 #, fuzzy, python-format msgid "Your report was successfully uploaded to %s with name:" msgstr "" "Your report was successfully uploaded to Red Hat's ftp server with name:" #: ../sos/policyredhat.py:404 msgid "Please communicate this name to your support representative." msgstr "Please communicate this name to your support representative." #~ msgid "plugin %s skipped (--skip-plugins)" #~ msgstr "plugin %s skipped (--skip-plugins)" #~ msgid "plugin %s is inactive (use -e or -o to enable)." #~ msgstr "plugin %s is inactive (use -e or -o to enable)." #~ msgid "plugin %s not specified in --only-plugins list" #~ msgstr "plugin %s not specified in --only-plugins list" #~ msgid "processing options from plugin: %s" #~ msgstr "processing options from plugin: %s" sosreport/po/mr.po0000644000175000017500000002035612254061770012656 0ustar zefzef# translation of sos.trunk.po to Marathi # Marathi translations for PACKAGE package. # Copyright (C) 2007 ORGANIZATION # # Automatically generated, 2007. # Sandeep Shedmake , 2009, 2011. msgid "" msgstr "" "Project-Id-Version: sos.trunk\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-11-15 15:02+0000\n" "PO-Revision-Date: 2011-01-11 14:15+0530\n" "Last-Translator: Sandeep Shedmake \n" "Language-Team: Marathi \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: mr\n" "Generated-By: pygettext.py 1.5\n" "X-Generator: KBabel 1.11.4\n" "Plural-Forms: nplurals=2; plural=(n!=1);\n" #: ../sos/sosreport.py:350 msgid "Could not create temporary directory." msgstr "तात्पुर्ती डिरेक्ट्री निर्माण करण्यास अशक्य." #: ../sos/sosreport.py:413 #, python-format msgid "sosreport (version %s)" msgstr "sosreport (आवृत्ती %s)" #: ../sos/sosreport.py:438 #, python-format msgid "plugin %s does not validate, skipping" msgstr "प्लगइन %s तपासले गेले नाही, वगळत आहे" #: ../sos/sosreport.py:467 #, python-format msgid "plugin %s does not install, skipping" msgstr "प्लगइन %s चे प्रतिष्ठापान अशक्य, वगळत आहे" #: ../sos/sosreport.py:563 msgid "no valid plugins found" msgstr "वैध प्लगइनस् आढळले नाही" #: ../sos/sosreport.py:567 msgid "The following plugins are currently enabled:" msgstr "खालील प्लगइनस् सध्या कार्यक्षम केले आहेत:" #: ../sos/sosreport.py:573 msgid "No plugin enabled." msgstr "प्लगइन कार्यक्षम केले नाही." #: ../sos/sosreport.py:577 msgid "The following plugins are currently disabled:" msgstr "खालील प्लगइनस् सध्या अकार्यक्षम केले आहे:" #: ../sos/sosreport.py:585 msgid "The following plugin options are available:" msgstr "खालील प्लगइन पर्याय उपलब्ध आहे:" #: ../sos/sosreport.py:606 msgid "No plugin options available." msgstr "प्लगइन पर्याय उपलब्ध नाही." #: ../sos/sosreport.py:614 msgid "sosreport requires root permissions to run." msgstr "sosreport ला चालवण्यासाठी रूट परवानगी आवश्यक आहे." #: ../sos/sosreport.py:621 msgid "no valid plugins were enabled" msgstr "वैध प्लगइनस् कार्यक्षम केले नाही" #: ../sos/sosreport.py:624 #, python-format msgid "" "This utility will collect some detailed information about the\n" "hardware and setup of your %(distroa)s system.\n" "The information is collected and an archive is packaged under\n" "/tmp, which you can send to a support representative.\n" "%(distrob)s will use this information for diagnostic purposes ONLY\n" "and it will be considered confidential information.\n" "\n" "This process may take a while to complete.\n" "No changes will be made to your system.\n" "\n" msgstr "" "ही युटीलीटी हार्डवेअर विषयी काहिक तपशील माहिती\n" "गोळा करते व तुमची %(distroa)s प्रणली सेटअप करते.\n" "माहिती गोळा केली जाते व एक आर्काइव्ह\n" "/tmp अंतर्गत पॅकेज्ड् केले जाते, जे तुम्ही सपोर्ट प्रतिनीधीकडे पाठवू शकता.\n" "%(distrob)s या माहितीचा वापर फक्त विश्लेषण कारणास्तवच करेल\n" "व त्यांस गोपणीय म्हणून ठरवते.\n" "\n" "हे कार्य पूर्ण व्हायला काहिक वेळ जरूर लागेल.\n" "परंतु तुमच्या प्रणलीत कोणताही बदल केला जाणार नाही.\n" "\n" #: ../sos/sosreport.py:639 msgid "Press ENTER to continue, or CTRL-C to quit.\n" msgstr "पुढे जाण्यासाठी ENTER दाबा, किंवा बाहेर पडण्यासाठी CTRL-C दाबा.\n" #: ../sos/sosreport.py:665 msgid "One or more plugins have detected a problem in your configuration." msgstr "तुमच्या संयोजनात एक किंवा जास्त प्लगइनमध्ये अडचणी आढळल्यात." #: ../sos/sosreport.py:667 msgid "Please review the following messages:" msgstr "कृपया खालील संदेशचे पूनरावलोकन करा:" #: ../sos/sosreport.py:683 msgid "Are you sure you would like to continue (y/n) ? " msgstr "तुम्हाला नक्की पुढे जायचे (y/n) ? " #: ../sos/sosreport.py:685 msgid "y" msgstr "y" #: ../sos/sosreport.py:685 msgid "Y" msgstr "Y" #: ../sos/sosreport.py:688 msgid "n" msgstr "n" #: ../sos/sosreport.py:688 msgid "N" msgstr "N" #: ../sos/sosreport.py:713 msgid " Running plugins. Please wait ..." msgstr " प्लगईन्स् चालवत आहे. कृपया थांबा ..." #: ../sos/sosreport.py:827 #, python-format msgid " sosreport build tree is located at : %s" msgstr " sosreport बिल्ड ट्री येथे स्थीत आहे : %s" #: ../sos/policyredhat.py:211 #, python-format msgid "Please enter your first initial and last name [%s]: " msgstr "कृपया तुमची प्रथम व शेवटचे नाव द्या [%s]: " #: ../sos/policyredhat.py:214 msgid "Please enter the case number that you are generating this report for: " msgstr "ही तपशील निर्माणसाठी कृपया केस क्रमांक द्या: " #: ../sos/policyredhat.py:254 msgid "Creating compressed archive..." msgstr "आकुंचीत आर्काइव्ह निर्माण करत आहे..." #: ../sos/policyredhat.py:284 msgid "Encrypting archive..." msgstr "आर्काइव्ह एनक्रिप्ट करत आहे..." #: ../sos/policyredhat.py:304 msgid "There was a problem encrypting your report." msgstr "तुमचे तपशील एनक्रिप्ट करतेवेळी अडचण." #: ../sos/policyredhat.py:328 #, python-format msgid "" "Your sosreport has been generated and saved in:\n" " %s" msgstr "" "तुमचे sosreport निर्माण झाले व येथे साठले गेले आहे:\n" " %s" #: ../sos/policyredhat.py:331 msgid "The md5sum is: " msgstr "md5sum याप्रमाणे आहे: " #: ../sos/policyredhat.py:333 msgid "Please send this file to your support representative." msgstr "तुमच्या समर्थीत प्रतिनीधीकरीता कृपया फाइल पाठवा." #: ../sos/policyredhat.py:355 msgid "No URL defined in config file." msgstr "संरचना फाइलमध्ये URL ठरवले नाही." #: ../sos/policyredhat.py:362 msgid "Cannot upload to specified URL." msgstr "निर्देशीत URL अपलोड करण्यास अशक्य." #: ../sos/policyredhat.py:399 msgid "There was a problem uploading your report to Red Hat support." msgstr "तुमचा अहवाल Red Hat सपोर्टकडे पाठवतेवेळी अडचण आढळली." #: ../sos/policyredhat.py:401 #, python-format msgid "Your report was successfully uploaded to %s with name:" msgstr "तुमचे अहवाल %s करीता नावासह यशस्वीरित्या अपलोड केले:" #: ../sos/policyredhat.py:404 msgid "Please communicate this name to your support representative." msgstr "कृपया हे नाव तुमच्या सपोर्ट प्रतिनीधीला कळवा." sosreport/po/el.po0000644000175000017500000002021212254061770012627 0ustar zefzef# Greek translation for sos.trunk package. # Copyright (C) 2010 Fedora Project Greek Translation Team # Giannis Konstantinidis , 2010. # msgid "" msgstr "" "Project-Id-Version: trunk\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-11-15 15:02+0000\n" "PO-Revision-Date: 2010-03-10 16:21-0500\n" "Last-Translator: Giannis Konstantinidis \n" "Language-Team: Greek \n" "Language: el\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "Generated-By: pygettext.py 1.5\n" #: ../sos/sosreport.py:350 msgid "Could not create temporary directory." msgstr "Δεν μπόρεσε να δημιουργηθεί προσωρινή τοποθεσία." #: ../sos/sosreport.py:413 #, python-format msgid "sosreport (version %s)" msgstr "sosreport (έκδοση %s)" #: ../sos/sosreport.py:438 #, python-format msgid "plugin %s does not validate, skipping" msgstr "το πρόσθετο %s δεν είναι έγκυρο,η διαδικασία προσπερνάται." #: ../sos/sosreport.py:467 #, python-format msgid "plugin %s does not install, skipping" msgstr "το πρόσθετο %s δεν μπορεί να εγκατασταθεί,η διαδικασία προσπερνάται" #: ../sos/sosreport.py:563 msgid "no valid plugins found" msgstr "δεν βρέθηκαν έγκυρα πρόσθετα" #: ../sos/sosreport.py:567 msgid "The following plugins are currently enabled:" msgstr "Τα παρακάτω πρόσθετα είναι αυτη τη στιγμή ενεργοποιημένα:" #: ../sos/sosreport.py:573 msgid "No plugin enabled." msgstr "Δεν ενεργοποιήθηκε κάποιο πρόσθετο." #: ../sos/sosreport.py:577 msgid "The following plugins are currently disabled:" msgstr "Τα παρακάτω πρόσθετα είναι αυτη τη στιγμή απενεργοποιημένα:" #: ../sos/sosreport.py:585 msgid "The following plugin options are available:" msgstr "Οι παρακάτω ρυθμίσεις για τα πρόσθετα είναι διαθέσιμες:" #: ../sos/sosreport.py:606 msgid "No plugin options available." msgstr "Δεν υπάρχουν διαθέσιμες ρυθμίσεις για τα πρόσθετα." #: ../sos/sosreport.py:614 msgid "sosreport requires root permissions to run." msgstr "" "το sosreport χρειάζεται να έχετε δικαιώματα διαχειρηστή για να εκτελεστεί." #: ../sos/sosreport.py:621 msgid "no valid plugins were enabled" msgstr "δεν ενεργοποιήθηκε κάποιο έγκυρο πρόσθετο" #: ../sos/sosreport.py:624 #, fuzzy, python-format msgid "" "This utility will collect some detailed information about the\n" "hardware and setup of your %(distroa)s system.\n" "The information is collected and an archive is packaged under\n" "/tmp, which you can send to a support representative.\n" "%(distrob)s will use this information for diagnostic purposes ONLY\n" "and it will be considered confidential information.\n" "\n" "This process may take a while to complete.\n" "No changes will be made to your system.\n" "\n" msgstr "" "Αυτό το εργαλείο θα συγκετρώσει ορισμένες πληροφορίες για τον υπολογιστή σας " "και την εγκατάσταση του Red Hat Enterprise Linux συστήματος.\n" "Οι πληροφορίες συγκετρώνονται και το archive δημιουργήται στο\n" "/tmp,το οποίο και μπορείτε να στείλετε σε έναν αντιπρόσωπο υποστήριξης.\n" "Η Red Hat θα χρησιμοποιήσει αυτα τα δεδομένα ΜΟΝΟ για διαγνωστικούς σκοπούς\n" "και θα παραμείνουν εμπιστευτηκά.\n" "\n" #: ../sos/sosreport.py:639 msgid "Press ENTER to continue, or CTRL-C to quit.\n" msgstr "Πατήστε ENTER για να συνεχίσετε ή CTRL-C για έξοδο.\n" #: ../sos/sosreport.py:665 msgid "One or more plugins have detected a problem in your configuration." msgstr "" "Ένα ή περισσότερα plugins αντιμετώπησαν πρόβλημα κατα τις ρυθμίσεις σας." #: ../sos/sosreport.py:667 msgid "Please review the following messages:" msgstr "Παρακαλώ δείτε τα παρακάτω μυνήματα:" #: ../sos/sosreport.py:683 msgid "Are you sure you would like to continue (y/n) ? " msgstr "Είστε σίγουρος οτι θέλετε να συνεχίσετε (ν/ο) ;" #: ../sos/sosreport.py:685 msgid "y" msgstr "ν" #: ../sos/sosreport.py:685 msgid "Y" msgstr "Ν" #: ../sos/sosreport.py:688 msgid "n" msgstr "ο" #: ../sos/sosreport.py:688 msgid "N" msgstr "Ο" #: ../sos/sosreport.py:713 msgid " Running plugins. Please wait ..." msgstr "Εκτέλεση πρόσθετων. Παρακαλώ περιμένετε ..." #: ../sos/sosreport.py:827 #, python-format msgid " sosreport build tree is located at : %s" msgstr "Το δημιουργημένο sosreport βρίσκεται στον φάκελο: %s" #: ../sos/policyredhat.py:211 #, python-format msgid "Please enter your first initial and last name [%s]: " msgstr "Παρακαλώ εισάγετε το ονοματεπώνυμό σας [%s]:" #: ../sos/policyredhat.py:214 msgid "Please enter the case number that you are generating this report for: " msgstr "Παρακαλώ εισάγετε το case number για το οποίο γράφετε την αναφορά:" #: ../sos/policyredhat.py:254 msgid "Creating compressed archive..." msgstr "Δημιουργία συμπιεσμένου αρχείου..." #: ../sos/policyredhat.py:284 msgid "Encrypting archive..." msgstr "Το αρχείο κρυπτογραφείται..." #: ../sos/policyredhat.py:304 msgid "There was a problem encrypting your report." msgstr "Υπήρξε ένα πρόβλημα κατα την διαδικασία κρυπτογράφησης της αναφοράς." #: ../sos/policyredhat.py:328 #, python-format msgid "" "Your sosreport has been generated and saved in:\n" " %s" msgstr "" "Η αναφορά σας δημιουργήθηκε και αποθηκεύτηκε στο:\n" " %s" #: ../sos/policyredhat.py:331 msgid "The md5sum is: " msgstr "Το md5sum είναι:" #: ../sos/policyredhat.py:333 msgid "Please send this file to your support representative." msgstr "Παρακαλώ στείλτε το αρχείο αυτό στο αντιπρόσωπο υποστήριξης σας." #: ../sos/policyredhat.py:355 msgid "No URL defined in config file." msgstr "Δεν ορίστηκε URL στο αρχείο ρυθμίσεων" #: ../sos/policyredhat.py:362 msgid "Cannot upload to specified URL." msgstr "Δεν είναι δυνατό το upload στο καθορισμένο URL." #: ../sos/policyredhat.py:399 msgid "There was a problem uploading your report to Red Hat support." msgstr "Υπήρξε ένα πρόβλημα κατα το upload της αναφοράς σας στην Red Hat." #: ../sos/policyredhat.py:401 #, python-format msgid "Your report was successfully uploaded to %s with name:" msgstr "Η αναφορά σας στάλθηκε επιτυχώς στo %s με όνομα:" #: ../sos/policyredhat.py:404 msgid "Please communicate this name to your support representative." msgstr "Παρακαλώ επικοινωνήστε με τον αντιπρόσωπο υποστήριξής σας." #~ msgid "plugin %s skipped (--skip-plugins)" #~ msgstr "το πρόσθετο %s προσπερνάται (--skip plugins)" #~ msgid "plugin %s is inactive (use -e or -o to enable)." #~ msgstr "" #~ "το πρόσθετο %s είναι ανένεργο (χρησιμποιήστε τα -e ή -o για ενεργοποίηση)" #~ msgid "plugin %s not specified in --only-plugins list" #~ msgstr "το πρόσθετο %s δεν είναι δηλωμένο --only plugins list" #~ msgid "processing options from plugin: %s" #~ msgstr "γίνεται επεξεργασία των ρυθμίσεων από το πρόσθετο: %s" sosreport/po/si.po0000644000175000017500000002137212254061770012652 0ustar zefzef# translation of si.po to Sinhala # Sinhalese translations for PACKAGE package. # Copyright (C) 2007 ORGANIZATION # # Automatically generated, 2007. # Danishka Navin , 2007. msgid "" msgstr "" "Project-Id-Version: si\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-11-15 15:02+0000\n" "PO-Revision-Date: 2007-11-07 19:03+0530\n" "Last-Translator: Danishka Navin \n" "Language-Team: Sinhala \n" "Language: si\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: pygettext.py 1.5\n" "X-Generator: KBabel 1.11.4\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: ../sos/sosreport.py:350 msgid "Could not create temporary directory." msgstr "තාවකාලීක බහලුම නිර්මාණය කළ නොහැකි විය." #: ../sos/sosreport.py:413 #, python-format msgid "sosreport (version %s)" msgstr "sosreport (%s වෙළුම)" #: ../sos/sosreport.py:438 #, python-format msgid "plugin %s does not validate, skipping" msgstr "%s ප්ලගීනය සත්‍යාපනය වන්නේ නැත, මගහරිමින්" #: ../sos/sosreport.py:467 #, python-format msgid "plugin %s does not install, skipping" msgstr "%s ප්ලගීනය ස්ථාපනය වන්නේ නැත, මගහරි" #: ../sos/sosreport.py:563 msgid "no valid plugins found" msgstr "නිරවද්‍ය පල්ගීන හමුවුයේ නැත" #: ../sos/sosreport.py:567 msgid "The following plugins are currently enabled:" msgstr "පහත දැක්වෙන ප්ලගීන දැනට සක්‍රීයව ඇත:" #: ../sos/sosreport.py:573 msgid "No plugin enabled." msgstr "ප්ලගීන කිසිවක් සක්‍රීය නැත." #: ../sos/sosreport.py:577 msgid "The following plugins are currently disabled:" msgstr "පහත පල්ගීන විකල්ප දැනට අක්‍රීයව ඇත:" #: ../sos/sosreport.py:585 msgid "The following plugin options are available:" msgstr "පහත පල්ගීන විකල්ප භාවිතයට ඇත:" #: ../sos/sosreport.py:606 msgid "No plugin options available." msgstr "කිසිදු පල්ගීන විකල්පයක් භාවිතයට නැත." #: ../sos/sosreport.py:614 msgid "sosreport requires root permissions to run." msgstr "sosreport ක්‍රියාත්මක වීම සඳහා root අවසර අවශ්‍යව ඇත." #: ../sos/sosreport.py:621 msgid "no valid plugins were enabled" msgstr "කිසිදු නිරවද්‍ය පල්ගිනයක් සක්‍රිය කර නැත" #: ../sos/sosreport.py:624 #, fuzzy, python-format msgid "" "This utility will collect some detailed information about the\n" "hardware and setup of your %(distroa)s system.\n" "The information is collected and an archive is packaged under\n" "/tmp, which you can send to a support representative.\n" "%(distrob)s will use this information for diagnostic purposes ONLY\n" "and it will be considered confidential information.\n" "\n" "This process may take a while to complete.\n" "No changes will be made to your system.\n" "\n" msgstr "" "මෙම උපයෝගි තාවය දෘඩාංග පිළිබදව සවිස්තරාත්මක තොරතුරු රැස්කරණ අතර ඔබගේ Red Hat " "Enterprise Linux පද්ධතිය පිහිටවනු ලැබේ.\n" "රැස් කළ තොරතුරු සහ සංරක්‍ෂකය /tmp යටතේ ඇසුරුම් ගත කර ඇති අතර ඔබට එය සහායක නියෝජිත වෙත " "යැවිය හැක.\n" "Red Hat මෙම තොරතුරු භාවිතා කරන්නේ දෝෂ විනිශ්චය පමණක් වන අතර එම තොරතුරු රහසිගත තොරතුරු " "ලෙස සළකණු ලබයි.\n" "\n" "මෙම ක්‍රියාව නිම වීමට වේලාවක් ගතවනු ඇත.\n" "ඔබගේ පද්ධතියට කිසිදු වෙනසක් සිදු නොවනු ඇත.\n" "\n" #: ../sos/sosreport.py:639 msgid "Press ENTER to continue, or CTRL-C to quit.\n" msgstr "දිගටම කරගෙන යාමට ENTER හෝ පිට වීමට CTRL-C ඔබන්න.\n" #: ../sos/sosreport.py:665 msgid "One or more plugins have detected a problem in your configuration." msgstr "ප්ලගීන එකක හෝ කිහිපයක් ඔබගේ ප්ධතිය තුළ වූ දෝෂයක් අනාවරණය කරගෙන ඇත." #: ../sos/sosreport.py:667 msgid "Please review the following messages:" msgstr "කරුණාකර පහත පණිවිඩ නැවත සළකා බලන්න:" #: ../sos/sosreport.py:683 msgid "Are you sure you would like to continue (y/n) ? " msgstr "ඔබට විශ්වාසද? ඔබට දිගටම කරගෙන යාමට අවශ්‍යද (y/n) ? " #: ../sos/sosreport.py:685 msgid "y" msgstr "y" #: ../sos/sosreport.py:685 msgid "Y" msgstr "Y" #: ../sos/sosreport.py:688 msgid "n" msgstr "n" #: ../sos/sosreport.py:688 msgid "N" msgstr "N" #: ../sos/sosreport.py:713 msgid " Running plugins. Please wait ..." msgstr "" #: ../sos/sosreport.py:827 #, python-format msgid " sosreport build tree is located at : %s" msgstr "" #: ../sos/policyredhat.py:211 #, python-format msgid "Please enter your first initial and last name [%s]: " msgstr "කරුණාකර ඔබගේ පළමු මුළකුර සහ අවසාන නම ඇතුළත් කරන්න [%s]: " #: ../sos/policyredhat.py:214 msgid "Please enter the case number that you are generating this report for: " msgstr "කරුණාකර මෙම වාර්තාව ගොඩනැන්වීමට අදාල අවස්ථා අංකය ඇතුළත් කරන්න: " #: ../sos/policyredhat.py:254 msgid "Creating compressed archive..." msgstr "හැකිලු සංරක්‍ෂක නිර්මාණය කරමින්..." #: ../sos/policyredhat.py:284 msgid "Encrypting archive..." msgstr "සංරක්‍ෂණ සංකේතාංකනය කරමින්..." #: ../sos/policyredhat.py:304 msgid "There was a problem encrypting your report." msgstr "ඔබගේ වාර්තාව සංකේතාංනය කිරීමේදි දෝෂයක් ඇතිවිය." #: ../sos/policyredhat.py:328 #, python-format msgid "" "Your sosreport has been generated and saved in:\n" " %s" msgstr "" "ඔබගේ sosreport නිර්මාණය වූ අතර සුරකිනු ලැබු යේ:\n" " %s" #: ../sos/policyredhat.py:331 msgid "The md5sum is: " msgstr "md5sum වනුයේ: " #: ../sos/policyredhat.py:333 msgid "Please send this file to your support representative." msgstr "කරුණාකර මෙම ගොනුව ඔබගේ සහායක නියෝජිත වෙත යවන්න." #: ../sos/policyredhat.py:355 msgid "No URL defined in config file." msgstr "" #: ../sos/policyredhat.py:362 msgid "Cannot upload to specified URL." msgstr "දක්වන ලඳ URL වෙත ලබා දිය නොහැක." #: ../sos/policyredhat.py:399 msgid "There was a problem uploading your report to Red Hat support." msgstr "ඔබගේ වාර්තාව Red Hat සහය වෙතට ලබා දිමේදි දෝෂයල් ඇති විය." #: ../sos/policyredhat.py:401 #, fuzzy, python-format msgid "Your report was successfully uploaded to %s with name:" msgstr "ඔබගේ වාර්තාව සාර්තකව Red Hat's ftp සේවාදායකයට ලබාදුන් අතර නම වූයේ:" #: ../sos/policyredhat.py:404 msgid "Please communicate this name to your support representative." msgstr "ඔබගේ සහායක නියෝජිත වෙතට සංනිවේදනයට මෙම නම භාවිතා කරන්න." #~ msgid "plugin %s skipped (--skip-plugins)" #~ msgstr "%s ප්ලගීනය මගහරින ලදි (--skip-plugins)" #~ msgid "plugin %s is inactive (use -e or -o to enable)." #~ msgstr "%sප්ලගීනය අක්‍රීයව ඇත ( සක්‍රීය කිරීමට -e හෝ -o භාවිතා කරන්න)." #~ msgid "plugin %s not specified in --only-plugins list" #~ msgstr "--only-plugins ලැයිස්තුව තුළ %s ප්ලගීනය විශේෂිතව දක්වා නැත" #~ msgid "processing options from plugin: %s" #~ msgstr "ප්ලගීන වෙතින් විකල්ප සකසමින්: %s" sosreport/po/th.po0000644000175000017500000002014212254061770012644 0ustar zefzef# Thai translations for PACKAGE package. # Copyright (C) 2007 ORGANIZATION # # Automatically generated, 2007, 2009. msgid "" msgstr "" "Project-Id-Version: sos.th\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-11-15 15:02+0000\n" "PO-Revision-Date: 2009-05-13 12:12+0000\n" "Last-Translator: \n" "Language-Team: Thai \n" "Language: th\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: pygettext.py 1.5\n" "X-Generator: Lokalize 0.3\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" #: ../sos/sosreport.py:350 msgid "Could not create temporary directory." msgstr "ไม่สามารถสร้างไดเรคทอรีชั่วคราว" #: ../sos/sosreport.py:413 #, python-format msgid "sosreport (version %s)" msgstr "sosreport (รุ่น %s)" #: ../sos/sosreport.py:438 #, python-format msgid "plugin %s does not validate, skipping" msgstr "ส่วนขยาย %s ไม่ถูกต้อง จะข้ามไป" #: ../sos/sosreport.py:467 #, python-format msgid "plugin %s does not install, skipping" msgstr "ส่วนขยาย %s ติดตั้งไม่ได้ จะข้ามไป" #: ../sos/sosreport.py:563 msgid "no valid plugins found" msgstr "ไม่พบส่วนขยายที่ถูกต้อง" #: ../sos/sosreport.py:567 msgid "The following plugins are currently enabled:" msgstr "ส่วนขยายต่อไปนี้เปิดใช้งานอยู่" #: ../sos/sosreport.py:573 msgid "No plugin enabled." msgstr "ไม่มีส่วนขยายเปิดใช้งาน" #: ../sos/sosreport.py:577 msgid "The following plugins are currently disabled:" msgstr "ส่วนขยายต่อไปนี้ปิดการใช้งานอยู่:" #: ../sos/sosreport.py:585 msgid "The following plugin options are available:" msgstr "มีตัวเลือกเหล่านี้จากส่วนขยาย:" #: ../sos/sosreport.py:606 msgid "No plugin options available." msgstr "ไม่มีตัวเลือกจากส่วนขยาย" #: ../sos/sosreport.py:614 msgid "sosreport requires root permissions to run." msgstr "sosreport ต้องใช้สิทธิ root ในการทำงาน" #: ../sos/sosreport.py:621 msgid "no valid plugins were enabled" msgstr "ไม่มีส่วนขยายที่ถูกต้องเปิดใช้งาน" #: ../sos/sosreport.py:624 #, fuzzy, python-format msgid "" "This utility will collect some detailed information about the\n" "hardware and setup of your %(distroa)s system.\n" "The information is collected and an archive is packaged under\n" "/tmp, which you can send to a support representative.\n" "%(distrob)s will use this information for diagnostic purposes ONLY\n" "and it will be considered confidential information.\n" "\n" "This process may take a while to complete.\n" "No changes will be made to your system.\n" "\n" msgstr "" "เครื่องมือนี้จะเก็บข้อมูลโดยละเอียดเกี่ยวกับฮาร์ดแวร์และการตั้งค่า\n" "ระบบ Red Hat Enterprise Linux ของคุณ ข้อมูลจะถูกเก็บและ\n" "สร้างเป็นไฟล์ที่ /tmp ซึ่งคุณสามารถส่งไปยังผู้สนับสนุนได้\n" "Red Hat จะใช้ข้อมูลนี้ในการแก้ไขปัญหาเท่านั้น และจะถือว่าเป็น\n" "ความลับ\n" "\n" "กระบวนการนี้อาจจะใช้เวลาสักครู่ในการทำงาน จะไม่มีการแก้ไข\n" "ดัดแปลงระบบของคุณ\n" #: ../sos/sosreport.py:639 msgid "Press ENTER to continue, or CTRL-C to quit.\n" msgstr "กด ENTER เพื่อทำงานต่อ หรือ CTRL+C เพื่อออก\n" #: ../sos/sosreport.py:665 msgid "One or more plugins have detected a problem in your configuration." msgstr "มีส่วนขยายตัวใดตัวหนึ่งตรวจพบปัญหาในการตั้งค่าของคุณ" #: ../sos/sosreport.py:667 msgid "Please review the following messages:" msgstr "กรุณาอ่านข้อความเหล่านี้:" #: ../sos/sosreport.py:683 msgid "Are you sure you would like to continue (y/n) ? " msgstr "คุณต้องการทำต่อไปหรือไม่ (y/n)?" #: ../sos/sosreport.py:685 msgid "y" msgstr "y" #: ../sos/sosreport.py:685 msgid "Y" msgstr "Y" #: ../sos/sosreport.py:688 msgid "n" msgstr "n" #: ../sos/sosreport.py:688 msgid "N" msgstr "N" #: ../sos/sosreport.py:713 msgid " Running plugins. Please wait ..." msgstr "" #: ../sos/sosreport.py:827 #, python-format msgid " sosreport build tree is located at : %s" msgstr "" #: ../sos/policyredhat.py:211 #, python-format msgid "Please enter your first initial and last name [%s]: " msgstr "กรุณากรอกชื่อสกุล [%s]:" #: ../sos/policyredhat.py:214 msgid "Please enter the case number that you are generating this report for: " msgstr "กรุณากรอกหมายเลขปัญหาที่จะสร้างรายงาน:" #: ../sos/policyredhat.py:254 msgid "Creating compressed archive..." msgstr "กำลังสร้างไฟล์บีบอัด..." #: ../sos/policyredhat.py:284 msgid "Encrypting archive..." msgstr "กำลังเข้ารหัสไฟล์..." #: ../sos/policyredhat.py:304 msgid "There was a problem encrypting your report." msgstr "มีปัญหาระหว่างการเข้ารหัสรายงาน" #: ../sos/policyredhat.py:328 #, python-format msgid "" "Your sosreport has been generated and saved in:\n" " %s" msgstr "" "รายงาน sos ของคุณได้ถูกสร้างและบันทึกใน:\n" " %s" #: ../sos/policyredhat.py:331 msgid "The md5sum is: " msgstr "md5sum คือ:" #: ../sos/policyredhat.py:333 msgid "Please send this file to your support representative." msgstr "กรุณาส่งไฟล์นี้ไปยังตัวแทนผู้สนับสนุนของคุณ" #: ../sos/policyredhat.py:355 msgid "No URL defined in config file." msgstr "" #: ../sos/policyredhat.py:362 msgid "Cannot upload to specified URL." msgstr "ไม่สามารถอัพโหลดไปยัง URL ที่ระบุ" #: ../sos/policyredhat.py:399 msgid "There was a problem uploading your report to Red Hat support." msgstr "มีปัญหาในการอัพโหลดรายงานของคุณไปยังฝ่ายสนับสนุน Red Hat" #: ../sos/policyredhat.py:401 #, fuzzy, python-format msgid "Your report was successfully uploaded to %s with name:" msgstr "รายงานของคุณได้ถูกส่งไปยังเซิร์ฟเวอร์ ftp ของ Red Hat ในชื่อ:" #: ../sos/policyredhat.py:404 msgid "Please communicate this name to your support representative." msgstr "กรุณาบอกชื่อนี้กับตัวแทนผู้สนับสนุนของคุณ" #~ msgid "plugin %s skipped (--skip-plugins)" #~ msgstr "ส่วนขยาย %s ถูกข้าม (--skip-plugins)" #~ msgid "plugin %s is inactive (use -e or -o to enable)." #~ msgstr "ส่วนขยาย %s ไม่ทำงาน (ใช้ -e หรือ -o เพื่อเปิดใช้)" #~ msgid "plugin %s not specified in --only-plugins list" #~ msgstr "ส่วนขยาย %s ไม่ได้ระบุในรายการ --only-plugins" #~ msgid "processing options from plugin: %s" #~ msgstr "กำลังประมวลผลตัวเลือกจากส่วนขยาย %s" sosreport/po/cs.po0000644000175000017500000001366512254061770012652 0ustar zefzef# Czech translations for sos package. # Copyright (C) 2007 Free Software Foundation. # # Milan Keršláger , 2010. # msgid "" msgstr "" "Project-Id-Version: 1\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-11-15 15:02+0000\n" "PO-Revision-Date: 2010-08-22 10:38+0100\n" "Last-Translator: Milan Keršláger \n" "Language-Team: Czech >\n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: pygettext.py 1.5\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" #: ../sos/sosreport.py:350 msgid "Could not create temporary directory." msgstr "Nelze vytvořit dočasný adresář." #: ../sos/sosreport.py:413 #, python-format msgid "sosreport (version %s)" msgstr "sosreport (verze %s)" #: ../sos/sosreport.py:438 #, python-format msgid "plugin %s does not validate, skipping" msgstr "plugin %s není validní, přeskakuji" #: ../sos/sosreport.py:467 #, python-format msgid "plugin %s does not install, skipping" msgstr "plugin %s nejde nainstalovat, přeskakuji" #: ../sos/sosreport.py:563 msgid "no valid plugins found" msgstr "žádné validní pluginy" #: ../sos/sosreport.py:567 msgid "The following plugins are currently enabled:" msgstr "Právě jsou povoleny tyto pluginy:" #: ../sos/sosreport.py:573 msgid "No plugin enabled." msgstr "Žádné pluginy nejsou povoleny." #: ../sos/sosreport.py:577 msgid "The following plugins are currently disabled:" msgstr "Následující pluginy jsou právě zakázány:" #: ../sos/sosreport.py:585 msgid "The following plugin options are available:" msgstr "K dispozici jsou tato nastavení pluginů:" #: ../sos/sosreport.py:606 msgid "No plugin options available." msgstr "Žádné nastavení pro pluginy." #: ../sos/sosreport.py:614 msgid "sosreport requires root permissions to run." msgstr "sosreport vyžaduje pro poškození práva roota." #: ../sos/sosreport.py:621 msgid "no valid plugins were enabled" msgstr "Žádné validní pluginy nejsou povoleny." #: ../sos/sosreport.py:624 #, python-format msgid "" "This utility will collect some detailed information about the\n" "hardware and setup of your %(distroa)s system.\n" "The information is collected and an archive is packaged under\n" "/tmp, which you can send to a support representative.\n" "%(distrob)s will use this information for diagnostic purposes ONLY\n" "and it will be considered confidential information.\n" "\n" "This process may take a while to complete.\n" "No changes will be made to your system.\n" "\n" msgstr "" "Nástroj sosreport sbírá některé podrobné informace o\n" "hardware počítače a nastavení systému %(distroa)s.\n" "Informace jsou uloženy do archivu v adresáři /tmp,\n" "abyste je mohli odeslat svému oddělení podpory.\n" "%(distrob)s použije tyto informace POUZE pro\n" "diagnostické potřeby a budou považovány za\n" "privátní.\n" "\n" "Celý proces bude chvíli trvat.\n" "V systému nebudou provedeny žádné změny.\n" #: ../sos/sosreport.py:639 msgid "Press ENTER to continue, or CTRL-C to quit.\n" msgstr "Pro pokračování stiskněte ENTER, pro přerušení CTRL+c.\n" #: ../sos/sosreport.py:665 msgid "One or more plugins have detected a problem in your configuration." msgstr "Jeden nebo více pluginů detekovalo problém ve vaší konfiguraci." #: ../sos/sosreport.py:667 msgid "Please review the following messages:" msgstr "Prohlédněte si následující hlášení:" #: ../sos/sosreport.py:683 msgid "Are you sure you would like to continue (y/n) ? " msgstr "Jste si jisti, že chcete pokračovat?" #: ../sos/sosreport.py:685 msgid "y" msgstr "a" #: ../sos/sosreport.py:685 msgid "Y" msgstr "A" #: ../sos/sosreport.py:688 msgid "n" msgstr "n" #: ../sos/sosreport.py:688 msgid "N" msgstr "N" #: ../sos/sosreport.py:713 msgid " Running plugins. Please wait ..." msgstr " Spouštění pluginů. Čekejte prosím..." #: ../sos/sosreport.py:827 #, python-format msgid " sosreport build tree is located at : %s" msgstr " strom pro vytvoření sosreportu je umístěn v: %s" #: ../sos/policyredhat.py:211 #, python-format msgid "Please enter your first initial and last name [%s]: " msgstr "Vložte své jméno a příjmení [%s]: " #: ../sos/policyredhat.py:214 msgid "Please enter the case number that you are generating this report for: " msgstr "Vložte číslo hlášení, pro které vytváříte zprávu." #: ../sos/policyredhat.py:254 msgid "Creating compressed archive..." msgstr "Vytváření komprimovaného archivu..." #: ../sos/policyredhat.py:284 msgid "Encrypting archive..." msgstr "Šifrování archivu..." #: ../sos/policyredhat.py:304 msgid "There was a problem encrypting your report." msgstr "Při šifrování zprávy se vyskytla chyba." #: ../sos/policyredhat.py:328 #, python-format msgid "" "Your sosreport has been generated and saved in:\n" " %s" msgstr "" "Váš sosreport byl vygenerován a uložen v:\n" " %s" #: ../sos/policyredhat.py:331 msgid "The md5sum is: " msgstr "md5sum je:" #: ../sos/policyredhat.py:333 msgid "Please send this file to your support representative." msgstr "Odešlete tento soubor svému oddělení podpory." #: ../sos/policyredhat.py:355 msgid "No URL defined in config file." msgstr "V konfiguračním souboru není definováno URL." #: ../sos/policyredhat.py:362 msgid "Cannot upload to specified URL." msgstr "Nelze uložit na uvedené URL." #: ../sos/policyredhat.py:399 msgid "There was a problem uploading your report to Red Hat support." msgstr "Při odesílání zprávy do firmy Red Hat vznikla chyba." #: ../sos/policyredhat.py:401 #, python-format msgid "Your report was successfully uploaded to %s with name:" msgstr "Vaše zpráva byla úspěšně odeslána na %s pod jménem:" #: ../sos/policyredhat.py:404 msgid "Please communicate this name to your support representative." msgstr "Komunikujte prosím s vaší podporou tohoto jména." sosreport/po/id.po0000644000175000017500000001135012254061770012626 0ustar zefzef# Indonesian translations for PACKAGE package. # Copyright (C) 2007 ORGANIZATION # Automatically generated, 2007. # msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-11-15 15:02+0000\n" "PO-Revision-Date: 2007-10-24 08:45\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: pygettext.py 1.5\n" #: ../sos/sosreport.py:350 msgid "Could not create temporary directory." msgstr "Tidak dapat menciptakan direktori sementara." #: ../sos/sosreport.py:413 #, python-format msgid "sosreport (version %s)" msgstr "" #: ../sos/sosreport.py:438 #, python-format msgid "plugin %s does not validate, skipping" msgstr "" #: ../sos/sosreport.py:467 #, python-format msgid "plugin %s does not install, skipping" msgstr "" #: ../sos/sosreport.py:563 msgid "no valid plugins found" msgstr "Tidak ada plugin yang valid ditemukan" #: ../sos/sosreport.py:567 msgid "The following plugins are currently enabled:" msgstr "Opsi plugin ini memungkinkan:" #: ../sos/sosreport.py:573 msgid "No plugin enabled." msgstr "Tidak ada plugin yang memungkinkan." #: ../sos/sosreport.py:577 msgid "The following plugins are currently disabled:" msgstr "Opsi plugin ini sedang tidak mungkin:" #: ../sos/sosreport.py:585 msgid "The following plugin options are available:" msgstr "Opsi plugin ini tersedia:" #: ../sos/sosreport.py:606 msgid "No plugin options available." msgstr "" #: ../sos/sosreport.py:614 msgid "sosreport requires root permissions to run." msgstr "laporan sos membutuhkan hak akses root untuk berjalan." #: ../sos/sosreport.py:621 msgid "no valid plugins were enabled" msgstr "Tidak ada plugin yang valid yang dimungkinkan." #: ../sos/sosreport.py:624 #, python-format msgid "" "This utility will collect some detailed information about the\n" "hardware and setup of your %(distroa)s system.\n" "The information is collected and an archive is packaged under\n" "/tmp, which you can send to a support representative.\n" "%(distrob)s will use this information for diagnostic purposes ONLY\n" "and it will be considered confidential information.\n" "\n" "This process may take a while to complete.\n" "No changes will be made to your system.\n" "\n" msgstr "" #: ../sos/sosreport.py:639 msgid "Press ENTER to continue, or CTRL-C to quit.\n" msgstr "Tekan ENTER untuk melanjutkan, atau CTRL+C untuk keluar.\n" #: ../sos/sosreport.py:665 msgid "One or more plugins have detected a problem in your configuration." msgstr "" "Satu atau lebih plugin telah mendeteksi sebuah masalah di konfigurasi Anda." #: ../sos/sosreport.py:667 msgid "Please review the following messages:" msgstr "" #: ../sos/sosreport.py:683 msgid "Are you sure you would like to continue (y/n) ? " msgstr "" #: ../sos/sosreport.py:685 msgid "y" msgstr "" #: ../sos/sosreport.py:685 msgid "Y" msgstr "" #: ../sos/sosreport.py:688 msgid "n" msgstr "" #: ../sos/sosreport.py:688 msgid "N" msgstr "" #: ../sos/sosreport.py:713 msgid " Running plugins. Please wait ..." msgstr "" #: ../sos/sosreport.py:827 #, python-format msgid " sosreport build tree is located at : %s" msgstr "" #: ../sos/policyredhat.py:211 #, python-format msgid "Please enter your first initial and last name [%s]: " msgstr "Harap masukkan nama depan dan nama belakang Anda [%s]:" #: ../sos/policyredhat.py:214 msgid "Please enter the case number that you are generating this report for: " msgstr "Please enter the case number that you are generating this report for: " #: ../sos/policyredhat.py:254 msgid "Creating compressed archive..." msgstr "Membuat arsip yang dikompresi..." #: ../sos/policyredhat.py:284 msgid "Encrypting archive..." msgstr "Mengekripsi arsip..." #: ../sos/policyredhat.py:304 msgid "There was a problem encrypting your report." msgstr "Ada masalah dalam mengekripsi laporan Anda." #: ../sos/policyredhat.py:328 #, python-format msgid "" "Your sosreport has been generated and saved in:\n" " %s" msgstr "" "Laporan sos Anda telah digenerate dan disimpan di:\n" " %s" #: ../sos/policyredhat.py:331 msgid "The md5sum is: " msgstr "md5sum adalah:" #: ../sos/policyredhat.py:333 msgid "Please send this file to your support representative." msgstr "" #: ../sos/policyredhat.py:355 msgid "No URL defined in config file." msgstr "" #: ../sos/policyredhat.py:362 msgid "Cannot upload to specified URL." msgstr "" #: ../sos/policyredhat.py:399 msgid "There was a problem uploading your report to Red Hat support." msgstr "" #: ../sos/policyredhat.py:401 #, python-format msgid "Your report was successfully uploaded to %s with name:" msgstr "" #: ../sos/policyredhat.py:404 msgid "Please communicate this name to your support representative." msgstr "" sosreport/po/ar.po0000644000175000017500000001542412254061770012642 0ustar zefzef# sos Arabic translation file # Copyright (C) 2007, Red Hat UK, Ltd. # Imed Chihi , 2007. # Abdalrahim Fakhouri , 2010. msgid "" msgstr "" "Project-Id-Version: sos 1.7\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-11-15 15:02+0000\n" "PO-Revision-Date: 2010-06-08 23:36+0300\n" "Last-Translator: Abdalrahim Fakhouri \n" "Language-Team: Arabic \n" "Language: ar\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../sos/sosreport.py:350 msgid "Could not create temporary directory." msgstr "تعذّر إنشاء دليل مؤقـَّت" #: ../sos/sosreport.py:413 #, python-format msgid "sosreport (version %s)" msgstr "sosreport (الإصدار %s)" #: ../sos/sosreport.py:438 #, python-format msgid "plugin %s does not validate, skipping" msgstr "الملحق %s غير سليم، تم تعطيله" #: ../sos/sosreport.py:467 #, python-format msgid "plugin %s does not install, skipping" msgstr "لا يمكن تثبيت الملحق %s، تم تعطيله." #: ../sos/sosreport.py:563 msgid "no valid plugins found" msgstr "لا توجد ملحقات صالحة" #: ../sos/sosreport.py:567 msgid "The following plugins are currently enabled:" msgstr "تم تفعيل الملحقات التالية" #: ../sos/sosreport.py:573 msgid "No plugin enabled." msgstr "لم يتم تفعيل أي ملحق." #: ../sos/sosreport.py:577 msgid "The following plugins are currently disabled:" msgstr "تم تعطيل الملحقات الملحقات التالية" #: ../sos/sosreport.py:585 msgid "The following plugin options are available:" msgstr "يمكن تحديد خيارات الملحقات التالية" #: ../sos/sosreport.py:606 msgid "No plugin options available." msgstr "لا توجد خيارات للملحقات" #: ../sos/sosreport.py:614 msgid "sosreport requires root permissions to run." msgstr "هذا البرنامج يستوجب صلاحيات root" #: ../sos/sosreport.py:621 msgid "no valid plugins were enabled" msgstr "لم يتم تفعيل أي ملحقات" #: ../sos/sosreport.py:624 #, python-format msgid "" "This utility will collect some detailed information about the\n" "hardware and setup of your %(distroa)s system.\n" "The information is collected and an archive is packaged under\n" "/tmp, which you can send to a support representative.\n" "%(distrob)s will use this information for diagnostic purposes ONLY\n" "and it will be considered confidential information.\n" "\n" "This process may take a while to complete.\n" "No changes will be made to your system.\n" "\n" msgstr "" "ستقوم هذه الأداة بجمع معلومات عن\n" "عتاد وإعدادات نظام %(distroa)s لديك.\n" "ستُجمع المعلومات وتوضّب في أرشيف يوضع\n" "في /tmp، وبإمكانك إرسالها إلى مندوب دعم.\n" "ستستخدم %(distrob)s هذه المعلومات\n" "لأغراض بحثيّة فقط، وستعتبر معلوماتٍ سرّية.\n" "\n" "قد تستغرق هذه العمليّة بعض الوقت.\n" "لن يتم عمل أيّ تغييرات لنظامك.\n" "\n" #: ../sos/sosreport.py:639 msgid "Press ENTER to continue, or CTRL-C to quit.\n" msgstr "اضعط زر الإدخال للمتابعة، أو زر التحكّم مع C للخروج.\n" #: ../sos/sosreport.py:665 msgid "One or more plugins have detected a problem in your configuration." msgstr "أحد الملحقات إكتشف خطأ في إعدادات النظام" #: ../sos/sosreport.py:667 msgid "Please review the following messages:" msgstr "الرجاء مراجعة الإعلانات التالية" #: ../sos/sosreport.py:683 msgid "Are you sure you would like to continue (y/n) ? " msgstr "هل أنت متأكد؟ ن/ل" #: ../sos/sosreport.py:685 msgid "y" msgstr "ن" #: ../sos/sosreport.py:685 msgid "Y" msgstr "ل" #: ../sos/sosreport.py:688 msgid "n" msgstr "ن" #: ../sos/sosreport.py:688 msgid "N" msgstr "لا" #: ../sos/sosreport.py:713 msgid " Running plugins. Please wait ..." msgstr " جاري تشغيل الإضافات. يرجى الانتظار ..." #: ../sos/sosreport.py:827 #, python-format msgid " sosreport build tree is located at : %s" msgstr "شجرة بناء التقارير موجودة في: %s" #: ../sos/policyredhat.py:211 #, python-format msgid "Please enter your first initial and last name [%s]: " msgstr "الرجاء إدخال الاسم [%s]: " #: ../sos/policyredhat.py:214 msgid "Please enter the case number that you are generating this report for: " msgstr "الرجاء إدخال رقم المعاملة المعنية بهذا التقرير: " #: ../sos/policyredhat.py:254 msgid "Creating compressed archive..." msgstr "جاري إنشاء الأرشيف المضغوط ..." #: ../sos/policyredhat.py:284 msgid "Encrypting archive..." msgstr "جاري تشفير الأرشيف ..." #: ../sos/policyredhat.py:304 msgid "There was a problem encrypting your report." msgstr "صودفت مشكلة بتشفير تقريرك." #: ../sos/policyredhat.py:328 #, python-format msgid "" "Your sosreport has been generated and saved in:\n" " %s" msgstr "" "تم حفض الحزمة في: \n" " %s" #: ../sos/policyredhat.py:331 msgid "The md5sum is: " msgstr "ناتج التدقيق md5sum هو: " #: ../sos/policyredhat.py:333 msgid "Please send this file to your support representative." msgstr "الرجاء إرسال هذه الحزمة إلى عملاء الدعم الفني." #: ../sos/policyredhat.py:355 msgid "No URL defined in config file." msgstr "لم يتم تحديد عنوان URL في ملف الإعداد." #: ../sos/policyredhat.py:362 msgid "Cannot upload to specified URL." msgstr "لا يمكن الرفع للعنوان المحدّد" #: ../sos/policyredhat.py:399 msgid "There was a problem uploading your report to Red Hat support." msgstr "صودفت مشكلة برفع تقريرك إلى دعم Red Hat. " #: ../sos/policyredhat.py:401 #, python-format msgid "Your report was successfully uploaded to %s with name:" msgstr "تم رفع تقريرك إلى %s بنجاح بالاسم:" #: ../sos/policyredhat.py:404 msgid "Please communicate this name to your support representative." msgstr "الرجاء إرسال هذا الاسم إلى عملاء الدعم الفني." #~ msgid "plugin %s skipped (--skip-plugins)" #~ msgstr "تم تعطيل الملحق %s عبر --skip-plugins" #~ msgid "plugin %s is inactive (use -e or -o to enable)." #~ msgstr "الملحق %s معطل، إستعمل -e أو -o لإعادة تفعيله." #~ msgid "plugin %s not specified in --only-plugins list" #~ msgstr "الملحق %s لم يرد في قائمة --only-plugins." #~ msgid "processing options from plugin: %s" #~ msgstr "معالجة خيارات الملحق %s" sosreport/po/zh_TW.po0000644000175000017500000001334312254061770013271 0ustar zefzef# Traditional Chinese Messages for sos. # Copyright (C) 2010 The sos Project (msgids) # This file is distributed under the same license as the sos package. # Chester Cheng , 2007. # Wei-Lun Chao , 2010. # msgid "" msgstr "" "Project-Id-Version: sos 2.2\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-11-15 15:02+0000\n" "PO-Revision-Date: 2010-09-19 00:10+1000\n" "Last-Translator: Wei-Lun Chao \n" "Language-Team: Chinese (traditional) \n" "Language: zh_TW\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" #: ../sos/sosreport.py:350 msgid "Could not create temporary directory." msgstr "無法建立暫存目錄。" #: ../sos/sosreport.py:413 #, python-format msgid "sosreport (version %s)" msgstr "sosreport(版本 %s)" #: ../sos/sosreport.py:438 #, python-format msgid "plugin %s does not validate, skipping" msgstr "外掛程式 %s 無法驗證,因此跳過" #: ../sos/sosreport.py:467 #, python-format msgid "plugin %s does not install, skipping" msgstr "未安裝外掛程式 %s,故而跳過" #: ../sos/sosreport.py:563 msgid "no valid plugins found" msgstr "找不到正確的外掛程式" #: ../sos/sosreport.py:567 msgid "The following plugins are currently enabled:" msgstr "目前以下外掛程式已經啟用:" #: ../sos/sosreport.py:573 msgid "No plugin enabled." msgstr "並未啟用任何外掛程式。" #: ../sos/sosreport.py:577 msgid "The following plugins are currently disabled:" msgstr "目前以下外掛程式已經停用:" #: ../sos/sosreport.py:585 msgid "The following plugin options are available:" msgstr "外掛程式有以下選項可用:" #: ../sos/sosreport.py:606 msgid "No plugin options available." msgstr "沒有可用的外掛程式選項。" #: ../sos/sosreport.py:614 msgid "sosreport requires root permissions to run." msgstr "sosreport 需要 root 權限才可以執行。" #: ../sos/sosreport.py:621 msgid "no valid plugins were enabled" msgstr "並未啟用合用的外掛程式" #: ../sos/sosreport.py:624 #, python-format msgid "" "This utility will collect some detailed information about the\n" "hardware and setup of your %(distroa)s system.\n" "The information is collected and an archive is packaged under\n" "/tmp, which you can send to a support representative.\n" "%(distrob)s will use this information for diagnostic purposes ONLY\n" "and it will be considered confidential information.\n" "\n" "This process may take a while to complete.\n" "No changes will be made to your system.\n" "\n" msgstr "" "這個工具程式會蒐集 %(distroa)s 系統的硬體與設定資訊。\n" "這些資訊被蒐集後,會以壓縮檔形式備份於 /tmp 目錄中,您可以將\n" "這些訊息傳給技術支持人員。%(distrob)s 將這些資訊視為機密,\n" "「只會」將它拿來作為診斷問題之用。\n" "\n" "這個過程會花上一點時間,\n" "而您的系統不會有任何改變。\n" "\n" #: ../sos/sosreport.py:639 msgid "Press ENTER to continue, or CTRL-C to quit.\n" msgstr "請按下「Enter」繼續,或按下「CTRL-C」離開。\n" #: ../sos/sosreport.py:665 msgid "One or more plugins have detected a problem in your configuration." msgstr "一或多個外掛程式在您的設定中偵測到一個問題。" #: ../sos/sosreport.py:667 msgid "Please review the following messages:" msgstr "請檢視以下訊息:" #: ../sos/sosreport.py:683 msgid "Are you sure you would like to continue (y/n) ? " msgstr "確定要繼續嗎 (y/n)?" #: ../sos/sosreport.py:685 msgid "y" msgstr "y" #: ../sos/sosreport.py:685 msgid "Y" msgstr "Y" #: ../sos/sosreport.py:688 msgid "n" msgstr "n" #: ../sos/sosreport.py:688 msgid "N" msgstr "N" #: ../sos/sosreport.py:713 msgid " Running plugins. Please wait ..." msgstr " 正在執行外掛程式,請稍待…" #: ../sos/sosreport.py:827 #, python-format msgid " sosreport build tree is located at : %s" msgstr " sosreport 建構樹位於:%s" #: ../sos/policyredhat.py:211 #, python-format msgid "Please enter your first initial and last name [%s]: " msgstr "請輸入您的名與姓 [%s]:" #: ../sos/policyredhat.py:214 msgid "Please enter the case number that you are generating this report for: " msgstr "請輸入本報告的編號:" #: ../sos/policyredhat.py:254 msgid "Creating compressed archive..." msgstr "建立壓縮檔…" #: ../sos/policyredhat.py:284 msgid "Encrypting archive..." msgstr "加密壓縮檔…" #: ../sos/policyredhat.py:304 msgid "There was a problem encrypting your report." msgstr "壓縮您的報告時出現問題。" #: ../sos/policyredhat.py:328 #, python-format msgid "" "Your sosreport has been generated and saved in:\n" " %s" msgstr "" "您的 sosreport 報告已經產生,並儲存於:\n" " %s" #: ../sos/policyredhat.py:331 msgid "The md5sum is: " msgstr "md5sum 檢查碼為:" #: ../sos/policyredhat.py:333 msgid "Please send this file to your support representative." msgstr "請將這檔案傳送給技術人員。" #: ../sos/policyredhat.py:355 msgid "No URL defined in config file." msgstr "組態檔中沒有定義 URL。" #: ../sos/policyredhat.py:362 msgid "Cannot upload to specified URL." msgstr "無法上傳指定的網址。" #: ../sos/policyredhat.py:399 msgid "There was a problem uploading your report to Red Hat support." msgstr "將報告上傳至 Red Hat 技術支援時,出現問題。" #: ../sos/policyredhat.py:401 #, python-format msgid "Your report was successfully uploaded to %s with name:" msgstr "您的報告已經成功傳送至 %s,名稱為:" #: ../sos/policyredhat.py:404 msgid "Please communicate this name to your support representative." msgstr "請將這名稱告知您的技術支援人員。" sosreport/po/gl.po0000644000175000017500000001000512254061770012630 0ustar zefzef# Galician translations for PACKAGE package. # Copyright (C) 2007 ORGANIZATION # Automatically generated, 2007. # msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-11-15 15:02+0000\n" "PO-Revision-Date: 2007-10-24 08:45\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: pygettext.py 1.5\n" #: ../sos/sosreport.py:350 msgid "Could not create temporary directory." msgstr "" #: ../sos/sosreport.py:413 #, python-format msgid "sosreport (version %s)" msgstr "" #: ../sos/sosreport.py:438 #, python-format msgid "plugin %s does not validate, skipping" msgstr "" #: ../sos/sosreport.py:467 #, python-format msgid "plugin %s does not install, skipping" msgstr "" #: ../sos/sosreport.py:563 msgid "no valid plugins found" msgstr "" #: ../sos/sosreport.py:567 msgid "The following plugins are currently enabled:" msgstr "" #: ../sos/sosreport.py:573 msgid "No plugin enabled." msgstr "" #: ../sos/sosreport.py:577 msgid "The following plugins are currently disabled:" msgstr "" #: ../sos/sosreport.py:585 msgid "The following plugin options are available:" msgstr "" #: ../sos/sosreport.py:606 msgid "No plugin options available." msgstr "" #: ../sos/sosreport.py:614 msgid "sosreport requires root permissions to run." msgstr "" #: ../sos/sosreport.py:621 msgid "no valid plugins were enabled" msgstr "" #: ../sos/sosreport.py:624 #, python-format msgid "" "This utility will collect some detailed information about the\n" "hardware and setup of your %(distroa)s system.\n" "The information is collected and an archive is packaged under\n" "/tmp, which you can send to a support representative.\n" "%(distrob)s will use this information for diagnostic purposes ONLY\n" "and it will be considered confidential information.\n" "\n" "This process may take a while to complete.\n" "No changes will be made to your system.\n" "\n" msgstr "" #: ../sos/sosreport.py:639 msgid "Press ENTER to continue, or CTRL-C to quit.\n" msgstr "" #: ../sos/sosreport.py:665 msgid "One or more plugins have detected a problem in your configuration." msgstr "" #: ../sos/sosreport.py:667 msgid "Please review the following messages:" msgstr "" #: ../sos/sosreport.py:683 msgid "Are you sure you would like to continue (y/n) ? " msgstr "" #: ../sos/sosreport.py:685 msgid "y" msgstr "" #: ../sos/sosreport.py:685 msgid "Y" msgstr "" #: ../sos/sosreport.py:688 msgid "n" msgstr "" #: ../sos/sosreport.py:688 msgid "N" msgstr "" #: ../sos/sosreport.py:713 msgid " Running plugins. Please wait ..." msgstr "" #: ../sos/sosreport.py:827 #, python-format msgid " sosreport build tree is located at : %s" msgstr "" #: ../sos/policyredhat.py:211 #, python-format msgid "Please enter your first initial and last name [%s]: " msgstr "" #: ../sos/policyredhat.py:214 msgid "Please enter the case number that you are generating this report for: " msgstr "" #: ../sos/policyredhat.py:254 msgid "Creating compressed archive..." msgstr "" #: ../sos/policyredhat.py:284 msgid "Encrypting archive..." msgstr "" #: ../sos/policyredhat.py:304 msgid "There was a problem encrypting your report." msgstr "" #: ../sos/policyredhat.py:328 #, python-format msgid "" "Your sosreport has been generated and saved in:\n" " %s" msgstr "" #: ../sos/policyredhat.py:331 msgid "The md5sum is: " msgstr "" #: ../sos/policyredhat.py:333 msgid "Please send this file to your support representative." msgstr "" #: ../sos/policyredhat.py:355 msgid "No URL defined in config file." msgstr "" #: ../sos/policyredhat.py:362 msgid "Cannot upload to specified URL." msgstr "" #: ../sos/policyredhat.py:399 msgid "There was a problem uploading your report to Red Hat support." msgstr "" #: ../sos/policyredhat.py:401 #, python-format msgid "Your report was successfully uploaded to %s with name:" msgstr "" #: ../sos/policyredhat.py:404 msgid "Please communicate this name to your support representative." msgstr "" sosreport/po/hi.po0000644000175000017500000002033612254061770012636 0ustar zefzef# translation of sos.trunk.hi.po to Maithili # Hindi translations for PACKAGE package. # Copyright (C) 2007 ORGANIZATION # # Automatically generated, 2007. # Rajesh Ranjan , 2007. # Rajesh Ranjan , 2011. msgid "" msgstr "" "Project-Id-Version: sos.trunk.hi\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-11-15 15:02+0000\n" "PO-Revision-Date: 2011-01-17 15:06+0530\n" "Last-Translator: Rajesh Ranjan \n" "Language-Team: Maithili \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: hi\n" "Generated-By: pygettext.py 1.5\n" "X-Generator: KBabel 1.11.4\n" "Plural-Forms: nplurals=2; plural=(n!=1);\n\n" "\n" "\n" #: ../sos/sosreport.py:350 msgid "Could not create temporary directory." msgstr "अस्थायी निर्देशिका नहीं बना सका." #: ../sos/sosreport.py:413 #, python-format msgid "sosreport (version %s)" msgstr "sosreport (संस्करण %s)" #: ../sos/sosreport.py:438 #, python-format msgid "plugin %s does not validate, skipping" msgstr "प्लगिन %s वैध नहीं कर सकता है, छोड़ रहा है" #: ../sos/sosreport.py:467 #, python-format msgid "plugin %s does not install, skipping" msgstr "प्लगिन %s अधिष्ठापित नहीं कर रहा है, छोड़ रहा है" #: ../sos/sosreport.py:563 msgid "no valid plugins found" msgstr "कोई वैध प्लगिन नहीं मिला" #: ../sos/sosreport.py:567 msgid "The following plugins are currently enabled:" msgstr "निम्नलिखित प्लगिन अभी सक्रिय है:" #: ../sos/sosreport.py:573 msgid "No plugin enabled." msgstr "कोई प्लगिन सक्रिय नहीं है." #: ../sos/sosreport.py:577 msgid "The following plugins are currently disabled:" msgstr "निम्न प्लगिन अभी निष्क्रिय है:" #: ../sos/sosreport.py:585 msgid "The following plugin options are available:" msgstr "निम्नलिखित प्लगिन विकल्प उपलब्ध है:" #: ../sos/sosreport.py:606 msgid "No plugin options available." msgstr "कोई प्लगिन विकल्प उपलब्ध नहीं." #: ../sos/sosreport.py:614 msgid "sosreport requires root permissions to run." msgstr "sosreport के लिए रूट अनुमति को चलाने की जरूरत है." #: ../sos/sosreport.py:621 msgid "no valid plugins were enabled" msgstr "कोई वैध प्लगिन सक्रिय नहीं था" #: ../sos/sosreport.py:624 #, python-format msgid "" "This utility will collect some detailed information about the\n" "hardware and setup of your %(distroa)s system.\n" "The information is collected and an archive is packaged under\n" "/tmp, which you can send to a support representative.\n" "%(distrob)s will use this information for diagnostic purposes ONLY\n" "and it will be considered confidential information.\n" "\n" "This process may take a while to complete.\n" "No changes will be made to your system.\n" "\n" msgstr "" "यह उपयोगिता कुछ विस्तृत सूचना को जमा करेगा\n" "हार्डवेयर और आपके %(distroa)s सिस्टम के बारे में.\n" "सूचना जमा की जाती है और एक अभिलेख को पैकेज किया जाता है\n" "/tmp के अंदर, जिसे आप समर्थन प्रतिनिधि के पास भेज सकते हैं.\n" "%(distrob)s इस सूचना को निदानार्थ सिर्फ प्रयोग करेगा\n" "और इसे गोपनीय सूचना माना जायेगा.\n" "\n" "यह प्रक्रिया पूरा करने के लिए कुछ समय लेगा.\n" "कोई बदलाव आपके सिस्टम में नहीं बनाया जायेगा.\n" "\n" #: ../sos/sosreport.py:639 msgid "Press ENTER to continue, or CTRL-C to quit.\n" msgstr "ENTER को जारी रखने के लिए दबाएं, या CTRL-C छोड़ने के लिए.\n" #: ../sos/sosreport.py:665 msgid "One or more plugins have detected a problem in your configuration." msgstr "एक या अधिक प्लगिन ने आपके विन्यास में समस्या पाया है." #: ../sos/sosreport.py:667 msgid "Please review the following messages:" msgstr "कृपया निम्नलिखित संदेश की समीक्षा करें:" #: ../sos/sosreport.py:683 msgid "Are you sure you would like to continue (y/n) ? " msgstr "क्या आप निश्चित हैं कि आप जारी रखना चाहते हैं (y/n) ? " #: ../sos/sosreport.py:685 msgid "y" msgstr "y" #: ../sos/sosreport.py:685 msgid "Y" msgstr "Y" #: ../sos/sosreport.py:688 msgid "n" msgstr "n" #: ../sos/sosreport.py:688 msgid "N" msgstr "N" #: ../sos/sosreport.py:713 msgid " Running plugins. Please wait ..." msgstr " प्लगिन चला रहा है. कृपया प्रतीक्षा करें ..." #: ../sos/sosreport.py:827 #, python-format msgid " sosreport build tree is located at : %s" msgstr " sosreport बिल्ड तरू यहाँ अवस्थित है : %s" #: ../sos/policyredhat.py:211 #, python-format msgid "Please enter your first initial and last name [%s]: " msgstr "कृपया अपना आरंभिक व अंतिम नाम [%s] दें: " #: ../sos/policyredhat.py:214 msgid "Please enter the case number that you are generating this report for: " msgstr "कृपया केस संख्या दें जो आप इस रिपोर्ट के लिए बना रहे हैं: " #: ../sos/policyredhat.py:254 msgid "Creating compressed archive..." msgstr "संकुचित अभिलेख बना रहा है..." #: ../sos/policyredhat.py:284 msgid "Encrypting archive..." msgstr "अभिलेख गोपित कर रहा है..." #: ../sos/policyredhat.py:304 msgid "There was a problem encrypting your report." msgstr "आपके रिपोर्ट के गोपन में समस्या थी." #: ../sos/policyredhat.py:328 #, python-format msgid "" "Your sosreport has been generated and saved in:\n" " %s" msgstr "" "आपका sosreport को यहां उत्पन्न व सहेजा गया है:\n" " %s" #: ../sos/policyredhat.py:331 msgid "The md5sum is: " msgstr "md5sum है: " #: ../sos/policyredhat.py:333 msgid "Please send this file to your support representative." msgstr "कृपया इस फाइल को अपने समर्थन प्रतिनिधि को भेजें." #: ../sos/policyredhat.py:355 msgid "No URL defined in config file." msgstr "कोई URL विन्यास फ़ाइल में नहीं परिभाषित हुआ." #: ../sos/policyredhat.py:362 msgid "Cannot upload to specified URL." msgstr "निर्दिष्ट URL अपलोड नहीं कर सकता है." #: ../sos/policyredhat.py:399 msgid "There was a problem uploading your report to Red Hat support." msgstr "आपके रिपोर्ट को Red Hat समर्थन में अपलोड करने में समस्या थी." #: ../sos/policyredhat.py:401 #, python-format msgid "Your report was successfully uploaded to %s with name:" msgstr "आपका रिपोर्ट %s में इस नाम के साथ सफलतापूर्वक अपलोड किया गया:" #: ../sos/policyredhat.py:404 msgid "Please communicate this name to your support representative." msgstr "कृपया इस नाम का अपने समर्थन प्रतिनिधि से संचार करें." sosreport/po/ja.po0000644000175000017500000001536612254061770012637 0ustar zefzef# translation of ja.po to Japanese # Japanese translations for PACKAGE package. # Copyright (C) 2007 ORGANIZATION # # Automatically generated, 2007. # Kiyoto Hashida , 2007, 2010. msgid "" msgstr "" "Project-Id-Version: ja\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-11-15 15:02+0000\n" "PO-Revision-Date: 2010-05-31 15:20+0900\n" "Last-Translator: Kiyoto Hashida \n" "Language-Team: Japanese \n" "Language: ja\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: pygettext.py 1.5\n" "Plural-Forms: Plural-Forms: nplurals=2; plural=(n!=1);\n" "\n" "\n" "X-Generator: KBabel 1.11.4\n" #: ../sos/sosreport.py:350 msgid "Could not create temporary directory." msgstr "一時ディレクトリを作成できませんでした。" #: ../sos/sosreport.py:413 #, python-format msgid "sosreport (version %s)" msgstr "sos レポート (バージョン %s)" #: ../sos/sosreport.py:438 #, python-format msgid "plugin %s does not validate, skipping" msgstr "プラグイン %s は認証できません、スキップします" #: ../sos/sosreport.py:467 #, python-format msgid "plugin %s does not install, skipping" msgstr "プラグイン %s は インストールできません。スキップします" #: ../sos/sosreport.py:563 msgid "no valid plugins found" msgstr "有効なプラグインは見付かりません" #: ../sos/sosreport.py:567 msgid "The following plugins are currently enabled:" msgstr "以下のプラグインが現在有効になっています:" #: ../sos/sosreport.py:573 msgid "No plugin enabled." msgstr "有効なプラグインはありません" #: ../sos/sosreport.py:577 msgid "The following plugins are currently disabled:" msgstr "以下のプラグインは現在無効になっています:" #: ../sos/sosreport.py:585 msgid "The following plugin options are available:" msgstr "以下のプラグインオプションが使用できます:" #: ../sos/sosreport.py:606 msgid "No plugin options available." msgstr "プラグインオプションは使用できません。" #: ../sos/sosreport.py:614 msgid "sosreport requires root permissions to run." msgstr "sos レポートは実行するのに root 権限が必要です。" #: ../sos/sosreport.py:621 msgid "no valid plugins were enabled" msgstr "有効な正当プラグインはありませんでした" #: ../sos/sosreport.py:624 #, python-format msgid "" "This utility will collect some detailed information about the\n" "hardware and setup of your %(distroa)s system.\n" "The information is collected and an archive is packaged under\n" "/tmp, which you can send to a support representative.\n" "%(distrob)s will use this information for diagnostic purposes ONLY\n" "and it will be considered confidential information.\n" "\n" "This process may take a while to complete.\n" "No changes will be made to your system.\n" "\n" msgstr "" "このユーティリティは、ご使用の %(distroa)s システムのハードウェアと \n" "セットアップに関する詳細情報を収集します。情報は収集されて、\n" " そのアーカイブが /tmp にパッケージされますので、それをサポート担当者に \n" " 送信することが出来ます。%(distrob)s は、この情報を分析の為にのみ使用し、\n" " これは内密情報として扱われます。\n" "\n" "このプロセスは完了するまでしばらく時間がかかるかも知れません。\n" " ご使用のシステムは変更されません。\n" "\n" #: ../sos/sosreport.py:639 msgid "Press ENTER to continue, or CTRL-C to quit.\n" msgstr "ENTER を押して継続するか、又は CTRL-C で終了します。\n" #: ../sos/sosreport.py:665 msgid "One or more plugins have detected a problem in your configuration." msgstr "1つ、又は複数のプラグインが現在の設定に問題を検知しています。" #: ../sos/sosreport.py:667 msgid "Please review the following messages:" msgstr "以下のメッセージを確認してください:" #: ../sos/sosreport.py:683 msgid "Are you sure you would like to continue (y/n) ? " msgstr "本当に継続したいですか (y/n) ? " #: ../sos/sosreport.py:685 msgid "y" msgstr "y" #: ../sos/sosreport.py:685 msgid "Y" msgstr "Y" #: ../sos/sosreport.py:688 msgid "n" msgstr "n" #: ../sos/sosreport.py:688 msgid "N" msgstr "N" #: ../sos/sosreport.py:713 msgid " Running plugins. Please wait ..." msgstr " プラグインを実行中です。少しお待ち下さい ..." #: ../sos/sosreport.py:827 #, python-format msgid " sosreport build tree is located at : %s" msgstr " sosreport のビルドツリーは以下の場所にあります: %s" #: ../sos/policyredhat.py:211 #, python-format msgid "Please enter your first initial and last name [%s]: " msgstr "名前のイニシャルと姓を記入してください [%s]: " #: ../sos/policyredhat.py:214 msgid "Please enter the case number that you are generating this report for: " msgstr "作成しているレポートのケース番号を記入してください :" #: ../sos/policyredhat.py:254 msgid "Creating compressed archive..." msgstr "アーカイブを圧縮しています..." #: ../sos/policyredhat.py:284 msgid "Encrypting archive..." msgstr "アーカイブを暗号化しています..." #: ../sos/policyredhat.py:304 msgid "There was a problem encrypting your report." msgstr "このレポートの暗号化に問題がありました。" #: ../sos/policyredhat.py:328 #, python-format msgid "" "Your sosreport has been generated and saved in:\n" " %s" msgstr "" "sos レポートが生成されて、以下の場所に保存されました:\n" " %s" #: ../sos/policyredhat.py:331 msgid "The md5sum is: " msgstr "md5sum は :" #: ../sos/policyredhat.py:333 msgid "Please send this file to your support representative." msgstr "このファイルを担当のサポート代表者に送信してください。" #: ../sos/policyredhat.py:355 msgid "No URL defined in config file." msgstr "設定ファイル内に URL が定義されていません。" #: ../sos/policyredhat.py:362 msgid "Cannot upload to specified URL." msgstr "指定された URL にアップロードできません。" #: ../sos/policyredhat.py:399 msgid "There was a problem uploading your report to Red Hat support." msgstr "レポートを Red Hat サポートにアップロードするのに問題がありました。" #: ../sos/policyredhat.py:401 #, python-format msgid "Your report was successfully uploaded to %s with name:" msgstr "レポートは以下の名前で正常に %s にアップロードされました:" #: ../sos/policyredhat.py:404 msgid "Please communicate this name to your support representative." msgstr "担当のサポート代表者とはこの名前を使用して通信してください。" sosreport/po/te.po0000644000175000017500000002347112254061770012651 0ustar zefzef# translation of sos.trunk.te.po to Telugu # Telugu translations for PACKAGE package. # Copyright (C) 2007 ORGANIZATION # # Automatically generated, 2007. # Krishna Babu K , 2009. # Krishnababu Krothapalli , 2011. msgid "" msgstr "" "Project-Id-Version: sos.trunk.te\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-11-15 15:02+0000\n" "PO-Revision-Date: 2011-01-07 17:21+0530\n" "Last-Translator: Krishnababu Krothapalli \n" "Language-Team: Telugu \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: te\n" "Generated-By: pygettext.py 1.5\n" "X-Generator: Lokalize 1.1\n" "Plural-Forms: nplurals=2; plural=(n!=1);\n" "\n" #: ../sos/sosreport.py:350 msgid "Could not create temporary directory." msgstr "తాత్కాలిక డైరెక్టరీను సృష్టించలేక పోయింది." #: ../sos/sosreport.py:413 #, python-format msgid "sosreport (version %s)" msgstr "sosreport (వర్షన్ %s)" #: ../sos/sosreport.py:438 #, python-format msgid "plugin %s does not validate, skipping" msgstr "ప్లగ్‌యిన్ %s నిర్ధారించబడలేదు, వదిలివేయుచున్నది" #: ../sos/sosreport.py:467 #, python-format msgid "plugin %s does not install, skipping" msgstr "ప్లగిన్ %s సంస్థాపించబడలేదు, వదిలివేయుచున్నది" #: ../sos/sosreport.py:563 msgid "no valid plugins found" msgstr "చెల్లునటువంటి ప్లగిన్సు కనబడలేదు" #: ../sos/sosreport.py:567 msgid "The following plugins are currently enabled:" msgstr "ఈ క్రింది ప్లగిన్సు ప్రస్తుతం చేతనం చేయబడివున్నాయి:" #: ../sos/sosreport.py:573 msgid "No plugin enabled." msgstr "ఏ ప్లగిన్ చేతనం చేయబడిలేదు." #: ../sos/sosreport.py:577 msgid "The following plugins are currently disabled:" msgstr "క్రింది ప్లగిన్సు ప్రస్తుతం అచేతనం చేయబడివున్నాయి:" #: ../sos/sosreport.py:585 msgid "The following plugin options are available:" msgstr "ఈ క్రింది ప్లగిన్ ఐచ్చికాలు అందుబాటులో వున్నాయి:" #: ../sos/sosreport.py:606 msgid "No plugin options available." msgstr "ఎటువంటి ప్లగిన్ ఐచ్చికాలు అందుబాటులో లేవు." #: ../sos/sosreport.py:614 msgid "sosreport requires root permissions to run." msgstr "నడుపుటకు sosreportకు root అనుమతులు కావలెను." #: ../sos/sosreport.py:621 msgid "no valid plugins were enabled" msgstr "చెల్లునటువంటి ప్లగిన్సు చేతనము చేయబడిలేవు" #: ../sos/sosreport.py:624 #, python-format msgid "" "This utility will collect some detailed information about the\n" "hardware and setup of your %(distroa)s system.\n" "The information is collected and an archive is packaged under\n" "/tmp, which you can send to a support representative.\n" "%(distrob)s will use this information for diagnostic purposes ONLY\n" "and it will be considered confidential information.\n" "\n" "This process may take a while to complete.\n" "No changes will be made to your system.\n" "\n" msgstr "" "మీ %(distroa)s సిస్టమ్ యొక్క హార్డువేరు మరియు అమర్పు గురించిన\n" "కొంత విశదీకృత సమాచారమును ఈ సౌలభ్యము సేకరిస్తుంది. సమాచారము సేకరించబడుతుంది\n" "మరియు ఆర్చివ్ /tmp క్రింద ప్యాకేజీ చేయబడుతుంది, దీనిని మీరు మద్దతు ప్రతినిధికి పంపవచ్చు.\n" "%(distrob)s ఈ సమాచారమును విశ్లేషణ ప్రయోజనముల కొరకు మాత్రమే వుపయోగిస్తుంది\n" "మరియు అది గోప్యంగా వుంచబడుతుంది.\n" "\n" "పూర్తగుటకు ఈ కార్యక్రమము కొంత సమయాన్ని తీసుకొంటుంది.\n" "మీ సిస్టమ్‌నకు యెటువంటి మార్పులు చేయబడవు.\n" "\n" #: ../sos/sosreport.py:639 msgid "Press ENTER to continue, or CTRL-C to quit.\n" msgstr "కొనసాగించుటకు దయచేసి ENTER వత్తండి, లేదా నిష్క్రమించుటకు CTRL-C వత్తండి.\n" #: ../sos/sosreport.py:665 msgid "One or more plugins have detected a problem in your configuration." msgstr "ఒకటి లేదా యెక్కువ ప్లగిన్సు మీ ఆకృతీకరణనందు సమస్యను గుర్తించినవి." #: ../sos/sosreport.py:667 msgid "Please review the following messages:" msgstr "దయచేసి క్రింది సందేశములను పునఃపరిశీలించండి:" #: ../sos/sosreport.py:683 msgid "Are you sure you would like to continue (y/n) ? " msgstr "మీరు ఖచ్చితంగా కొనసాగించుటకు యిష్టపడుతున్నారా (y/n) ? " #: ../sos/sosreport.py:685 msgid "y" msgstr "y" #: ../sos/sosreport.py:685 msgid "Y" msgstr "Y" #: ../sos/sosreport.py:688 msgid "n" msgstr "n" #: ../sos/sosreport.py:688 msgid "N" msgstr "N" #: ../sos/sosreport.py:713 msgid " Running plugins. Please wait ..." msgstr " ప్లగిన్స్ నడుపుచున్నది. దయచేసి వేచివుండండి ..." #: ../sos/sosreport.py:827 #, python-format msgid " sosreport build tree is located at : %s" msgstr " సాస్‌రిపోర్ట్ బుల్డ్ ట్రీ దీని వద్ద వుంది : %s" #: ../sos/policyredhat.py:211 #, python-format msgid "Please enter your first initial and last name [%s]: " msgstr "దయచేసి మీ పేరు మొదటి అక్షరం మరియు మీ యింటిపేరును ప్రవేశపెట్టండి [%s]" #: ../sos/policyredhat.py:214 msgid "Please enter the case number that you are generating this report for: " msgstr "ఈ నివేదికను దేనికొరకు తయారు చేస్తున్నారో దాని కేస్ సంఖ్యను ప్రవేశపెట్టండి: " #: ../sos/policyredhat.py:254 msgid "Creating compressed archive..." msgstr "కుదించిన ఆర్చీవ్‌ను సృష్టిస్తోంది..." #: ../sos/policyredhat.py:284 msgid "Encrypting archive..." msgstr "ఆర్చివ్‌ను ఎన్క్రిప్టు చేయుచున్నది..." #: ../sos/policyredhat.py:304 msgid "There was a problem encrypting your report." msgstr "మీ నివేదికను ఎన్క్రిప్టు చేయుటలో అక్కడ వొక దోషమువుంది." #: ../sos/policyredhat.py:328 #, python-format msgid "" "Your sosreport has been generated and saved in:\n" " %s" msgstr "" "మీ sosreport తయారుచేయబడింది మరియు దీనినందు దాయబడింది:\n" " %s" #: ../sos/policyredhat.py:331 msgid "The md5sum is: " msgstr "md5sum : " #: ../sos/policyredhat.py:333 msgid "Please send this file to your support representative." msgstr "దయచేసి ఈ దస్త్రమును మీ మద్దతు ప్రతినిధికి పంపండి." #: ../sos/policyredhat.py:355 msgid "No URL defined in config file." msgstr "ఆకృతీకరణ ఫైల్ నందు యే URL నిర్వచించబడలేదు." #: ../sos/policyredhat.py:362 msgid "Cannot upload to specified URL." msgstr "తెలుపబడిన URLకు అప్‌లోడ్ చేయలేదు." #: ../sos/policyredhat.py:399 msgid "There was a problem uploading your report to Red Hat support." msgstr "మీ సమస్యను Red Hat మద్దతునకు అప్‌లోడు చేయుటలో వొక సమస్యవుంది." #: ../sos/policyredhat.py:401 #, python-format msgid "Your report was successfully uploaded to %s with name:" msgstr "మీ ఫిర్యాదు %s నకు విజయవంతంగా అప్‌లోడ్ చేయబడింది యీ నామంతో:" #: ../sos/policyredhat.py:404 msgid "Please communicate this name to your support representative." msgstr "దయచేసి ఈ నామము మీ మద్దతు ప్రతినిధికి తెలియపరచండి." #~ msgid "plugin %s skipped (--skip-plugins)" #~ msgstr "%s వదిలివేయబడింది (--skip-plugins)" #~ msgid "plugin %s is inactive (use -e or -o to enable)." #~ msgstr "%s క్రియాహీనమైంది (చేతనం చేయుటకు -e లేదా -o వుపయోగించండి)." #~ msgid "plugin %s not specified in --only-plugins list" #~ msgstr "ప్లగ్‌యిన్ %s తెలుపబడలేదు --only-plugins జాబితా" #~ msgid "processing options from plugin: %s" #~ msgstr "ప్లగిన్ నుండి ఐచ్చికాలను నిర్వర్తించుచున్నది: %s" sosreport/po/mk.po0000644000175000017500000001000712254061770012637 0ustar zefzef# Macedonian translations for PACKAGE package. # Copyright (C) 2007 ORGANIZATION # Automatically generated, 2007. # msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-11-15 15:02+0000\n" "PO-Revision-Date: 2007-10-24 08:45\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: pygettext.py 1.5\n" #: ../sos/sosreport.py:350 msgid "Could not create temporary directory." msgstr "" #: ../sos/sosreport.py:413 #, python-format msgid "sosreport (version %s)" msgstr "" #: ../sos/sosreport.py:438 #, python-format msgid "plugin %s does not validate, skipping" msgstr "" #: ../sos/sosreport.py:467 #, python-format msgid "plugin %s does not install, skipping" msgstr "" #: ../sos/sosreport.py:563 msgid "no valid plugins found" msgstr "" #: ../sos/sosreport.py:567 msgid "The following plugins are currently enabled:" msgstr "" #: ../sos/sosreport.py:573 msgid "No plugin enabled." msgstr "" #: ../sos/sosreport.py:577 msgid "The following plugins are currently disabled:" msgstr "" #: ../sos/sosreport.py:585 msgid "The following plugin options are available:" msgstr "" #: ../sos/sosreport.py:606 msgid "No plugin options available." msgstr "" #: ../sos/sosreport.py:614 msgid "sosreport requires root permissions to run." msgstr "" #: ../sos/sosreport.py:621 msgid "no valid plugins were enabled" msgstr "" #: ../sos/sosreport.py:624 #, python-format msgid "" "This utility will collect some detailed information about the\n" "hardware and setup of your %(distroa)s system.\n" "The information is collected and an archive is packaged under\n" "/tmp, which you can send to a support representative.\n" "%(distrob)s will use this information for diagnostic purposes ONLY\n" "and it will be considered confidential information.\n" "\n" "This process may take a while to complete.\n" "No changes will be made to your system.\n" "\n" msgstr "" #: ../sos/sosreport.py:639 msgid "Press ENTER to continue, or CTRL-C to quit.\n" msgstr "" #: ../sos/sosreport.py:665 msgid "One or more plugins have detected a problem in your configuration." msgstr "" #: ../sos/sosreport.py:667 msgid "Please review the following messages:" msgstr "" #: ../sos/sosreport.py:683 msgid "Are you sure you would like to continue (y/n) ? " msgstr "" #: ../sos/sosreport.py:685 msgid "y" msgstr "" #: ../sos/sosreport.py:685 msgid "Y" msgstr "" #: ../sos/sosreport.py:688 msgid "n" msgstr "" #: ../sos/sosreport.py:688 msgid "N" msgstr "" #: ../sos/sosreport.py:713 msgid " Running plugins. Please wait ..." msgstr "" #: ../sos/sosreport.py:827 #, python-format msgid " sosreport build tree is located at : %s" msgstr "" #: ../sos/policyredhat.py:211 #, python-format msgid "Please enter your first initial and last name [%s]: " msgstr "" #: ../sos/policyredhat.py:214 msgid "Please enter the case number that you are generating this report for: " msgstr "" #: ../sos/policyredhat.py:254 msgid "Creating compressed archive..." msgstr "" #: ../sos/policyredhat.py:284 msgid "Encrypting archive..." msgstr "" #: ../sos/policyredhat.py:304 msgid "There was a problem encrypting your report." msgstr "" #: ../sos/policyredhat.py:328 #, python-format msgid "" "Your sosreport has been generated and saved in:\n" " %s" msgstr "" #: ../sos/policyredhat.py:331 msgid "The md5sum is: " msgstr "" #: ../sos/policyredhat.py:333 msgid "Please send this file to your support representative." msgstr "" #: ../sos/policyredhat.py:355 msgid "No URL defined in config file." msgstr "" #: ../sos/policyredhat.py:362 msgid "Cannot upload to specified URL." msgstr "" #: ../sos/policyredhat.py:399 msgid "There was a problem uploading your report to Red Hat support." msgstr "" #: ../sos/policyredhat.py:401 #, python-format msgid "Your report was successfully uploaded to %s with name:" msgstr "" #: ../sos/policyredhat.py:404 msgid "Please communicate this name to your support representative." msgstr "" sosreport/po/es.po0000644000175000017500000001544012254061770012645 0ustar zefzef# Fedora Spanish translation of sos.trunk. # This file is distributed under the same license as the sos.trunk package. # # Manuel Ospina , 2007. # Héctor Daniel Cabrera , 2010. # msgid "" msgstr "" "Project-Id-Version: sos.trunk\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-11-15 15:02+0000\n" "PO-Revision-Date: 2010-03-12 10:56-0300\n" "Last-Translator: Héctor Daniel Cabrera \n" "Language-Team: Español \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Poedit-Language: Spanish\n" "Generated-By: pygettext.py 1.5\n" "X-Poedit-Country: ARGENTINA\n" "X-Generator: KBabel 1.11.4\n" #: ../sos/sosreport.py:350 msgid "Could not create temporary directory." msgstr "No se pudo crear un directorio temporal." #: ../sos/sosreport.py:413 #, python-format msgid "sosreport (version %s)" msgstr "sosreport (versión %s)" #: ../sos/sosreport.py:438 #, python-format msgid "plugin %s does not validate, skipping" msgstr "no se validó el plugin %s, ignorándolo" #: ../sos/sosreport.py:467 #, python-format msgid "plugin %s does not install, skipping" msgstr "no se instaló el plugin %s, ignorándolo" #: ../sos/sosreport.py:563 msgid "no valid plugins found" msgstr "no se encontró un plugin válido" #: ../sos/sosreport.py:567 msgid "The following plugins are currently enabled:" msgstr "Los siguientes plugins están activados actualmente:" #: ../sos/sosreport.py:573 msgid "No plugin enabled." msgstr "Ningún plugin está activado." #: ../sos/sosreport.py:577 msgid "The following plugins are currently disabled:" msgstr "Los siguientes plugins no están activados:" #: ../sos/sosreport.py:585 msgid "The following plugin options are available:" msgstr "Las siguientes opciones del plugin están disponibles:" #: ../sos/sosreport.py:606 msgid "No plugin options available." msgstr "No hay opciones de plugin disponibles." #: ../sos/sosreport.py:614 msgid "sosreport requires root permissions to run." msgstr "sosreport requiere privilegios de root para ser ejecutado." #: ../sos/sosreport.py:621 msgid "no valid plugins were enabled" msgstr "ningún plugin válido fue activado" #: ../sos/sosreport.py:624 #, python-format msgid "" "This utility will collect some detailed information about the\n" "hardware and setup of your %(distroa)s system.\n" "The information is collected and an archive is packaged under\n" "/tmp, which you can send to a support representative.\n" "%(distrob)s will use this information for diagnostic purposes ONLY\n" "and it will be considered confidential information.\n" "\n" "This process may take a while to complete.\n" "No changes will be made to your system.\n" "\n" msgstr "" "Esta herramienta obtendrá cierta información detallada relacionada\n" "con la configuración y el hardware de su sistema %(distroa)s.\n" "La información conseguida se empaquetará en un archivo del directorio\n" "/tmp, archivo que usted podrá enviar a un representante de soporte técnico.\n" "%(distrob)s utilizará esta información con el UNICO fin de poder realizar\n" "un diagnóstico, iserá considerado como información confidencial.\n" "\n" "Este proceso puede demorar algún tiempo en completarse.\n" "No se realizará ninguna modificación en su sistema.\n" "\n" #: ../sos/sosreport.py:639 msgid "Press ENTER to continue, or CTRL-C to quit.\n" msgstr "Presione INTRO para continuar o CTRL-C para salir.\n" #: ../sos/sosreport.py:665 msgid "One or more plugins have detected a problem in your configuration." msgstr "Uno o más plugins han detectado un problema en su configuración." #: ../sos/sosreport.py:667 msgid "Please review the following messages:" msgstr "Por favor revise los siguientes mensajes:" #: ../sos/sosreport.py:683 msgid "Are you sure you would like to continue (y/n) ? " msgstr "¿Está seguro que desea continuar (s/n)?" #: ../sos/sosreport.py:685 msgid "y" msgstr "s" #: ../sos/sosreport.py:685 msgid "Y" msgstr "S" #: ../sos/sosreport.py:688 msgid "n" msgstr "n" #: ../sos/sosreport.py:688 msgid "N" msgstr "N" #: ../sos/sosreport.py:713 msgid " Running plugins. Please wait ..." msgstr "Ejecutando complementos. Por favor espere..." #: ../sos/sosreport.py:827 #, python-format msgid " sosreport build tree is located at : %s" msgstr "el árbol de compilación de sosreport se encuentra ubicado en : %s" #: ../sos/policyredhat.py:211 #, python-format msgid "Please enter your first initial and last name [%s]: " msgstr "" "Por favor introduzca la inicial de su primer nombre y su apellido [%s]:" #: ../sos/policyredhat.py:214 msgid "Please enter the case number that you are generating this report for: " msgstr "" "Por favor introduzca el número de caso para el cual está generando este " "reporte:" #: ../sos/policyredhat.py:254 msgid "Creating compressed archive..." msgstr "Creando un archivo comprimido..." #: ../sos/policyredhat.py:284 msgid "Encrypting archive..." msgstr "Encriptando el archivo..." #: ../sos/policyredhat.py:304 msgid "There was a problem encrypting your report." msgstr "Hubo un problema mientras se encriptaba el reporte." #: ../sos/policyredhat.py:328 #, python-format msgid "" "Your sosreport has been generated and saved in:\n" " %s" msgstr "" "Su reporte sos ha sido generado y guardado en:\n" " %s" #: ../sos/policyredhat.py:331 msgid "The md5sum is: " msgstr "El md5sum es:" #: ../sos/policyredhat.py:333 msgid "Please send this file to your support representative." msgstr "Por favor envíe este archivo a su representante de soporte." #: ../sos/policyredhat.py:355 msgid "No URL defined in config file." msgstr "No hay URL definida en el archivo de configuración." #: ../sos/policyredhat.py:362 msgid "Cannot upload to specified URL." msgstr "No se puede cargar a la URL especificada." #: ../sos/policyredhat.py:399 msgid "There was a problem uploading your report to Red Hat support." msgstr "" "Hubo un problema al cargar su reporte al equipo de asistencia de Red Hat" #: ../sos/policyredhat.py:401 #, python-format msgid "Your report was successfully uploaded to %s with name:" msgstr "Su reporte ha sido cargado satisfactoriamente a %s con el nombre:" #: ../sos/policyredhat.py:404 msgid "Please communicate this name to your support representative." msgstr "Por favor comunique este nombre a su representante de soporte." #~ msgid "plugin %s skipped (--skip-plugins)" #~ msgstr "plugin %s ignorado (--skip-plugins)" #~ msgid "plugin %s is inactive (use -e or -o to enable)." #~ msgstr "plugin %s no está activo (use -e o -o para activarlo)." #~ msgid "plugin %s not specified in --only-plugins list" #~ msgstr "plugin %s no está especificado en la lista --only-plugins" #~ msgid "processing options from plugin: %s" #~ msgstr "procesando las opciones del plugin: %s" sosreport/po/bn.po0000644000175000017500000001000412254061770012624 0ustar zefzef# Bengali translations for PACKAGE package. # Copyright (C) 2007 ORGANIZATION # Automatically generated, 2007. # msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-11-15 15:02+0000\n" "PO-Revision-Date: 2007-10-24 08:45\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: pygettext.py 1.5\n" #: ../sos/sosreport.py:350 msgid "Could not create temporary directory." msgstr "" #: ../sos/sosreport.py:413 #, python-format msgid "sosreport (version %s)" msgstr "" #: ../sos/sosreport.py:438 #, python-format msgid "plugin %s does not validate, skipping" msgstr "" #: ../sos/sosreport.py:467 #, python-format msgid "plugin %s does not install, skipping" msgstr "" #: ../sos/sosreport.py:563 msgid "no valid plugins found" msgstr "" #: ../sos/sosreport.py:567 msgid "The following plugins are currently enabled:" msgstr "" #: ../sos/sosreport.py:573 msgid "No plugin enabled." msgstr "" #: ../sos/sosreport.py:577 msgid "The following plugins are currently disabled:" msgstr "" #: ../sos/sosreport.py:585 msgid "The following plugin options are available:" msgstr "" #: ../sos/sosreport.py:606 msgid "No plugin options available." msgstr "" #: ../sos/sosreport.py:614 msgid "sosreport requires root permissions to run." msgstr "" #: ../sos/sosreport.py:621 msgid "no valid plugins were enabled" msgstr "" #: ../sos/sosreport.py:624 #, python-format msgid "" "This utility will collect some detailed information about the\n" "hardware and setup of your %(distroa)s system.\n" "The information is collected and an archive is packaged under\n" "/tmp, which you can send to a support representative.\n" "%(distrob)s will use this information for diagnostic purposes ONLY\n" "and it will be considered confidential information.\n" "\n" "This process may take a while to complete.\n" "No changes will be made to your system.\n" "\n" msgstr "" #: ../sos/sosreport.py:639 msgid "Press ENTER to continue, or CTRL-C to quit.\n" msgstr "" #: ../sos/sosreport.py:665 msgid "One or more plugins have detected a problem in your configuration." msgstr "" #: ../sos/sosreport.py:667 msgid "Please review the following messages:" msgstr "" #: ../sos/sosreport.py:683 msgid "Are you sure you would like to continue (y/n) ? " msgstr "" #: ../sos/sosreport.py:685 msgid "y" msgstr "" #: ../sos/sosreport.py:685 msgid "Y" msgstr "" #: ../sos/sosreport.py:688 msgid "n" msgstr "" #: ../sos/sosreport.py:688 msgid "N" msgstr "" #: ../sos/sosreport.py:713 msgid " Running plugins. Please wait ..." msgstr "" #: ../sos/sosreport.py:827 #, python-format msgid " sosreport build tree is located at : %s" msgstr "" #: ../sos/policyredhat.py:211 #, python-format msgid "Please enter your first initial and last name [%s]: " msgstr "" #: ../sos/policyredhat.py:214 msgid "Please enter the case number that you are generating this report for: " msgstr "" #: ../sos/policyredhat.py:254 msgid "Creating compressed archive..." msgstr "" #: ../sos/policyredhat.py:284 msgid "Encrypting archive..." msgstr "" #: ../sos/policyredhat.py:304 msgid "There was a problem encrypting your report." msgstr "" #: ../sos/policyredhat.py:328 #, python-format msgid "" "Your sosreport has been generated and saved in:\n" " %s" msgstr "" #: ../sos/policyredhat.py:331 msgid "The md5sum is: " msgstr "" #: ../sos/policyredhat.py:333 msgid "Please send this file to your support representative." msgstr "" #: ../sos/policyredhat.py:355 msgid "No URL defined in config file." msgstr "" #: ../sos/policyredhat.py:362 msgid "Cannot upload to specified URL." msgstr "" #: ../sos/policyredhat.py:399 msgid "There was a problem uploading your report to Red Hat support." msgstr "" #: ../sos/policyredhat.py:401 #, python-format msgid "Your report was successfully uploaded to %s with name:" msgstr "" #: ../sos/policyredhat.py:404 msgid "Please communicate this name to your support representative." msgstr "" sosreport/po/nn.po0000644000175000017500000001007512254061770012650 0ustar zefzef# Norwegian Nynorsk translations for PACKAGE package. # Copyright (C) 2007 ORGANIZATION # Automatically generated, 2007. # msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-11-15 15:02+0000\n" "PO-Revision-Date: 2007-10-24 08:45\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: pygettext.py 1.5\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: ../sos/sosreport.py:350 msgid "Could not create temporary directory." msgstr "" #: ../sos/sosreport.py:413 #, python-format msgid "sosreport (version %s)" msgstr "" #: ../sos/sosreport.py:438 #, python-format msgid "plugin %s does not validate, skipping" msgstr "" #: ../sos/sosreport.py:467 #, python-format msgid "plugin %s does not install, skipping" msgstr "" #: ../sos/sosreport.py:563 msgid "no valid plugins found" msgstr "" #: ../sos/sosreport.py:567 msgid "The following plugins are currently enabled:" msgstr "" #: ../sos/sosreport.py:573 msgid "No plugin enabled." msgstr "" #: ../sos/sosreport.py:577 msgid "The following plugins are currently disabled:" msgstr "" #: ../sos/sosreport.py:585 msgid "The following plugin options are available:" msgstr "" #: ../sos/sosreport.py:606 msgid "No plugin options available." msgstr "" #: ../sos/sosreport.py:614 msgid "sosreport requires root permissions to run." msgstr "" #: ../sos/sosreport.py:621 msgid "no valid plugins were enabled" msgstr "" #: ../sos/sosreport.py:624 #, python-format msgid "" "This utility will collect some detailed information about the\n" "hardware and setup of your %(distroa)s system.\n" "The information is collected and an archive is packaged under\n" "/tmp, which you can send to a support representative.\n" "%(distrob)s will use this information for diagnostic purposes ONLY\n" "and it will be considered confidential information.\n" "\n" "This process may take a while to complete.\n" "No changes will be made to your system.\n" "\n" msgstr "" #: ../sos/sosreport.py:639 msgid "Press ENTER to continue, or CTRL-C to quit.\n" msgstr "" #: ../sos/sosreport.py:665 msgid "One or more plugins have detected a problem in your configuration." msgstr "" #: ../sos/sosreport.py:667 msgid "Please review the following messages:" msgstr "" #: ../sos/sosreport.py:683 msgid "Are you sure you would like to continue (y/n) ? " msgstr "" #: ../sos/sosreport.py:685 msgid "y" msgstr "" #: ../sos/sosreport.py:685 msgid "Y" msgstr "" #: ../sos/sosreport.py:688 msgid "n" msgstr "" #: ../sos/sosreport.py:688 msgid "N" msgstr "" #: ../sos/sosreport.py:713 msgid " Running plugins. Please wait ..." msgstr "" #: ../sos/sosreport.py:827 #, python-format msgid " sosreport build tree is located at : %s" msgstr "" #: ../sos/policyredhat.py:211 #, python-format msgid "Please enter your first initial and last name [%s]: " msgstr "" #: ../sos/policyredhat.py:214 msgid "Please enter the case number that you are generating this report for: " msgstr "" #: ../sos/policyredhat.py:254 msgid "Creating compressed archive..." msgstr "" #: ../sos/policyredhat.py:284 msgid "Encrypting archive..." msgstr "" #: ../sos/policyredhat.py:304 msgid "There was a problem encrypting your report." msgstr "" #: ../sos/policyredhat.py:328 #, python-format msgid "" "Your sosreport has been generated and saved in:\n" " %s" msgstr "" #: ../sos/policyredhat.py:331 msgid "The md5sum is: " msgstr "" #: ../sos/policyredhat.py:333 msgid "Please send this file to your support representative." msgstr "" #: ../sos/policyredhat.py:355 msgid "No URL defined in config file." msgstr "" #: ../sos/policyredhat.py:362 msgid "Cannot upload to specified URL." msgstr "" #: ../sos/policyredhat.py:399 msgid "There was a problem uploading your report to Red Hat support." msgstr "" #: ../sos/policyredhat.py:401 #, python-format msgid "Your report was successfully uploaded to %s with name:" msgstr "" #: ../sos/policyredhat.py:404 msgid "Please communicate this name to your support representative." msgstr "" sosreport/po/it.po0000644000175000017500000001445012254061770012652 0ustar zefzef# translation of it.po to # Copyright (C) YEAR ORGANIZATION # FIRST AUTHOR , YEAR. # msgid "" msgstr "" "Project-Id-Version: it\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-11-15 15:02+0000\n" "PO-Revision-Date: 2007-11-06 15:02+1000\n" "Last-Translator: \n" "Language-Team: \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: pygettext.py 1.5\n" "X-Generator: KBabel 1.11.4\n" #: ../sos/sosreport.py:350 msgid "Could not create temporary directory." msgstr "Impossibile creare la cartella temporanea." #: ../sos/sosreport.py:413 #, python-format msgid "sosreport (version %s)" msgstr "sosreport (versione %s)" #: ../sos/sosreport.py:438 #, python-format msgid "plugin %s does not validate, skipping" msgstr "il plugin %s non é valido e verrà ignorato" #: ../sos/sosreport.py:467 #, python-format msgid "plugin %s does not install, skipping" msgstr "il plugin %s non si installa, ignorato" #: ../sos/sosreport.py:563 msgid "no valid plugins found" msgstr "non é stato trovato nessun plugin valido " #: ../sos/sosreport.py:567 msgid "The following plugins are currently enabled:" msgstr "I seguenti plugin sono attivi:" #: ../sos/sosreport.py:573 msgid "No plugin enabled." msgstr "Nessun plugin abilitato." #: ../sos/sosreport.py:577 msgid "The following plugins are currently disabled:" msgstr "I seguenti plugin sono disattivati:" #: ../sos/sosreport.py:585 msgid "The following plugin options are available:" msgstr "Sono disponibili le seguenti opzioni per il plugin:" #: ../sos/sosreport.py:606 msgid "No plugin options available." msgstr "Nessuna opzione disponibile per il plugin." #: ../sos/sosreport.py:614 msgid "sosreport requires root permissions to run." msgstr "sosreport necessita dei permessi di root" #: ../sos/sosreport.py:621 msgid "no valid plugins were enabled" msgstr "non é stato attivato nessun plugin" #: ../sos/sosreport.py:624 #, python-format msgid "" "This utility will collect some detailed information about the\n" "hardware and setup of your %(distroa)s system.\n" "The information is collected and an archive is packaged under\n" "/tmp, which you can send to a support representative.\n" "%(distrob)s will use this information for diagnostic purposes ONLY\n" "and it will be considered confidential information.\n" "\n" "This process may take a while to complete.\n" "No changes will be made to your system.\n" "\n" msgstr "" "Questo strumento raccoglierà alcune informazioni dettagliate sull'hardware\n" " e sulla impostazione del vostro sistema %(distroa)s.\n" " Queste informazioni verranno archiviate in\n" "/tmp, e potranno essere inviate ad un rappresentante del supporto tecnico.\n" "%(distrob)s utilizzerà questi dati ESCLUSIVAMENTE per scopi diagnostici e\n" "verranno considerate come informazioni riservate.\n" "\n" "Questo processo potrebbe durare alcuni minuti.\n" "Non verrà apportata alcuna modifica al sistema.\n" "\n" #: ../sos/sosreport.py:639 msgid "Press ENTER to continue, or CTRL-C to quit.\n" msgstr "Premere INVIO per continuare, o CTRL-C per usicre.\n" #: ../sos/sosreport.py:665 msgid "One or more plugins have detected a problem in your configuration." msgstr "Uno o più plugin hanno individuato un problema nella configurazione." #: ../sos/sosreport.py:667 msgid "Please review the following messages:" msgstr "Si prega di rileggere i seguenti messaggi:" #: ../sos/sosreport.py:683 msgid "Are you sure you would like to continue (y/n) ? " msgstr "Si desidera continuare (s/n) ? " #: ../sos/sosreport.py:685 msgid "y" msgstr "s" #: ../sos/sosreport.py:685 msgid "Y" msgstr "S" #: ../sos/sosreport.py:688 msgid "n" msgstr "n" #: ../sos/sosreport.py:688 msgid "N" msgstr "N" #: ../sos/sosreport.py:713 msgid " Running plugins. Please wait ..." msgstr "Plugin in esecuzione. Attendere prego ..." #: ../sos/sosreport.py:827 #, python-format msgid " sosreport build tree is located at : %s" msgstr "il sosreport generato si trova in : %s" #: ../sos/policyredhat.py:211 #, python-format msgid "Please enter your first initial and last name [%s]: " msgstr "Inserire l'iniziale del nome e il cognome [%s]: " #: ../sos/policyredhat.py:214 msgid "Please enter the case number that you are generating this report for: " msgstr "Inserire il numero di identificazione di questo report: " #: ../sos/policyredhat.py:254 msgid "Creating compressed archive..." msgstr "Creazione di un archivio compresso, in corso ..." #: ../sos/policyredhat.py:284 msgid "Encrypting archive..." msgstr "Cifratura dell'archivio, in corso ..." #: ../sos/policyredhat.py:304 msgid "There was a problem encrypting your report." msgstr "Si è verificato un problema durante la cifratura del report." #: ../sos/policyredhat.py:328 #, python-format msgid "" "Your sosreport has been generated and saved in:\n" " %s" msgstr "" "Il sosreport é stato creato e salvato in:\n" " %s" #: ../sos/policyredhat.py:331 msgid "The md5sum is: " msgstr "L'md5sum é: " #: ../sos/policyredhat.py:333 msgid "Please send this file to your support representative." msgstr "Si prega di inviare questo file al supporto tecnico." #: ../sos/policyredhat.py:355 msgid "No URL defined in config file." msgstr "Nessun URL definito nel file config." #: ../sos/policyredhat.py:362 msgid "Cannot upload to specified URL." msgstr "Impossibile inviare all'URL specificato." #: ../sos/policyredhat.py:399 msgid "There was a problem uploading your report to Red Hat support." msgstr "" "Si è verificato un problema nell'inviare il report al supporto tecnico Red " "Hat." #: ../sos/policyredhat.py:401 #, python-format msgid "Your report was successfully uploaded to %s with name:" msgstr "Il report con il seguente nome, è stato inviato con successo a %s: " #: ../sos/policyredhat.py:404 msgid "Please communicate this name to your support representative." msgstr "Si prega di inviare questo nome al supporto tecnico." #~ msgid "plugin %s skipped (--skip-plugins)" #~ msgstr "plugin %s disattivata (--skip-plugins)" #~ msgid "plugin %s is inactive (use -e or -o to enable)." #~ msgstr "plugin %s non é attiva (utilizzare -e o -o per riattivarla)." #~ msgid "plugin %s not specified in --only-plugins list" #~ msgstr "plugin %s non specificata nella lista --only-plugins" #~ msgid "processing options from plugin: %s" #~ msgstr "sto processando le opzioni della plugin: %s" sosreport/po/pt.po0000644000175000017500000001513112254061770012656 0ustar zefzef# Portuguese translations for PACKAGE package. # Copyright (C) 2007 ORGANIZATION # Automatically generated, 2007. # msgid "" msgstr "" "Project-Id-Version: sos\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-11-15 15:02+0000\n" "PO-Revision-Date: 2009-09-05 04:14+0100\n" "Last-Translator: Rui Gouveia \n" "Language-Team: PT \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Poedit-Language: Portuguese\n" "Generated-By: pygettext.py 1.5\n" "X-Poedit-Country: PORTUGAL\n" #: ../sos/sosreport.py:350 msgid "Could not create temporary directory." msgstr "Não foi possível criar directório temporário." #: ../sos/sosreport.py:413 #, python-format msgid "sosreport (version %s)" msgstr "sosreport (versão %s)" #: ../sos/sosreport.py:438 #, python-format msgid "plugin %s does not validate, skipping" msgstr "plugin %s não valida. A passar ao seguinte" #: ../sos/sosreport.py:467 #, python-format msgid "plugin %s does not install, skipping" msgstr "plugin %s não instala. A passar ao seguinte" #: ../sos/sosreport.py:563 msgid "no valid plugins found" msgstr "Não foram encontrados plugins válidos" #: ../sos/sosreport.py:567 msgid "The following plugins are currently enabled:" msgstr "Os seguintes plugins estão actualmente activos:" #: ../sos/sosreport.py:573 msgid "No plugin enabled." msgstr "Nenhum plugin activo." #: ../sos/sosreport.py:577 msgid "The following plugins are currently disabled:" msgstr "Os seguintes plugins estão actualmente desactivados:" #: ../sos/sosreport.py:585 msgid "The following plugin options are available:" msgstr "As seguintes opções de plugins estão disponíveis:" #: ../sos/sosreport.py:606 msgid "No plugin options available." msgstr "Nenhumas opções do plugin disponíveis." #: ../sos/sosreport.py:614 msgid "sosreport requires root permissions to run." msgstr "o sosreport necessita de permissões de root para executar." #: ../sos/sosreport.py:621 msgid "no valid plugins were enabled" msgstr "Não foram activados plugins válidos" #: ../sos/sosreport.py:624 #, python-format msgid "" "This utility will collect some detailed information about the\n" "hardware and setup of your %(distroa)s system.\n" "The information is collected and an archive is packaged under\n" "/tmp, which you can send to a support representative.\n" "%(distrob)s will use this information for diagnostic purposes ONLY\n" "and it will be considered confidential information.\n" "\n" "This process may take a while to complete.\n" "No changes will be made to your system.\n" "\n" msgstr "" "Este utilitário vai recolher informações detalhadas acerca do\n" "hardware e configuração do seu sistema %(distroa)s.\n" "Esta informação é recolhida e compilada num ficheiro em /tmp,\n" "o qual poderá ser enviado para um representante de suporte.\n" "A %(distrob)s irá utilizar esta informação UNICAMENTE para efeitos\n" "de diagnóstico e será considerada informação confidencial.\n" "\n" "Este processo pode demorar um pouco a completar.\n" "Nenhuma alteração será efectuada ao seu sistema.\n" "\n" #: ../sos/sosreport.py:639 msgid "Press ENTER to continue, or CTRL-C to quit.\n" msgstr "Carregue em ENTER para continuar, ou CTRL-C para sair.\n" #: ../sos/sosreport.py:665 msgid "One or more plugins have detected a problem in your configuration." msgstr "Um ou mais plugins detectaram um problema na sua configuração." #: ../sos/sosreport.py:667 msgid "Please review the following messages:" msgstr "Por favor, reveja as seguintes mensagens:" #: ../sos/sosreport.py:683 msgid "Are you sure you would like to continue (y/n) ? " msgstr "Tem a certeza que deseja continuar (y para sim/n para não) ? " #: ../sos/sosreport.py:685 msgid "y" msgstr "s" #: ../sos/sosreport.py:685 msgid "Y" msgstr "Y" #: ../sos/sosreport.py:688 msgid "n" msgstr "n" #: ../sos/sosreport.py:688 msgid "N" msgstr "N" #: ../sos/sosreport.py:713 msgid " Running plugins. Please wait ..." msgstr "A executar plugins. Por favor, aguarde ..." #: ../sos/sosreport.py:827 #, python-format msgid " sosreport build tree is located at : %s" msgstr "a árvore de construção do sosreport está localizada em : %s" #: ../sos/policyredhat.py:211 #, python-format msgid "Please enter your first initial and last name [%s]: " msgstr "Por favor, insira a sua primeira inicial e último nome [%s]: " #: ../sos/policyredhat.py:214 msgid "Please enter the case number that you are generating this report for: " msgstr "" "Por favor, insira o número do processo para o qual está a gerar este " "relatório: " #: ../sos/policyredhat.py:254 msgid "Creating compressed archive..." msgstr "A criar arquivo comprimido..." #: ../sos/policyredhat.py:284 msgid "Encrypting archive..." msgstr "A cifrar arquivo..." #: ../sos/policyredhat.py:304 msgid "There was a problem encrypting your report." msgstr "Ocorreu um erro ao cifrar o seu relatório." #: ../sos/policyredhat.py:328 #, python-format msgid "" "Your sosreport has been generated and saved in:\n" " %s" msgstr "" "O seu relatório sosreport foi gerado e guardado em:\n" " %s" #: ../sos/policyredhat.py:331 msgid "The md5sum is: " msgstr "O md5sum é: " #: ../sos/policyredhat.py:333 msgid "Please send this file to your support representative." msgstr "Por favor, envie este ficheiro para o seu representante do suporte." #: ../sos/policyredhat.py:355 msgid "No URL defined in config file." msgstr "Nenhum URL definido no ficheiro de configuração." #: ../sos/policyredhat.py:362 msgid "Cannot upload to specified URL." msgstr "Não foi possível submeter para o URL especificado." #: ../sos/policyredhat.py:399 msgid "There was a problem uploading your report to Red Hat support." msgstr "Ocorreu um erro ao submeter o seu relatório para o suporte Red Hat." #: ../sos/policyredhat.py:401 #, python-format msgid "Your report was successfully uploaded to %s with name:" msgstr "O seu relatório foi submetido com sucesso para %s com o nome:" #: ../sos/policyredhat.py:404 msgid "Please communicate this name to your support representative." msgstr "Por favor, comunique este nome para o seu representante do suporte." #~ msgid "plugin %s skipped (--skip-plugins)" #~ msgstr "plugin %s ignorado (--skip-plugins)" #~ msgid "plugin %s is inactive (use -e or -o to enable)." #~ msgstr "plugin %s está desactivado (utilize -e ou -o para activar)." #~ msgid "plugin %s not specified in --only-plugins list" #~ msgstr "plugin %s não é especificado na lista --only-plugins" #~ msgid "processing options from plugin: %s" #~ msgstr "A processar opções do plugin: %s" sosreport/po/pa.po0000644000175000017500000002122112254061770012630 0ustar zefzef# translation of pa.po to Punjabi # Punjabi translations for PACKAGE package. # Copyright (C) 2007 ORGANIZATION # Automatically generated, 2007. # Jaswinder Singh , 2007. # Jaswinder Singh , 2011. msgid "" msgstr "" "Project-Id-Version: pa\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-11-15 15:02+0000\n" "PO-Revision-Date: 2011-01-11 15:33+0530\n" "Last-Translator: Jaswinder Singh \n" "Language-Team: PLTG\n" "Language: pa\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Virtaal 0.6.1\n" "Generated-By: pygettext.py 1.5\n" #: ../sos/sosreport.py:350 msgid "Could not create temporary directory." msgstr "ਆਰਜੀ ਡਾਇਰੈਕਟਰੀ ਨਹੀਂ ਬਣਾ ਸਕਦਾ।" #: ../sos/sosreport.py:413 #, python-format msgid "sosreport (version %s)" msgstr "sosreport (ਵਰਜਨ %s)" #: ../sos/sosreport.py:438 #, python-format msgid "plugin %s does not validate, skipping" msgstr "ਪਲੱਗਇਨ %s ਪ੍ਰਮਾਣਿਤ ਨਹੀਂ ਹੈ, ਛੱਡ ਰਿਹਾ ਹੈ" #: ../sos/sosreport.py:467 #, python-format msgid "plugin %s does not install, skipping" msgstr "ਪਲੱਗਇਨ %s ਇੰਸਟਾਲ ਨਹੀਂ ਹੋਇਆ, ਛੱਡ ਰਿਹਾ ਹੈ" #: ../sos/sosreport.py:563 msgid "no valid plugins found" msgstr "ਕੋਈ ਯੋਗ ਪਲੱਗਿਨ ਨਹੀਂ ਲੱਭਿਆ" #: ../sos/sosreport.py:567 msgid "The following plugins are currently enabled:" msgstr "ਹੇਠਲੇ ਪਲੱਗਇਨ ਯੋਗ ਕੀਤੇ ਹਨ:" #: ../sos/sosreport.py:573 msgid "No plugin enabled." msgstr "ਕੋਈ ਪਲੱਗਇਨ ਯੋਗ ਨਹੀਂ ਹੈ।" #: ../sos/sosreport.py:577 msgid "The following plugins are currently disabled:" msgstr "ਹੇਠਲੇ ਪਲੱਗਇਨ ਅਯੋਗ ਹਨ।" #: ../sos/sosreport.py:585 msgid "The following plugin options are available:" msgstr "ਹੇਠਲੀਆਂ ਪਲੱਗਇਨ ਚੋਣਾਂ ਉਪਲੱਬਧ ਹਨ:" #: ../sos/sosreport.py:606 msgid "No plugin options available." msgstr "ਕੋਈ ਪਲੱਗਇਨ ਚੋਣ ਉਪਲੱਬਧ ਨਹੀਂ ਹੈ।" #: ../sos/sosreport.py:614 msgid "sosreport requires root permissions to run." msgstr "sosreport ਚਲਾਉਣ ਲਈ ਪਰਬੰਧਕ ਅਧਿਕਾਰ ਹੋਣੇ ਜਰੂਰੀ ਹਨ।" #: ../sos/sosreport.py:621 msgid "no valid plugins were enabled" msgstr "ਕੋਈ ਸਹੀ ਪਲੱਗਇਨ ਯੋਗ ਨਹੀਂ ਕੀਤਾ" #: ../sos/sosreport.py:624 #, python-format msgid "" "This utility will collect some detailed information about the\n" "hardware and setup of your %(distroa)s system.\n" "The information is collected and an archive is packaged under\n" "/tmp, which you can send to a support representative.\n" "%(distrob)s will use this information for diagnostic purposes ONLY\n" "and it will be considered confidential information.\n" "\n" "This process may take a while to complete.\n" "No changes will be made to your system.\n" "\n" msgstr "" "ਇਹ ਸਹੂਲਤ ਹਾਰਡਵੇਅਰ ਬਾਰੇ ਕੁਝ ਵਿਸਥਾਰ ਜਾਣਕਾਰੀ ਇਕੱਠੀ\n" "ਕਰੇਗੀ ਅਤੇ ਤੁਹਾਡੇ %(distroa)s ਸਿਸਟਮ ਨੂੰ ਨਿਰਧਾਰਤ ਕਰੇਗੀ।\n" "ਜਾਣਕਾਰੀ ਇਕੱਠੀ ਕੀਤੀ ਜਾਂਦੀ ਹੈ ਅਤੇ /tmp ਵਿੱਚ ਇੱਕ ਆਰਚੀਵ ਬਣਾਈ ਜਾਂਦੀ\n" "ਹੈ, ਜੋ ਤੁਸੀਂ ਸਹਿਯੋਗ ਪ੍ਰਤੀਨਿਧ ਨੂੰ ਭੇਜ ਸਕਦੇ ਹੋ।\n" "%(distrob)s ਇਸ ਜਾਣਕਾਰੀ ਨੂੰ ਸਿਰਫ ਹੱਲ ਕਰਨ ਲਈ ਵਰਤੇਗਾ\n" "ਅਤੇ ਇਹ ਜਾਣਕਾਰੀ ਗੁਪਤ ਰੱਖੀ ਜਾਏਗੀ।\n" "\n" "ਇਹ ਕਾਰਜ ਮੁਕੰਮਲ ਹੋਣ ਲਈ ਕੁਝ ਸਮਾਂ ਲੈ ਸਕਦਾ ਹੈ।\n" "ਤੁਹਾਡੇ ਸਿਸਟਮ ਉੱਪਰ ਕੋਈ ਤਬਦੀਲੀ ਨਹੀਂ ਕੀਤੀ ਜਾਏਗੀ।\n" "\n" #: ../sos/sosreport.py:639 msgid "Press ENTER to continue, or CTRL-C to quit.\n" msgstr "ਜਾਰੀ ਰੱਖਣ ਲਈ ENTER ਦਬਾਓ, ਜਾਂ ਬੰਦ ਕਰਨ ਲਈ CTRL-C ਦਬਾਓ।\n" #: ../sos/sosreport.py:665 msgid "One or more plugins have detected a problem in your configuration." msgstr "ਤੁਹਾਡੀ ਸੰਰਚਨਾ ਵਿੱਚ ਇੱਕ ਜਾਂ ਜਿਆਦਾ ਪਲੱਗਇਨ ਸਮੱਸਿਆ ਪੈਦਾ ਕਰਦੇ ਹਨ।" #: ../sos/sosreport.py:667 msgid "Please review the following messages:" msgstr "ਕਿਰਪਾ ਕਰਕੇ ਹੇਠਲੇ ਸੁਨੇਹੇ ਵੇਖੋ:" #: ../sos/sosreport.py:683 msgid "Are you sure you would like to continue (y/n) ? " msgstr "ਕੀ ਤੁਸੀਂ ਯਕੀਨਨ ਜਾਰੀ ਰੱਖਣਾ ਚਾਹੁੰਦੇ ਹੋ (y/n) ? " #: ../sos/sosreport.py:685 msgid "y" msgstr "y" #: ../sos/sosreport.py:685 msgid "Y" msgstr "Y" #: ../sos/sosreport.py:688 msgid "n" msgstr "n" #: ../sos/sosreport.py:688 msgid "N" msgstr "N" #: ../sos/sosreport.py:713 msgid " Running plugins. Please wait ..." msgstr " ਪਲੱਗਇਨ ਚਲਾ ਰਿਹਾ। ਉਡੀਕ ਕਰੋ ਜੀ ..." #: ../sos/sosreport.py:827 #, python-format msgid " sosreport build tree is located at : %s" msgstr " sosreport ਬਿਲਡ ਟਰੀ ਇੱਥੇ ਰੱਖਿਆ ਹੈ : %s" #: ../sos/policyredhat.py:211 #, python-format msgid "Please enter your first initial and last name [%s]: " msgstr "ਕਿਰਪਾ ਕਰਕੇ ਆਪਣਾ ਪਹਿਲਾ ਅਤੇ ਆਖਰੀ ਨਾਂ ਦਿਓ [%s]: " #: ../sos/policyredhat.py:214 msgid "Please enter the case number that you are generating this report for: " msgstr "ਕਿਰਪਾ ਕਰਕੇ ਮੁੱਦਾ ਨੰਬਰ ਦਿਓ ਜੋ ਤੁਸੀਂ ਇਸ ਰਿਪੋਰਟ ਵਿੱਚ ਦੇ ਰਹੇ ਹੋ: " #: ../sos/policyredhat.py:254 msgid "Creating compressed archive..." msgstr "ਸੰਕੁਚਿਤ ਆਰਚੀਵ ਬਣਾ ਰਿਹਾ ਹੈ..." #: ../sos/policyredhat.py:284 msgid "Encrypting archive..." msgstr "ਆਰਚੀਵ ਇਨਕ੍ਰਿਪਟ ਹੋ ਰਿਹਾ ਹੈ..." #: ../sos/policyredhat.py:304 msgid "There was a problem encrypting your report." msgstr "ਤੁਹਾਡੀ ਰਿਪੋਰਟ ਇਨਕ੍ਰਿਪਟ ਕਰਨ ਵਿੱਚ ਸਮੱਸਿਆ ਆਈ ਹੈ..." #: ../sos/policyredhat.py:328 #, python-format msgid "" "Your sosreport has been generated and saved in:\n" " %s" msgstr "" "ਤੁਹਾਡੀ sosreport ਬਣਾਈ ਗਈ ਹੈ ਅਤੇ ਇੱਥੇ ਸੰਭਾਲੀ ਗਈ ਹੈ:\n" " %s" #: ../sos/policyredhat.py:331 msgid "The md5sum is: " msgstr "md5sum ਇਹ ਹੈ: " #: ../sos/policyredhat.py:333 msgid "Please send this file to your support representative." msgstr "ਕਿਰਪਾ ਕਰਕੇ ਇਸ ਫਾਇਲ ਨੂੰ ਆਪਣੇ ਸਹਿਯੋਗ ਪ੍ਰਤੀਨਿਧ ਨੂੰ ਭੇਜੋ।" #: ../sos/policyredhat.py:355 msgid "No URL defined in config file." msgstr "ਸੰਰਚਨਾ ਫਾਇਲ ਵਿੱਚ ਕੋਈ URL ਨਹੀਂ ਦਿੱਤਾ।" #: ../sos/policyredhat.py:362 msgid "Cannot upload to specified URL." msgstr "ਦਿੱਤੇ URL ਤੇ ਅੱਪਲੋਡ ਨਹੀਂ ਕਰ ਸਕਦਾ।" #: ../sos/policyredhat.py:399 msgid "There was a problem uploading your report to Red Hat support." msgstr "ਤੁਹਾਡੀ ਰਿਪੋਰਟ ਨੂੰ Red Hat ਸਹਿਯੋਗ ਤੇ ਅੱਪਲੋਡ ਕਰਨ ਵੇਲੇ ਗਲਤੀ ਆਈ ਹੈ।" #: ../sos/policyredhat.py:401 #, python-format msgid "Your report was successfully uploaded to %s with name:" msgstr "ਤੁਹਾਡੀ ਰਿਪੋਰਟ ਸਫਲਤਾਪੂਰਕ %s ਉੱਪਰ ਇਸ ਨਾਂ ਨਾਲ ਅੱਪਲੋਡ ਹੋ ਗਈ ਹੈ:" #: ../sos/policyredhat.py:404 msgid "Please communicate this name to your support representative." msgstr "ਕਿਰਪਾ ਕਰਕੇ ਇਸ ਨਾਂ ਨੂੰ ਸਹਿਯੋਗੀ ਪ੍ਰਤੀਨਿਧ ਨਾਲ ਜੋੜੋ।" #~ msgid "plugin %s skipped (--skip-plugins)" #~ msgstr "ਪਲੱਗਇਨ %s ਛੱਡਿਆ ਹੈ (--skip-plugins)" #~ msgid "plugin %s is inactive (use -e or -o to enable)." #~ msgstr "ਪਲੱਗਇਨ %s ਨਾ-ਸਰਗਰਮ ਹੈ ( ਯੋਗ ਕਰਨ ਲਈ use -e ਜਾਂ -o ਵਰਤੋ)।" #~ msgid "plugin %s not specified in --only-plugins list" #~ msgstr "ਪਲੱਗਇਨ %s ਨੂੰ --only-plugins ਸੂਚੀ ਵਿੱਚ ਨਹੀਂ ਦਿੱਤਾ" #~ msgid "processing options from plugin: %s" #~ msgstr "ਪਲੱਗਇਨ ਤੋਂ ਚੋਣਾਂ ਲੈ ਰਿਹਾ ਹੈ: %s" sosreport/po/fr.po0000644000175000017500000001547312254061770012653 0ustar zefzef# translation of fr.po to French # French translations for PACKAGE package. # Copyright (C) 2007 ORGANIZATION # # Automatically generated, 2007. # Decroux Fabien , 2007. # Thomas Canniot , 2010. msgid "" msgstr "" "Project-Id-Version: fr\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-11-15 15:02+0000\n" "PO-Revision-Date: 2010-03-20 21:28+0100\n" "Last-Translator: Thomas Canniot \n" "Language-Team: French \n" "Language: fr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n > 1);\n" "Generated-By: pygettext.py 1.5\n" "X-Generator: Lokalize 1.0\n" #: ../sos/sosreport.py:350 msgid "Could not create temporary directory." msgstr "Impossible de créer un répertoire temporaire." #: ../sos/sosreport.py:413 #, python-format msgid "sosreport (version %s)" msgstr "sosreport (version %s)" #: ../sos/sosreport.py:438 #, python-format msgid "plugin %s does not validate, skipping" msgstr "le plugin %s n'a pas été validé, ignoré" #: ../sos/sosreport.py:467 #, python-format msgid "plugin %s does not install, skipping" msgstr "le plugin %s ne s'installe pas, ignoré" #: ../sos/sosreport.py:563 msgid "no valid plugins found" msgstr "aucun plugin valide n'a été trouvé" #: ../sos/sosreport.py:567 msgid "The following plugins are currently enabled:" msgstr "Les plugins suivants sont activés :" #: ../sos/sosreport.py:573 msgid "No plugin enabled." msgstr "Aucun plugin n'est activé." #: ../sos/sosreport.py:577 msgid "The following plugins are currently disabled:" msgstr "Les plugins suivants sont désactivés :" #: ../sos/sosreport.py:585 msgid "The following plugin options are available:" msgstr "Les options du plugin suivant sont disponibles :" #: ../sos/sosreport.py:606 msgid "No plugin options available." msgstr "Aucune option n'est disponible pour ce plugin." #: ../sos/sosreport.py:614 msgid "sosreport requires root permissions to run." msgstr "sosreport requiert des permissions root pour démarrer." #: ../sos/sosreport.py:621 msgid "no valid plugins were enabled" msgstr "aucun plugin valide n'a été activé" #: ../sos/sosreport.py:624 #, python-format msgid "" "This utility will collect some detailed information about the\n" "hardware and setup of your %(distroa)s system.\n" "The information is collected and an archive is packaged under\n" "/tmp, which you can send to a support representative.\n" "%(distrob)s will use this information for diagnostic purposes ONLY\n" "and it will be considered confidential information.\n" "\n" "This process may take a while to complete.\n" "No changes will be made to your system.\n" "\n" msgstr "" "Cet utilitaire collectera des informations détaillées à propos du\n" "matériel et de l'installation de votre système %(distroa)s.\n" "Les informations sont collectées et une archive est créée sous /tmp.\n" "Vous pouvez l'envoyer à un représentant de support.\n" "%(distrob)s utilisera ces informations à des fins de diagnostique SEULEMENT\n" "et elles seront considérées comme des informations confidentielles.\n" "\n" "Ce processus peut prendre un certain temps avant d'être terminé.\n" "Aucun changement ne sera effectué sur votre système.\n" "\n" #: ../sos/sosreport.py:639 msgid "Press ENTER to continue, or CTRL-C to quit.\n" msgstr "Appuyez sur Entrée pour continuer ou CTRL-C pour quitter.\n" #: ../sos/sosreport.py:665 msgid "One or more plugins have detected a problem in your configuration." msgstr "" "Un ou plusieurs plugins ont détecté un problème dans votre configuration." #: ../sos/sosreport.py:667 msgid "Please review the following messages:" msgstr "Veuillez revoir les messages suivants :" #: ../sos/sosreport.py:683 msgid "Are you sure you would like to continue (y/n) ? " msgstr "Êtes-vous sûr de vouloir continuer (y/n) ?" #: ../sos/sosreport.py:685 msgid "y" msgstr "y" #: ../sos/sosreport.py:685 msgid "Y" msgstr "Y" #: ../sos/sosreport.py:688 msgid "n" msgstr "n" #: ../sos/sosreport.py:688 msgid "N" msgstr "N" #: ../sos/sosreport.py:713 msgid " Running plugins. Please wait ..." msgstr "Lancement des extensions. Veuillez patienter..." #: ../sos/sosreport.py:827 #, python-format msgid " sosreport build tree is located at : %s" msgstr "L'arborescence construite par sosreport est située dans : %s" #: ../sos/policyredhat.py:211 #, python-format msgid "Please enter your first initial and last name [%s]: " msgstr "" "Veuillez saisir votre premier prénom (si vous en avez plusieurs) et votre " "nom [%s] :" #: ../sos/policyredhat.py:214 msgid "Please enter the case number that you are generating this report for: " msgstr "Veuillez saisir le numéro de cas pour lequel vous générez ce rapport :" #: ../sos/policyredhat.py:254 msgid "Creating compressed archive..." msgstr "Création d'une archive compressée..." #: ../sos/policyredhat.py:284 msgid "Encrypting archive..." msgstr "Cryptage de l'archive..." #: ../sos/policyredhat.py:304 msgid "There was a problem encrypting your report." msgstr "Une erreur s'est produire lors du cryptage de votre rapport." #: ../sos/policyredhat.py:328 #, python-format msgid "" "Your sosreport has been generated and saved in:\n" " %s" msgstr "" "Votre rapport sos a été généré et enregistré dans :\n" " %s" #: ../sos/policyredhat.py:331 msgid "The md5sum is: " msgstr "Le md5sum est :" #: ../sos/policyredhat.py:333 msgid "Please send this file to your support representative." msgstr "Veuillez envoyer ce fichier à votre représentant de support." #: ../sos/policyredhat.py:355 msgid "No URL defined in config file." msgstr "Pas d'URL définie dans le fichier de configuration." #: ../sos/policyredhat.py:362 msgid "Cannot upload to specified URL." msgstr "Impossible de le télécharger vers l'URL spécifié." #: ../sos/policyredhat.py:399 msgid "There was a problem uploading your report to Red Hat support." msgstr "" "Une erreur s'est produite lors du téléchargement de votre rapport vers le " "support Red Hat." #: ../sos/policyredhat.py:401 #, python-format msgid "Your report was successfully uploaded to %s with name:" msgstr "Votre rapport a été téléchargé avec succès vers %s avec le nom :" #: ../sos/policyredhat.py:404 msgid "Please communicate this name to your support representative." msgstr "Veuillez communiquer ce nom à votre représentant de support." #~ msgid "plugin %s skipped (--skip-plugins)" #~ msgstr "le plugin %s a été ignoré (--skip-plugins)" #~ msgid "plugin %s is inactive (use -e or -o to enable)." #~ msgstr "le plugin %s est inactif (utilisez -e ou -o pour l'activer)." #~ msgid "plugin %s not specified in --only-plugins list" #~ msgstr "le plugin %s n'a pas été spécifié dans la liste --only-plugins" #~ msgid "processing options from plugin: %s" #~ msgstr "traitement des options du plugin : %s" sosreport/po/sq.po0000644000175000017500000001000512254061770012651 0ustar zefzef# Albanian translations for PACKAGE package. # Copyright (C) 2007 ORGANIZATION # Automatically generated, 2007. # msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-11-15 15:02+0000\n" "PO-Revision-Date: 2007-10-24 08:45\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: pygettext.py 1.5\n" #: ../sos/sosreport.py:350 msgid "Could not create temporary directory." msgstr "" #: ../sos/sosreport.py:413 #, python-format msgid "sosreport (version %s)" msgstr "" #: ../sos/sosreport.py:438 #, python-format msgid "plugin %s does not validate, skipping" msgstr "" #: ../sos/sosreport.py:467 #, python-format msgid "plugin %s does not install, skipping" msgstr "" #: ../sos/sosreport.py:563 msgid "no valid plugins found" msgstr "" #: ../sos/sosreport.py:567 msgid "The following plugins are currently enabled:" msgstr "" #: ../sos/sosreport.py:573 msgid "No plugin enabled." msgstr "" #: ../sos/sosreport.py:577 msgid "The following plugins are currently disabled:" msgstr "" #: ../sos/sosreport.py:585 msgid "The following plugin options are available:" msgstr "" #: ../sos/sosreport.py:606 msgid "No plugin options available." msgstr "" #: ../sos/sosreport.py:614 msgid "sosreport requires root permissions to run." msgstr "" #: ../sos/sosreport.py:621 msgid "no valid plugins were enabled" msgstr "" #: ../sos/sosreport.py:624 #, python-format msgid "" "This utility will collect some detailed information about the\n" "hardware and setup of your %(distroa)s system.\n" "The information is collected and an archive is packaged under\n" "/tmp, which you can send to a support representative.\n" "%(distrob)s will use this information for diagnostic purposes ONLY\n" "and it will be considered confidential information.\n" "\n" "This process may take a while to complete.\n" "No changes will be made to your system.\n" "\n" msgstr "" #: ../sos/sosreport.py:639 msgid "Press ENTER to continue, or CTRL-C to quit.\n" msgstr "" #: ../sos/sosreport.py:665 msgid "One or more plugins have detected a problem in your configuration." msgstr "" #: ../sos/sosreport.py:667 msgid "Please review the following messages:" msgstr "" #: ../sos/sosreport.py:683 msgid "Are you sure you would like to continue (y/n) ? " msgstr "" #: ../sos/sosreport.py:685 msgid "y" msgstr "" #: ../sos/sosreport.py:685 msgid "Y" msgstr "" #: ../sos/sosreport.py:688 msgid "n" msgstr "" #: ../sos/sosreport.py:688 msgid "N" msgstr "" #: ../sos/sosreport.py:713 msgid " Running plugins. Please wait ..." msgstr "" #: ../sos/sosreport.py:827 #, python-format msgid " sosreport build tree is located at : %s" msgstr "" #: ../sos/policyredhat.py:211 #, python-format msgid "Please enter your first initial and last name [%s]: " msgstr "" #: ../sos/policyredhat.py:214 msgid "Please enter the case number that you are generating this report for: " msgstr "" #: ../sos/policyredhat.py:254 msgid "Creating compressed archive..." msgstr "" #: ../sos/policyredhat.py:284 msgid "Encrypting archive..." msgstr "" #: ../sos/policyredhat.py:304 msgid "There was a problem encrypting your report." msgstr "" #: ../sos/policyredhat.py:328 #, python-format msgid "" "Your sosreport has been generated and saved in:\n" " %s" msgstr "" #: ../sos/policyredhat.py:331 msgid "The md5sum is: " msgstr "" #: ../sos/policyredhat.py:333 msgid "Please send this file to your support representative." msgstr "" #: ../sos/policyredhat.py:355 msgid "No URL defined in config file." msgstr "" #: ../sos/policyredhat.py:362 msgid "Cannot upload to specified URL." msgstr "" #: ../sos/policyredhat.py:399 msgid "There was a problem uploading your report to Red Hat support." msgstr "" #: ../sos/policyredhat.py:401 #, python-format msgid "Your report was successfully uploaded to %s with name:" msgstr "" #: ../sos/policyredhat.py:404 msgid "Please communicate this name to your support representative." msgstr "" sosreport/po/ca.po0000644000175000017500000001616212254061770012623 0ustar zefzef# Catalan translation of iok by Softcatalà # Copyright (C) 2009 Free Software Foundation # This file is distributed under the same license as the iok package. # Xavier Conde Rueda , 2009. # # This file is translated according to the glossary and style guide of # Softcatalà. If you plan to modify this file, please read first the page # of the Catalan translation team for the Fedora project at: # http://www.softcatala.org/projectes/fedora/ # and contact the previous translator. # # Aquest fitxer s'ha de traduir d'acord amb el recull de termes i la guia # d'estil de Softcatalà. Si voleu modificar aquest fitxer, llegiu si # us plau la pàgina de catalanització del projecte Fedora a: # http://www.softcatala.org/projectes/fedora/ # i contacteu l'anterior traductor/a. # msgid "" msgstr "" "Project-Id-Version: sos\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-11-15 15:02+0000\n" "PO-Revision-Date: 2009-05-17 08:45\n" "Last-Translator: Xavier Faus i Torà \n" "Language-Team: Catalan \n" "Language: ca\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: pygettext.py 1.5\n" #: ../sos/sosreport.py:350 msgid "Could not create temporary directory." msgstr "No es pot crear el directori temporal." #: ../sos/sosreport.py:413 #, python-format msgid "sosreport (version %s)" msgstr "informe d'ajuda (versió %s)" #: ../sos/sosreport.py:438 #, python-format msgid "plugin %s does not validate, skipping" msgstr "el connector %s no es valida, ometent" #: ../sos/sosreport.py:467 #, python-format msgid "plugin %s does not install, skipping" msgstr "el connector %s no s'instal·la, ometent" #: ../sos/sosreport.py:563 msgid "no valid plugins found" msgstr "cap connector vàlid trobat" #: ../sos/sosreport.py:567 msgid "The following plugins are currently enabled:" msgstr "Els següents connectors estan actualment activats:" #: ../sos/sosreport.py:573 msgid "No plugin enabled." msgstr "Cap connector activat." #: ../sos/sosreport.py:577 msgid "The following plugins are currently disabled:" msgstr "Els següents connectors estan desactivats:" #: ../sos/sosreport.py:585 msgid "The following plugin options are available:" msgstr "Les següents opcions dels connectors són disponibles:" #: ../sos/sosreport.py:606 msgid "No plugin options available." msgstr "No hi ha cap opció disponible dels connectors." #: ../sos/sosreport.py:614 msgid "sosreport requires root permissions to run." msgstr "el sosreport necessita privilegis de root." #: ../sos/sosreport.py:621 msgid "no valid plugins were enabled" msgstr "cap connector vàlid està activat" #: ../sos/sosreport.py:624 #, python-format msgid "" "This utility will collect some detailed information about the\n" "hardware and setup of your %(distroa)s system.\n" "The information is collected and an archive is packaged under\n" "/tmp, which you can send to a support representative.\n" "%(distrob)s will use this information for diagnostic purposes ONLY\n" "and it will be considered confidential information.\n" "\n" "This process may take a while to complete.\n" "No changes will be made to your system.\n" "\n" msgstr "" "Aquesta utilitat recollirà informació detallada quant\n" "al maquinari i la configuració del vostre sistema %(distroa)s.\n" "La informació es recollida i s'empaqueta en un arxiu sota el directori\n" "/tmp, el qual es pot enviar a l'encarregat del suport.\n" "%(distrob)s utilitzarà aquesta informació únicament per a diagnòstics\n" "i es considerarà com a informació confidencial.\n" "\n" "Aquest procés pot trigar una estona en completar-se.\n" "No es realitzarà cap canvi en el vostre sistema.\n" "\n" #: ../sos/sosreport.py:639 msgid "Press ENTER to continue, or CTRL-C to quit.\n" msgstr "Premeu Entrar per continuar, o Control-C per sortir.\n" #: ../sos/sosreport.py:665 msgid "One or more plugins have detected a problem in your configuration." msgstr "Un o més connectors han detectat un problema en la configuració." #: ../sos/sosreport.py:667 msgid "Please review the following messages:" msgstr "Si us plau reviseu els següents missatges:" #: ../sos/sosreport.py:683 msgid "Are you sure you would like to continue (y/n) ? " msgstr "Esteu segurs que voleu continuar (s/n) ? " #: ../sos/sosreport.py:685 msgid "y" msgstr "s" #: ../sos/sosreport.py:685 msgid "Y" msgstr "S" #: ../sos/sosreport.py:688 msgid "n" msgstr "n" #: ../sos/sosreport.py:688 msgid "N" msgstr "N" #: ../sos/sosreport.py:713 msgid " Running plugins. Please wait ..." msgstr "Executant complements. Espereu ..." #: ../sos/sosreport.py:827 #, python-format msgid " sosreport build tree is located at : %s" msgstr "L'arbre de la construcció sosreport està localitzat a : %s" #: ../sos/policyredhat.py:211 #, python-format msgid "Please enter your first initial and last name [%s]: " msgstr "Si us plau entreu la vostra inicial i el cognom [%s]: " #: ../sos/policyredhat.py:214 msgid "Please enter the case number that you are generating this report for: " msgstr "" "Si us plau introduïu el número del cas per al qual esteu generant l'informe :" #: ../sos/policyredhat.py:254 msgid "Creating compressed archive..." msgstr "S'està creant l'arxiu comprimit..." #: ../sos/policyredhat.py:284 msgid "Encrypting archive..." msgstr "S'està xifrant l'arxiu..." #: ../sos/policyredhat.py:304 msgid "There was a problem encrypting your report." msgstr "Hi ha hagut un problema xifrant el vostre informe." #: ../sos/policyredhat.py:328 #, python-format msgid "" "Your sosreport has been generated and saved in:\n" " %s" msgstr "" "El vostre informe del sos ha estat generat i desat a:\n" " %s" #: ../sos/policyredhat.py:331 msgid "The md5sum is: " msgstr "L'md5sum és:" #: ../sos/policyredhat.py:333 msgid "Please send this file to your support representative." msgstr "Si us plau envieu aquest fitxer al vostre responsable del manteniment." #: ../sos/policyredhat.py:355 msgid "No URL defined in config file." msgstr "Cap URL definida en el fitxer de configuració." #: ../sos/policyredhat.py:362 msgid "Cannot upload to specified URL." msgstr "No es pot pujar a la URL especificada." #: ../sos/policyredhat.py:399 msgid "There was a problem uploading your report to Red Hat support." msgstr "Hi ha hagut un problema en pujar l'informe al manteniment de Red Hat." #: ../sos/policyredhat.py:401 #, python-format msgid "Your report was successfully uploaded to %s with name:" msgstr "El vostre informe s'ha pujat correctament a %s amb el nom:" #: ../sos/policyredhat.py:404 msgid "Please communicate this name to your support representative." msgstr "" "Si us plau comuniqueu aquest nom a la vostra persona encarregada del " "manteniment." #~ msgid "plugin %s skipped (--skip-plugins)" #~ msgstr "el connector %s s'ha omés (--skip-plugins)" #~ msgid "plugin %s is inactive (use -e or -o to enable)." #~ msgstr "el connector %s és inactiu (utilitzeu -e o -o per activar-lo)" #~ msgid "plugin %s not specified in --only-plugins list" #~ msgstr "el connector %s no s'ha especificat a la llista --only-plugins" #~ msgid "processing options from plugin: %s" #~ msgstr "processant opcions del connector: %s" sosreport/po/zh_CN.po0000644000175000017500000001321212254061770013232 0ustar zefzef# translation of sos.trunk.po to Wei Liu # Chinese translations for PACKAGE package # PACKAGE �ļ���ķ�. # Copyright (C) 2007 ORGANIZATION # # Automatically generated, 2007. # Leah Liu , 2007, 2010. msgid "" msgstr "" "Project-Id-Version: sos.trunk\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-11-15 15:02+0000\n" "PO-Revision-Date: 2010-05-28 12:38+1000\n" "Last-Translator: Leah Liu \n" "Language-Team: Wei Liu\n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: pygettext.py 1.5\n" "X-Generator: KBabel 1.11.4\n" #: ../sos/sosreport.py:350 msgid "Could not create temporary directory." msgstr "无法生成临时目录。" #: ../sos/sosreport.py:413 #, python-format msgid "sosreport (version %s)" msgstr "sosreport (version %s)" #: ../sos/sosreport.py:438 #, python-format msgid "plugin %s does not validate, skipping" msgstr "插件 %s 无效,跳过" #: ../sos/sosreport.py:467 #, python-format msgid "plugin %s does not install, skipping" msgstr "未安装插件 %s,跳过" #: ../sos/sosreport.py:563 msgid "no valid plugins found" msgstr "未发现可用插件" #: ../sos/sosreport.py:567 msgid "The following plugins are currently enabled:" msgstr "目前已启用了以下插件:" #: ../sos/sosreport.py:573 msgid "No plugin enabled." msgstr "没有启用插件。" #: ../sos/sosreport.py:577 msgid "The following plugins are currently disabled:" msgstr "目前禁用了以下插件:" #: ../sos/sosreport.py:585 msgid "The following plugin options are available:" msgstr "以下插件选项可用:" #: ../sos/sosreport.py:606 msgid "No plugin options available." msgstr "没有可用的插件选项。" #: ../sos/sosreport.py:614 msgid "sosreport requires root permissions to run." msgstr "sosreport 需要根权限才可运行。" #: ../sos/sosreport.py:621 msgid "no valid plugins were enabled" msgstr "没有启用任何可用插件" #: ../sos/sosreport.py:624 #, python-format msgid "" "This utility will collect some detailed information about the\n" "hardware and setup of your %(distroa)s system.\n" "The information is collected and an archive is packaged under\n" "/tmp, which you can send to a support representative.\n" "%(distrob)s will use this information for diagnostic purposes ONLY\n" "and it will be considered confidential information.\n" "\n" "This process may take a while to complete.\n" "No changes will be made to your system.\n" "\n" msgstr "" "此工具程序将收集一些有关硬件和\n" "您的 %(distroa)s 系统设置的信息。\n" "收集这些信息后会在 /tmp 中打包一个归档文件,\n" "然后您就可将这个归档发送给您的支持代表。\n" "%(distrob)s 将只以诊断为目的使用这些信息,\n" "并将其视为保密信息。\n" "\n" "这个过程要过一会儿才能完成。\n" "不会对您的系统做任何修改。\n" "\n" #: ../sos/sosreport.py:639 msgid "Press ENTER to continue, or CTRL-C to quit.\n" msgstr "按 ENTER 键继续,或者 CTRL-C 组合键退出。\n" #: ../sos/sosreport.py:665 msgid "One or more plugins have detected a problem in your configuration." msgstr "一个或者更多的插件检测出您的配置中的问题。" #: ../sos/sosreport.py:667 msgid "Please review the following messages:" msgstr "请浏览以下信息:" #: ../sos/sosreport.py:683 msgid "Are you sure you would like to continue (y/n) ? " msgstr "您确定要继续吗(y/n)?" #: ../sos/sosreport.py:685 msgid "y" msgstr "y" #: ../sos/sosreport.py:685 msgid "Y" msgstr "Y" #: ../sos/sosreport.py:688 msgid "n" msgstr "n" #: ../sos/sosreport.py:688 msgid "N" msgstr "N " #: ../sos/sosreport.py:713 msgid " Running plugins. Please wait ..." msgstr " 正在运行插件,请等候 ..." #: ../sos/sosreport.py:827 #, python-format msgid " sosreport build tree is located at : %s" msgstr " sosreport 构建树位于:%s" #: ../sos/policyredhat.py:211 #, python-format msgid "Please enter your first initial and last name [%s]: " msgstr "请输入您姓名的首写字母和姓 [%s]:" #: ../sos/policyredhat.py:214 msgid "Please enter the case number that you are generating this report for: " msgstr "请输入您要生成此报告的事件编号:" #: ../sos/policyredhat.py:254 msgid "Creating compressed archive..." msgstr "生成压缩归档......" #: ../sos/policyredhat.py:284 msgid "Encrypting archive..." msgstr "为归档加密......" #: ../sos/policyredhat.py:304 msgid "There was a problem encrypting your report." msgstr "在为您的报告加密时出错。" #: ../sos/policyredhat.py:328 #, python-format msgid "" "Your sosreport has been generated and saved in:\n" " %s" msgstr "" "已经为您生成 sosreport 并保存在:\n" " %s" #: ../sos/policyredhat.py:331 msgid "The md5sum is: " msgstr "md5sum 值为:" #: ../sos/policyredhat.py:333 msgid "Please send this file to your support representative." msgstr "请将此文件发送给您的支持代表。" #: ../sos/policyredhat.py:355 msgid "No URL defined in config file." msgstr "在配置文件中定义 URL。" #: ../sos/policyredhat.py:362 msgid "Cannot upload to specified URL." msgstr "无法上传到指定的网址。" #: ../sos/policyredhat.py:399 msgid "There was a problem uploading your report to Red Hat support." msgstr "在将您的报告上传到红帽支持时出错。" #: ../sos/policyredhat.py:401 #, python-format msgid "Your report was successfully uploaded to %s with name:" msgstr "已经成功将您的报告使用以下名称上传到 %s:" #: ../sos/policyredhat.py:404 msgid "Please communicate this name to your support representative." msgstr "请将此名称告知您的支持代表。" sosreport/po/hr.po0000644000175000017500000001020112254061770012635 0ustar zefzef# Croatian translations for PACKAGE package. # Copyright (C) 2007 ORGANIZATION # Automatically generated, 2007. # msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-11-15 15:02+0000\n" "PO-Revision-Date: 2007-10-24 08:45\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: pygettext.py 1.5\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" #: ../sos/sosreport.py:350 msgid "Could not create temporary directory." msgstr "" #: ../sos/sosreport.py:413 #, python-format msgid "sosreport (version %s)" msgstr "" #: ../sos/sosreport.py:438 #, python-format msgid "plugin %s does not validate, skipping" msgstr "" #: ../sos/sosreport.py:467 #, python-format msgid "plugin %s does not install, skipping" msgstr "" #: ../sos/sosreport.py:563 msgid "no valid plugins found" msgstr "" #: ../sos/sosreport.py:567 msgid "The following plugins are currently enabled:" msgstr "" #: ../sos/sosreport.py:573 msgid "No plugin enabled." msgstr "" #: ../sos/sosreport.py:577 msgid "The following plugins are currently disabled:" msgstr "" #: ../sos/sosreport.py:585 msgid "The following plugin options are available:" msgstr "" #: ../sos/sosreport.py:606 msgid "No plugin options available." msgstr "" #: ../sos/sosreport.py:614 msgid "sosreport requires root permissions to run." msgstr "" #: ../sos/sosreport.py:621 msgid "no valid plugins were enabled" msgstr "" #: ../sos/sosreport.py:624 #, python-format msgid "" "This utility will collect some detailed information about the\n" "hardware and setup of your %(distroa)s system.\n" "The information is collected and an archive is packaged under\n" "/tmp, which you can send to a support representative.\n" "%(distrob)s will use this information for diagnostic purposes ONLY\n" "and it will be considered confidential information.\n" "\n" "This process may take a while to complete.\n" "No changes will be made to your system.\n" "\n" msgstr "" #: ../sos/sosreport.py:639 msgid "Press ENTER to continue, or CTRL-C to quit.\n" msgstr "" #: ../sos/sosreport.py:665 msgid "One or more plugins have detected a problem in your configuration." msgstr "" #: ../sos/sosreport.py:667 msgid "Please review the following messages:" msgstr "" #: ../sos/sosreport.py:683 msgid "Are you sure you would like to continue (y/n) ? " msgstr "" #: ../sos/sosreport.py:685 msgid "y" msgstr "" #: ../sos/sosreport.py:685 msgid "Y" msgstr "" #: ../sos/sosreport.py:688 msgid "n" msgstr "" #: ../sos/sosreport.py:688 msgid "N" msgstr "" #: ../sos/sosreport.py:713 msgid " Running plugins. Please wait ..." msgstr "" #: ../sos/sosreport.py:827 #, python-format msgid " sosreport build tree is located at : %s" msgstr "" #: ../sos/policyredhat.py:211 #, python-format msgid "Please enter your first initial and last name [%s]: " msgstr "" #: ../sos/policyredhat.py:214 msgid "Please enter the case number that you are generating this report for: " msgstr "" #: ../sos/policyredhat.py:254 msgid "Creating compressed archive..." msgstr "" #: ../sos/policyredhat.py:284 msgid "Encrypting archive..." msgstr "" #: ../sos/policyredhat.py:304 msgid "There was a problem encrypting your report." msgstr "" #: ../sos/policyredhat.py:328 #, python-format msgid "" "Your sosreport has been generated and saved in:\n" " %s" msgstr "" #: ../sos/policyredhat.py:331 msgid "The md5sum is: " msgstr "" #: ../sos/policyredhat.py:333 msgid "Please send this file to your support representative." msgstr "" #: ../sos/policyredhat.py:355 msgid "No URL defined in config file." msgstr "" #: ../sos/policyredhat.py:362 msgid "Cannot upload to specified URL." msgstr "" #: ../sos/policyredhat.py:399 msgid "There was a problem uploading your report to Red Hat support." msgstr "" #: ../sos/policyredhat.py:401 #, python-format msgid "Your report was successfully uploaded to %s with name:" msgstr "" #: ../sos/policyredhat.py:404 msgid "Please communicate this name to your support representative." msgstr "" sosreport/po/fi.po0000644000175000017500000001457212254061770012641 0ustar zefzef# Finnish translations for sos package. # Ville-Pekka Vainio , 2009, 2010. msgid "" msgstr "" "Project-Id-Version: sos\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-11-15 15:02+0000\n" "PO-Revision-Date: 2010-03-28 01:03+0200\n" "Last-Translator: Ville-Pekka Vainio \n" "Language-Team: Finnish \n" "Language: fi\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "Generated-By: pygettext.py 1.5\n" #: ../sos/sosreport.py:350 msgid "Could not create temporary directory." msgstr "Väliaikaista hakemistoa ei voitu luoda." #: ../sos/sosreport.py:413 #, python-format msgid "sosreport (version %s)" msgstr "sosreport (versio %s)" #: ../sos/sosreport.py:438 #, python-format msgid "plugin %s does not validate, skipping" msgstr "liitännäinen %s on virheellinen, ohitetaan" #: ../sos/sosreport.py:467 #, python-format msgid "plugin %s does not install, skipping" msgstr "liitännäinen %s ei asennu, ohitetaan" #: ../sos/sosreport.py:563 msgid "no valid plugins found" msgstr "kelvollisia liitännäisiä ei löytynyt" #: ../sos/sosreport.py:567 msgid "The following plugins are currently enabled:" msgstr "Seuraavat liitännäiset ovat tällä hetkellä käytössä:" #: ../sos/sosreport.py:573 msgid "No plugin enabled." msgstr "Yhtään liitännäistä ei ole käytössä." #: ../sos/sosreport.py:577 msgid "The following plugins are currently disabled:" msgstr "Seuraavat liitännäiset ovat tällä hetkellä poissa käytöstä:" #: ../sos/sosreport.py:585 msgid "The following plugin options are available:" msgstr "Seuraavat liitännäisen asetukset ovat käytettävissä:" #: ../sos/sosreport.py:606 msgid "No plugin options available." msgstr "Liitännäisellä ei ole asetuksia." #: ../sos/sosreport.py:614 msgid "sosreport requires root permissions to run." msgstr "sosreportin käyttö vaatii root-oikeudet." #: ../sos/sosreport.py:621 msgid "no valid plugins were enabled" msgstr "yhtään kelvollista liitännäistä ei ole otettu käyttöön" #: ../sos/sosreport.py:624 #, python-format msgid "" "This utility will collect some detailed information about the\n" "hardware and setup of your %(distroa)s system.\n" "The information is collected and an archive is packaged under\n" "/tmp, which you can send to a support representative.\n" "%(distrob)s will use this information for diagnostic purposes ONLY\n" "and it will be considered confidential information.\n" "\n" "This process may take a while to complete.\n" "No changes will be made to your system.\n" "\n" msgstr "" "Tämä ohjelma kerää yksityiskohtaisia tietoja\n" "%(distroa)s -järjestelmän laitteistosta ja asetuksista.\n" "Tiedot kerätään arkistoon, joka tallennetaan /tmp-hakemistoon.\n" "Tämä arkisto voidaan lähettää käyttötukeen.\n" "%(distrob)s käyttää tätä tietoa vain vianetsintätarkoituksiin ja\n" "tietoa käsitellään luottamuksellisesti.\n" "\n" "Tämä toiminto voi kestää jonkin aikaa.\n" "Järjestelmään ei tehdä muutoksia.\n" "\n" #: ../sos/sosreport.py:639 msgid "Press ENTER to continue, or CTRL-C to quit.\n" msgstr "Paina ENTER jatkaaksesi, CTRL-C lopettaaksesi.\n" #: ../sos/sosreport.py:665 msgid "One or more plugins have detected a problem in your configuration." msgstr "Yksi tai useampi liitännäinen on huomannut ongelman järjestelmässä." #: ../sos/sosreport.py:667 msgid "Please review the following messages:" msgstr "Tarkista seuraavat viestit:" #: ../sos/sosreport.py:683 msgid "Are you sure you would like to continue (y/n) ? " msgstr "Haluatko jatkaa (k/e)?" #: ../sos/sosreport.py:685 msgid "y" msgstr "k" #: ../sos/sosreport.py:685 msgid "Y" msgstr "K" #: ../sos/sosreport.py:688 msgid "n" msgstr "e" #: ../sos/sosreport.py:688 msgid "N" msgstr "E" #: ../sos/sosreport.py:713 msgid " Running plugins. Please wait ..." msgstr " Suoritetaan liitännäisiä. Odota..." #: ../sos/sosreport.py:827 #, python-format msgid " sosreport build tree is located at : %s" msgstr " sosreport-käännöspuu on sijainnissa: %s" #: ../sos/policyredhat.py:211 #, python-format msgid "Please enter your first initial and last name [%s]: " msgstr "Syötä etunimesi ensimmäinen kirjain ja sukunimesi [%s]:" #: ../sos/policyredhat.py:214 msgid "Please enter the case number that you are generating this report for: " msgstr "Syötä tapausnumero, jota varten olet tekemässä tätä raporttia:" #: ../sos/policyredhat.py:254 msgid "Creating compressed archive..." msgstr "Luodaan pakattua arkistoa..." #: ../sos/policyredhat.py:284 msgid "Encrypting archive..." msgstr "Salataan arkistoa..." #: ../sos/policyredhat.py:304 msgid "There was a problem encrypting your report." msgstr "Raportin salaamisessa oli ongelma." #: ../sos/policyredhat.py:328 #, python-format msgid "" "Your sosreport has been generated and saved in:\n" " %s" msgstr "" "Sosreport-raportti on luotu ja tallennettu sijaintiin:\n" " %s" #: ../sos/policyredhat.py:331 msgid "The md5sum is: " msgstr "Md5sum-tarkistussumma on:" #: ../sos/policyredhat.py:333 msgid "Please send this file to your support representative." msgstr "Lähetä tämä tiedosto käyttötukeen." #: ../sos/policyredhat.py:355 msgid "No URL defined in config file." msgstr "Asetustiedostossa ei ole määritelty osoitetta." #: ../sos/policyredhat.py:362 msgid "Cannot upload to specified URL." msgstr "Annettuun osoitteeseen ei voida lähettää." #: ../sos/policyredhat.py:399 msgid "There was a problem uploading your report to Red Hat support." msgstr "Raportin lähettämisessä Red Hatin käyttötukeen oli ongelmia." #: ../sos/policyredhat.py:401 #, python-format msgid "Your report was successfully uploaded to %s with name:" msgstr "Raportin lähetys kohteeseen %s onnistui, käytettiin nimeä:" #: ../sos/policyredhat.py:404 msgid "Please communicate this name to your support representative." msgstr "Kerro tämä nimi käyttötukeen." #~ msgid "plugin %s skipped (--skip-plugins)" #~ msgstr "liitännäinen %s ohitettiin (--skip-plugins)" #~ msgid "plugin %s is inactive (use -e or -o to enable)." #~ msgstr "" #~ "liitännäinen %s ei ole käytössä (ota käyttöön valitsimella -e tai -o)." #~ msgid "plugin %s not specified in --only-plugins list" #~ msgstr "liitännäinen %s ei ole --only-plugins-luettelossa" #~ msgid "processing options from plugin: %s" #~ msgstr "käsitellään liitännäisen %s asetukset" sosreport/po/nso.po0000644000175000017500000001001112254061770013022 0ustar zefzef# Language nso translations for PACKAGE package. # Copyright (C) 2007 ORGANIZATION # Automatically generated, 2007. # msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-11-15 15:02+0000\n" "PO-Revision-Date: 2007-10-24 08:45\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: pygettext.py 1.5\n" #: ../sos/sosreport.py:350 msgid "Could not create temporary directory." msgstr "" #: ../sos/sosreport.py:413 #, python-format msgid "sosreport (version %s)" msgstr "" #: ../sos/sosreport.py:438 #, python-format msgid "plugin %s does not validate, skipping" msgstr "" #: ../sos/sosreport.py:467 #, python-format msgid "plugin %s does not install, skipping" msgstr "" #: ../sos/sosreport.py:563 msgid "no valid plugins found" msgstr "" #: ../sos/sosreport.py:567 msgid "The following plugins are currently enabled:" msgstr "" #: ../sos/sosreport.py:573 msgid "No plugin enabled." msgstr "" #: ../sos/sosreport.py:577 msgid "The following plugins are currently disabled:" msgstr "" #: ../sos/sosreport.py:585 msgid "The following plugin options are available:" msgstr "" #: ../sos/sosreport.py:606 msgid "No plugin options available." msgstr "" #: ../sos/sosreport.py:614 msgid "sosreport requires root permissions to run." msgstr "" #: ../sos/sosreport.py:621 msgid "no valid plugins were enabled" msgstr "" #: ../sos/sosreport.py:624 #, python-format msgid "" "This utility will collect some detailed information about the\n" "hardware and setup of your %(distroa)s system.\n" "The information is collected and an archive is packaged under\n" "/tmp, which you can send to a support representative.\n" "%(distrob)s will use this information for diagnostic purposes ONLY\n" "and it will be considered confidential information.\n" "\n" "This process may take a while to complete.\n" "No changes will be made to your system.\n" "\n" msgstr "" #: ../sos/sosreport.py:639 msgid "Press ENTER to continue, or CTRL-C to quit.\n" msgstr "" #: ../sos/sosreport.py:665 msgid "One or more plugins have detected a problem in your configuration." msgstr "" #: ../sos/sosreport.py:667 msgid "Please review the following messages:" msgstr "" #: ../sos/sosreport.py:683 msgid "Are you sure you would like to continue (y/n) ? " msgstr "" #: ../sos/sosreport.py:685 msgid "y" msgstr "" #: ../sos/sosreport.py:685 msgid "Y" msgstr "" #: ../sos/sosreport.py:688 msgid "n" msgstr "" #: ../sos/sosreport.py:688 msgid "N" msgstr "" #: ../sos/sosreport.py:713 msgid " Running plugins. Please wait ..." msgstr "" #: ../sos/sosreport.py:827 #, python-format msgid " sosreport build tree is located at : %s" msgstr "" #: ../sos/policyredhat.py:211 #, python-format msgid "Please enter your first initial and last name [%s]: " msgstr "" #: ../sos/policyredhat.py:214 msgid "Please enter the case number that you are generating this report for: " msgstr "" #: ../sos/policyredhat.py:254 msgid "Creating compressed archive..." msgstr "" #: ../sos/policyredhat.py:284 msgid "Encrypting archive..." msgstr "" #: ../sos/policyredhat.py:304 msgid "There was a problem encrypting your report." msgstr "" #: ../sos/policyredhat.py:328 #, python-format msgid "" "Your sosreport has been generated and saved in:\n" " %s" msgstr "" #: ../sos/policyredhat.py:331 msgid "The md5sum is: " msgstr "" #: ../sos/policyredhat.py:333 msgid "Please send this file to your support representative." msgstr "" #: ../sos/policyredhat.py:355 msgid "No URL defined in config file." msgstr "" #: ../sos/policyredhat.py:362 msgid "Cannot upload to specified URL." msgstr "" #: ../sos/policyredhat.py:399 msgid "There was a problem uploading your report to Red Hat support." msgstr "" #: ../sos/policyredhat.py:401 #, python-format msgid "Your report was successfully uploaded to %s with name:" msgstr "" #: ../sos/policyredhat.py:404 msgid "Please communicate this name to your support representative." msgstr "" sosreport/po/af.po0000644000175000017500000001000612254061770012615 0ustar zefzef# Afrikaans translations for PACKAGE package. # Copyright (C) 2007 ORGANIZATION # Automatically generated, 2007. # msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-11-15 15:02+0000\n" "PO-Revision-Date: 2007-10-24 08:45\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: pygettext.py 1.5\n" #: ../sos/sosreport.py:350 msgid "Could not create temporary directory." msgstr "" #: ../sos/sosreport.py:413 #, python-format msgid "sosreport (version %s)" msgstr "" #: ../sos/sosreport.py:438 #, python-format msgid "plugin %s does not validate, skipping" msgstr "" #: ../sos/sosreport.py:467 #, python-format msgid "plugin %s does not install, skipping" msgstr "" #: ../sos/sosreport.py:563 msgid "no valid plugins found" msgstr "" #: ../sos/sosreport.py:567 msgid "The following plugins are currently enabled:" msgstr "" #: ../sos/sosreport.py:573 msgid "No plugin enabled." msgstr "" #: ../sos/sosreport.py:577 msgid "The following plugins are currently disabled:" msgstr "" #: ../sos/sosreport.py:585 msgid "The following plugin options are available:" msgstr "" #: ../sos/sosreport.py:606 msgid "No plugin options available." msgstr "" #: ../sos/sosreport.py:614 msgid "sosreport requires root permissions to run." msgstr "" #: ../sos/sosreport.py:621 msgid "no valid plugins were enabled" msgstr "" #: ../sos/sosreport.py:624 #, python-format msgid "" "This utility will collect some detailed information about the\n" "hardware and setup of your %(distroa)s system.\n" "The information is collected and an archive is packaged under\n" "/tmp, which you can send to a support representative.\n" "%(distrob)s will use this information for diagnostic purposes ONLY\n" "and it will be considered confidential information.\n" "\n" "This process may take a while to complete.\n" "No changes will be made to your system.\n" "\n" msgstr "" #: ../sos/sosreport.py:639 msgid "Press ENTER to continue, or CTRL-C to quit.\n" msgstr "" #: ../sos/sosreport.py:665 msgid "One or more plugins have detected a problem in your configuration." msgstr "" #: ../sos/sosreport.py:667 msgid "Please review the following messages:" msgstr "" #: ../sos/sosreport.py:683 msgid "Are you sure you would like to continue (y/n) ? " msgstr "" #: ../sos/sosreport.py:685 msgid "y" msgstr "" #: ../sos/sosreport.py:685 msgid "Y" msgstr "" #: ../sos/sosreport.py:688 msgid "n" msgstr "" #: ../sos/sosreport.py:688 msgid "N" msgstr "" #: ../sos/sosreport.py:713 msgid " Running plugins. Please wait ..." msgstr "" #: ../sos/sosreport.py:827 #, python-format msgid " sosreport build tree is located at : %s" msgstr "" #: ../sos/policyredhat.py:211 #, python-format msgid "Please enter your first initial and last name [%s]: " msgstr "" #: ../sos/policyredhat.py:214 msgid "Please enter the case number that you are generating this report for: " msgstr "" #: ../sos/policyredhat.py:254 msgid "Creating compressed archive..." msgstr "" #: ../sos/policyredhat.py:284 msgid "Encrypting archive..." msgstr "" #: ../sos/policyredhat.py:304 msgid "There was a problem encrypting your report." msgstr "" #: ../sos/policyredhat.py:328 #, python-format msgid "" "Your sosreport has been generated and saved in:\n" " %s" msgstr "" #: ../sos/policyredhat.py:331 msgid "The md5sum is: " msgstr "" #: ../sos/policyredhat.py:333 msgid "Please send this file to your support representative." msgstr "" #: ../sos/policyredhat.py:355 msgid "No URL defined in config file." msgstr "" #: ../sos/policyredhat.py:362 msgid "Cannot upload to specified URL." msgstr "" #: ../sos/policyredhat.py:399 msgid "There was a problem uploading your report to Red Hat support." msgstr "" #: ../sos/policyredhat.py:401 #, python-format msgid "Your report was successfully uploaded to %s with name:" msgstr "" #: ../sos/policyredhat.py:404 msgid "Please communicate this name to your support representative." msgstr "" sosreport/po/cy.po0000644000175000017500000001000212254061770012636 0ustar zefzef# Welsh translations for PACKAGE package. # Copyright (C) 2007 ORGANIZATION # Automatically generated, 2007. # msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-11-15 15:02+0000\n" "PO-Revision-Date: 2007-10-24 08:45\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: pygettext.py 1.5\n" #: ../sos/sosreport.py:350 msgid "Could not create temporary directory." msgstr "" #: ../sos/sosreport.py:413 #, python-format msgid "sosreport (version %s)" msgstr "" #: ../sos/sosreport.py:438 #, python-format msgid "plugin %s does not validate, skipping" msgstr "" #: ../sos/sosreport.py:467 #, python-format msgid "plugin %s does not install, skipping" msgstr "" #: ../sos/sosreport.py:563 msgid "no valid plugins found" msgstr "" #: ../sos/sosreport.py:567 msgid "The following plugins are currently enabled:" msgstr "" #: ../sos/sosreport.py:573 msgid "No plugin enabled." msgstr "" #: ../sos/sosreport.py:577 msgid "The following plugins are currently disabled:" msgstr "" #: ../sos/sosreport.py:585 msgid "The following plugin options are available:" msgstr "" #: ../sos/sosreport.py:606 msgid "No plugin options available." msgstr "" #: ../sos/sosreport.py:614 msgid "sosreport requires root permissions to run." msgstr "" #: ../sos/sosreport.py:621 msgid "no valid plugins were enabled" msgstr "" #: ../sos/sosreport.py:624 #, python-format msgid "" "This utility will collect some detailed information about the\n" "hardware and setup of your %(distroa)s system.\n" "The information is collected and an archive is packaged under\n" "/tmp, which you can send to a support representative.\n" "%(distrob)s will use this information for diagnostic purposes ONLY\n" "and it will be considered confidential information.\n" "\n" "This process may take a while to complete.\n" "No changes will be made to your system.\n" "\n" msgstr "" #: ../sos/sosreport.py:639 msgid "Press ENTER to continue, or CTRL-C to quit.\n" msgstr "" #: ../sos/sosreport.py:665 msgid "One or more plugins have detected a problem in your configuration." msgstr "" #: ../sos/sosreport.py:667 msgid "Please review the following messages:" msgstr "" #: ../sos/sosreport.py:683 msgid "Are you sure you would like to continue (y/n) ? " msgstr "" #: ../sos/sosreport.py:685 msgid "y" msgstr "" #: ../sos/sosreport.py:685 msgid "Y" msgstr "" #: ../sos/sosreport.py:688 msgid "n" msgstr "" #: ../sos/sosreport.py:688 msgid "N" msgstr "" #: ../sos/sosreport.py:713 msgid " Running plugins. Please wait ..." msgstr "" #: ../sos/sosreport.py:827 #, python-format msgid " sosreport build tree is located at : %s" msgstr "" #: ../sos/policyredhat.py:211 #, python-format msgid "Please enter your first initial and last name [%s]: " msgstr "" #: ../sos/policyredhat.py:214 msgid "Please enter the case number that you are generating this report for: " msgstr "" #: ../sos/policyredhat.py:254 msgid "Creating compressed archive..." msgstr "" #: ../sos/policyredhat.py:284 msgid "Encrypting archive..." msgstr "" #: ../sos/policyredhat.py:304 msgid "There was a problem encrypting your report." msgstr "" #: ../sos/policyredhat.py:328 #, python-format msgid "" "Your sosreport has been generated and saved in:\n" " %s" msgstr "" #: ../sos/policyredhat.py:331 msgid "The md5sum is: " msgstr "" #: ../sos/policyredhat.py:333 msgid "Please send this file to your support representative." msgstr "" #: ../sos/policyredhat.py:355 msgid "No URL defined in config file." msgstr "" #: ../sos/policyredhat.py:362 msgid "Cannot upload to specified URL." msgstr "" #: ../sos/policyredhat.py:399 msgid "There was a problem uploading your report to Red Hat support." msgstr "" #: ../sos/policyredhat.py:401 #, python-format msgid "Your report was successfully uploaded to %s with name:" msgstr "" #: ../sos/policyredhat.py:404 msgid "Please communicate this name to your support representative." msgstr "" sosreport/po/ur.po0000644000175000017500000001000112254061770012650 0ustar zefzef# Urdu translations for PACKAGE package. # Copyright (C) 2007 ORGANIZATION # Automatically generated, 2007. # msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-11-15 15:02+0000\n" "PO-Revision-Date: 2007-10-24 08:45\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: pygettext.py 1.5\n" #: ../sos/sosreport.py:350 msgid "Could not create temporary directory." msgstr "" #: ../sos/sosreport.py:413 #, python-format msgid "sosreport (version %s)" msgstr "" #: ../sos/sosreport.py:438 #, python-format msgid "plugin %s does not validate, skipping" msgstr "" #: ../sos/sosreport.py:467 #, python-format msgid "plugin %s does not install, skipping" msgstr "" #: ../sos/sosreport.py:563 msgid "no valid plugins found" msgstr "" #: ../sos/sosreport.py:567 msgid "The following plugins are currently enabled:" msgstr "" #: ../sos/sosreport.py:573 msgid "No plugin enabled." msgstr "" #: ../sos/sosreport.py:577 msgid "The following plugins are currently disabled:" msgstr "" #: ../sos/sosreport.py:585 msgid "The following plugin options are available:" msgstr "" #: ../sos/sosreport.py:606 msgid "No plugin options available." msgstr "" #: ../sos/sosreport.py:614 msgid "sosreport requires root permissions to run." msgstr "" #: ../sos/sosreport.py:621 msgid "no valid plugins were enabled" msgstr "" #: ../sos/sosreport.py:624 #, python-format msgid "" "This utility will collect some detailed information about the\n" "hardware and setup of your %(distroa)s system.\n" "The information is collected and an archive is packaged under\n" "/tmp, which you can send to a support representative.\n" "%(distrob)s will use this information for diagnostic purposes ONLY\n" "and it will be considered confidential information.\n" "\n" "This process may take a while to complete.\n" "No changes will be made to your system.\n" "\n" msgstr "" #: ../sos/sosreport.py:639 msgid "Press ENTER to continue, or CTRL-C to quit.\n" msgstr "" #: ../sos/sosreport.py:665 msgid "One or more plugins have detected a problem in your configuration." msgstr "" #: ../sos/sosreport.py:667 msgid "Please review the following messages:" msgstr "" #: ../sos/sosreport.py:683 msgid "Are you sure you would like to continue (y/n) ? " msgstr "" #: ../sos/sosreport.py:685 msgid "y" msgstr "" #: ../sos/sosreport.py:685 msgid "Y" msgstr "" #: ../sos/sosreport.py:688 msgid "n" msgstr "" #: ../sos/sosreport.py:688 msgid "N" msgstr "" #: ../sos/sosreport.py:713 msgid " Running plugins. Please wait ..." msgstr "" #: ../sos/sosreport.py:827 #, python-format msgid " sosreport build tree is located at : %s" msgstr "" #: ../sos/policyredhat.py:211 #, python-format msgid "Please enter your first initial and last name [%s]: " msgstr "" #: ../sos/policyredhat.py:214 msgid "Please enter the case number that you are generating this report for: " msgstr "" #: ../sos/policyredhat.py:254 msgid "Creating compressed archive..." msgstr "" #: ../sos/policyredhat.py:284 msgid "Encrypting archive..." msgstr "" #: ../sos/policyredhat.py:304 msgid "There was a problem encrypting your report." msgstr "" #: ../sos/policyredhat.py:328 #, python-format msgid "" "Your sosreport has been generated and saved in:\n" " %s" msgstr "" #: ../sos/policyredhat.py:331 msgid "The md5sum is: " msgstr "" #: ../sos/policyredhat.py:333 msgid "Please send this file to your support representative." msgstr "" #: ../sos/policyredhat.py:355 msgid "No URL defined in config file." msgstr "" #: ../sos/policyredhat.py:362 msgid "Cannot upload to specified URL." msgstr "" #: ../sos/policyredhat.py:399 msgid "There was a problem uploading your report to Red Hat support." msgstr "" #: ../sos/policyredhat.py:401 #, python-format msgid "Your report was successfully uploaded to %s with name:" msgstr "" #: ../sos/policyredhat.py:404 msgid "Please communicate this name to your support representative." msgstr "" sosreport/po/kn.po0000644000175000017500000002421112254061770012642 0ustar zefzef# translation of sos.trunk.kn.po to Kannada # Kannada translations for PACKAGE package. # Copyright (C) 2007 ORGANIZATION # # Automatically generated, 2007. # Shankar Prasad , 2009, 2011. msgid "" msgstr "" "Project-Id-Version: sos.trunk.kn\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-11-15 15:02+0000\n" "PO-Revision-Date: 2011-01-05 11:56+0530\n" "Last-Translator: Shankar Prasad \n" "Language-Team: Kannada \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: kn\n" "Generated-By: pygettext.py 1.5\n" "X-Generator: Lokalize 1.1\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: ../sos/sosreport.py:350 msgid "Could not create temporary directory." msgstr "ತಾತ್ಕಾಲಿಕ ಕೋಶವನ್ನು ನಿರ್ಮಿಸಲು ಸಾಧ್ಯವಾಗಿಲ್ಲ." #: ../sos/sosreport.py:413 #, python-format msgid "sosreport (version %s)" msgstr "sosreport (ಆವೃತ್ತಿ %s)" #: ../sos/sosreport.py:438 #, python-format msgid "plugin %s does not validate, skipping" msgstr "ಪ್ಲಗ್‌ಇನ್ %s ಮಾನ್ಯಗೊಂಡಿಲ್ಲ, ಉಪೇಕ್ಷಿಸಲಾಗುತ್ತಿದೆ" #: ../sos/sosreport.py:467 #, python-format msgid "plugin %s does not install, skipping" msgstr "ಪ್ಲಗ್‌ಇನ್ %s ಅನುಸ್ಥಾಪನೆಗೊಂಡಿಲ್ಲ, ಉಪೇಕ್ಷಿಸಲಾಗುತ್ತಿದೆ" #: ../sos/sosreport.py:563 msgid "no valid plugins found" msgstr "ಮಾನ್ಯವಾದ ಯಾವುದೆ ಪ್ಲಗ್‌ಇನ್‌ಗಳಿಲ್ಲ" #: ../sos/sosreport.py:567 msgid "The following plugins are currently enabled:" msgstr "ಈ ಕೆಳಗಿನ ಪ್ಲಗ್‌ಇನ್‌ಗಳನ್ನು ಶಕ್ತಗೊಳಿಸಲಾಗಿದೆ:" #: ../sos/sosreport.py:573 msgid "No plugin enabled." msgstr "ಯಾವುದೆ ಪ್ಲಗ್‌ಇನ್ ಅನ್ನು ಶಕ್ತಗೊಳಿಸಲಾಗಿಲ್ಲ." #: ../sos/sosreport.py:577 msgid "The following plugins are currently disabled:" msgstr "ಈ ಕೆಳಗಿನ ಪ್ಲಗ್‌ಇನ್‌ಗಳನ್ನು ಅಶಕ್ತಗೊಳಿಸಲಾಗಿದೆ:" #: ../sos/sosreport.py:585 msgid "The following plugin options are available:" msgstr "ಈ ಕೆಳಗಿನ ಪ್ಲಗ್‌ಇನ್‌ ಆಯ್ಕೆಗಳು ಲಭ್ಯವಿವೆ:" #: ../sos/sosreport.py:606 msgid "No plugin options available." msgstr "ಯಾವುದೆ ಪ್ಲಗ್‌ಇನ್‌ ಆಯ್ಕೆಗಳು ಲಭ್ಯವಿಲ್ಲ." #: ../sos/sosreport.py:614 msgid "sosreport requires root permissions to run." msgstr "sosreport ಅನ್ನು ಚಲಾಯಿಸಲು ನಿರ್ವಾಹಕನ (ರೂಟ್) ಅನುಮತಿಯ ಅಗತ್ಯವಿರುತ್ತದೆ." #: ../sos/sosreport.py:621 msgid "no valid plugins were enabled" msgstr "ಮಾನ್ಯವಾದ ಯಾವುದೆ ಪ್ಲಗ್‌ಇನ್‌ಗಳು ಲಭ್ಯವಿಲ್ಲ" #: ../sos/sosreport.py:624 #, python-format msgid "" "This utility will collect some detailed information about the\n" "hardware and setup of your %(distroa)s system.\n" "The information is collected and an archive is packaged under\n" "/tmp, which you can send to a support representative.\n" "%(distrob)s will use this information for diagnostic purposes ONLY\n" "and it will be considered confidential information.\n" "\n" "This process may take a while to complete.\n" "No changes will be made to your system.\n" "\n" msgstr "" "ಈ ಸವಲತ್ತು ನಿಮ್ಮಲ್ಲಿರುವ ಗಣಕದ ಯಂತ್ರಾಂಶದ ಬಗೆಗಿನ ವಿಸ್ತಾರವಾದ ಕೆಲವು ಮಾಹಿತಿಯನ್ನು\n" "ಸಂಗ್ರಹಿಸಿ ನಂತರ ನಿಮ್ಮ %(distroa)s ವ್ಯವಸ್ಥೆಯನ್ನು ಸಿದ್ಧಪಡಿಸುತ್ತದೆ.\n" "ಮಾಹಿತಿಯನ್ನು ಸಂಗ್ರಹಿಸಿದ ನಂತರ ಅದನ್ನು ಆರ್ಕೈವ್ ಮಾಡಿ \n" "/tmp ಯಲ್ಲಿ ಉಳಿಸಲಾಗುತ್ತದೆ, ಹಾಗು ಇದನ್ನು ಬೆಂಬಲ ಪ್ರತಿನಿಧಿಗೆ ಕಳುಹಿಸಬಹುದು.\n" "%(distrob)s ಇದನ್ನು ಕೇವಲ ದೋಷ ಪತ್ತೆ ಹಚ್ಚಲು \"ಮಾತ್ರ\" ಬಳಸಲಾಗುತ್ತದೆ\n" "ಹಾಗು ಇದನ್ನು ಗೌಪ್ಯವಾದ ಮಾಹಿತಿ ಎಂದು ಪರಿಗಣಿಸಲಾಗುತ್ತದೆ.\n" "\n" "ಈ ಪ್ರಕ್ರಿಯೆಯು ಮುಗಿಯಲು ಒಂದಿಷ್ಟು ಸಮಯ ತೆಗೆದು ಕೊಳ್ಳುತ್ತದೆ.\n" "ನಿಮ್ಮ ಗಣಕಕ್ಕೆ ಯಾವುದೆ ಬದಲಾವಣೆ ಮಾಡಲಾಗುವುದಿಲ್ಲ.\n" "\n" #: ../sos/sosreport.py:639 msgid "Press ENTER to continue, or CTRL-C to quit.\n" msgstr "ಮುಂದುವರೆಯಲು ENTER ಅನ್ನು ಒತ್ತಿ, ಅಥವ ನಿರ್ಗಮಿಸಲು CTRL-C ಅನ್ನು ಒತ್ತಿ.\n" #: ../sos/sosreport.py:665 msgid "One or more plugins have detected a problem in your configuration." msgstr "" "ನಿಮ್ಮ ಸಂರಚನೆಯಲ್ಲಿ ಒಂದು ದೋಷವಿದೆಯೆಂದು ಒಂದು ಅಥವ ಹೆಚ್ಚಿನ ಪ್ಲಗ್‌ಇನ್‌ಗಳು ಕಂಡುಹಿಡಿದಿವೆ." #: ../sos/sosreport.py:667 msgid "Please review the following messages:" msgstr "ದಯವಿಟ್ಟು ಈ ಕೆಳಗಿನ ಸಂದೇಶಗಳನ್ನು ಅವಲೋಕಿಸಿ:" #: ../sos/sosreport.py:683 msgid "Are you sure you would like to continue (y/n) ? " msgstr "ನೀವು ಖಚಿತವಾಗಿಯೂ ಮುಂದುವರೆಯಲು ಬಯಸುತ್ತೀರೆ (y/n) ? " #: ../sos/sosreport.py:685 msgid "y" msgstr "y" #: ../sos/sosreport.py:685 msgid "Y" msgstr "Y" #: ../sos/sosreport.py:688 msgid "n" msgstr "n" #: ../sos/sosreport.py:688 msgid "N" msgstr "N" #: ../sos/sosreport.py:713 msgid " Running plugins. Please wait ..." msgstr " ಪ್ಲಗ್‌ಇನ್‌ಗಳನ್ನು ಚಲಾಯಿಸಲಾಗುತ್ತಿದೆ. ದಯವಿಟ್ಟು ಕಾಯಿರಿ ..." #: ../sos/sosreport.py:827 #, python-format msgid " sosreport build tree is located at : %s" msgstr " sosreport ನಿರ್ಮಾಣ ವೃಕ್ಷವು ಇಲ್ಲಿದೆ : %s" #: ../sos/policyredhat.py:211 #, python-format msgid "Please enter your first initial and last name [%s]: " msgstr "ದಯವಿಟ್ಟು ನಿಮ್ಮ ಆರಂಭದ ಇನಿಶಿಯಲ್ ಹಾಗು ಕೊನೆಯ ಹೆಸರನ್ನು ನಮೂದಿಸಿ [%s]: " #: ../sos/policyredhat.py:214 msgid "Please enter the case number that you are generating this report for: " msgstr "ನೀವು ಯಾವ ಸನ್ನಿವೇಶಕ್ಕಾಗಿ ವರದಿಯನ್ನು ಸಿದ್ಧಪಡಿಸಲು ಅದರ ಸಂಖ್ಯೆಯನ್ನು ನಮೂದಿಸಿ: " #: ../sos/policyredhat.py:254 msgid "Creating compressed archive..." msgstr "ಸಂಕುಚನಗೊಳಿಸಲಾದ ಆರ್ಕೈವನ್ನು ನಿರ್ಮಿಸಲಾಗುತ್ತಿದೆ..." #: ../sos/policyredhat.py:284 msgid "Encrypting archive..." msgstr "ಆರ್ಕೈವ್ ಅನ್ನು ಗೂಢಲಿಪೀಕರಿಸಲಾಗುತ್ತಿದೆ..." #: ../sos/policyredhat.py:304 msgid "There was a problem encrypting your report." msgstr "ನಿಮ್ಮ ವರದಿಯನ್ನು ಗೂಢಲಿಪೀಕರಿಸುವಲ್ಲಿ ಒಂದು ದೋಷ ಕಂಡುಬಂದಿದೆ." #: ../sos/policyredhat.py:328 #, python-format msgid "" "Your sosreport has been generated and saved in:\n" " %s" msgstr "" "sosreport ಅನ್ನು ಸಿದ್ಧಪಡಿಸಿದೆ ಹಾಗು ಅದನ್ನು ಇಲ್ಲಿ ಉಳಿಸಲಾಗಿದೆ:\n" " %s" #: ../sos/policyredhat.py:331 msgid "The md5sum is: " msgstr "md5sum ಇದಾಗಿದೆ: " #: ../sos/policyredhat.py:333 msgid "Please send this file to your support representative." msgstr "ದಯವಿಟ್ಟು ಈ ಕಡತವನ್ನು ಬೆಂಬಲ ನೀಡುವ ನಿಮ್ಮ ಪ್ರತಿನಿಧಿಗೆ ಕಳುಹಿಸಿ." #: ../sos/policyredhat.py:355 msgid "No URL defined in config file." msgstr "ಸಂರಚನಾ ಕಡತದಲ್ಲಿ ಯಾವುದೆ URL ಅನ್ನು ಸೂಚಿಸಲಾಗಿಲ್ಲ." #: ../sos/policyredhat.py:362 msgid "Cannot upload to specified URL." msgstr "ಸೂಚಿಸಲಾದ URL ಅನ್ನು ಅಪ್‌ಲೋಡ್ ಮಾಡಲು ಸಾಧ್ಯವಾಗಿಲ್ಲ." #: ../sos/policyredhat.py:399 msgid "There was a problem uploading your report to Red Hat support." msgstr "" "ನಿಮ್ಮ ವರದಿಯನ್ನು Red Hat ಬೆಂಬಲದ ಸ್ಥಳಕ್ಕೆ ಅಪ್‌ಲೋಡ್ ಮಾಡುವಲ್ಲಿ ಒಂದು ತೊಂದರೆ ಉಂಟಾಗಿದೆ." #: ../sos/policyredhat.py:401 #, python-format msgid "Your report was successfully uploaded to %s with name:" msgstr "ನಿಮ್ಮ ವರದಿಯನ್ನು ಈ ಹೆಸರಿನೊಂದಿಗೆ %s ಗೆ ಯಶಸ್ವಿಯಾಗಿ ಅಪ್‌ಲೋಡ್ ಮಾಡಲಾಗಿದೆ:" #: ../sos/policyredhat.py:404 msgid "Please communicate this name to your support representative." msgstr "ದಯವಿಟ್ಟು ಈ ಹೆಸರನ್ನು ನಿಮ್ಮ ಬೆಂಬಲ ನೀಡುವ ಪ್ರತಿನಿಧಿಗೆ ತಿಳಿಸಿ." #~ msgid "plugin %s skipped (--skip-plugins)" #~ msgstr "ಪ್ಲಗ್‌ಇನ್ %s ಅನ್ನು ಉಪೇಕ್ಷಿಸಲಾಗಿದೆ (--skip-plugins)" #~ msgid "plugin %s is inactive (use -e or -o to enable)." #~ msgstr "ಪ್ಲಗ್‌ಇನ್ %s ನಿಷ್ಕ್ರಿಯವಾಗಿದೆ (ಶಕ್ತಗೊಳಿಸಲು -e ಅಥವ -o ಅನ್ನು ಬಳಸಿ)." #~ msgid "plugin %s not specified in --only-plugins list" #~ msgstr "ಪ್ಲಗ್‌ಇನ್ %s ಅನ್ನು --only-plugins ಪಟ್ಟಿಯಲ್ಲಿ ಸೂಚಿಸಲಾಗಿಲ್ಲ" #~ msgid "processing options from plugin: %s" #~ msgstr "ಪ್ಲಗ್‌ಇನ್‌ನಿಂದ ಸಂಸ್ಕರಿಸುವ ಆಯ್ಕೆ: %s" sosreport/po/eu_ES.po0000644000175000017500000001000312254061770013224 0ustar zefzef# Basque translations for PACKAGE package. # Copyright (C) 2007 ORGANIZATION # Automatically generated, 2007. # msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-11-15 15:02+0000\n" "PO-Revision-Date: 2007-10-24 08:45\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: pygettext.py 1.5\n" #: ../sos/sosreport.py:350 msgid "Could not create temporary directory." msgstr "" #: ../sos/sosreport.py:413 #, python-format msgid "sosreport (version %s)" msgstr "" #: ../sos/sosreport.py:438 #, python-format msgid "plugin %s does not validate, skipping" msgstr "" #: ../sos/sosreport.py:467 #, python-format msgid "plugin %s does not install, skipping" msgstr "" #: ../sos/sosreport.py:563 msgid "no valid plugins found" msgstr "" #: ../sos/sosreport.py:567 msgid "The following plugins are currently enabled:" msgstr "" #: ../sos/sosreport.py:573 msgid "No plugin enabled." msgstr "" #: ../sos/sosreport.py:577 msgid "The following plugins are currently disabled:" msgstr "" #: ../sos/sosreport.py:585 msgid "The following plugin options are available:" msgstr "" #: ../sos/sosreport.py:606 msgid "No plugin options available." msgstr "" #: ../sos/sosreport.py:614 msgid "sosreport requires root permissions to run." msgstr "" #: ../sos/sosreport.py:621 msgid "no valid plugins were enabled" msgstr "" #: ../sos/sosreport.py:624 #, python-format msgid "" "This utility will collect some detailed information about the\n" "hardware and setup of your %(distroa)s system.\n" "The information is collected and an archive is packaged under\n" "/tmp, which you can send to a support representative.\n" "%(distrob)s will use this information for diagnostic purposes ONLY\n" "and it will be considered confidential information.\n" "\n" "This process may take a while to complete.\n" "No changes will be made to your system.\n" "\n" msgstr "" #: ../sos/sosreport.py:639 msgid "Press ENTER to continue, or CTRL-C to quit.\n" msgstr "" #: ../sos/sosreport.py:665 msgid "One or more plugins have detected a problem in your configuration." msgstr "" #: ../sos/sosreport.py:667 msgid "Please review the following messages:" msgstr "" #: ../sos/sosreport.py:683 msgid "Are you sure you would like to continue (y/n) ? " msgstr "" #: ../sos/sosreport.py:685 msgid "y" msgstr "" #: ../sos/sosreport.py:685 msgid "Y" msgstr "" #: ../sos/sosreport.py:688 msgid "n" msgstr "" #: ../sos/sosreport.py:688 msgid "N" msgstr "" #: ../sos/sosreport.py:713 msgid " Running plugins. Please wait ..." msgstr "" #: ../sos/sosreport.py:827 #, python-format msgid " sosreport build tree is located at : %s" msgstr "" #: ../sos/policyredhat.py:211 #, python-format msgid "Please enter your first initial and last name [%s]: " msgstr "" #: ../sos/policyredhat.py:214 msgid "Please enter the case number that you are generating this report for: " msgstr "" #: ../sos/policyredhat.py:254 msgid "Creating compressed archive..." msgstr "" #: ../sos/policyredhat.py:284 msgid "Encrypting archive..." msgstr "" #: ../sos/policyredhat.py:304 msgid "There was a problem encrypting your report." msgstr "" #: ../sos/policyredhat.py:328 #, python-format msgid "" "Your sosreport has been generated and saved in:\n" " %s" msgstr "" #: ../sos/policyredhat.py:331 msgid "The md5sum is: " msgstr "" #: ../sos/policyredhat.py:333 msgid "Please send this file to your support representative." msgstr "" #: ../sos/policyredhat.py:355 msgid "No URL defined in config file." msgstr "" #: ../sos/policyredhat.py:362 msgid "Cannot upload to specified URL." msgstr "" #: ../sos/policyredhat.py:399 msgid "There was a problem uploading your report to Red Hat support." msgstr "" #: ../sos/policyredhat.py:401 #, python-format msgid "Your report was successfully uploaded to %s with name:" msgstr "" #: ../sos/policyredhat.py:404 msgid "Please communicate this name to your support representative." msgstr "" sosreport/po/ta.po0000644000175000017500000002365612254061770012652 0ustar zefzef# translation of ta.po to # Tamil translations for PACKAGE package. # Copyright (C) 2007 ORGANIZATION # # Automatically generated, 2007. # I Felix , 2011. msgid "" msgstr "" "Project-Id-Version: ta\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-11-15 15:02+0000\n" "PO-Revision-Date: 2011-02-02 15:23+0530\n" "Last-Translator: I Felix \n" "Language-Team: Tamil \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: \n" "Generated-By: pygettext.py 1.5\n" "X-Generator: Lokalize 1.1\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" #: ../sos/sosreport.py:350 msgid "Could not create temporary directory." msgstr "தற்காலிக அடைவை உருவாக்க முடியவில்லை." #: ../sos/sosreport.py:413 #, python-format msgid "sosreport (version %s)" msgstr "sosreport (version %s)" #: ../sos/sosreport.py:438 #, python-format msgid "plugin %s does not validate, skipping" msgstr "கூடுதல் இணைப்பு %s தவறாக உள்ளது, எனவே தவிர்க்கிறது" #: ../sos/sosreport.py:467 #, python-format msgid "plugin %s does not install, skipping" msgstr "கூடுதல் இணைப்பு %s நிறுவப்படவில்லை, தவிர்க்கப்படுகிறது" #: ../sos/sosreport.py:563 msgid "no valid plugins found" msgstr "சரியான கூடுதல் இணைப்புகள் இல்லை" #: ../sos/sosreport.py:567 msgid "The following plugins are currently enabled:" msgstr "பின்வரும் கூடுதல் இணைப்புகள் தற்போது செயல்படுத்தப்படுகிறது:" #: ../sos/sosreport.py:573 msgid "No plugin enabled." msgstr "கூடுதல் இணைப்புகள் எதுவும் செயல்படுத்தப்படவில்லை." #: ../sos/sosreport.py:577 msgid "The following plugins are currently disabled:" msgstr "பின்வரும் கூடுதல் இணைப்புகள் தற்போது செயல்நீக்கப்பட்டுள்ளது:" #: ../sos/sosreport.py:585 msgid "The following plugin options are available:" msgstr "பின்வரும் கூடுதல் இணைப்பு விருப்பங்கள் உள்ளன:" #: ../sos/sosreport.py:606 msgid "No plugin options available." msgstr "கூடுதல் இணைப்பு விருப்பங்கள் எதுவும் இல்லை." #: ../sos/sosreport.py:614 msgid "sosreport requires root permissions to run." msgstr "sosreportஐ இயக்க ரூட் அனுமதிகள் வேண்டும்." #: ../sos/sosreport.py:621 msgid "no valid plugins were enabled" msgstr "சரியான கூடுதல் இணைப்புகள் எதுவும் செயல்படுத்தப்படவில்லை" #: ../sos/sosreport.py:624 #, python-format msgid "" "This utility will collect some detailed information about the\n" "hardware and setup of your %(distroa)s system.\n" "The information is collected and an archive is packaged under\n" "/tmp, which you can send to a support representative.\n" "%(distrob)s will use this information for diagnostic purposes ONLY\n" "and it will be considered confidential information.\n" "\n" "This process may take a while to complete.\n" "No changes will be made to your system.\n" "\n" msgstr "" "இந்த வசதி வன்பொருள் பற்றியும் மற்றும் உங்கள் %(distroa)s \n" "கணினியை அமைப்பது பற்றியும் விரிவான தகவலை கொண்டிருக்கும்.\n" "இந்த தகவல்கள் சேகரிக்கப்பட்டு /tmpஇல் தொகுக்கப்படுகிறது,\n" "இதனை நீங்கள் சேவை பிரதிநிதிக்கு அனுப்பலாம்.\n" "%(distrob)s இந்த தகவலை ஆராய மட்டுமே பயன்படுத்தி\n" "இரகசியமாக வைத்து கொள்ளும்.\n" "\n" "இந்தப் பணி முடிய சிறிது நேரம் ஆகும்.\n" "உங்கள் கணினியில் எந்த மாற்றமும் செய்யப்படாது.\n" "\n" #: ../sos/sosreport.py:639 msgid "Press ENTER to continue, or CTRL-C to quit.\n" msgstr "ENTER ஐ அழுத்தவும் அல்லது CTRL-C ஐ அழுத்தி வெளியேறவும்.\n" #: ../sos/sosreport.py:665 msgid "One or more plugins have detected a problem in your configuration." msgstr "" "ஒன்று அல்லது அதற்கு மேல் கூடுதல் இணைப்புகள் கண்டறியப்பட்டதால் உங்கள் கட்டமைப்பில் பிழை " "ஏற்பட்டுள்ளது." #: ../sos/sosreport.py:667 msgid "Please review the following messages:" msgstr "பின்வரும் செய்திகளை மறுபார்வையிடவும்:" #: ../sos/sosreport.py:683 msgid "Are you sure you would like to continue (y/n) ? " msgstr "நீங்கள் தொடர வேண்டுமா (y/n) ?" #: ../sos/sosreport.py:685 msgid "y" msgstr "y" #: ../sos/sosreport.py:685 msgid "Y" msgstr "Y" #: ../sos/sosreport.py:688 msgid "n" msgstr "n" #: ../sos/sosreport.py:688 msgid "N" msgstr "N" #: ../sos/sosreport.py:713 msgid " Running plugins. Please wait ..." msgstr "" " கூடுதல் இணைப்புகள் இயங்குகிறது. காத்திருக்கவும் ... கூடுதல் இணைப்புகள் இயங்குகிறது. " "பகாத்தஇஉ" #: ../sos/sosreport.py:827 #, python-format msgid " sosreport build tree is located at : %s" msgstr " sosreport உருவாக்கும் மரம் இங்குள்ளது : %s" #: ../sos/policyredhat.py:211 #, python-format msgid "Please enter your first initial and last name [%s]: " msgstr "உங்கள் பெயரின் முதல் எழுத்து மற்றும் கடைசி பெயரை உள்ளிடவும் [%s]: " #: ../sos/policyredhat.py:214 msgid "Please enter the case number that you are generating this report for: " msgstr "இந்த அறிக்கையை உருவாக்க அதற்கான எண்ணை உள்ளிடவும்:" #: ../sos/policyredhat.py:254 msgid "Creating compressed archive..." msgstr "குறுக்கப்பட்ட காப்பினை உருவாக்குகிறது..." #: ../sos/policyredhat.py:284 msgid "Encrypting archive..." msgstr "காப்பினை மறைகுறியாக்குகிறது..." #: ../sos/policyredhat.py:304 msgid "There was a problem encrypting your report." msgstr "உங்கள் அறிக்கையை மறைகுறியாக்குவதில் சிக்கல்." #: ../sos/policyredhat.py:328 #, python-format msgid "" "Your sosreport has been generated and saved in:\n" " %s" msgstr "" "உங்கள் sosreport உருவாக்கப்பட்டு இதில் சேமிக்கப்பட்டுள்ளது:\n" " %s" #: ../sos/policyredhat.py:331 msgid "The md5sum is: " msgstr "md5sum : " #: ../sos/policyredhat.py:333 msgid "Please send this file to your support representative." msgstr "இந்த கோப்பினை உங்கள் சேவை பிரதிநிதியிடம் அனுப்பவும்." #: ../sos/policyredhat.py:355 msgid "No URL defined in config file." msgstr "URL எதுவும் கட்டமைப்பு கோப்பில் இல்லை." #: ../sos/policyredhat.py:362 msgid "Cannot upload to specified URL." msgstr "குறிப்பிட்ட இணைய முகவரியில் ஏற்ற முடியவில்லை." #: ../sos/policyredhat.py:399 msgid "There was a problem uploading your report to Red Hat support." msgstr "உங்கள் அறிக்கையை Red Hat சேவைக்கு அனுப்புவதில் சிக்கல்." #: ../sos/policyredhat.py:401 #, python-format msgid "Your report was successfully uploaded to %s with name:" msgstr "உங்கள் அறிக்கை வெற்றிகரமாக %s இல் பெயருடன் ஏற்றப்பட்டது:" #: ../sos/policyredhat.py:404 msgid "Please communicate this name to your support representative." msgstr "இந்த பெயரை உங்கள் சேவை பிரதிநிதியிடம் தெரிவிக்கவும்." #~ msgid "plugin %s skipped (--skip-plugins)" #~ msgstr "கூடுதல் இணைப்பு %s தவிர்க்கப்பட்டது (--skip-plugins)" #~ msgid "plugin %s is inactive (use -e or -o to enable)." #~ msgstr "" #~ "கூடுதல் இணைப்பு %s செயலிழக்கப்பட்டுள்ளது (-e அல்லது -o ஐ பயன்படுத்தி செயல்படுத்தவும்)." #~ msgid "plugin %s not specified in --only-plugins list" #~ msgstr "கூடுதல் இணைப்பு %s --only-plugins பட்டியலில் குறிப்பிடப்படவில்லை" #~ msgid "processing options from plugin: %s" #~ msgstr "கூடுதல் இணைப்பிலிருந்து விருப்பம் செயல்படுகிறது: %s" sosreport/po/hu.po0000644000175000017500000001430712254061770012653 0ustar zefzef# Hungarian translations for sos package. # Copyright (C) 2007 ORGANIZATION # Automatically generated, 2007. # msgid "" msgstr "" "Project-Id-Version: sos trunk\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-11-15 15:02+0000\n" "PO-Revision-Date: 2010-03-16 17:23+0100\n" "Last-Translator: Peter Bojtos \n" "Language-Team: Hungarian \n" "Language: hu\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: ../sos/sosreport.py:350 msgid "Could not create temporary directory." msgstr "Nem sikerült ideiglenes mappát teremteni." #: ../sos/sosreport.py:413 #, python-format msgid "sosreport (version %s)" msgstr "sosreport·(%s változat)" #: ../sos/sosreport.py:438 #, python-format msgid "plugin %s does not validate, skipping" msgstr "%s dugasz érvénytelen, kihagyás" #: ../sos/sosreport.py:467 #, python-format msgid "plugin %s does not install, skipping" msgstr "%s dugasz nem települ, kihagyás" #: ../sos/sosreport.py:563 msgid "no valid plugins found" msgstr "nincs érvényes dugasz" #: ../sos/sosreport.py:567 msgid "The following plugins are currently enabled:" msgstr "A következő dugaszokat engedélyezték:" #: ../sos/sosreport.py:573 msgid "No plugin enabled." msgstr "Nincs engedélyezett dugasz." #: ../sos/sosreport.py:577 msgid "The following plugins are currently disabled:" msgstr "A következő dugaszokat tiltották le:" #: ../sos/sosreport.py:585 msgid "The following plugin options are available:" msgstr "A következő dugasz opciók érhetők el:" #: ../sos/sosreport.py:606 msgid "No plugin options available." msgstr "Nincs elérhető dugasz opció." #: ../sos/sosreport.py:614 msgid "sosreport requires root permissions to run." msgstr "sosreportnak root jogsi kell a futáshoz." #: ../sos/sosreport.py:621 msgid "no valid plugins were enabled" msgstr "nem engedélyeztek érvényes dugaszt" #: ../sos/sosreport.py:624 #, python-format msgid "" "This utility will collect some detailed information about the\n" "hardware and setup of your %(distroa)s system.\n" "The information is collected and an archive is packaged under\n" "/tmp, which you can send to a support representative.\n" "%(distrob)s will use this information for diagnostic purposes ONLY\n" "and it will be considered confidential information.\n" "\n" "This process may take a while to complete.\n" "No changes will be made to your system.\n" "\n" msgstr "" "E segédprogram részletes adatokat gyűjt a hardverről és a \n" "%(distroa)s rendszer beállításáról.\n" "Az adatokat a /tmp mappába gyűjtik és az archíválják, amit \n" "elküldhet a támogatás képviselőjének.\n" "%(distrob)s CSAK diagnosztikai célból használja ezen adatokat, \n" "és bizalmasnak tekinti azokat.\n" "\n" "E folyamat befejezése eltarthat egy ideig.\n" "A rendszert nem változtatja meg.\n" "\n" #: ../sos/sosreport.py:639 msgid "Press ENTER to continue, or CTRL-C to quit.\n" msgstr "Nyomjon ENTER-t a folytatáshoz, vagy CTRL-C-t a kilépéshez.\n" #: ../sos/sosreport.py:665 msgid "One or more plugins have detected a problem in your configuration." msgstr "Egy vagy több dugasz bajt érzékelt a konfigurációban." #: ../sos/sosreport.py:667 msgid "Please review the following messages:" msgstr "Kérem nézze át a következő üzeneteket:" #: ../sos/sosreport.py:683 msgid "Are you sure you would like to continue (y/n) ? " msgstr "Biztosan folytatni akarja? (i/n) " #: ../sos/sosreport.py:685 msgid "y" msgstr "i" #: ../sos/sosreport.py:685 msgid "Y" msgstr "I" #: ../sos/sosreport.py:688 msgid "n" msgstr "n" #: ../sos/sosreport.py:688 msgid "N" msgstr "N" #: ../sos/sosreport.py:713 msgid " Running plugins. Please wait ..." msgstr "Plugin-ek futtatása, kérem várjon…" #: ../sos/sosreport.py:827 #, python-format msgid " sosreport build tree is located at : %s" msgstr "Sosreport építési fája itt található: %s" #: ../sos/policyredhat.py:211 #, python-format msgid "Please enter your first initial and last name [%s]: " msgstr "Kérem adja meg utónevét és vezetéknevét [%s]:·" #: ../sos/policyredhat.py:214 msgid "Please enter the case number that you are generating this report for: " msgstr "Kérem adja meg az eset számát, amire e jelentést készíti: " #: ../sos/policyredhat.py:254 msgid "Creating compressed archive..." msgstr "Tömörített archívum teremtése…" #: ../sos/policyredhat.py:284 msgid "Encrypting archive..." msgstr "Archívum titkosítása…" #: ../sos/policyredhat.py:304 msgid "There was a problem encrypting your report." msgstr "A jelentést titkosítván hiba történt." #: ../sos/policyredhat.py:328 #, python-format msgid "" "Your sosreport has been generated and saved in:\n" " %s" msgstr "" "A sos jelentés elkészült ide mentve:\n" " %s" #: ../sos/policyredhat.py:331 msgid "The md5sum is: " msgstr "Az md5sum: " #: ../sos/policyredhat.py:333 msgid "Please send this file to your support representative." msgstr "Kérem küldje e fájlt a támogatás képviselőjének." #: ../sos/policyredhat.py:355 msgid "No URL defined in config file." msgstr "Nincs URL meghatározva a config fájlban." #: ../sos/policyredhat.py:362 msgid "Cannot upload to specified URL." msgstr "Nem lehet az URL-re feltölteni." #: ../sos/policyredhat.py:399 msgid "There was a problem uploading your report to Red Hat support." msgstr "A jelentést a Red Hat támogatáshoz feltöltvén baj történt." #: ../sos/policyredhat.py:401 #, python-format msgid "Your report was successfully uploaded to %s with name:" msgstr "A jelentést sikerült a %s kiszolgálóra feltölteni a következő néven:" #: ../sos/policyredhat.py:404 msgid "Please communicate this name to your support representative." msgstr "Kérem e nevet adja meg a támogatás képviselőjének." #~ msgid "plugin %s skipped (--skip-plugins)" #~ msgstr "%s dugasz kihagyva (--skip-plugins)" #~ msgid "plugin %s is inactive (use -e or -o to enable)." #~ msgstr "%s dugasz kikapcsolva (-e vagy -o kapcsolóval engedélyezheti)" #~ msgid "plugin %s not specified in --only-plugins list" #~ msgstr "%s dugasz nincs megadva --only-plugins listában" #~ msgid "processing options from plugin: %s" #~ msgstr "%s dugasz opcióinak feldolgozása" sosreport/po/ko.po0000644000175000017500000001570612254061770012654 0ustar zefzef# translation of ko.po to # Korean translations for PACKAGE package. # Copyright (C) 2007 ORGANIZATION # Automatically generated, 2007. # msgid "" msgstr "" "Project-Id-Version: ko\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-11-15 15:02+0000\n" "PO-Revision-Date: 2007-11-07 09:56+1000\n" "Last-Translator: \n" "Language-Team: \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=1; plural=0;\n" "Generated-By: pygettext.py 1.5\n" "X-Generator: KBabel 1.11.4\n" #: ../sos/sosreport.py:350 msgid "Could not create temporary directory." msgstr "임시 디렉토리를 생성할 수 없습니다." #: ../sos/sosreport.py:413 #, python-format msgid "sosreport (version %s)" msgstr "sos 리포트 (버전 %s)" #: ../sos/sosreport.py:438 #, python-format msgid "plugin %s does not validate, skipping" msgstr "%s 플러그인이 유효하지 않아 생략합니다." #: ../sos/sosreport.py:467 #, python-format msgid "plugin %s does not install, skipping" msgstr "%s 플러그인이 설치되지 않아 생략합니다." #: ../sos/sosreport.py:563 msgid "no valid plugins found" msgstr "사용 가능한 플러그인이 없습니다." #: ../sos/sosreport.py:567 msgid "The following plugins are currently enabled:" msgstr "현재 다음과 같은 플러그인이 활성화되어 있습니다:" #: ../sos/sosreport.py:573 msgid "No plugin enabled." msgstr "활성화된 플러그인이 없습니다:" #: ../sos/sosreport.py:577 msgid "The following plugins are currently disabled:" msgstr "현재 다음과 같은 플러그인이 비활성화되어 있습니다:" #: ../sos/sosreport.py:585 msgid "The following plugin options are available:" msgstr "다음과 같은 플러그인 옵션을 사용할 수 있습니다:" #: ../sos/sosreport.py:606 msgid "No plugin options available." msgstr "사용 가능한 플러그인 옵션이 없습니다:" #: ../sos/sosreport.py:614 msgid "sosreport requires root permissions to run." msgstr "sos 리포트를 실행하려면 루트 권한이 필요합니다." #: ../sos/sosreport.py:621 msgid "no valid plugins were enabled" msgstr "활성화된 사용 가능한 플러그인이 없습니다." #: ../sos/sosreport.py:624 #, fuzzy, python-format msgid "" "This utility will collect some detailed information about the\n" "hardware and setup of your %(distroa)s system.\n" "The information is collected and an archive is packaged under\n" "/tmp, which you can send to a support representative.\n" "%(distrob)s will use this information for diagnostic purposes ONLY\n" "and it will be considered confidential information.\n" "\n" "This process may take a while to complete.\n" "No changes will be made to your system.\n" "\n" msgstr "" "이 유틸리티는 Red Hat Enterprise Linux 시스템의 하드웨어와 \n" "시스템 설정 사항에 대한 상세 정보를 수집하게 됩니다. 수집된 \n" "정보는 지원 담당자에게 보낼 수 있도록 /tmp 디렉토리 안에 \n" "아카이브로 저장됩니다. Red Hat은 이 정보를 문제 해결 목적으로만 사용하며 기" "밀 정보로 \n" "취급할 것입니다. \n" "\n" "이 과정을 모두 완료하는 데 약간의 시간이 소요될 수 있으며, \n" "시스템에 아무런 영향을 주지 않습니다. \n" "\n" #: ../sos/sosreport.py:639 msgid "Press ENTER to continue, or CTRL-C to quit.\n" msgstr "계속하려면 ENTER를 입력하고, 종료하려면 CTRL-C를 입력하십시오.\n" #: ../sos/sosreport.py:665 msgid "One or more plugins have detected a problem in your configuration." msgstr "하나 이상의 플러그인이 사용자 설정에서 문제를 발견했습니다." #: ../sos/sosreport.py:667 msgid "Please review the following messages:" msgstr "다음 메시지를 다시 살펴보시기 바랍니다:" #: ../sos/sosreport.py:683 msgid "Are you sure you would like to continue (y/n) ? " msgstr "계속 진행하시겠습니까? (y/n)" #: ../sos/sosreport.py:685 msgid "y" msgstr "y" #: ../sos/sosreport.py:685 msgid "Y" msgstr "Y" #: ../sos/sosreport.py:688 msgid "n" msgstr "n" #: ../sos/sosreport.py:688 msgid "N" msgstr "N" #: ../sos/sosreport.py:713 msgid " Running plugins. Please wait ..." msgstr "플러그인을 실행중입니다. 잠시만 기다려주십시오..." #: ../sos/sosreport.py:827 #, python-format msgid " sosreport build tree is located at : %s" msgstr "sosreport 빌드 트리가 %s에 위치돼있습니다." #: ../sos/policyredhat.py:211 #, python-format msgid "Please enter your first initial and last name [%s]: " msgstr "영문 이름의 첫 글자와 성을 입력하십시오[%s]:" #: ../sos/policyredhat.py:214 msgid "Please enter the case number that you are generating this report for: " msgstr "이 리포트에 해당하는 문제 번호를 입력하십시오:" #: ../sos/policyredhat.py:254 msgid "Creating compressed archive..." msgstr "압축 아카이브를 생성 중입니다..." #: ../sos/policyredhat.py:284 msgid "Encrypting archive..." msgstr "아카이브를 암호화하고 있습니다..." #: ../sos/policyredhat.py:304 msgid "There was a problem encrypting your report." msgstr "리포트를 암호화하는 데 문제가 발생했습니다." #: ../sos/policyredhat.py:328 #, python-format msgid "" "Your sosreport has been generated and saved in:\n" " %s" msgstr "" "sos 리포트가 생성되었으며 아래에 저장되었습니다:\n" " %s" #: ../sos/policyredhat.py:331 msgid "The md5sum is: " msgstr "md5sum: " #: ../sos/policyredhat.py:333 msgid "Please send this file to your support representative." msgstr "이 파일을 지원 담당자에게 보내주시기 바랍니다." #: ../sos/policyredhat.py:355 msgid "No URL defined in config file." msgstr "설정 파일에 URL이 정의돼있지 않습니다." #: ../sos/policyredhat.py:362 msgid "Cannot upload to specified URL." msgstr "지정된 URL에서 업로드할 수 없습니다." #: ../sos/policyredhat.py:399 msgid "There was a problem uploading your report to Red Hat support." msgstr "리포트를 Red Hat 지원 센터로 업로드하는 데 문제가 발생했습니다." #: ../sos/policyredhat.py:401 #, python-format msgid "Your report was successfully uploaded to %s with name:" msgstr "%s(을)를 성공적으로 보고하였습니다." #: ../sos/policyredhat.py:404 msgid "Please communicate this name to your support representative." msgstr "지원 담당자와 연락할 때 이 이름을 사용하시기 바랍니다." #~ msgid "plugin %s skipped (--skip-plugins)" #~ msgstr "%s 플러그인을 생략합니다. (--skip-plugins)" #~ msgid "plugin %s is inactive (use -e or -o to enable)." #~ msgstr "" #~ "%s 플러그인이 비활성화되어 있습니다. (-e 또는 -o 옵션으로 활성화할 수 있습" #~ "니다.)" #~ msgid "plugin %s not specified in --only-plugins list" #~ msgstr "%s 플러그인은 --only-plugins 목록에 지정되어 있지 않습니다." #~ msgid "processing options from plugin: %s" #~ msgstr "%s 플러그인 옵션을 처리 중입니다." sosreport/po/en.po0000644000175000017500000001001712254061770012633 0ustar zefzef# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR ORGANIZATION # FIRST AUTHOR , YEAR. # msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-11-15 15:02+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=utf-8\n" "Content-Transfer-Encoding: utf-8\n" "Generated-By: pygettext.py 1.5\n" #: ../sos/sosreport.py:350 msgid "Could not create temporary directory." msgstr "" #: ../sos/sosreport.py:413 #, python-format msgid "sosreport (version %s)" msgstr "" #: ../sos/sosreport.py:438 #, python-format msgid "plugin %s does not validate, skipping" msgstr "" #: ../sos/sosreport.py:467 #, python-format msgid "plugin %s does not install, skipping" msgstr "" #: ../sos/sosreport.py:563 msgid "no valid plugins found" msgstr "" #: ../sos/sosreport.py:567 msgid "The following plugins are currently enabled:" msgstr "" #: ../sos/sosreport.py:573 msgid "No plugin enabled." msgstr "" #: ../sos/sosreport.py:577 msgid "The following plugins are currently disabled:" msgstr "" #: ../sos/sosreport.py:585 msgid "The following plugin options are available:" msgstr "" #: ../sos/sosreport.py:606 msgid "No plugin options available." msgstr "" #: ../sos/sosreport.py:614 msgid "sosreport requires root permissions to run." msgstr "" #: ../sos/sosreport.py:621 msgid "no valid plugins were enabled" msgstr "" #: ../sos/sosreport.py:624 #, python-format msgid "" "This utility will collect some detailed information about the\n" "hardware and setup of your %(distroa)s system.\n" "The information is collected and an archive is packaged under\n" "/tmp, which you can send to a support representative.\n" "%(distrob)s will use this information for diagnostic purposes ONLY\n" "and it will be considered confidential information.\n" "\n" "This process may take a while to complete.\n" "No changes will be made to your system.\n" "\n" msgstr "" #: ../sos/sosreport.py:639 msgid "Press ENTER to continue, or CTRL-C to quit.\n" msgstr "" #: ../sos/sosreport.py:665 msgid "One or more plugins have detected a problem in your configuration." msgstr "" #: ../sos/sosreport.py:667 msgid "Please review the following messages:" msgstr "" #: ../sos/sosreport.py:683 msgid "Are you sure you would like to continue (y/n) ? " msgstr "" #: ../sos/sosreport.py:685 msgid "y" msgstr "" #: ../sos/sosreport.py:685 msgid "Y" msgstr "" #: ../sos/sosreport.py:688 msgid "n" msgstr "" #: ../sos/sosreport.py:688 msgid "N" msgstr "" #: ../sos/sosreport.py:713 msgid " Running plugins. Please wait ..." msgstr "" #: ../sos/sosreport.py:827 #, python-format msgid " sosreport build tree is located at : %s" msgstr "" #: ../sos/policyredhat.py:211 #, python-format msgid "Please enter your first initial and last name [%s]: " msgstr "" #: ../sos/policyredhat.py:214 msgid "Please enter the case number that you are generating this report for: " msgstr "" #: ../sos/policyredhat.py:254 msgid "Creating compressed archive..." msgstr "" #: ../sos/policyredhat.py:284 msgid "Encrypting archive..." msgstr "" #: ../sos/policyredhat.py:304 msgid "There was a problem encrypting your report." msgstr "" #: ../sos/policyredhat.py:328 #, python-format msgid "" "Your sosreport has been generated and saved in:\n" " %s" msgstr "" #: ../sos/policyredhat.py:331 msgid "The md5sum is: " msgstr "" #: ../sos/policyredhat.py:333 msgid "Please send this file to your support representative." msgstr "" #: ../sos/policyredhat.py:355 msgid "No URL defined in config file." msgstr "" #: ../sos/policyredhat.py:362 msgid "Cannot upload to specified URL." msgstr "" #: ../sos/policyredhat.py:399 msgid "There was a problem uploading your report to Red Hat support." msgstr "" #: ../sos/policyredhat.py:401 #, python-format msgid "Your report was successfully uploaded to %s with name:" msgstr "" #: ../sos/policyredhat.py:404 msgid "Please communicate this name to your support representative." msgstr "" sosreport/po/sr.po0000644000175000017500000001713312254061770012663 0ustar zefzef# Serbian translations for sos # Copyright (C) 2007 Red Hat, Inc. # This file is distributed under the same license as the sos package. # Miloš Komarčević , 2009. # msgid "" msgstr "" "Project-Id-Version: sos\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-11-15 15:02+0000\n" "PO-Revision-Date: 2010-03-28 23:56+0100\n" "Last-Translator: Miloš Komarčević \n" "Language-Team: Serbian \n" "Language: sr\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" #: ../sos/sosreport.py:350 msgid "Could not create temporary directory." msgstr "Не могу да направим привремени директоријум." #: ../sos/sosreport.py:413 #, python-format msgid "sosreport (version %s)" msgstr "sosreport (верзија %s)" #: ../sos/sosreport.py:438 #, python-format msgid "plugin %s does not validate, skipping" msgstr "додатак %s се није оверио, прескачем" #: ../sos/sosreport.py:467 #, python-format msgid "plugin %s does not install, skipping" msgstr "додатак %s се није инсталирао, прескачем" #: ../sos/sosreport.py:563 msgid "no valid plugins found" msgstr "нису пронађени ваљани додаци" #: ../sos/sosreport.py:567 msgid "The following plugins are currently enabled:" msgstr "Следећи додаци су тренутно укључени:" #: ../sos/sosreport.py:573 msgid "No plugin enabled." msgstr "Нема укључених додатака." #: ../sos/sosreport.py:577 msgid "The following plugins are currently disabled:" msgstr "Следећи додаци су тренутно искључени:" #: ../sos/sosreport.py:585 msgid "The following plugin options are available:" msgstr "Доступне су следеће опције додатка:" #: ../sos/sosreport.py:606 msgid "No plugin options available." msgstr "Нема доступних опција додатка." #: ../sos/sosreport.py:614 msgid "sosreport requires root permissions to run." msgstr "sosreport захтева root дозволе за извршавање." #: ../sos/sosreport.py:621 msgid "no valid plugins were enabled" msgstr "нису укључени ваљани додаци" #: ../sos/sosreport.py:624 #, python-format msgid "" "This utility will collect some detailed information about the\n" "hardware and setup of your %(distroa)s system.\n" "The information is collected and an archive is packaged under\n" "/tmp, which you can send to a support representative.\n" "%(distrob)s will use this information for diagnostic purposes ONLY\n" "and it will be considered confidential information.\n" "\n" "This process may take a while to complete.\n" "No changes will be made to your system.\n" "\n" msgstr "" "Ова алатка ће сакупити неке детаљне информације о\n" "хардверу и поставци вашег %(distroa)s система.\n" "Информације се сакупљају и пакује се архива под\n" "/tmp, коју можете послати представнику за подршку.\n" "%(distrob)s ће употребити ове информације САМО у дијагностичке\n" "сврхе и биће сматране поверљивим информацијама.\n" "\n" "Овај процес може да потраје дуже док се не заврши.\n" "Никакве промене неће бите начињене на систему.\n" "\n" #: ../sos/sosreport.py:639 msgid "Press ENTER to continue, or CTRL-C to quit.\n" msgstr "Притисните ENTER за наставак, или CTRL-C за излаз.\n" #: ../sos/sosreport.py:665 msgid "One or more plugins have detected a problem in your configuration." msgstr "Један или више додатака су открили проблем са вашим подешавањима." #: ../sos/sosreport.py:667 msgid "Please review the following messages:" msgstr "Прегледајте следеће поруке:" #: ../sos/sosreport.py:683 msgid "Are you sure you would like to continue (y/n) ? " msgstr "Да ли сигурно желите да наставите (d/n) ?" #: ../sos/sosreport.py:685 msgid "y" msgstr "d" #: ../sos/sosreport.py:685 msgid "Y" msgstr "D" #: ../sos/sosreport.py:688 msgid "n" msgstr "n" #: ../sos/sosreport.py:688 msgid "N" msgstr "N" #: ../sos/sosreport.py:713 msgid " Running plugins. Please wait ..." msgstr " Покрећем додатке. Молимо сачекајте ..." #: ../sos/sosreport.py:827 #, python-format msgid " sosreport build tree is located at : %s" msgstr " стабло sosreport изградње се налази на : %s" #: ../sos/policyredhat.py:211 #, python-format msgid "Please enter your first initial and last name [%s]: " msgstr "Унесите ваш први иницијал и презиме [%s]: " #: ../sos/policyredhat.py:214 msgid "Please enter the case number that you are generating this report for: " msgstr "Унесите број случаја за који правите овај извештај:" #: ../sos/policyredhat.py:254 msgid "Creating compressed archive..." msgstr "Правим компримовану архиву..." #: ../sos/policyredhat.py:284 msgid "Encrypting archive..." msgstr "Шифрирам архиву..." #: ../sos/policyredhat.py:304 msgid "There was a problem encrypting your report." msgstr "Дошло је до грешке при шифровању вашег извештаја." #: ../sos/policyredhat.py:328 #, python-format msgid "" "Your sosreport has been generated and saved in:\n" " %s" msgstr "" "Ваш sos извештај је направљен и сачуван у:\n" " %s" #: ../sos/policyredhat.py:331 msgid "The md5sum is: " msgstr "md5sum је: " #: ../sos/policyredhat.py:333 msgid "Please send this file to your support representative." msgstr "Пошаљите ову датотеку вашем представнику подршке." #: ../sos/policyredhat.py:355 msgid "No URL defined in config file." msgstr "Нема дефинисане УРЛ адресе у датотеци подешавања." #: ../sos/policyredhat.py:362 msgid "Cannot upload to specified URL." msgstr "Не могу да пошаљем на наведени УРЛ." #: ../sos/policyredhat.py:399 msgid "There was a problem uploading your report to Red Hat support." msgstr "Појавио се проблем при слању вашег извештаја Red Hat подршци." #: ../sos/policyredhat.py:401 #, python-format msgid "Your report was successfully uploaded to %s with name:" msgstr "Ваш извештај је успешно послат на %s са именом:" #: ../sos/policyredhat.py:404 msgid "Please communicate this name to your support representative." msgstr "Пренесите ово име вашем представнику подршке." #~ msgid "plugin %s skipped (--skip-plugins)" #~ msgstr "додатак %s је прескочен (--skip-plugins)" #~ msgid "plugin %s is inactive (use -e or -o to enable)." #~ msgstr "додатак %s није активан (употребите -e или -o да га укључите)" #~ msgid "plugin %s not specified in --only-plugins list" #~ msgstr "додатак %s није наведен у списку --only-plugins" #~ msgid "processing options from plugin: %s" #~ msgstr "обрађујем опције од додатка: %s" sosreport/po/Makefile0000644000175000017500000000270712254061770013340 0ustar zefzef# What is this package? NLSPACKAGE = sos POTFILE = $(NLSPACKAGE).pot INSTALL = /usr/bin/install -c INSTALL_DATA = $(INSTALL) -m 644 INSTALL_DIR = /usr/bin/install -d # destination directory INSTALL_NLS_DIR = $(DESTDIR)/usr/share/locale # PO catalog handling MSGMERGE = msgmerge -v XGETTEXT = xgettext --default-domain=$(NLSPACKAGE) \ --add-comments --language=python MSGFMT = msgfmt --statistics --verbose # What do we need to do POFILES = $(wildcard *.po) MOFILES = $(patsubst %.po,%.mo,$(POFILES)) PYSRC = $(wildcard ../sos/*.py) SRCFILES = $(PYSRC) all:: update-po $(MOFILES) $(POTFILE): $(XGETTEXT) --keyword=_ --keyword=N_ $(SRCFILES) @if cmp -s $(NLSPACKAGE).po $(POTFILE); then \ rm -f $(NLSPACKAGE).po; \ else \ mv -f $(NLSPACKAGE).po $(POTFILE); \ fi; \ update-po: Makefile $(POTFILE) refresh-po refresh-po: Makefile for cat in $(POFILES); do \ lang=`basename $$cat .po`; \ if $(MSGMERGE) $$lang.po $(POTFILE) > $$lang.pot ; then \ mv -f $$lang.pot $$lang.po ; \ echo "$(MSGMERGE) of $$lang succeeded" ; \ else \ echo "$(MSGMERGE) of $$lang failed" ; \ rm -f $$lang.pot ; \ fi \ done clean: @rm -fv *mo *~ .depend install: $(MOFILES) @for n in $(MOFILES); do \ l=`basename $$n .mo`; \ $(INSTALL_DIR) $(INSTALL_NLS_DIR)/$$l/LC_MESSAGES; \ $(INSTALL_DATA) --verbose $$n $(INSTALL_NLS_DIR)/$$l/LC_MESSAGES/$(NLSPACKAGE).mo; \ done %.mo: %.po $(MSGFMT) -o $@ $< .PHONY: missing depend $(POTFILE) sosreport/po/uk.po0000644000175000017500000001570212254061770012656 0ustar zefzef# Ukrainian translations for sos package. # Copyright (C) Free Software Foundation # This file is distributed under the same license as the system-config-display package. # Maxim Dzіumanenko , 2009 # msgid "" msgstr "" "Project-Id-Version: sos\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-11-15 15:02+0000\n" "PO-Revision-Date: 2010-04-11 08:45\n" "Last-Translator: Maxim Dzіumanenko \n" "Language-Team: \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: pygettext.py 1.5\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" #: ../sos/sosreport.py:350 msgid "Could not create temporary directory." msgstr "Не вдається створити тимчасовий каталог." #: ../sos/sosreport.py:413 #, python-format msgid "sosreport (version %s)" msgstr "sosreport (версія %s)" #: ../sos/sosreport.py:438 #, python-format msgid "plugin %s does not validate, skipping" msgstr "модуль %s не пройшов перевірку автентичності. Пропускається." #: ../sos/sosreport.py:467 #, python-format msgid "plugin %s does not install, skipping" msgstr "модуль %s не встановлюється. Пропускається." #: ../sos/sosreport.py:563 msgid "no valid plugins found" msgstr "не знайдено модулі" #: ../sos/sosreport.py:567 msgid "The following plugins are currently enabled:" msgstr "Наразі увімкнені модулі:" #: ../sos/sosreport.py:573 msgid "No plugin enabled." msgstr "Немає активних модулів." #: ../sos/sosreport.py:577 msgid "The following plugins are currently disabled:" msgstr "Наразі вимкнені модулі:" #: ../sos/sosreport.py:585 msgid "The following plugin options are available:" msgstr "Доступні наступні параметри модулів:" #: ../sos/sosreport.py:606 msgid "No plugin options available." msgstr "Немає параметрів." #: ../sos/sosreport.py:614 msgid "sosreport requires root permissions to run." msgstr "Для виконання sosreport потрібні права root." #: ../sos/sosreport.py:621 msgid "no valid plugins were enabled" msgstr "відповідні модулі не увімкнені" #: ../sos/sosreport.py:624 #, python-format msgid "" "This utility will collect some detailed information about the\n" "hardware and setup of your %(distroa)s system.\n" "The information is collected and an archive is packaged under\n" "/tmp, which you can send to a support representative.\n" "%(distrob)s will use this information for diagnostic purposes ONLY\n" "and it will be considered confidential information.\n" "\n" "This process may take a while to complete.\n" "No changes will be made to your system.\n" "\n" msgstr "" "Ця програма виконає збір докладної інформації про обладнання\n" "та параметри вашої системи %(distroa)s.\n" "Отримані відомості будуть упаковані у архів, який буде розміщено у каталозі /" "tmp.\n" "Цей архів можна надсилати до служби підтримки для аналізу.\n" "%(distrob)s розглядає цю інформацію як конфіденційну та використовує\n" "виключно з метою діагностики.\n" "\n" "Цей процес може тривати деякий час.\n" "Систему при цьому змінено не буде.\n" #: ../sos/sosreport.py:639 msgid "Press ENTER to continue, or CTRL-C to quit.\n" msgstr "Натисніть ENTER для продовження або CTRL-C для виходу.\n" #: ../sos/sosreport.py:665 msgid "One or more plugins have detected a problem in your configuration." msgstr "Модулі виявили помилки конфігурації." #: ../sos/sosreport.py:667 msgid "Please review the following messages:" msgstr "Будь ласка, перегляньте повідомлення:" #: ../sos/sosreport.py:683 msgid "Are you sure you would like to continue (y/n) ? " msgstr "Ви дійсно бажаєте продовжити? (y/n)" #: ../sos/sosreport.py:685 msgid "y" msgstr "y" #: ../sos/sosreport.py:685 msgid "Y" msgstr "Y" #: ../sos/sosreport.py:688 msgid "n" msgstr "n" #: ../sos/sosreport.py:688 msgid "N" msgstr "N" #: ../sos/sosreport.py:713 msgid " Running plugins. Please wait ..." msgstr " Виконуються модулі. Зачекайте, будь ласка..." #: ../sos/sosreport.py:827 #, python-format msgid " sosreport build tree is located at : %s" msgstr " розташування дерева sosreport: %s" #: ../sos/policyredhat.py:211 #, python-format msgid "Please enter your first initial and last name [%s]: " msgstr "Вкажіть ім'я та прізвище [%s]: " #: ../sos/policyredhat.py:214 msgid "Please enter the case number that you are generating this report for: " msgstr "Введіть номер перевірки для звіту, що створюється:" #: ../sos/policyredhat.py:254 msgid "Creating compressed archive..." msgstr "Створюється архів..." #: ../sos/policyredhat.py:284 msgid "Encrypting archive..." msgstr "Виконується кодування архіву..." #: ../sos/policyredhat.py:304 msgid "There was a problem encrypting your report." msgstr "Виникла помилка при кодуванні вашого звіту." #: ../sos/policyredhat.py:328 #, python-format msgid "" "Your sosreport has been generated and saved in:\n" " %s" msgstr "" "Створений звіт збережено у: \n" " %s" #: ../sos/policyredhat.py:331 msgid "The md5sum is: " msgstr "md5sum:" #: ../sos/policyredhat.py:333 msgid "Please send this file to your support representative." msgstr "Відправте цей файл представнику служби підтримки." #: ../sos/policyredhat.py:355 msgid "No URL defined in config file." msgstr "Файл конфігурації не містить URL." #: ../sos/policyredhat.py:362 msgid "Cannot upload to specified URL." msgstr "Не вдається надіслати файл." #: ../sos/policyredhat.py:399 msgid "There was a problem uploading your report to Red Hat support." msgstr "Виникла помилка при спробі надіслати звіт до служби підтримки Red Hat." #: ../sos/policyredhat.py:401 #, python-format msgid "Your report was successfully uploaded to %s with name:" msgstr "Ваш звіт успішно надіслано до %s під назвою:" #: ../sos/policyredhat.py:404 msgid "Please communicate this name to your support representative." msgstr "Повідомте цю назву представнику служби підтримки." sosreport/po/bn_IN.po0000644000175000017500000002165312254061770013226 0ustar zefzef# translation of sos.trunk.po to Bengali INDIA # Bengali translations for PACKAGE package. # Copyright (C) 2007 ORGANIZATION # # Automatically generated, 2007. # Runa Bhattacharjee , 2007, 2010. msgid "" msgstr "" "Project-Id-Version: sos.trunk\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-11-15 15:02+0000\n" "PO-Revision-Date: 2010-08-05 13:46+0530\n" "Last-Translator: Runa Bhattacharjee \n" "Language-Team: Bengali INDIA \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: pygettext.py 1.5\n" "X-Generator: KBabel 1.11.4\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: ../sos/sosreport.py:350 msgid "Could not create temporary directory." msgstr "অস্থায়ী ডিরেক্টরি নির্মাণ করতে ব্যর্থ।" #: ../sos/sosreport.py:413 #, python-format msgid "sosreport (version %s)" msgstr "sosreport (সংস্করণ %s)" #: ../sos/sosreport.py:438 #, python-format msgid "plugin %s does not validate, skipping" msgstr "প্লাগ-ইন %s অনুমোদন করা যায়নি, উপেক্ষা করা হচ্ছে" #: ../sos/sosreport.py:467 #, python-format msgid "plugin %s does not install, skipping" msgstr "প্লাগ-ইন %s ইনস্টল করা যায়নি, উপেক্ষা করা হচ্ছে " #: ../sos/sosreport.py:563 msgid "no valid plugins found" msgstr "কোনো বৈধ প্লাগ-ইন পাওয়া যায়নি" #: ../sos/sosreport.py:567 msgid "The following plugins are currently enabled:" msgstr "নিম্নলিখিত প্লাগ-ইনগুলি বর্তমানে সক্রিয় করা হয়েছে:" #: ../sos/sosreport.py:573 msgid "No plugin enabled." msgstr "কোনো প্লাগ-ইন সক্রিয় নেই।" #: ../sos/sosreport.py:577 msgid "The following plugins are currently disabled:" msgstr "নিম্নলিখিত প্লাগ-ইনগুলি বর্তমানে নিষ্ক্রিয় অবস্থায় রয়েছে:" #: ../sos/sosreport.py:585 msgid "The following plugin options are available:" msgstr "প্লাগ-ইন সংক্রান্ত নিম্নলিখিত বিকল্পগুলি উপলব্ধ রয়েছে:" #: ../sos/sosreport.py:606 msgid "No plugin options available." msgstr "প্লাগ-ইন সংক্রান্ত কোনো বিকল্প উপলব্ধ নয়।" #: ../sos/sosreport.py:614 msgid "sosreport requires root permissions to run." msgstr "sosreport সঞ্চালনের জন্য root ব্যবহারকারীর অনুমতি আবশ্যক।" #: ../sos/sosreport.py:621 msgid "no valid plugins were enabled" msgstr "কোনো বৈধ প্লাগ-ইন সক্রিয় করা হয়নি" #: ../sos/sosreport.py:624 #, python-format msgid "" "This utility will collect some detailed information about the\n" "hardware and setup of your %(distroa)s system.\n" "The information is collected and an archive is packaged under\n" "/tmp, which you can send to a support representative.\n" "%(distrob)s will use this information for diagnostic purposes ONLY\n" "and it will be considered confidential information.\n" "\n" "This process may take a while to complete.\n" "No changes will be made to your system.\n" "\n" msgstr "" "এই সামগ্রীর সাহায্যে হার্ডওয়্যার ও %(distroa)s\n" "সিস্টেমের পরিকাঠামো সম্পর্কে বিশদ তথ্য সংগ্রহ করা হবে।\n" "তথ্য সংগ্রহের পরে /tmp ডিরেক্টরির অধীন একটি আর্কাইভ নির্মিত হয়।\n" "এই আর্কাইভটি আপনি সহায়তা প্রতিনিধির কাছে পাঠিয়ে দিতে পারবেন।\n" "%(distrob)s দ্বারা এই তথ্য শুধমাত্র সমস্যার কারণ নির্ণয় করার জন্য ব্যবহার করা হবে\n" "এবং এর গোপনীয়তা বজায় রাখা হবে।\n" "\n" "এই কর্ম সম্পন্ন হতে কিছু সময় ব্যয় হতে পারে।\n" "এর ফলে সিস্টেমে কোনো ধরনের পরিবর্তন করা হবে না।\n" "\n" #: ../sos/sosreport.py:639 msgid "Press ENTER to continue, or CTRL-C to quit.\n" msgstr "এগিয়ে চলার জন্য ENTER টিপুন অথবা প্রস্থান করতে CTRL-C টিপুন।\n" #: ../sos/sosreport.py:665 msgid "One or more plugins have detected a problem in your configuration." msgstr "এক অথবা অধিক প্লাগ-ইন দ্বারা আপনার কনফিগারেশনে সমস্যা সনাক্ত করা হয়েছে।" #: ../sos/sosreport.py:667 msgid "Please review the following messages:" msgstr "অনুগ্রহ করে নিম্নলিখিত বার্তাগুলি পরিদর্শন করুন:" #: ../sos/sosreport.py:683 msgid "Are you sure you would like to continue (y/n) ? " msgstr "আপনি কি নিয়্চিতরূপে এগিয়ে যেতে ইচ্ছুক (y/n) ? " #: ../sos/sosreport.py:685 msgid "y" msgstr "y" #: ../sos/sosreport.py:685 msgid "Y" msgstr "Y" #: ../sos/sosreport.py:688 msgid "n" msgstr "n" #: ../sos/sosreport.py:688 msgid "N" msgstr "N" #: ../sos/sosreport.py:713 msgid " Running plugins. Please wait ..." msgstr " প্লাগ-ইন সঞ্চালিত হচ্ছে। অনুগ্রহ করে অপেক্ষা করুন ..." #: ../sos/sosreport.py:827 #, python-format msgid " sosreport build tree is located at : %s" msgstr " sosreport বিল্ড-ট্রির অবস্থান : %s" #: ../sos/policyredhat.py:211 #, python-format msgid "Please enter your first initial and last name [%s]: " msgstr "অনুগ্রহ করে নামের অদ্যাক্ষর ও পদবি লিখুন [%s]: " #: ../sos/policyredhat.py:214 msgid "Please enter the case number that you are generating this report for: " msgstr "বর্তমান রিপোর্ট নির্মাণের জন্য অনুগ্রহ করে প্রযোজ্য কেস সংখ্যা উল্লেখ করুন: " #: ../sos/policyredhat.py:254 msgid "Creating compressed archive..." msgstr "কমপ্রেস করা আর্কাইভ নির্মাণ করুন..." #: ../sos/policyredhat.py:284 msgid "Encrypting archive..." msgstr "আর্কাইভ এনক্রিপ্ট করা হচ্ছে..." #: ../sos/policyredhat.py:304 msgid "There was a problem encrypting your report." msgstr "রিপোর্ট এনক্রিপ্ট করতে সমস্যা।" #: ../sos/policyredhat.py:328 #, python-format msgid "" "Your sosreport has been generated and saved in:\n" " %s" msgstr "" "আপনার sosreport নির্মাণ করে নিম্নলিখিত স্থানে সংরক্ষিত হয়েছে:\n" " %s" #: ../sos/policyredhat.py:331 msgid "The md5sum is: " msgstr "md5sum হল: " #: ../sos/policyredhat.py:333 msgid "Please send this file to your support representative." msgstr "অনুগ্রহ করে সহায়তা প্রতিনিধিকে এই ফাইলটি পাঠিয়ে দিন।" #: ../sos/policyredhat.py:355 msgid "No URL defined in config file." msgstr "কনফিগ ফাইলের মধ্যে কোনো URL নির্ধারিত হয়নি।" #: ../sos/policyredhat.py:362 msgid "Cannot upload to specified URL." msgstr "উল্লিখিত URL-এ আপলোড করতে ব্যর্থ।" #: ../sos/policyredhat.py:399 msgid "There was a problem uploading your report to Red Hat support." msgstr "আপনার রিপোর্টটি Red Hat সহায়তা ব্যবস্থায় আপলোড করতে সমস্যা।" #: ../sos/policyredhat.py:401 #, python-format msgid "Your report was successfully uploaded to %s with name:" msgstr "আপনার প্রদত্ত রিপোর্টটি সাফল্যের সাথে %s-এ নিম্নলিখিত নামে আপলোড করা হয়েছে:" #: ../sos/policyredhat.py:404 msgid "Please communicate this name to your support representative." msgstr "অনুগ্রহ করে সহায়তা প্রতিনিধিকে এই নামটি জানিয়ে দিন।" sosreport/po/tr.po0000644000175000017500000001406412254061770012664 0ustar zefzef# Turkish translations for PACKAGE package. # Copyright (C) 2007 ORGANIZATION # # Automatically generated, 2007. # Hasan Alp iNAN , 2010. # Hasan Alp İNAN , 2010. msgid "" msgstr "" "Project-Id-Version: sos\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-11-15 15:02+0000\n" "PO-Revision-Date: 2010-10-19 21:49+0300\n" "Last-Translator: Hasan Alp İNAN \n" "Language-Team: Turkish \n" "Language: tr_TR\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: pygettext.py 1.5\n" "Plural-Forms: nplurals=1; plural=0;\n" "X-Generator: Lokalize 1.0\n" #: ../sos/sosreport.py:350 msgid "Could not create temporary directory." msgstr "Geçici dizin oluşturulamadı." #: ../sos/sosreport.py:413 #, python-format msgid "sosreport (version %s)" msgstr "sosreport (sürüm %s)" #: ../sos/sosreport.py:438 #, python-format msgid "plugin %s does not validate, skipping" msgstr "%s eklentisi doğrulanamadı, atlanıyor" #: ../sos/sosreport.py:467 #, python-format msgid "plugin %s does not install, skipping" msgstr "%s eklentisi kurulamıyor, atlanıyor" #: ../sos/sosreport.py:563 msgid "no valid plugins found" msgstr "hiç geçerli eklenti bulunamadı" #: ../sos/sosreport.py:567 msgid "The following plugins are currently enabled:" msgstr "Aşağıdaki eklentiler şu an etkin:" #: ../sos/sosreport.py:573 msgid "No plugin enabled." msgstr "Hiçbir eklenti etkin değil." #: ../sos/sosreport.py:577 msgid "The following plugins are currently disabled:" msgstr "Aşağıdaki eklentiler şu an devre dışı:" #: ../sos/sosreport.py:585 msgid "The following plugin options are available:" msgstr "Aşağıdaki eklenti seçenekleri kullanılabilir:" #: ../sos/sosreport.py:606 msgid "No plugin options available." msgstr "Hiç eklenti seçeneği mevcut değil." #: ../sos/sosreport.py:614 msgid "sosreport requires root permissions to run." msgstr "sosreport çalışmak için root yetkisi gerektirir." #: ../sos/sosreport.py:621 msgid "no valid plugins were enabled" msgstr "hiç geçerli eklenti etkinleştirilmedi" #: ../sos/sosreport.py:624 #, python-format msgid "" "This utility will collect some detailed information about the\n" "hardware and setup of your %(distroa)s system.\n" "The information is collected and an archive is packaged under\n" "/tmp, which you can send to a support representative.\n" "%(distrob)s will use this information for diagnostic purposes ONLY\n" "and it will be considered confidential information.\n" "\n" "This process may take a while to complete.\n" "No changes will be made to your system.\n" "\n" msgstr "" "Bu uygulama donanım ve %(distroa)s sistem yapılandırmanız\n" "hakkında ayrıntılı bazı bilgiler toplayacaktır.\n" "Bu bilgiler toplanır ve bir arşiv olarak /tmp altında paketlenir\n" "ki bu bilgileri bir destek temsilcisine gönderebilirsiniz.\n" "%(distrob)s SADECE tanı amacıyla bu bilgileri kullanacak\n" "ve gizli bilgi olarak kabul edilecektir.\n" "\n" "Bu işlemin tamamlanması biraz zaman alabilir.\n" "Sisteminizde hiç bir değişiklik yapılmayacaktır.\n" "\n" #: ../sos/sosreport.py:639 msgid "Press ENTER to continue, or CTRL-C to quit.\n" msgstr "" "Devam etmek için ENTER'a basınız veya çıkmak için CTRL-C 'ye basınız.\n" #: ../sos/sosreport.py:665 msgid "One or more plugins have detected a problem in your configuration." msgstr "Bir veya daha fazla eklenti yapılandırmanızda bir sorun tespit etti." #: ../sos/sosreport.py:667 msgid "Please review the following messages:" msgstr "Lütfen aşağıdaki mesajları yeniden inceleyin:" #: ../sos/sosreport.py:683 msgid "Are you sure you would like to continue (y/n) ? " msgstr "Devam etmek istediğinizden emin misiniz (e/h) ?" #: ../sos/sosreport.py:685 msgid "y" msgstr "e" #: ../sos/sosreport.py:685 msgid "Y" msgstr "E" #: ../sos/sosreport.py:688 msgid "n" msgstr "h" #: ../sos/sosreport.py:688 msgid "N" msgstr "H" #: ../sos/sosreport.py:713 msgid " Running plugins. Please wait ..." msgstr "Eklentiler çalışıyor. Lütfen bekleyiniz ..." #: ../sos/sosreport.py:827 #, python-format msgid " sosreport build tree is located at : %s" msgstr " sosreport inşaa ağacı burada bulunmaktadır : %s" #: ../sos/policyredhat.py:211 #, python-format msgid "Please enter your first initial and last name [%s]: " msgstr "Lütfen ilk adınızı ve soyadınızı giriniz [%s]: " #: ../sos/policyredhat.py:214 msgid "Please enter the case number that you are generating this report for: " msgstr "Lütfen bu rapor için üretiğiniz durum numarasını girin: " #: ../sos/policyredhat.py:254 msgid "Creating compressed archive..." msgstr "Sıkıştırılmış arşiv oluşturuluyor..." #: ../sos/policyredhat.py:284 msgid "Encrypting archive..." msgstr "Arşiv şifreleniyor..." #: ../sos/policyredhat.py:304 msgid "There was a problem encrypting your report." msgstr "Raporunuz şifrelenirken bir sorunla karşılaşıldı." #: ../sos/policyredhat.py:328 #, python-format msgid "" "Your sosreport has been generated and saved in:\n" " %s" msgstr "" "sosreport'unuz oluşturuldu ve kaydedildi:\n" " %s" #: ../sos/policyredhat.py:331 msgid "The md5sum is: " msgstr "md5sum:" #: ../sos/policyredhat.py:333 msgid "Please send this file to your support representative." msgstr "Lütfen bu dosyayı destek temsilcinize gönderiniz." #: ../sos/policyredhat.py:355 msgid "No URL defined in config file." msgstr "Yapılandırma dosyasında hiç URL tanımlanmadı." #: ../sos/policyredhat.py:362 msgid "Cannot upload to specified URL." msgstr "Belirtilen URL 'ye yükleme yapılamadı." #: ../sos/policyredhat.py:399 msgid "There was a problem uploading your report to Red Hat support." msgstr "Raporunuz Red Hat desteğe yüklenirken bir sorunla karşılaşıldı." #: ../sos/policyredhat.py:401 #, python-format msgid "Your report was successfully uploaded to %s with name:" msgstr "Raporunuz %s adıyla başarıyla yüklendi:" #: ../sos/policyredhat.py:404 msgid "Please communicate this name to your support representative." msgstr "Lütfen bu ismi destek temsilcinize bildiriniz." sosreport/po/ro.po0000644000175000017500000001000512254061770012646 0ustar zefzef# Romanian translations for PACKAGE package. # Copyright (C) 2007 ORGANIZATION # Automatically generated, 2007. # msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-11-15 15:02+0000\n" "PO-Revision-Date: 2007-10-24 08:45\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: pygettext.py 1.5\n" #: ../sos/sosreport.py:350 msgid "Could not create temporary directory." msgstr "" #: ../sos/sosreport.py:413 #, python-format msgid "sosreport (version %s)" msgstr "" #: ../sos/sosreport.py:438 #, python-format msgid "plugin %s does not validate, skipping" msgstr "" #: ../sos/sosreport.py:467 #, python-format msgid "plugin %s does not install, skipping" msgstr "" #: ../sos/sosreport.py:563 msgid "no valid plugins found" msgstr "" #: ../sos/sosreport.py:567 msgid "The following plugins are currently enabled:" msgstr "" #: ../sos/sosreport.py:573 msgid "No plugin enabled." msgstr "" #: ../sos/sosreport.py:577 msgid "The following plugins are currently disabled:" msgstr "" #: ../sos/sosreport.py:585 msgid "The following plugin options are available:" msgstr "" #: ../sos/sosreport.py:606 msgid "No plugin options available." msgstr "" #: ../sos/sosreport.py:614 msgid "sosreport requires root permissions to run." msgstr "" #: ../sos/sosreport.py:621 msgid "no valid plugins were enabled" msgstr "" #: ../sos/sosreport.py:624 #, python-format msgid "" "This utility will collect some detailed information about the\n" "hardware and setup of your %(distroa)s system.\n" "The information is collected and an archive is packaged under\n" "/tmp, which you can send to a support representative.\n" "%(distrob)s will use this information for diagnostic purposes ONLY\n" "and it will be considered confidential information.\n" "\n" "This process may take a while to complete.\n" "No changes will be made to your system.\n" "\n" msgstr "" #: ../sos/sosreport.py:639 msgid "Press ENTER to continue, or CTRL-C to quit.\n" msgstr "" #: ../sos/sosreport.py:665 msgid "One or more plugins have detected a problem in your configuration." msgstr "" #: ../sos/sosreport.py:667 msgid "Please review the following messages:" msgstr "" #: ../sos/sosreport.py:683 msgid "Are you sure you would like to continue (y/n) ? " msgstr "" #: ../sos/sosreport.py:685 msgid "y" msgstr "" #: ../sos/sosreport.py:685 msgid "Y" msgstr "" #: ../sos/sosreport.py:688 msgid "n" msgstr "" #: ../sos/sosreport.py:688 msgid "N" msgstr "" #: ../sos/sosreport.py:713 msgid " Running plugins. Please wait ..." msgstr "" #: ../sos/sosreport.py:827 #, python-format msgid " sosreport build tree is located at : %s" msgstr "" #: ../sos/policyredhat.py:211 #, python-format msgid "Please enter your first initial and last name [%s]: " msgstr "" #: ../sos/policyredhat.py:214 msgid "Please enter the case number that you are generating this report for: " msgstr "" #: ../sos/policyredhat.py:254 msgid "Creating compressed archive..." msgstr "" #: ../sos/policyredhat.py:284 msgid "Encrypting archive..." msgstr "" #: ../sos/policyredhat.py:304 msgid "There was a problem encrypting your report." msgstr "" #: ../sos/policyredhat.py:328 #, python-format msgid "" "Your sosreport has been generated and saved in:\n" " %s" msgstr "" #: ../sos/policyredhat.py:331 msgid "The md5sum is: " msgstr "" #: ../sos/policyredhat.py:333 msgid "Please send this file to your support representative." msgstr "" #: ../sos/policyredhat.py:355 msgid "No URL defined in config file." msgstr "" #: ../sos/policyredhat.py:362 msgid "Cannot upload to specified URL." msgstr "" #: ../sos/policyredhat.py:399 msgid "There was a problem uploading your report to Red Hat support." msgstr "" #: ../sos/policyredhat.py:401 #, python-format msgid "Your report was successfully uploaded to %s with name:" msgstr "" #: ../sos/policyredhat.py:404 msgid "Please communicate this name to your support representative." msgstr "" sosreport/po/nb.po0000644000175000017500000001077212254061770012640 0ustar zefzef# Norwegian bokmål translations for the sos package. # Copyright (C) 2007 Red Hat, Inc. # Kjartan Maraas , 2010. # Automatically generated, 2007. # msgid "" msgstr "" "Project-Id-Version: sos\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-11-15 15:02+0000\n" "PO-Revision-Date: 2010-10-31 19:50+0100\n" "Last-Translator: Kjartan Maraas \n" "Language-Team: Norwegian bokmål \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: pygettext.py 1.5\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: ../sos/sosreport.py:350 msgid "Could not create temporary directory." msgstr "Kunne ikke lage midlertidig katalog." #: ../sos/sosreport.py:413 #, python-format msgid "sosreport (version %s)" msgstr "sosreport (versjon %s)" #: ../sos/sosreport.py:438 #, python-format msgid "plugin %s does not validate, skipping" msgstr "" #: ../sos/sosreport.py:467 #, python-format msgid "plugin %s does not install, skipping" msgstr "" #: ../sos/sosreport.py:563 msgid "no valid plugins found" msgstr "ingen gyldige tillegg funnet" #: ../sos/sosreport.py:567 msgid "The following plugins are currently enabled:" msgstr "" #: ../sos/sosreport.py:573 msgid "No plugin enabled." msgstr "Ingen tillegg slått på." #: ../sos/sosreport.py:577 msgid "The following plugins are currently disabled:" msgstr "" #: ../sos/sosreport.py:585 msgid "The following plugin options are available:" msgstr "" #: ../sos/sosreport.py:606 msgid "No plugin options available." msgstr "" #: ../sos/sosreport.py:614 msgid "sosreport requires root permissions to run." msgstr "" #: ../sos/sosreport.py:621 msgid "no valid plugins were enabled" msgstr "" #: ../sos/sosreport.py:624 #, python-format msgid "" "This utility will collect some detailed information about the\n" "hardware and setup of your %(distroa)s system.\n" "The information is collected and an archive is packaged under\n" "/tmp, which you can send to a support representative.\n" "%(distrob)s will use this information for diagnostic purposes ONLY\n" "and it will be considered confidential information.\n" "\n" "This process may take a while to complete.\n" "No changes will be made to your system.\n" "\n" msgstr "" #: ../sos/sosreport.py:639 msgid "Press ENTER to continue, or CTRL-C to quit.\n" msgstr "Trykk LINJESKIFT for å fortsette, eller CTRL-C for å avslutte.\n" #: ../sos/sosreport.py:665 msgid "One or more plugins have detected a problem in your configuration." msgstr "" #: ../sos/sosreport.py:667 msgid "Please review the following messages:" msgstr "" #: ../sos/sosreport.py:683 msgid "Are you sure you would like to continue (y/n) ? " msgstr "Er du sikker på at du vil fortsette (j/n)?" #: ../sos/sosreport.py:685 msgid "y" msgstr "j" #: ../sos/sosreport.py:685 msgid "Y" msgstr "J" #: ../sos/sosreport.py:688 msgid "n" msgstr "n" #: ../sos/sosreport.py:688 msgid "N" msgstr "N" #: ../sos/sosreport.py:713 msgid " Running plugins. Please wait ..." msgstr "" #: ../sos/sosreport.py:827 #, python-format msgid " sosreport build tree is located at : %s" msgstr "" #: ../sos/policyredhat.py:211 #, python-format msgid "Please enter your first initial and last name [%s]: " msgstr "" #: ../sos/policyredhat.py:214 msgid "Please enter the case number that you are generating this report for: " msgstr "" #: ../sos/policyredhat.py:254 msgid "Creating compressed archive..." msgstr "Lager komprimert arkiv..." #: ../sos/policyredhat.py:284 msgid "Encrypting archive..." msgstr "Krypterer arkiv..." #: ../sos/policyredhat.py:304 msgid "There was a problem encrypting your report." msgstr "" #: ../sos/policyredhat.py:328 #, python-format msgid "" "Your sosreport has been generated and saved in:\n" " %s" msgstr "" #: ../sos/policyredhat.py:331 msgid "The md5sum is: " msgstr "md5sum er: " #: ../sos/policyredhat.py:333 msgid "Please send this file to your support representative." msgstr "" #: ../sos/policyredhat.py:355 msgid "No URL defined in config file." msgstr "Ingen URL definert i konfigurasjonsfilen." #: ../sos/policyredhat.py:362 msgid "Cannot upload to specified URL." msgstr "Kan ikke laste opp til oppgitt URL." #: ../sos/policyredhat.py:399 msgid "There was a problem uploading your report to Red Hat support." msgstr "" #: ../sos/policyredhat.py:401 #, python-format msgid "Your report was successfully uploaded to %s with name:" msgstr "" #: ../sos/policyredhat.py:404 msgid "Please communicate this name to your support representative." msgstr "" sosreport/po/he.po0000644000175000017500000001006212254061770012625 0ustar zefzef# Hebrew translations for PACKAGE package. # Copyright (C) 2007 ORGANIZATION # Automatically generated, 2007. # msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-11-15 15:02+0000\n" "PO-Revision-Date: 2007-10-24 08:45\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: pygettext.py 1.5\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: ../sos/sosreport.py:350 msgid "Could not create temporary directory." msgstr "" #: ../sos/sosreport.py:413 #, python-format msgid "sosreport (version %s)" msgstr "" #: ../sos/sosreport.py:438 #, python-format msgid "plugin %s does not validate, skipping" msgstr "" #: ../sos/sosreport.py:467 #, python-format msgid "plugin %s does not install, skipping" msgstr "" #: ../sos/sosreport.py:563 msgid "no valid plugins found" msgstr "" #: ../sos/sosreport.py:567 msgid "The following plugins are currently enabled:" msgstr "" #: ../sos/sosreport.py:573 msgid "No plugin enabled." msgstr "" #: ../sos/sosreport.py:577 msgid "The following plugins are currently disabled:" msgstr "" #: ../sos/sosreport.py:585 msgid "The following plugin options are available:" msgstr "" #: ../sos/sosreport.py:606 msgid "No plugin options available." msgstr "" #: ../sos/sosreport.py:614 msgid "sosreport requires root permissions to run." msgstr "" #: ../sos/sosreport.py:621 msgid "no valid plugins were enabled" msgstr "" #: ../sos/sosreport.py:624 #, python-format msgid "" "This utility will collect some detailed information about the\n" "hardware and setup of your %(distroa)s system.\n" "The information is collected and an archive is packaged under\n" "/tmp, which you can send to a support representative.\n" "%(distrob)s will use this information for diagnostic purposes ONLY\n" "and it will be considered confidential information.\n" "\n" "This process may take a while to complete.\n" "No changes will be made to your system.\n" "\n" msgstr "" #: ../sos/sosreport.py:639 msgid "Press ENTER to continue, or CTRL-C to quit.\n" msgstr "" #: ../sos/sosreport.py:665 msgid "One or more plugins have detected a problem in your configuration." msgstr "" #: ../sos/sosreport.py:667 msgid "Please review the following messages:" msgstr "" #: ../sos/sosreport.py:683 msgid "Are you sure you would like to continue (y/n) ? " msgstr "" #: ../sos/sosreport.py:685 msgid "y" msgstr "" #: ../sos/sosreport.py:685 msgid "Y" msgstr "" #: ../sos/sosreport.py:688 msgid "n" msgstr "" #: ../sos/sosreport.py:688 msgid "N" msgstr "" #: ../sos/sosreport.py:713 msgid " Running plugins. Please wait ..." msgstr "" #: ../sos/sosreport.py:827 #, python-format msgid " sosreport build tree is located at : %s" msgstr "" #: ../sos/policyredhat.py:211 #, python-format msgid "Please enter your first initial and last name [%s]: " msgstr "" #: ../sos/policyredhat.py:214 msgid "Please enter the case number that you are generating this report for: " msgstr "" #: ../sos/policyredhat.py:254 msgid "Creating compressed archive..." msgstr "" #: ../sos/policyredhat.py:284 msgid "Encrypting archive..." msgstr "" #: ../sos/policyredhat.py:304 msgid "There was a problem encrypting your report." msgstr "" #: ../sos/policyredhat.py:328 #, python-format msgid "" "Your sosreport has been generated and saved in:\n" " %s" msgstr "" #: ../sos/policyredhat.py:331 msgid "The md5sum is: " msgstr "" #: ../sos/policyredhat.py:333 msgid "Please send this file to your support representative." msgstr "" #: ../sos/policyredhat.py:355 msgid "No URL defined in config file." msgstr "" #: ../sos/policyredhat.py:362 msgid "Cannot upload to specified URL." msgstr "" #: ../sos/policyredhat.py:399 msgid "There was a problem uploading your report to Red Hat support." msgstr "" #: ../sos/policyredhat.py:401 #, python-format msgid "Your report was successfully uploaded to %s with name:" msgstr "" #: ../sos/policyredhat.py:404 msgid "Please communicate this name to your support representative." msgstr "" sosreport/po/de_CH.po0000644000175000017500000001515112254061770013177 0ustar zefzef# German translation of sos # This file is distributed under the same license as the sos package. # Copyright (C) 2007 Red hat, Inc. # # Fabian Affolter , 2009. # msgid "" msgstr "" "Project-Id-Version: SOS\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-11-15 15:02+0000\n" "PO-Revision-Date: 2009-04-18 01:15+0100\n" "Last-Translator: Fabian Affolter \n" "Language-Team: German \n" "Language: de\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: pygettext.py 1.5\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: KBabel 1.11.4\n" "X-Poedit-Language: Swiss German\n" #: ../sos/sosreport.py:350 msgid "Could not create temporary directory." msgstr "Temporäres Verzeichnis konnte nicht erstellt werden." #: ../sos/sosreport.py:413 #, python-format msgid "sosreport (version %s)" msgstr "sosreport (version %s)" #: ../sos/sosreport.py:438 #, python-format msgid "plugin %s does not validate, skipping" msgstr "Plugin %s validiert nicht, wird ausgelassen" #: ../sos/sosreport.py:467 #, python-format msgid "plugin %s does not install, skipping" msgstr "Plugin %s installiert sich nicht, wird ausgelassen" #: ../sos/sosreport.py:563 msgid "no valid plugins found" msgstr "keine gültigen Plugins gefunden" #: ../sos/sosreport.py:567 msgid "The following plugins are currently enabled:" msgstr "Die folgenden Plugins sind derzeit aktiviert:" #: ../sos/sosreport.py:573 msgid "No plugin enabled." msgstr "Kein Plugin aktiviert." #: ../sos/sosreport.py:577 msgid "The following plugins are currently disabled:" msgstr "Die folgenden Plugins sind derzeit deaktiviert:" #: ../sos/sosreport.py:585 msgid "The following plugin options are available:" msgstr "Die folgenden Plugin-Optionen stehen zur Verfügung:" #: ../sos/sosreport.py:606 msgid "No plugin options available." msgstr "Keine Plugin-Optionen verfügbar." #: ../sos/sosreport.py:614 msgid "sosreport requires root permissions to run." msgstr "sosreport benötigt zur Ausführung root-Rechte." #: ../sos/sosreport.py:621 msgid "no valid plugins were enabled" msgstr "keine gültigen Plugins wurden aktiviert" #: ../sos/sosreport.py:624 #, fuzzy, python-format msgid "" "This utility will collect some detailed information about the\n" "hardware and setup of your %(distroa)s system.\n" "The information is collected and an archive is packaged under\n" "/tmp, which you can send to a support representative.\n" "%(distrob)s will use this information for diagnostic purposes ONLY\n" "and it will be considered confidential information.\n" "\n" "This process may take a while to complete.\n" "No changes will be made to your system.\n" "\n" msgstr "" "Dieses Dienstprogramm sammelt einige detaillierte Informationen\n" "zur Hardware und Einrichtung Ihres Red Hat Enterprise Linux Systems.\n" "Die Informationen werden gesammelt und in einem Archiv unter /tmp\n" "zusammengefasst, welches Sie an einen Support-Vertreter schicken\n" "können. Red Hat verwendet diese Informationen AUSSCHLIESSLICH zu\n" "Diagnosezwecken und behandelt sie als vertrauliche Informationen.\n" "\n" "Die Fertigstellung dieses Prozesses kann eine Weile dauern.\n" "Es werden keinerlei Änderungen an Ihrem System vorgenommen.\n" "\n" #: ../sos/sosreport.py:639 msgid "Press ENTER to continue, or CTRL-C to quit.\n" msgstr "" "Drücken Sie die EINGABETASTE, um fortzufahren, oder Ctrl-C, um abzubrechen.\n" #: ../sos/sosreport.py:665 msgid "One or more plugins have detected a problem in your configuration." msgstr "" "Ein oder mehrere Plugins haben ein Problem in Ihrer Konfiguration entdeckt." #: ../sos/sosreport.py:667 msgid "Please review the following messages:" msgstr "Bitte überprüfen Sie die folgenden Meldungen erneut:" #: ../sos/sosreport.py:683 msgid "Are you sure you would like to continue (y/n) ? " msgstr "Möchten Sie wirklich fortfahren (j/n) ? " #: ../sos/sosreport.py:685 msgid "y" msgstr "j" #: ../sos/sosreport.py:685 msgid "Y" msgstr "J" #: ../sos/sosreport.py:688 msgid "n" msgstr "n" #: ../sos/sosreport.py:688 msgid "N" msgstr "N" #: ../sos/sosreport.py:713 msgid " Running plugins. Please wait ..." msgstr "" #: ../sos/sosreport.py:827 #, python-format msgid " sosreport build tree is located at : %s" msgstr "" #: ../sos/policyredhat.py:211 #, python-format msgid "Please enter your first initial and last name [%s]: " msgstr "Bitte geben Sie Ihren Vor- und Nachnamen ein [%s]: " #: ../sos/policyredhat.py:214 msgid "Please enter the case number that you are generating this report for: " msgstr "" "Bitte geben Sie die Fallnummer an, für die Sie diesen Bericht generieren: " #: ../sos/policyredhat.py:254 msgid "Creating compressed archive..." msgstr "Erstelle komprimiertes Archiv ..." #: ../sos/policyredhat.py:284 msgid "Encrypting archive..." msgstr "Verschlüssele Archiv ..." #: ../sos/policyredhat.py:304 msgid "There was a problem encrypting your report." msgstr "Beim Verschlüsseln Ihres Berichts trat ein Fehler auf." #: ../sos/policyredhat.py:328 #, python-format msgid "" "Your sosreport has been generated and saved in:\n" " %s" msgstr "" "Ihr \"sosreport\" wurde erstellt und gespeichert unter:\n" " %s" #: ../sos/policyredhat.py:331 msgid "The md5sum is: " msgstr "Die md5sum lautet: " #: ../sos/policyredhat.py:333 msgid "Please send this file to your support representative." msgstr "Bitte senden Sie diese Datei an Ihren Support-Vertreter." #: ../sos/policyredhat.py:355 msgid "No URL defined in config file." msgstr "" #: ../sos/policyredhat.py:362 msgid "Cannot upload to specified URL." msgstr "Hochladen zu speziellem URL scheiterte." #: ../sos/policyredhat.py:399 msgid "There was a problem uploading your report to Red Hat support." msgstr "Beim Hochladen Ihres Berichts zum Red Hat Support trat ein Fehler auf." #: ../sos/policyredhat.py:401 #, fuzzy, python-format msgid "Your report was successfully uploaded to %s with name:" msgstr "" "Ihr Bericht wurde erfolgreich auf den Red Hat FTP-Server hochgeladen, mit " "dem Namen:" #: ../sos/policyredhat.py:404 msgid "Please communicate this name to your support representative." msgstr "Bitte teilen Sie diesen Namen Ihrem Support-Vertreter mit." #~ msgid "plugin %s skipped (--skip-plugins)" #~ msgstr "Plugin %s ausgelassen (--skip-plugins)" #~ msgid "plugin %s is inactive (use -e or -o to enable)." #~ msgstr "" #~ "Plugin %s ist inaktiv (verwenden Sie -e oder -o, um es zu aktivieren)." #~ msgid "plugin %s not specified in --only-plugins list" #~ msgstr "Plugin %s nicht in der --only-plugins-Liste angegeben" #~ msgid "processing options from plugin: %s" #~ msgstr "Verarbeitung von Optionen des Plugins: %s" sosreport/po/ml.po0000644000175000017500000002343012254061770012644 0ustar zefzef# translation of sos.trunk.ml.po to # Malayalam translations for PACKAGE package. # Copyright (C) 2007 ORGANIZATION # # Automatically generated, 2007. # Ani Peter , 2007. msgid "" msgstr "" "Project-Id-Version: sos.trunk.ml\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-11-15 15:02+0000\n" "PO-Revision-Date: 2011-01-05 21:23+0530\n" "Last-Translator: \n" "Language-Team: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: \n" "Generated-By: pygettext.py 1.5\n" "X-Generator: KBabel 1.11.4\n" #: ../sos/sosreport.py:350 msgid "Could not create temporary directory." msgstr "താല്‍ക്കാലിക ഡയറക്ടറി ഉണ്ടാക്കുവാന്‍ സാധ്യമായില്ല." #: ../sos/sosreport.py:413 #, python-format msgid "sosreport (version %s)" msgstr "sosreport (%s ലക്കം)" #: ../sos/sosreport.py:438 #, python-format msgid "plugin %s does not validate, skipping" msgstr "%s എന്നത് ശരിയായ പ്ളഗ്ഗിന്‍ അല്ല, വേണ്ടെന്ന് വയ്ക്കുന്നു" #: ../sos/sosreport.py:467 #, python-format msgid "plugin %s does not install, skipping" msgstr "%s എന്ന പ്ളഗ്ഗിന്‍ ഇന്‍സ്റ്റോള്‍ ചെയ്യുവാന്‍ സാധ്യമല്ല, ഉപേക്ഷിക്കുന്നു" #: ../sos/sosreport.py:563 msgid "no valid plugins found" msgstr "ശരിയായ പ്ളഗ്ഗിനുകള്‍ ലഭ്യമല്ല" #: ../sos/sosreport.py:567 msgid "The following plugins are currently enabled:" msgstr "താഴെ പറഞ്ഞിരിക്കുന്ന പ്ളഗ്ഗിനുകള്‍ നിലവില്‍ സജീവമാണ്:" #: ../sos/sosreport.py:573 msgid "No plugin enabled." msgstr "ഒരു പ്ളഗ്ഗിനും സജ്ജമല്ല." #: ../sos/sosreport.py:577 msgid "The following plugins are currently disabled:" msgstr "താഴെ പറഞ്ഞിരിക്കുന്ന പ്ളഗ്ഗിനുകള്‍ നിലവില്‍ നിറ്‍ജ്ജീവമാണ്:" #: ../sos/sosreport.py:585 msgid "The following plugin options are available:" msgstr "താഴെ പറഞ്ഞിരിക്കുന്ന പ്ളഗ്ഗിന്‍ ഉപാധികള്‍ ലഭ്യമാണ്:" #: ../sos/sosreport.py:606 msgid "No plugin options available." msgstr "പ്ളഗ്ഗിന്‍ ഉപാധികള്‍ ലഭ്യമല്ല." #: ../sos/sosreport.py:614 msgid "sosreport requires root permissions to run." msgstr "sosreport പ്റവറ്‍ത്തിപ്പിക്കുന്നതിനായി റൂട്ട് ആയിരിക്കണം." #: ../sos/sosreport.py:621 msgid "no valid plugins were enabled" msgstr "ശരിയായ പ്ളഗ്ഗിനുകള്‍ സജ്ജമല്ല" #: ../sos/sosreport.py:624 #, python-format msgid "" "This utility will collect some detailed information about the\n" "hardware and setup of your %(distroa)s system.\n" "The information is collected and an archive is packaged under\n" "/tmp, which you can send to a support representative.\n" "%(distrob)s will use this information for diagnostic purposes ONLY\n" "and it will be considered confidential information.\n" "\n" "This process may take a while to complete.\n" "No changes will be made to your system.\n" "\n" msgstr "" "ഈ പ്രയോഗം നിങ്ങളുടെ %(distroa)s സിസ്റ്റവും ഹാര്‍ഡ്‌വെയറും\n" "സംബന്ധിച്ചുള്ള വിശദ വിവരങ്ങള്‍ ശേഖരിക്കുന്നു.ശേഖരിച്ച വിവരങ്ങള്‍\n" "ഒരു ആര്‍ക്കൈവായി /tmp എന്ന ഫോള്‍ഡറില്‍ സൂക്ഷിക്കുന്നു. നിങ്ങള്‍ക്കിതു്\n" "പിന്തുണ ലഭ്യമാക്കുന്നവര്‍ക്കു് അയയ്ക്കുവാന്‍ സാധിക്കുന്നു. പ്രശ്നങ്ങള്‍ അറിയുന്നതിനും\n" "പരിഹരിക്കുന്നതിനും മാത്രം %(distrob)s ഈ വിവരങ്ങള്‍ ഉപയോഗിക്കുന്നതാകുന്നു.\n" "ഇവ അതീവ രഹസ്യമായി സൂക്ഷിക്കപ്പെടുന്നു.\n" "\n" "ഈ പ്രക്രിയയ്ക്കായി കുറച്ച് സമയമെടുക്കുന്നു.\n" "നിങ്ങളുടെ സിസ്റ്റത്തില്‍ മാറ്റങ്ങള്‍ വരുത്തുന്നതല്ല.\n" "\n" #: ../sos/sosreport.py:639 msgid "Press ENTER to continue, or CTRL-C to quit.\n" msgstr "മുമ്പോട്ട് തുടരുന്നതിനായി ENTER അല്ലെങ്കില്‍ പുറത്ത് കടക്കുന്നതിനായി CTRL-C അമറ്‍ത്തുക.\n" #: ../sos/sosreport.py:665 msgid "One or more plugins have detected a problem in your configuration." msgstr "ഒന്നോ അതിലധികമോ പ്ളഗ്ഗിനുകള്‍ക്ക് നിങ്ങളുടെ ക്റമികരണത്തില്‍ തകരാറുണ്ട്." #: ../sos/sosreport.py:667 msgid "Please review the following messages:" msgstr "താഴെ പറഞ്ഞിരിക്കുന്ന സന്ദേശങ്ങള്‍ ദയവായി വായിക്കുക: " #: ../sos/sosreport.py:683 msgid "Are you sure you would like to continue (y/n) ? " msgstr "നിങ്ങള്‍ക്ക് തുടരണമെന്ന് ഉറപ്പാണോ?" #: ../sos/sosreport.py:685 msgid "y" msgstr "y" #: ../sos/sosreport.py:685 msgid "Y" msgstr "Y" #: ../sos/sosreport.py:688 msgid "n" msgstr "n" #: ../sos/sosreport.py:688 msgid "N" msgstr "N" #: ../sos/sosreport.py:713 msgid " Running plugins. Please wait ..." msgstr " പ്ലഗിനുകള്‍ പ്രവര്‍ത്തിയ്ക്കുന്നു. ദയവായി കാത്തിരിയ്ക്കുക ..." #: ../sos/sosreport.py:827 #, python-format msgid " sosreport build tree is located at : %s" msgstr " sosreport ബിള്‍ഡ് ട്രീ സ്ഥിതി ചെയ്യുന്നതു് : %s" #: ../sos/policyredhat.py:211 #, python-format msgid "Please enter your first initial and last name [%s]: " msgstr "ദയവായി നിങ്ങളുടെ ആദ്യത്തെ ഇനീഷ്യലും അവസാനത്തെ പേരും നല്‍കുക [%s]: " #: ../sos/policyredhat.py:214 msgid "Please enter the case number that you are generating this report for: " msgstr "ദയവായി ഈ റിപ്പോറ്‍ട്ടിനുള്ള കേസ് നംബറ്‍ ഇവിടെ നല്‍കുക: " #: ../sos/policyredhat.py:254 msgid "Creating compressed archive..." msgstr "കംപ്രസ്സ്ഡ് ആറ്‍ക്കൈവ് ഉണ്ടാക്കുന്നു..." #: ../sos/policyredhat.py:284 msgid "Encrypting archive..." msgstr "ആറ്‍ക്കൈവ് എന്‍ക്രിപ്റ്റ് ചെയ്യുന്നു..." #: ../sos/policyredhat.py:304 msgid "There was a problem encrypting your report." msgstr "നിങ്ങളുടെ റിപ്പോറ്‍ട്ട് എന്‍ക്രിപ്റ്റ് ചെയ്യുന്നതില്‍ ഒരു പ്രശ്നം നേരിട്ടു." #: ../sos/policyredhat.py:328 #, python-format msgid "" "Your sosreport has been generated and saved in:\n" " %s" msgstr "" "നിങ്ങളുടെ sosreport ഉണ്ടാക്കി സൂക്ഷിച്ചിരിക്കുന്നത് ഇവിടെയാണ്:\n" " %s" #: ../sos/policyredhat.py:331 msgid "The md5sum is: " msgstr "md5sum താഴെ പറഞ്ഞിരിക്കുന്നു: " #: ../sos/policyredhat.py:333 msgid "Please send this file to your support representative." msgstr "നിങ്ങള്‍ക്ക് പിന്തുണ നല്‍കുന്നവറ്‍ക്ക് ഈ ഫയല്‍ അയയ്ക്കുക." #: ../sos/policyredhat.py:355 msgid "No URL defined in config file." msgstr "ക്രമീകരണ ഫയലില്‍ യുആര്‍എല്‍ നിഷ്കര്‍ഷിച്ചിട്ടില്ല." #: ../sos/policyredhat.py:362 msgid "Cannot upload to specified URL." msgstr "നല്‍കിയിരിക്കുന്ന URL-ലേക്ക് ഫയല്‍ അപ്ലോഡ് ചെയ്യുവാന്‍ സാധ്യമായില്ല " #: ../sos/policyredhat.py:399 msgid "There was a problem uploading your report to Red Hat support." msgstr "Red Hat-ലേക്ക് നിങ്ങളുടെ റിപ്പോറ്‍ട്ട് അയയ്ക്കുന്നതില്‍ ഏതോ പ്റശ്നം ഉണ്ടായിരിക്കുന്നു." #: ../sos/policyredhat.py:401 #, python-format msgid "Your report was successfully uploaded to %s with name:" msgstr "നിങ്ങളുടെ രേഖ വിജയകരമായി ഈ പേരില്‍ %s-ലേക്കു് അപ്‌ലോഡ് ചെയ്തിരിയ്ക്കുന്നു:" #: ../sos/policyredhat.py:404 msgid "Please communicate this name to your support representative." msgstr "നിങ്ങള്‍ക്ക് പിന്തുണ ലഭ്യമാക്കുന്നവറ്‍ക്ക് ഈ പേര് അയയ്ക്കുക." sosreport/po/et.po0000644000175000017500000001006412254061770012643 0ustar zefzef# Estonian translations for PACKAGE package. # Copyright (C) 2007 ORGANIZATION # Automatically generated, 2007. # msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-11-15 15:02+0000\n" "PO-Revision-Date: 2007-10-24 08:45\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: pygettext.py 1.5\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" #: ../sos/sosreport.py:350 msgid "Could not create temporary directory." msgstr "" #: ../sos/sosreport.py:413 #, python-format msgid "sosreport (version %s)" msgstr "" #: ../sos/sosreport.py:438 #, python-format msgid "plugin %s does not validate, skipping" msgstr "" #: ../sos/sosreport.py:467 #, python-format msgid "plugin %s does not install, skipping" msgstr "" #: ../sos/sosreport.py:563 msgid "no valid plugins found" msgstr "" #: ../sos/sosreport.py:567 msgid "The following plugins are currently enabled:" msgstr "" #: ../sos/sosreport.py:573 msgid "No plugin enabled." msgstr "" #: ../sos/sosreport.py:577 msgid "The following plugins are currently disabled:" msgstr "" #: ../sos/sosreport.py:585 msgid "The following plugin options are available:" msgstr "" #: ../sos/sosreport.py:606 msgid "No plugin options available." msgstr "" #: ../sos/sosreport.py:614 msgid "sosreport requires root permissions to run." msgstr "" #: ../sos/sosreport.py:621 msgid "no valid plugins were enabled" msgstr "" #: ../sos/sosreport.py:624 #, python-format msgid "" "This utility will collect some detailed information about the\n" "hardware and setup of your %(distroa)s system.\n" "The information is collected and an archive is packaged under\n" "/tmp, which you can send to a support representative.\n" "%(distrob)s will use this information for diagnostic purposes ONLY\n" "and it will be considered confidential information.\n" "\n" "This process may take a while to complete.\n" "No changes will be made to your system.\n" "\n" msgstr "" #: ../sos/sosreport.py:639 msgid "Press ENTER to continue, or CTRL-C to quit.\n" msgstr "" #: ../sos/sosreport.py:665 msgid "One or more plugins have detected a problem in your configuration." msgstr "" #: ../sos/sosreport.py:667 msgid "Please review the following messages:" msgstr "" #: ../sos/sosreport.py:683 msgid "Are you sure you would like to continue (y/n) ? " msgstr "" #: ../sos/sosreport.py:685 msgid "y" msgstr "" #: ../sos/sosreport.py:685 msgid "Y" msgstr "" #: ../sos/sosreport.py:688 msgid "n" msgstr "" #: ../sos/sosreport.py:688 msgid "N" msgstr "" #: ../sos/sosreport.py:713 msgid " Running plugins. Please wait ..." msgstr "" #: ../sos/sosreport.py:827 #, python-format msgid " sosreport build tree is located at : %s" msgstr "" #: ../sos/policyredhat.py:211 #, python-format msgid "Please enter your first initial and last name [%s]: " msgstr "" #: ../sos/policyredhat.py:214 msgid "Please enter the case number that you are generating this report for: " msgstr "" #: ../sos/policyredhat.py:254 msgid "Creating compressed archive..." msgstr "" #: ../sos/policyredhat.py:284 msgid "Encrypting archive..." msgstr "" #: ../sos/policyredhat.py:304 msgid "There was a problem encrypting your report." msgstr "" #: ../sos/policyredhat.py:328 #, python-format msgid "" "Your sosreport has been generated and saved in:\n" " %s" msgstr "" #: ../sos/policyredhat.py:331 msgid "The md5sum is: " msgstr "" #: ../sos/policyredhat.py:333 msgid "Please send this file to your support representative." msgstr "" #: ../sos/policyredhat.py:355 msgid "No URL defined in config file." msgstr "" #: ../sos/policyredhat.py:362 msgid "Cannot upload to specified URL." msgstr "" #: ../sos/policyredhat.py:399 msgid "There was a problem uploading your report to Red Hat support." msgstr "" #: ../sos/policyredhat.py:401 #, python-format msgid "Your report was successfully uploaded to %s with name:" msgstr "" #: ../sos/policyredhat.py:404 msgid "Please communicate this name to your support representative." msgstr "" sosreport/po/am.po0000644000175000017500000001000412254061770012622 0ustar zefzef# Amharic translations for PACKAGE package. # Copyright (C) 2007 ORGANIZATION # Automatically generated, 2007. # msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-11-15 15:02+0000\n" "PO-Revision-Date: 2007-10-24 08:45\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: pygettext.py 1.5\n" #: ../sos/sosreport.py:350 msgid "Could not create temporary directory." msgstr "" #: ../sos/sosreport.py:413 #, python-format msgid "sosreport (version %s)" msgstr "" #: ../sos/sosreport.py:438 #, python-format msgid "plugin %s does not validate, skipping" msgstr "" #: ../sos/sosreport.py:467 #, python-format msgid "plugin %s does not install, skipping" msgstr "" #: ../sos/sosreport.py:563 msgid "no valid plugins found" msgstr "" #: ../sos/sosreport.py:567 msgid "The following plugins are currently enabled:" msgstr "" #: ../sos/sosreport.py:573 msgid "No plugin enabled." msgstr "" #: ../sos/sosreport.py:577 msgid "The following plugins are currently disabled:" msgstr "" #: ../sos/sosreport.py:585 msgid "The following plugin options are available:" msgstr "" #: ../sos/sosreport.py:606 msgid "No plugin options available." msgstr "" #: ../sos/sosreport.py:614 msgid "sosreport requires root permissions to run." msgstr "" #: ../sos/sosreport.py:621 msgid "no valid plugins were enabled" msgstr "" #: ../sos/sosreport.py:624 #, python-format msgid "" "This utility will collect some detailed information about the\n" "hardware and setup of your %(distroa)s system.\n" "The information is collected and an archive is packaged under\n" "/tmp, which you can send to a support representative.\n" "%(distrob)s will use this information for diagnostic purposes ONLY\n" "and it will be considered confidential information.\n" "\n" "This process may take a while to complete.\n" "No changes will be made to your system.\n" "\n" msgstr "" #: ../sos/sosreport.py:639 msgid "Press ENTER to continue, or CTRL-C to quit.\n" msgstr "" #: ../sos/sosreport.py:665 msgid "One or more plugins have detected a problem in your configuration." msgstr "" #: ../sos/sosreport.py:667 msgid "Please review the following messages:" msgstr "" #: ../sos/sosreport.py:683 msgid "Are you sure you would like to continue (y/n) ? " msgstr "" #: ../sos/sosreport.py:685 msgid "y" msgstr "" #: ../sos/sosreport.py:685 msgid "Y" msgstr "" #: ../sos/sosreport.py:688 msgid "n" msgstr "" #: ../sos/sosreport.py:688 msgid "N" msgstr "" #: ../sos/sosreport.py:713 msgid " Running plugins. Please wait ..." msgstr "" #: ../sos/sosreport.py:827 #, python-format msgid " sosreport build tree is located at : %s" msgstr "" #: ../sos/policyredhat.py:211 #, python-format msgid "Please enter your first initial and last name [%s]: " msgstr "" #: ../sos/policyredhat.py:214 msgid "Please enter the case number that you are generating this report for: " msgstr "" #: ../sos/policyredhat.py:254 msgid "Creating compressed archive..." msgstr "" #: ../sos/policyredhat.py:284 msgid "Encrypting archive..." msgstr "" #: ../sos/policyredhat.py:304 msgid "There was a problem encrypting your report." msgstr "" #: ../sos/policyredhat.py:328 #, python-format msgid "" "Your sosreport has been generated and saved in:\n" " %s" msgstr "" #: ../sos/policyredhat.py:331 msgid "The md5sum is: " msgstr "" #: ../sos/policyredhat.py:333 msgid "Please send this file to your support representative." msgstr "" #: ../sos/policyredhat.py:355 msgid "No URL defined in config file." msgstr "" #: ../sos/policyredhat.py:362 msgid "Cannot upload to specified URL." msgstr "" #: ../sos/policyredhat.py:399 msgid "There was a problem uploading your report to Red Hat support." msgstr "" #: ../sos/policyredhat.py:401 #, python-format msgid "Your report was successfully uploaded to %s with name:" msgstr "" #: ../sos/policyredhat.py:404 msgid "Please communicate this name to your support representative." msgstr "" sosreport/po/sos.pot0000644000175000017500000001012212254061770013216 0ustar zefzef# SOME DESCRIPTIVE TITLE. # Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER # This file is distributed under the same license as the PACKAGE package. # FIRST AUTHOR , YEAR. # #, fuzzy msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-11-15 15:02+0000\n" "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" "Last-Translator: FULL NAME \n" "Language-Team: LANGUAGE \n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=CHARSET\n" "Content-Transfer-Encoding: 8bit\n" #: ../sos/sosreport.py:350 msgid "Could not create temporary directory." msgstr "" #: ../sos/sosreport.py:413 #, python-format msgid "sosreport (version %s)" msgstr "" #: ../sos/sosreport.py:438 #, python-format msgid "plugin %s does not validate, skipping" msgstr "" #: ../sos/sosreport.py:467 #, python-format msgid "plugin %s does not install, skipping" msgstr "" #: ../sos/sosreport.py:563 msgid "no valid plugins found" msgstr "" #: ../sos/sosreport.py:567 msgid "The following plugins are currently enabled:" msgstr "" #: ../sos/sosreport.py:573 msgid "No plugin enabled." msgstr "" #: ../sos/sosreport.py:577 msgid "The following plugins are currently disabled:" msgstr "" #: ../sos/sosreport.py:585 msgid "The following plugin options are available:" msgstr "" #: ../sos/sosreport.py:606 msgid "No plugin options available." msgstr "" #: ../sos/sosreport.py:614 msgid "sosreport requires root permissions to run." msgstr "" #: ../sos/sosreport.py:621 msgid "no valid plugins were enabled" msgstr "" #: ../sos/sosreport.py:624 #, python-format msgid "" "This utility will collect some detailed information about the\n" "hardware and setup of your %(distroa)s system.\n" "The information is collected and an archive is packaged under\n" "/tmp, which you can send to a support representative.\n" "%(distrob)s will use this information for diagnostic purposes ONLY\n" "and it will be considered confidential information.\n" "\n" "This process may take a while to complete.\n" "No changes will be made to your system.\n" "\n" msgstr "" #: ../sos/sosreport.py:639 msgid "Press ENTER to continue, or CTRL-C to quit.\n" msgstr "" #: ../sos/sosreport.py:665 msgid "One or more plugins have detected a problem in your configuration." msgstr "" #: ../sos/sosreport.py:667 msgid "Please review the following messages:" msgstr "" #: ../sos/sosreport.py:683 msgid "Are you sure you would like to continue (y/n) ? " msgstr "" #: ../sos/sosreport.py:685 msgid "y" msgstr "" #: ../sos/sosreport.py:685 msgid "Y" msgstr "" #: ../sos/sosreport.py:688 msgid "n" msgstr "" #: ../sos/sosreport.py:688 msgid "N" msgstr "" #: ../sos/sosreport.py:713 msgid " Running plugins. Please wait ..." msgstr "" #: ../sos/sosreport.py:827 #, python-format msgid " sosreport build tree is located at : %s" msgstr "" #: ../sos/policyredhat.py:211 #, python-format msgid "Please enter your first initial and last name [%s]: " msgstr "" #: ../sos/policyredhat.py:214 msgid "Please enter the case number that you are generating this report for: " msgstr "" #: ../sos/policyredhat.py:254 msgid "Creating compressed archive..." msgstr "" #: ../sos/policyredhat.py:284 msgid "Encrypting archive..." msgstr "" #: ../sos/policyredhat.py:304 msgid "There was a problem encrypting your report." msgstr "" #: ../sos/policyredhat.py:328 #, python-format msgid "" "Your sosreport has been generated and saved in:\n" " %s" msgstr "" #: ../sos/policyredhat.py:331 msgid "The md5sum is: " msgstr "" #: ../sos/policyredhat.py:333 msgid "Please send this file to your support representative." msgstr "" #: ../sos/policyredhat.py:355 msgid "No URL defined in config file." msgstr "" #: ../sos/policyredhat.py:362 msgid "Cannot upload to specified URL." msgstr "" #: ../sos/policyredhat.py:399 msgid "There was a problem uploading your report to Red Hat support." msgstr "" #: ../sos/policyredhat.py:401 #, python-format msgid "Your report was successfully uploaded to %s with name:" msgstr "" #: ../sos/policyredhat.py:404 msgid "Please communicate this name to your support representative." msgstr "" sosreport/po/is.po0000644000175000017500000001000612254061770012642 0ustar zefzef# Icelandic translations for PACKAGE package. # Copyright (C) 2007 ORGANIZATION # Automatically generated, 2007. # msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-11-15 15:02+0000\n" "PO-Revision-Date: 2007-10-24 08:45\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: pygettext.py 1.5\n" #: ../sos/sosreport.py:350 msgid "Could not create temporary directory." msgstr "" #: ../sos/sosreport.py:413 #, python-format msgid "sosreport (version %s)" msgstr "" #: ../sos/sosreport.py:438 #, python-format msgid "plugin %s does not validate, skipping" msgstr "" #: ../sos/sosreport.py:467 #, python-format msgid "plugin %s does not install, skipping" msgstr "" #: ../sos/sosreport.py:563 msgid "no valid plugins found" msgstr "" #: ../sos/sosreport.py:567 msgid "The following plugins are currently enabled:" msgstr "" #: ../sos/sosreport.py:573 msgid "No plugin enabled." msgstr "" #: ../sos/sosreport.py:577 msgid "The following plugins are currently disabled:" msgstr "" #: ../sos/sosreport.py:585 msgid "The following plugin options are available:" msgstr "" #: ../sos/sosreport.py:606 msgid "No plugin options available." msgstr "" #: ../sos/sosreport.py:614 msgid "sosreport requires root permissions to run." msgstr "" #: ../sos/sosreport.py:621 msgid "no valid plugins were enabled" msgstr "" #: ../sos/sosreport.py:624 #, python-format msgid "" "This utility will collect some detailed information about the\n" "hardware and setup of your %(distroa)s system.\n" "The information is collected and an archive is packaged under\n" "/tmp, which you can send to a support representative.\n" "%(distrob)s will use this information for diagnostic purposes ONLY\n" "and it will be considered confidential information.\n" "\n" "This process may take a while to complete.\n" "No changes will be made to your system.\n" "\n" msgstr "" #: ../sos/sosreport.py:639 msgid "Press ENTER to continue, or CTRL-C to quit.\n" msgstr "" #: ../sos/sosreport.py:665 msgid "One or more plugins have detected a problem in your configuration." msgstr "" #: ../sos/sosreport.py:667 msgid "Please review the following messages:" msgstr "" #: ../sos/sosreport.py:683 msgid "Are you sure you would like to continue (y/n) ? " msgstr "" #: ../sos/sosreport.py:685 msgid "y" msgstr "" #: ../sos/sosreport.py:685 msgid "Y" msgstr "" #: ../sos/sosreport.py:688 msgid "n" msgstr "" #: ../sos/sosreport.py:688 msgid "N" msgstr "" #: ../sos/sosreport.py:713 msgid " Running plugins. Please wait ..." msgstr "" #: ../sos/sosreport.py:827 #, python-format msgid " sosreport build tree is located at : %s" msgstr "" #: ../sos/policyredhat.py:211 #, python-format msgid "Please enter your first initial and last name [%s]: " msgstr "" #: ../sos/policyredhat.py:214 msgid "Please enter the case number that you are generating this report for: " msgstr "" #: ../sos/policyredhat.py:254 msgid "Creating compressed archive..." msgstr "" #: ../sos/policyredhat.py:284 msgid "Encrypting archive..." msgstr "" #: ../sos/policyredhat.py:304 msgid "There was a problem encrypting your report." msgstr "" #: ../sos/policyredhat.py:328 #, python-format msgid "" "Your sosreport has been generated and saved in:\n" " %s" msgstr "" #: ../sos/policyredhat.py:331 msgid "The md5sum is: " msgstr "" #: ../sos/policyredhat.py:333 msgid "Please send this file to your support representative." msgstr "" #: ../sos/policyredhat.py:355 msgid "No URL defined in config file." msgstr "" #: ../sos/policyredhat.py:362 msgid "Cannot upload to specified URL." msgstr "" #: ../sos/policyredhat.py:399 msgid "There was a problem uploading your report to Red Hat support." msgstr "" #: ../sos/policyredhat.py:401 #, python-format msgid "Your report was successfully uploaded to %s with name:" msgstr "" #: ../sos/policyredhat.py:404 msgid "Please communicate this name to your support representative." msgstr "" sosreport/po/as.po0000644000175000017500000002236112254061770012641 0ustar zefzef# translation of sos.trunk.as.po to Assamese # Assamese translations for PACKAGE package. # Copyright (C) 2007 ORGANIZATION # # Automatically generated, 2007. # Amitakhya Phukan , 2009. msgid "" msgstr "" "Project-Id-Version: sos.trunk.as\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-11-15 15:02+0000\n" "PO-Revision-Date: 2009-09-08 19:15+0530\n" "Last-Translator: Amitakhya Phukan \n" "Language-Team: Assamese\n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: pygettext.py 1.5\n" "X-Generator: KBabel 1.11.4\n" "Plural-Forms: nplurals=2; plural=n != 1;\n" #: ../sos/sosreport.py:350 msgid "Could not create temporary directory." msgstr "অস্থাতী পঞ্জিকা নিৰ্মাণ কৰিবলৈ ব্যৰ্থ ।" #: ../sos/sosreport.py:413 #, python-format msgid "sosreport (version %s)" msgstr "sosreport (সংস্কৰণ %s)" #: ../sos/sosreport.py:438 #, python-format msgid "plugin %s does not validate, skipping" msgstr "প্লাগ-ইন %s অনুমোদন কৰা নাযায়, উপেক্ষা কৰা হৈছে" #: ../sos/sosreport.py:467 #, python-format msgid "plugin %s does not install, skipping" msgstr "প্লাগ-ইন %s ইনস্টল কৰা নাযায়, উপেক্ষা কৰা হৈছে " #: ../sos/sosreport.py:563 msgid "no valid plugins found" msgstr "কোনো বৈধ প্লাগ-ইন পোৱা নাযায়" #: ../sos/sosreport.py:567 msgid "The following plugins are currently enabled:" msgstr "নিম্নলিখিত প্লাগ-ইনসমূহ বৰ্তমানে সক্ৰিয় কৰা হৈছে:" #: ../sos/sosreport.py:573 msgid "No plugin enabled." msgstr "কোনো প্লাগ-ইন সক্ৰিয় নাই ।" #: ../sos/sosreport.py:577 msgid "The following plugins are currently disabled:" msgstr "নিম্নলিখিত প্লাগ-ইনসমূহ বৰ্তমানে নিষ্ক্ৰিয় অৱস্থাত আছে:" #: ../sos/sosreport.py:585 msgid "The following plugin options are available:" msgstr "প্লাগ-ইন সংক্ৰান্ত নিম্নলিখিত বিকল্পসমূহ উপলব্ধ আছে:" #: ../sos/sosreport.py:606 msgid "No plugin options available." msgstr "প্লাগ-ইন সংক্ৰান্ত কোনো বিকল্প উপলব্ধ নহয় ।" #: ../sos/sosreport.py:614 msgid "sosreport requires root permissions to run." msgstr "sosreport সঞ্চালনৰ বাবে root ব্যৱহাৰকাৰীৰ অনুমতি আৱশ্যক ।" #: ../sos/sosreport.py:621 msgid "no valid plugins were enabled" msgstr "কোনো বৈধ প্লাগ-ইন সক্ৰিয় কৰা নহয়" #: ../sos/sosreport.py:624 #, fuzzy, python-format msgid "" "This utility will collect some detailed information about the\n" "hardware and setup of your %(distroa)s system.\n" "The information is collected and an archive is packaged under\n" "/tmp, which you can send to a support representative.\n" "%(distrob)s will use this information for diagnostic purposes ONLY\n" "and it will be considered confidential information.\n" "\n" "This process may take a while to complete.\n" "No changes will be made to your system.\n" "\n" msgstr "" "এই সামগ্ৰীৰ সহায়ত যান্ত্ৰিক সামগ্ৰী আৰু Red Hat Enterprise Linux\n" "প্ৰণালীৰ প্ৰতিষ্ঠা সম্পৰ্কে বিশদ তথ্য সংগ্ৰহ কৰা হ'ব ।\n" "তথ্য সংগ্ৰহৰ পিছত /tmp পঞ্জিকাৰ অধীন এটা আৰ্কাইভ নিৰ্মিত হয় ।\n" "এই আৰ্কাইভ আপুনি সহায়তা প্ৰতিনিধিৰ কাশত পঠায় দিব পাৰে ।\n" "Red Hat দ্বাৰা এই তথ্য অকল সমস্যাৰ কাৰণ নিৰ্ণয় কৰাৰ বাবে ব্যৱহাৰ কৰা হ'ব\n" "আৰু ইয়াৰ গোপনীয়তা বজায় ৰাখা হ'ব ।\n" "\n" "এই কাম সম্পন্ন হ'বলৈ কিছু সময় ব্যয় হ'ব পাৰে ।\n" "ইয়াৰ ফলত প্ৰণালীত কোনো ধৰনৰ পৰিবৰ্তন কৰা ন'হ'ব ।\n" "\n" #: ../sos/sosreport.py:639 msgid "Press ENTER to continue, or CTRL-C to quit.\n" msgstr "আগবঢ়াৰ বাবে ENTER টিপক বা প্ৰস্থান কৰিবলৈ CTRL-C টিপক ।\n" #: ../sos/sosreport.py:665 msgid "One or more plugins have detected a problem in your configuration." msgstr "একাধিক প্লাগ-ইন দ্বাৰা আপোনাৰ বিন্যাসত সমস্যা চিনাক্ত কৰা হৈছে ।" #: ../sos/sosreport.py:667 msgid "Please review the following messages:" msgstr "অনুগ্ৰহ কৰি নিম্নলিখিত বাৰ্তাসমূহ পৰিদৰ্শন কৰক:" #: ../sos/sosreport.py:683 msgid "Are you sure you would like to continue (y/n) ? " msgstr "আপুনি নিশ্চিতৰূপে আগবাঢ়িবলৈ ইচ্ছুক নে (y/n) ? " #: ../sos/sosreport.py:685 msgid "y" msgstr "y" #: ../sos/sosreport.py:685 msgid "Y" msgstr "Y" #: ../sos/sosreport.py:688 msgid "n" msgstr "n" #: ../sos/sosreport.py:688 msgid "N" msgstr "N" #: ../sos/sosreport.py:713 msgid " Running plugins. Please wait ..." msgstr "" #: ../sos/sosreport.py:827 #, python-format msgid " sosreport build tree is located at : %s" msgstr "" #: ../sos/policyredhat.py:211 #, python-format msgid "Please enter your first initial and last name [%s]: " msgstr "অনুগ্ৰহ কৰি নামৰ অদ্যাক্ষৰ আৰু পদবি লিখক [%s]: " #: ../sos/policyredhat.py:214 msgid "Please enter the case number that you are generating this report for: " msgstr "বৰ্তমান ৰিপোৰ্ট নিৰ্মাণৰ বাবে অনুগ্ৰহ কৰি প্ৰযোজ্য কেছ সংখ্যা উল্লেখ কৰক: " #: ../sos/policyredhat.py:254 msgid "Creating compressed archive..." msgstr "কমপ্ৰেছ কৰা আৰ্কাইভ নিৰ্মাণ কৰক..." #: ../sos/policyredhat.py:284 msgid "Encrypting archive..." msgstr "আৰ্কাইভ এনক্ৰিপ্ট কৰা হৈছে..." #: ../sos/policyredhat.py:304 msgid "There was a problem encrypting your report." msgstr "ৰিপোৰ্ট এনক্ৰিপ্ট কৰিবলৈ সমস্যা ।" #: ../sos/policyredhat.py:328 #, python-format msgid "" "Your sosreport has been generated and saved in:\n" " %s" msgstr "" "আপোনাৰ sosreport নিৰ্মাণ কৰি নিম্নলিখিত স্থানত সংৰক্ষিত হৈছে:\n" " %s" #: ../sos/policyredhat.py:331 msgid "The md5sum is: " msgstr "md5sum হ'ল: " #: ../sos/policyredhat.py:333 msgid "Please send this file to your support representative." msgstr "অনুগ্ৰহ কৰি সহায়তা প্ৰতিনিধিক এই নথিপত্ৰটি পঠায় দিয়ক ।" #: ../sos/policyredhat.py:355 msgid "No URL defined in config file." msgstr "" #: ../sos/policyredhat.py:362 msgid "Cannot upload to specified URL." msgstr "উল্লিখিত URL-এ আপলোড কৰিবলৈ ব্যৰ্থ ।" #: ../sos/policyredhat.py:399 msgid "There was a problem uploading your report to Red Hat support." msgstr "আপোনাৰ ৰিপোৰ্টটি Red Hat সহায়তা ব্যৱস্থাত আপলোড কৰিবলৈ সমস্যা ।" #: ../sos/policyredhat.py:401 #, fuzzy, python-format msgid "Your report was successfully uploaded to %s with name:" msgstr "" "আপোনাৰ প্ৰদত্ত ৰিপোৰ্ট সফলতাৰে সৈতে Red Hat-ৰ ftp সেৱকত নিম্নলিখিত নামত আপলোড " "কৰা হৈছে:" #: ../sos/policyredhat.py:404 msgid "Please communicate this name to your support representative." msgstr "অনুগ্ৰহ কৰি সহায়তা প্ৰতিনিধিক এই নাম জনায় দিয়ক ।" #~ msgid "plugin %s skipped (--skip-plugins)" #~ msgstr "প্লাগ-ইন %s উপেক্ষা কৰা হৈছে (--skip-plugins)" #~ msgid "plugin %s is inactive (use -e or -o to enable)." #~ msgstr "প্লাগ-ইন %s সক্ৰিয় নহয় (সক্ৰিয় কৰাৰ বাবে -e বা -o ব্যৱহাৰ কৰক) ।" #~ msgid "plugin %s not specified in --only-plugins list" #~ msgstr "--only-plugins তালিকাত প্লাগ-ইন %s উল্লিখিত নহয়" #~ msgid "processing options from plugin: %s" #~ msgstr "প্লাগ-ইনৰ পৰা বিকল্প প্ৰক্ৰিয়াকৰণ হৈছে: %s" sosreport/po/fa.po0000644000175000017500000001000412254061770012613 0ustar zefzef# Persian translations for PACKAGE package. # Copyright (C) 2007 ORGANIZATION # Automatically generated, 2007. # msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-11-15 15:02+0000\n" "PO-Revision-Date: 2007-10-24 08:45\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: pygettext.py 1.5\n" #: ../sos/sosreport.py:350 msgid "Could not create temporary directory." msgstr "" #: ../sos/sosreport.py:413 #, python-format msgid "sosreport (version %s)" msgstr "" #: ../sos/sosreport.py:438 #, python-format msgid "plugin %s does not validate, skipping" msgstr "" #: ../sos/sosreport.py:467 #, python-format msgid "plugin %s does not install, skipping" msgstr "" #: ../sos/sosreport.py:563 msgid "no valid plugins found" msgstr "" #: ../sos/sosreport.py:567 msgid "The following plugins are currently enabled:" msgstr "" #: ../sos/sosreport.py:573 msgid "No plugin enabled." msgstr "" #: ../sos/sosreport.py:577 msgid "The following plugins are currently disabled:" msgstr "" #: ../sos/sosreport.py:585 msgid "The following plugin options are available:" msgstr "" #: ../sos/sosreport.py:606 msgid "No plugin options available." msgstr "" #: ../sos/sosreport.py:614 msgid "sosreport requires root permissions to run." msgstr "" #: ../sos/sosreport.py:621 msgid "no valid plugins were enabled" msgstr "" #: ../sos/sosreport.py:624 #, python-format msgid "" "This utility will collect some detailed information about the\n" "hardware and setup of your %(distroa)s system.\n" "The information is collected and an archive is packaged under\n" "/tmp, which you can send to a support representative.\n" "%(distrob)s will use this information for diagnostic purposes ONLY\n" "and it will be considered confidential information.\n" "\n" "This process may take a while to complete.\n" "No changes will be made to your system.\n" "\n" msgstr "" #: ../sos/sosreport.py:639 msgid "Press ENTER to continue, or CTRL-C to quit.\n" msgstr "" #: ../sos/sosreport.py:665 msgid "One or more plugins have detected a problem in your configuration." msgstr "" #: ../sos/sosreport.py:667 msgid "Please review the following messages:" msgstr "" #: ../sos/sosreport.py:683 msgid "Are you sure you would like to continue (y/n) ? " msgstr "" #: ../sos/sosreport.py:685 msgid "y" msgstr "" #: ../sos/sosreport.py:685 msgid "Y" msgstr "" #: ../sos/sosreport.py:688 msgid "n" msgstr "" #: ../sos/sosreport.py:688 msgid "N" msgstr "" #: ../sos/sosreport.py:713 msgid " Running plugins. Please wait ..." msgstr "" #: ../sos/sosreport.py:827 #, python-format msgid " sosreport build tree is located at : %s" msgstr "" #: ../sos/policyredhat.py:211 #, python-format msgid "Please enter your first initial and last name [%s]: " msgstr "" #: ../sos/policyredhat.py:214 msgid "Please enter the case number that you are generating this report for: " msgstr "" #: ../sos/policyredhat.py:254 msgid "Creating compressed archive..." msgstr "" #: ../sos/policyredhat.py:284 msgid "Encrypting archive..." msgstr "" #: ../sos/policyredhat.py:304 msgid "There was a problem encrypting your report." msgstr "" #: ../sos/policyredhat.py:328 #, python-format msgid "" "Your sosreport has been generated and saved in:\n" " %s" msgstr "" #: ../sos/policyredhat.py:331 msgid "The md5sum is: " msgstr "" #: ../sos/policyredhat.py:333 msgid "Please send this file to your support representative." msgstr "" #: ../sos/policyredhat.py:355 msgid "No URL defined in config file." msgstr "" #: ../sos/policyredhat.py:362 msgid "Cannot upload to specified URL." msgstr "" #: ../sos/policyredhat.py:399 msgid "There was a problem uploading your report to Red Hat support." msgstr "" #: ../sos/policyredhat.py:401 #, python-format msgid "Your report was successfully uploaded to %s with name:" msgstr "" #: ../sos/policyredhat.py:404 msgid "Please communicate this name to your support representative." msgstr "" sosreport/po/be.po0000644000175000017500000001000712254061770012616 0ustar zefzef# Belarusian translations for PACKAGE package. # Copyright (C) 2007 ORGANIZATION # Automatically generated, 2007. # msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-11-15 15:02+0000\n" "PO-Revision-Date: 2007-10-24 08:45\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: pygettext.py 1.5\n" #: ../sos/sosreport.py:350 msgid "Could not create temporary directory." msgstr "" #: ../sos/sosreport.py:413 #, python-format msgid "sosreport (version %s)" msgstr "" #: ../sos/sosreport.py:438 #, python-format msgid "plugin %s does not validate, skipping" msgstr "" #: ../sos/sosreport.py:467 #, python-format msgid "plugin %s does not install, skipping" msgstr "" #: ../sos/sosreport.py:563 msgid "no valid plugins found" msgstr "" #: ../sos/sosreport.py:567 msgid "The following plugins are currently enabled:" msgstr "" #: ../sos/sosreport.py:573 msgid "No plugin enabled." msgstr "" #: ../sos/sosreport.py:577 msgid "The following plugins are currently disabled:" msgstr "" #: ../sos/sosreport.py:585 msgid "The following plugin options are available:" msgstr "" #: ../sos/sosreport.py:606 msgid "No plugin options available." msgstr "" #: ../sos/sosreport.py:614 msgid "sosreport requires root permissions to run." msgstr "" #: ../sos/sosreport.py:621 msgid "no valid plugins were enabled" msgstr "" #: ../sos/sosreport.py:624 #, python-format msgid "" "This utility will collect some detailed information about the\n" "hardware and setup of your %(distroa)s system.\n" "The information is collected and an archive is packaged under\n" "/tmp, which you can send to a support representative.\n" "%(distrob)s will use this information for diagnostic purposes ONLY\n" "and it will be considered confidential information.\n" "\n" "This process may take a while to complete.\n" "No changes will be made to your system.\n" "\n" msgstr "" #: ../sos/sosreport.py:639 msgid "Press ENTER to continue, or CTRL-C to quit.\n" msgstr "" #: ../sos/sosreport.py:665 msgid "One or more plugins have detected a problem in your configuration." msgstr "" #: ../sos/sosreport.py:667 msgid "Please review the following messages:" msgstr "" #: ../sos/sosreport.py:683 msgid "Are you sure you would like to continue (y/n) ? " msgstr "" #: ../sos/sosreport.py:685 msgid "y" msgstr "" #: ../sos/sosreport.py:685 msgid "Y" msgstr "" #: ../sos/sosreport.py:688 msgid "n" msgstr "" #: ../sos/sosreport.py:688 msgid "N" msgstr "" #: ../sos/sosreport.py:713 msgid " Running plugins. Please wait ..." msgstr "" #: ../sos/sosreport.py:827 #, python-format msgid " sosreport build tree is located at : %s" msgstr "" #: ../sos/policyredhat.py:211 #, python-format msgid "Please enter your first initial and last name [%s]: " msgstr "" #: ../sos/policyredhat.py:214 msgid "Please enter the case number that you are generating this report for: " msgstr "" #: ../sos/policyredhat.py:254 msgid "Creating compressed archive..." msgstr "" #: ../sos/policyredhat.py:284 msgid "Encrypting archive..." msgstr "" #: ../sos/policyredhat.py:304 msgid "There was a problem encrypting your report." msgstr "" #: ../sos/policyredhat.py:328 #, python-format msgid "" "Your sosreport has been generated and saved in:\n" " %s" msgstr "" #: ../sos/policyredhat.py:331 msgid "The md5sum is: " msgstr "" #: ../sos/policyredhat.py:333 msgid "Please send this file to your support representative." msgstr "" #: ../sos/policyredhat.py:355 msgid "No URL defined in config file." msgstr "" #: ../sos/policyredhat.py:362 msgid "Cannot upload to specified URL." msgstr "" #: ../sos/policyredhat.py:399 msgid "There was a problem uploading your report to Red Hat support." msgstr "" #: ../sos/policyredhat.py:401 #, python-format msgid "Your report was successfully uploaded to %s with name:" msgstr "" #: ../sos/policyredhat.py:404 msgid "Please communicate this name to your support representative." msgstr "" sosreport/po/ka.po0000644000175000017500000001000512254061770012621 0ustar zefzef# Georgian translations for PACKAGE package. # Copyright (C) 2007 ORGANIZATION # Automatically generated, 2007. # msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-11-15 15:02+0000\n" "PO-Revision-Date: 2007-10-24 08:45\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: pygettext.py 1.5\n" #: ../sos/sosreport.py:350 msgid "Could not create temporary directory." msgstr "" #: ../sos/sosreport.py:413 #, python-format msgid "sosreport (version %s)" msgstr "" #: ../sos/sosreport.py:438 #, python-format msgid "plugin %s does not validate, skipping" msgstr "" #: ../sos/sosreport.py:467 #, python-format msgid "plugin %s does not install, skipping" msgstr "" #: ../sos/sosreport.py:563 msgid "no valid plugins found" msgstr "" #: ../sos/sosreport.py:567 msgid "The following plugins are currently enabled:" msgstr "" #: ../sos/sosreport.py:573 msgid "No plugin enabled." msgstr "" #: ../sos/sosreport.py:577 msgid "The following plugins are currently disabled:" msgstr "" #: ../sos/sosreport.py:585 msgid "The following plugin options are available:" msgstr "" #: ../sos/sosreport.py:606 msgid "No plugin options available." msgstr "" #: ../sos/sosreport.py:614 msgid "sosreport requires root permissions to run." msgstr "" #: ../sos/sosreport.py:621 msgid "no valid plugins were enabled" msgstr "" #: ../sos/sosreport.py:624 #, python-format msgid "" "This utility will collect some detailed information about the\n" "hardware and setup of your %(distroa)s system.\n" "The information is collected and an archive is packaged under\n" "/tmp, which you can send to a support representative.\n" "%(distrob)s will use this information for diagnostic purposes ONLY\n" "and it will be considered confidential information.\n" "\n" "This process may take a while to complete.\n" "No changes will be made to your system.\n" "\n" msgstr "" #: ../sos/sosreport.py:639 msgid "Press ENTER to continue, or CTRL-C to quit.\n" msgstr "" #: ../sos/sosreport.py:665 msgid "One or more plugins have detected a problem in your configuration." msgstr "" #: ../sos/sosreport.py:667 msgid "Please review the following messages:" msgstr "" #: ../sos/sosreport.py:683 msgid "Are you sure you would like to continue (y/n) ? " msgstr "" #: ../sos/sosreport.py:685 msgid "y" msgstr "" #: ../sos/sosreport.py:685 msgid "Y" msgstr "" #: ../sos/sosreport.py:688 msgid "n" msgstr "" #: ../sos/sosreport.py:688 msgid "N" msgstr "" #: ../sos/sosreport.py:713 msgid " Running plugins. Please wait ..." msgstr "" #: ../sos/sosreport.py:827 #, python-format msgid " sosreport build tree is located at : %s" msgstr "" #: ../sos/policyredhat.py:211 #, python-format msgid "Please enter your first initial and last name [%s]: " msgstr "" #: ../sos/policyredhat.py:214 msgid "Please enter the case number that you are generating this report for: " msgstr "" #: ../sos/policyredhat.py:254 msgid "Creating compressed archive..." msgstr "" #: ../sos/policyredhat.py:284 msgid "Encrypting archive..." msgstr "" #: ../sos/policyredhat.py:304 msgid "There was a problem encrypting your report." msgstr "" #: ../sos/policyredhat.py:328 #, python-format msgid "" "Your sosreport has been generated and saved in:\n" " %s" msgstr "" #: ../sos/policyredhat.py:331 msgid "The md5sum is: " msgstr "" #: ../sos/policyredhat.py:333 msgid "Please send this file to your support representative." msgstr "" #: ../sos/policyredhat.py:355 msgid "No URL defined in config file." msgstr "" #: ../sos/policyredhat.py:362 msgid "Cannot upload to specified URL." msgstr "" #: ../sos/policyredhat.py:399 msgid "There was a problem uploading your report to Red Hat support." msgstr "" #: ../sos/policyredhat.py:401 #, python-format msgid "Your report was successfully uploaded to %s with name:" msgstr "" #: ../sos/policyredhat.py:404 msgid "Please communicate this name to your support representative." msgstr "" sosreport/po/sk.po0000644000175000017500000001470712254061770012660 0ustar zefzef# Slovak translations for sos package. # Copyright (C) 2007 ORGANIZATION # # Ondrej Šulek , 2009, 2010. msgid "" msgstr "" "Project-Id-Version: \n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-11-15 15:02+0000\n" "PO-Revision-Date: 2010-04-15 17:38+0200\n" "Last-Translator: Ondrej Šulek \n" "Language-Team: Slovak \n" "Language: sk\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: pygettext.py 1.5\n" "Plural-Forms: nplurals=3; plural=(n==1) ? 0 : (n>=2 && n<=4) ? 1 : 2;\n" "X-Generator: Lokalize 1.0\n" #: ../sos/sosreport.py:350 msgid "Could not create temporary directory." msgstr "Nepodarilo sa vytvoriť dočasný adresár." #: ../sos/sosreport.py:413 #, python-format msgid "sosreport (version %s)" msgstr "sosreport (verzia %s)" #: ../sos/sosreport.py:438 #, python-format msgid "plugin %s does not validate, skipping" msgstr "nie je možné overiť modul %s, preskakujem" #: ../sos/sosreport.py:467 #, python-format msgid "plugin %s does not install, skipping" msgstr "nie je možné nainštalovať modul %s, preskakujem" #: ../sos/sosreport.py:563 msgid "no valid plugins found" msgstr "nenájdené žiadne platné moduly" #: ../sos/sosreport.py:567 msgid "The following plugins are currently enabled:" msgstr "Nasledujúce moduly sú aktuálne povolené:" #: ../sos/sosreport.py:573 msgid "No plugin enabled." msgstr "Žiadny modul nie je povolený." #: ../sos/sosreport.py:577 msgid "The following plugins are currently disabled:" msgstr "Nasledujúce moduly sú aktuálne zakázané:" #: ../sos/sosreport.py:585 msgid "The following plugin options are available:" msgstr "Nasledujúce možnosti modulov sú dostupné:" #: ../sos/sosreport.py:606 msgid "No plugin options available." msgstr "Nie sú dostupné žiadne možnosti modulov." #: ../sos/sosreport.py:614 msgid "sosreport requires root permissions to run." msgstr "sosreport vyžaduje root-ovský prístup" #: ../sos/sosreport.py:621 msgid "no valid plugins were enabled" msgstr "neboli povolené žiadne platné moduly" #: ../sos/sosreport.py:624 #, python-format msgid "" "This utility will collect some detailed information about the\n" "hardware and setup of your %(distroa)s system.\n" "The information is collected and an archive is packaged under\n" "/tmp, which you can send to a support representative.\n" "%(distrob)s will use this information for diagnostic purposes ONLY\n" "and it will be considered confidential information.\n" "\n" "This process may take a while to complete.\n" "No changes will be made to your system.\n" "\n" msgstr "" "Tento nástroj zhromažďuje podrobné informácie o\n" "hardvéry a nastavení systému %(distroa)s.\n" "Informácie sa zhromažďujú a archivujú v podobe balíčka \n" "v /tmp, odkiaľ ich môžete poslať zástupcovi technickej podpory.\n" "%(distrob)s bude používať tieto informácie LEN pre diagnostické\n" " účely a budú považované za dôverné.\n" "\n" "Tento proces môže chvíľu trvať.\n" "V systéme nebudú vykonané žiadne zmeny.\n" "\n" #: ../sos/sosreport.py:639 msgid "Press ENTER to continue, or CTRL-C to quit.\n" msgstr "Stlačte ENTER na pokračovanie, alebo CTRL-C na ukončenie.\n" #: ../sos/sosreport.py:665 msgid "One or more plugins have detected a problem in your configuration." msgstr "Jeden alebo viacero modulov má problémy s konfiguráciou." #: ../sos/sosreport.py:667 msgid "Please review the following messages:" msgstr "Prosím skontrolujte nasledujúce správy:" #: ../sos/sosreport.py:683 msgid "Are you sure you would like to continue (y/n) ? " msgstr "Naozaj chcete pokračovať (a/n) ? " #: ../sos/sosreport.py:685 msgid "y" msgstr "a" #: ../sos/sosreport.py:685 msgid "Y" msgstr "A" #: ../sos/sosreport.py:688 msgid "n" msgstr "n" #: ../sos/sosreport.py:688 msgid "N" msgstr "N" #: ../sos/sosreport.py:713 msgid " Running plugins. Please wait ..." msgstr " Moduly bežia. Prosím čakajte ..." #: ../sos/sosreport.py:827 #, python-format msgid " sosreport build tree is located at : %s" msgstr " strom pre vytvorenie sosreportu je umiestnený v : %s" #: ../sos/policyredhat.py:211 #, python-format msgid "Please enter your first initial and last name [%s]: " msgstr "Prosím zadajte svoje meno a priezvisko [%s]: " #: ../sos/policyredhat.py:214 msgid "Please enter the case number that you are generating this report for: " msgstr "Prosím zadajte číslo, pod ktorým vygenerovať túto správu: " #: ../sos/policyredhat.py:254 msgid "Creating compressed archive..." msgstr "Vytváranie komprimovaného archívu..." #: ../sos/policyredhat.py:284 msgid "Encrypting archive..." msgstr "Šifrovanie archívu..." #: ../sos/policyredhat.py:304 msgid "There was a problem encrypting your report." msgstr "Nastal problém pri šifrovaní vašej správy." #: ../sos/policyredhat.py:328 #, python-format msgid "" "Your sosreport has been generated and saved in:\n" " %s" msgstr "" "Váš sosreport bol vygenerovaný a uložený v :\n" " %s" #: ../sos/policyredhat.py:331 msgid "The md5sum is: " msgstr "Kontrolný súčet MD5: " #: ../sos/policyredhat.py:333 msgid "Please send this file to your support representative." msgstr "Prosím pošlite tento súbor zástupcovi technickej podpory." #: ../sos/policyredhat.py:355 msgid "No URL defined in config file." msgstr "Nezadaná žiadna URL adresa v konfiguračnom súbore." #: ../sos/policyredhat.py:362 msgid "Cannot upload to specified URL." msgstr "Nie je možné odoslať na zadanú adresu URL." #: ../sos/policyredhat.py:399 msgid "There was a problem uploading your report to Red Hat support." msgstr "Nastal problém pri odosielaní vašej správy na podporu Red Hat." #: ../sos/policyredhat.py:401 #, python-format msgid "Your report was successfully uploaded to %s with name:" msgstr "Vaša správa bola úspešne odoslaná na %s s názvom:" #: ../sos/policyredhat.py:404 msgid "Please communicate this name to your support representative." msgstr "Prosím kontaktujte zástupcu technickej podpory s týmto názvom." #~ msgid "plugin %s skipped (--skip-plugins)" #~ msgstr "modul %s preskočený (--skip-plugins)" #~ msgid "plugin %s is inactive (use -e or -o to enable)." #~ msgstr "modul %s je neaktívny (použite -e alebo -o na jeho povolenie)." #~ msgid "plugin %s not specified in --only-plugins list" #~ msgstr "modul %s nie je špecifikovaný v zozname --only-plugins" #~ msgid "processing options from plugin: %s" #~ msgstr "spracovávanie možností modulu: %s" sosreport/po/ms.po0000644000175000017500000001000212254061770012642 0ustar zefzef# Malay translations for PACKAGE package. # Copyright (C) 2007 ORGANIZATION # Automatically generated, 2007. # msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-11-15 15:02+0000\n" "PO-Revision-Date: 2007-10-24 08:45\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: pygettext.py 1.5\n" #: ../sos/sosreport.py:350 msgid "Could not create temporary directory." msgstr "" #: ../sos/sosreport.py:413 #, python-format msgid "sosreport (version %s)" msgstr "" #: ../sos/sosreport.py:438 #, python-format msgid "plugin %s does not validate, skipping" msgstr "" #: ../sos/sosreport.py:467 #, python-format msgid "plugin %s does not install, skipping" msgstr "" #: ../sos/sosreport.py:563 msgid "no valid plugins found" msgstr "" #: ../sos/sosreport.py:567 msgid "The following plugins are currently enabled:" msgstr "" #: ../sos/sosreport.py:573 msgid "No plugin enabled." msgstr "" #: ../sos/sosreport.py:577 msgid "The following plugins are currently disabled:" msgstr "" #: ../sos/sosreport.py:585 msgid "The following plugin options are available:" msgstr "" #: ../sos/sosreport.py:606 msgid "No plugin options available." msgstr "" #: ../sos/sosreport.py:614 msgid "sosreport requires root permissions to run." msgstr "" #: ../sos/sosreport.py:621 msgid "no valid plugins were enabled" msgstr "" #: ../sos/sosreport.py:624 #, python-format msgid "" "This utility will collect some detailed information about the\n" "hardware and setup of your %(distroa)s system.\n" "The information is collected and an archive is packaged under\n" "/tmp, which you can send to a support representative.\n" "%(distrob)s will use this information for diagnostic purposes ONLY\n" "and it will be considered confidential information.\n" "\n" "This process may take a while to complete.\n" "No changes will be made to your system.\n" "\n" msgstr "" #: ../sos/sosreport.py:639 msgid "Press ENTER to continue, or CTRL-C to quit.\n" msgstr "" #: ../sos/sosreport.py:665 msgid "One or more plugins have detected a problem in your configuration." msgstr "" #: ../sos/sosreport.py:667 msgid "Please review the following messages:" msgstr "" #: ../sos/sosreport.py:683 msgid "Are you sure you would like to continue (y/n) ? " msgstr "" #: ../sos/sosreport.py:685 msgid "y" msgstr "" #: ../sos/sosreport.py:685 msgid "Y" msgstr "" #: ../sos/sosreport.py:688 msgid "n" msgstr "" #: ../sos/sosreport.py:688 msgid "N" msgstr "" #: ../sos/sosreport.py:713 msgid " Running plugins. Please wait ..." msgstr "" #: ../sos/sosreport.py:827 #, python-format msgid " sosreport build tree is located at : %s" msgstr "" #: ../sos/policyredhat.py:211 #, python-format msgid "Please enter your first initial and last name [%s]: " msgstr "" #: ../sos/policyredhat.py:214 msgid "Please enter the case number that you are generating this report for: " msgstr "" #: ../sos/policyredhat.py:254 msgid "Creating compressed archive..." msgstr "" #: ../sos/policyredhat.py:284 msgid "Encrypting archive..." msgstr "" #: ../sos/policyredhat.py:304 msgid "There was a problem encrypting your report." msgstr "" #: ../sos/policyredhat.py:328 #, python-format msgid "" "Your sosreport has been generated and saved in:\n" " %s" msgstr "" #: ../sos/policyredhat.py:331 msgid "The md5sum is: " msgstr "" #: ../sos/policyredhat.py:333 msgid "Please send this file to your support representative." msgstr "" #: ../sos/policyredhat.py:355 msgid "No URL defined in config file." msgstr "" #: ../sos/policyredhat.py:362 msgid "Cannot upload to specified URL." msgstr "" #: ../sos/policyredhat.py:399 msgid "There was a problem uploading your report to Red Hat support." msgstr "" #: ../sos/policyredhat.py:401 #, python-format msgid "Your report was successfully uploaded to %s with name:" msgstr "" #: ../sos/policyredhat.py:404 msgid "Please communicate this name to your support representative." msgstr "" sosreport/po/lt.po0000644000175000017500000001017012254061770012650 0ustar zefzef# Lithuanian translations for PACKAGE package. # Copyright (C) 2007 ORGANIZATION # Automatically generated, 2007. # msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-11-15 15:02+0000\n" "PO-Revision-Date: 2007-10-24 08:45\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: pygettext.py 1.5\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && (n" "%100<10 || n%100>=20) ? 1 : 2);\n" #: ../sos/sosreport.py:350 msgid "Could not create temporary directory." msgstr "" #: ../sos/sosreport.py:413 #, python-format msgid "sosreport (version %s)" msgstr "" #: ../sos/sosreport.py:438 #, python-format msgid "plugin %s does not validate, skipping" msgstr "" #: ../sos/sosreport.py:467 #, python-format msgid "plugin %s does not install, skipping" msgstr "" #: ../sos/sosreport.py:563 msgid "no valid plugins found" msgstr "" #: ../sos/sosreport.py:567 msgid "The following plugins are currently enabled:" msgstr "" #: ../sos/sosreport.py:573 msgid "No plugin enabled." msgstr "" #: ../sos/sosreport.py:577 msgid "The following plugins are currently disabled:" msgstr "" #: ../sos/sosreport.py:585 msgid "The following plugin options are available:" msgstr "" #: ../sos/sosreport.py:606 msgid "No plugin options available." msgstr "" #: ../sos/sosreport.py:614 msgid "sosreport requires root permissions to run." msgstr "" #: ../sos/sosreport.py:621 msgid "no valid plugins were enabled" msgstr "" #: ../sos/sosreport.py:624 #, python-format msgid "" "This utility will collect some detailed information about the\n" "hardware and setup of your %(distroa)s system.\n" "The information is collected and an archive is packaged under\n" "/tmp, which you can send to a support representative.\n" "%(distrob)s will use this information for diagnostic purposes ONLY\n" "and it will be considered confidential information.\n" "\n" "This process may take a while to complete.\n" "No changes will be made to your system.\n" "\n" msgstr "" #: ../sos/sosreport.py:639 msgid "Press ENTER to continue, or CTRL-C to quit.\n" msgstr "" #: ../sos/sosreport.py:665 msgid "One or more plugins have detected a problem in your configuration." msgstr "" #: ../sos/sosreport.py:667 msgid "Please review the following messages:" msgstr "" #: ../sos/sosreport.py:683 msgid "Are you sure you would like to continue (y/n) ? " msgstr "" #: ../sos/sosreport.py:685 msgid "y" msgstr "" #: ../sos/sosreport.py:685 msgid "Y" msgstr "" #: ../sos/sosreport.py:688 msgid "n" msgstr "" #: ../sos/sosreport.py:688 msgid "N" msgstr "" #: ../sos/sosreport.py:713 msgid " Running plugins. Please wait ..." msgstr "" #: ../sos/sosreport.py:827 #, python-format msgid " sosreport build tree is located at : %s" msgstr "" #: ../sos/policyredhat.py:211 #, python-format msgid "Please enter your first initial and last name [%s]: " msgstr "" #: ../sos/policyredhat.py:214 msgid "Please enter the case number that you are generating this report for: " msgstr "" #: ../sos/policyredhat.py:254 msgid "Creating compressed archive..." msgstr "" #: ../sos/policyredhat.py:284 msgid "Encrypting archive..." msgstr "" #: ../sos/policyredhat.py:304 msgid "There was a problem encrypting your report." msgstr "" #: ../sos/policyredhat.py:328 #, python-format msgid "" "Your sosreport has been generated and saved in:\n" " %s" msgstr "" #: ../sos/policyredhat.py:331 msgid "The md5sum is: " msgstr "" #: ../sos/policyredhat.py:333 msgid "Please send this file to your support representative." msgstr "" #: ../sos/policyredhat.py:355 msgid "No URL defined in config file." msgstr "" #: ../sos/policyredhat.py:362 msgid "Cannot upload to specified URL." msgstr "" #: ../sos/policyredhat.py:399 msgid "There was a problem uploading your report to Red Hat support." msgstr "" #: ../sos/policyredhat.py:401 #, python-format msgid "Your report was successfully uploaded to %s with name:" msgstr "" #: ../sos/policyredhat.py:404 msgid "Please communicate this name to your support representative." msgstr "" sosreport/po/nds.po0000644000175000017500000001115412254061770013020 0ustar zefzef# translation of sos.trunk.po to # Low German translation of sos # This file is distributed under the same license as the sos package. # Copyright (C) 2007 Red hat, Inc. # # # Nils-Christoph Fiedler , 2010. msgid "" msgstr "" "Project-Id-Version: sos.trunk\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-11-15 15:02+0000\n" "PO-Revision-Date: 2010-12-05 10:16+0100\n" "Last-Translator: Nils-Christoph Fiedler \n" "Language-Team: Fedora Low German \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: nds\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Poedit-Language: Low German\n" "Generated-By: pygettext.py 1.5\n" "X-Generator: KBabel 1.11.4\n" #: ../sos/sosreport.py:350 msgid "Could not create temporary directory." msgstr "Künn keen twüschentiedliches Verteeknis erstellen." #: ../sos/sosreport.py:438 #, python-format msgid "plugin %s does not validate, skipping" msgstr "" #: ../sos/sosreport.py:467 #, python-format msgid "plugin %s does not install, skipping" msgstr "" #: ../sos/sosreport.py:563 msgid "no valid plugins found" msgstr "" #: ../sos/sosreport.py:567 msgid "The following plugins are currently enabled:" msgstr "" #: ../sos/sosreport.py:573 msgid "No plugin enabled." msgstr "Keen Plugin aktivert." #: ../sos/sosreport.py:577 msgid "The following plugins are currently disabled:" msgstr "" #: ../sos/sosreport.py:585 msgid "The following plugin options are available:" msgstr "" #: ../sos/sosreport.py:606 msgid "No plugin options available." msgstr "Keene Pluginoptschoonen verfögbar." #: ../sos/sosreport.py:614 msgid "sosreport requires root permissions to run." msgstr "" #: ../sos/sosreport.py:621 msgid "no valid plugins were enabled" msgstr "" #: ../sos/sosreport.py:624 #, python-format msgid "" "This utility will collect some detailed information about the\n" "hardware and setup of your %(distroa)s system.\n" "The information is collected and an archive is packaged under\n" "/tmp, which you can send to a support representative.\n" "%(distrob)s will use this information for diagnostic purposes ONLY\n" "and it will be considered confidential information.\n" "\n" "This process may take a while to complete.\n" "No changes will be made to your system.\n" "\n" msgstr "" #: ../sos/sosreport.py:639 msgid "Press ENTER to continue, or CTRL-C to quit.\n" msgstr "" #: ../sos/sosreport.py:665 msgid "One or more plugins have detected a problem in your configuration." msgstr "" #: ../sos/sosreport.py:667 msgid "Please review the following messages:" msgstr "" #: ../sos/sosreport.py:683 msgid "Are you sure you would like to continue (y/n) ? " msgstr "Wullt je seker wietermaken (y/n) ?" #: ../sos/sosreport.py:685 msgid "y" msgstr "y" #: ../sos/sosreport.py:685 msgid "Y" msgstr "Y" #: ../sos/sosreport.py:688 msgid "n" msgstr "n" #: ../sos/sosreport.py:688 msgid "N" msgstr "N" #: ../sos/sosreport.py:713 msgid " Running plugins. Please wait ..." msgstr " Plugins lööpen. Bidde töven ..." #: ../sos/sosreport.py:827 #, python-format msgid " sosreport build tree is located at : %s" msgstr "" #: ../sos/policyredhat.py:211 #, python-format msgid "Please enter your first initial and last name [%s]: " msgstr "" #: ../sos/policyredhat.py:214 msgid "Please enter the case number that you are generating this report for: " msgstr "" #: ../sos/policyredhat.py:284 msgid "Encrypting archive..." msgstr "Entslötel Archiv..." #: ../sos/policyredhat.py:304 msgid "There was a problem encrypting your report." msgstr "" #: ../sos/policyredhat.py:328 #, python-format msgid "" "Your sosreport has been generated and saved in:\n" " %s" msgstr "" #: ../sos/policyredhat.py:331 msgid "The md5sum is: " msgstr "De md5sum is:" #: ../sos/policyredhat.py:333 msgid "Please send this file to your support representative." msgstr "" #: ../sos/policyredhat.py:355 msgid "No URL defined in config file." msgstr "Keene URL in de config Dateil geven." #: ../sos/policyredhat.py:362 msgid "Cannot upload to specified URL." msgstr "" #: ../sos/policyredhat.py:399 msgid "There was a problem uploading your report to Red Hat support." msgstr "" #: ../sos/policyredhat.py:401 #, python-format msgid "Your report was successfully uploaded to %s with name:" msgstr "" #: ../sos/policyredhat.py:404 msgid "Please communicate this name to your support representative." msgstr "" #: ../sos/sosreport.py:413 #, python-format msgid "sosreport (version %s)" msgstr "sosreport (Verschoon %s)" #: ../sos/policyredhat.py:254 msgid "Creating compressed archive..." msgstr "Erstelle komprimertes Archiv..." sosreport/po/bg.po0000644000175000017500000001411712254061770012626 0ustar zefzef# Bulgarian translations for PACKAGE package. # Copyright (C) 2007 ORGANIZATION # Automatically generated, 2007. # msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-11-15 15:02+0000\n" "PO-Revision-Date: 2010-08-05 15:37+0100\n" "Last-Translator: Ivelin \n" "Language-Team: none\n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: pygettext.py 1.5\n" #: ../sos/sosreport.py:350 msgid "Could not create temporary directory." msgstr "Не може да се създаде временна директория." #: ../sos/sosreport.py:413 #, python-format msgid "sosreport (version %s)" msgstr "sosreport (версия %s)" #: ../sos/sosreport.py:438 #, python-format msgid "plugin %s does not validate, skipping" msgstr "плъгин %s не се валидира, прескачане" #: ../sos/sosreport.py:467 #, python-format msgid "plugin %s does not install, skipping" msgstr "плъгин %s не се инсталира, прескачане" #: ../sos/sosreport.py:563 msgid "no valid plugins found" msgstr "не са открити валидни плъгин-и." #: ../sos/sosreport.py:567 msgid "The following plugins are currently enabled:" msgstr "Следните плъгин-и са включени:" #: ../sos/sosreport.py:573 msgid "No plugin enabled." msgstr "Няма включен плъгин." #: ../sos/sosreport.py:577 msgid "The following plugins are currently disabled:" msgstr "Следните plugin-и са изключени:" #: ../sos/sosreport.py:585 msgid "The following plugin options are available:" msgstr "Следните plugin опции са налични:" #: ../sos/sosreport.py:606 msgid "No plugin options available." msgstr "Няма налични plugin опции." #: ../sos/sosreport.py:614 msgid "sosreport requires root permissions to run." msgstr "sosreport изисква root права за да стартира." #: ../sos/sosreport.py:621 msgid "no valid plugins were enabled" msgstr "няма включени валидни plugin-и" #: ../sos/sosreport.py:624 #, python-format msgid "" "This utility will collect some detailed information about the\n" "hardware and setup of your %(distroa)s system.\n" "The information is collected and an archive is packaged under\n" "/tmp, which you can send to a support representative.\n" "%(distrob)s will use this information for diagnostic purposes ONLY\n" "and it will be considered confidential information.\n" "\n" "This process may take a while to complete.\n" "No changes will be made to your system.\n" "\n" msgstr "" #: ../sos/sosreport.py:639 msgid "Press ENTER to continue, or CTRL-C to quit.\n" msgstr "Натиснете ENTER за да продължите или CTRL-C за изход.\n" #: ../sos/sosreport.py:665 msgid "One or more plugins have detected a problem in your configuration." msgstr "Един или повече plugin-и са открили проблем във вашата настройка." #: ../sos/sosreport.py:667 msgid "Please review the following messages:" msgstr "Моля прегледайте следните съобщения:" #: ../sos/sosreport.py:683 msgid "Are you sure you would like to continue (y/n) ? " msgstr "Сигурни ли сте, че искате да продължите (y/n) ?" #: ../sos/sosreport.py:685 msgid "y" msgstr "y" #: ../sos/sosreport.py:685 msgid "Y" msgstr "Y" #: ../sos/sosreport.py:688 msgid "n" msgstr "n" #: ../sos/sosreport.py:688 msgid "N" msgstr "N" #: ../sos/sosreport.py:713 msgid " Running plugins. Please wait ..." msgstr " Стартирване на plugin-и. Моля изчакайте ..." #: ../sos/sosreport.py:827 #, python-format msgid " sosreport build tree is located at : %s" msgstr " sosreport build tree се намира на : %s" #: ../sos/policyredhat.py:211 #, python-format msgid "Please enter your first initial and last name [%s]: " msgstr "" "Моля въведете инициал на първото си име и вашата фамилия (Пример: И Джантов) " "[%s]:" #: ../sos/policyredhat.py:214 msgid "Please enter the case number that you are generating this report for: " msgstr "" #: ../sos/policyredhat.py:254 msgid "Creating compressed archive..." msgstr "Създаване на компресиран архив..." #: ../sos/policyredhat.py:284 msgid "Encrypting archive..." msgstr "Кодиране на архива..." #: ../sos/policyredhat.py:304 msgid "There was a problem encrypting your report." msgstr "Възникна проблем при кодирането на вашия отчет." #: ../sos/policyredhat.py:328 #, python-format msgid "" "Your sosreport has been generated and saved in:\n" " %s" msgstr "" "Вашия sosreport бе генериран и запаметен в:\n" " %s" #: ../sos/policyredhat.py:331 msgid "The md5sum is: " msgstr "md5sum е:" #: ../sos/policyredhat.py:333 msgid "Please send this file to your support representative." msgstr "Моля изпратете този файл до представителя на вашата подръжка." #: ../sos/policyredhat.py:355 msgid "No URL defined in config file." msgstr "Няма зададен URL в конфигурационния файл." #: ../sos/policyredhat.py:362 msgid "Cannot upload to specified URL." msgstr "Не може да се качи на посочения URL" #: ../sos/policyredhat.py:399 msgid "There was a problem uploading your report to Red Hat support." msgstr "" "Възникна проблем при качването на вашия отчет на проддръжката на Red Hat." #: ../sos/policyredhat.py:401 #, python-format msgid "Your report was successfully uploaded to %s with name:" msgstr "Вашият отчет беше успешно качен на %s с име:" #: ../sos/policyredhat.py:404 msgid "Please communicate this name to your support representative." msgstr "Моля съобщете това име на представителя на вашата подръжка." sosreport/po/da.po0000644000175000017500000001504012254061770012616 0ustar zefzef# Danish translations for sos package. # Copyright (C) 2007-10 # Automatically generated, 2007. # Kris Thomsen , 2009, 2010. # msgid "" msgstr "" "Project-Id-Version: sos\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-11-15 15:02+0000\n" "PO-Revision-Date: 2010-03-12 13:39+0100\n" "Last-Translator: Kris Thomsen \n" "Language-Team: Danish 1);\n" "Generated-By: pygettext.py 1.5\n" #: ../sos/sosreport.py:350 msgid "Could not create temporary directory." msgstr "Kunne ikke oprette midlertidig mappe." #: ../sos/sosreport.py:413 #, python-format msgid "sosreport (version %s)" msgstr "sosreport (version %s)" #: ../sos/sosreport.py:438 #, python-format msgid "plugin %s does not validate, skipping" msgstr "udvidelsesmodulet %s validerer ikke, springer over" #: ../sos/sosreport.py:467 #, python-format msgid "plugin %s does not install, skipping" msgstr "udvidelsesmodulet %s installerer ikke, springer over" #: ../sos/sosreport.py:563 msgid "no valid plugins found" msgstr "ingen gyldige udvidelsesmoduler fundet" #: ../sos/sosreport.py:567 msgid "The following plugins are currently enabled:" msgstr "Følgende udvidelsesmoduler er aktiveret i øjeblikket:" #: ../sos/sosreport.py:573 msgid "No plugin enabled." msgstr "Ingen udvidelsesmoduler aktiveret." #: ../sos/sosreport.py:577 msgid "The following plugins are currently disabled:" msgstr "Følgende udvidelsesmoduler er deaktiveret i øjeblikket:" #: ../sos/sosreport.py:585 msgid "The following plugin options are available:" msgstr "Følgende indstillinger for udvidelsesmodul er tilgængelige:" #: ../sos/sosreport.py:606 msgid "No plugin options available." msgstr "Ingen indstillinger tilgængelige for udvidelsesmodul." #: ../sos/sosreport.py:614 msgid "sosreport requires root permissions to run." msgstr "sosreport behøver administratorrettigheder for at køre." #: ../sos/sosreport.py:621 msgid "no valid plugins were enabled" msgstr "ingen gyldige udvidelsesmoduler er aktiveret" #: ../sos/sosreport.py:624 #, python-format msgid "" "This utility will collect some detailed information about the\n" "hardware and setup of your %(distroa)s system.\n" "The information is collected and an archive is packaged under\n" "/tmp, which you can send to a support representative.\n" "%(distrob)s will use this information for diagnostic purposes ONLY\n" "and it will be considered confidential information.\n" "\n" "This process may take a while to complete.\n" "No changes will be made to your system.\n" "\n" msgstr "" "Dette hjælpeværktøj vil indsamle detaljeret information om\n" "hardwaren og din %(distroa)s systemopsætning\n" "Informationen er indsamlet og et arkiv er pakket under /tmp,\n" "som du kan sende til din supportrepræsentant.\n" "%(distrob)s vil KUN bruge denne information til diagnostiske\n" "formål, og det vil blive behandlet som fortrolig information.\n" "\n" "Denne proces kan tage et stykke tid at gennemføre.\n" "Ingen ændringer vil blive foretaget på dit system.\n" "\n" #: ../sos/sosreport.py:639 msgid "Press ENTER to continue, or CTRL-C to quit.\n" msgstr "Tryk ENTER for at fortsætte, eller CTRL-C for at afslutte.\n" #: ../sos/sosreport.py:665 msgid "One or more plugins have detected a problem in your configuration." msgstr "" "Èn eller flere udvidelsesmoduler har fundet et problem i din konfiguration." #: ../sos/sosreport.py:667 msgid "Please review the following messages:" msgstr "Gennemse venligst følgende beskeder:" #: ../sos/sosreport.py:683 msgid "Are you sure you would like to continue (y/n) ? " msgstr "Er du sikker på, at du vil fortsætte (j/n) ? " #: ../sos/sosreport.py:685 msgid "y" msgstr "j" #: ../sos/sosreport.py:685 msgid "Y" msgstr "J" #: ../sos/sosreport.py:688 msgid "n" msgstr "n" #: ../sos/sosreport.py:688 msgid "N" msgstr "N" #: ../sos/sosreport.py:713 msgid " Running plugins. Please wait ..." msgstr "Kører udvidelsesmoduler. Vent venligst ..." #: ../sos/sosreport.py:827 #, python-format msgid " sosreport build tree is located at : %s" msgstr "sosreport bygningstræ er placeret på : %s" #: ../sos/policyredhat.py:211 #, python-format msgid "Please enter your first initial and last name [%s]: " msgstr "Indtast venligst dit for- og efternavn [%s]: " #: ../sos/policyredhat.py:214 msgid "Please enter the case number that you are generating this report for: " msgstr "" "Indtast venligst nummeret på sagen, som du opretter denne rapport for: " #: ../sos/policyredhat.py:254 msgid "Creating compressed archive..." msgstr "Opretter komprimeret arkiv..." #: ../sos/policyredhat.py:284 msgid "Encrypting archive..." msgstr "Krypterer arkiv..." #: ../sos/policyredhat.py:304 msgid "There was a problem encrypting your report." msgstr "Der opstod et problem under kryptering af din rapport." #: ../sos/policyredhat.py:328 #, python-format msgid "" "Your sosreport has been generated and saved in:\n" " %s" msgstr "" "Din sosrapport er blevet oprettet og gemt i:\n" " %s" #: ../sos/policyredhat.py:331 msgid "The md5sum is: " msgstr "MD5summen er: " #: ../sos/policyredhat.py:333 msgid "Please send this file to your support representative." msgstr "Indsend venligst denne fil til din supportrepræsentant." #: ../sos/policyredhat.py:355 msgid "No URL defined in config file." msgstr "Ingen URL defineret i konfigurationsfil." #: ../sos/policyredhat.py:362 msgid "Cannot upload to specified URL." msgstr "Kan ikke overføre til den angivne URL." #: ../sos/policyredhat.py:399 msgid "There was a problem uploading your report to Red Hat support." msgstr "" "Der opstod et problem under overførsel af din rapport til Red Hat-support." #: ../sos/policyredhat.py:401 #, python-format msgid "Your report was successfully uploaded to %s with name:" msgstr "Din rapport er overført til %s med succes, under navnet:" #: ../sos/policyredhat.py:404 msgid "Please communicate this name to your support representative." msgstr "Giv venligst dit navn til din supportrepræsentant." #~ msgid "plugin %s skipped (--skip-plugins)" #~ msgstr "udvidelsesmodulet %s sprunget over (--skip-plugins)" #~ msgid "plugin %s is inactive (use -e or -o to enable)." #~ msgstr "" #~ "udvidelsesmodulet %s er inaktivt (brug -e eller -o for at aktivere)." #~ msgid "plugin %s not specified in --only-plugins list" #~ msgstr "udvidelsesmodulet %s er er ikke angivet i --only-plugins listen" #~ msgid "processing options from plugin: %s" #~ msgstr "bearbejder indstillinger fra udvidelsesmodul: %s" sosreport/po/my.po0000644000175000017500000001000412254061770012652 0ustar zefzef# Burmese translations for PACKAGE package. # Copyright (C) 2007 ORGANIZATION # Automatically generated, 2007. # msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-11-15 15:02+0000\n" "PO-Revision-Date: 2007-10-24 08:45\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: pygettext.py 1.5\n" #: ../sos/sosreport.py:350 msgid "Could not create temporary directory." msgstr "" #: ../sos/sosreport.py:413 #, python-format msgid "sosreport (version %s)" msgstr "" #: ../sos/sosreport.py:438 #, python-format msgid "plugin %s does not validate, skipping" msgstr "" #: ../sos/sosreport.py:467 #, python-format msgid "plugin %s does not install, skipping" msgstr "" #: ../sos/sosreport.py:563 msgid "no valid plugins found" msgstr "" #: ../sos/sosreport.py:567 msgid "The following plugins are currently enabled:" msgstr "" #: ../sos/sosreport.py:573 msgid "No plugin enabled." msgstr "" #: ../sos/sosreport.py:577 msgid "The following plugins are currently disabled:" msgstr "" #: ../sos/sosreport.py:585 msgid "The following plugin options are available:" msgstr "" #: ../sos/sosreport.py:606 msgid "No plugin options available." msgstr "" #: ../sos/sosreport.py:614 msgid "sosreport requires root permissions to run." msgstr "" #: ../sos/sosreport.py:621 msgid "no valid plugins were enabled" msgstr "" #: ../sos/sosreport.py:624 #, python-format msgid "" "This utility will collect some detailed information about the\n" "hardware and setup of your %(distroa)s system.\n" "The information is collected and an archive is packaged under\n" "/tmp, which you can send to a support representative.\n" "%(distrob)s will use this information for diagnostic purposes ONLY\n" "and it will be considered confidential information.\n" "\n" "This process may take a while to complete.\n" "No changes will be made to your system.\n" "\n" msgstr "" #: ../sos/sosreport.py:639 msgid "Press ENTER to continue, or CTRL-C to quit.\n" msgstr "" #: ../sos/sosreport.py:665 msgid "One or more plugins have detected a problem in your configuration." msgstr "" #: ../sos/sosreport.py:667 msgid "Please review the following messages:" msgstr "" #: ../sos/sosreport.py:683 msgid "Are you sure you would like to continue (y/n) ? " msgstr "" #: ../sos/sosreport.py:685 msgid "y" msgstr "" #: ../sos/sosreport.py:685 msgid "Y" msgstr "" #: ../sos/sosreport.py:688 msgid "n" msgstr "" #: ../sos/sosreport.py:688 msgid "N" msgstr "" #: ../sos/sosreport.py:713 msgid " Running plugins. Please wait ..." msgstr "" #: ../sos/sosreport.py:827 #, python-format msgid " sosreport build tree is located at : %s" msgstr "" #: ../sos/policyredhat.py:211 #, python-format msgid "Please enter your first initial and last name [%s]: " msgstr "" #: ../sos/policyredhat.py:214 msgid "Please enter the case number that you are generating this report for: " msgstr "" #: ../sos/policyredhat.py:254 msgid "Creating compressed archive..." msgstr "" #: ../sos/policyredhat.py:284 msgid "Encrypting archive..." msgstr "" #: ../sos/policyredhat.py:304 msgid "There was a problem encrypting your report." msgstr "" #: ../sos/policyredhat.py:328 #, python-format msgid "" "Your sosreport has been generated and saved in:\n" " %s" msgstr "" #: ../sos/policyredhat.py:331 msgid "The md5sum is: " msgstr "" #: ../sos/policyredhat.py:333 msgid "Please send this file to your support representative." msgstr "" #: ../sos/policyredhat.py:355 msgid "No URL defined in config file." msgstr "" #: ../sos/policyredhat.py:362 msgid "Cannot upload to specified URL." msgstr "" #: ../sos/policyredhat.py:399 msgid "There was a problem uploading your report to Red Hat support." msgstr "" #: ../sos/policyredhat.py:401 #, python-format msgid "Your report was successfully uploaded to %s with name:" msgstr "" #: ../sos/policyredhat.py:404 msgid "Please communicate this name to your support representative." msgstr "" sosreport/po/sl.po0000644000175000017500000001015412254061770012651 0ustar zefzef# Slovenian translations for PACKAGE package. # Copyright (C) 2007 ORGANIZATION # Automatically generated, 2007. # msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-11-15 15:02+0000\n" "PO-Revision-Date: 2007-10-24 08:45\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: pygettext.py 1.5\n" "Plural-Forms: nplurals=4; plural=(n%100==1 ? 0 : n%100==2 ? 1 : n%100==3 || n" "%100==4 ? 2 : 3);\n" #: ../sos/sosreport.py:350 msgid "Could not create temporary directory." msgstr "" #: ../sos/sosreport.py:413 #, python-format msgid "sosreport (version %s)" msgstr "" #: ../sos/sosreport.py:438 #, python-format msgid "plugin %s does not validate, skipping" msgstr "" #: ../sos/sosreport.py:467 #, python-format msgid "plugin %s does not install, skipping" msgstr "" #: ../sos/sosreport.py:563 msgid "no valid plugins found" msgstr "" #: ../sos/sosreport.py:567 msgid "The following plugins are currently enabled:" msgstr "" #: ../sos/sosreport.py:573 msgid "No plugin enabled." msgstr "" #: ../sos/sosreport.py:577 msgid "The following plugins are currently disabled:" msgstr "" #: ../sos/sosreport.py:585 msgid "The following plugin options are available:" msgstr "" #: ../sos/sosreport.py:606 msgid "No plugin options available." msgstr "" #: ../sos/sosreport.py:614 msgid "sosreport requires root permissions to run." msgstr "" #: ../sos/sosreport.py:621 msgid "no valid plugins were enabled" msgstr "" #: ../sos/sosreport.py:624 #, python-format msgid "" "This utility will collect some detailed information about the\n" "hardware and setup of your %(distroa)s system.\n" "The information is collected and an archive is packaged under\n" "/tmp, which you can send to a support representative.\n" "%(distrob)s will use this information for diagnostic purposes ONLY\n" "and it will be considered confidential information.\n" "\n" "This process may take a while to complete.\n" "No changes will be made to your system.\n" "\n" msgstr "" #: ../sos/sosreport.py:639 msgid "Press ENTER to continue, or CTRL-C to quit.\n" msgstr "" #: ../sos/sosreport.py:665 msgid "One or more plugins have detected a problem in your configuration." msgstr "" #: ../sos/sosreport.py:667 msgid "Please review the following messages:" msgstr "" #: ../sos/sosreport.py:683 msgid "Are you sure you would like to continue (y/n) ? " msgstr "" #: ../sos/sosreport.py:685 msgid "y" msgstr "" #: ../sos/sosreport.py:685 msgid "Y" msgstr "" #: ../sos/sosreport.py:688 msgid "n" msgstr "" #: ../sos/sosreport.py:688 msgid "N" msgstr "" #: ../sos/sosreport.py:713 msgid " Running plugins. Please wait ..." msgstr "" #: ../sos/sosreport.py:827 #, python-format msgid " sosreport build tree is located at : %s" msgstr "" #: ../sos/policyredhat.py:211 #, python-format msgid "Please enter your first initial and last name [%s]: " msgstr "" #: ../sos/policyredhat.py:214 msgid "Please enter the case number that you are generating this report for: " msgstr "" #: ../sos/policyredhat.py:254 msgid "Creating compressed archive..." msgstr "" #: ../sos/policyredhat.py:284 msgid "Encrypting archive..." msgstr "" #: ../sos/policyredhat.py:304 msgid "There was a problem encrypting your report." msgstr "" #: ../sos/policyredhat.py:328 #, python-format msgid "" "Your sosreport has been generated and saved in:\n" " %s" msgstr "" #: ../sos/policyredhat.py:331 msgid "The md5sum is: " msgstr "" #: ../sos/policyredhat.py:333 msgid "Please send this file to your support representative." msgstr "" #: ../sos/policyredhat.py:355 msgid "No URL defined in config file." msgstr "" #: ../sos/policyredhat.py:362 msgid "Cannot upload to specified URL." msgstr "" #: ../sos/policyredhat.py:399 msgid "There was a problem uploading your report to Red Hat support." msgstr "" #: ../sos/policyredhat.py:401 #, python-format msgid "Your report was successfully uploaded to %s with name:" msgstr "" #: ../sos/policyredhat.py:404 msgid "Please communicate this name to your support representative." msgstr "" sosreport/po/pl.po0000644000175000017500000001346512254061770012656 0ustar zefzef# translation of pl.po to Polish # Piotr Drąg , 2007. # msgid "" msgstr "" "Project-Id-Version: pl\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-11-15 15:02+0000\n" "PO-Revision-Date: 2010-03-26 23:42+0100\n" "Last-Translator: Piotr Drąg \n" "Language-Team: Polish \n" "Language: pl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" #: ../sos/sosreport.py:350 msgid "Could not create temporary directory." msgstr "Nie można utworzyć katalogu tymczasowego." #: ../sos/sosreport.py:413 #, python-format msgid "sosreport (version %s)" msgstr "sosreport (wersja %s)" #: ../sos/sosreport.py:438 #, python-format msgid "plugin %s does not validate, skipping" msgstr "nie można sprawdzić wtyczki %s, pomijanie" #: ../sos/sosreport.py:467 #, python-format msgid "plugin %s does not install, skipping" msgstr "nie można zainstalować wtyczki %s, pomijanie" #: ../sos/sosreport.py:563 msgid "no valid plugins found" msgstr "nie odnaleziono prawidłowych wtyczek" #: ../sos/sosreport.py:567 msgid "The following plugins are currently enabled:" msgstr "Następujące wtyczki są obecnie włączone:" #: ../sos/sosreport.py:573 msgid "No plugin enabled." msgstr "Brak włączonych wtyczek." #: ../sos/sosreport.py:577 msgid "The following plugins are currently disabled:" msgstr "Następujące wtyczki są obecnie wyłączone:" #: ../sos/sosreport.py:585 msgid "The following plugin options are available:" msgstr "Następujące wtyczki są dostępne:" #: ../sos/sosreport.py:606 msgid "No plugin options available." msgstr "Brak dostępnych wtyczek." #: ../sos/sosreport.py:614 msgid "sosreport requires root permissions to run." msgstr "sosreport wymaga uprawnień roota do uruchomienia." #: ../sos/sosreport.py:621 msgid "no valid plugins were enabled" msgstr "brak włączonych prawidłowych wtyczek" #: ../sos/sosreport.py:624 #, python-format msgid "" "This utility will collect some detailed information about the\n" "hardware and setup of your %(distroa)s system.\n" "The information is collected and an archive is packaged under\n" "/tmp, which you can send to a support representative.\n" "%(distrob)s will use this information for diagnostic purposes ONLY\n" "and it will be considered confidential information.\n" "\n" "This process may take a while to complete.\n" "No changes will be made to your system.\n" "\n" msgstr "" "To narzędzie zbiera niektóre szczegółowe informacje o sprzęcie\n" "i ustawieniach systemu %(distroa)s. Informacje są\n" "zbierane i archiwizowane w formie pakietu w /tmp, który można\n" "wysłać reprezentantowi wsparcia technicznego. Firma %(distrob)s\n" "użyje tych informacji TYLKO do celów diagnostycznych i zachowa\n" "je jako informacje poufne.\n" "\n" "Ten proces może chwilę zająć.\n" "Żadne zmiany nie zostaną wprowadzane do systemu.\n" "\n" #: ../sos/sosreport.py:639 msgid "Press ENTER to continue, or CTRL-C to quit.\n" msgstr "" "Należy nacisnąć przycisk Enter, aby kontynuować lub Ctrl-C, aby zakończyć.\n" #: ../sos/sosreport.py:665 msgid "One or more plugins have detected a problem in your configuration." msgstr "Jedna lub więcej wtyczek wykryły problem w konfiguracji." #: ../sos/sosreport.py:667 msgid "Please review the following messages:" msgstr "Proszę przejrzeć poniższe komunikaty:" #: ../sos/sosreport.py:683 msgid "Are you sure you would like to continue (y/n) ? " msgstr "Na pewno kontynuować (t/n)? " #: ../sos/sosreport.py:685 msgid "y" msgstr "t" #: ../sos/sosreport.py:685 msgid "Y" msgstr "T" #: ../sos/sosreport.py:688 msgid "n" msgstr "n" #: ../sos/sosreport.py:688 msgid "N" msgstr "N" #: ../sos/sosreport.py:713 msgid " Running plugins. Please wait ..." msgstr " Wykonywanie wtyczek. Proszę czekać..." #: ../sos/sosreport.py:827 #, python-format msgid " sosreport build tree is located at : %s" msgstr " Drzewo budowania sosreport znajduje się w: %s" #: ../sos/policyredhat.py:211 #, python-format msgid "Please enter your first initial and last name [%s]: " msgstr "Proszę podać imię i nazwisko [%s]: " #: ../sos/policyredhat.py:214 msgid "Please enter the case number that you are generating this report for: " msgstr "Proszę podać numer sprawy, dla której ten raport jest tworzony: " #: ../sos/policyredhat.py:254 msgid "Creating compressed archive..." msgstr "Tworzenie skompresowanego archiwum..." #: ../sos/policyredhat.py:284 msgid "Encrypting archive..." msgstr "Szyfrowanie archiwum..." #: ../sos/policyredhat.py:304 msgid "There was a problem encrypting your report." msgstr "Wystąpił problem podczas szyfrowania raportu." #: ../sos/policyredhat.py:328 #, python-format msgid "" "Your sosreport has been generated and saved in:\n" " %s" msgstr "" "Raport sos został utworzony i zapisany w:\n" " %s" #: ../sos/policyredhat.py:331 msgid "The md5sum is: " msgstr "Suma MD5 to: " #: ../sos/policyredhat.py:333 msgid "Please send this file to your support representative." msgstr "Proszę wysłać ten plik do reprezentanta wsparcia technicznego." #: ../sos/policyredhat.py:355 msgid "No URL defined in config file." msgstr "Nie podano adresu URL w pliku konfiguracji." #: ../sos/policyredhat.py:362 msgid "Cannot upload to specified URL." msgstr "Nie można wysłać na podany adres URL." #: ../sos/policyredhat.py:399 msgid "There was a problem uploading your report to Red Hat support." msgstr "" "Wystąpił problem podczas wysyłania raportu do wsparcia technicznego firmy " "Red Hat." #: ../sos/policyredhat.py:401 #, python-format msgid "Your report was successfully uploaded to %s with name:" msgstr "Raport został pomyślnie wysłany do %s za pomocą nazwy:" #: ../sos/policyredhat.py:404 msgid "Please communicate this name to your support representative." msgstr "Proszę podać tę nazwę reprezentantowi wsparcia technicznego." sosreport/po/lv.po0000644000175000017500000001013112254061770012647 0ustar zefzef# Latvian translations for PACKAGE package. # Copyright (C) 2007 ORGANIZATION # Automatically generated, 2007. # msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-11-15 15:02+0000\n" "PO-Revision-Date: 2007-10-24 08:45\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: pygettext.py 1.5\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n != 0 ? 1 : " "2);\n" #: ../sos/sosreport.py:350 msgid "Could not create temporary directory." msgstr "" #: ../sos/sosreport.py:413 #, python-format msgid "sosreport (version %s)" msgstr "" #: ../sos/sosreport.py:438 #, python-format msgid "plugin %s does not validate, skipping" msgstr "" #: ../sos/sosreport.py:467 #, python-format msgid "plugin %s does not install, skipping" msgstr "" #: ../sos/sosreport.py:563 msgid "no valid plugins found" msgstr "" #: ../sos/sosreport.py:567 msgid "The following plugins are currently enabled:" msgstr "" #: ../sos/sosreport.py:573 msgid "No plugin enabled." msgstr "" #: ../sos/sosreport.py:577 msgid "The following plugins are currently disabled:" msgstr "" #: ../sos/sosreport.py:585 msgid "The following plugin options are available:" msgstr "" #: ../sos/sosreport.py:606 msgid "No plugin options available." msgstr "" #: ../sos/sosreport.py:614 msgid "sosreport requires root permissions to run." msgstr "" #: ../sos/sosreport.py:621 msgid "no valid plugins were enabled" msgstr "" #: ../sos/sosreport.py:624 #, python-format msgid "" "This utility will collect some detailed information about the\n" "hardware and setup of your %(distroa)s system.\n" "The information is collected and an archive is packaged under\n" "/tmp, which you can send to a support representative.\n" "%(distrob)s will use this information for diagnostic purposes ONLY\n" "and it will be considered confidential information.\n" "\n" "This process may take a while to complete.\n" "No changes will be made to your system.\n" "\n" msgstr "" #: ../sos/sosreport.py:639 msgid "Press ENTER to continue, or CTRL-C to quit.\n" msgstr "" #: ../sos/sosreport.py:665 msgid "One or more plugins have detected a problem in your configuration." msgstr "" #: ../sos/sosreport.py:667 msgid "Please review the following messages:" msgstr "" #: ../sos/sosreport.py:683 msgid "Are you sure you would like to continue (y/n) ? " msgstr "" #: ../sos/sosreport.py:685 msgid "y" msgstr "" #: ../sos/sosreport.py:685 msgid "Y" msgstr "" #: ../sos/sosreport.py:688 msgid "n" msgstr "" #: ../sos/sosreport.py:688 msgid "N" msgstr "" #: ../sos/sosreport.py:713 msgid " Running plugins. Please wait ..." msgstr "" #: ../sos/sosreport.py:827 #, python-format msgid " sosreport build tree is located at : %s" msgstr "" #: ../sos/policyredhat.py:211 #, python-format msgid "Please enter your first initial and last name [%s]: " msgstr "" #: ../sos/policyredhat.py:214 msgid "Please enter the case number that you are generating this report for: " msgstr "" #: ../sos/policyredhat.py:254 msgid "Creating compressed archive..." msgstr "" #: ../sos/policyredhat.py:284 msgid "Encrypting archive..." msgstr "" #: ../sos/policyredhat.py:304 msgid "There was a problem encrypting your report." msgstr "" #: ../sos/policyredhat.py:328 #, python-format msgid "" "Your sosreport has been generated and saved in:\n" " %s" msgstr "" #: ../sos/policyredhat.py:331 msgid "The md5sum is: " msgstr "" #: ../sos/policyredhat.py:333 msgid "Please send this file to your support representative." msgstr "" #: ../sos/policyredhat.py:355 msgid "No URL defined in config file." msgstr "" #: ../sos/policyredhat.py:362 msgid "Cannot upload to specified URL." msgstr "" #: ../sos/policyredhat.py:399 msgid "There was a problem uploading your report to Red Hat support." msgstr "" #: ../sos/policyredhat.py:401 #, python-format msgid "Your report was successfully uploaded to %s with name:" msgstr "" #: ../sos/policyredhat.py:404 msgid "Please communicate this name to your support representative." msgstr "" sosreport/po/ilo.po0000644000175000017500000001001112254061770013006 0ustar zefzef# Language ilo translations for PACKAGE package. # Copyright (C) 2007 ORGANIZATION # Automatically generated, 2007. # msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-11-15 15:02+0000\n" "PO-Revision-Date: 2007-10-24 08:45\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: pygettext.py 1.5\n" #: ../sos/sosreport.py:350 msgid "Could not create temporary directory." msgstr "" #: ../sos/sosreport.py:413 #, python-format msgid "sosreport (version %s)" msgstr "" #: ../sos/sosreport.py:438 #, python-format msgid "plugin %s does not validate, skipping" msgstr "" #: ../sos/sosreport.py:467 #, python-format msgid "plugin %s does not install, skipping" msgstr "" #: ../sos/sosreport.py:563 msgid "no valid plugins found" msgstr "" #: ../sos/sosreport.py:567 msgid "The following plugins are currently enabled:" msgstr "" #: ../sos/sosreport.py:573 msgid "No plugin enabled." msgstr "" #: ../sos/sosreport.py:577 msgid "The following plugins are currently disabled:" msgstr "" #: ../sos/sosreport.py:585 msgid "The following plugin options are available:" msgstr "" #: ../sos/sosreport.py:606 msgid "No plugin options available." msgstr "" #: ../sos/sosreport.py:614 msgid "sosreport requires root permissions to run." msgstr "" #: ../sos/sosreport.py:621 msgid "no valid plugins were enabled" msgstr "" #: ../sos/sosreport.py:624 #, python-format msgid "" "This utility will collect some detailed information about the\n" "hardware and setup of your %(distroa)s system.\n" "The information is collected and an archive is packaged under\n" "/tmp, which you can send to a support representative.\n" "%(distrob)s will use this information for diagnostic purposes ONLY\n" "and it will be considered confidential information.\n" "\n" "This process may take a while to complete.\n" "No changes will be made to your system.\n" "\n" msgstr "" #: ../sos/sosreport.py:639 msgid "Press ENTER to continue, or CTRL-C to quit.\n" msgstr "" #: ../sos/sosreport.py:665 msgid "One or more plugins have detected a problem in your configuration." msgstr "" #: ../sos/sosreport.py:667 msgid "Please review the following messages:" msgstr "" #: ../sos/sosreport.py:683 msgid "Are you sure you would like to continue (y/n) ? " msgstr "" #: ../sos/sosreport.py:685 msgid "y" msgstr "" #: ../sos/sosreport.py:685 msgid "Y" msgstr "" #: ../sos/sosreport.py:688 msgid "n" msgstr "" #: ../sos/sosreport.py:688 msgid "N" msgstr "" #: ../sos/sosreport.py:713 msgid " Running plugins. Please wait ..." msgstr "" #: ../sos/sosreport.py:827 #, python-format msgid " sosreport build tree is located at : %s" msgstr "" #: ../sos/policyredhat.py:211 #, python-format msgid "Please enter your first initial and last name [%s]: " msgstr "" #: ../sos/policyredhat.py:214 msgid "Please enter the case number that you are generating this report for: " msgstr "" #: ../sos/policyredhat.py:254 msgid "Creating compressed archive..." msgstr "" #: ../sos/policyredhat.py:284 msgid "Encrypting archive..." msgstr "" #: ../sos/policyredhat.py:304 msgid "There was a problem encrypting your report." msgstr "" #: ../sos/policyredhat.py:328 #, python-format msgid "" "Your sosreport has been generated and saved in:\n" " %s" msgstr "" #: ../sos/policyredhat.py:331 msgid "The md5sum is: " msgstr "" #: ../sos/policyredhat.py:333 msgid "Please send this file to your support representative." msgstr "" #: ../sos/policyredhat.py:355 msgid "No URL defined in config file." msgstr "" #: ../sos/policyredhat.py:362 msgid "Cannot upload to specified URL." msgstr "" #: ../sos/policyredhat.py:399 msgid "There was a problem uploading your report to Red Hat support." msgstr "" #: ../sos/policyredhat.py:401 #, python-format msgid "Your report was successfully uploaded to %s with name:" msgstr "" #: ../sos/policyredhat.py:404 msgid "Please communicate this name to your support representative." msgstr "" sosreport/po/nl.po0000644000175000017500000001511712254061770012650 0ustar zefzef# translation of sos.trunk-nl.po to Dutch # Copyright (C) YEAR ORGANIZATION # R.E. van der Luit , 2009, 2010. # Geert Warrink , 2010. msgid "" msgstr "" "Project-Id-Version: sos.trunk-nl\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-11-15 15:02+0000\n" "PO-Revision-Date: 2010-07-04 18:00+0200\n" "Last-Translator: Geert Warrink \n" "Language-Team: Fedora\n" "Language: nl\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: Virtaal 0.6.1\n" "Generated-By: pygettext.py 1.5\n" #: ../sos/sosreport.py:350 msgid "Could not create temporary directory." msgstr "Kon geen tijdelijke map maken." #: ../sos/sosreport.py:413 #, python-format msgid "sosreport (version %s)" msgstr "sos rapport (versie %s)" #: ../sos/sosreport.py:438 #, python-format msgid "plugin %s does not validate, skipping" msgstr "plug-in %s valideerde niet, wordt overgeslagen" #: ../sos/sosreport.py:467 #, python-format msgid "plugin %s does not install, skipping" msgstr "plug-in %s laat zich niet installeren, wordt overgeslagen" #: ../sos/sosreport.py:563 msgid "no valid plugins found" msgstr "geen geldige plug-in gevonden" #: ../sos/sosreport.py:567 msgid "The following plugins are currently enabled:" msgstr "De volgende plug-ins zijn momenteel actief:" #: ../sos/sosreport.py:573 msgid "No plugin enabled." msgstr "Geen plug-in aangezet." #: ../sos/sosreport.py:577 msgid "The following plugins are currently disabled:" msgstr "De volgende plug-ins zijn momenteel actief:" #: ../sos/sosreport.py:585 msgid "The following plugin options are available:" msgstr "De volgende plug-in opties zijn beschikbaar:" #: ../sos/sosreport.py:606 msgid "No plugin options available." msgstr "Geen plug-in opties beschikbaar." #: ../sos/sosreport.py:614 msgid "sosreport requires root permissions to run." msgstr "sos rapport vereist root rechten om te draaien." #: ../sos/sosreport.py:621 msgid "no valid plugins were enabled" msgstr "er waren geen geldige plug-ins aangezet" #: ../sos/sosreport.py:624 #, python-format msgid "" "This utility will collect some detailed information about the\n" "hardware and setup of your %(distroa)s system.\n" "The information is collected and an archive is packaged under\n" "/tmp, which you can send to a support representative.\n" "%(distrob)s will use this information for diagnostic purposes ONLY\n" "and it will be considered confidential information.\n" "\n" "This process may take a while to complete.\n" "No changes will be made to your system.\n" "\n" msgstr "" "Dit programma zal enige gedetailleerde informatie over de hardware\n" "en instelling van jouw %(distroa)s systeem verzamelen.\n" "De informatie wordt verzameld en een archief bestand wordt ingepakt in\n" "/tmp, welke je naar jouw ondersteuning representant kunt sturen.\n" "%(distrob)s zal deze informatie ALLEEN voor diagnose doeleinden\n" "gebruiken en het zal beschouwd worden als vertrouwelijke informatie.\n" "\n" "Dit proces kan enige tijd duren voordat het klaar is.\n" "Er zullen geen veranderingen aan jouw systeem gemaakt worden.\n" "\n" #: ../sos/sosreport.py:639 msgid "Press ENTER to continue, or CTRL-C to quit.\n" msgstr "Druk op ENTER om verder te gaan, of op CTRL-C om te stoppen.\n" #: ../sos/sosreport.py:665 msgid "One or more plugins have detected a problem in your configuration." msgstr "" "Eén of meerdere plug-ins hebben een probleem in jouw configuratie bemerkt." #: ../sos/sosreport.py:667 msgid "Please review the following messages:" msgstr "Lees a.u.b. de volgende berichten door:" #: ../sos/sosreport.py:683 msgid "Are you sure you would like to continue (y/n) ? " msgstr "Weet je zeker dat je door wilt gaan (j/n) ? " #: ../sos/sosreport.py:685 msgid "y" msgstr "j" #: ../sos/sosreport.py:685 msgid "Y" msgstr "J" #: ../sos/sosreport.py:688 msgid "n" msgstr "n" #: ../sos/sosreport.py:688 msgid "N" msgstr "N" #: ../sos/sosreport.py:713 msgid " Running plugins. Please wait ..." msgstr "Plug-ins worden gedraaid. Wachten a.u.b. ..." #: ../sos/sosreport.py:827 #, python-format msgid " sosreport build tree is located at : %s" msgstr "De sos melding opbouw boom bevindt zich in : %s" #: ../sos/policyredhat.py:211 #, python-format msgid "Please enter your first initial and last name [%s]: " msgstr "Voer jouw eerste initiaal en jouw achternaam in [%s]: " #: ../sos/policyredhat.py:214 msgid "Please enter the case number that you are generating this report for: " msgstr "Voer a.u.b. het zaak nummer in waarvoor je dit rapport aanmaakt:" #: ../sos/policyredhat.py:254 msgid "Creating compressed archive..." msgstr "Gecomprimeerd archief bestand wordt gemaakt..." #: ../sos/policyredhat.py:284 msgid "Encrypting archive..." msgstr "Archief bestand wordt versleuteld..." #: ../sos/policyredhat.py:304 msgid "There was a problem encrypting your report." msgstr "Er trad een probleem op bij het versleutelen van jouw melding." #: ../sos/policyredhat.py:328 #, python-format msgid "" "Your sosreport has been generated and saved in:\n" " %s" msgstr "" "Jouw sos rapport is gegenereerd en opgeslagen in:\n" " %s" #: ../sos/policyredhat.py:331 msgid "The md5sum is: " msgstr "De md5sum is: " #: ../sos/policyredhat.py:333 msgid "Please send this file to your support representative." msgstr "Zendt dit bestand a.u.b. naar jouw ondersteuning representant." #: ../sos/policyredhat.py:355 msgid "No URL defined in config file." msgstr "Er is geen URL gedefinieerd in het config bestand." #: ../sos/policyredhat.py:362 msgid "Cannot upload to specified URL." msgstr "Kan niet naar de opgegeven URL uploaden." #: ../sos/policyredhat.py:399 msgid "There was a problem uploading your report to Red Hat support." msgstr "" "Er trad een probleem op bij het uploaden van jouw rapport naar Red Hat " "support." #: ../sos/policyredhat.py:401 #, python-format msgid "Your report was successfully uploaded to %s with name:" msgstr "Jouw melding is succesvol verstuurd naar %s met de naam:" #: ../sos/policyredhat.py:404 msgid "Please communicate this name to your support representative." msgstr "Meldt deze naam a.u.b. aan jouw ondersteuning representant." #~ msgid "plugin %s skipped (--skip-plugins)" #~ msgstr "plugin %s overgeslagen (--skip-plugins)" #~ msgid "plugin %s is inactive (use -e or -o to enable)." #~ msgstr "plugin %s is niet actief (gebruik -e of -o om in te schakelen)" #~ msgid "plugin %s not specified in --only-plugins list" #~ msgstr "plugin %s is niet gespecificeerd in --only-plugin lijst" #~ msgid "processing options from plugin: %s" #~ msgstr "verwerken opties van plugin: %s" sosreport/po/lo.po0000644000175000017500000001000412254061770012637 0ustar zefzef# Laotian translations for PACKAGE package. # Copyright (C) 2007 ORGANIZATION # Automatically generated, 2007. # msgid "" msgstr "" "Project-Id-Version: PACKAGE VERSION\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-11-15 15:02+0000\n" "PO-Revision-Date: 2007-10-24 08:45\n" "Last-Translator: Automatically generated\n" "Language-Team: none\n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: pygettext.py 1.5\n" #: ../sos/sosreport.py:350 msgid "Could not create temporary directory." msgstr "" #: ../sos/sosreport.py:413 #, python-format msgid "sosreport (version %s)" msgstr "" #: ../sos/sosreport.py:438 #, python-format msgid "plugin %s does not validate, skipping" msgstr "" #: ../sos/sosreport.py:467 #, python-format msgid "plugin %s does not install, skipping" msgstr "" #: ../sos/sosreport.py:563 msgid "no valid plugins found" msgstr "" #: ../sos/sosreport.py:567 msgid "The following plugins are currently enabled:" msgstr "" #: ../sos/sosreport.py:573 msgid "No plugin enabled." msgstr "" #: ../sos/sosreport.py:577 msgid "The following plugins are currently disabled:" msgstr "" #: ../sos/sosreport.py:585 msgid "The following plugin options are available:" msgstr "" #: ../sos/sosreport.py:606 msgid "No plugin options available." msgstr "" #: ../sos/sosreport.py:614 msgid "sosreport requires root permissions to run." msgstr "" #: ../sos/sosreport.py:621 msgid "no valid plugins were enabled" msgstr "" #: ../sos/sosreport.py:624 #, python-format msgid "" "This utility will collect some detailed information about the\n" "hardware and setup of your %(distroa)s system.\n" "The information is collected and an archive is packaged under\n" "/tmp, which you can send to a support representative.\n" "%(distrob)s will use this information for diagnostic purposes ONLY\n" "and it will be considered confidential information.\n" "\n" "This process may take a while to complete.\n" "No changes will be made to your system.\n" "\n" msgstr "" #: ../sos/sosreport.py:639 msgid "Press ENTER to continue, or CTRL-C to quit.\n" msgstr "" #: ../sos/sosreport.py:665 msgid "One or more plugins have detected a problem in your configuration." msgstr "" #: ../sos/sosreport.py:667 msgid "Please review the following messages:" msgstr "" #: ../sos/sosreport.py:683 msgid "Are you sure you would like to continue (y/n) ? " msgstr "" #: ../sos/sosreport.py:685 msgid "y" msgstr "" #: ../sos/sosreport.py:685 msgid "Y" msgstr "" #: ../sos/sosreport.py:688 msgid "n" msgstr "" #: ../sos/sosreport.py:688 msgid "N" msgstr "" #: ../sos/sosreport.py:713 msgid " Running plugins. Please wait ..." msgstr "" #: ../sos/sosreport.py:827 #, python-format msgid " sosreport build tree is located at : %s" msgstr "" #: ../sos/policyredhat.py:211 #, python-format msgid "Please enter your first initial and last name [%s]: " msgstr "" #: ../sos/policyredhat.py:214 msgid "Please enter the case number that you are generating this report for: " msgstr "" #: ../sos/policyredhat.py:254 msgid "Creating compressed archive..." msgstr "" #: ../sos/policyredhat.py:284 msgid "Encrypting archive..." msgstr "" #: ../sos/policyredhat.py:304 msgid "There was a problem encrypting your report." msgstr "" #: ../sos/policyredhat.py:328 #, python-format msgid "" "Your sosreport has been generated and saved in:\n" " %s" msgstr "" #: ../sos/policyredhat.py:331 msgid "The md5sum is: " msgstr "" #: ../sos/policyredhat.py:333 msgid "Please send this file to your support representative." msgstr "" #: ../sos/policyredhat.py:355 msgid "No URL defined in config file." msgstr "" #: ../sos/policyredhat.py:362 msgid "Cannot upload to specified URL." msgstr "" #: ../sos/policyredhat.py:399 msgid "There was a problem uploading your report to Red Hat support." msgstr "" #: ../sos/policyredhat.py:401 #, python-format msgid "Your report was successfully uploaded to %s with name:" msgstr "" #: ../sos/policyredhat.py:404 msgid "Please communicate this name to your support representative." msgstr "" sosreport/po/ast.po0000644000175000017500000001456612254061770013035 0ustar zefzef# translation of ast.po to Asturian # Asturian translations for PACKAGE package. # Copyright (C) 2007 ORGANIZATION # # Automatically generated, 2007. # Astur , 2007. msgid "" msgstr "" "Project-Id-Version: ast\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-11-15 15:02+0000\n" "PO-Revision-Date: 2009-10-24 20:58+0100\n" "Last-Translator: Xandru Martino Ruz \n" "Language-Team: Asturian \n" "Language: ast\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: pygettext.py 1.5\n" "Plural-Forms: nplurals=2; plural=(n != 1);\n" "X-Generator: KBabel 1.11.4\n" #: ../sos/sosreport.py:350 msgid "Could not create temporary directory." msgstr "Nun se pudo criar un direutoriu temporal." #: ../sos/sosreport.py:413 #, python-format msgid "sosreport (version %s)" msgstr "sosreport (versión %s)" #: ../sos/sosreport.py:438 #, python-format msgid "plugin %s does not validate, skipping" msgstr "nun se validó'l plugin %s, inorándolu" #: ../sos/sosreport.py:467 #, python-format msgid "plugin %s does not install, skipping" msgstr "nun s'instaló'l plugin %s, inorándolu" #: ../sos/sosreport.py:563 msgid "no valid plugins found" msgstr "nun s'atopó un plugin válidu" #: ../sos/sosreport.py:567 msgid "The following plugins are currently enabled:" msgstr "Los siguientes plugins tán activaos anguaño:" #: ../sos/sosreport.py:573 msgid "No plugin enabled." msgstr "Dengún plugin ta activáu." #: ../sos/sosreport.py:577 msgid "The following plugins are currently disabled:" msgstr "Los siguientes plugins nun tán activaos:" #: ../sos/sosreport.py:585 msgid "The following plugin options are available:" msgstr "Les siguientes opciones del plugin tán disponibles:" #: ../sos/sosreport.py:606 msgid "No plugin options available." msgstr "Nun hai opciones de plugin disponibles." #: ../sos/sosreport.py:614 msgid "sosreport requires root permissions to run." msgstr "sosreport requier privilexos de root pa executalu." #: ../sos/sosreport.py:621 msgid "no valid plugins were enabled" msgstr "nun s'activó dengún plugin válidu" #: ../sos/sosreport.py:624 #, fuzzy, python-format msgid "" "This utility will collect some detailed information about the\n" "hardware and setup of your %(distroa)s system.\n" "The information is collected and an archive is packaged under\n" "/tmp, which you can send to a support representative.\n" "%(distrob)s will use this information for diagnostic purposes ONLY\n" "and it will be considered confidential information.\n" "\n" "This process may take a while to complete.\n" "No changes will be made to your system.\n" "\n" msgstr "" "Esta utilidá recueyerá dalguna información detallada sobro'l\n" "hardware y la configuración del to sistema Red Hat Enterprise Linux.\n" "La información recuéyese y críase un ficheru baxo /tmp.\n" "Ésti puede mandase al to representante de sofitu.\n" "Red Hat usará esta información pa diagnosticar el sistema\n" "únicamente y considerará esta información como confidencial.\n" "\n" "Esti procesu va llevar un tiempu pa completase.\n" "Nun se fadrá dengún cambéu nel sistema.\n" "\n" #: ../sos/sosreport.py:639 msgid "Press ENTER to continue, or CTRL-C to quit.\n" msgstr "Calca INTRO pa siguir o CTRL-C pa colar.\n" #: ../sos/sosreport.py:665 msgid "One or more plugins have detected a problem in your configuration." msgstr "Ún o más plugins deteutaron un problema na to configuración." #: ../sos/sosreport.py:667 msgid "Please review the following messages:" msgstr "Por favor revisa los siguientes mensaxes:" #: ../sos/sosreport.py:683 msgid "Are you sure you would like to continue (y/n) ? " msgstr "¿Daveres quies siguir (s/n)?" #: ../sos/sosreport.py:685 msgid "y" msgstr "s" #: ../sos/sosreport.py:685 msgid "Y" msgstr "S" #: ../sos/sosreport.py:688 msgid "n" msgstr "n" #: ../sos/sosreport.py:688 msgid "N" msgstr "N" #: ../sos/sosreport.py:713 msgid " Running plugins. Please wait ..." msgstr "" #: ../sos/sosreport.py:827 #, python-format msgid " sosreport build tree is located at : %s" msgstr "" #: ../sos/policyredhat.py:211 #, python-format msgid "Please enter your first initial and last name [%s]: " msgstr "Por favor pon la inicial del to nome nome y del to apellíu [%s]:" #: ../sos/policyredhat.py:214 msgid "Please enter the case number that you are generating this report for: " msgstr "Por favor pon el númberu de casu pal que tas xenerando esti informe:" #: ../sos/policyredhat.py:254 msgid "Creating compressed archive..." msgstr "Criando un ficheru comprimíu..." #: ../sos/policyredhat.py:284 msgid "Encrypting archive..." msgstr "Encriptando'l ficheru..." #: ../sos/policyredhat.py:304 msgid "There was a problem encrypting your report." msgstr "Hebo un problema mientres s'encriptaba l'informe." #: ../sos/policyredhat.py:328 #, python-format msgid "" "Your sosreport has been generated and saved in:\n" " %s" msgstr "" "El to informe sos xeneróse y guardóse en:\n" " %s" #: ../sos/policyredhat.py:331 msgid "The md5sum is: " msgstr "El md5sum ye:" #: ../sos/policyredhat.py:333 msgid "Please send this file to your support representative." msgstr "Por favor manda esti ficheru al to representante de sofitu." #: ../sos/policyredhat.py:355 msgid "No URL defined in config file." msgstr "" #: ../sos/policyredhat.py:362 msgid "Cannot upload to specified URL." msgstr "Nun se puede cargar a la URL especificada." #: ../sos/policyredhat.py:399 msgid "There was a problem uploading your report to Red Hat support." msgstr "" "Hebo un problema al cargar el to informe al equipu d'asistencia de Red Hat" #: ../sos/policyredhat.py:401 #, fuzzy, python-format msgid "Your report was successfully uploaded to %s with name:" msgstr "El to informe cargóse bien a los sirvidores ftp e Red Hat col nome:" #: ../sos/policyredhat.py:404 msgid "Please communicate this name to your support representative." msgstr "Por favor comunica esti nome al to representante de sofitu." #~ msgid "plugin %s skipped (--skip-plugins)" #~ msgstr "plugin %s inoráu (--skip-plugins)" #~ msgid "plugin %s is inactive (use -e or -o to enable)." #~ msgstr "plugin %s nun ta activu (usa -e o -o p'activalu)." #~ msgid "plugin %s not specified in --only-plugins list" #~ msgstr "el plugin %s nun s'especifica na llista --only-plugins" #~ msgid "processing options from plugin: %s" #~ msgstr "procesando les opciones del plugin: %s" sosreport/po/ru.po0000644000175000017500000001600412254061770012661 0ustar zefzef# translation of ru.po to # Russian translations for PACKAGE package. # Copyright (C) 2007 ORGANIZATION # # Automatically generated, 2007. # Yulia , 2010. msgid "" msgstr "" "Project-Id-Version: ru\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-11-15 15:02+0000\n" "PO-Revision-Date: 2010-03-30 08:47\n" "Last-Translator: Yulia \n" "Language-Team: Russian\n" "Language: \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Generated-By: pygettext.py 1.5\n" "Plural-Forms: nplurals=3; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && n" "%10<=4 && (n%100<10 || n%100>=20) ? 1 : 2);\n" "X-Generator: KBabel 1.11.4\n" #: ../sos/sosreport.py:350 msgid "Could not create temporary directory." msgstr "Не удалось создать временный каталог." #: ../sos/sosreport.py:413 #, python-format msgid "sosreport (version %s)" msgstr "sosreport (версия %s)" #: ../sos/sosreport.py:438 #, python-format msgid "plugin %s does not validate, skipping" msgstr "модуль %s не прошёл проверку. Пропускается." #: ../sos/sosreport.py:467 #, python-format msgid "plugin %s does not install, skipping" msgstr "модуль %s не устанавливается. Пропускается." #: ../sos/sosreport.py:563 msgid "no valid plugins found" msgstr "верные модули не найдены" #: ../sos/sosreport.py:567 msgid "The following plugins are currently enabled:" msgstr "В настоящее время включены модули:" #: ../sos/sosreport.py:573 msgid "No plugin enabled." msgstr "Нет активных модулей." #: ../sos/sosreport.py:577 msgid "The following plugins are currently disabled:" msgstr "В настоящее время отключены модули:" #: ../sos/sosreport.py:585 msgid "The following plugin options are available:" msgstr "Доступные опции модулей:" #: ../sos/sosreport.py:606 msgid "No plugin options available." msgstr "Нет опций." #: ../sos/sosreport.py:614 msgid "sosreport requires root permissions to run." msgstr "Для выполнения sosreport необходимы права root." #: ../sos/sosreport.py:621 msgid "no valid plugins were enabled" msgstr "не включены верные модули" #: ../sos/sosreport.py:624 #, python-format msgid "" "This utility will collect some detailed information about the\n" "hardware and setup of your %(distroa)s system.\n" "The information is collected and an archive is packaged under\n" "/tmp, which you can send to a support representative.\n" "%(distrob)s will use this information for diagnostic purposes ONLY\n" "and it will be considered confidential information.\n" "\n" "This process may take a while to complete.\n" "No changes will be made to your system.\n" "\n" msgstr "" "Эта программа выполнит сбор подробной информации об оборудовании\n" "и настройках вашей системы %(distroa)s.\n" "Полученные сведения будут упакованы в архив, который будет помещён в " "каталог /tmp.\n" "Этот архив можно отправить в службу поддержки для анализа.\n" "%(distrob)s рассматривает эту информацию как конфиденциальную и использует\n" "исключительно в целях диагностики.\n" "\n" "Этот процесс может занять некоторое время.\n" "Система при этом изменена не будет.\n" "\n" #: ../sos/sosreport.py:639 msgid "Press ENTER to continue, or CTRL-C to quit.\n" msgstr "Нажмите ENTER для продолжения или CTRL-C для выхода.\n" #: ../sos/sosreport.py:665 msgid "One or more plugins have detected a problem in your configuration." msgstr "Модули обнаружили ошибки конфигурации." #: ../sos/sosreport.py:667 msgid "Please review the following messages:" msgstr "Пожалуйста, просмотрите сообщения:" #: ../sos/sosreport.py:683 msgid "Are you sure you would like to continue (y/n) ? " msgstr "Вы действительно хотите продолжить? (y/n)" #: ../sos/sosreport.py:685 msgid "y" msgstr "y" #: ../sos/sosreport.py:685 msgid "Y" msgstr "Y" #: ../sos/sosreport.py:688 msgid "n" msgstr "n" #: ../sos/sosreport.py:688 msgid "N" msgstr "N" #: ../sos/sosreport.py:713 msgid " Running plugins. Please wait ..." msgstr " Выполняются модули. Пожалуйста, подождите..." #: ../sos/sosreport.py:827 #, python-format msgid " sosreport build tree is located at : %s" msgstr " расположение дерева sosreport: %s" #: ../sos/policyredhat.py:211 #, python-format msgid "Please enter your first initial and last name [%s]: " msgstr "Пожалуйста, укажите первую букву имени и фамилию [%s]: " #: ../sos/policyredhat.py:214 msgid "Please enter the case number that you are generating this report for: " msgstr "Пожалуйста, введите номер проверки для создаваемого отчёта:" #: ../sos/policyredhat.py:254 msgid "Creating compressed archive..." msgstr "Создаётся архив..." #: ../sos/policyredhat.py:284 msgid "Encrypting archive..." msgstr "Выполняется шифрование архива..." #: ../sos/policyredhat.py:304 msgid "There was a problem encrypting your report." msgstr "Произошла ошибка при шифровании отчёта." #: ../sos/policyredhat.py:328 #, python-format msgid "" "Your sosreport has been generated and saved in:\n" " %s" msgstr "" "Созданный отчёт сохранен в: \n" " %s" #: ../sos/policyredhat.py:331 msgid "The md5sum is: " msgstr "md5sum:" #: ../sos/policyredhat.py:333 msgid "Please send this file to your support representative." msgstr "Отправьте этот файл представителю службы поддержки." #: ../sos/policyredhat.py:355 msgid "No URL defined in config file." msgstr "Файл конфигурации не содержит URL." #: ../sos/policyredhat.py:362 msgid "Cannot upload to specified URL." msgstr "Не удалось отправить файл." #: ../sos/policyredhat.py:399 msgid "There was a problem uploading your report to Red Hat support." msgstr "" "Произошла ошибка при попытке отправить отчёт в службу поддержки Red Hat." #: ../sos/policyredhat.py:401 #, python-format msgid "Your report was successfully uploaded to %s with name:" msgstr "Ваш отчёт был успешно отправлен на %s под именем:" #: ../sos/policyredhat.py:404 msgid "Please communicate this name to your support representative." msgstr "Сообщите это имя представителю службы поддержки." sosreport/po/gu.po0000644000175000017500000002102512254061770012645 0ustar zefzef# translation of sos.trunk.gu.po to Gujarati # Gujarati translations for PACKAGE package. # Copyright (C) 2007 ORGANIZATION # # Automatically generated, 2007. # Ankit Patel , 2007. # Sweta Kothari , 2011. msgid "" msgstr "" "Project-Id-Version: sos.trunk.gu\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-11-15 15:02+0000\n" "PO-Revision-Date: 2011-01-04 17:39+0530\n" "Last-Translator: Sweta Kothari \n" "Language-Team: Gujarati\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: gu\n" "Generated-By: pygettext.py 1.5\n" "X-Generator: KBabel 1.11.4\n" "Plural-Forms: nplurals=2; plural=(n!=1);\n" "\n" #: ../sos/sosreport.py:350 msgid "Could not create temporary directory." msgstr "કામચલાઉ ડિરેક્ટરી બનાવી શક્યા નહિં." #: ../sos/sosreport.py:413 #, python-format msgid "sosreport (version %s)" msgstr "sosreport (આવૃત્તિ %s)" #: ../sos/sosreport.py:438 #, python-format msgid "plugin %s does not validate, skipping" msgstr "પ્લગઈન %s માન્ય થઈ શક્યું નહિં, અવગણી રહ્યા છીએ" #: ../sos/sosreport.py:467 #, python-format msgid "plugin %s does not install, skipping" msgstr "પ્લગઈન %s સ્થાપિત થતું નથી, અવગણી રહ્યા છીએ" #: ../sos/sosreport.py:563 msgid "no valid plugins found" msgstr "કોઈ માન્ય પ્લગઈનો મળ્યા નહિં" #: ../sos/sosreport.py:567 msgid "The following plugins are currently enabled:" msgstr "નીચેના પ્લગઈનો વર્તમાનમાં સક્રિય કરવામાં આવેલ છે:" #: ../sos/sosreport.py:573 msgid "No plugin enabled." msgstr "કોઈ પ્લગઈન સક્રિય કરેલ નથી." #: ../sos/sosreport.py:577 msgid "The following plugins are currently disabled:" msgstr "નીચેના પ્લગઈનો વર્તમાનમાં નિષ્ક્રિય કરેલ છે:" #: ../sos/sosreport.py:585 msgid "The following plugin options are available:" msgstr "નીચેના પ્લગઈન વિકલ્પો ઉપલબ્ધ છે:" #: ../sos/sosreport.py:606 msgid "No plugin options available." msgstr "કોઈ પ્લગઈન વિકલ્પો ઉપલબ્ધ નથી." #: ../sos/sosreport.py:614 msgid "sosreport requires root permissions to run." msgstr "sosreport ને ચલાવવા માટે રુટ પરવાનગીઓ જરૂરી છે." #: ../sos/sosreport.py:621 msgid "no valid plugins were enabled" msgstr "કોઈ માન્ય પ્લગઈનો સક્રિય કરેલ હતા નહિં" #: ../sos/sosreport.py:624 #, python-format msgid "" "This utility will collect some detailed information about the\n" "hardware and setup of your %(distroa)s system.\n" "The information is collected and an archive is packaged under\n" "/tmp, which you can send to a support representative.\n" "%(distrob)s will use this information for diagnostic purposes ONLY\n" "and it will be considered confidential information.\n" "\n" "This process may take a while to complete.\n" "No changes will be made to your system.\n" "\n" msgstr "" "આ ઉપયોગીતા હાર્ડવેર વિશે અમુક વિગતવાર જાણકારી\n" "ભેગી કરશે અને તમારી %(distroa)s સિસ્ટમ સુયોજીત કરશે.\n" "જાણકારી ભેગી થયેલ છે અને પેટી એ /tmp ડિરેક્ટરી હેઠળ પેકેજ\n" "થયેલ છે, કે જેને તમે આધાર રજૂઆતકને મોકલી શકો છો.\n" "%(distrob)s આ જાણકારીનો માત્ર તપાસ હેતુઓ માટે જ ઉપયોગ કરશે\n" "અને તે ખાનગી જાણકારી તરીકે ધ્યાનમાં લેવામાં આવશે.\n" "\n" "આ પ્રક્રિયા સમાપ્ત થવા માટે થોડો સમય લેશે.\n" "તમારી સિસ્ટમમાં કોઈ ફેરફારો કરવામાં આવશે નહિં.\n" "\n" #: ../sos/sosreport.py:639 msgid "Press ENTER to continue, or CTRL-C to quit.\n" msgstr "ચાલુ રાખવા માટે ENTER દબાવો, અથવા બંધ કરવા માટે CTRL-C દબાવો.\n" #: ../sos/sosreport.py:665 msgid "One or more plugins have detected a problem in your configuration." msgstr "એક અથવા વધુ પ્લગઈનોને તમારા રૂપરેખાંકનમાં સમસ્યા મળી આવી." #: ../sos/sosreport.py:667 msgid "Please review the following messages:" msgstr "મહેરબાની કરીને નીચેના સંદેશાઓ રીવ્યુ કરો:" #: ../sos/sosreport.py:683 msgid "Are you sure you would like to continue (y/n) ? " msgstr "શું તમે ખરેખર ચાલુ રાખવા ઈચ્છો છો (y/n) ? " #: ../sos/sosreport.py:685 msgid "y" msgstr "y" #: ../sos/sosreport.py:685 msgid "Y" msgstr "Y" #: ../sos/sosreport.py:688 msgid "n" msgstr "n" #: ../sos/sosreport.py:688 msgid "N" msgstr "N" #: ../sos/sosreport.py:713 msgid " Running plugins. Please wait ..." msgstr " પ્લગઇનોને ચલાવી રહ્યા છીએ. મહેરબાની કરીને થોભો ..." #: ../sos/sosreport.py:827 #, python-format msgid " sosreport build tree is located at : %s" msgstr " sosreport બિલ્ડ ટ્રી તેની પર સ્થિત થયેલ છે : %s" #: ../sos/policyredhat.py:211 #, python-format msgid "Please enter your first initial and last name [%s]: " msgstr "મહેરબાની કરીને તમારું પ્રથમ અને છેલ્લું નામ દાખલ કરો [%s]: " #: ../sos/policyredhat.py:214 msgid "Please enter the case number that you are generating this report for: " msgstr "મહેરબાની કરીને તમારો કેસ નંબર દાખલ કરો કે જેમાંથી તમે આ અહેવાલ બનાવી રહ્યા છો: " #: ../sos/policyredhat.py:254 msgid "Creating compressed archive..." msgstr "સંકુચિત પેટી બનાવી રહ્યા છીએ..." #: ../sos/policyredhat.py:284 msgid "Encrypting archive..." msgstr "પેટી એનક્રિપ્ટ કરી રહ્યા છીએ..." #: ../sos/policyredhat.py:304 msgid "There was a problem encrypting your report." msgstr "તમારો અહેવાલ એનક્રિપ્ટ કરવામાં સમસ્યા હતી." #: ../sos/policyredhat.py:328 #, python-format msgid "" "Your sosreport has been generated and saved in:\n" " %s" msgstr "" "તમારો sosreport બની ગયેલ છે અને આમાં સંગ્રહાયેલ છે:\n" " %s" #: ../sos/policyredhat.py:331 msgid "The md5sum is: " msgstr "md5sum આ છે: " #: ../sos/policyredhat.py:333 msgid "Please send this file to your support representative." msgstr "મહેરબાની કરીને આ ફાઈલ તમારા આધાર રજૂઆતકને મોકલો." #: ../sos/policyredhat.py:355 msgid "No URL defined in config file." msgstr "config ફાઇલમાં URL વ્યાખ્યાયિત થયેલ નથી." #: ../sos/policyredhat.py:362 msgid "Cannot upload to specified URL." msgstr "સ્પષ્ટ કરેલ URL અપલોડ કરી શકતા નથી." #: ../sos/policyredhat.py:399 msgid "There was a problem uploading your report to Red Hat support." msgstr "તમારા અહેવાલને Red Hat આધારમાં અપલોડ કરવામાં સમસ્યા હતી." #: ../sos/policyredhat.py:401 #, python-format msgid "Your report was successfully uploaded to %s with name:" msgstr "તમારો અહેવાલ %s નામ સાથે સફળતાપૂર્વક અપલોડ થયો હતો:" #: ../sos/policyredhat.py:404 msgid "Please communicate this name to your support representative." msgstr "મહેરબાની કરીને આ નામ તમારા આધાર રજૂઆતકને મોકલો." sosreport/po/or.po0000644000175000017500000002360612254061770012661 0ustar zefzef# translation of sos.trunk.or.po to Oriya # Oriya translations for PACKAGE package. # Copyright (C) 2007 ORGANIZATION # # Automatically generated, 2007. # Manoj Kumar Giri , 2009, 2011. msgid "" msgstr "" "Project-Id-Version: sos.trunk.or\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2010-11-15 15:02+0000\n" "PO-Revision-Date: 2011-01-04 18:25+0530\n" "Last-Translator: Manoj Kumar Giri \n" "Language-Team: Oriya \n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: 8bit\n" "Language: or\n" "Generated-By: pygettext.py 1.5\n" "X-Generator: Lokalize 1.1\n" "Plural-Forms: nplurals=2; plural=(n!=1);\n" "\n" "\n" "\n" "\n" #: ../sos/sosreport.py:350 msgid "Could not create temporary directory." msgstr "ଅସ୍ଥାୟୀ ଡିରେକ୍ଟୋରୀ ନିର୍ମାଣ କରିହେଲା ନାହିଁ।" #: ../sos/sosreport.py:413 #, python-format msgid "sosreport (version %s)" msgstr "sosreport (ସସ୍କରଣ %s)" #: ../sos/sosreport.py:438 #, python-format msgid "plugin %s does not validate, skipping" msgstr "ପ୍ଲଗଇନ %s କୁ ବୈଧିକୃତ କରେ ନାହିଁ, ଏଡ଼ାଇଦେଉଅଛି" #: ../sos/sosreport.py:467 #, python-format msgid "plugin %s does not install, skipping" msgstr "ପ୍ଲଗଇନ %s ସ୍ଥାପନ କରେନାହିଁ, ଏଡ଼ାଇ ଦେଉଛି" #: ../sos/sosreport.py:563 msgid "no valid plugins found" msgstr "କୌଣସି ବୈଧ ପ୍ଲଗଇନ ମିଳୁନାହିଁ" #: ../sos/sosreport.py:567 msgid "The following plugins are currently enabled:" msgstr "ନିମ୍ନଲିଖିତ ପ୍ଲଗଇନଗୁଡ଼ିକ ବର୍ତ୍ତମାନ ସକ୍ରିୟ ହୋଇଛି:" #: ../sos/sosreport.py:573 msgid "No plugin enabled." msgstr "କୌଣସି ପ୍ଲଗଇନ ସକ୍ରିୟ ହୋଇନାହିଁ।" #: ../sos/sosreport.py:577 msgid "The following plugins are currently disabled:" msgstr "ନିମ୍ନଲିଖିତ ପ୍ଲଗଇନଗୁଡ଼ିକ ବର୍ତ୍ତମାନ ନିଷ୍କ୍ରିୟ ହୋଇଛି:" #: ../sos/sosreport.py:585 msgid "The following plugin options are available:" msgstr "ନିମ୍ନଲିଖିତ ପ୍ଲଗଇନ ବିକଳ୍ପଗୁଡ଼ିକ ଉପଲବ୍ଧ ଅଛି:" #: ../sos/sosreport.py:606 msgid "No plugin options available." msgstr "କୌଣସି ପ୍ଲଗଇନ ବିକଳ୍ପ ଉପଲବ୍ଧ ନାହିଁ।" #: ../sos/sosreport.py:614 msgid "sosreport requires root permissions to run." msgstr "sosreport ଚାଲିବା ପାଇଁ ମୂଖ୍ୟଚାଳକ ଅନୁମତି ଆବଶ୍ୟକ କରିଥାଏ।" #: ../sos/sosreport.py:621 msgid "no valid plugins were enabled" msgstr "କୌଣସି ବୈଧ ପ୍ଲଗଇନକୁ ସକ୍ରିୟ କରାହୋଇନାହିଁ" #: ../sos/sosreport.py:624 #, python-format msgid "" "This utility will collect some detailed information about the\n" "hardware and setup of your %(distroa)s system.\n" "The information is collected and an archive is packaged under\n" "/tmp, which you can send to a support representative.\n" "%(distrob)s will use this information for diagnostic purposes ONLY\n" "and it will be considered confidential information.\n" "\n" "This process may take a while to complete.\n" "No changes will be made to your system.\n" "\n" msgstr "" "ଏହି ଉପଯୋଗିତାଟି ହାର୍ଡୱେର ବିଷୟରେ କିଛି ବିସ୍ତୃତ ସୂଚନା ସଂଗ୍ରହ ସଂଗ୍ରହ କରିବ\n" "ଏବଂ ଆପଣଙ୍କର %(distroa)s ତନ୍ତ୍ରକୁ ବିନ୍ୟାସ କରିବ।\n" "ସୂଚନା ସଂଗ୍ରହ କରାଯାଇଥାଏ ଏବଂ ଅଭିଲେଖକୁ /tmp ଅନ୍ତର୍ଗତରେ ପ୍ୟାକେଜ ହୋଇଥାଏ\n" ", ଯାହାକୁକି ଆପଣ ଜଣେ ସହାୟକ ପ୍ରତିନିଧିଙ୍କ ପାଖକୁ ପଠାଇପାରିବେ।\n" "%(distrob)s ଏହି ସୂଚନାକୁ କେବଳ ନିରୂପଣ କରିବା ଉଦ୍ଦେଶ୍ୟରେ ବ୍ୟବହାର କରିଥାଏ\n" "ଏବଂ ଏହାକୁ ଗୁପ୍ତ ସୂଚନା ଭାବରେ ଗ୍ରହଣ କରାଯାଇଥାଏ।\n" "\n" "ଏହି ପଦ୍ଧତି ସମ୍ପୂର୍ଣ୍ଣ ହେବା ପାଇଁ କିଛି ସମୟ ନେଇପାରେ।\n" "ଆପଣଙ୍କର ତନ୍ତ୍ରରେ କୌଣସି ପରିବର୍ତ୍ତନ କରାଯିବ ନାହିଁ।\n" "\n" #: ../sos/sosreport.py:639 msgid "Press ENTER to continue, or CTRL-C to quit.\n" msgstr "ଅଗ୍ରସର ହେବା ପାଇଁ ENTER ଦବାନ୍ତୁ, ଅଥବା ବିଦାୟ ନେବା ପାଇଁ CTRL-C ଦବାନ୍ତୁ।\n" #: ../sos/sosreport.py:665 msgid "One or more plugins have detected a problem in your configuration." msgstr "ଆପଣଙ୍କର ସଂରଚନାରେ ଗୋଟିଏ କିମ୍ବା ଅଧିକ ପ୍ଲଗଇନରେ ସମସ୍ୟା ଦେଖାଦେଇଛି।" #: ../sos/sosreport.py:667 msgid "Please review the following messages:" msgstr "ଦୟାକରି ନିମ୍ନଲିଖିତ ସନ୍ଦେଶଗୁଡ଼ିକୁ ପ୍ରାକଦର୍ଶନ କରନ୍ତୁ:" #: ../sos/sosreport.py:683 msgid "Are you sure you would like to continue (y/n) ? " msgstr "ଆପଣ ଅଗ୍ରସର ହେବା ପାଇଁ ଚାହୁଁଛନ୍ତି ବୋଲି ନିଶ୍ଚିତ କି (y/n) ? " #: ../sos/sosreport.py:685 msgid "y" msgstr "ହଁ" #: ../sos/sosreport.py:685 msgid "Y" msgstr "Y" #: ../sos/sosreport.py:688 msgid "n" msgstr "ନାଁ" #: ../sos/sosreport.py:688 msgid "N" msgstr "N" #: ../sos/sosreport.py:713 msgid " Running plugins. Please wait ..." msgstr " ପ୍ଲଗଇନଗୁଡ଼ିକ ଚାଲୁଅଛି। ଦୟାକରି ଅପେକ୍ଷାକରନ୍ତୁ ..." #: ../sos/sosreport.py:827 #, python-format msgid " sosreport build tree is located at : %s" msgstr " sos ବିବରଣୀ ନିର୍ମାଣ ବୃକ୍ଷଟି ଏଠାରେ ଅବସ୍ଥିତ : %s" #: ../sos/policyredhat.py:211 #, python-format msgid "Please enter your first initial and last name [%s]: " msgstr "ଦୟାକରି ଆପଣଙ୍କର ନାମର ପ୍ରଥମ ଏବଂ ଅନ୍ତିମ ଭାଗ ଭରଣ କରନ୍ତୁ [%s]: " #: ../sos/policyredhat.py:214 msgid "Please enter the case number that you are generating this report for: " msgstr "ଦୟାକରି ଅଭିଯୋଗ କ୍ରମ ସଂଖ୍ୟା ଭରଣ କରନ୍ତୁ ଯାହା ପାଇଁ ଆପଣ ଏହି ଖବରକୁ ସୃଷ୍ଟି କରିଛନ୍ତି: " #: ../sos/policyredhat.py:254 msgid "Creating compressed archive..." msgstr "ସଙ୍କୁଚିତ ଅଭିଲେଖ ନିର୍ମାଣ କରୁଅଛି..." #: ../sos/policyredhat.py:284 msgid "Encrypting archive..." msgstr "ଅଭିଲେଖକୁ ସଂଗୁପ୍ତ ରଖୁଅଛି..." #: ../sos/policyredhat.py:304 msgid "There was a problem encrypting your report." msgstr "ଆପଣଙ୍କର ଖବରକୁ ସଂଗୁପ୍ତ କରିବା ସମୟରେ ଗୋଟିଏ ସମସ୍ୟା ଦେଖାଦେଇଥିଲା।" #: ../sos/policyredhat.py:328 #, python-format msgid "" "Your sosreport has been generated and saved in:\n" " %s" msgstr "" "ଆପଣଙ୍କର sosreport ସୃଷ୍ଟିହୋଇଛି ଏବଂ ଏଥିରେ ସଂରକ୍ଷିତ ହୋଇଛି:\n" " %s" #: ../sos/policyredhat.py:331 msgid "The md5sum is: " msgstr "ଏହି md5sum ଟି ହେଉଛି: " #: ../sos/policyredhat.py:333 msgid "Please send this file to your support representative." msgstr "ଦୟାକରି ଏହି ଫାଇଲକୁ ଆପଣଙ୍କର ସହାୟତା ପ୍ରତିନିଧିଙ୍କ ପାଖକୁ ପଠାନ୍ତୁ।" #: ../sos/policyredhat.py:355 msgid "No URL defined in config file." msgstr "ବିନ୍ୟାସ ଫାଇଲରେ କୌଣସି URL କୁ ବ୍ୟାଖ୍ଯା କରାଯାଇନାହିଁ।" #: ../sos/policyredhat.py:362 msgid "Cannot upload to specified URL." msgstr "ଉଲ୍ଲିଖିତ URL କୁ ଧାରଣ କରିପାରିବେ ନାହିଁ।" #: ../sos/policyredhat.py:399 msgid "There was a problem uploading your report to Red Hat support." msgstr "Red Hat ସହାୟତାରେ ଆପଣଙ୍କର ବିବରଣୀକୁ ଧାରଣ କରିବାରେ ସମସ୍ୟା ଦୋଇଥିଲା।" #: ../sos/policyredhat.py:401 #, python-format msgid "Your report was successfully uploaded to %s with name:" msgstr "ଆପଣଙ୍କର ବିବରଣୀକୁ %s ରେ ନିମ୍ନଲିଖିତ ନାମରେ ସଫଳତାର ସହିତ ଧାରଣ ହୋଇଛି:" #: ../sos/policyredhat.py:404 msgid "Please communicate this name to your support representative." msgstr "ଦୟାକରି ଏହି ନାମକୁ ଆପଣଙ୍କର ସହାୟତା ପ୍ରତିନିଧିଙ୍କ ପାଖକୁ ପଠାନ୍ତୁ।" #~ msgid "plugin %s skipped (--skip-plugins)" #~ msgstr "ପ୍ଲଗଇନ %s ଏଡ଼ାଇଦେଇଛି (--skip-plugins)" #~ msgid "plugin %s is inactive (use -e or -o to enable)." #~ msgstr "ପ୍ଲଗଇନ %s ଟି ନିଷ୍କ୍ରିୟ ଅଛି (ସକ୍ରିୟ କରିବା ପାଇଁ -e ଅଥବା -o କୁ ବ୍ୟବହାର କରନ୍ତୁ)।" #~ msgid "plugin %s not specified in --only-plugins list" #~ msgstr "ପ୍ଲଗଇନ %s କୁ --only-plugins ତାଲିକାରେ ଉଲ୍ଲେଖ କରାଯାଇନାହିଁ" #~ msgid "processing options from plugin: %s" #~ msgstr "ପ୍ଲଗଇନରୁ ବିକଳ୍ପଗୁଡ଼ିକୁ କାର୍ଯ୍ୟକାରୀ କରୁଅଛି: %s" sosreport/pylintrc0000644000175000017500000002337312254061770013053 0ustar zefzef# lint Python modules using external checkers. # # This is the main checker controling the other ones and the reports # generation. It is itself both a raw checker and an astng checker in order # to: # * handle message activation / deactivation at the module level # * handle some basic but necessary stats'data (number of classes, methods...) # # This checker also defines the following reports: # * R0001: Total errors / warnings # * R0002: % errors / warnings by module # * R0003: Messages # * R0004: Global evaluation [MASTER] # Profiled execution. profile=no # Add to the black list. It should be a base name, not a # path. You may set this option multiple times. ignore=CVS # Pickle collected data for later comparisons. persistent=yes # Set the cache size for astng objects. cache-size=500 # List of plugins (as comma separated values of python modules names) to load, # usually to register additional checkers. load-plugins= [REPORTS] # Tells wether to display a full report or only the messages reports=yes # Use HTML as output format instead of text html=no # Use a parseable text output format, so your favorite text editor will be able # to jump to the line corresponding to a message. parseable=yes # Colorizes text output using ansi escape codes color=no # Put messages in a separate file for each module / package specified on the # command line instead of printing them on stdout. Reports (if any) will be # written in a file name "pylint_global.[txt|html]". files-output=no # Python expression which should return a note less than 10 (10 is the highest # note).You have access to the variables errors warning, statement which # respectivly contain the number of errors / warnings messages and the total # number of statements analyzed. This is used by the global evaluation report # (R0004). evaluation=10.0 - ((float(5 * error + warning + refactor + convention) / statement) * 10) # Add a comment according to your evaluation note. This is used by the global # evaluation report (R0004). comment=no # Include message's id in output include-ids=yes # checks for # * unused variables / imports # * undefined variables # * redefinition of variable from builtins or from an outer scope # * use of variable before assigment # [VARIABLES] # Enable / disable this checker enable-variables=yes # Tells wether we should check for unused import in __init__ files. init-import=no # A regular expression matching names used for dummy variables (i.e. not used). dummy-variables-rgx=_|dummy # List of additional names supposed to be defined in builtins. Remember that # you should avoid to define new builtins when possible. additional-builtins=_ # try to find bugs in the code using type inference # [TYPECHECK] # Enable / disable this checker enable-typecheck=yes # Tells wether missing members accessed in mixin class should be ignored. A # mixin class is detected if its name ends with "mixin" (case insensitive). ignore-mixin-members=yes # When zope mode is activated, consider the acquired-members option to ignore # access to some undefined attributes. zope=no # List of members which are usually get through zope's acquisition mecanism and # so shouldn't trigger E0201 when accessed (need zope=yes to be considered. acquired-members=REQUEST,acl_users,aq_parent # checks for : # * doc strings # * modules / classes / functions / methods / arguments / variables name # * number of arguments, local variables, branchs, returns and statements in # functions, methods # * required module attributes # * dangerous default values as arguments # * redefinition of function / method / class # * uses of the global statement # # This checker also defines the following reports: # * R0101: Statistics by type [BASIC] # Enable / disable this checker enable-basic=yes #disable-msg=C0121 # Required attributes for module, separated by a comma required-attributes= # Regular expression which should only match functions or classes name which do # not require a docstring no-docstring-rgx=__.*__ # Regular expression which should only match correct module names module-rgx=(([a-z_][a-z0-9_]*)|([A-Z][a-zA-Z0-9]+))$ # Regular expression which should only match correct module level names const-rgx=(([A-Z_][A-Z1-9_]*)|(__.*__))$ # Regular expression which should only match correct class names class-rgx=[A-Z_][a-zA-Z0-9]+$ # Regular expression which should only match correct function names function-rgx=[a-z_][A-Za-z0-9_]{2,30}$ # Regular expression which should only match correct method names method-rgx=[a-z_][A-Za-z0-9_]{2,30}$ # Regular expression which should only match correct instance attribute names attr-rgx=[a-z_][A-Za-z0-9_]{2,30}$ # Regular expression which should only match correct argument names argument-rgx=[a-z_][A-Za-z0-9_]{2,30}$ # Regular expression which should only match correct variable names variable-rgx=[a-z_][A-Za-z0-9_]{0,30}$ # Regular expression which should only match correct list comprehension / # generator expression variable names inlinevar-rgx=[A-Za-z_][A-Za-z0-9_]*$ # Good variable names which should always be accepted, separated by a comma good-names=i,j,k,ex,Run,_ # Bad variable names which should always be refused, separated by a comma bad-names=foo,bar,baz,toto,tutu,tata # List of builtins function names that should not be used, separated by a comma bad-functions=map,filter,apply,input # checks for sign of poor/misdesign: # * number of methods, attributes, local variables... # * size, complexity of functions, methods # [DESIGN] # Enable / disable this checker enable-design=yes # Maximum number of arguments for function / method max-args=5 # Maximum number of locals for function / method body max-locals=15 # Maximum number of return / yield for function / method body max-returns=6 # Maximum number of branch for function / method body max-branchs=12 # Maximum number of statements in function / method body max-statements=50 # Maximum number of parents for a class (see R0901). max-parents=7 # Maximum number of attributes for a class (see R0902). max-attributes=7 # Minimum number of public methods for a class (see R0903). min-public-methods=2 # Maximum number of public methods for a class (see R0904). max-public-methods=20 # checks for : # * methods without self as first argument # * overriden methods signature # * access only to existant members via self # * attributes not defined in the __init__ method # * supported interfaces implementation # * unreachable code # [CLASSES] # Enable / disable this checker enable-classes=yes # List of interface methods to ignore, separated by a comma. This is used for # instance to not check methods defines in Zope's Interface base class. ignore-iface-methods=isImplementedBy,deferred,extends,names,namesAndDescriptions,queryDescriptionFor,getBases,getDescriptionFor,getDoc,getName,getTaggedValue,getTaggedValueTags,isEqualOrExtendedBy,setTaggedValue,isImplementedByInstancesOf,adaptWith,is_implemented_by # List of method names used to declare (i.e. assign) instance attributes. defining-attr-methods=__init__,__new__,setUp # checks for # * external modules dependencies # * relative / wildcard imports # * cyclic imports # * uses of deprecated modules # # This checker also defines the following reports: # * R0401: External dependencies # * R0402: Modules dependencies graph [IMPORTS] # Enable / disable this checker enable-imports=no # Deprecated modules which should not be used, separated by a comma deprecated-modules=regsub,string,TERMIOS,Bastion,rexec # Create a graph of every (i.e. internal and external) dependencies in the # given file (report R0402 must not be disabled) import-graph= # Create a graph of external dependencies in the given file (report R0402 must # not be disabled) ext-import-graph= # Create a graph of internal dependencies in the given file (report R0402 must # not be disabled) int-import-graph= # checks for usage of new style capabilities on old style classes and # other new/old styles conflicts problems # * use of property, __slots__, super # * "super" usage # * raising a new style class as exception # [NEWSTYLE] # Enable / disable this checker enable-newstyle=yes # checks for # * excepts without exception filter # * string exceptions # [EXCEPTIONS] # Enable / disable this checker enable-exceptions=yes # checks for : # * unauthorized constructions # * strict indentation # * line length # * use of <> instead of != # [FORMAT] # Enable / disable this checker enable-format=yes # Maximum number of characters on a single line. max-line-length=132 # Maximum number of lines in a module max-module-lines=1000 # String used as indentation unit. This is usually " " (4 spaces) or "\t" (1 # tab). indent-string=' ' # checks for similarities and duplicated code. This computation may be # memory / CPU intensive, so you should disable it if you experiments some # problems. # # This checker also defines the following reports: # * R0801: Duplication [SIMILARITIES] # Enable / disable this checker enable-similarities=yes # Minimum lines number of a similarity. min-similarity-lines=4 # Ignore comments when computing similarities. ignore-comments=yes # Ignore docstrings when computing similarities. ignore-docstrings=yes # checks for: # * warning notes in the code like FIXME, XXX # * PEP 263: source code with non ascii character but no encoding declaration # [MISCELLANEOUS] # Enable / disable this checker enable-miscellaneous=yes # List of note tags to take in consideration, separated by a comma. Default to # FIXME, XXX, TODO notes=FIXME,XXX,TODO # does not check anything but gives some raw metrics : # * total number of lines # * total number of code lines # * total number of docstring lines # * total number of comments lines # * total number of empty lines # # This checker also defines the following reports: # * R0701: Raw metrics [METRICS] # Enable / disable this checker enable-metrics=no sosreport/sosreport0000755000175000017500000000157112254061770013246 0ustar zefzef#!/usr/bin/python # This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. """ sos entry point. """ #from sos.sosreport import sosreport, doExitCode from sos.sosreport import main import sys if __name__ == '__main__': main(sys.argv[1:]) # vim:ts=4 et sw=4 sosreport/tests/0000755000175000017500000000000012271442125012412 5ustar zefzefsosreport/tests/utilities_tests.py0000644000175000017500000000702712271434554016236 0ustar zefzefimport os.path import unittest # PYCOMPAT import six from six import StringIO from sos.utilities import grep, DirTree, checksum, get_hash_name, is_executable, sos_get_command_output, find, tail, shell_out import sos TEST_DIR = os.path.dirname(__file__) class GrepTest(unittest.TestCase): def test_file_obj(self): test_s = "\n".join(['this is only a test', 'there are only two lines']) test_fo = StringIO(test_s) matches = grep(".*test$", test_fo) self.assertEquals(matches, ['this is only a test\n']) def test_real_file(self): matches = grep(".*unittest$", __file__.replace(".pyc", ".py")) self.assertEquals(matches, ['import unittest\n']) def test_open_file(self): matches = grep(".*unittest$", open(__file__.replace(".pyc", ".py"))) self.assertEquals(matches, ['import unittest\n']) def test_grep_multiple_files(self): matches = grep(".*unittest$", __file__.replace(".pyc", ".py"), "does_not_exist.txt") self.assertEquals(matches, ['import unittest\n']) class TailTest(unittest.TestCase): def test_tail(self): t = tail("tests/tail_test.txt", 10) self.assertEquals(t, six.b("last line\n")) def test_tail_too_many(self): t = tail("tests/tail_test.txt", 200) expected = open("tests/tail_test.txt", "r").read() self.assertEquals(t, six.b(expected)) class DirTreeTest(unittest.TestCase): def test_makes_tree(self): # I'll admit, this a pretty lame test, but it will at least sniff out # some syntax issues t = DirTree(os.path.dirname(sos.__file__)).as_string() self.assertTrue('sos' in t) class ChecksumTest(unittest.TestCase): def test_simple_hash(self): self.assertEquals(checksum(StringIO('this is a test'), algorithm="sha256"), '2e99758548972a8e8822ad47fa1017ff72f06f3ff6a016851f45c398732bc50c') def test_hash_loading(self): # not the greatest test, since we are asking the policy to pick for us name = get_hash_name() self.assertTrue(name in ('md5', 'sha256')) class ExecutableTest(unittest.TestCase): def test_nonexe_file(self): path = os.path.join(TEST_DIR, 'utility_tests.py') self.assertFalse(is_executable(path)) def test_exe_file(self): path = os.path.join(TEST_DIR, 'test_exe.py') self.assertTrue(is_executable(path)) def test_exe_file_abs_path(self): self.assertTrue(is_executable("/usr/bin/timeout")) def test_output(self): path = os.path.join(TEST_DIR, 'test_exe.py') ret, out, junk = sos_get_command_output(path) self.assertEquals(ret, 0) self.assertEquals(out, "executed\n") def test_output_non_exe(self): path = os.path.join(TEST_DIR, 'utility_tests.py') ret, out, junk = sos_get_command_output(path) self.assertEquals(ret, 127) self.assertEquals(out, "") def test_shell_out(self): path = os.path.join(TEST_DIR, 'test_exe.py') self.assertEquals("executed\n", shell_out(path)) class FindTest(unittest.TestCase): def test_find_leaf(self): leaves = find("leaf", TEST_DIR) self.assertTrue(any(name.endswith("leaf") for name in leaves)) def test_too_shallow(self): leaves = find("leaf", TEST_DIR, max_depth=1) self.assertFalse(any(name.endswith("leaf") for name in leaves)) def test_not_in_pattern(self): leaves = find("leaf", TEST_DIR, path_pattern="tests/path") self.assertFalse(any(name.endswith("leaf") for name in leaves)) sosreport/tests/ziptest_link0000777000175000017500000000000012254061770016502 2ziptestustar zefzefsosreport/tests/tail_test.txt0000644000175000017500000000017212254061770015147 0ustar zefzefthis is a file to test tail with I have a few lines in here I just need enough text to mess with it this is the last line sosreport/tests/importer_tests.py0000644000175000017500000000044512254061770016056 0ustar zefzefimport unittest from sos.utilities import ImporterHelper class ImporterHelperTests(unittest.TestCase): def test_runs(self): h = ImporterHelper(unittest) modules = h.get_modules() self.assertTrue('main' in modules) if __name__ == "__main__": unittest.main() sosreport/tests/sosreport_pexpect.py0000644000175000017500000000143612254061770016564 0ustar zefzef#!/usr/bin/env python import unittest import pexpect from re import search, escape from os import kill from signal import SIGINT class PexpectTest(unittest.TestCase): def test_plugins_install(self): sos = pexpect.spawn('/usr/sbin/sosreport -l') try: sos.expect('plugin.*does not install, skipping') except pexpect.EOF: pass else: self.fail("a plugin does not install or sosreport is too slow") kill(sos.pid, SIGINT) def test_batchmode_removes_questions(self): sos = pexpect.spawn('/usr/sbin/sosreport --batch') grp = sos.expect('send this file to your support representative.', 15) self.assertEquals(grp, 0) kill(sos.pid, SIGINT) if __name__ == '__main__': unittest.main() sosreport/tests/path/0000755000175000017500000000000012254061770013352 5ustar zefzefsosreport/tests/path/to/0000755000175000017500000000000012254061770013774 5ustar zefzefsosreport/tests/path/to/leaf0000644000175000017500000000000012254061770014614 0ustar zefzefsosreport/tests/archive_tests.py0000644000175000017500000001172312254061770015637 0ustar zefzef#!/usr/bin/env python import unittest import os import tarfile import zipfile import tempfile import shutil from sos.archive import TarFileArchive, ZipFileArchive # PYCOMPAT import six class ZipFileArchiveTest(unittest.TestCase): def setUp(self): self.zf = ZipFileArchive('test') def tearDown(self): os.unlink('test.zip') def check_for_file(self, filename): zf = zipfile.ZipFile('test.zip', 'r') zf.getinfo(filename) zf.close() def test_create(self): self.zf.close() def test_add_file(self): self.zf.add_file('tests/ziptest') self.zf.close() self.check_for_file('tests/ziptest') def test_add_unicode_file(self): self.zf.add_file(u'tests/') self.zf.close() self.check_for_file('tests/ziptest') def test_add_dir(self): self.zf.add_file('tests/') self.zf.close() self.check_for_file('tests/ziptest') def test_add_renamed(self): self.zf.add_file('tests/ziptest', dest='tests/ziptest_renamed') self.zf.close() self.check_for_file('tests/ziptest_renamed') def test_add_renamed_dir(self): self.zf.add_file('tests/', 'tests_renamed/') self.zf.close() self.check_for_file('tests_renamed/ziptest') def test_add_string(self): self.zf.add_string('this is content', 'tests/string_test.txt') self.zf.close() self.check_for_file('tests/string_test.txt') def test_get_file(self): self.zf.add_string('this is my content', 'tests/string_test.txt') afp = self.zf.open_file('tests/string_test.txt') self.assertEquals(six.b('this is my content'), afp.read()) def test_overwrite_file(self): self.zf.add_string('this is my content', 'tests/string_test.txt') self.zf.add_string('this is my new content', 'tests/string_test.txt') afp = self.zf.open_file('tests/string_test.txt') self.assertEquals(six.b('this is my new content'), afp.read()) # Disabled as new api doesnt provide a add_link routine # def test_make_link(self): # self.zf.add_file('tests/ziptest') # self.zf.add_link('tests/ziptest', 'link_name') # # self.zf.close() # try: # self.check_for_file('test/link_name') # self.fail("link should not exist") # except KeyError: # pass # Disabled as new api doesnt provide a compress routine # def test_compress(self): # self.assertEquals(self.zf.compress("zip"), self.zf.name()) class TarFileArchiveTest(unittest.TestCase): def setUp(self): self.tmpdir = tempfile.mkdtemp() self.tf = TarFileArchive('test', self.tmpdir) def tearDown(self): shutil.rmtree(self.tmpdir) def check_for_file(self, filename): rtf = tarfile.open(os.path.join(self.tmpdir, 'test.tar')) rtf.getmember(filename) rtf.close() def test_create(self): self.tf.finalize('auto') self.assertTrue(os.path.exists(os.path.join(self.tmpdir, 'test.tar'))) def test_add_file(self): self.tf.add_file('tests/ziptest') self.tf.finalize('auto') self.check_for_file('test/tests/ziptest') # Since commit 179d9bb add_file does not support recursive directory # addition. Disable this test for now. # def test_add_dir(self): # self.tf.add_file('tests/') # self.tf.close() # # self.check_for_file('test/tests/ziptest') def test_add_renamed(self): self.tf.add_file('tests/ziptest', dest='tests/ziptest_renamed') self.tf.finalize('auto') self.check_for_file('test/tests/ziptest_renamed') # Since commit 179d9bb add_file does not support recursive directory # addition. Disable this test for now. # def test_add_renamed_dir(self): # self.tf.add_file('tests/', 'tests_renamed/') # self.tf.close() # # self.check_for_file('test/tests_renamed/ziptest') def test_add_string(self): self.tf.add_string('this is content', 'tests/string_test.txt') self.tf.finalize('auto') self.check_for_file('test/tests/string_test.txt') def test_get_file(self): self.tf.add_string('this is my content', 'tests/string_test.txt') afp = self.tf.open_file('tests/string_test.txt') self.assertEquals('this is my content', afp.read()) def test_overwrite_file(self): self.tf.add_string('this is my content', 'tests/string_test.txt') self.tf.add_string('this is my new content', 'tests/string_test.txt') afp = self.tf.open_file('tests/string_test.txt') self.assertEquals('this is my new content', afp.read()) def test_make_link(self): self.tf.add_file('tests/ziptest') self.tf.add_link('tests/ziptest', 'link_name') self.tf.finalize('auto') self.check_for_file('test/link_name') def test_compress(self): self.tf.finalize("auto") if __name__ == "__main__": unittest.main() sosreport/tests/policy_tests.py0000644000175000017500000000341012254061770015507 0ustar zefzefimport unittest from sos.policies import Policy, PackageManager, import_policy from sos.plugins import Plugin, IndependentPlugin, RedHatPlugin, DebianPlugin class FauxPolicy(Policy): distro = "Faux" class FauxPlugin(Plugin, IndependentPlugin): pass class FauxRedHatPlugin(Plugin, RedHatPlugin): pass class FauxDebianPlugin(Plugin, DebianPlugin): pass class PolicyTests(unittest.TestCase): def test_independent_only(self): p = FauxPolicy() p.valid_subclasses = [] self.assertTrue(p.validatePlugin(FauxPlugin)) def test_redhat(self): p = FauxPolicy() p.valid_subclasses = [RedHatPlugin] self.assertTrue(p.validatePlugin(FauxRedHatPlugin)) def test_debian(self): p = FauxPolicy() p.valid_subclasses = [DebianPlugin] self.assertTrue(p.validatePlugin(FauxDebianPlugin)) def test_fails(self): p = FauxPolicy() p.valid_subclasses = [] self.assertFalse(p.validatePlugin(FauxDebianPlugin)) def test_can_import(self): self.assertTrue(import_policy('redhat') is not None) def test_cant_import(self): self.assertTrue(import_policy('notreal') is None) class PackageManagerTests(unittest.TestCase): def setUp(self): self.pm = PackageManager() def test_default_all_pkgs(self): self.assertEquals(self.pm.all_pkgs(), {}) def test_default_all_pkgs_by_name(self): self.assertEquals(self.pm.all_pkgs_by_name('doesntmatter'), []) def test_default_all_pkgs_by_name_regex(self): self.assertEquals(self.pm.all_pkgs_by_name_regex('.*doesntmatter$'), []) def test_default_pkg_by_name(self): self.assertEquals(self.pm.pkg_by_name('foo'), None) if __name__ == "__main__": unittest.main() sosreport/tests/ziptest0000644000175000017500000000000012254061770014031 0ustar zefzefsosreport/tests/plugin_tests.py0000644000175000017500000002345512254061770015521 0ustar zefzefimport unittest import os import tempfile # PYCOMPAT import six if six.PY2: from StringIO import StringIO else: from io import StringIO from sos.plugins import Plugin, regex_findall, sos_relative_path, mangle_command from sos.archive import TarFileArchive, ZipFileArchive import sos.policies PATH = os.path.dirname(__file__) def j(filename): return os.path.join(PATH, filename) def create_file(size): f = tempfile.NamedTemporaryFile(delete=False) f.write(six.b("*" * size * 1024 * 1024)) f.flush() f.close() return f.name class MockArchive(TarFileArchive): def __init__(self): self.m = {} self.strings = {} def name(self): return "mock.archive" def add_file(self, src, dest=None): if not dest: dest = src self.m[src] = dest def add_string(self, content, dest): self.m[dest] = content def add_link(self, dest, link_name): pass def open_file(self, name): return open(self.m.get(name), 'r') def close(self): pass def compress(self, method): pass class MockPlugin(Plugin): option_list = [("opt", 'an option', 'fast', None), ("opt2", 'another option', 'fast', False)] def setup(self): pass class NamedMockPlugin(Plugin): """This plugin has a description.""" plugin_name = "testing" def setup(self): pass class ForbiddenMockPlugin(Plugin): """This plugin has a description.""" plugin_name = "forbidden" def setup(self): self.add_forbidden_path("tests") class EnablerPlugin(Plugin): def is_installed(self, pkg): return self.is_installed class MockOptions(object): profiler = False class PluginToolTests(unittest.TestCase): def test_regex_findall(self): test_s = "\n".join(['this is only a test', 'there are only two lines']) test_fo = StringIO(test_s) matches = regex_findall(r".*lines$", test_fo) self.assertEquals(matches, ['there are only two lines']) def test_regex_findall_miss(self): test_s = "\n".join(['this is only a test', 'there are only two lines']) test_fo = StringIO(test_s) matches = regex_findall(r".*not_there$", test_fo) self.assertEquals(matches, []) def test_regex_findall_bad_input(self): matches = regex_findall(r".*", None) self.assertEquals(matches, []) matches = regex_findall(r".*", []) self.assertEquals(matches, []) matches = regex_findall(r".*", 1) self.assertEquals(matches, []) def test_rel_path(self): path1 = "/usr/lib/foo" path2 = "/usr/lib/boo" self.assertEquals(sos_relative_path(path1, path2), "../boo") def test_abs_path(self): path1 = "usr/lib/foo" path2 = "foo/lib/boo" self.assertEquals(sos_relative_path(path1, path2), "foo/lib/boo") def test_bad_path(self): path1 = None path2 = "foo/lib/boo" self.assertEquals(sos_relative_path(path1, path2), "foo/lib/boo") def test_mangle_command(self): self.assertEquals("foo", mangle_command("/usr/bin/foo")) self.assertEquals("foo_-x", mangle_command("/usr/bin/foo -x")) self.assertEquals("foo_--verbose", mangle_command("/usr/bin/foo --verbose")) self.assertEquals("foo_.path.to.stuff", mangle_command("/usr/bin/foo /path/to/stuff")) expected = "foo_.path.to.stuff.this.is.very.long.and.i.only.expect.part.of.it.maybe.this.is.enough.i.hope.so"[0:64] self.assertEquals(expected, mangle_command("/usr/bin/foo /path/to/stuff/this/is/very/long/and/i/only/expect/part/of/it/maybe/this/is/enough/i/hope/so")) class PluginTests(unittest.TestCase): def setUp(self): self.mp = MockPlugin({ 'cmdlineopts': MockOptions() }) self.mp.archive = MockArchive() def test_plugin_default_name(self): p = MockPlugin({}) self.assertEquals(p.name(), "mockplugin") def test_plugin_set_name(self): p = NamedMockPlugin({}) self.assertEquals(p.name(), "testing") def test_plugin_no_descrip(self): p = MockPlugin({}) self.assertEquals(p.get_description(), "") def test_plugin_no_descrip(self): p = NamedMockPlugin({}) self.assertEquals(p.get_description(), "This plugin has a description.") def test_set_plugin_option(self): p = MockPlugin({}) p.set_option("opt", "testing") self.assertEquals(p.get_option("opt"), "testing") def test_set_nonexistant_plugin_option(self): p = MockPlugin({}) self.assertFalse(p.set_option("badopt", "testing")) def test_get_nonexistant_plugin_option(self): p = MockPlugin({}) self.assertEquals(p.get_option("badopt"), 0) def test_get_unset_plugin_option(self): p = MockPlugin({}) self.assertEquals(p.get_option("opt"), 0) def test_get_unset_plugin_option_with_default(self): # this shows that even when we pass in a default to get, # we'll get the option's default as set in the plugin # this might not be what we really want p = MockPlugin({}) self.assertEquals(p.get_option("opt", True), True) def test_get_unset_plugin_option_with_default_not_none(self): # this shows that even when we pass in a default to get, # if the plugin default is not None # we'll get the option's default as set in the plugin # this might not be what we really want p = MockPlugin({}) self.assertEquals(p.get_option("opt2", True), False) def test_get_option_as_list_plugin_option(self): p = MockPlugin({}) p.set_option("opt", "one,two,three") self.assertEquals(p.get_option_as_list("opt"), ['one', 'two', 'three']) def test_get_option_as_list_plugin_option_default(self): p = MockPlugin({}) self.assertEquals(p.get_option_as_list("opt", default=[]), []) def test_get_option_as_list_plugin_option_not_list(self): p = MockPlugin({}) p.set_option("opt", "testing") self.assertEquals(p.get_option_as_list("opt"), ['testing']) def test_copy_dir(self): self.mp.do_copy_file_or_dir("tests") self.assertEquals(self.mp.archive.m["tests/plugin_tests.py"], 'tests/plugin_tests.py') def test_copy_dir_sub(self): self.mp.do_copy_file_or_dir("tests", sub=("tests/", "foobar/")) self.assertEquals(self.mp.archive.m["tests/plugin_tests.py"], 'foobar/plugin_tests.py') def test_copy_dir_bad_path(self): self.mp.do_copy_file_or_dir("not_here_tests") self.assertEquals(self.mp.archive.m, {}) def test_copy_dir_forbidden_path(self): p = ForbiddenMockPlugin({ 'cmdlineopts': MockOptions() }) p.archive = MockArchive() p.setup() p.do_copy_file_or_dir("tests") self.assertEquals(p.archive.m, {}) class AddCopySpecLimitTests(unittest.TestCase): def setUp(self): self.mp = MockPlugin({ 'cmdlineopts': MockOptions() }) self.mp.archive = MockArchive() def test_single_file_under_limit(self): self.mp.add_copy_spec_limit("tests/tail_test.txt", 1) self.assertEquals(self.mp.copy_paths, [('tests/tail_test.txt', None)]) def test_single_file_over_limit(self): fn = create_file(2) # create 2MB file, consider a context manager self.mp.add_copy_spec_limit(fn, 1, sub=('tmp', 'awesome')) content, fname = self.mp.copy_strings[0] self.assertTrue("tailed" in fname) self.assertTrue("awesome" in fname) self.assertTrue("/" not in fname) self.assertEquals(1024 * 1024, len(content)) os.unlink(fn) def test_bad_filename(self): self.assertFalse(self.mp.add_copy_spec_limit('', 1)) self.assertFalse(self.mp.add_copy_spec_limit(None, 1)) def test_glob_file_over_limit(self): # assume these are in /tmp fn = create_file(2) fn2 = create_file(2) self.mp.add_copy_spec_limit("/tmp/tmp*", 1) self.assertEquals(len(self.mp.copy_strings), 1) content, fname = self.mp.copy_strings[0] self.assertTrue("tailed" in fname) self.assertEquals(1024 * 1024, len(content)) os.unlink(fn) os.unlink(fn2) class CheckEnabledTests(unittest.TestCase): def setUp(self): self.mp = EnablerPlugin({'policy': sos.policies.load()}) def test_checks_for_file(self): f = j("tail_test.txt") self.mp.files = (f,) self.assertTrue(self.mp.check_enabled()) def test_checks_for_package(self): self.mp.packages = ('foo',) self.assertTrue(self.mp.check_enabled()) def test_allows_bad_tuple(self): f = j("tail_test.txt") self.mp.files = (f) self.mp.packages = ('foo') self.assertTrue(self.mp.check_enabled()) def test_enabled_by_default(self): self.assertTrue(self.mp.check_enabled()) class RegexSubTests(unittest.TestCase): def setUp(self): self.mp = MockPlugin({ 'cmdlineopts': MockOptions() }) self.mp.archive = MockArchive() def test_file_never_copied(self): self.assertEquals(0, self.mp.do_file_sub("never_copied", r"^(.*)$", "foobar")) def test_no_replacements(self): self.mp.add_copy_spec(j("tail_test.txt")) self.mp.collect() replacements = self.mp.do_file_sub(j("tail_test.txt"), r"wont_match", "foobar") self.assertEquals(0, replacements) def test_replacements(self): self.mp.add_copy_spec(j("tail_test.txt")) self.mp.collect() replacements = self.mp.do_file_sub(j("tail_test.txt"), r"(tail)", "foobar") self.assertEquals(1, replacements) self.assertTrue("foobar" in self.mp.archive.m.get(j('tail_test.txt'))) if __name__ == "__main__": unittest.main() sosreport/tests/option_tests.py0000644000175000017500000000174712254061770015533 0ustar zefzef#!/usr/bin/env python import unittest from sos.plugins import Plugin class GlobalOptionTest(unittest.TestCase): def setUp(self): self.commons = { 'global_plugin_options': { 'test_option': 'foobar', 'baz': None, 'empty_global': True, }, } self.plugin = Plugin(self.commons) self.plugin.opt_names = ['baz', 'empty'] self.plugin.opt_parms = [{'enabled': False}, {'enabled': None}] def test_simple_lookup(self): self.assertEquals(self.plugin.get_option('test_option'), 'foobar') def test_multi_lookup(self): self.assertEquals(self.plugin.get_option(('not_there', 'test_option')), 'foobar') def test_cascade(self): self.assertEquals(self.plugin.get_option(('baz')), False) def test_none_should_cascade(self): self.assertEquals(self.plugin.get_option(('empty', 'empty_global')), True) if __name__ == "__main__": unittest.main() sosreport/tests/report_tests.py0000644000175000017500000000676312254061770015541 0ustar zefzef#!/usr/bin/env python import unittest import os try: import json except ImportError: import simplejson as json from sos.reporting import Report, Section, Command, CopiedFile, CreatedFile, Alert from sos.reporting import PlainTextReport class ReportTest(unittest.TestCase): def test_empty(self): report = Report() expected = json.dumps({}) self.assertEquals(expected, str(report)) def test_nested_section(self): report = Report() section = Section(name="section") report.add(section) expected = json.dumps({"section": {}}) self.assertEquals(expected, str(report)) def test_multiple_sections(self): report = Report() section = Section(name="section") report.add(section) section2 = Section(name="section2") report.add(section2) expected = json.dumps({"section": {}, "section2": {},}) self.assertEquals(expected, str(report)) def test_deeply_nested(self): report = Report() section = Section(name="section") command = Command(name="a command", return_code=0, href="does/not/matter") section.add(command) report.add(section) expected = json.dumps({"section": {"commands": [{"name": "a command", "return_code": 0, "href": "does/not/matter"}]}}) self.assertEquals(expected, str(report)) class TestPlainReport(unittest.TestCase): def setUp(self): self.report = Report() self.section = Section(name="plugin") self.div = PlainTextReport.DIVIDER def test_basic(self): self.assertEquals("", str(PlainTextReport(self.report))) def test_one_section(self): self.report.add(self.section) self.assertEquals("plugin\n" + self.div, str(PlainTextReport(self.report))) def test_two_sections(self): section1 = Section(name="first") section2 = Section(name="second") self.report.add(section1, section2) self.assertEquals("first\n" + self.div + "\nsecond\n" + self.div, str(PlainTextReport(self.report))) def test_command(self): cmd = Command(name="ls -al /foo/bar/baz", return_code=0, href="sos_commands/plugin/ls_-al_foo.bar.baz") self.section.add(cmd) self.report.add(self.section) self.assertEquals("plugin\n" + self.div + "\n- commands executed:\n * ls -al /foo/bar/baz", str(PlainTextReport(self.report))) def test_copied_file(self): cf = CopiedFile(name="/etc/hosts", href="etc/hosts") self.section.add(cf) self.report.add(self.section) self.assertEquals("plugin\n" + self.div + "\n- files copied:\n * /etc/hosts", str(PlainTextReport(self.report))) def test_created_file(self): crf = CreatedFile(name="sample.txt") self.section.add(crf) self.report.add(self.section) self.assertEquals("plugin\n" + self.div + "\n- files created:\n * sample.txt", str(PlainTextReport(self.report))) def test_alert(self): alrt = Alert("this is an alert") self.section.add(alrt) self.report.add(self.section) self.assertEquals("plugin\n" + self.div + "\n- alerts:\n ! this is an alert", str(PlainTextReport(self.report))) if __name__ == "__main__": unittest.main() sosreport/tests/test_exe.py0000755000175000017500000000004312254061770014610 0ustar zefzef#!/usr/bin/python print "executed" sosreport/LICENSE0000644000175000017500000004311412254061770012264 0ustar zefzef GNU GENERAL PUBLIC LICENSE Version 2, June 1991 Copyright (C) 1989, 1991 Free Software Foundation, Inc. 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA Everyone is permitted to copy and distribute verbatim copies of this license document, but changing it is not allowed. Preamble The licenses for most software are designed to take away your freedom to share and change it. By contrast, the GNU General Public License is intended to guarantee your freedom to share and change free software--to make sure the software is free for all its users. This General Public License applies to most of the Free Software Foundation's software and to any other program whose authors commit to using it. (Some other Free Software Foundation software is covered by the GNU Library General Public License instead.) You can apply it to your programs, too. When we speak of free software, we are referring to freedom, not price. Our General Public Licenses are designed to make sure that you have the freedom to distribute copies of free software (and charge for this service if you wish), that you receive source code or can get it if you want it, that you can change the software or use pieces of it in new free programs; and that you know you can do these things. To protect your rights, we need to make restrictions that forbid anyone to deny you these rights or to ask you to surrender the rights. These restrictions translate to certain responsibilities for you if you distribute copies of the software, or if you modify it. For example, if you distribute copies of such a program, whether gratis or for a fee, you must give the recipients all the rights that you have. You must make sure that they, too, receive or can get the source code. And you must show them these terms so they know their rights. We protect your rights with two steps: (1) copyright the software, and (2) offer you this license which gives you legal permission to copy, distribute and/or modify the software. Also, for each author's protection and ours, we want to make certain that everyone understands that there is no warranty for this free software. If the software is modified by someone else and passed on, we want its recipients to know that what they have is not the original, so that any problems introduced by others will not reflect on the original authors' reputations. Finally, any free program is threatened constantly by software patents. We wish to avoid the danger that redistributors of a free program will individually obtain patent licenses, in effect making the program proprietary. To prevent this, we have made it clear that any patent must be licensed for everyone's free use or not licensed at all. The precise terms and conditions for copying, distribution and modification follow. GNU GENERAL PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. This License applies to any program or other work which contains a notice placed by the copyright holder saying it may be distributed under the terms of this General Public License. The "Program", below, refers to any such program or work, and a "work based on the Program" means either the Program or any derivative work under copyright law: that is to say, a work containing the Program or a portion of it, either verbatim or with modifications and/or translated into another language. (Hereinafter, translation is included without limitation in the term "modification".) Each licensee is addressed as "you". Activities other than copying, distribution and modification are not covered by this License; they are outside its scope. The act of running the Program is not restricted, and the output from the Program is covered only if its contents constitute a work based on the Program (independent of having been made by running the Program). Whether that is true depends on what the Program does. 1. You may copy and distribute verbatim copies of the Program's source code as you receive it, in any medium, provided that you conspicuously and appropriately publish on each copy an appropriate copyright notice and disclaimer of warranty; keep intact all the notices that refer to this License and to the absence of any warranty; and give any other recipients of the Program a copy of this License along with the Program. You may charge a fee for the physical act of transferring a copy, and you may at your option offer warranty protection in exchange for a fee. 2. You may modify your copy or copies of the Program or any portion of it, thus forming a work based on the Program, and copy and distribute such modifications or work under the terms of Section 1 above, provided that you also meet all of these conditions: a) You must cause the modified files to carry prominent notices stating that you changed the files and the date of any change. b) You must cause any work that you distribute or publish, that in whole or in part contains or is derived from the Program or any part thereof, to be licensed as a whole at no charge to all third parties under the terms of this License. c) If the modified program normally reads commands interactively when run, you must cause it, when started running for such interactive use in the most ordinary way, to print or display an announcement including an appropriate copyright notice and a notice that there is no warranty (or else, saying that you provide a warranty) and that users may redistribute the program under these conditions, and telling the user how to view a copy of this License. (Exception: if the Program itself is interactive but does not normally print such an announcement, your work based on the Program is not required to print an announcement.) These requirements apply to the modified work as a whole. If identifiable sections of that work are not derived from the Program, and can be reasonably considered independent and separate works in themselves, then this License, and its terms, do not apply to those sections when you distribute them as separate works. But when you distribute the same sections as part of a whole which is a work based on the Program, the distribution of the whole must be on the terms of this License, whose permissions for other licensees extend to the entire whole, and thus to each and every part regardless of who wrote it. Thus, it is not the intent of this section to claim rights or contest your rights to work written entirely by you; rather, the intent is to exercise the right to control the distribution of derivative or collective works based on the Program. In addition, mere aggregation of another work not based on the Program with the Program (or with a work based on the Program) on a volume of a storage or distribution medium does not bring the other work under the scope of this License. 3. You may copy and distribute the Program (or a work based on it, under Section 2) in object code or executable form under the terms of Sections 1 and 2 above provided that you also do one of the following: a) Accompany it with the complete corresponding machine-readable source code, which must be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, b) Accompany it with a written offer, valid for at least three years, to give any third party, for a charge no more than your cost of physically performing source distribution, a complete machine-readable copy of the corresponding source code, to be distributed under the terms of Sections 1 and 2 above on a medium customarily used for software interchange; or, c) Accompany it with the information you received as to the offer to distribute corresponding source code. (This alternative is allowed only for noncommercial distribution and only if you received the program in object code or executable form with such an offer, in accord with Subsection b above.) The source code for a work means the preferred form of the work for making modifications to it. For an executable work, complete source code means all the source code for all modules it contains, plus any associated interface definition files, plus the scripts used to control compilation and installation of the executable. However, as a special exception, the source code distributed need not include anything that is normally distributed (in either source or binary form) with the major components (compiler, kernel, and so on) of the operating system on which the executable runs, unless that component itself accompanies the executable. If distribution of executable or object code is made by offering access to copy from a designated place, then offering equivalent access to copy the source code from the same place counts as distribution of the source code, even though third parties are not compelled to copy the source along with the object code. 4. You may not copy, modify, sublicense, or distribute the Program except as expressly provided under this License. Any attempt otherwise to copy, modify, sublicense or distribute the Program is void, and will automatically terminate your rights under this License. However, parties who have received copies, or rights, from you under this License will not have their licenses terminated so long as such parties remain in full compliance. 5. You are not required to accept this License, since you have not signed it. However, nothing else grants you permission to modify or distribute the Program or its derivative works. These actions are prohibited by law if you do not accept this License. Therefore, by modifying or distributing the Program (or any work based on the Program), you indicate your acceptance of this License to do so, and all its terms and conditions for copying, distributing or modifying the Program or works based on it. 6. Each time you redistribute the Program (or any work based on the Program), the recipient automatically receives a license from the original licensor to copy, distribute or modify the Program subject to these terms and conditions. You may not impose any further restrictions on the recipients' exercise of the rights granted herein. You are not responsible for enforcing compliance by third parties to this License. 7. If, as a consequence of a court judgment or allegation of patent infringement or for any other reason (not limited to patent issues), conditions are imposed on you (whether by court order, agreement or otherwise) that contradict the conditions of this License, they do not excuse you from the conditions of this License. If you cannot distribute so as to satisfy simultaneously your obligations under this License and any other pertinent obligations, then as a consequence you may not distribute the Program at all. For example, if a patent license would not permit royalty-free redistribution of the Program by all those who receive copies directly or indirectly through you, then the only way you could satisfy both it and this License would be to refrain entirely from distribution of the Program. If any portion of this section is held invalid or unenforceable under any particular circumstance, the balance of the section is intended to apply and the section as a whole is intended to apply in other circumstances. It is not the purpose of this section to induce you to infringe any patents or other property right claims or to contest validity of any such claims; this section has the sole purpose of protecting the integrity of the free software distribution system, which is implemented by public license practices. Many people have made generous contributions to the wide range of software distributed through that system in reliance on consistent application of that system; it is up to the author/donor to decide if he or she is willing to distribute software through any other system and a licensee cannot impose that choice. This section is intended to make thoroughly clear what is believed to be a consequence of the rest of this License. 8. If the distribution and/or use of the Program is restricted in certain countries either by patents or by copyrighted interfaces, the original copyright holder who places the Program under this License may add an explicit geographical distribution limitation excluding those countries, so that distribution is permitted only in or among countries not thus excluded. In such case, this License incorporates the limitation as if written in the body of this License. 9. The Free Software Foundation may publish revised and/or new versions of the General Public License from time to time. Such new versions will be similar in spirit to the present version, but may differ in detail to address new problems or concerns. Each version is given a distinguishing version number. If the Program specifies a version number of this License which applies to it and "any later version", you have the option of following the terms and conditions either of that version or of any later version published by the Free Software Foundation. If the Program does not specify a version number of this License, you may choose any version ever published by the Free Software Foundation. 10. If you wish to incorporate parts of the Program into other free programs whose distribution conditions are different, write to the author to ask for permission. For software which is copyrighted by the Free Software Foundation, write to the Free Software Foundation; we sometimes make exceptions for this. Our decision will be guided by the two goals of preserving the free status of all derivatives of our free software and of promoting the sharing and reuse of software generally. NO WARRANTY 11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. 12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES, INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH DAMAGES. END OF TERMS AND CONDITIONS How to Apply These Terms to Your New Programs If you develop a new program, and you want it to be of the greatest possible use to the public, the best way to achieve this is to make it free software which everyone can redistribute and change under these terms. To do so, attach the following notices to the program. It is safest to attach them to the start of each source file to most effectively convey the exclusion of warranty; and each file should have at least the "copyright" line and a pointer to where the full notice is found. Copyright (C) This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version. This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA Also add information on how to contact you by electronic and paper mail. If the program is interactive, make it output a short notice like this when it starts in an interactive mode: Gnomovision version 69, Copyright (C) year name of author Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'. This is free software, and you are welcome to redistribute it under certain conditions; type `show c' for details. The hypothetical commands `show w' and `show c' should show the appropriate parts of the General Public License. Of course, the commands you use may be called something other than `show w' and `show c'; they could even be mouse-clicks or menu items--whatever suits your program. You should also get your employer (if you work as a programmer) or your school, if any, to sign a "copyright disclaimer" for the program, if necessary. Here is a sample; alter the names: Yoyodyne, Inc., hereby disclaims all copyright interest in the program `Gnomovision' (which makes passes at compilers) written by James Hacker. , 1 April 1989 Ty Coon, President of Vice This General Public License does not permit incorporating your program into proprietary programs. If your program is a subroutine library, you may consider it more useful to permit linking proprietary applications with the library. If this is what you want to do, use the GNU Lesser General Public License instead of this License. sosreport/AUTHORS0000644000175000017500000000255612271430455012333 0ustar zefzefIndividuals ----------- Adam Stokes Ben Turner Bharani C.V. Brent Eagles Bryn M. Reeves Chris J Arges Eoghan Glynn Eric Williams Eugene Teo Flavio Percoco Gary Kotton Guy Streeter James Hunt Jeff Dutton Jeff Peeler Jeremy Agee Jesse Jaggars Joey Boggs John Berninger Justin Payne Keith Kearnan Kent Lamb Louis Bouchard Lukas Zapletal Marc Sauton Navid Sheikhol-Eslami Pierre Amadio Pierre Carrier Raphael Badin Ranjith Rajaram Sadique Puthen Shijoe George Steve Conklin Tomas Smetana Vasant Hegde Companies --------- Red Hat, Inc. Rackspace US, Inc. EMC Corporation Canonical Ltd. IBM Corporation sosreport/Makefile0000644000175000017500000000572212254061770012722 0ustar zefzef# # Makefile for sos system support tools # NAME = sos VERSION = $(shell echo `awk '/^Version:/ {print $$2}' sos.spec`) MAJOR = $(shell echo $(VERSION) | cut -f 1 -d '.') MINOR = $(shell echo $(VERSION) | cut -f 2 -d '.') RELEASE = $(shell echo `awk '/^Release:/ {gsub(/\%.*/,""); print $2}' sos.spec`) REPO = https://github.com/sosreport/sosreport SUBDIRS = po sos sos/plugins sos/policies PYFILES = $(wildcard *.py) # OS X via brew # MSGCAT = /usr/local/Cellar/gettext/0.18.1.1/bin/msgcat MSGCAT = msgcat DIST_BUILD_DIR = dist-build RPM_DEFINES = --define "_topdir %(pwd)/$(DIST_BUILD_DIR)" \ --define "_builddir %{_topdir}" \ --define "_rpmdir %{_topdir}" \ --define "_srcrpmdir %{_topdir}" \ --define "_specdir %{_topdir}" \ --define "_sourcedir %{_topdir}" RPM = rpmbuild RPM_WITH_DIRS = $(RPM) $(RPM_DEFINES) ARCHIVE_DIR = $(DIST_BUILD_DIR)/$(NAME)-$(VERSION) SRC_BUILD = $(DIST_BUILD_DIR)/sdist PO_DIR = $(SRC_BUILD)/sos/po build: for d in $(SUBDIRS); do make -C $$d; [ $$? = 0 ] || exit 1 ; done install: updateversion mkdir -p $(DESTDIR)/usr/sbin mkdir -p $(DESTDIR)/usr/share/man/man1 mkdir -p $(DESTDIR)/usr/share/man/man5 mkdir -p $(DESTDIR)/usr/share/$(NAME)/extras @gzip -c man/en/sosreport.1 > sosreport.1.gz @gzip -c man/en/sos.conf.5 > sos.conf.5.gz mkdir -p $(DESTDIR)/etc install -m755 sosreport $(DESTDIR)/usr/sbin/sosreport install -m644 sosreport.1.gz $(DESTDIR)/usr/share/man/man1/. install -m644 sos.conf.5.gz $(DESTDIR)/usr/share/man/man5/. install -m644 AUTHORS README.md $(DESTDIR)/usr/share/$(NAME)/. install -m644 $(NAME).conf $(DESTDIR)/etc/$(NAME).conf for d in $(SUBDIRS); do make DESTDIR=`cd $(DESTDIR); pwd` -C $$d install; [ $$? = 0 ] || exit 1; done updateversion: sed 's/@SOSVERSION@/$(VERSION)/g' sos/__init__.py.in > sos/__init__.py $(NAME)-$(VERSION).tar.gz: clean @mkdir -p $(ARCHIVE_DIR) @tar -cv sosreport sos doc man po sos.conf AUTHORS LICENSE README.md sos.spec Makefile | tar -x -C $(ARCHIVE_DIR) @tar Ccvzf $(DIST_BUILD_DIR) $(DIST_BUILD_DIR)/$(NAME)-$(VERSION).tar.gz $(NAME)-$(VERSION) --exclude-vcs clean: @rm -fv *~ .*~ changenew ChangeLog.old $(NAME)-$(VERSION).tar.gz sosreport.1.gz sos.conf.5.gz @rm -rf rpm-build @for i in `find . -iname *.pyc`; do \ rm $$i; \ done; \ for d in $(SUBDIRS); do make -C $$d clean ; done srpm: clean $(NAME)-$(VERSION).tar.gz $(RPM_WITH_DIRS) -ts $(DIST_BUILD_DIR)/$(NAME)-$(VERSION).tar.gz rpm: clean $(NAME)-$(VERSION).tar.gz $(RPM_WITH_DIRS) -tb $(DIST_BUILD_DIR)/$(NAME)-$(VERSION).tar.gz deb: clean $(NAME)-$(VERSION).tar.gz @mv $(DIST_BUILD_DIR)/$(NAME)-$(VERSION).tar.gz ../$(NAME)-$(MAJOR)_$(MINOR).orig.tar.gz @debuild -us -uc -i po: clean mkdir -p $(PO_DIR) for po in `ls po/*.po`; do \ $(MSGCAT) -p -o $(PO_DIR)/sos_$$(basename $$po | awk -F. '{print $$1}').properties $$po; \ done; \ cp $(PO_DIR)/sos_en.properties $(PO_DIR)/sos_en_US.properties cp $(PO_DIR)/sos_en.properties $(PO_DIR)/sos.properties test: nosetests -v --with-cover --cover-package=sos --cover-html sosreport/README.md0000644000175000017500000000257412254061770012543 0ustar zefzef[![Build Status](https://travis-ci.org/sosreport/sosreport.png)](https://travis-ci.org/sosreport/sosreport) This set of tools is designed to provide information to support organizations in an extensible manner, allowing third parties, package maintainers, and anyone else to provide plugins that will collect and report information that is useful for supporting software packages. This project is hosted at http://github.com/sosreport/sosreport For the latest version, to contribute, and for more information, please visit there. To access to the public source code repository for this project run: ``` git clone git://github.com/sosreport/sosreport.git ``` ### Contributors please read Because of our vibrant community and everyone does things a little differently we've setup a wiki page dedicated to [sosreport's contribution guidelines][0]. In order to get your requests merged in a timely manner these guidelines are mandatory. ### Manual Installation ``` to install locally (as root) ==> make install to build an rpm ==> make rpm to build a deb ==> make deb ``` ### Pre-built Packaging Fedora/RHEL users install via yum: ``` yum install sos ``` Debian(Sid) users install via apt: ``` apt-get install sosreport ``` Ubuntu(Saucy 13.10 and above) users install via apt: ``` sudo apt-get install sosreport ``` [0]: https://github.com/sosreport/sosreport/wiki/Contribution-Guidelines sosreport/.travis.yml0000644000175000017500000000047112254061770013367 0ustar zefzeflanguage: python python: - 2.7 - 3.3 notifications: email: false irc: channels: - "us.freenode.net#sosreport" on_success: change install: - "pip install six nose nose-cov --use-mirrors" - "python setup.py install" script: - "nosetests -v --with-cover --cover-package=sos --cover-html" sosreport/__run__.py0000755000175000017500000000135012254061770013230 0ustar zefzef# This program is free software; you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation; either version 2 of the License, or # (at your option) any later version. # This program is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # You should have received a copy of the GNU General Public License # along with this program; if not, write to the Free Software # Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. from sos.sosreport import main import sys main(sys.argv[1:]) sosreport/man/0000755000175000017500000000000012254061770012027 5ustar zefzefsosreport/man/en/0000755000175000017500000000000012271430455012430 5ustar zefzefsosreport/man/en/sos.conf.50000644000175000017500000000145412271430455014252 0ustar zefzef.TH "sos.conf" "5" "SOSREPORT" "sosreport configuration file" .SH NAME sos.conf \- sosreport configuration .SH DESCRIPTION .sp sosreport uses a configuration file at /etc/sos.conf. .SH PARAMETERS .sp There are two sections in the sosreport configuration file: plugins, and tunables. Options are set using 'ini'-style \fBname = value\fP pairs. Some options accept a comma separated list of values. .TP \fB[plugins]\fP disable Comma separated list of plugins to disable. .TP \fB[tunables]\fP plugin.option Alter available options for defined plugin. .SH EXAMPLES To disable the 'general' and 'filesys' plugins: .LP [plugins] .br disable = general, filesys .sp To disable rpm package verification in the RPM plugin: .LP [tunables] .br rpm.rpmva = off .br .SH FILES .sp /etc/sos.conf .SH SEE ALSO .sp sosreport(1) sosreport/man/en/sosreport.10000644000175000017500000000634412271430455014561 0ustar zefzef.TH SOSREPORT 1 "Mon Mar 25 2013" .SH NAME sosreport \- Collect and package diagnostic and support data .SH SYNOPSIS .B sosreport [-l|--list-plugins]\fR [-n|--skip-plugins plugin-names]\fR [-e|--enable-plugins plugin-names]\fR [-o|--only-plugins plugin-names]\fR [-a|--alloptions] [-v|--verbose]\fR [--report] [--config-file conf] [--batch]\fR [--build] [--name name] [--ticket-number number] [--debug] [--tmp-dir directory]\fR [--profile] [--help]\fR .SH DESCRIPTION \fBsosreport\fR generates a compressed tar archive of diagnostic information from the running system. The archive may be stored locally or centrally for recording or tracking purposes or may be sent to technical support representatives, developers or system administrators to assist with technical fault-finding and debugging. .LP Sos is modular in design and is able to collect data from a wide range of subsystems and packages that may be installed. An XML or HTML report summarizing the collected information is optionally generated and stored within the archive. .SH OPTIONS .TP .B \-l, \--list-plugins List all available plugins and their options. Plug-ins that would not be enabled by the current configuration are listed separately. .TP .B \-n, --skip-plugins PLUGNAME[,PLUGNAME] Disable the specified plugin(s). Multiple plug-ins may be specified by repeating the option or as a comma-separated list. .TP .B \-e, --enable-plugins PLUGNAME[,PLUGNAME] Enable the specified plugin(s). Multiple plug-ins may be specified by repeating the option or as a comma-separated list. .TP .B \-o, --only-plugins PLUGNAME[,PLUGNAME] Enable the specified plugin(s) only (all other plugins should be disabled). Multiple plugins may be specified by repeating the option or as a comma-separated list. .TP .B \-k PLUGNAME.PLUGOPT[=VALUE] Specify plug-in options. The option PLUGOPT is enabled, or set to the specified value in the plug-in PLUGNAME. .TP .B \-a, \--alloptions Set all boolean options to True for all enabled plug-ins. .TP .B \-v, \--verbose Increase logging verbosity. May be specified multiple times to enable additional debugging messages. .TP .B \-q, \--quiet Only log fatal errors to stderr. .TP .B \--report Enable HTML/XML report writing. .TP .B \--config-file CONFIG Specify alternate configuration file. .TP .B \--tmp-dir DIRECTORY Specify alternate temporary directory to copy data as well as the compressed report. .TP .B \--batch Generate archive without prompting for interactive input. .TP .B \--name NAME Specify a name to be used for the archive. .TP .B \--ticket-number NUMBER Specify a ticket number to be used for archive .TP .B \--build Do not archive copied data. Causes sosreport to leave an uncompressed archive as a temporary file or directory tree. .TP .B \--debug Enable interactive debugging using the python debugger. Exceptions in sos or plug-in code will cause a trap to the pdb shell. .TP .B \--profile Enable profiler logging. .TP .B \--help Display usage message. .SH MAINTAINER .nf Bryn M. Reeves .fi .SH AUTHORS & CONTRIBUTORS See \fBAUTHORS\fR file in /usr/share/doc/sosreport. .nf .SH TRANSLATIONS .nf Translations are handled by transifex (https://fedorahosted.org/transifex/) .fi .fi