2015-05-06 5 views
0

У меня очень загруженный сервер сборки. В хороший день мы создаем почти 200 гб артефактов. Политика очистки может выполняться один раз в день, чего недостаточно для моего случая. Я обыскал документацию teamcity и нашел нулевые конечные точки API для поддержки очистки триггера вручную.Как запрограммировать триггер очистки?

Можно ли запускать очистку вручную из скрипта/программы? Как достичь этого?

В худшем случае я мог бы скрипачать и отслеживать, что происходит, когда я вручную принудительно очищаю, но его грязную дорогу, и я не хочу идти на нее.

здесь также C# версии

void Main() 
{ 
    var cookieContainer = new CookieContainer(); 
    var baseAddress = new Uri("http://teamcity"); 

    var contentDictionary = new Dictionary<string,string>(); 
    contentDictionary["cleanupPageAction"]= "startCleanup"; 

    using (var handler = new HttpClientHandler() { CookieContainer = cookieContainer, 
    Credentials = new NetworkCredential("user","password","domain")}) 
    using (var client = new HttpClient(handler) { BaseAddress = baseAddress }) 
    { 
     var content = new FormUrlEncodedContent(contentDictionary); 

     var result = client.PostAsync("/admin/cleanupPolicies.html", content).Result; 
     result.EnsureSuccessStatusCode(); 
    } 
} 

ответ

1

Там нет конечной точки в API для этого. Если вы решите, что достаточно довольны тем, что используете тот же HTTP-протокол, панель управления использует для ручной очистки здесь, это достаточно просто, на мой взгляд:

curl -d "cleanupPageAction=startCleanup" \ 
    http://user:[email protected]/admin/cleanupPolicies.html