- comments
[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 pplc1 pplc2 papi1 papi2
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 -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 -v -C ./planetlab4.sql root@$(PLC2):$(CHROOT)$(APIDIR)/planetlab4.sql
34
35 ####################
36 DB=install-schema stop-clients clean-db restart
37 API=install-api restart
38
39 db: $(DB)
40
41 db-dump:
42         chroot $(CHROOT) pg_dump -U pgsqluser planetlab4 > planetlab4.dump
43
44 api: $(API)
45
46 install-schema:
47         @echo 'installing schema'
48         @rsync -a -v planetlab4.sql $(CHROOT)$(APIDIR)/planetlab4.sql
49
50 install-api:
51         find . -name '*.py' | xargs tar cf - | ( cd $(CHROOT)$(APIDIR) ; tar xf -)
52         -find $(CHROOT)$(APIDIR) -name '*pyc' | xargs rm
53
54 stop-clients:
55         @echo 'pkilling psql'
56         @-pkill psql
57         @echo 'pkilling Shell.py'
58         @-pkill Shell.py
59         @echo stopping httpd
60         @chroot $(CHROOT) /etc/plc.d/httpd stop
61
62 clean-db:
63         @echo 'dropping db'
64         @chroot $(CHROOT) psql -U postgres --port $(PORT) template1 -c 'drop database planetlab4'
65
66 restart:
67         @echo 'Restarting PLC'
68         @chroot $(CHROOT) service plc restart
69
70 http:
71         @echo 'Restarting httpd'
72         @chroot $(CHROOT) /etc/plc.d/httpd stop ; chroot $(CHROOT) /etc/plc.d/httpd start
73
74 ####################
75 UPGRADE=down up reconfig restart
76
77 upgrade: $(UPGRADE)
78
79 rpm:
80         @echo latest rpm is $(RPM)
81
82 down:
83         cp $(SITEDIR)/$(SITE) .
84         rpm -e myplc
85 up:
86         rpm -i $(RPM)
87
88 reconfig:
89         service plc mount
90         mkdir -p $(SITEDIR)
91         cp $(SITE) $(SITEDIR)
92         (echo w; echo q) | chroot $(CHROOT) plc-config-tty
93
94 ####################
95 TEST=run checkpoint diff
96 run:
97         python -u ./TestPeers.py > TestPeers.out 2>&1
98 diff:
99         @echo '<< REF OUT>>'
100         diff TestPeers.ref TestPeers.out 
101
102 checkpoint:
103         @echo adopting latest run as reference
104         cp TestPeers.out TestPeers.ref
105
106 #######
107 HELP=rpm db-dump http
108
109 help:
110         @echo known targets:
111         @echo push: $(PUSH) 
112         @echo db: $(DB) 
113         @echo api: $(API) 
114         @echo upgrade: $(UPGRADE)
115         @echo test: $(TEST)
116         @echo OTHERS: $(HELP)
117