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