Curl
OpenNebula:使用提供服務名稱的 Curl 實例化服務模板
在 OpenNebula 5.4 中,我可以使用 Curl 從服務模板實例化服務,但我不知道如何提供服務名稱。該網站範例按預期工作:
curl http://127.0.0.1:2474/service_template/4/action -u 'oneadmin:opennebula' -v -X POST --data '{ "action": { "perform":"instantiate" } }'
創建與服務模板同名的服務。但是,如果我執行相同的嘗試為該實例添加一個參數
action
(就像對給定服務執行操作時所做的那樣),例如:curl http://127.0.0.1:2474/service_template/4/action -u 'oneadmin:opennebula' -v -X POST --data '{ "action": { "perform":"instantiate", "params" : { "name" : "new_name" } } }'
它忽略了該參數,導致與執行前面提到的網站範例時相同…我嘗試使用’name’、‘service-name’、‘service_name’,但結果相同…你知道怎麼做嗎, 請?我認為它可能受到支持(就像在他們的 Java API 中一樣),但沒有記錄(與許多其他功能一樣)。
提前,非常感謝和歡呼
在辦公室裡,我們找到了一種解決方法:
似乎尚不支持發送參數,因此,必須執行後續操作以使用新的服務 ID 更新新創建的服務(完整的服務 JSON 在上一個請求的正文中返回):例如:如果實例化的新服務的 ID 為 85,它將是:
curl http://127.0.0.1:2474/service/85/action -u 'oneadmin:opennebula' -v -X POST --data '{ "action": { "perform": "rename", "params": { "name": "some-service-name" } } }'