blob: b3d9579b82d780e1d342c6c401a09eb562ec4de3 [file] [log] [blame]
#!/usr/bin/env python3
#
# Requirements:
# - Install dependencies: `pip3 install pybuildkite requests`
# - Get a Buildkite API token with read_agents and write_agents permissions
# and put it into the BUILDKITE_TOKEN environment variable.
# - Optional: Modify "FILTER" below to restart different groups of agents.
# For example, you can put "windows" there to restart Windows agents.
import os
from pybuildkite.buildkite import Buildkite
from requests.exceptions import HTTPError
FILTER = "docker"
ORGANIZATION = "bazel-testing"
print("Using Buildkite API Token: {}".format(os.environ["BUILDKITE_TOKEN"]))
buildkite = Buildkite()
buildkite.set_access_token(os.environ["BUILDKITE_TOKEN"])
response = buildkite.agents().list_all(
organization=ORGANIZATION, page=1, with_pagination=True
)
agents = response.body
# Keep looping until next_page is not populated
while response.next_page:
response = buildkite.agents().list_all(
organization=ORGANIZATION, page=response.next_page, with_pagination=True
)
agents += response.body
for agent in agents:
if FILTER in agent["name"]:
print(
"Stopping agent {} (https://buildkite.com/organizations/{}/agents/{}): ".format(
agent["name"], ORGANIZATION, agent["id"]
),
end="",
)
try:
buildkite.agents().stop_agent(
organization=ORGANIZATION, agent_id=agent["id"], force=False
)
except HTTPError:
print("Error")
else:
print("OK")