Last active
November 1, 2016 17:20
-
-
Save devopsmariocom/ec3b6007b88179f7be5183bf3e5f8119 to your computer and use it in GitHub Desktop.
TeamCity disable/enable all agents from commandline
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env python | |
import requests | |
from requests.packages.urllib3.exceptions import InsecureRequestWarning | |
requests.packages.urllib3.disable_warnings(InsecureRequestWarning) | |
import argparse | |
parser = argparse.ArgumentParser( description='Enable/Disable TeamCity agents.' ) | |
parser.add_argument( 'enable', default='true', help='enable with true, disable with false' ) | |
parser.add_argument( '--user', dest='user', required=True, help='TeamCity user name' ) | |
parser.add_argument( '--password', dest='password', required=True, help='TeamCity password' ) | |
parser.add_argument( '--url', dest='url', required=True, help='TeamCity url e.g. https://teamcity.cz.infra/app/rest/10.0' ) | |
args = parser.parse_args() | |
user = args.user | |
password = args.password | |
tcServerURL = args.url | |
enable = args.enable | |
def agentEnable( id, enable='true' ): | |
print '[START] Agent ID: %d enable => %s' % ( id, enable ) | |
response = requests.put('%s/agents/id:%d/enabled'%(tcServerURL,id), auth=(user, password), data=enable, verify=False) | |
print '[END] Agent ID: %d response: enable = %s' % ( id, response.text ) | |
def allAgentsEnable( enable='true' ): | |
agents = requests.get('%s/agentPools/id:0/agents'%(tcServerURL), auth=(user, password), verify=False, headers={'Accept': 'application/json'}).json()['agent'] | |
for agent in agents: | |
agentEnable( agent['id'], enable ) | |
allAgentsEnable( enable ) |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/usr/bin/env python | |
import time | |
import requests | |
from requests.packages.urllib3.exceptions import InsecureRequestWarning | |
requests.packages.urllib3.disable_warnings(InsecureRequestWarning) | |
import argparse | |
parser = argparse.ArgumentParser( description='Check TeamCity builds.' ) | |
parser.add_argument( '--user', dest='user', required=True, help='TeamCity user name' ) | |
parser.add_argument( '--password', dest='password', required=True, help='TeamCity password' ) | |
parser.add_argument( '--url', dest='url', required=True, help='TeamCity url e.g. https://teamcity.cz.infra/app/rest/10.0' ) | |
args = parser.parse_args() | |
user = args.user | |
password = args.password | |
tcServerURL = args.url | |
def buildsRunning(): | |
response = requests.get('%s/builds?locator=running:true'%(tcServerURL), auth=(user, password), verify=False, headers={'Accept': 'application/json'}).json() | |
return True if response['count'] > 0 else False | |
while buildsRunning(): | |
print 'Checking builds' | |
time.sleep(5) | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment