Re: Treating 'not found' packages as errors
Anders Blomdell <[email protected]>
| Newsgroups | gmane.linux.rpm.yum |
|---|---|
| Message-ID | <[email protected]> |
seth vidal wrote:
> On Wed, 2008-04-23 at 16:59 +0200, Anders Blomdell wrote:
>> Hi,
>>
>> I'm using yum for keeping all my machines properly installed. Unfortunately I
>> occasionally makes mistakes and asks yum to install packages that does not
>> exist, this gives printouts like (with enough verbosity enabled):
>>
>> No package misspelled_package_name available.
>>
>> but the exit status from yum is unfortunately 0, so there is no way to find this
>> out from a script. I humbly suggest something like:
>>
>> --- cli.py~ 2007-12-05 23:27:40.000000000 +0100
>> +++ cli.py 2008-04-23 16:24:48.000000000 +0200
>> @@ -456,7 +456,8 @@
>>
>> toBeInstalled = {} # keyed on name
>> passToUpdate = [] # list of pkgtups to pass along to updatecheck
>> -
>> + not_found = [] # list of packages that could not be found
>> +
>> self.verbose_logger.log(yum.logginglevels.INFO_2,
>> _('Parsing package install arguments'))
>> for arg in userlist:
>> @@ -506,7 +507,8 @@
>> if len(installable) == 0:
>> self.verbose_logger.log(yum.logginglevels.INFO_2,
>> 'No package %s available.', arg)
>> -
>> + not_found.append("Package '%s' not found" % arg)
>> +
>> # we look through each returned possibility and rule out the
>> # ones that we obviously can't use
>> for pkg in installable:
>> @@ -578,6 +580,8 @@
>>
>> if len(self.tsInfo) > oldcount:
>> return 2, ['Package(s) to install']
>> + if len(not_found) > 0:
>> + return 1, not_found
>> return 0, ['Nothing to do']
>>
>
> the problem is dealing with partial failures and wildcards.
>
> if I say:
> yum install foo bar baz
>
> and foo and bar exist but baz does not - should I exit with non-zero
> exit value?
>
> What about:
> yum update bar*
>
> and I can update bar-libs and bar-app but not bar-compat
>
> is that a failure?
>
> I'd say no, it is not a failure, in either case.
>
> My initial thought is if you want to use yum with scripted interactions
> you can call the yum module api from python pretty easily these days.
>
> does that make sense?
Yes, the software that handles updates is already in python.
Are there any docs available for the API?
BTW: My software for updates is at
http://www.control.lth.se/user/andersb/software/mio/ but docs are [currently and
for some time now] badly out of sync...
Best regards
Anders Blomdell
--
Anders Blomdell Email: [email protected]
Department of Automatic Control
Lund University Phone: +46 46 222 4625
P.O. Box 118 Fax: +46 46 138118
SE-221 00 Lund, Sweden