如何使用marathon API暂停作业

时间:2016-08-04 16:31:43

标签: jquery marathon

我正在尝试调用marathon API来暂停作业。我没有在API文档中看到如何做到这一点,但我认为我可以通过设置instance = 0来做到这一点。但所有这一切都是因为我的工作进入“部署...”状态(显然是永远的) 。另一方面,当我使用马拉松门户网站暂停工作时,它立即被暂停。

有谁知道怎么做?

$.fn.suspendjob = function(id) {
$.ajax({
  type: 'PUT',
  url: 'https://mesos-head.achillesv.net/marathon/v2/apps' + id,
  headers: {
    "Authorization": "Basic " + btoa(user + ":" + pass)
  },
  data: JSON.stringify({ instances: 0}),
  contentType: "application/json; charset=utf-8",
  success: function(result) {
    appslist.length = 0;
    $('#tabs').tabs("option", "active", 1);
    $('#tabs').tabs("option", "active", 0);
  }
});

};

1 个答案:

答案 0 :(得分:1)

实现此目的的一个小python脚本(假设马拉松在端口8080上的localhost上运行):

    import requests

    marathon = "http://localhost:8080/v2/apps/<app-name>"
    payload = {'instances': 0}
    r = requests.put(marathon+"?force=true", json=payload)     
    #'?force=true' will be useful if an app is in deploying state
    print r.status_code, r.reason