OpenNebula:使用 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 中一样),但没有记录(与许多其他功能一样)。

提前致谢,并欢呼

答案1

在办公室我们找到了一个解决方法:

它似乎还不支持发送参数,因此必须执行后续操作来使用新的服务 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"
  }
 }
}'

相关内容