【发布时间】:2020-04-17 06:46:58
【问题描述】:
我正在编写代码来自动更新马拉松上部署的图像。我使用马拉松 API 参考http://mesosphere.github.io/marathon/api-console/index.html中列出的 REST 补丁方法@
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)
代码运行成功,我得到了一个部署 ID,但 UI 没有任何变化。没有新的部署发生。如果我将补丁请求更改为不带数据的获取请求,我会取回之前使用上述代码更新的图像。
根据这个类似的API参考https://docs.mesosphere.com/1.11/deploying-services/marathon-api/#/apps/V2AppsByAppId1
它说“此操作将创建一个部署”,但什么也没发生。在 Marathon GUI 中,我根本看不到配置发生变化。如果我重新启动,则重新启动相同的旧部署。我是否错误地解释了 API 参考?
【问题讨论】:
标签: python rest docker marathon