2016-09-22 2 views
0

я использую chef-api для экспресса-JS и я хочу получить только IP-адрес узла «сервер 1» от шеф-сервераполучил код состояния 400 недопустимого значения «IP-адрес» для no_key

им посылающего запрос, как этот

Код:

 

chef.partialSearch("node", "name:server1",{"ip":"ipaddress"} ,function(err, res){ 

    if (err){console.log(error);} 

    else{console.log(res);} 

}); 

Или

 
chef.partialSearch("node", { q: "name:server1"} ,{"ip":"ipaddress"} ,function(err, res){ 
.... 
}); 

=> Respon себе:

received status code 400 invalid value 'ipaddress' for no_key 

функции в исходном коде:

 
partialSearch: function(index, qs, data, fn){ 
      http_methods.post([config.host_url, "search", index].join("/"), qs, data, function(err, response){ 
       return fn(err, response); 
      }); 
     } 

и я не могу понять правильный синтаксис для запроса (HTTP) с официального сайта документ api_chef_server
Можете ли вы дать правильный синтаксис с пример . Благодаря

+0

Вы всегда планируете получать доступ к одному узлу за раз? – coderanger

ответ

0

Finaly я нашел правильный синтаксис как для запроса

Простой поиск:

 
    chef.search("node", {q: "name:server1" }, function(err, res){ 

     if (err){console.log(error);} 

     else{console.log(res);} 

    }); 

Частичный поиск :

 
chef.partialSearch("node", "chef_environment:prod", { name: ['name'] , 'ipaddress': ['ipaddress'] }, function(err, res){ 

     if (err){console.log(error);} 

     else{console.log(res);} 


    }); 

Надеюсь, это поможет кому-то еще, кто все еще ищет.

0

То, что вы, вероятно, хотите что-то вроде этого:

chef.getNode('server1', function(err, node) { 
    if(err) throw err; 
    console.log(node.automatic.ipaddress); 
}); 
+0

Спасибо за ваш ответ, и да, его решение, если вы хотите запросить только один сервер, но если вы хотите получить все «ipaddress» для всех серверов, принадлежит к «роли», не является хорошей оценкой производительности вашего сервера-шеф-повара и даже ответ времени приложения посмотреть http://dougireton.com/blog/2013/01/19/get-chef-clients-by-version/ и http: //engineering.voxer. com/2013/03/22/chef-part-2-performance/ и я нашел правильный синтаксис, еще раз спасибо за ваш ответ: D – jozef

+0

Это правильно, поэтому я спросил, преуменьшил ли ваш прецедент :) – coderanger

Смежные вопросы