Использование Marathon REST API для обновления конфигурации

Используя cURL, я хочу изменить количество экземпляров, которые имеет группа, передав файл json для обновления конфигурации. То, как настроены мои группы, выглядит примерно так:

'marathon > applications > topApp'
'marathon > applications > topApp > group1'
'marathon > applications > topApp > group2'
'marathon > applications > topApp > group3 , etc'

Я хочу обновить только группу2 и не могу понять, как ее указать. Я думаю об использовании «PUT /v2/groups/{groupId}», который я получил из документа marathon rest api здесь https://mesosphere.github.io/marathon/docs/rest-api.html#example-5

Кто-нибудь делал это и может помочь? Есть ли способ лучше? Я делаю это впервые. Спасибо!


person donniemac    schedule 20.04.2017    source источник


Ответы (1)


Вы можете сделать curl -XPUT localhost:8080/v2/groups/path/to/group/group2 -d @group2.json, где содержимое group2.json содержит изменение количества экземпляров.

Если вы хотите изменить количество экземпляров только одного приложения, вы также можете сделать что-то вроде этого (может содержать проблемы с кавычками):

curl -XPUT localhost:8080/v2/apps/path/to/app/app123 -d '{"instances":20}'

person unterstein    schedule 23.04.2017
comment
PUT следует заменить на PATCH или, по крайней мере, добавить параметр запроса partialUpdate=true, поскольку текущее частичное обновление по умолчанию для PUT будет изменено. См. документы - person janisz; 24.04.2017
comment
Все верно, спасибо Яниш! Для конечной точки приложений вы, вероятно, захотите использовать PATCH, если хотите запустить мой пример. Для групп HTTP PATCH не поддерживается. - person unterstein; 24.04.2017
comment
Спасибо, Унтерштейн, за комментарий. Я ценю это. Я поработаю с этим и отвечу. - person donniemac; 27.04.2017