ooops
[plcapi.git] / peers-test.mk
1 ### -*-Makefile-*-
2 CHROOT=/plc/root
3 PORT=5432
4 SITEDIR=/etc/planetlab/configs
5 SITE=site.xml
6 RPM=$(shell ls -rt /root/myplc*rpm | tail -1)
7 APIDIR=/usr/share/plc_api
8
9 PLC1=lurch.cs.princeton.edu
10 PLC2=planetlab-devbox.inria.fr
11
12 all:help
13
14 ####################
15 PUSH=pclean pplc2 papi2 pplc1 papi1
16
17 push:$(PUSH)
18
19 papi: pclean papi1 papi2
20 pplc: pclean pplc1 pplc2
21
22 pclean:
23         -find . '(' -name '*.pyc' -o -name '*~' ')' | xargs rm
24 papi1:
25         rsync -a -v -C ./ root@$(PLC1):new_plc_api/
26 pplc1:
27         rsync -a -v -C ./PLC/ root@$(PLC1):$(CHROOT)$(APIDIR)/PLC/
28         rsync -a -v -C ./planetlab4.sql root@$(PLC1):$(CHROOT)$(APIDIR)/planetlab4.sql
29 papi2:
30         rsync -a -v -C ./ root@$(PLC2):new_plc_api/
31 pplc2:
32         rsync -a -v -C ./PLC/ root@$(PLC2):$(CHROOT)$(APIDIR)/PLC/
33         rsync -a -v -C ./planetlab4.sql root@$(PLC2):$(CHROOT)$(APIDIR)/planetlab4.sql
34
35 ####################
36 DB=install-schema stop-clients clean-db restart
37 WEB=install-api restart
38
39 db: $(DB)
40         @date
41
42 db-dump:
43         chroot $(CHROOT) pg_dump -U pgsqluser planetlab4 > planetlab4.dump
44
45 web: $(WEB)
46
47 install-schema:
48         @echo 'installing schema'
49         @rsync -a -v planetlab4.sql $(CHROOT)$(APIDIR)/planetlab4.sql
50
51 install-api:
52         find . -name '*.py' | xargs tar cf - | ( cd $(CHROOT)$(APIDIR) ; tar xf -)
53         -find $(CHROOT)$(APIDIR) -name '*pyc' | xargs rm
54
55 stop-clients:
56         @echo 'pkilling psql'
57         @-pkill psql
58         @echo 'pkilling Shell.py'
59         @-pkill Shell.py
60         @echo stopping httpd
61         @chroot $(CHROOT) /etc/plc.d/httpd stop
62
63 clean-db:
64         @echo 'dropping db'
65         @chroot $(CHROOT) psql -U postgres --port $(PORT) template1 -c 'drop database planetlab4'
66
67 restart:
68         @echo 'Restarting PLC'
69         @chroot $(CHROOT) service plc restart
70
71 http:
72         @echo 'Restarting httpd'
73         @chroot $(CHROOT) /etc/plc.d/httpd stop ; chroot $(CHROOT) /etc/plc.d/httpd start
74
75 ####################
76 UPGRADE=down up reconfig restart
77
78 upgrade: $(UPGRADE)
79
80 rpm:
81         @echo latest rpm is $(RPM)
82
83 down:
84         cp $(SITEDIR)/$(SITE) .
85         rpm -e myplc
86 up:
87         rpm -i $(RPM)
88
89 reconfig:
90         service plc mount
91         mkdir -p $(SITEDIR)
92         cp $(SITE) $(SITEDIR)
93         (echo w; echo q) | chroot $(CHROOT) plc-config-tty
94
95 ####################
96 RUN=api sql log
97 api:
98         chroot $(CHROOT) /usr/share/plc_api/Shell.py
99
100 sql:
101         chroot $(CHROOT) psql -U pgsqluser planetlab4
102
103 log:
104         emacs /plc/data/var/log/httpd/error_log /plc/data/var/log/boot.log
105
106 ####################
107 # remove time/delay dependent output
108 normalize       = egrep -v "'expires':|^+++.*ellapsed"
109
110 TEST=run checkpoint diff
111 run: run-only normalize
112 run-only:
113         python -u ./TestPeers.py > TestPeers.out 2>&1
114
115 normalize: TestPeers.out.nor TestPeers.ref.nor
116 TestPeers.out.nor: TestPeers.out
117         $(normalize) TestPeers.out > TestPeers.out.nor
118 TestPeers.ref.nor: TestPeers.ref
119         $(normalize) TestPeers.ref > TestPeers.ref.nor
120
121 diff: normalize
122         @echo '<< REF OUT>>'
123         diff TestPeers.ref.nor TestPeers.out.nor
124
125 checkpoint:
126         @echo adopting latest run as reference
127         cp TestPeers.out TestPeers.ref
128         cp TestPeers.out.nor TestPeers.ref.nor
129
130 frun:
131         python -u ./TestPeers.py -f > TestPeers.fout 2>&1
132 brun:
133         python -u ./TestPeers.py -b > TestPeers.bout 2>&1
134 prun:
135         python -u ./TestPeers.py -p > TestPeers.pout 2>&1
136 #######
137 HELP=rpm db-dump http
138
139 help:
140         @echo known targets:
141         @echo push: $(PUSH) 
142         @echo db: $(DB) 
143         @echo web: $(WEB) 
144         @echo upgrade: $(UPGRADE)
145         @echo test: $(TEST)
146         @echo run: $(RUN)
147         @echo OTHERS: $(HELP)
148