В 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), но не документированы (как и многие другие функции).
Заранее большое спасибо и ура
В офисе мы нашли обходной путь:
похоже, что еще не поддерживается отправка параметра, поэтому необходимо выполнить последующее действие, чтобы обновить вновь созданную службу, используя новый идентификатор службы (полный JSON службы возвращается в теле предыдущего запроса): Например: если новый экземпляр службы имеет идентификатор 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"
}
}
}'