O problema que você está enfrentando é que o MAAS requer autenticação antes de retornar a listagem de nós. O MAAS normalmente autentica solicitações da API por meio do OAuth, e não da Autenticação básica HTTP , que é o que o curl -u
usa por padrão para URLs da Web.
Felizmente, o MAAS também fornece uma biblioteca cliente do Python chamada apiclient
, que está incluída no pacote python-maas-client
. Usar essa biblioteca permitiria que você publicasse a consulta trivialmente com um apikey, que você pode obter em http: // $ MAAS_URL / MAAS / account / prefs /. Supondo que você tenha APIKEY e MAAS_URL, o snippet abaixo demonstra como você buscaria a listagem:
APIKEY = "foo:bar:baz"
MAAS_URL = "http://my.maas.host/MAAS/api/1.0"
from apiclient import maas_client
auth = maas_client.MAASOAuth(*APIKEY.split(":"))
client = maas_client.MAASClient(auth, maas_client.MAASDispatcher(), MAAS_URL)
print client.get(u"nodes/", "list").read()
Aliás, AIUI curl -X GET
é o tipo de consulta curl
, por padrão.
[*] Acredito que marcar o caminho como unicode não seja necessário, mas há uma afirmação no código que pode ser um bug. Reportado link .