Я пишу код для автоматического обновления развернутого изображения на марафоне. Я использую метод исправления REST, указанный в справочнике по API марафона http://mesosphere.github.io/marathon/api-console/index.html
url = 'https://<my-hostname>:<my-port>/v2/apps'
h = {'Content-type': 'application/json', 'Accept': 'application/json'}
data = {'app': { "id": app,
'container': {
'docker': {
'image': image}}}}
print ('requests.patch(%s, %s)' % (url + app, json.dumps(data)))
r = requests.patch(url + app, headers = h, auth = auth, data = json.dumps(data))
if r.status_code == 200:
print('Deployed %s' % app)
Код был успешно выполнен, я получил идентификатор развертывания, но ничего не изменилось из пользовательского интерфейса. Нового развертывания не происходит. Если я изменю запрос на исправление на запрос на получение без данных, я получаю изображение, которое я ранее обновлял, используя приведенный выше код.
Согласно этой аналогичной ссылке API https://docs.mesosphere.com/1.11/deploying-services/marathon-api/#/apps/V2AppsByAppId1
Там написано "Эта операция создаст развертывание", но ничего не произошло. Из графического интерфейса Marathon я не вижу изменений конфигурации вообще. Если я перезагружаюсь, то перезапускается то же самое старое развертывание. Я неправильно интерпретирую ссылку на API?