1
0
mirror of https://github.com/openSUSE/osc.git synced 2024-12-27 02:16:12 +01:00
Commit Graph

70 Commits

Author SHA1 Message Date
8d082fae6b No need to ignore SIGWINCH anymore
In normal mode, SIGWINCH is handled by ProgressBar.
In quiet mode, there's no SIGWINCH handler at all.
2022-01-07 13:51:48 +01:00
Marcus Huewe
cf8aadc886 Do not fail with a traceback in case of a config error
Do not fail with a traceback if the config file parsing fails.
Hence, catch the configparser.Error exception and print its
"message" attribute to the user.

Fixes: #985 ("Type error on any osc call")
2021-12-19 17:38:22 +01:00
Marcus Huewe
81d1985bc5 Improve error message in case of an URLError
The old code does not print any information about the host, for
which the access failed, in case of an URLError. In order to fix
this, add information about the host (and port) to the URLError
instance in core.http_request and use this information in the
babysitter to print out a more detailed error message (which includes
the host (and port)).
For now, we simply add a "private" "_osc_host_port" attribute to
the URLError instance (this way we avoid potential name clashes (due
to the "_osc" prefix) and could come up with a different/more clever
way in the future (due to its privateness)).

Fixes: #954 ("Better diagnostic for domain name issues")
2021-09-30 14:09:08 +02:00
bf7899da83
Ignore signal.SIGWINCH.
Fixes #584
2020-08-27 16:56:36 +02:00
Nicholas Brown
75ba922eb2 custom exception if importing m2crypto fails
fixes #743
2020-02-18 17:35:29 +00:00
lethliel
1ee7b638cc improve SSLError message
Improve the SSLError message if a version mismatch (TLSv1) is
detected and give the user a hint what is wrong.
(Basically the API does not supprt TLS <= 1.2 and the python
version does not support TLS >= 1.2)
2020-02-06 10:50:22 +01:00
Matthias Gerstner
0a99f35126
babysitter: fix RPMError fallback when running in Python3
After (successfully) running an 'osc vc' the following exception trace
comes up, when no rpm python module is available:

```
no changes made
Traceback (most recent call last):
  File "/home/mgerstner/.local/lib64/python3.6/site-packages/osc/babysitter.py", line 62, in run
    return prg.main(argv)
  File "/home/mgerstner/.local/lib64/python3.6/site-packages/osc/cmdln.py", line 344, in main
    return self.cmd(args)
  File "/home/mgerstner/.local/lib64/python3.6/site-packages/osc/cmdln.py", line 367, in cmd
    retval = self.onecmd(argv)
  File "/home/mgerstner/.local/lib64/python3.6/site-packages/osc/cmdln.py", line 501, in onecmd
    return self._dispatch_cmd(handler, argv)
  File "/home/mgerstner/.local/lib64/python3.6/site-packages/osc/cmdln.py", line 1232, in _dispatch_cmd
    return handler(argv[0], opts, *args)
  File "/home/mgerstner/.local/lib64/python3.6/site-packages/osc/commandline.py", line 8924, in do_vc
    sys.exit(vc.returncode)
SystemExit: 0

During handling of the above exception, another exception occurred:

Traceback (most recent call last):
  File "/home/mgerstner/bin/osc", line 41, in <module>
    r = babysitter.run(osccli)
  File "/home/mgerstner/.local/lib64/python3.6/site-packages/osc/babysitter.py", line 172, in run
    except RPMError as e:
TypeError: catching classes that do not inherit from BaseException is not allowed
```

To fix this change the fallback RPMError from None to an actual
Exception-derived type.
2019-07-25 10:58:56 +02:00
lethliel
4269426b28 [python3] msg and body are byte strings 2018-12-13 14:32:38 +01:00
lethliel
65b053abb3 replace urlgrabber to enable python3 compatibility
- new module grabber.py
  * OscMirrorGroup to keep urlgrabber.mirrorgroup behavior
  * OscFileGrabber moved here

- meter.py
  * reworked to use progressbar module instead of progressbar
    of urlgrabber and simplified the module.

- babysitter.py
  * removed URLGrabErrorr

- build.py
  * removed adding of url_local to urllist. (not needed anymore)
  * removed URLGrabError

- commandline.py
  * switched from urlgrabber.urlgrab to OscFileGrabber().urlgrab

- core.py
  * reworked progressbar behavior

- fetch.py
  * removed join_url (not needed anymore)
  * moved OscFileGrabber to grabber.py
  * removed failureReport (not needed anymore)
2018-10-19 09:31:37 +02:00
Marcus Huewe
d66ccb2a7d Cleanup babysitter a bit
In case of an exception, return status code 1 by default.
2017-10-06 13:25:25 +02:00
Marcus Huewe
6acc90d438 Exit with status 1 in case of a ServiceRuntimeError
Fixes: #344 ("'osc ci' exit code doesn't take source service results
       into account")
2017-10-06 13:19:15 +02:00
Oleg Girko
361fec753a Fix URLGrabError exception handling.
URLGrabError class has no exception attribute,
use strerror to print error instead.

Signed-off-by: Oleg Girko <oleg.girko@jolla.com>
2017-01-17 23:27:08 +00:00
Andreas Schwab
9be4295c73 - babysitter.run: decode entities in error summary 2016-08-04 12:45:30 +02:00
Tomáš Čech
66596c5d0a Return different return code on KeyboardInterrupt
As I haven't found any good source for choice of exit code, I took value
130 found here:

http://tldp.org/LDP/abs/html/exitcodes.html
2016-07-02 19:19:32 +02:00
Marcus Huewe
fdfbcdc6eb - babysitter: catch URLGrabError exception 2014-06-08 22:32:35 +02:00
Marcus Huewe
1614123f82 - babysitter: catch ServiceRuntimeError
Note: it is probably better to raise a ServiceRuntimeError in
Serviceinfo.execute instead of Package.commit because "execute"
has all the information about the failing service...
2013-08-29 15:22:25 +02:00
Marcus Huewe
bcacedcd96 - babysitter.run: added new argv parameter
This way other python scripts can execute osc commands via the
babysitter. Example:

>>> from osc import babysitter, commandline
>>> cli = commandline.Osc()
>>> babysitter.run(cli, ['osc', 'ls', '<project>'])
2013-08-07 23:25:31 +02:00
Marcus Huewe
41661d741a - babysitter: print out headers in case of status 5XX 2013-05-02 22:33:04 +02:00
Michal Vyskocil
419367fca3 python3 compatibility: urllib
fixes all renames in urllib, urllib2, urlparse modules in python3
2013-04-16 10:51:42 +02:00
Michal Vyskocil
7f2031558c python3 compatibility: print function
The most visible change in python3 - removal of print statement and all
the crufty
   print >> sys.stderr, foo,

The from __future__ import print_function makes it available in python
2.6
2013-04-16 10:51:41 +02:00
Michal Vyskocil
87d354e1a0 python3 compatibility: import proper modules
Some modules (httplib, StringIO, ...) were renamed in python3. This
patch try to import the proper symbols from python3 and then fallback to
python2 in a case ImportError will appear.

There is one exception, python 2.7 got the io module with StringIO, but
it allow unicode arguments only. Therefor the old module is poked before
new one.
2013-04-16 10:51:18 +02:00
Michal Vyskocil
c612e8d47e python3 compatibility: use relative imports
Use relative imports when using module's own modules - this makes a
clear distinction between already developed copy and installed package.
2013-04-16 10:51:18 +02:00
Michal Vyskocil
3a93ac6d10 python3 compatibility: except
changes 'except FooError, fe' to 'except FooError as fe'

available in python 2.6
2013-04-16 10:51:17 +02:00
Marcus Huewe
93df866787 - added new function core.run_external which can be used to execute an external program
Basically it's just a wrapper around subprocess.call which raises an ExtRuntimeError
exception if subprocess.call raised an OSError with errno set to ENOENT (unfortunately
the OSError's filename attribute is set to None therefore we cannot print a meaningful
error message (that's why an ExtRuntimeError is raised)).
Replaced all occurrences of subprocess.call with a corresponding run_external call.
2013-03-08 00:56:57 +01:00
Sascha Peilicke
e3f0821bd4 Fix commit 438569f821 2011-07-29 11:05:06 +02:00
Sascha Peilicke
438569f821 PEP8-ified parts of the code.
Exchange individual return statements with a finally statement in the
big try/except statement in babysitter.py. If you return a different
value in the 'except' clause, it takes precedency over the 'finally'
clause (finally is executed before returning, naturally).
2011-07-08 16:09:44 +02:00
Michal Čihař
e0b7f69fe6 Handle also errors which can sneak out of httplib 2011-05-26 11:54:14 +02:00
Ludwig Nussel
f7a781e730 fix PackageNotInstalled printing 2011-04-21 14:31:30 +02:00
Ludwig Nussel
b33577b6a7 use more generic oscerr.PackageNotInstalled 2011-04-18 11:03:28 +02:00
Marcus Huewe
be4f1f350e - renamed "PackageNotInstalled" exception to "ServiceNotInstalled"
- also catch this exception in babysitter.py
2011-03-30 01:10:48 +02:00
Marcus Huewe
bb02a34622 - globally catch OSError ENOENT 2011-02-01 18:25:23 +01:00
Marcus Huewe
497f97fc85 - use EPIPE (as suggested by mls) 2011-01-24 12:05:36 +01:00
Marcus Huewe
09b323c2d3 - globally ignore broken pipe 2011-01-22 16:41:06 +01:00
Marcus Huewe
8d0778aff3 - babysitter.py: catch util.packagequery.PackageError 2010-10-21 21:51:20 +02:00
Ludwig Nussel
5cdc422774 update review/request docu and fix some status code parsing 2010-10-12 11:31:03 +02:00
Marcus Huewe
9ad14a1d9c - added new "repairwc" command which tries to repair an inconsistent working copy 2010-09-08 18:56:15 +02:00
Marcus Huewe
31f14c7abe - print more information if a PackageInternalError exception is caught 2010-09-03 19:59:14 +02:00
Marcus Huewe
e209766084 - renamed "RuntimeError" to "ExtRuntimeError" to avoid confusion with python's "RuntimeError" class
just a "cosmetic" changes
2010-08-16 16:27:00 +02:00
Marcus Huewe
3ceef4d4f2 - use correct package 2010-08-16 16:04:27 +02:00
Marcus Huewe
24d5b4218a - more helpful error message if osc cannot run the pager/editor 2010-07-08 21:43:39 +02:00
Michal Čihař
8e48815f54 Nothing guarantees that HTTPError has read method. 2010-07-07 16:29:59 +02:00
Ludwig Nussel
377ee28887 add support for --oldpackages 2010-06-25 11:23:44 +02:00
Marcus Huewe
1975e3cf85 - catch PackageError() 2010-05-13 18:21:30 +02:00
Ludwig Nussel
7024449cd8 catch cpio errors
TODO: detect if returned file is XML with error code
2010-05-06 14:27:52 +02:00
Juergen Weigert
4bd3d515ee suggest git, svn, ... if indicated, after oscerr.NoWorkingCopy 2010-03-08 01:52:13 +01:00
Juergen Weigert
f25bfa6ad1 made URLError readable, instead of a bogus stack-trace.
added full_url, to even give a hint about the cause.
2010-03-07 21:56:29 +01:00
Pavol Rusnak
90c4358da2 treat pylint warnings 2010-02-27 20:11:15 +01:00
Ludwig Nussel
47138ecf2b don't catch IOError to produce backtrace that points at cause 2010-02-25 13:37:24 +01:00
Ludwig Nussel
32e99306b4 add vim mode lines to avoid evil tab characters :-) 2010-02-25 09:53:45 +01:00
Ludwig Nussel
c3f6f03e3c better ssl certificate verification
+ now allows to store&compare peer certificate
- needs more python hacks
2009-11-13 10:46:23 +00:00