Hi,
When i executed your facts. It is throwing me error
*irb*
*irb(main):001:0> require 'facter'*
*=> true*
*irb(main):002:0> Facter.add(:java_versions1) do*
*irb(main):003:1* setcode do*
*irb(main):004:2* file = '/home/suppalapati/java.txt'*
*irb(main):005:2> if File.exists?('/home/suppalapati/java.txt')*
*irb(main):006:3> lines = File.readlines( file, "\n")*
*irb(main):007:3> if ! lines.nil?*
*irb(main):008:4> versions = lines.collect {|command| `#{command.chop}`}*
*irb(main):009:4> else*
*irb(main):010:4* versions = `java -version`.to_a*
*irb(main):011:4> end*
*irb(main):012:3> versions.join(",")*
*irb(main):013:3> else*
*irb(main):014:3* versions = "Can't find file: #{file}"*
*irb(main):015:3> end*
*irb(main):016:2> end*
*irb(main):017:1> end*
*=> #<Facter::Util::Fact:0x00000000a50320 @name=:java_versions1,
@ldapname="java_versions1", @resolves=[], @searching=false, @value=nil>*
*Please help me*
On Wednesday, October 8, 2014 5:08:28 PM UTC-4, Corey Osman wrote:
>
> Yea looks like the Facter readlines method doesn't exist.
>
> http://ruby-doc.org/core-1.8.7/IO.html#method-c-readlines
>
> You will need to use ruby's readlines and probably clean up the lines as
> well with chop.
>
> Revised edition: (untested, and probably full of syntax errors)
>
> Facter.add(:java_versions1) do
> setcode do
> file = '/home/suppalapati/java.txt'
> if File.exists?('/home/suppalapati/java.txt')
> lines = File.readlines( file, "\n")
> if ! lines.nil?
> versions = lines.collect {|command| `#{command.chop}`}
> else
> versions = `java -version`.to_a
> end
> versions.join(",")
> else
> # poor mans debugger
> versions = "Can't find file: #{file}"
> end
>
> end
> end
>
> Please read : https://docs.puppetlabs.com/facter/1.7/custom_facts.html
>
> See section about loading custom facts. This will give you the chance to
> test on your machine.
>
> check syntax ruby -c <facter_file.rb>
> On Wednesday, October 8, 2014 12:33:55 PM UTC-7, Spriya wrote:
>>
>> Hi,
>>
>> I used the same command which you provided me
>>
>> Here is the code:
>>
>> Facter.add(:java_versions1) do
>> setcode do
>> log = Facter::Util::FileRead.readlines(
>> '/home/suppalapati/java.txt')
>> if ! log.nil?
>> versions = log.collect {|command| `#{command}`}
>> else
>> versions = `java -version`.to_a
>> end
>> versions.join(",")
>> end
>> end
>>
>>
>> Here is my txt file
>> /usr/java/jre1.7.0_51/bin/java
>> /usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64/jre/bin/java
>>
>> /opt/CLM-Web-Tools/im/linux.gtk.x86_64/jre_6.0.0.sr9_20110208_03/jre/bin/java
>> /opt/CLM-Web-Tools/im/linux.gtk.x86/jre_6.0.0.sr9_20110208_03/jre/bin/java
>> /opt/IBM/TeamConcertBuild/jre/bin/java
>>
>> /opt/IBM/InstallationManager/eclipse/jre_6.0.0.sr9_20110208_03/jre/bin/java
>>
>> /opt/IBM/InstallationManager_old/InstallationManager_old/eclipse/jre_6.0.0.sr9_20110208_03/jre/bin/java
>> /opt/IBM/TeamConcertBuild_old/jre/bin/java
>> /opt/itm/v6.2.2/JRE/lx8266/bin/java
>> /var/lib/alternatives/java
>> /u01/app/oracle/product/jdk1.7.0_25/jre/bin/java
>> /u01/app/oracle/product/jdk1.7.0_25/bin/java
>>
>> The fact is not returning anything.
>>
>> Let me know
>>
>> On Wednesday, October 8, 2014 3:22:22 PM UTC-4, Corey Osman wrote:
>>>
>>>
>>>
>>> *I would probably do something like this where we store all the java
>>> versions in a comma separated string.Although if using facter >= 2.0 you
>>> can probably remove the join statement and store as an array.I also want to
>>> point out that java -version returns about 3 lines of text which may not be
>>> desirable. I am also not sure if Facter has a readlines method (guessing
>>> it does), so you might have to swap out with ruby's file reading code.*
>>>
>>> Facter.add(:java_versions) do
>>> setcode do
>>> log =
>>> Facter::Util::FileRead.readlines( '/home/weblogic/java.txt')
>>>
>>> * if ! log.nil? versions = log.collect {|command|
>>> `#{command}`} else versions = `java -version`.to_a*
>>> * end versions.join(",") end*
>>> end
>>>
>>>
>>> Corey
>>>
>>> On Tuesday, October 7, 2014 10:31:12 AM UTC-7, Spriya wrote:
>>>>
>>>> Hi,
>>>>
>>>> I have a text file where i get all the java version.
>>>>
>>>> *cat java.txt*
>>>> */usr/lib/jvm/java-1.7.0-openjdk-1.7.0.65.x86_64/jre/bin/java -version*
>>>> */usr/lib/jvm/java-1.6.0-openjdk-1.6.0.0.x86_64/jre/bin/java -version*
>>>> */opt/oracle/agent12c/core/12.1.0.4.0/jdk/bin/java -version*
>>>> */opt/oracle/agent12c/core/12.1.0.4.0/jdk/jre/bin/java -version*
>>>> */var/lib/alternatives/java -version*
>>>> */u01/java/jdk1.7.0_65/jre/bin/java -version*
>>>> */u01/java/jdk1.7.0_65/bin/java -version*
>>>>
>>>>
>>>> Now i want to run commands in each line and place it in facts.
>>>>
>>>> How can i do that.
>>>>
>>>> I have just started doing the code*.*
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>>
>>>> *logfile = '/home/weblogic/java.txt'line_num=0log =
>>>> Facter::Util::FileRead.read(logfile)unless log.nil? log.each_line do
>>>> |line| output = Facter::Util::Resoloution.execHow can i can continue
>>>> thatPlease help me*
>>>>
>>>
--
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 view this discussion on the web visit
https://groups.google.com/d/msgid/puppet-users/d7171f0d-0e36-4391-83f1-51c6fa69dbb5%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.