1
0
mirror of https://github.com/openSUSE/osc.git synced 2024-12-30 19:56:14 +01:00
Commit Graph

312 Commits

Author SHA1 Message Date
Marcus Hüwe
f041ee43ba - use absolute pathnames for preferred package dirs 2008-05-04 14:00:42 +00:00
Marcus Hüwe
602c146663 - return a real string instead of an tuple when invoking 'print' on the object 2008-05-03 18:25:24 +00:00
Pavol Rusnak
afec162189 - added --keep-maintainers switch to copypac
(do not remove original maintainers and replace them with caller)
2008-04-30 12:28:25 +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
Dr. Peter Poeml
5d7df534ee submitreq show: fix the --diff option; the diff was shown reversed. (bnc#379519) 2008-04-28 09:39:07 +00:00
Marcus Hüwe
2440bed285 - added --job option to the do_build() command. (this option will be passed to build script) 2008-04-24 09:00:23 +00:00
Marcus Hüwe
4c6ce9ae56 - added new method getStatus() which calculates the status of certain packages
- cleaned up do_status() and added support for multiple project dirs (osc st prj_dir1 /path/to/prj_dir2 ...)
2008-04-23 21:51:24 +00:00
Dr. Peter Poeml
40642ecaf4 save cookies even in case of urllib2.HTTPError exceptions [bnc#378421] 2008-04-23 07:07:45 +00:00
Marcus Hüwe
a4f4488a50 - fixed KeyError when printing the new_conf_template 2008-04-22 22:43:00 +00:00
Dr. Peter Poeml
34b5b109ac remove osc.core.urlopen(), which is depracated since at least a year 2008-04-22 22:41:49 +00:00
Dr. Peter Poeml
5d6984ac64 remove code that was added in commit 3504 for debugging purposes, but never used.
(Bug https://bugzilla.novell.com/show_bug.cgi?id=369176, empty responses from
api.opensuse.org.)
2008-04-22 22:35:48 +00:00
Marcus Hüwe
a13e822838 - use "rev=upload" when deleting otherwise this would result in a double commit (if "rev=upload" is not specified bs_srcserver does a "real" commit and additionally osc sends a request do a commit => 2 commits) 2008-04-21 15:07:34 +00:00
Michal Marek
c4f7b89062 warn only once for each unknown status in 'osc prjresults' 2008-04-18 11:37:19 +00:00
61e2a77eb1 fix api call to request log file file. This was the legacy call, which
seems not to work anymore.
2008-04-14 07:07:08 +00:00
6debf60892 temporary workaround for cookie handling problem by Andreas 2008-04-12 08:04:41 +00:00
Michal Marek
0835580d59 Abort if meta_exists encounters an unexpected error (bnc#377693).
The correct fix is to propagate this to commandline.py and exit() there.
2008-04-11 10:49:43 +00:00
Marcus Hüwe
e9176c7513 - fixed bug #378752 (osc fails to delete patterns) 2008-04-10 21:04:17 +00:00
Marcus Hüwe
80ab6bf345 - fixed bug #359846:
the BUILD_DIST environment variable will be ignored by osc
- the following environment variables can still be used:
  # OSC_SU_WRAPPER overrides the setting of su-wrapper. 
  # OSC_BUILD_ROOT overrides the setting of build-root.
  # OSC_PACKAGECACHEDIR overrides the setting of packagecachedir.
  (now they're documented in the helptext)
2008-04-09 18:45:59 +00:00
Dirk Mueller
5c064bc2c1 fix latent file descriptor leak in get_source_file() 2008-04-07 09:55:11 +00:00
Marcus Hüwe
d9ee2be26d - ignore dot packages too 2008-04-03 10:46:18 +00:00
Marcus Hüwe
a3f948dede - fixed bug #376285:
* make_dir() and checkout_package() got a new optionally 'prj_dir'     parameter. This parameter specifies in which dir we want to create new project/package dirs.
2008-04-02 15:30:44 +00:00
Dr. Peter Poeml
e62dd94cc0 copypac: make the server-side copy the default. But do a client-side copy if source and target are not on the same buildservice instance. 2008-04-02 14:36:23 +00:00
Dr. Peter Poeml
cc02e878b0 change some places where queries are passed to makeurl(). Use dictionaries for
that, which causes makeurl() to automatically do the quoting work.
2008-04-02 14:07:40 +00:00
Dr. Peter Poeml
6e5d41f481 - a slight simplification -- rev=upload is always okay. 2008-04-02 12:54:26 +00:00
Dr. Peter Poeml
5e5ca2e020 implement committing with keeping links 2008-04-02 12:37:56 +00:00
Dr. Peter Poeml
11fa192b33 - ignore all dot files (the buildservice doesn't handle them)
- fix Project class (used by the "package tracking" code path)
  to use fnmatch.fnmatch() on the list of exclude expressions
2008-03-31 14:42:11 +00:00
Marcus Hüwe
a20e354d07 - small apiurl fixes 2008-03-27 00:36:17 +00:00
Dr. Peter Poeml
a0bae2ab52 osc update: fix diff3 merging for expanded links, by adding the revision to the
get_source_file() call in the mergfile method.
2008-03-26 16:11:11 +00:00
Dr. Peter Poeml
3db9e6449c Link handling:
Add support for handling linked packages in expanded form. They can be checked
out, updated (expanding or unexpanding them), and built locally.
Missing: commit support.

Newly introduced options are:
- osc checkout: --expand-link 
- osc update: --expand-link and --unexpand-link 

Other changes:
- osc core: add show_upstream_xsrcmd5() method which returns the xsrcmd5 (if a
  linkinfo element exists only, of course)
- made updating of expanded sources work with package tracking, too.
2008-03-24 20:24:49 +00:00
Dr. Peter Poeml
2fa94dcf23 core:
- add isexpanded() method to Linkinfo class
 - add isexpandedlink() method to Package class
 - read lsrcmd5 and srcmd5 from the linkinfo element, which are present in
   expanded links.
osc info: 
 - make it show info about expanded and non-expanded links
2008-03-22 17:37:17 +00:00
Dr. Peter Poeml
f5af255798 core: relax the revision id check, so that source md5 sums are accepted 2008-03-22 16:35:22 +00:00
Dr. Peter Poeml
892e644f59 - add Linkinfo class to osc.core
- Package class: 
  - add linkinfo when reading in package data via update_datastructs()
  - add islink() method
2008-03-22 13:37:59 +00:00
Dr. Peter Poeml
64f3d8c55e submitreq show: if the target package doesn't exist, a diff cannot be produced. 2008-03-20 20:11:30 +00:00
Dr. Peter Poeml
c2c406aab2 submitreq: adjust to renamed API calls and XML ("merge" -> "submit") 2008-03-20 19:17:40 +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
3c3e961f4e - minor fix in createPackageDir
- osc mkpac only works when 'do_package_tracking' is enabled
2008-03-17 23:43:32 +00:00
Marcus Hüwe
3fdf758dbb - do_repos() should work in a project dir too 2008-03-17 23:24:28 +00:00
Dr. Peter Poeml
2493ea555a - copypac: do a server-side copy (via a single api call) when
used with -s / --server-side. 
  This might be the default behaviour later.
  An option to specify the source revision is missing yet.
2008-03-17 21:46:42 +00:00
Dr. Peter Poeml
8ce42e2dd9 change osc.core.pretty_diff() to call makeurl() with a query dict 2008-03-17 21:39:27 +00:00
Dr. Peter Poeml
140a331c40 Enhance osc.core.makeurl(). This function accepts a query parameter in form of
a list. The query can now also be given as a dictionary, and in that case it
will be automatically urlencoded. The behaviour for a list is unchanged for 
the reason of backward compatibility.
2008-03-17 21:10:34 +00:00
Dr. Peter Poeml
54c1690309 osc req: add option -a / --add-header to add arbitrary request headers 2008-03-16 20:46:16 +00:00
Dr. Peter Poeml
7b91075229 handle mmap failure on filesystems like NTFS, which may not support
memory mapping when mounted under Linux
2008-03-16 19:02:38 +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
Marcus Hüwe
c307449167 - we only need the "<entry />" nodes - otherwise listing files of a linked package fails 2008-03-13 21:45:24 +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
Pavol Rusnak
734973a0bd csv exported project results now use ';' as default 2008-03-13 11:13:22 +00:00
Dr. Peter Poeml
2bf92fce75 submitreq:
- when requesting a submit, save the source package's revision id (looking up
   what it currently is)
 - give the user a way to override it, to submit an older revision
 - when using show --diff, take the actual old revision into account. Thus, the
   diff is against the source revision of the time of request creation.
2008-03-12 23:37:35 +00:00
Dr. Peter Poeml
6ab8fb52c7 - remove remove obsolete, commented code (do_editpac(), do_editprj())
- fix a small tabbing issue
2008-03-12 18:26:41 +00:00
Dr. Peter Poeml
241f528dc4 implement a submitreq 'accept' action, resulting in the respective state change 2008-03-12 18:22:11 +00:00
Dr. Peter Poeml
8fc20cfc74 ...which doesn't work. There are other requests where 0-replies are possible. 2008-03-11 17:09:25 +00:00