Я пытаюсь заменить устаревший вызов API Chef :: REST на Chef :: ServerAPI, но не могу заставить его работать.
Я инициализирую его так:
def initialize(options = {})
@account_name = options[:account_name] or raise 'The chef account name has not been set'
@client_name = options[:client_name] or raise 'The chef client name has not been set'
@client_key = options[:client_key] or raise 'The chef client key has not been set'
@cache = Config[:cache] or raise 'The chef_service client has not been configured'
@cache_expiry = Config[:cache_expiry]
@chef_status = ChefStatus.new(Config[:chef_status_url], Config[:chef_status_url_expiry])
end
и фактический вызов находится в методе:
def rest
@rest ||= Chef::REST.new(api_url, client_name, nil, raw_key: client_key)
end
Я думал, что могу просто вызвать:
def rest
@rest ||= Chef::ServerAPI.new(api_url, client_name, nil, raw_key: client_key)
end
Но это совсем не сработало. Буду признателен, если кто-нибудь даст мне указатель. Заранее спасибо.
В настоящее время нет поддерживаемой библиотеки для выполнения HTTP-вызовов Chef.
ОШИБКА: Класс исключения: ArgumentError Необработанное исключение: неправильное количество аргументов (дано 4, ожидается 0..2) (из ArgumentError) Трассировка: /Users/mauro/.rvm/gems/ruby-2.3.5/gems/chef-12.22 .5 / lib / che f / server_api.rb: 32: i n `инициализировать '
coderanger, должен ли я предполагать, что мне нужно найти какую-то оболочку / драгоценный камень, чтобы делать эти вызовы шеф-повара сейчас?

Когда вы говорите «не сработало», можете ли вы объяснить? у вас есть трассировка стека, чтобы поделиться?