updated
[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         @cp 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 ####################
71 UPGRADE=down up reconfig restart
72
73 upgrade: $(UPGRADE)
74
75 rpm:
76         @echo latest rpm is $(RPM)
77
78 down:
79         cp $(SITEDIR)/$(SITE) .
80         rpm -e myplc
81 up:
82         rpm -i $(RPM)
83
84 reconfig:
85         service plc mount
86         mkdir -p $(SITEDIR)
87         cp $(SITE) $(SITEDIR)
88         (echo w; echo q) | chroot $(CHROOT) plc-config-tty
89
90 ####################
91 TEST=run checkpoint diff
92 run:
93         ./TestPeers.py > TestPeers.out 2>&1
94 diff:
95         @echo '<< REF OUT>>'
96         diff TestPeers.ref TestPeers.out 
97
98 checkpoint:
99         @echo adopting latest run as reference
100         cp TestPeers.out TestPeers.ref
101
102 #######
103 HELP=rpm db-dump
104
105 help:
106         @echo known targets:
107         @echo push: $(PUSH) 
108         @echo db: $(DB) 
109         @echo api: $(API) 
110         @echo upgrade: $(UPGRADE)
111         @echo test: $(TEST)
112         @echo OTHERS: $(HELP)
113