History log of /external/autotest/client/bin/package.py
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
9e33f275b86d24aabc7f09586f62f94a1d876c6f 23-Apr-2009 jadmanski <jadmanski@592f7852-d20e-0410-864c-8624ca9c26a4> New (and much more complex) version of the collect rpm -qa patch.
This adds a list_all function to the package management library that
supports both rpm and dpkg, and instead of logging a list of all
installed packages on every test we instead log this on every reboot
and then just log the added and removed packages during each test.

Risk: Medium
Visibility: Adds nicer logging of installed packages from tests.

Signed-off-by: John Admanski <jadmanski@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@3034 592f7852-d20e-0410-864c-8624ca9c26a4
/external/autotest/client/bin/package.py
53da18eddf69243ca175d9a4603cba5b55300726 05-Jan-2009 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Rename autotest_utils to utils

Fixes longstanding hangover ugliness from the original change away
from doing "from autotest_utils import *".

Signed-off-by: Martin J. Bligh <mbligh@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@2595 592f7852-d20e-0410-864c-8624ca9c26a4
/external/autotest/client/bin/package.py
edf89f375fedf2eb7a9e843a21a7953248f2b425 01-Jul-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Changed some internal methods of package to start with a single '_' rather
than '__'. And wrote some unittest code for package.py as well.

Signed-off-by: Travis Miller <raphtee@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@1753 592f7852-d20e-0410-864c-8624ca9c26a4
/external/autotest/client/bin/package.py
0afbb6369aa5aa9a75ea67dd9e95ec4b21c0c181 06-Jun-2008 jadmanski <jadmanski@592f7852-d20e-0410-864c-8624ca9c26a4> Convert all python code to use four-space indents instead of eight-space tabs.

Signed-off-by: John Admanski <jadmanski@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@1658 592f7852-d20e-0410-864c-8624ca9c26a4
/external/autotest/client/bin/package.py
c8aaf5ee748b60abd5326e5fc7a9562a50a7da81 05-Jun-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Misspelling minor fix.

Signed-off-by: Rafael Xavier <rxaviers@br.ibm.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@1611 592f7852-d20e-0410-864c-8624ca9c26a4
/external/autotest/client/bin/package.py
0e6192aa2853fb4dd98cbad705471b3fb135e70e 03-Jun-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Risk: High
Visibility: Any test run using client/bin/autotest would not go ahead.

Fix up the the core files to explicitly import common_lib/utils and bin/autotest_utils instead of using 'import *'. Prevents the showstopper where tests were not being run through client/bin/autotest

Signed-off-by: Ashwin Ganti <aganti@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@1592 592f7852-d20e-0410-864c-8624ca9c26a4
/external/autotest/client/bin/package.py
8ea61e2f9f55bd9f646735069e1f029e86d08320 09-May-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> 1. Removed the system() and system_output() implementations from client/bin/autotest_utils.py so that the ones in common_lib/utils.py are used throughout.
2. Add an optional parameter to system_output() in client/common_lib/utils.py to retain stdout and not throw it away.
3. Renamed ignorestatus to ignore_status to make it consistent with the rest of the code.
4. Modified the tests to use the renamed ignore_status option
5. Modifed the CmdError() implementation in client/common_lib/error.py and made sure all the places on the server side, that expect a AutoservRunError exception are changed to expect and handle a CmdError exception instead.

Signed-off-by: Ashwin Ganti <aganti@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@1499 592f7852-d20e-0410-864c-8624ca9c26a4
/external/autotest/client/bin/package.py
6e0afbbbcd4f2e89c2f82616253053796aa4623c 03-Apr-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Make package.convert() on package.py to actually return the absolute path for the converted package.

Description
Even though the LSB debian support was fixed, the package.convert
function was still not returning the absolute path of the converted
package. This patch fixes this mistake. Also, makes the convertion
function to print the operation summary (Package xxx.rpm was
successfully converted to xxx.deb or the similar)

Signed-off-by: Lucas Meneghel Rodrigues <lucasmr@br.ibm.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@1394 592f7852-d20e-0410-864c-8624ca9c26a4
/external/autotest/client/bin/package.py
9eacabac3427c1da3d26428270841a0aa5c8d116 02-Apr-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Fixing debian support for LSB testing

Investigating the problem Martin reported about the LSB test support for
debian, I found 3 bugs I left when we took the decision of installing a
newer version of the LSB test manager, different from the original LTP
bundle. This patch fixes 2 bugs:

package.py fixes:
* ignoring dpkg errors when querying for package status
* making conversion function return the absolute path of the package
converted.

Signed-off-by: Lucas Meneghel Rodrigues <lucasmr@br.ibm.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@1392 592f7852-d20e-0410-864c-8624ca9c26a4
/external/autotest/client/bin/package.py
603f7ac31041edede98a0489faa7cd1e4ba35eb9 25-Jan-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> In order to accomodate LSB wrapper, package functions were extended:

* A new os_support() function was added, that returns the host support
for the known (implemented) package managers, as well as the host
ability in converting packages
* A new convert() function was added, that converts a package using
alien if it's present
* Support for ignore dependencies install on install() added
* Now the implemented package managers is a global variable to avoid
code repetition inside the package functions.

[non patch related note] The LSB wrapper 'shell script free' will follow
after it's more tested and revised.

Signed-off-by: Lucas Meneghel Rodrigues <lucasmr@br.ibm.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@1196 592f7852-d20e-0410-864c-8624ca9c26a4
/external/autotest/client/bin/package.py
63fcd166095e62f2b524e6890f7274fe3a95f40c 17-Jan-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Made functions rpm_info() and dpkg_info() private, since they're not
supposed to be called explicitely. This simplified a bit the code of the
functions and allowed some cleanups. Also, while I was there, I've
noticed that on install() I wasn't handling the case where the client
doesn't have installed a proper package manager for the package, fixed
that.

Signed-off-by: Lucas Meneghel Rodrigues <lucasmr@br.ibm.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@1177 592f7852-d20e-0410-864c-8624ca9c26a4
/external/autotest/client/bin/package.py
642b03e401142565a8109ac6e8495eda1dead577 14-Jan-2008 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Now fixing the places where we're raising string exceptions on the
client code. The patch also fixes identation errors in the iostat
profiler and error.py'>error.py.

Signed-off-by: Lucas Meneghel Rodrigues <lucasmr@br.ibm.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@1158 592f7852-d20e-0410-864c-8624ca9c26a4
/external/autotest/client/bin/package.py
a1cd0c9a64f5ba010dfc04f02122dde32c7e3d73 20-Dec-2007 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Adding package.info() function

RPM source packages report the exact same version string as their binary
counterparts, therefore current package.install() implementation will
skip installing source rpms due to this fact.

Since we needed a way to differentiate between source and binary
packages, I've decided to implement a package.info() function that grabs
information from a package file and returns it in a dictionary. Package
install would just use this information to install packages, allowing us
to install source rpm packages correctly.

Also, all functions that grab info with package managers were grouped
and have their stderr redirected to /dev/null, making the code easier to
read and resolving all the problems with rpm/dpkg giving warnings about
missing signatures and such.

New package.info() tries to get as much information about a package as
possible, even when the native package manager is not installed (using
file). Here are some examples of the function usage:



Signed-off-by: Lucas Meneghel Rodrigues <lucasmr@br.ibm.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@1094 592f7852-d20e-0410-864c-8624ca9c26a4
/external/autotest/client/bin/package.py
0b9ba27aa48b431de41f790e1aa4e2bdc2f34dac 04-Dec-2007 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Incomplete change to package.py

Signed-off-by: Lucas Meneghel Rodrigues <lucasmr@br.ibm.com>

Martin, you've forgot to modify the references to the functions inside
the functions code. This finishes the change you've proposed.



git-svn-id: http://test.kernel.org/svn/autotest/trunk@1028 592f7852-d20e-0410-864c-8624ca9c26a4
/external/autotest/client/bin/package.py
ade19b261fb4c55782549029f23e94065539a455 04-Dec-2007 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Remove package_ from names in package class, as they'll end up
prefixed with package. anyway

Signed-off-by: Martin Bligh <mbligh@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@1025 592f7852-d20e-0410-864c-8624ca9c26a4
/external/autotest/client/bin/package.py
dec40e2a1d621b606e18e46bd5da78fcfda89af3 03-Dec-2007 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Added a profiler that runs mpstat on a specified interval.

Signed-off-by: Colby Ranger <cranger@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@1013 592f7852-d20e-0410-864c-8624ca9c26a4
/external/autotest/client/bin/package.py
f31b0c0060dd688c80be3bb97ffdfa193e3d924b 29-Nov-2007 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Move error.py'>error.py'>error.py out of the client and server and into common_lib.

Signed-off-by: John Admanski <jadmanski@google.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@1003 592f7852-d20e-0410-864c-8624ca9c26a4
/external/autotest/client/bin/package.py
0cff60cd9c49b40a9eab17bf1d454daee3015ae7 20-Nov-2007 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Improve package.py by adding other package utility functions:
package_type - returns the package type of a file
package_version - returns a version string for a package file

The introduction of package_type simplified the code of the other
functions, making them easier to read and cleaner.

Signed-off-by: Lucas Meneghel Rodrigues <lucasmr@br.ibm.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@947 592f7852-d20e-0410-864c-8624ca9c26a4
/external/autotest/client/bin/package.py
de1f9e32c2409816b24a6201bfed19c8d590eb12 09-Nov-2007 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Remove need for specified package_type in package_installed

The logic of the new patch checks if we have the binary anywhere in the
path, if so, it will query that particular package manager database
looking for the package version.

This won't fall apart if we have different package managers installed.
If a package version is installed on any of the package managers, the
function will return True, the correct result.

In a corner case where the exact same version string of a package is
installed under different package managers (unlikely), it's also very
likely that we have very serious file install conflicts and therefore
bad system administration practices. Not worth considering IMO.

So in my opinion there's no need to check /etc/issue in this particular
case.

From: Lucas Meneghel Rodrigues <lmr@linux.vnet.ibm.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@934 592f7852-d20e-0410-864c-8624ca9c26a4
/external/autotest/client/bin/package.py
f912c44b8056cb4fdfc93f47c56c8daabf40d10f 05-Nov-2007 mbligh <mbligh@592f7852-d20e-0410-864c-8624ca9c26a4> Add an initial implementation of a install_package() function, that
basically takes as an argument a package file, tries to figure out its
file type, and if it's one file that we know how to handle (only rpm and
dpkg files implemented so far), check if it's installed, if it's not,
try to install it.

I've improved the patch based on previous input. Basically I've created
the file package.py, and added the PackageError definition on error.py.
Not sure if it's worth to make package a class. Any thoughts on that?

About the rpm_installed() function that's used on autotest_utils, I
believe it's better to have a function a little more generic, like
package_installed(), that's also implemented on this patch. My patch
also removes the rpm_installed function.

Signed of by: Lucas Meneghel Rodrigues <lucasmr@br.ibm.com>



git-svn-id: http://test.kernel.org/svn/autotest/trunk@879 592f7852-d20e-0410-864c-8624ca9c26a4
/external/autotest/client/bin/package.py