| # Copyright 2017 The Chromium Authors. All rights reserved. |
| # Use of this source code is governed by a BSD-style license that can be |
| # found in the LICENSE file. |
| """Utilities to get the sheriff(s) on duty. |
| |
| Currently only supports the Chrome Build Sheriff rotation.""" |
| |
| import json |
| |
| from common.findit_http_client import FinditHttpClient |
| from libs import time_util |
| from model.wf_config import FinditConfig |
| |
| _ROTATIONS_URL = ('https://chrome-ops-rotation-proxy.appspot.com/current/' |
| 'oncallator:chrome-build-sheriff') |
| |
| _HTTP_CLIENT = FinditHttpClient() |
| |
| |
| def current_sheriffs(): |
| status_code, content, _headers = _HTTP_CLIENT.Get(_ROTATIONS_URL) |
| if status_code == 200: |
| content = json.loads(content) |
| if 'emails' not in content: |
| raise Exception('Malformed sheriff json at %s' % _ROTATIONS_URL) |
| return content['emails'] |
| else: |
| raise Exception('Could not retrieve sheriff list from %s, got code %d' % |
| (_ROTATIONS_URL, status_code)) |