CIDuty/How To/QuarantineMultipleInstances

From MozillaWiki
< CIDuty‎ | How To
Jump to: navigation, search
Preparation
  1. Create an empty python file.
  2. Copy and Paste this code from here
  3. Save the file and make sure you have the right to execute it. If you don't have it then run : chmod u+x name_of_the_python_file
  4. Copy it to ~/bin so you can access it anytime, from any directory in the terminal.
Setting up taskcluster

In order to run the previous python file we will need the help from taskcluster cli. The installation of the app can be done in two methods. Choose one. Both are correct.

  • Method 1 : Download taskcluster binary and make it executable
  1. Download the taskcluster cli from here
  2. Save the file and make it executable it: chmod u+x taskcluster
  3. Create a 'bin' directory : mkdir ~/bin
  4. Put the taskcluster binary in your $PATH, usually ~/bin.
  5. Do a check to see if the file shows up in your $PATH by running : ls -al ~/bin.

You should see the file called taskcluster there (double check that it can be executed by you)
Because this file is now in your $PATH you can run it anytime, from within any directory.

  • Method 2 : Install taskcluster libraries
  1. The second way is by installing it : pip install taskcluster==3.0.2
Authentication
  • Before running the command, check that you are logged on with your ldap on taskcluster
Getting taskcluster ready to run the script
  • We need to sign in, running the following command :
    ./taskcluster signin

In the browser a new page should have opened with all your taskcluster secrets and access groups. Scroll down until the bottom of the screen and check for a button called Create client, press it.
You should get a new page saying that you can now close the URL. Your terminal should now have 3 new messages. 2 of them starting with 'export' and a 3rd line saying : "Credentials output as environment variables"
Copy both lines, export TASKCLUSTER_CLIENT_ID='**********' and export TASKCLUSTER_ACCESS_TOKEN='*******************', into ~/.bashrc.
Also run them in the currently opened terminal. You will not need to do the signin process again until the token expires. New terminals will also be able to run taskcluster commands thanks to the .bashrc file you've previously updated.

Now you are ready to run the script.

Running the script

Next we will execute the python file we saved locally with the code from git in it. Make sure it is properly indented after the copy & paste. Below is a table with all the possible arguments:

Cli.png

Example

In our case we needed to un-quarantine t-yosemite-r7-070 so the command looked like this :

 python quarantine_machines.py --enable --provisioner releng-hardware --worker-type gecko-t-osx-1010 --worker-group mdc1 t-yosemite-r7-070

Here is an other example, when we needed to un-quarantine multiple osx machines from mdc2 starting from 001 to 009 :

 python quarantine_machines.py --enable --provisioner releng-hardware --worker-type gecko-t-osx-1010 --worker-group mdc2 t-yosemite-r7-00{1..9}

See also how to quarantine a machine from taskcluster site.