[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