All

Just a quick note to confirm that this issue has been fixed in 3.3.1. 

I've just installed 3.3.1 rc2, and have been able to successfully create a 
new iRule on a v11 F5 device using Puppet. 

So now to try and sort out v11 support :) 

Cheers
Gavin 

On Tuesday, 30 July 2013 07:57:19 UTC+1, Gavin Williams wrote:
>
> Jeff/Chris/All
>
> Completely missed this topic when doing my own investigations on this 
> issue... 
>
> However the same problem discussed on 
> Puppet-dev<https://groups.google.com/forum/#!topic/puppet-dev/bU0_X_MOiuo>has 
> highlighted the same issue... 
> I have therefore raised Issue 
> 21975<http://projects.puppetlabs.com/issues/21975>to try and get it fixed... 
> Would probably be beneficial if you could 
> up-vote it...
>
> Cheers
> Gavin
>
> On Tuesday, 18 June 2013 13:56:33 UTC+1, [email protected] wrote:
>>
>> Hi Chris,
>>
>> I think I've narrowed the issue down.
>>
>> I'm able to use the 10.2.0.2 f5 gem in a simple script with F5 v11.3.0 to 
>> create an f5_node so it looks like the F5 is keeping some 
>> backwards-compatibility.
>>
>> The problem is only occurring when the F5 gem is used within puppet. The 
>> f5 gem is using the ruby 1.8.7's built-in SOAP library that clashes with a 
>> monkey-patch in Puppet to override the instance_variables method of the 
>> basic Ruby Object class. 
>>
>> The patch was introduced in this commit: 
>> https://github.com/puppetlabs/puppet/commit/1f4e44c26a0d703d1192d26ef8ab555e4508e338
>> *lib/puppet/util/monkey_patches.rb*:
>>
>>     class Object
>>       alias :puppet_original_instance_variables :instance_variables
>>
>>       def instance_variables
>>         puppet_original_instance_variables.map(&:to_sym)
>>       end
>>     end
>>
>>
>> This in turn clashes with the SOAP class in Ruby 1.8.7:
>> lib/soap/mapping/mapping.rb:
>>
>>   def self.get_attribute(obj, attr_name)
>>     if obj.is_a?(::Hash)
>>       obj[attr_name] || obj[attr_name.intern]
>>     else
>>       name = XSD::CodeGen::GenSupport.safevarname(attr_name)
>>       if obj.instance_variables.include?('@' + name)
>>         obj.instance_variable_get('@' + name)
>>       elsif ((obj.is_a?(::Struct) or obj.is_a?(Marshallable)) and
>>           obj.respond_to?(name))
>>         obj.__send__(name)
>>       end
>>     end
>>   end
>>
>>
>> Since Puppet has overridden the instance_variable method to return an 
>> Array of Symbols, this breaks the obj.instance_variables.include?('@' + 
>> name) line because it is trying to compare a Symbol with a String which 
>> will always be false. This in turn causes the F5 gem to send SOAP requests 
>> to the F5 with nil values so the nodes are never created on the F5.
>>
>> This is a pretty strange issue as I thought that there would have been 
>> other users of the puppetlabs-f5 module with Ruby 1.8.7 and so would have 
>> hit the same issue, or am I missing something?
>>
>> Anyway, it looks like to fix the problem we'll either need to patch the 
>> F5 gem to override the above method within Ruby or somehow revert the 
>> monkeypatch in Puppet for the F5 puppet module, unless you can think of a 
>> cleaner and better solution?
>>
>> Jeff
>>
>> On Wednesday, June 12, 2013 3:34:02 PM UTC+10, Christopher Wood wrote:
>>>
>>> Unfortunately due to various non-puppet bigip upgrade issues I haven't 
>>> been able to back to this yet. If I get anything useful working I will 
>>> post. 
>>>
>>> On Tue, Jun 11, 2013 at 03:32:56AM -0700, [email protected] wrote: 
>>> >    Hi Chris, 
>>> >    How did you go with trying to use the Puppet F5 module with 
>>> v11.3.0? I 
>>> >    think I am having the same issue as you were. 
>>> >    The puppet output would say that the resource was created but the 
>>> iControl 
>>> >    debug logs shows that it is being sent an empty SOAP create 
>>> message. 
>>> >    I've tried running a simple ruby script using the 10.2.0.2 f5 gem 
>>> and was 
>>> >    able to create the node successfully so it looks the Puppet is 
>>> doing 
>>> >    something funny. 
>>> >    Any help would be greatly appreciated. 
>>> >    Thanks, 
>>> >    Jeff 
>>> > 
>>> >    On Tuesday, February 12, 2013 8:31:04 AM UTC+11, Christopher Wood 
>>> wrote: 
>>> > 
>>> >      On Mon, Feb 11, 2013 at 12:40:12PM -0800, Nan Liu wrote: 
>>> >      >    On Mon, Feb 11, 2013 at 8:27 AM, Christopher Wood 
>>> >      >    <[1][1][email protected]> wrote: 
>>> >      > 
>>> >      >      (Following up to my own post for posterity's sake, see 
>>> >      [2][2]xkcd.com/979.) 
>>> >      > 
>>> >      >      Short form: for me this isn't yet as easy as a file 
>>> resource but 
>>> >      the 
>>> >      >      puppetized management payoff will be worth the work. My 
>>> issues 
>>> >      are most 
>>> >      >      likely a reflection of my own puppet/ruby/iControl/SOAP 
>>> skill. 
>>> >      > 
>>> >      >      I am going to explore a personalized set of F5 
>>> types/providers 
>>> >      that I 
>>> >      >      can use without first loading up the wsdl file for every 
>>> involved 
>>> >      >      iControl interface, version, and hotfix. 
>>> >      > 
>>> >      >      Points from my various BigIP/puppet experimentations: 
>>> >      > 
>>> >      >      a) The f5-icontrol-10.2.0.2.gem doesn't necessarily work 
>>> with LTM 
>>> >      >      11.1.0. (Or I haven't figured it out, also quite likely.) 
>>> This 
>>> >      could be 
>>> >      >      because the gem ships different wsdl files but I couldn't 
>>> get it 
>>> >      to work 
>>> >      >      with later iControl wsdl files anyway. 
>>> >      > 
>>> >      >      b) In LTM 11, F5 deprecated some interfaces so puppet f5 
>>> module 
>>> >      >      providers like f5_node are suddenly using deprecated 
>>> interfaces. 
>>> >      > 
>>> >      >      c) Some parts of the iControl api are being updated/fixed 
>>> over 
>>> >      time, for 
>>> >      >      instance the hotfix id 388590 reading "Certificates can 
>>> now 
>>> >      successfully 
>>> >      >      be updated using the iControl Management::KeyCertificate 
>>> >      interface", 
>>> >      >      see: 
>>> >      > 
>>> >      >     
>>> >       [3][3]
>>> http://support.f5.com/kb/en-us/solutions/public/14000/100/sol14175.html 
>>> >      > 
>>> >      >      d) Judging by my soap-newbie eye the soap4r package 
>>> appears 
>>> >      abandonware, 
>>> >      >      savon isn't up to complicated data structures and I have 
>>> yet to 
>>> >      dive 
>>> >      >      into handsoap (the starter page says to start with a wsdl, 
>>> see my 
>>> >      >      wsdl-tracking issues). Picking the right soap package to 
>>> use is 
>>> >      likely 
>>> >      >      going to be job 1. 
>>> >      > 
>>> >      >      (If the list has any feedback to the above, I'm very much 
>>> all 
>>> >      ears.) 
>>> >      > 
>>> >      >    Have you tried the v11 
>>> >      >    gem?�[4][4]
>>> https://devcentral.f5.com/internal-forums/aff/2306. The 
>>> >      module 
>>> >      >    certainly needs to updates against v11 API, but seems like 
>>> it would 
>>> >      be a 
>>> >      >    better starting point. 
>>> >      >    Nan� 
>>> > 
>>> >      I might give that a go. That LTM 11 gem is for 11.1.0 and I'm 
>>> already on 
>>> >      11.3.0 in the lab due to a key/cert management issue, but the gem 
>>> should 
>>> >      be fine if I rebuild it with the wsdl files from my lab device. 
>>> >        
>>> >      >    -- 
>>> >      >    You received this message because you are subscribed to the 
>>> Google 
>>> >      Groups 
>>> >      >    "Puppet Users" group. 
>>> >      >    To unsubscribe from this group and stop receiving emails 
>>> from it, 
>>> >      send an 
>>> >      >    email to [5][email protected]. 
>>> >      >    To post to this group, send email to [6]
>>> [email protected]. 
>>> >      >    Visit this group at 
>>> >      [5][7]http://groups.google.com/group/puppet-users?hl=en. 
>>> >      >    For more options, visit 
>>> >      [6][8]https://groups.google.com/groups/opt_out. 
>>> >      >      
>>> >      >      
>>> >      > 
>>> >      > References 
>>> >      > 
>>> >      >    Visible links 
>>> >      >    1. mailto:[9][email protected] 
>>> >      >    2. [10]http://xkcd.com/979 
>>> >      >    3. 
>>> >      [11]
>>> http://support.f5.com/kb/en-us/solutions/public/14000/100/sol14175.html 
>>> >      >    4. [12]https://devcentral.f5.com/internal-forums/aff/2306 
>>> >      >    5. [13]http://groups.google.com/group/puppet-users?hl=en 
>>> >      >    6. [14]https://groups.google.com/groups/opt_out 
>>> > 
>>> > References 
>>> > 
>>> >    Visible links 
>>> >    1. javascript: 
>>> >    2. http://xkcd.com/979 
>>> >    3. 
>>> http://support.f5.com/kb/en-us/solutions/public/14000/100/sol14175.html 
>>> >    4. https://devcentral.f5.com/internal-forums/aff/2306 
>>> >    5. javascript: 
>>> >    6. javascript: 
>>> >    7. http://groups.google.com/group/puppet-users?hl=en 
>>> >    8. https://groups.google.com/groups/opt_out 
>>> >    9. javascript: 
>>> >   10. http://xkcd.com/979 
>>> >   11. 
>>> http://support.f5.com/kb/en-us/solutions/public/14000/100/sol14175.html 
>>> >   12. https://devcentral.f5.com/internal-forums/aff/2306 
>>> >   13. http://groups.google.com/group/puppet-users?hl=en 
>>> >   14. https://groups.google.com/groups/opt_out 
>>>
>>>

-- 
You received this message because you are subscribed to the Google Groups 
"Puppet Users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/puppet-users.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to