2016-08-04 9 views
0

私はジョブを中断するためにマラソンAPIを呼び出そうとしています。私はAPIのドキュメントでそれを行う方法はわかりませんが、インスタンス= 0を設定することでそれを行うことができると思っていました。しかし、これで済むのは自分の仕事が "Deploying ..."状態(明らかに永遠に) 。一方、私はマラソンウェブポータルを使って仕事を一時停止するとすぐに停止します。マラソンAPIを使用してジョブを中断する方法

誰でもこれを行う方法を知っていますか?

$.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上のローカルホスト上で実行されていると仮定し):

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 
関連する問題