Охай думает, что мой плагин версии 6. Почему?

Я пытаюсь написать плагин для охай. Это кажется довольно простой задачей:

Ohai.plugin(:Uname) do
  provides 'uname'
  depends 'kernel'

  collect_data do
    uname Mash.new
    uname[:message] = `uname -a`
  end
end

Для меня это похоже на онлайн-примеры, предоставленные Opscode, O'Reilly и другими. Но вот что происходит, когда я пытаюсь это проверить:

 % irb -rohai
irb(main):001:0> Ohai::Config[:plugin_path] << "."
=> ["/home/ll0359/.rbenv/versions/2.2.1/lib/ruby/gems/2.2.0/gems/ohai-8.3.0/lib/ohai/plugins", "."]
irb(main):002:0> o = Ohai::System.new
=> #<Ohai::System:0x007fed82e43078 @plugin_path="", @data={}, @provides_map=#<Ohai::ProvidesMap:0x007fed82e42fd8 @map={}>, @v6_dependency_solver={}, @d82e42f38 @controller=#<Ohai::System:0x007fed82e43078 ...>, @v6_plugin_classes=[], @v7_plugin_classes=[]>, @runner=#<Ohai::Runner:0x007fed82e42ec0 @prp:0x007fed82e42fd8 @map={}>, @safe_run=true>>

irb(main):003:0> o.all_plugins

И вот тут начинается самое интересное. Я получаю этот вывод, снова и снова и снова:

[2015-05-20T03:13:09+00:00] WARN: Plugin Definition Error: <./ohai_uname.rb>: collect_data already defined on platform default
[2015-05-20T03:13:09+00:00] WARN: [DEPRECATION] Plugin at ./test_ohai.rb is a version 6 plugin. Version 6 plugins will not be supported in future releases....
your plugin to version 7 plugin syntax. For more information visit here: docs.chef.io/ohai_custom.html

(текст на моей второй строке был обрезан моим экраном, но вы поняли идею)

Я попытался запустить этот код с и без строки "зависит". Тот же результат.

Я попытался запустить этот код с и без строки Mash, заменив 'uname uname -a'для строки назначения. Тот же результат.

Я попытался запустить с и без передачи ":linux" в качестве параметра для collect_data. Единственное отличие состоит в том, что я получаю предупреждение о том, что collect_data(:linux) уже определен вместо:default.

Я попытался переименовать плагин в случайный 8-символьный идентификатор на тот случай, если он сработал при вызове:Uname. Тот же результат.

Я попытался передать "uname" (прописные и нижние) в качестве параметра o.all_plugins. Тот же результат.

Итак, мои вопросы:

  1. Почему ohai (8.3, работает под Ruby 2.2.1) считает, что это плагин версии 6? Я не вижу в нем ничего такого, что бы выглядело так, будто это не версия 7.

  2. Как я могу заставить это работать?

Спасибо

1 ответ

Примечание для себя: в следующий раз, когда вы сделаете это, не пытайтесь проверить из каталога, в котором находится ваш плагин, и добавьте "." на ваш plugin_path. Перемещение в другой каталог и добавление абсолютного пути к плагину решило проблему.

Я планирую оставить это на случай, если с кем-то еще это случится.

Другие вопросы по тегам