On Apr 26, 2009, at 8:02 PM, Brice Figureau wrote:

>
> On 26/04/09 2:29, Luke Kanies wrote:
>> On Apr 25, 2009, at 5:49 PM, Brice Figureau wrote:
>>
>>> On 25/04/09 1:10, Luke Kanies wrote:
>>>> Unfortunately, again because of a Ruby bug
>>>> (http://rubyforge.org/tracker/?group_id=426&atid=1698&func=detail&aid=8886
>>>> )
>>>> Ruby can't print yaml that it can read, if custom
>>>> classes are used as keys in hashes, which Sets use internally.
>>> Note, that I can trigger the same issue but with the VertexWrapper  
>>> in
>>> and out Sets in relation to RelationShip:
>>>
>>> ...
>>> vertices:
>>>  *id002: !ruby/object:Puppet::SimpleGraph::VertexWrapper
>>>    adjacencies:
>>>      :out: {}
>>>
>>>      :in:
>>>        *id003: !ruby/object:Set
>>>          hash:
>>>            &id004 !ruby/object:Puppet::Relationship ?
>>> ------------------^
>>> not good!
>
> Basically, this is invalid yaml, it should have been written:
>              ? &id004 !ruby/object:Puppet::Relationship

Yep, that's the bug.

>
>>>              source: *id003
>>>              target: *id002
>>>            : true
>>>
>>>    vertex: *id002
>>> ...
>>
>> Even with this patch applied?
>
> Yes, otherwise I wouldn't have posted this mail :-)
> Please see my mail:
> [Puppet-dev] [PATCH 1/1] Fix-up incorrectly generated yaml
> for a relatively safe fix-up/workaround for this bug.

I wasn't quite sure; the phrasing of the email wasn't entirely clear  
to me, and your patch hadn't been sent quite yet, I think.

The patch is probably a better idea at this point than my constant  
patches to each of the classes to reorder the attributes printed.

>
> I don't expect ruby to automagically fix this issue as they didn't  
> move
> in 2 years the bug was reported, so basically the ball is in our  
> camp to
> fix this.

Yep.

>
>>> And it seems --catalog_format doesn't exist anynore in 0.25, is that
>>> right?
>>
>>
>> Right; we have a general serialization system now as part of the
>> Indirector (Puppet::Network::Format*), and the format is essentially
>> chosen automatically but you can set a preferred serialization format
>> for all types that serialize (e.g., not files).  The new option is,
>> creatively, --preferred_serialization_format=<foo>.
>
> OK. If you don't want to fix-up the produced yaml, then I suggest a
> switch to Marshal for the catalog indirection if it is possible.


Either way I think it should be fixed; people want to use yaml because  
it's so readable.

Your patch is a good idea, I just haven't been able to review it  
because I'm too busy having beer foisted upon me in London. :)

-- 
You can't build a reputation on what you are going to do.
     -- Henry Ford
---------------------------------------------------------------------
Luke Kanies | http://reductivelabs.com | http://madstop.com


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Puppet Developers" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to 
[email protected]
For more options, visit this group at 
http://groups.google.com/group/puppet-dev?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to