1
0
mirror of https://github.com/openSUSE/osc.git synced 2024-11-14 16:26:13 +01:00
Commit Graph

254 Commits

Author SHA1 Message Date
Hemmo Nieminen
326abe0c8b Backport a fix from Python 2.7 upstream for urllib2.
This change makes basic authentication fail after first unsuccessful
attempt (instead of automatically retrying) and thus prevents unnecessary
failed login attempts.

This change also allows printing the contents of an HTTP 401 message to
the user.
2016-11-22 11:13:24 +02:00
Marcus Huewe
05ad9efae3 Avoid stale ~/.osc_cookiejar file
Always clear the cookiejar, if ~/.oscrc's mtime is "greater" than
~/.osc_cookiejar's mtime. This fixes issue #86.
2016-11-19 13:01:05 +01:00
Michael Schroeder
55da852a90 Add support for preinstall iamges
Adapted from a submission from Ericsson by Esa Kulmala, thanks a lot!
2016-06-09 16:24:30 +02:00
Bernhard M. Wiedemann
bbefe024e5 add vm-user option
this needs latest obs-build to work
2016-02-18 11:31:59 +01:00
Marcus Huewe
e8783d2501 - introduced new "request_show_source_buildstatus" config option
If enabled, it always shows the source buildstatus during
"osc rq show <id>" or "osc rq list --interactive". By default, it is
disabled.
2016-02-10 18:27:35 +01:00
Marcus Huewe
b15f97bcd0 - conf._build_opener: make sure no certs are checked if "sslcertck" is disabled
Since python >= 2.7.9 urllib2/httplib verifies the ssl cert by default - so
make sure that this "builtin" ssl check is disabled as well if
"sslcertck" is disabled. Fixes #179.
Note: eventually, we should abandon m2crypto and use urllib2/httplib to
verify the ssl cert.
2015-11-28 22:39:49 +01:00
Marcus Huewe
c902d174d8 - conf.parse_apisrv_url: strip trailing slashes from the path
Since commit ca2f1a90c8 a section like
[https://api.opensuse.org/] was not associated with an
"apiurl=https://api.opensuse.org" entry anymore.
2015-08-20 14:45:02 +02:00
Oleg Girko
ca2f1a90c8 Add support for non-root paths in API URLs.
Currently osc supports API URLs without path only,
like https://api.example.com (if there is pathname, it's just ignored).
With this change API URLS with path, like https://example.com/api
are supported correctly.

This is useful for those who can't have OBS api, webui and main site
on different domains and buy separate X.509 certificates for them,
or just can't afford to have separate IP addresses for them
(please note that currently osc doesn't support TLS SNI).

Signed-off-by: Oleg Girko <ol@infoserver.lv>
2015-05-14 16:46:10 +01:00
Marcus Huewe
3547ef95ef Revert "Fix condition for using urllib2 workaround"
This reverts commit 2f14cedcff.

Actually, this was meant to fix https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=762825,
which was (probably) caused due to the following:
- commit 320238350f introduced a codepath, which
  should not be needed for python >= 2.7.1 (see also
  https://hg.python.org/cpython/rev/64287)
- this codepath uses the "reset_retry_count" method, which is not present in
  Debian Jessie's libpython2.7-stdlib: libpython2.7-stdlib_2.7.8-11 backports
  a patch from python's 2.7.9 branch, which removes the "reset_retry_count"
  method (https://hg.python.org/cpython/rev/c1edc4e43eb1).

This fixes bnc#911080 and github issue #131.
2014-12-23 04:34:40 +01:00
Marcus Huewe
68d10dfe8b Revert "- reset retry counter on 404 answer for all python 2.7.x versions"
This reverts commit 320238350f.
With python >= 2.7.1 this codepath should not be needed (see also
https://hg.python.org/cpython/rev/64287).

Conflicts:
	osc/conf.py
2014-12-23 03:46:32 +01:00
Denis Pynkin
d17b497867 Added configuration options for kernel and initrd selection during KVM build
Some distributions have no initrd images compatible with KVM builds and
sometimes we need to use not system kernel version.

New options in configuration file:
- build-kernel -- kernel used for VM builds
- build-initrd -- initrd image used for VM builds
2014-11-20 19:09:53 +03:00
Marcus Huewe
ca7ad96ec9 - raise more specific exceptions 2014-10-20 13:29:03 +02:00
Marcus Huewe
a7c92eb18f - do not hardcode path to the build scripts and removed legacy check 2014-10-01 14:45:48 +02:00
Sjoerd Simons
2f14cedcff Fix condition for using urllib2 workaround
See https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=762825
2014-09-26 09:54:03 +02:00
Marcus Huewe
7efd6db501 - added support for a per apiurl "build-root" option
Resolution order:
OSC_BUILD_ROOT env var > apiurl build-root option > general build-root option
2014-06-04 15:33:30 +02:00
Marcus Huewe
8c506e5929 - fixed "osc -H ..." in combination with a proxy 2014-03-11 19:40:27 +01:00
Marcus Huewe
9034b27814 - fixed creation of ~/.osc_cookiejar
A "PyCFunction_Type" like os.open takes no keyword arguments.
2014-03-10 22:36:56 +01:00
Michal Vyskocil
111fd87715 passx encode/decode functions
The string.encode('bz2') does not work in python3. Implement
passx_encode/passx_decode functions compatible with python 2.6, 2.7 and
3.3.

Add a simple unit test.
2014-01-08 15:43:57 +01:00
Michal Vyskocil
5d5185cbc6 chmod handling
* prefer os.open instead of open && os.chmod
 * prefer os.fchmod when fd exists
2014-01-06 11:12:02 +01:00
Thorsten Behrens
9561a99d6b Do not pass on unicode password from keyrings.
Seems at least gnome keyring returns a unicode string here
needlessly, which calling code then trips over.
2013-11-21 23:46:45 +01:00
Miroslav Suchý
12ffb4e3c4 correctly refer to exception
this is left-over from 87d354e1a0

Addressing:
Traceback (most recent call last):
  File "/usr/bin/osc", line 26, in <module>
    r = babysitter.run(osccli)
  File "/usr/lib/python2.7/site-packages/osc/babysitter.py", line 60, in run
    return prg.main()
  File "/usr/lib/python2.7/site-packages/osc/cmdln.py", line 335, in main
    self.postoptparse()
  File "/usr/lib/python2.7/site-packages/osc/commandline.py", line 136, in postoptparse
    override_verbose = self.options.verbose)
  File "/usr/lib/python2.7/site-packages/osc/conf.py", line 873, in get_config
    add_section(conffile, url, user, passwordx)
  File "/usr/lib/python2.7/site-packages/osc/conf.py", line 712, in add_section
    except OscConfigParser.ConfigParser.DuplicateSectionError:
AttributeError: class OscConfigParser has no attribute 'ConfigParser'
2013-07-17 10:22:29 +02:00
Marcus Huewe
0ac1d32945 - oscssl.verify_certificate: also print cert info if http_debug is set
If http_debug is set we redirect sys.stdout to an StringIO
instance in order to do some header filtering (see conf module)
so we have to use the "original" stdout for printing the certificate
information.
2013-06-15 08:53:26 +02:00
Marcus Huewe
5e0ef46aed - fixed issue #28 ("calling with -H option causes traceback") 2013-05-02 14:55:31 +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
0dcbddbafe python3 compatibility: new syntax for literals
The octal literals got a new syntax 0755 -> 0o755
2013-04-16 10:51:18 +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
Sascha Peilicke
c31d7d5671 Fix typo in default build-root path 2013-03-20 15:43:06 +01:00
320238350f - reset retry counter on 404 answer for all python 2.7.x versions 2013-03-20 14:11:58 +01:00
Sascha Peilicke
f9a718f662 Provide a better default build-root.
Previously it was /var/tmp/build-root but
/var/tmp/build-root/%(repo)s-%(arch)s makes much more sense.
2013-02-27 13:43:05 +01:00
Marcus Huewe
e2dc1d7fe6 - fixed bnc#801027 ("osc starts with a traceback") 2013-02-25 18:07:27 +01:00
Dmitry Marakasov
8e9e8c492c Raise exception when there're no CA certificates
This is more useful and meaningful error message than M2Crypto's
"ValueError: cafile and capath can not both be None." when neither
of cafile and capath is defined for load_verify_locations call.
2013-02-06 03:50:18 +04:00
d84bc081ef - disable keyring usage by default 2013-01-31 16:03:31 +01:00
b55721a679 - warn about empty passwords to see keyring setup errors 2013-01-24 16:32:33 +01:00
Marcus Huewe
737bac561b - added support to strip the build time from the buildlog when running "bl", "rbl", "lbl"
Also added a config option "buildlog_strip_time" to permanently enable/disable the
stripping of the build time.
2012-12-15 01:50:24 +01:00
Marcus Huewe
6ad15b3832 - fixed github issue #6 ("Problems with osc and gnome-keyring")
check if user and password exist in the gnome keyring entry (a non existent
password is most likely an error so print a warning)
2012-06-26 21:18:28 +02:00
Marcus Huewe
b38dd0191f - request_interactive_review: automatically accept/decline a review for a specific group (if a group was specified)
To enable this feature set the newly introduced "review_inherit_group"
config option to True.
2012-04-27 15:04:06 +02:00
Ard
bd9ab782d4 Fix small typo in conf.py 2012-03-24 20:41:43 +13:00
Sascha Peilicke
588efa69fc Fix copy-paste error 2012-03-08 14:42:52 +01:00
475867cc64 - make file system configurable 2012-02-04 17:05:17 +01:00
Marcus Huewe
8971959187 - fixed #704939 ("osc dies when the config file is supplied via STDIN") 2011-11-18 22:32:10 +01:00
Marcus Huewe
18ad5fcd5a - conf: always use write_config when writing the config file 2011-11-18 22:27:38 +01:00
Marcus Huewe
f98758e902 - config_set_option: set override_no_keyring and override_no_gnome_keyring to the current config defaults when calling "get_config" 2011-09-21 01:52:04 +02:00
Marcus Huewe
3683d9550d - added "local_service_run" config option
can be used to permanently disable the local service run on commit
(default: enabled)
2011-09-07 15:19:54 +02:00
568612cedc - drop hardcoded source validator executions 2011-09-07 13:55:05 +02:00
Sascha Peilicke
097daf311b Fix tests/test_repairwc.py, there's no 'urllib22' yet ;-) 2011-08-18 16:02:34 +02:00
Sascha Peilicke
7acf236662 Honor PEP-8 in osc/conf.py. Includes moving all imports to the top (and
importing only once).
2011-08-18 16:02:34 +02:00
Marcus Huewe
af253d2eb2 - respect no_proxy env variable 2011-07-15 20:10:45 +02:00
Michael Schroeder
19a9765065 - fix auth failure when converting from passx to pass 2011-05-23 17:14:48 +02:00
6c654b012f - just for readability 2011-05-23 16:34:04 +02:00
Marcus Huewe
7c59949f33 - add new config option include_request_from_project (default True)
This way it's possible to hide requests which have a given project
as a source project when running "osc rq list project".

Original patch by darix (just a bit beautified)
2011-05-12 23:27:19 +02:00
acbbbacabd - add "createincident" command 2011-05-02 13:22:56 +02:00
Marcus Huewe
b8c3a23b90 - conf.py: workaround for urllib2: reset basic auth retry count if a 404 is encountered
normally we should also do this for all status codes != 401 but so far
it seems to be sufficient to do it only for 404
2011-04-06 17:26:51 +02:00
Marcus Huewe
35bf60bbf0 - support %(apihost)s in the "build-root" config option
apihost is the hostname extracted from currently used apiurl
2011-03-15 18:45:36 +01:00
Juergen Weigert
b46d287570 added hint, what to do with a 'user is blank' error. 2011-03-10 20:14:09 +01:00
Marcus Huewe
02f788f12e - (temporary) fix for 53ca3b9a14
(python 2.4 doesn't support the syntax)
2011-02-18 00:34:49 +01:00
Anas Nashif
53ca3b9a14 default to 1 processors on darwin, since we are not going to build anything here anyways. 2011-02-17 22:50:13 +00:00
Marcus Huewe
1dcf5fb3d6 - use pass instead of passx (plaintext_passwd is the default) 2011-02-11 12:42:54 +01:00
Ludwig Nussel
0527789db9 either use plain text password or obfuscated ones
Don't you ever call this encrypted. It's just about obfuscation and
has no real security benefit.
2011-02-03 14:25:20 +01:00
Michal Čihař
f8184165ed Drop plain text password from generated config file.
The passx is around for some time and it is not needed to put plaintext
into config file forever.
2011-01-07 09:48:34 +01:00
Michal Čihař
3892117558 Print warnings to stderr.
This way we can avoid confusion for programs which do parse osc output.
2011-01-05 16:32:41 +01:00
Marcus Huewe
5bf59d2c60 - change_request_state_template: support tgt_project and tgt_package in template (for backward compatibility the dst_ prefix is still supported) 2010-12-30 20:58:00 +01:00
Juergen Weigert
01fc46cbd3 New config option 'checkout_rooted'. Default off to retain current
behaviour. Enabled, it prevents checking out projects inside of other
projects or packages. That better matches my mental model of a tree.
2010-12-27 23:03:17 +01:00
Ludwig Nussel
72842a43c3 use sudo as default su wrapper 2010-12-21 14:12:14 +01:00
Marcus Huewe
b1db52c7b6 - minor cosmetic changes 2010-12-18 03:39:19 +01:00
Brandon Philips
51d2436023 conf: detect and handle blank usernames
Fix situation where osc has added a blank username to the keyring and
update the config parse script to do the right thing and not allow blank
usernames.

I was in a very confusing situation where my keyring ended up with two
entries:

- @api.suse.de
- philipsb@api.suse.de

And I was getting 401s because of it.

Signed-off-by: Brandon Philips <bphilips@suse.de>
2010-12-18 03:27:26 +01:00
Michal Čihař
a285c83794 Implement retries on http
There is a bug either in buildservice or in iChain which sometimes
truncates data and sends empty Content-Length header (see bnc#656281).
This patch makes osc retry request to workaround this problem.

The number of retries are configurable in config file as http_retries.
2010-12-06 16:05:10 +01:00
Marcus Huewe
4a8a495849 - OscConfigParser: don't interpolate continuation lines 2010-11-14 18:53:14 +01:00
Marcus Huewe
ca794fe87f - added template support for a submitrequest accept/decline message 2010-11-14 18:32:02 +01:00
Marcus Huewe
7ade282e6e - rewrite pass to passx if pass and passx mismatch
- do_config: automatically reread (which may lead to a rewrite) config
  if an option was changed
2010-11-14 13:10:17 +01:00
Marcus Huewe
d1b07615ce - only exclude vc tmpfiles (*.changes.in isn't excluded anymore) (as requested by coolo/others) 2010-09-16 11:45:59 +02:00
Marcus Huewe
aa2832f525 - workaround for broken urllib2 in python 2.6.5: wrong credentials lead to an infinite recursion 2010-09-14 23:10:23 +02:00
Marcus Huewe
7145ecf0c9 - added is_known_apiurl method to check if a given url is a known apiurl 2010-09-01 15:53:37 +02:00
Marcus Huewe
109e199445 - filter Cookie, Authentication and Set-Cookie headers when using "osc -H..."
to enable full debug use "osc --http-full-debug". The current implementation
is _really_ ugly but httplib doesn't use a logger object or such...
2010-09-01 15:38:08 +02:00
Marcus Huewe
2f544dad9f - disable sslcertck for http 2010-09-01 12:04:46 +02:00
Marcus Huewe
788342ea1b - oops (forgot 'not') 2010-08-26 17:38:47 +02:00
Marcus Huewe
2cb03b4efe - fixed "logic" issue in init_basicauth
the old code didn't turn off the ssl checking if conf['apiurl']
was configured with "sslcertk = 1".
Example:
~/.oscrc:
[https://foo]
sslcertk = 0
...
[https://main]
sslcertk = 1
...
[general]
apiurl = https://main

if you send a request to https://foo (and conf['apiurl'] == https://main)
it'll fail because the ssl checking isn't disabled.
2010-08-26 13:06:00 +02:00
Marcus Huewe
4eacd5dfa7 - workaround for broken urllib2 (see http://bugs.python.org/issue9639) 2010-08-19 13:00:10 +02:00
Marcus Huewe
03ad610caf - move 'builtin_signature_check' into conf module 2010-08-16 16:06:17 +02:00
Marcus Huewe
cbebe3b239 - treat "no_verify" as a boolean 2010-08-12 23:13:51 +02:00
Juergen Weigert
5fe669b15b allow no_verify also in .oscrc 2010-08-12 21:34:08 +02:00
cff8696818 do not hide open request by default. 2010-07-29 13:39:48 +02:00
1975ddb8eb Revert "no need to warn about empty validator dir"
after discussion, we will provide an update with osc-source_validator instead

This reverts commit 828bb264ca.
2010-07-16 15:57:28 +02:00
Ludwig Nussel
828bb264ca no need to warn about empty validator dir
also remove from config template. the default should be ok.
2010-07-07 16:41:09 +02:00
Ludwig Nussel
c303735ab1 implement trusted projects 2010-06-23 14:47:52 +02:00
Ludwig Nussel
0663410f9c normalize apiurl 2010-06-23 14:47:52 +02:00
Marcus Huewe
8380602de6 - ignore tmp files from "vc" (*.changes.*) 2010-06-14 15:39:05 +02:00
Pavol Rusnak
e8d60c36a2 Revert "package cache should be in /var/cache not in /var/tmp"
This reverts commit 8d34581960.

/var/cache is not writable for everyone :-/
2010-06-09 18:00:16 +02:00
Pavol Rusnak
8d34581960 package cache should be in /var/cache not in /var/tmp 2010-06-09 17:58:29 +02:00
7e0abcd805 Make source validator moduler, execute all scripts in directory 2010-05-20 12:02:53 +02:00
e9b5ca869a support source validators as pre-checkin check 2010-05-20 06:40:18 +02:00
Ludwig Nussel
38cd884c52 remove build-vmdisk-autosetup and build-vmdisk-force 2010-03-30 14:22:06 +02:00
Marcus Huewe
ea3e5d20bf - small fixes 2010-03-28 22:23:40 +02:00
Jan-Simon Möller
35d0652d21 Add VM diskimage autosetup hooks to osc.
Signed-off-by: Martin Mohring <martinmohring@linuxfoundation.org>
Signed-off-by: Jan-Simon Möller <jsmoeller@linuxfoundation.org>
2010-03-28 21:13:04 +02:00
Marcus Huewe
56e728fc44 - only catch ImportError()'s 2010-03-24 11:16:20 +01:00
Marcus Huewe
b4364bceff - ignore trailing slashes 2010-03-08 14:09:15 +01:00
Marcus Huewe
bc0cb438b8 - added "config" command to set/get/delete a config option
maybe we should move the whole config stuff into a new config object.
This would make things much easier.
2010-03-07 22:50:11 +01:00
Marcus Huewe
96f382f171 - added 'verbose' option to DEFAULTS dict 2010-03-06 20:14:51 +01:00