Project

General

Profile

Updating the UPS Product » History » Version 22

Serdar Kurbanov, 02/04/2016 11:55 AM

1 1 Martin Frank
h1. Updating the UPS Product
2 1 Martin Frank
3 1 Martin Frank
This page describes how to build a new version of the novaddt UPS product together with the packages that it depends on and how to roll these new products out on the detectors.
4 1 Martin Frank
5 1 Martin Frank
h2. Building the Products
6 1 Martin Frank
7 2 Serdar Kurbanov
Here's how to build NOvA DDT products
8 2 Serdar Kurbanov
9 7 Serdar Kurbanov
0. Go to /nova/app/users/<user> without executing setup_nova
10 7 Serdar Kurbanov
> cd /nova/app/users/<user>
11 7 Serdar Kurbanov
12 3 Serdar Kurbanov
1. Make changes and commit it to trunk
13 9 Serdar Kurbanov
<pre>
14 9 Serdar Kurbanov
<changes changes changes...>
15 9 Serdar Kurbanov
svn commit <some_file.cc>
16 9 Serdar Kurbanov
</pre>
17 1 Martin Frank
18 1 Martin Frank
2. Checkout NOvA DDT release:
19 9 Serdar Kurbanov
<pre>
20 9 Serdar Kurbanov
svn co svn+ssh://p-novaddt@cdcvs.fnal.gov/cvs/projects/novaddt/novaddt.svn/trunk novaddt
21 9 Serdar Kurbanov
</pre>
22 1 Martin Frank
23 1 Martin Frank
3. Renaming version in trunk:
24 8 Serdar Kurbanov
<pre>
25 8 Serdar Kurbanov
cd <your build dir>/novaddt/ups
26 8 Serdar Kurbanov
chmod +x ups_product_tag.sh 
27 8 Serdar Kurbanov
./ups_product_tag.sh <new version> (example: ./ups_product_tag.sh v03_04_06)
28 8 Serdar Kurbanov
</pre>
29 1 Martin Frank
30 15 Serdar Kurbanov
4. Build novaddt with mrb
31 13 Serdar Kurbanov
<pre>
32 13 Serdar Kurbanov
mkdir <builddir>
33 13 Serdar Kurbanov
cd <builddir>
34 13 Serdar Kurbanov
. /grid/fermiapp/products/nova/externals/setup
35 13 Serdar Kurbanov
setup mrb
36 13 Serdar Kurbanov
export MRB_PROJECT=nova
37 13 Serdar Kurbanov
mrb newDev -v <new version> -q e6:on:prof (example: mrb newDev -v v03_04_06 -q e6:on:prof)
38 13 Serdar Kurbanov
source localProducts_nova_<new version>_e6_on_prof/setup (example: source localProducts_nova_v03_04_06_e6_on_prof/setup)
39 13 Serdar Kurbanov
cd srcs
40 13 Serdar Kurbanov
svn co svn+ssh://p-novaddt@cdcvs.fnal.gov/cvs/projects/novaddt/novaddt.svn/tags/<new version>  novaddt (example: svn co svn+ssh://p-novaddt@cdcvs.fnal.gov/cvs/projects/novaddt/novaddt.svn/tags/v03_04_06  novaddt)
41 1 Martin Frank
>> [
42 6 Serdar Kurbanov
>> if there's a problem with some dependencies, say *novaddtdeps*, you'll need to do ... and then go back to *mrbsetenv* step
43 6 Serdar Kurbanov
>> useful commands:
44 6 Serdar Kurbanov
>> ups list -aK+ <package name> (example: ups list -aK+ <novaddtdeps>) - to list versions of that package available
45 6 Serdar Kurbanov
>> 
46 6 Serdar Kurbanov
>> ]
47 21 Serdar Kurbanov
mrb uc
48 15 Serdar Kurbanov
cd $MRB_BUILDDIR
49 13 Serdar Kurbanov
mrbsetenv
50 13 Serdar Kurbanov
mrb i -j8 --tee
51 13 Serdar Kurbanov
</pre>
52 1 Martin Frank
53 9 Serdar Kurbanov
5. Test if new version works as intended
54 12 Serdar Kurbanov
<pre>
55 12 Serdar Kurbanov
cd <your build dir>
56 12 Serdar Kurbanov
. /grid/fermiapp/products/nova/externals/setup
57 12 Serdar Kurbanov
export PRODUCTS=<your build dir>/localProducts_nova_<new version>_e6_on_prof/:$PRODUCTS
58 12 Serdar Kurbanov
cd ddt_release_02.09.2015/product/
59 12 Serdar Kurbanov
setup novaddt <new version> -q e6:on:prof (example: setup novaddt v03_04_06 -q e6:on:prof)
60 1 Martin Frank
>> uncomment DDTGlobalConfiguration-FD.fcl after "# if using nova binary:"
61 12 Serdar Kurbanov
nova -c srcs/novaddt/DDTGlobalConfigurations/DDTGlobalConfiguration-FD.fcl
62 12 Serdar Kurbanov
</pre> 
63 1 Martin Frank
64 1 Martin Frank
65 1 Martin Frank
66 1 Martin Frank
h2. Deploying the Products
67 1 Martin Frank
68 1 Martin Frank
Install build to FD.
69 1 Martin Frank
70 15 Serdar Kurbanov
1. Ssh to FD server
71 15 Serdar Kurbanov
<pre>
72 1 Martin Frank
ssh novadaq@novadaq-far-master
73 15 Serdar Kurbanov
</pre>
74 5 Serdar Kurbanov
75 1 Martin Frank
2. Copy new build ot FD server (from gpvm node, from your build directory)
76 15 Serdar Kurbanov
<pre>
77 12 Serdar Kurbanov
rsync -avP localProducts_nova_v03_04_06_e6_on_prof/novaddt novadaq@novadaq-far-master:/ddt/externals/.
78 15 Serdar Kurbanov
</pre>
79 12 Serdar Kurbanov
80 1 Martin Frank
3. Check that code works
81 15 Serdar Kurbanov
<pre>
82 13 Serdar Kurbanov
. /ddt/externals/setup
83 13 Serdar Kurbanov
setup novaddt v03_04_06 -q e6:on:prof
84 15 Serdar Kurbanov
>> (a bit questionable) nova -c srcs/novaddt/DDTGlobalConfigurations/DDTGlobalConfiguration-FD.fcl
85 15 Serdar Kurbanov
</pre>
86 11 Serdar Kurbanov
87 18 Serdar Kurbanov
h2. Start changes in control room
88 11 Serdar Kurbanov
> (Make track of what you'r doing n ECL)
89 11 Serdar Kurbanov
> Stop run
90 16 Serdar Kurbanov
> Start DAQ config editor on Monitor1
91 11 Serdar Kurbanov
> Config is FarDetGlobalConfigP1
92 11 Serdar Kurbanov
> Change build version manually
93 11 Serdar Kurbanov
> Enter
94 1 Martin Frank
> Start new run
95 18 Serdar Kurbanov
96 18 Serdar Kurbanov
97 19 Serdar Kurbanov
h2. Building with Jenkins
98 18 Serdar Kurbanov
99 18 Serdar Kurbanov
Using Jenkins simplifies build process.
100 18 Serdar Kurbanov
101 18 Serdar Kurbanov
1. Get certificate to enter Jenkins if you don't have one
102 20 Serdar Kurbanov
> General instructions: https://fermi.service-now.com/kb_view_customer.do?sysparm_article=KB0010657
103 20 Serdar Kurbanov
> Get KCA server CA (https://security.fnal.gov/pki/fermi-kca-ca.pemcertificate)
104 20 Serdar Kurbanov
> Get KCA certificate. For SL6 x86 this link helped me, since yum install krb5-fermi-getcert didn't work. Install packages krb5-fermi-*. http://ftp.scientificlinux.org/linux/fermi/slf6x/i386/os/FermiPackages/
105 18 Serdar Kurbanov
106 18 Serdar Kurbanov
2. Go to Jenkins
107 18 Serdar Kurbanov
> https://buildmaster.fnal.gov/view/Nova/
108 18 Serdar Kurbanov
109 18 Serdar Kurbanov
3. Go to build configuration
110 18 Serdar Kurbanov
> NOvA -> novaddt_build -> Configure
111 18 Serdar Kurbanov
112 18 Serdar Kurbanov
4. Make changes in version. For unclear dependensies go to novaddt/novaddtdeps repo -> tags -> tag you search -> ups -> product_deps
113 18 Serdar Kurbanov
114 18 Serdar Kurbanov
5. Make build (build with parameters)
115 18 Serdar Kurbanov
116 18 Serdar Kurbanov
6. Debug if any problem appears
117 18 Serdar Kurbanov
118 18 Serdar Kurbanov
119 18 Serdar Kurbanov
h2. Deploying products after Jenkins
120 18 Serdar Kurbanov
121 18 Serdar Kurbanov
Do same steps as deploying after mrb build, but downloading to FD server looks differently:
122 18 Serdar Kurbanov
1. Ssh to FD server
123 18 Serdar Kurbanov
<pre>
124 18 Serdar Kurbanov
ssh novadaq@novadaq-far-master
125 18 Serdar Kurbanov
</pre>
126 18 Serdar Kurbanov
127 18 Serdar Kurbanov
2. Get link from Jenkins 
128 18 Serdar Kurbanov
> Jenkins->novaddt_build_output->Last successful atrifacts->link for zip)
129 18 Serdar Kurbanov
130 18 Serdar Kurbanov
3. Download build to download area
131 18 Serdar Kurbanov
<pre>
132 18 Serdar Kurbanov
cd <download folder>
133 18 Serdar Kurbanov
wget <link from Jenkins>
134 18 Serdar Kurbanov
</pre>
135 18 Serdar Kurbanov
136 18 Serdar Kurbanov
4. Unzip and untar link from Jenkins to /ddt/externals
137 18 Serdar Kurbanov
138 18 Serdar Kurbanov
5. Check that code works
139 18 Serdar Kurbanov
140 18 Serdar Kurbanov
6. Go to control room to make changes
141 22 Serdar Kurbanov
142 22 Serdar Kurbanov
h2. Extended version of how to deploy products to FD
143 22 Serdar Kurbanov
144 22 Serdar Kurbanov
1. Upload new build to novadaq@novadaq-far-master
145 22 Serdar Kurbanov
146 22 Serdar Kurbanov
2. svn is not installed on novadaq@novadaq-far-master. You need to use novadaq@novadaq-far-master-02 to use svn to update DDTGlobalConfiguration-FD.fcl
147 22 Serdar Kurbanov
Note: you may need to log in to novadaq@novadaq-far-master-02 through novadaq@novadaq-far-master, since direct access is not allowed for some reason.
148 22 Serdar Kurbanov
149 22 Serdar Kurbanov
3. Update fcl using instructions from instruction on updating GlobalConfiguration
150 22 Serdar Kurbanov
151 22 Serdar Kurbanov
4. Pick a buffer node which is in the run (see DAQ application manager or ask RunCoordinator if needed) and log in there. By default, node 70 is ok.
152 22 Serdar Kurbanov
<pre>
153 22 Serdar Kurbanov
ssh novadaq@novadaq-far-farm-70
154 22 Serdar Kurbanov
</pre>
155 22 Serdar Kurbanov
156 22 Serdar Kurbanov
5. Copy fcl file ~/ddt/fhicl/DDTGlobalConfigurations/DDTGlobalConfiguration-FD.fcl to your directory on ssh novadaq@novadaq-far-farm-70 and change it so it doens't run in verbose and not producing trigger messages.
157 22 Serdar Kurbanov
158 22 Serdar Kurbanov
6. Make setup
159 22 Serdar Kurbanov
<pre>
160 22 Serdar Kurbanov
. /ddt/externals/setup
161 22 Serdar Kurbanov
setup novaddt <version> -q <qualifier> (for example: setup novaddt v03_09_02 -q e6:on:prof)
162 22 Serdar Kurbanov
</pre>
163 22 Serdar Kurbanov
164 22 Serdar Kurbanov
7. Interprocess communication shell setup
165 22 Serdar Kurbanov
<pre>
166 22 Serdar Kurbanov
ipcs (it shows you shared memory segments, you need to pick up most used one)
167 22 Serdar Kurbanov
export SHMRW_KEY=0x0001700F
168 22 Serdar Kurbanov
</pre>