1
0
mirror of https://github.com/openSUSE/osc.git synced 2024-09-21 17:56:19 +02:00
Commit Graph

286 Commits

Author SHA1 Message Date
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
Pavol Rusnak
8d551e0a69 fix whitespace 2010-02-28 02:30:13 +01:00
Pavol Rusnak
90c4358da2 treat pylint warnings 2010-02-27 20:11:15 +01:00
Marcus Huewe
74c73ee8a2 - keyring fix 2010-02-25 14:13:02 +01:00
Marcus Huewe
f16cc7e667 - convert tabs to spaces... 2010-02-24 20:02:52 +01:00
Ludwig Nussel
99d3147519 stub for implementing trusted projects 2010-02-24 14:09:49 +01:00
David Greaves
d95ae68724 Added '--build-uid uid:gid|caller' feature to specify abuild id in chroot 2010-02-22 18:45:24 +00:00
Marcus Huewe
69333ac2e0 - mark 'build_platform' option as deprecated 2010-02-18 13:58:01 +01:00
Marcus Huewe
8670d82fad - fixed indention
- added 'icecream' to  config dict
2010-02-12 11:55:09 +01:00
Marcus Huewe
3a909cf75b - review a request interactively
per default this "feature" is disabled
2010-02-11 01:47:47 +01:00
Marcus Huewe
9187508513 - fixed #547005 ("osc co could show download progress") 2010-02-09 20:57:10 +01:00
Marcus Huewe
97a6a9e63c - use base64 module for base64 encoding (as suggested by Luke Imhoff) 2010-01-22 20:16:38 +01:00
Marcus Huewe
14288a9468 - changed appname handling 2010-01-20 14:46:10 +01:00
Ludwig Nussel
f2f948388e appname should be osc for ssl support 2010-01-20 09:15:51 +01:00
Marcus Huewe
90a92be0dd - added "build-jobs" config option (default: "getconf _NPROCESSORS_ONLN") 2010-01-09 14:56:55 +01:00
Marcus Huewe
52b22b19a5 - fixed proxy support when using m2crypto 2010-01-08 22:20:40 +01:00
Marcus Huewe
0bf48f2b73 - added support to specify a default action if a submitrequest has been accepted 2009-12-19 14:44:51 +01:00
Michael Schroeder
72e6edc997 - first attempt at "osc pull" and "linkcontrol" 2009-12-17 17:16:56 +01:00
Ludwig Nussel
f78ac323a8 check apiurl aliases also for copypac -t 2009-12-15 17:42:23 +01:00
Marcus Hüwe
d5d3605652 - reverted r9064. Verify/adjust apiurl in conf.py instead 2009-11-18 20:31:08 +00:00
Ludwig Nussel
bed57f7684 extra-pkgs must be list always 2009-11-13 13:24:33 +00: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
Ludwig Nussel
601b3c3416 use empty extra-pkgs by default (bnc#455960)
- avoids non-obious error when building for non-suse distros
- local build root and build root on server don't differ by default
2009-11-11 11:22:56 +00:00
Jürgen Weigert
e09d83c772 all *.py: TABS to spaces; osc build: counting packages during cache filling 2009-11-10 00:56:52 +00:00
Ludwig Nussel
31c5c2c11d auto detect ca certificates on Fedora (bnc#551756) 2009-11-02 16:28:43 +00:00
Ludwig Nussel
5402029d1d fix display of certificate validity period in verifiy_cb 2009-11-02 08:36:16 +00:00
33dcce48ce implement "mbranch" call as documented on
http://en.opensuse.org/Build_Service/Concepts/Maintenance
2009-11-02 08:32:15 +00:00
5f31baf71a ups .. forgot to import module 2009-10-29 17:27:20 +00:00
455a173481 support http proxies when using python 2.6 or newer (#551004) 2009-10-29 17:17:39 +00:00
Pavol Rusnak
661d927d38 code cleanup 2009-10-20 14:30:15 +00:00
Marcus Hüwe
f8d3824ea5 - support "apiurl = <some alias>" in the configfile 2009-10-16 15:03:12 +00:00
Marcus Hüwe
17a840deac - minor cleanup 2009-10-06 17:10:31 +00:00
Ludwig Nussel
f8545f8dcf use python-m2crypto for actually secure SSL 2009-10-02 11:25:59 +00:00
Marcus Hüwe
0c5a9528e3 - check for pending requests after executing an action (e.g. checkout, update, commit). This check is disabled by default. (requested by darix) 2009-09-18 01:10:41 +00:00
48e96a96fb + - make buildhist command usable without checked out package
+ - rename old "platform/s" names to "repository/ies" (internal cleanup only)
2009-09-08 08:14:27 +00:00
Marcus Hüwe
99a75fa2e8 - fixed get_config() 2009-09-06 21:19:40 +00:00
5f35c67b63 fix keyring usage for an additional OBS instance 2009-09-05 10:09:03 +00:00
6648377870 * add python-keyring support
* We may remove direct gnome keyring support later (there are currently
  reports of users who can't access obs anymore when not using gnome)
* do not write passwords to .oscrc if keyring is available and used
2009-09-04 17:48:53 +00:00
8a28a45c6f silence for kde users who have gnome-keyring installed 2009-09-04 12:24:35 +00:00
Jürgen Weigert
56d4f12dbd - make osc getpac really get the package (instead of branch only)!
- expanded several tabs to spaces.
 - added default project to new getpac and bco subcommand. .oscrc:getpac_default_project = OpenSUSE:Factory
   (not added to branch subcommand, to not interfere with its syntax.)
2009-09-03 18:08:43 +00:00
4b64daa13d fix initial creation of .oscrc 2009-09-01 12:18:04 +00:00
80de17208d revert changes which introduce inconsitencies or will conflict with
later developments.
2009-08-27 13:32:55 +00:00
Marcus Hüwe
5eb2364c3d - "plaintext_passwd" and "checkout_no_colon" should be booleans 2009-08-21 22:22:12 +00:00
Marcus Hüwe
b0000b2834 - more or less only some minor cosmetic changes 2009-08-21 19:39:12 +00:00
Marcus Hüwe
f1c8847879 - conf: initialize config with the default values. This fixes the manpage generation problem 2009-08-21 12:03:09 +00:00
Jürgen Weigert
83b1b5ca59 All in one go.
0.121.jw02
 - made rresults an alias for results. python decorators are a strange concept...
 - asserting that ~/.oscrc remains mode 0600
 - no more plain text passwords in ~/.oscrc, we store now as bz2+base64
 - added verbosity control -v -q. To be used in guess_proj_pack()
 - added 'll' and 'ls -l' as shorthand to 'list -v'
 - started to change to explicit dual license GPLv2 or GPLv3 to conform to Novell policy.
 - added revision parameter to show_upstream_srcmd5(), so that it can be used in do_cat later.
 - allowed both integer and srcmd5 revisions in meta_get_filelist()
 - added 'lL', 'LL': allowed -e and -v together in do_list(). Was an internal error before.
 - added cat -e, to cat a file through a link.
   'cat -e -r 3' expands through the third revision of the _link.
 - added subcmd bco as alias for branch -c
 - added default project to branch subcommand. .oscrc:branch_project = OpenSUSE:Factory
 - added primitive experimental support for .oscrc:checkout_no_colon = 1
 - suggest using svn when .svn found.
 - alias submitpac submitrequest
 - osc bco now continues to checkout after branch target exists error.
 - added .oscrc:plaintext_passwd=1 for backwards compatibility
 - moved core.py:exclude_stuff to .oscrc:exclude_glob and expand it to catch *.orig etc.
 - allowed req as alias for request.
 - bugfix get_request_list: use 'or' with multiple states, not 'and'.
 - added osc req list -s all; a shorthand for enumerating all states
 - osc req list no longer confuses creator with approver.
 - osc req list -D nnn limit to requests nnn days old.
 - osc req list now also shows requests from the the given package, not only to.
 - improved help texts with repairlink to point to osc resolved.
 - improved passx code when creating oscrc.
 - osc sr -l is now a shortcut for 'osc req list -M -a -t submit -D 0'
2009-08-20 19:28:05 +00:00
Marcus Hüwe
473270ec84 - typo 2009-08-04 21:10:23 +00:00
Marcus Hüwe
ddd9e0206d - added config option to disable the filelist check before commit permanently 2009-08-04 14:12:45 +00:00
Marcus Hüwe
9f8c7398b4 - fixed #521895 ('osc vc crashes'): only use and store proper apiurls this means no trailing slashes etc. 2009-07-16 12:07:14 +00:00
Michal Marek
599279a28f Change the warning about 'scheme' and 'apisrv' to something not as confusing. 2009-06-23 19:35:00 +00:00
Marcus Hüwe
0ed00292ee - it should be 'apiurl' instead of 'apisrv' (this was changed in r6547) 2009-05-19 16:40:39 +00:00
Jan Matejek
9f739f5e87 disable '%' expansion on username and password 2009-05-12 16:17:15 +00:00
Michal Cihar
7074362e90 osc can now store credentials in Gnome keyring if it is available (bnc#460540) 2009-05-11 07:46:01 +00:00
Michal Cihar
aedeea317c Drop shebang line from modules (bnc#500971).
(Some did have it and some did not, this way it is consistent and they
are anyway not supposed to be executed directly.)
2009-05-05 14:11:25 +00:00
3df88ab765 Consolidating delete commands:
* obsolete deletepac and deleteprj to delete and rdelete commands.
  - enable package tracking by default
* add support to hide commands in help list (so we can show propper
  help when people still try to use it).
seife: this is for you, drop your own scripts emulating it :)
2009-05-04 19:07:05 +00:00
Michal Vyskocil
0bf3540cb2 osc vc command - uses a /usr/bin/buildvc from build.rpm 2009-04-20 13:40:33 +00:00
Marcus Hüwe
595c94d1ca - point the user to the README file 2009-04-07 11:13:57 +00:00
Marcus Hüwe
8b1081a2af - added configuration migration information (it is also available in the wiki
http://en.opensuse.org/Build_Service/CLI#Configuration_migration)
- remove comments about ~/.netrc handling
2009-04-06 19:15:32 +00:00
Dr. Peter Poeml
be4f2b031f Putting names at the top of files is is not recommended. Collective wisdom for
fostering open source contributions says that it can discourage contribution by
conveying a false sense of "code ownership". Marking territory is negatively
affecting collaboration.  See http://www.youtube.com/watch?v=ZSFDm3UYkeE
2009-03-02 14:03:06 +00:00
accc64ad41 fix backward compatibility for .oscrc file after Marcus changes 2009-02-25 08:02:22 +00:00
Marcus Hüwe
404ecd7444 - added aliases support for [apiurl] sections in the ~/.oscrc.
Example:
  [http(s)://foobar]
  ...
  aliases = foo, bar
  
  => "osc -A foo <cmd>" will do the same as "osc -A http(s)://foobar ls"
2009-02-24 21:35:59 +00:00
Marcus Hüwe
69f8c58873 - fixed #479156 ("osc: osc linkpac fails / backtrace") 2009-02-24 20:17:23 +00:00
Marcus Hüwe
0d25a44e54 - check if the apiurl has a protocol (this partly fixes #478516) 2009-02-24 01:29:17 +00:00
Marcus Hüwe
caae2bc8a1 - cleaned up the conf module (I hope I didn't break anything):
* basically get rid of the scheme and apisrv mess - instead directly use the apiurl (== <protocol>://<host>) for everything
  * some other minor cleanups here and there
  * everyone who has a scheme or apisrv entry in his ~/.oscrc will get a deprecation warning but it's still working (at some point in the future we might remove these code paths)
  * when writing a new ~/.oscrc store the apiurl in the conffile [fixes #478054]
- while being at it:
  * fixed #478054 ("osc asks for build.o.o credential even if -A<somelocalapi> is always used")
  * fixed #478052 ("osc backtrace on password entry (first startup)")
2009-02-23 23:29:32 +00:00
4369deaf10 * add support for VM (kvm or xen) builds
* update NEWS file
2009-02-20 12:49:17 +00:00
c6f70d7506 remove hardcoded download server and use download server as reported by
the rep server.
This is fixing all non-opensuse.org build service instances.
2009-02-20 09:36:20 +00:00
Marcus Hüwe
ee64ab6954 - added support for format strings like "%(project)s" and "%(package)s" which can be used in the build-root config option.
For example one could use a new chroot for each package.
2009-01-09 16:12:45 +00:00
Dr. Peter Poeml
8383e9e895 osc build:
* rework buildinfo parser. 
 * handle new (or rather, future) attributes
   named noinstall, package (we call it repopackage), repoarch.
 * handle kiwi builds.
The urllist template (for constructing download URLs) was changed to 
make the '_repository' part variable.
2008-11-22 10:55:33 +00:00
Marcus Hüwe
db7c4c4ad5 - fixed #427118 2008-09-18 15:04:42 +00:00
Marcus Hüwe
a8181f7087 - fixed #419144
- fixed new_conf_template: commented out new 'http_headers' options
2008-08-21 18:17:40 +00:00
Susanne Oberhauser
e1d9c67f1c Parse http_headers in api host sections. 2008-08-20 14:07:11 +00:00
Susanne Oberhauser
6ded17ebf0 Factor api_host_options from get_apiurl_usr to access all host
specific options, not just the user.
2008-08-20 10:41:10 +00:00
Susanne Oberhauser
f7d2a690f5 - extend the 'auth_dict' to more generic per-host options 'api_host_options'
This allows in a next step to add per-host extra http-headers,
  here for special authentication purposes.
2008-08-20 09:45:49 +00:00
Marcus Hüwe
7dd72fd089 don't add an empty string ('') to the extra-pkgs list 2008-08-19 14:36:52 +00:00
Marcus Hüwe
3359646b02 - fix bug #412918
- added a file attribute to the ConfigError() class
- added new ConfigMissingApiurl() class
2008-08-07 17:14:26 +00:00
Marcus Hüwe
8d055f7990 - added OscConfigParser module:
OscConfigParser() behaves like a normal ConfigParser() object. The
  only differences is that it preserves the order+format of configuration entries
  and that it stores comments.
  In order to keep the order and the format it makes use of the ConfigLineOrder()
  class.
- removed .netrc cruft from the conf module
- other config cleanups
2008-08-07 16:40:55 +00:00
Marcus Hüwe
0020074a8a - fix enhancement request #412157 (Add some guessing to "osc build")
- "osc build" can be called with the following arguments:
  * osc build [OPTS] PLATFORM ARCH BUILD_DESCR
  * osc build [OPTS] PLATFORM (ARCH = hostarch, BUILD_DESCR is detected automatically)
  * osc build [OPTS] ARCH (PLATFORM = build_platform (config option), BUILD_DESCR is detected automatically)
  * osc build [OPTS] BUILD_DESCR (PLATFORM = build_platform (config option), ARCH = hostarch)
  * osc build [OPTS] (PLATFORM = build_platform (config option), ARCH = hostarch, BUILD_DESCR is detected automatically)
2008-07-30 16:45:00 +00:00
Marcus Hüwe
12ff5ac124 - some cleanups/changes for the config handling:
* extra-pkgs and urllist settings can be separated by a comma and/or whitespace:
    'extra-pkgs: foo, bar xyz'
  * 'True', 'False' etc. are accepted values for boolean options
2008-07-18 12:08:03 +00:00
Dr. Peter Poeml
cdab0b19ea - osc build: make the --extra-pkgs option configurable via .oscrc.
Default is "extra-pkgs = vim gdb strace" -- and it can be overridden with -x ''
  on the commandline, or set to empty in the config.  [bnc#345142]
- make tilde expansion work on the packagecachedir setting
2008-07-12 12:06:23 +00:00
Dr. Peter Poeml
3018460596 Merged revisions 3774-3775,3779,3781-3782,3787,3789-3793,3798,3802,3805,3817-3822,3827,3829-3830,3837-3839,3841-3842,3848-3850 via svnmerge from
https://forgesvn1.novell.com/svn/opensuse/branches/buildservice/osc-exception-handling

........
  r3774 | poeml | 2008-04-22 17:39:45 +0200 (Tue, 22 Apr 2008) | 3 lines
  
  A first draft on implement systematic exception handling: 
  Add errors.py with some exceptions defined, and babysitter.py to handle them
........
  r3775 | poeml | 2008-04-22 22:34:12 +0200 (Tue, 22 Apr 2008) | 9 lines
  
  - new global options:
       --debugger         jump into the debugger before executing anything
       --post-mortem      jump into the debugger in case of errors
       -t, --traceback    print call trace in case of errors
  - traceback and post_mortem can also be set in .oscrc.
  - catch more errors (HTTPError).
  - make config accessible from outside of the Osc instance, by making it a class
    attribute
........
  r3779 | poeml | 2008-04-23 00:55:49 +0200 (Wed, 23 Apr 2008) | 5 lines
  
  - new global option:
       -d, --debug        print info useful for debugging
  - catch some more errors (HTTPError), with OscHTTPError which isn't very
    advanced yet.
........
  r3781 | Marcus_H | 2008-04-23 01:02:00 +0200 (Wed, 23 Apr 2008) | 2 lines
  
  - added OscConfigError class (just for testing).
  - small change in the signature of the OscBaseError constructor (actually we should get rid of the 'args' tuple because it will be deprecated sooner or later
........
  r3782 | Marcus_H | 2008-04-23 02:02:13 +0200 (Wed, 23 Apr 2008) | 2 lines
  
  - access the prg.conf.config dict in a save way - this way we avoid AttributeErrors if the prg.conf.config dict doesn't exist
  - in case of an configparser error we have to use the prg.options object directly (this was removed in r3781 by accident)
........
  r3787 | poeml | 2008-04-23 09:23:56 +0200 (Wed, 23 Apr 2008) | 4 lines
  
  - remove local exception handling from do_req
  - for HTTPError, print details (headers and response) when in debug mode
  - catch AttributeError
........
  r3789 | poeml | 2008-04-23 16:23:14 +0200 (Wed, 23 Apr 2008) | 4 lines
  
  - errors: add two new classes named OscWrongOptionsError and OscWrongArgsError
  - commandline: raise instances of the new errors in a number of places
  - commandline: add get_cmd_help() to Osc instance which returns the formatted help of a subcommand
........
  r3790 | Marcus_H | 2008-04-23 16:48:28 +0200 (Wed, 23 Apr 2008) | 4 lines
  
  - added 2 new exception classes: OscNoConfigfileError and OscIOError
  - added new method write_config() to the conf.py module: This method writes osc's configuration file
  - minor cleanups in the conf module
........
  r3791 | poeml | 2008-04-23 17:11:07 +0200 (Wed, 23 Apr 2008) | 3 lines
  
  small compatibility fix for r3790: try-except-finally isn't supported in
  python-2.4.2, thus do the same as try-except inside a try-finally.
........
  r3792 | poeml | 2008-04-23 17:37:53 +0200 (Wed, 23 Apr 2008) | 2 lines
  
  fix up the remaining places regarding handling of errors related to commandline parsing
........
  r3793 | poeml | 2008-04-23 17:40:34 +0200 (Wed, 23 Apr 2008) | 3 lines
  
  raise a NoWorkingCopyError in osc.core.store_read_project() in case of an
  IOError
........
  r3798 | Marcus_H | 2008-04-23 23:55:24 +0200 (Wed, 23 Apr 2008) | 1 line
  
  ported -r3797 from trunk
........
  r3802 | Marcus_H | 2008-04-24 11:00:55 +0200 (Thu, 24 Apr 2008) | 1 line
  
  ported -r3801 from trunk
........
  r3805 | poeml | 2008-04-24 12:52:30 +0200 (Thu, 24 Apr 2008) | 2 lines
  
  raise OscHTTPError in show_pattern_meta(), replacing local error handling
........
  r3817 | poeml | 2008-04-24 20:21:32 +0200 (Thu, 24 Apr 2008) | 9 lines
  
  - remove errors.OscHTTPError again.
    it seems simpler to use urllib2.HTTPError instead (and just add a specific
    error text message where appropriate, and re-raise)
  - for 404s, check out _which_ part was not found
    it is very ugly, but may be considered Good for pragmatic reasons
  - removed local exception handling and workaround for returned 500's from
    delete_package() and delete_project(), thereby getting rid of 4 possible exit
    points.
........
  r3818 | Marcus_H | 2008-04-24 22:36:17 +0200 (Thu, 24 Apr 2008) | 1 line
  
  - this check is superfluous because every HTTPError instance has a code attribute
........
  r3819 | poeml | 2008-04-25 00:39:39 +0200 (Fri, 25 Apr 2008) | 1 line
  
  remove a forgotten debug line from core.delete_project()
........
  r3820 | poeml | 2008-04-25 10:07:58 +0200 (Fri, 25 Apr 2008) | 2 lines
  
  - ditch local error handling from wipebinaries(), rebuild(), and abortbuild()
........
  r3821 | poeml | 2008-04-25 10:56:38 +0200 (Fri, 25 Apr 2008) | 2 lines
  
  It is never needed to import the exception module.
........
  r3822 | poeml | 2008-04-25 11:13:39 +0200 (Fri, 25 Apr 2008) | 4 lines
  
  - when going into the debugger with --post-mortem, always print a traceback before
    (thus implying -t)
  - do not jump into the debugger if not on a TTY, or working in interactive mode
........
  r3827 | poeml | 2008-04-25 13:07:46 +0200 (Fri, 25 Apr 2008) | 9 lines
  
  - add errors.OscWorkingCopyOutdated, which takes a tuple with three args:
    path to working copy, current rev, expected rev
  - add handler for urllib2.URLError errors to the babysitter
  - simplify the OscWrongArgsError and OscWrongOptionsError handlers, by removing
    the extra line "Sorry, wrong ..." that was printed before the messages given
    when the error was raised.
  - remove one more errors.OscHTTPError which was still there, and raise
    urllib2.HTTPError instead (show_package_meta())
........
  r3829 | poeml | 2008-04-25 14:19:10 +0200 (Fri, 25 Apr 2008) | 11 lines
  
  - comment some methods in osc.core which are used by nearly all do_* methods in
    osc.commandline
  - improve "is not a package/project dir" error messages, by printing the
    absolute path tried, instead of '.' for the cwd
  - make core.store_read_package() raise a proper NoWorkingCopyError instead of
    terminating
  - give attribution to things in babysitter.py copied from mercurial
  - prefix HTTPError exceptions with 'Server returned an error:'
  - remove obsolete local error handling from do_prjresults(), do_importsrcpkg(),
    do_repos()
........
  r3830 | poeml | 2008-04-25 14:29:35 +0200 (Fri, 25 Apr 2008) | 1 line
  
  catch IOError exceptions in the babysitter
........
  r3837 | poeml | 2008-04-25 17:27:36 +0200 (Fri, 25 Apr 2008) | 5 lines
  
  - do_remotebuildlog: raise errors for wrong arguments, remove exits
  - raise AttributeError in make_meta_url() instead of exiting
  - delete unused method core.delete_server_files()
  - replace exit call inside make_meta_url() with an AttributeError 
........
  r3838 | poeml | 2008-04-25 17:49:18 +0200 (Fri, 25 Apr 2008) | 1 line
  
  simplify the check in do_checkout if a project exists, by using show_project_meta() instead of meta_exists
........
  r3839 | poeml | 2008-04-25 18:31:26 +0200 (Fri, 25 Apr 2008) | 6 lines
  
  - commandline do_checkout(): change the order of the two checks, first do the
    (cheaper) check for existing directory
  - core.core checkout_package(): simplify the check in if the package
    exists, by using show_package_meta() instead of meta_exists
    Let it throw an exception, instead of using sys.exit().
........
  r3841 | Marcus_H | 2008-04-27 15:48:06 +0200 (Sun, 27 Apr 2008) | 5 lines
  
  - added 2 new exception classes: PackageError() and PackageExistsError. The PackageError() class is meant to be the base class for all subsequent package exceptions.
  - get rid of 2 sys.exit(1) calls
  - make the update() method of the Project() class safer: in any case we have to write the _packages file otherwise the package tracking will be screwed up.
  - minor fix in delPackage(): use getTransActPath() when printing out the filename
........
  r3842 | Marcus_H | 2008-04-27 16:52:55 +0200 (Sun, 27 Apr 2008) | 3 lines
  
  - make the commit() method safe: in any case we have to write the _packages file otherwise the package tracking will be screwed up.
  - removed another sys.exit(1): raise an exception if a package is missing when doing a commit. For now we use the PackageExistsError() exception but this might change in the future (updated description of PackageExistsError() according to this change)
........
  r3848 | poeml | 2008-04-28 12:46:45 +0200 (Mon, 28 Apr 2008) | 3 lines
  
  rename several error classes, dropping the "Osc" prefix, and "Error" suffix in
  cases where they don't really make sense.
........
  r3849 | poeml | 2008-04-28 12:57:32 +0200 (Mon, 28 Apr 2008) | 3 lines
  
  - rename osc.errors module to osc.oscerr, to make it easier to import it from
    other programs and have a crystal clear namespace
........
  r3850 | poeml | 2008-04-28 13:26:12 +0200 (Mon, 28 Apr 2008) | 2 lines
  
  split PackageExists exception class into PackageExists and PackageMissing
........
2008-04-28 16:37:44 +00:00
Marcus Hüwe
a4f4488a50 - fixed KeyError when printing the new_conf_template 2008-04-22 22:43:00 +00:00
Marcus Hüwe
303e5dcffc - all necessary auth-information are available in the 'auth_dict' (so there's no need to fool around with the ConfigParser...) 2008-03-18 13:51:57 +00:00
Marcus Hüwe
5d57d7e299 - added 3 new methods:
* createPackageDir(): create and initialize a new package dir in
    the given project.
  * get_apiurl_usr(): returns the username for a certain apiurl
  * get_configParser(): returns an ConfigParser() object which can be
    used for parsing the ~/.oscrc file
- fixed username issues when creating a new package (the problem was
  that the username for the default host was used and not the one for
  that specific apiurl)
- some small fixes in the do_importsrcpkg() method
2008-03-15 22:51:37 +00:00
Dr. Peter Poeml
e8899aa165 if there are no credentials for the apisrv in use (which may be specified with
-A on the commandline), don't try to set up config['user'] with credentials.
2008-03-13 16:15:41 +00:00
Dr. Peter Poeml
c0fabfc449 merged the package-tracking branch changes r2404:3491 into the trunk. 2008-03-10 18:04:23 +00:00
Dr. Peter Poeml
a3a2667742 - change conf.get_config() to take three optional override values:
get_config(override_conffile = None,
             override_http_debug = None,
             override_apisrv = None)
  Thus, it should be possible to use the osc module with one simple 
  conf.get_config() call. It is no longer required to set up the api url in the
  config dict, and call conf.init_basicauth().
2007-08-22 10:18:25 +00:00
Dr. Peter Poeml
106645a87b allow to specify a different config file via the environmental variable OSC_CONFIG 2007-08-22 08:30:53 +00:00
Dr. Peter Poeml
cdf91d7f39 commit: use the documented commit method by default now 2007-08-14 10:30:39 +00:00
Dr. Peter Poeml
a5b0a50d28 https_proxy is not supported by urllib2. It only leads to an error or, at best,
a warning. Thus, unset https_proxy and HTTPS_PROXY in the environment, so
urllib2 doesn't trip over it.
https://bugzilla.novell.com/show_bug.cgi?id=214983
https://bugzilla.novell.com/show_bug.cgi?id=298378
2007-08-08 13:24:52 +00:00
Dr. Peter Poeml
30b82a050e expand tilde to users home for packagecachedir in .oscrc [#293675] 2007-07-24 10:46:03 +00:00
Dr. Peter Poeml
9921fcac8e Switch from software.opensuse.org to download.opensuse.org as default
download URL
2007-07-16 09:45:17 +00:00
Dr. Peter Poeml
0d9278229c - don't need config['pass'] anymore
- but set config['user'], which was unset since the recent changes in auth handling
2007-05-10 14:29:04 +00:00
Dr. Peter Poeml
4e39519efb use new API route for downloading binaries also in configured URLs 2007-05-07 20:14:20 +00:00
Dr. Peter Poeml
354c01be55 - build: fix passing of commandline options and arguments to build.main(),
which was still using sys.argv
- build: use own api server as upstream URL in urllist. So far,
  api.opensuse.org was hardcoded in the download URL [#265211].
2007-04-25 11:22:40 +00:00
Dr. Peter Poeml
b58b6e5a3f - fully implement accessing multiple API servers. "apisrv" in the config takes
a URL now, so the variable "scheme" which was needed in addition before
  becomes obsolete. For backward compatibility, a hostname (and scheme
  variable) are still accepted. Likewise, the auth sections in the config take
  a URL now, and a hostname:port to keep old config working.
  Furthermore, apisrv can be overridden by -A on the commandline. HTTP or HTTPS
  scheme is determined from the URL. Credentials must be configured in .oscrc.
2007-04-25 10:24:51 +00:00
Dr. Peter Poeml
36e4cc3140 initialize the auth handler with all configured credentials, so it is now
possible to use osc with different api servers by overriding apisrv on the
command line
2007-04-25 08:56:31 +00:00
Dr. Peter Poeml
2f5b52e92c Complete rewrite of the internal commandline handling, using cmdln.py.
Bump version to 0.95.

New features:
- implement "rebuild all failed packages", via --failed option in rebuildpac
  subcommand (new api route)
- status -v shows all files, including unmodified ones
- suppress the legend in prjresults by default (show with -l)
- add global options to override config
- can use arbitrary api server via global -A option
- -H enables HTTP traffic debugging
- --version

Bugfixes:
- fix typo in delete_project() (the line building up the URL got lost)
- fix the commit subcommand's arguments. This works correctly now: 
    osc ci ../test/onlyinwc `pwd` fstab ../test/f2 
- fix buildinfo subcommand, if no specfile is posted. Broke with the recent URL
  handling rewrite, but didn't seem to bother because the build subcommand
  always sends the specfile.
- try to fix buildhistory route, but it might be gone actually (need to pursue)
- add --clean/--noinit to osc build help output
2007-04-24 23:00:12 +00:00
Dr. Peter Poeml
56f9752b8c save and reuse HTTP server cookies, speeding HTTP requests up about 5 times (in
our iChain setup anyway...)
2007-04-19 10:40:18 +00:00
Dr. Peter Poeml
c993a04c7c Rewrite the HTTP handling
- adding http_GET/POST/PUT/DELETE() functions, which dispatch to
   http_request(), and use them everywhere
 - removing othermethods.py 
 - keeping urlopen(), in case it is used from externally, but have it print out
   a "depracated" message
 - finally, implementing a global HTTP debug mode
2007-04-19 08:47:22 +00:00
Dr. Peter Poeml
1ecbbf9f23 further the osc buildroot configuration example 2007-04-18 00:26:14 +00:00
Dr. Peter Poeml
a12c8e9b82 merge from Susannes branch (/branches/froh/reponator/)
* I extended the comments in the template with findings I had to dig
    through (how to switch the protocol and how to specify the port)
2007-01-12 03:53:44 +00:00
Dr. Peter Poeml
a94364d95b correct last fix: set scheme in DEFAULTS not in the comment. 2006-10-13 09:19:28 +00:00
Dr. Peter Poeml
4f61fc4bb0 set scheme=https in the default conf; add missing import sys in othermethods.py 2006-10-13 06:37:16 +00:00
Dr. Peter Poeml
baafea955b - add 'edituser' command for editing the metadata of a user account. It tries
to create a user if it doesn't exist yet. A new command 'usermeta' replaces
  'id' respectively 'userid'.
- add preliminary support for doing uploads with a subsequent "commit" request
  (not switched on now, since I want to do more testing on this, and there is
  no way to pass on a commit message yet anyway.)
- add runtime check for build.rpm version, so the rpm package dependencies is
  no longer required
- fix typo introduced last time in the editmeta, deletepac, deleteprj commands
- rewrite the PUT and DELETE request methods to 
  - transparently handle HTTPS 
  - handle path parameters (for commits)
  - send user agent
- rename get_user_id() function to get_user_meta()
- change copyright notice from Peter Poeml to Peter Poeml / Novell Inc.
- fix testsuite
- add CREDITS file
2006-10-12 13:22:56 +00:00
Dr. Peter Poeml
39779ec9bc - rewrite configuration handling
- move all configuration code into module osc/conf.py
  - now, the API server can be configured in .oscrc with
    apisrv = ...
  - also, 'scheme' (http/https) is no longer a module variable but can be
    configured
  - all config is in DEFAULT
- ignore vim swap files
- use urllib() convenience wrapper in some functions that used
  urllib2.urlopen() and had their own error handling. Instead, it seems to make
  sense -- in the future-- to create our own errors and propagate them up, in
  cases where the error handling of urlopen() is too generic
- rename get_slash_source() to meta_get_project_list() for consistency
- show local time in get_buildhistory(), not UTC
- rewrite help text of 'rebuildpac' command
- allow to run commandline.py from the commandline (without the wrapper)
- don't send a space when doing a POST request without body
2006-10-10 14:04:34 +00:00