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.
