[cobbler] yaml.parser.ParserError after upgrade to 2.4.7

Jörgen Maas jorgen.maas at gmail.com
Fri Aug 22 05:35:28 UTC 2014


Also pushed to release24 branch, if you are willing to test this that would
be great.


On Fri, Aug 22, 2014 at 7:24 AM, Jörgen Maas <jorgen.maas at gmail.com> wrote:

> 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
>



-- 
Grtz,
Jörgen Maas
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.fedorahosted.org/pipermail/cobbler/attachments/20140822/952f577f/attachment-0001.html>


More information about the cobbler mailing list