Curl

OpenNebula:使用提供服務名稱的 Curl 實例化服務模板

  • August 1, 2018

在 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"
 }
}
}'

引用自:https://serverfault.com/questions/924436