X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=planetlab%2Fexp-tool%2FMakefile;h=f6e85fba08456ce11d31b02fbc3129d1619283fc;hb=a5b656245597a8aa2fff2a3cf71e13cdd3bd2785;hp=2997c4a87c2855fb4913cef4b6a22e1b4c0722ee;hpb=73c049714c669aa0db58245483cc8a242fd4e7b5;p=sliver-openvswitch.git diff --git a/planetlab/exp-tool/Makefile b/planetlab/exp-tool/Makefile index 2997c4a87..f6e85fba0 100644 --- a/planetlab/exp-tool/Makefile +++ b/planetlab/exp-tool/Makefile @@ -60,16 +60,17 @@ SSH = ssh $(SSH_OPTIONS) SUDO ?= sudo -S ALL_NODE_IDS=$(sort $(foreach link,$(LINKS),$(call leftnode,$(link))) $(foreach link,$(LINKS),$(call rightnode,$(link)))) +ALL_NODE_HOSTS=$(foreach id,$(ALL_NODE_IDS),$(call solve,$(id))) ALL_LINK_IDS=$(addsuffix @1,$(LINKS)) $(addsuffix @2,$(LINKS)) CONF_NODE_IDS=$(subst HOST_,,$(filter HOST_%,$(.VARIABLES))) #################### -all+init: init all +init_all: init all init: @[ -d L ] || ( echo Creating tmp dir L; mkdir L) @[ -d log ] || (echo Creating tmp dir log; mkdir log) @[ -d cache ] || ( echo Creating tmp dir cache; mkdir cache) -.PHONY: all+init init +.PHONY: init_all init FORCE: @@ -84,14 +85,22 @@ showslice: ++SLICE FORCE shownodes: @$(foreach id,$(ALL_NODE_IDS),echo $(id)=$(call display,$(id));) +showhostnames: ++ALL_NODE_HOSTS showips: @$(foreach id,$(ALL_NODE_IDS),echo $(id)=$(call display,$(id)) has ip/network set to $(IP_$(id));) showlinks: @$(foreach link,$(LINKS), echo $(call display,$(call leftnode,$(link))) '====>' $(call display,$(call rightnode,$(link)));) -.PHONY: shownodes showips showlinks +showcontrollers: + @$(foreach id,$(ALL_NODE_IDS), echo $(call display,$(id)) has controller $(call default,CONTROLLER,$(id));) +.PHONY: shownodes showhostnames showips showlinks showcontrollers -sshchecks: $(foreach id,$(ALL_NODE_IDS),cache/sshcheck.$(id)) +sshchecks: $(foreach id,$(ALL_NODE_IDS),sshcheck-$(id)) .PHONY: sshchecks +ovsversions: $(foreach id,$(ALL_NODE_IDS),ovsversion-$(id)) +.PHONY: ovsversions +# more general form; run with make sshs SSH-COMMAND="bla bla bla" +sshs: $(foreach id,$(ALL_NODE_IDS),ssh-$(id)) +.PHONY: sshs DBS=$(foreach id,$(ALL_NODE_IDS),cache/db.$(id)) dbs: $(DBS) @@ -118,16 +127,25 @@ CONTROLLERS=$(foreach id,$(ALL_NODE_IDS),cache/controller.$(id)) controllers: $(CONTROLLERS) .PHONY: controllers +del-controllers: $(foreach id,$(ALL_NODE_IDS),del-controller-$(id)) +.PHONY: del-controllers + ### node-oriented targets # check ssh connectivity -cache/sshcheck.%: FORCE - @if $(SSH) $(HOST_$*) hostname 2> /dev/null; then echo "ssh on" $(call display,$*) "OK" ; \ +sshcheck-%: FORCE + @if $(SSH) $(HOST_$*) hostname &> /dev/null; then echo "ssh on" $(call display,$*) "OK" ; \ else echo "ssh on" $(call display,$*) "KO !!!"; fi +ovsversion-%: FORCE + @OVSVERSION=$$($(SSH) $(HOST_$*) rpm -q sliver-openvswitch); echo $(call display,$*) has $$OVSVERSION + +ssh-%: FORCE + @$(SSH) $(HOST_$*) $(SUDO) $(SSH-COMMAND) + # should probably replace sshcheck cache/status.%: FORCE @echo "=== DB and SWITCH processes on $(call display,$*)" - @$(SSH) $(HOST_$*) $(SUDO) sliver-ovs status + @$(SSH) $(HOST_$*) $(SUDO) sliver-ovs status ||: cache/host.%: @echo "IP lookup for $(call display,$*)" @@ -153,7 +171,7 @@ cache/controller.%: cache/bridge.% # xxx this probably needs a more thorough cleanup in cache/ cache/stop.%: del-bridge.% @echo "Stopping switch & db on $(call display,$*)" - @$(SSH) $(HOST_$*) $(SUDO) sliver-ovs stop && rm cache/switch.% cache/db.% + @$(SSH) $(HOST_$*) $(SUDO) sliver-ovs stop && rm cache/switch.$* cache/db.$* ### link-oriented targets # L/- @@ -183,6 +201,11 @@ del-db.%: @$(SSH) $(HOST_$*) $(SUDO) sliver-ovs stop-db @rm -f cache/db.$* +del-controller-%: + @echo "Removing controller for $(call display,$*)" + @$(SSH) $(HOST_$*) $(SUDO) sliver-ovs del-controller $(BRIDGE) + @rm -f cache/controller.$* + del-links: $(addprefix U/,$(notdir $(filter-out %.log,$(wildcard L/*)))) del-switchs: $(addprefix del-,$(notdir $(filter-out %.log,$(wildcard cache/switch.*)))) @@ -263,7 +286,7 @@ cache/link.%: cache/host.$$(call rget,%) cache/iface.% cache/iface.$$(call opp,% CLEANTARGETS=$(addprefix del-,$(notdir $(filter-out %.log,$(wildcard cache/bridge.*)))) clean: $(CLEANTARGETS) distclean: - rm -rf L U cache + rm -rf L log cache .PHONY: clean distclean #################### @@ -272,11 +295,28 @@ graph.dot: graph.ps: graph.dot dot -Tps < $^ > $@ +#################### +# googlemap stuff +# Uses: +# GMAP_SERVER, the hostname that runs an ndnmap instance +# GMAP_PROBES, a list of tuples of the form +# === +# e.g. +# SENDER-MUX=SENDER=3=0.5 +# which would mean, the link 'SENDER-MUX' should be monitored at the 'SENDER' node and is coded +# in links.json with id=3, every half second +# sliver-ovs gmap-probe is designed to run in background, +# and so that a new run will kill any previously running instance +gprobes: $(foreach probe,$(GMAP_PROBES),gprobe-$(probe)) + +gprobe-%: FORCE + $(SSH) -n $(call solve,$(word 2,$(subst @, ,$(*F)))) $(SUDO) \ + sliver-ovs gmap-probe L$(word 1,$(subst @, ,$(*F))) $(GMAP_SERVER) $(word 3,$(subst @, ,$(*F))) $(word 4,$(subst @, ,$(*F))) #################### # 'virtual' targets in that there's no real file attached define node_shortcuts -sshcheck.$(1): cache/sshcheck.$(1) FORCE +sshcheck.$(1): sshcheck-$(1) FORCE db.$(1): cache/db.$(1) FORCE switch.$(1): cache/switch.$(1) FORCE start.$(1): cache/start.$(1) FORCE @@ -297,6 +337,9 @@ endef $(foreach id,$(ALL_LINK_IDS), $(eval $(call link_shortcuts,$(id)))) +help: + @cat Makefile.help + #################### convenience, for debugging only # make +foo : prints the value of $(foo) # make ++foo : idem but verbose, i.e. foo=$(foo)