1 |
commit: ebdfa6445d4f0e253f6f031b1da17044f9b8b889 |
2 |
Author: André Erdmann <dywi <AT> mailerd <DOT> de> |
3 |
AuthorDate: Wed Jul 25 15:45:29 2012 +0000 |
4 |
Commit: André Erdmann <dywi <AT> mailerd <DOT> de> |
5 |
CommitDate: Wed Jul 25 15:46:05 2012 +0000 |
6 |
URL: http://git.overlays.gentoo.org/gitweb/?p=proj/R_overlay.git;a=commit;h=ebdfa644 |
7 |
|
8 |
don't write empty metadata |
9 |
|
10 |
--- |
11 |
roverlay/overlay/metadata/__init__.py | 28 ++++++++++++++++------------ |
12 |
1 files changed, 16 insertions(+), 12 deletions(-) |
13 |
|
14 |
diff --git a/roverlay/overlay/metadata/__init__.py b/roverlay/overlay/metadata/__init__.py |
15 |
index a0456f2..9cac712 100644 |
16 |
--- a/roverlay/overlay/metadata/__init__.py |
17 |
+++ b/roverlay/overlay/metadata/__init__.py |
18 |
@@ -86,32 +86,36 @@ class MetadataJob ( object ): |
19 |
return mref |
20 |
# --- end of update (...) --- |
21 |
|
22 |
- def _write ( self, fh ): |
23 |
+ def _write ( self, fh, mref ): |
24 |
"""Writes the metadata into a file. |
25 |
|
26 |
arguments: |
27 |
- * _file -- file to write, either a file handle or string in which case |
28 |
- a file object will be created |
29 |
+ * fh -- file handle used for writing |
30 |
|
31 |
returns: True if writing succeeds, else False |
32 |
|
33 |
raises: Exception if no metadata to write |
34 |
""" |
35 |
- if self._create().write_file ( fh ): |
36 |
- return True |
37 |
- else: |
38 |
- raise Exception ( "not enough metadata to write!" ) |
39 |
+ return mref.write_file ( fh ) |
40 |
+ #raise Exception ( "not enough metadata to write!" ) |
41 |
# --- end of _write (...) --- |
42 |
|
43 |
- show = _write |
44 |
+ def show ( self, stream ): |
45 |
+ return self._create().write_file ( stream ) |
46 |
+ # --- end of show (...) --- |
47 |
|
48 |
def write ( self ): |
49 |
_success = False |
50 |
try: |
51 |
- fh = open ( self.filepath, 'w' ) |
52 |
- self._write ( fh ) |
53 |
- _success = True |
54 |
- except any as e: |
55 |
+ # succeed if metadata empty or written |
56 |
+ mref = self._create() |
57 |
+ if mref.empty(): |
58 |
+ _success = True |
59 |
+ else: |
60 |
+ fh = open ( self.filepath, 'w' ) |
61 |
+ _success = self._write ( fh ) |
62 |
+ |
63 |
+ except Exception as e: |
64 |
self.logger.exception ( e ) |
65 |
finally: |
66 |
if 'fh' in locals() and fh: fh.close() |