diff options
Diffstat (limited to 'cobbler')
-rwxr-xr-x | cobbler/cobbler.py | 6 | ||||
-rw-r--r-- | cobbler/config.py | 10 | ||||
-rw-r--r-- | cobbler/sync.py | 7 |
3 files changed, 14 insertions, 9 deletions
diff --git a/cobbler/cobbler.py b/cobbler/cobbler.py index 47c8c5a..0b26307 100755 --- a/cobbler/cobbler.py +++ b/cobbler/cobbler.py @@ -9,6 +9,7 @@ library. Consult 'man cobbler' for general info. import os import sys import api +import syck from msg import * class BootCLI: @@ -290,6 +291,11 @@ def main(): """ CLI entry point """ + + # verify syck isn't busted (old syck bindings were) + if not hasattr(syck,"dump"): + raise Exception("needs a more-recent PySyck") + if os.getuid() != 0: # while it's true that we don't technically need root, we do need # permissions on a relatively long list of files that ordinarily diff --git a/cobbler/config.py b/cobbler/config.py index 26192a7..aa17763 100644 --- a/cobbler/config.py +++ b/cobbler/config.py @@ -6,7 +6,7 @@ import api import util from msg import * -import yaml # the yaml parser from RHN's spec-tree (Howell/Evans) +import syck # pysyck > 0.61, so it has dump() import os import traceback @@ -160,7 +160,7 @@ class BootConfig: self.api.last_error = m("cant_create: %s" % self.settings_file) return False data = self.to_hash(True) - settings.write(yaml.dump(data)) + settings.write(syck.dump(data)) # ------ # dump internal state (distros, profiles, systems...) @@ -174,7 +174,7 @@ class BootConfig: self.api.last_error = m("cant_create: %s" % self.state_file) return False data = self.to_hash(False) - state.write(yaml.dump(data)) + state.write(syck.dump(data)) # all good return True @@ -189,7 +189,7 @@ class BootConfig: # ----- # load global config (pathing, urls, etc)... try: - settings = yaml.load(open(self.settings_file,"r").read()).next() + settings = syck.load(open(self.settings_file,"r").read()) if settings is not None: self.from_hash(settings,True) else: @@ -203,7 +203,7 @@ class BootConfig: # ----- # load internal state(distros, systems, profiles...) try: - state = yaml.load(open(self.state_file,"r").read()).next() + state = syck.load(open(self.state_file,"r").read()) if state is not None: self.from_hash(state,False) else: diff --git a/cobbler/sync.py b/cobbler/sync.py index ae20872..80b0c67 100644 --- a/cobbler/sync.py +++ b/cobbler/sync.py @@ -10,8 +10,7 @@ import sys import traceback import re import shutil -import yaml # from RHN's spec-tree (Howell/Evans) - +import syck import IPy from msg import * @@ -253,7 +252,7 @@ class BootSync: # resolve to current values distro.kernel = self.api.utils.find_kernel(distro.kernel) distro.initrd = self.api.utils.find_initrd(distro.initrd) - self.tee(fd,yaml.dump(distro.to_datastruct())) + self.tee(fd,syck.dump(distro.to_datastruct())) self.close_file(fd) @@ -266,7 +265,7 @@ class BootSync: # the HTTP mirror, so make it something anaconda can get at if profile.kickstart and profile.kickstart.startswith("/"): profile.kickstart = "http://%s/cobbler/kickstarts/%s/ks.cfg" % (self.api.config.server, profile.name) - self.tee(fd,yaml.dump(profile.to_datastruct())) + self.tee(fd,syck.dump(profile.to_datastruct())) self.close_file(fd) |