2016-09-22 6 views
0

i verwende chef-api für Express.js und ich will nur die IP-Adresse des Knotens „Server 1“ von einem Koch-Serverempfangene Statuscode 400 ungültiger Wert ‚ipadresse‘ für no_key

im eine Anfrage wie diese

erhalten Senden

Code:

 

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

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

    else{console.log(res);} 

}); 

Oder

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

=> Respon se:

received status code 400 invalid value 'ipaddress' for no_key 

Funktion in Code Quelle:

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

und ich kann nicht die korrekte Syntax für die Anforderung (http) von der offiziellen Website doc api_chef_server
Können Sie bitte geben Sie eine gültige Syntax verstehen mit Beispiel. Dank

+0

Planen Sie immer, auf einen einzelnen Knoten gleichzeitig zuzugreifen? – coderanger

Antwort

0

Finaly fand ich die richtige Syntax für beide Anfrage

Einfache Suche:

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

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

     else{console.log(res);} 

    }); 

Teilsuche :

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

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

     else{console.log(res);} 


    }); 

Hoffe, dass dies jemand anderen helfen kann, der immer noch sucht.

0

Was möchten Sie wahrscheinlich so etwas wie dieses:

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

Vielen Dank für Ihre Antwort, und ja, es ist eine Lösung, wenn Sie nur für einen Server anfordern möchten, aber wenn Sie alle "ipaddress" für alle Server erhalten wollen gehört zu einer "Rolle" ist nicht eine gute Praxis für die Leistung Ihres Chef-Servers und sogar die Zeit Antwort der Anwendung werfen Sie einen Blick http://dougireton.com/blog/2013/01/19/get-chef-clients-by-version/ und http: //engineering.voxer. com/2013/03/22/chef-part-2-performance/ und ich fand die richtige Syntax, Nochmals vielen Dank für Ihre Antwort: D – jozef

+0

Das ist richtig, weshalb ich fragte, ob Sie Ihre Use Case unterschätzt :) – coderanger

Verwandte Themen