AIX jruby

Logstash ça fait juste un tail | sed | perl | wget -post, vu de loin.

C’est écrit en ruby. sympa. ça s’exécute par jruby (cross compil de ruby en java). Chouette. Comme ça ça marche sur Solaris et AIX. presque.

Personne de moderne n’utilise AIX. pas de libcrypto SHA1 (je peux me tromper). Et concernant logstash, des erreurs surprenantes : tout n’a pas été écrit (!!). Mais ok je les comprends..

NotImplementedError: block device detection unsupported or native support failed to load
blockdev? at org/jruby/RubyFileTest.java:67
device? at …logstash/vendor/bundle/jruby/1.9/gems/filewatch-0.8.1/lib/filewatch/helper.rb:67

NotImplementedError: stat.st_gid unsupported or native support failed to load
gid at org/jruby/RubyFileStat.java:247
atomic_write at …logstash/vendor/bundle/jruby/1.9/gems/filewatch-0.8.1/lib/filewatch/helper.rb

idem

…logstash/vendor/bundle/jruby/1.9/gems/filewatch-0.8.1/lib/filewatch/watch.rb

Après avoir exploré les solutions propres : versions de java, versions de jruby (tiens ? ils passent de la version 1.7 à la version 9.1 ?!) je comprends que personne ne s’investi dans le portage de ruby pour AIX (pourtant chef.io marche ..) . ou alors c’est lié à ma version (aix6.1); les gestions de fichiers et devices sont en option.

Reste à faire les corrections dans les gems utilisées par logstash :

 

#gems/filewatch-0.8.1/lib/filewatch/helper.rb:67
def self.device?(file_name)
# AIX chardev?(file_name) || blockdev?(file_name)
chardev?(file_name)
end
end
 
#gems/filewatch-0.8.1/lib/filewatch/watch.rb
def self.win_inode(path, stat)
fileId = Winhelper.GetWindowsUniqueFileIdentifier(path)
[fileId, 0, 0] # dev_* doesn't make sense on Windows
end
def self.nix_inode(path, stat)
[stat.ino.to_s, 0, 0]
#AIX [stat.ino.to_s, stat.dev_major, stat.dev_minor] # dev doesnt work on AIX
end
 
#gems/filewatch-0.8.1/lib/filewatch/helper.rb , line 45
# Set correct uid/gid on new file
#AIX GK GDF GSIT TOO BAD ... chown(old_stat.uid, old_stat.gid, file_name) if old_stat
return_val

 

 

Yes, Sam, “quick-and-dirty guizmo” striked again