[cobbler] yaml.parser.ParserError after upgrade to 2.4.7
Jörgen Maas
jorgen.maas at gmail.com
Fri Aug 22 05:24:34 UTC 2014
Of course, another error when backporting stuff.
This should fix that.
diff --git a/cobbler.spec b/cobbler.spec
index 367dd05..03249bd 100644
--- a/cobbler.spec
+++ b/cobbler.spec
@@ -17,7 +17,6 @@ Url: http://www.cobblerd.org/
BuildRequires: redhat-rpm-config
BuildRequires: git
-BuildRequires: PyYAML
BuildRequires: python-cheetah
BuildRequires: python-setuptools
diff --git a/cobbler/api.py b/cobbler/api.py
index aa4d2ee..00f0e3c 100644
--- a/cobbler/api.py
+++ b/cobbler/api.py
@@ -23,9 +23,10 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor,
Boston, MA
"""
import sys
-import yaml
import config
import utils
+from ConfigParser import ConfigParser
+
import action_sync
import action_check
import action_reposync
@@ -207,7 +208,7 @@ class BootAPI:
if debug:
logger = self.logger.debug
else:
- logger = self.logger.info
+ logger = self.logger.info
if args is None:
logger("%s" % msg)
else:
@@ -220,7 +221,7 @@ class BootAPI:
What version is cobbler?
If extended == False, returns a float for backwards compatibility
-
+
If extended == True, returns a dict:
gitstamp -- the last git commit hash
@@ -229,13 +230,22 @@ class BootAPI:
version -- something like "1.3.2"
version_tuple -- something like [ 1, 3, 2 ]
"""
- fd = open("/etc/cobbler/version")
- ydata = fd.read()
- fd.close()
- data = yaml.safe_load(ydata)
+
+ config = ConfigParser()
+ config.read("/etc/cobbler/version")
+ data = {}
+ data["gitdate"] = config.get("cobbler","gitdate")
+ data["gitstamp"] = config.get("cobbler","gitstamp")
+ data["builddate"] = config.get("cobbler","builddate")
+ data["version"] = config.get("cobbler","version")
+ # dont actually read the version_tuple from the version file
+ data["version_tuple"] = []
+ for num in data["version"].split("."):
+ data["version_tuple"].append(int(num))
+
if not extended:
# for backwards compatibility and use with koan's comparisons
- elems = data["version_tuple"]
+ elems = data["version_tuple"]
return int(elems[0]) + 0.1*int(elems[1]) + 0.001*int(elems[2])
else:
return data
On Fri, Aug 22, 2014 at 12:33 AM, Orion Poplawski <orion at cora.nwra.com>
wrote:
> But the method of creation changed between 2.4.6 and 2.4.7 with:
>
> commit f78979a8463e5519c21ea40dfebc438ff3c07b99
> Author: Jörgen Maas <jorgen.maas at gmail.com>
> Date: Fri Jul 25 09:47:58 2014 +0200
>
> Fix broken gitdate, gitstamp values in version file.
>
> diff --git a/setup.py b/setup.py
> index 970b4f9..dd5bd46 100644
> --- a/setup.py
> +++ b/setup.py
> @@ -1,5 +1,6 @@
> #!/usr/bin/env python
> -import glob, os, sys, time, yaml
> +import glob, os, sys, time
> +from ConfigParser import ConfigParser
> from distutils.core import setup, Command
> from distutils.command.build_py import build_py as _build_py
> import unittest
> @@ -77,24 +78,24 @@ def gen_manpages():
> #####################################################################
>
> def gen_build_version():
> - fd = open(os.path.join(OUTPUT_DIR, "version"),"w+")
> - gitdate = "?"
> - gitstamp = "?"
> builddate = time.asctime()
> - if os.path.exists(".git"):
> - # for builds coming from git, include the date of the last commit
> - cmd = subprocess.Popen(["/usr/bin/git","log","--format=%h%n%ad",
> "-1"],stdout=subprocess.
> - data = cmd.communicate()[0].strip()
> - if cmd.returncode == 0:
> - gitstamp, gitdate = data.split("\n")
> - data = {
> - "gitdate" : gitdate,
> - "gitstamp" : gitstamp,
> - "builddate" : builddate,
> - "version" : VERSION,
> - "version_tuple" : [ int(x) for x in VERSION.split(".")]
> - }
> - fd.write(yaml.dump(data))
> + cmd = subprocess.Popen(["/usr/bin/git", "log", "--format=%h%n%ad",
> "-1"], stdout=subprocess
> + data = cmd.communicate()[0].strip()
> + if cmd.returncode == 0:
> + gitstamp, gitdate = data.split("\n")
> + else:
> + gitdate = "?"
> + gitstamp = "?"
> +
> + fd = open(os.path.join(OUTPUT_DIR, "version"), "w+")
> + config = ConfigParser()
> + config.add_section("cobbler")
> + config.set("cobbler","gitdate", gitdate)
> + config.set("cobbler","gitstamp", gitstamp)
> + config.set("cobbler","builddate", builddate)
> + config.set("cobbler","version", VERSION)
> + config.set("cobbler","version_tuple", [ int(x) for x in
> VERSION.split(".")])
> + config.write(fd)
> fd.close()
>
> #####################################################################
>
>
>
>
> On 08/18/2014 02:41 PM, Jörgen Maas wrote:
>
>> Not very likely, the file is generated by setup.py when
>> building/installing.
>>
>>
>>
>> On Mon, Aug 18, 2014 at 10:11 PM, Greg Chavez <greg.chavez at gmail.com
>> <mailto:greg.chavez at gmail.com>> wrote:
>>
>> I pulled down a backup of the version file from a few days ago and
>> solved
>> the issue:
>>
>> root at io-ns-03:~> cat /etc/cobbler/version
>> builddate: Tue Apr 22 15:30:11 2014
>> gitdate: '?'
>> gitstamp: '?'
>> version: 2.4.4
>> version_tuple: [2, 4, 4]
>>
>> So like the 2.6 version file snuck into the 2.4.7 package?
>>
>>
>> On Mon, Aug 18, 2014 at 3:56 PM, Jörgen Maas <jorgen.maas at gmail.com
>> <mailto:jorgen.maas at gmail.com>> wrote:
>>
>> The format of the version file changed in 2.6.x (it's now
>> basically
>> ini format using python ConfigParser)
>>
>>
>> On Mon, Aug 18, 2014 at 5:14 PM, Greg Chavez <
>> greg.chavez at gmail.com
>> <mailto:greg.chavez at gmail.com>> wrote:
>>
>> Thanks for your reply, Alan.
>>
>> I didn't do a find/xargs/grep for version_tuple! Drat, bad
>> troubleshooting. But in any case, even converting that file to
>> YAML doesn't seem to help, I just get more errors.
>>
>> Another interesting thing, the format of /etc/cobbler/version
>> in
>> 2.6.3 is not in YAML either.
>>
>> Whatever. This is only affecting the Web console, so I can
>> stay in
>> business while I stand up 2.6 on a new server and replicate.
>>
>> --Greg
>>
>>
>> On Mon, Aug 18, 2014 at 10:49 AM, Alan Evangelista
>> <alanoe at linux.vnet.ibm.com <mailto:alanoe at linux.vnet.ibm.com>>
>> wrote:
>>
>> On 08/18/2014 11:27 AM, Greg Chavez wrote:
>>
>> So I upgraded the cobbler and cobbler-web yum packages
>> from 2.4.4 to 2.4.7, in preparation for upgrading to
>> 2.6
>> (this is a RedHat 5.6 system). Cobbler works fine
>> from
>> the command line, but I get an error when I attempt to
>> login to the Web console. In /var/log/cobbler, I get
>> this
>> every time I access:
>>
>>
>> Fri Aug 15 14:59:08 2014 - INFO | Exception
>> occured:
>> yaml.parser.ParserError
>> Fri Aug 15 14:59:08 2014 - INFO | Exception
>> value:
>> expected
>> '<document start>', but found '<scalar>'
>> in "<string>", line 2, column 1:
>> version_tuple = [2, 4, 7]
>> ^
>>
>>
>> /etc/cobbler/version has incorrect format, it should be in
>> YAML.. Example:
>>
>> builddate: Thu Jan 30 21:42:10 2014
>> gitdate: Mon Dec 9 11:08:16 2013 -0800
>> gitstamp: 2181fa3
>> version: 2.5.0
>> version_tuple: [2, 5, 0]
>>
>> It is possible you'll have conflicts with other files. I'd
>> recommend backing up important data and making a a clean
>> installation.
>>
>>
>> Regards,
>> Alan Evangelista
>>
>> _________________________________________________
>> cobbler mailing list
>> cobbler at lists.fedorahosted.org
>> <mailto:cobbler at lists.fedorahosted.org>
>> https://lists.fedorahosted.__org/mailman/listinfo/cobbler
>>
>> <https://lists.fedorahosted.org/mailman/listinfo/cobbler>
>>
>>
>>
>>
>> --
>> \*..+.-
>> --Greg Chavez
>> +//..;};
>>
>> _______________________________________________
>> cobbler mailing list
>> cobbler at lists.fedorahosted.org <mailto:cobbler at lists.
>> fedorahosted.org>
>>
>> https://lists.fedorahosted.org/mailman/listinfo/cobbler
>>
>>
>>
>>
>> --
>> Grtz,
>> Jörgen Maas
>>
>> _______________________________________________
>> cobbler mailing list
>> cobbler at lists.fedorahosted.org <mailto:cobbler at lists.
>> fedorahosted.org>
>>
>> https://lists.fedorahosted.org/mailman/listinfo/cobbler
>>
>>
>>
>>
>> --
>> \*..+.-
>> --Greg Chavez
>> +//..;};
>>
>> _______________________________________________
>> cobbler mailing list
>> cobbler at lists.fedorahosted.org <mailto:cobbler at lists.fedorahosted.org
>> >
>>
>> https://lists.fedorahosted.org/mailman/listinfo/cobbler
>>
>>
>>
>>
>> --
>> Grtz,
>> Jörgen Maas
>>
>>
>> _______________________________________________
>> cobbler mailing list
>> cobbler at lists.fedorahosted.org
>> https://lists.fedorahosted.org/mailman/listinfo/cobbler
>>
>>
>
> --
> Orion Poplawski
> Technical Manager 303-415-9701 x222
> NWRA, Boulder/CoRA Office FAX: 303-415-9702
> 3380 Mitchell Lane orion at nwra.com
> Boulder, CO 80301 http://www.nwra.com
>
> _______________________________________________
> cobbler mailing list
> cobbler at lists.fedorahosted.org
> https://lists.fedorahosted.org/mailman/listinfo/cobbler
>
--
Grtz,
Jörgen Maas
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.fedorahosted.org/pipermail/cobbler/attachments/20140822/95b8cdb7/attachment-0001.html>
More information about the cobbler
mailing list