Difference between revisions of "Dirac Development"

From GridPP Wiki
Jump to: navigation, search
(Dirac in a box)
Line 25: Line 25:
 
* [https://www.gridpp.ac.uk/wiki/Testing_a_Dirac_server Test] your server.
 
* [https://www.gridpp.ac.uk/wiki/Testing_a_Dirac_server Test] your server.
  
== Get the code ==
+
== Fixing a bug/adding a feature :-) ==
* You need a github account and be a member of the ic-hep organization. Please contact Simon F. directly if you need access.
+
* make a branch: Example: The branch is bug1 and the modified file is ConfigurationSystem/Client/CSCLI.py:
 
+
* Then you need to [https://help.github.com/articles/fork-a-repo fork the repo]
+
 
+
* In the example I'm using my own github login 'marianne013'(*) as I like to be able to do cut-and-paste when following my own instructions. 
+
 
+
* As the dirac user do: <pre>git clone git@github.com:marianne013/DIRAC.git</pre> (from git page ssh). This will only work if the dirac user has a copy of your ssh key :-D
+
 
+
* <pre> DIRAC/Core/scripts/dirac-deploy-scripts.py </pre>
+
 
+
* <pre> wget http://www.hep.ph.ic.ac.uk/~dbauer/dirac/full_sanitized.cfg </pre>
+
 
+
* edit full_sanitized.cfg <br>
+
# Normal machine set-up (symlinking /etc/grid-security/certificates, etc...)
+
# Checkout DIRAC
+
DIRAC/Core/scripts/dirac-deploy-scripts.py
+
wget http://www.hep.ph.ic.ac.uk/~dbauer/dirac/full_sanitized.cfg
+
#Edit full_sanitized.cfg
+
## Set Release = integration
+
## Set UseVersionsDir = no
+
## Edit TargetPath = /srv/localstage/ddirac
+
## Set ExtraModules = DIRACWeb
+
## Set SiteName etc...
+
## Comment Out WorkloadManagement/InputDataAgent
+
## Comment Out WorkloadManagement/TaskQueueDirector
+
## Turn off web interface
+
## Set DB Passwords
+
 
+
 
<pre>
 
<pre>
scripts/dirac-install -t server -X full_sanitized.cfg
+
cd /opt/dirac/DIRAC
source bashrc
+
git branch bug1
dirac-configure -F full_sanitized.cfg
+
git checkout bug1
dirac-install-mysql
+
git status (should say "# On branch bug1")
dirac-setup-site
+
 
</pre>
 
</pre>
 
+
* now add your code
(*) The first hit when putting Marianne013 into google entitled: "Marianne 013: Kühe in Ketten und Strapsen" which translates into "Cows in chains and suspenders." It's all downhill from there.
+
<pre>
 +
git add ConfigurationSystem/Client/CSCLI.py
 +
git commit -m "CLI to accept ctrl-D"
 +
git status
 +
</pre>
 +
* and push it back to github
 +
<pre>
 +
git push -u origin bug1
 +
</pre>
 +
* Now go to the git repo webpage and issue a pull request (ensuring to send the request to our (ic-hep) repo, not the main DIRAC repo - check the defaults !!)

Revision as of 15:37, 29 September 2014

Official Documentation

GitSetup
DeveloperInstallation
AddingNewComponents

Dirac in a box (Basic Setup)

  • Setup yourself up with a hostcert and a EMI UI, eg by following these instructions.
  • Open the relevant ports:
-A INPUT -m state --state NEW -m tcp -p tcp --dport 8443 -j ACCEPT
-A INPUT -m state --state NEW -m tcp -p tcp --dport 9130:9200 -j ACCEPT
  • Install git (and emacs ;-).
  • Set git up correctly:
    git config --global user.name "Your Name"
    git config --global user.email you@example.com
  • Make a dirac user and copy the hostcert/key into .globus
  • You also need the ssh key you use on github
  • To save you from typos (the script does not deal well with that :-D ) use "ssh-add -t 1h"
  • wget http://www.hep.ph.ic.ac.uk/~dbauer/dirac/dirac_in_a_box.py
  •  ./dirac_in_a_box.py /opt/dirac/ git@github.com:ic-hep 
  • Ignore "Exception _mysql_exceptions.ProgrammingError" errors
  • Test your server.

Fixing a bug/adding a feature :-)

  • make a branch: Example: The branch is bug1 and the modified file is ConfigurationSystem/Client/CSCLI.py:
 cd /opt/dirac/DIRAC
 git branch bug1
 git checkout bug1 
 git status (should say "# On branch bug1")
  • now add your code
 git add ConfigurationSystem/Client/CSCLI.py
 git commit -m "CLI to accept ctrl-D"
 git status
 
  • and push it back to github
 git push -u origin bug1
 
  • Now go to the git repo webpage and issue a pull request (ensuring to send the request to our (ic-hep) repo, not the main DIRAC repo - check the defaults !!)