]> git.decadent.org.uk Git - dak.git/blobdiff - dak/transitions.py
Fix yaml dump bug in syck by using yaml instead
[dak.git] / dak / transitions.py
index 5c81e03aca1829af9dbd933efc0bc2c277b35779..e4b6d582fbd8f40f5ea3b048210c46963feabc1d 100755 (executable)
@@ -27,7 +27,9 @@ import os, pg, sys, time, errno, fcntl, tempfile, pwd, re
 import apt_pkg
 from daklib import database
 from daklib import utils
+from daklib.dak_exceptions import TransitionsError
 import syck
+import yaml
 
 # Globals
 Cnf = None
@@ -218,7 +220,7 @@ def write_transitions(from_trans):
     temp_lock  = lock_file(trans_temp)
 
     destfile = file(trans_temp, 'w')
-    syck.dump(from_trans, destfile)
+    yaml.dump(from_trans, destfile, default_flow_style=False)
     destfile.close()
 
     os.rename(trans_temp, trans_file)
@@ -227,9 +229,6 @@ def write_transitions(from_trans):
 
 ################################################################################
 
-class ParseException(Exception):
-    pass
-
 ##########################################
 #### This usually runs within sudo !! ####
 ##########################################
@@ -248,7 +247,7 @@ def write_transitions_from_file(from_file):
     else:
         trans = load_transitions(from_file)
         if trans is None:
-            raise ParseException, "Unparsable transitions file %s" % (file)
+            raise TransitionsError, "Unparsable transitions file %s" % (file)
         write_transitions(trans)
 
 ################################################################################
@@ -261,7 +260,7 @@ def temp_transitions_file(transitions):
     (fd, path) = tempfile.mkstemp("", "transitions", Cnf["Transitions::TempPath"])
     os.chmod(path, 0644)
     f = open(path, "w")
-    syck.dump(transitions, f)
+    yaml.dump(transitions, f, default_flow_style=False)
     return path
 
 ################################################################################
@@ -458,7 +457,7 @@ def main():
     if Options["import"]:
         try:
             write_transitions_from_file(Options["import"])
-        except ParseException, m:
+        except TransitionsError, m:
             print m
             sys.exit(2)
         sys.exit(0)