From a05e85301399a93ec85b7eec9d5c6208cdaf1a87 Mon Sep 17 00:00:00 2001 From: Giuseppe Lettieri Date: Tue, 26 Jun 2012 13:25:45 +0200 Subject: [PATCH] improved planetlab scripts --- planetlab/automake.mk | 3 ++- planetlab/scripts/Makefile | 50 ++++++++++++++++++++++++++++-------- planetlab/scripts/del_bridge | 9 +++---- planetlab/scripts/showgraph | 7 +++++ 4 files changed, 52 insertions(+), 17 deletions(-) create mode 100755 planetlab/scripts/showgraph diff --git a/planetlab/automake.mk b/planetlab/automake.mk index 70c59d15b..39fc465b5 100644 --- a/planetlab/automake.mk +++ b/planetlab/automake.mk @@ -9,7 +9,8 @@ dist_sbin_SCRIPTS += \ planetlab/scripts/create_port \ planetlab/scripts/del_bridge \ planetlab/scripts/del_port \ - planetlab/scripts/Makefile + planetlab/scripts/Makefile \ + planetlab/scripts/showgraph planetlab_pltap_ovs_pltap_ovs_SOURCES = \ planetlab/pltap-ovs/pltap-ovs.c \ diff --git a/planetlab/scripts/Makefile b/planetlab/scripts/Makefile index ea7162405..fd69127fc 100644 --- a/planetlab/scripts/Makefile +++ b/planetlab/scripts/Makefile @@ -55,17 +55,11 @@ L/%: cache/link.%@1 cache/link.%@2 @touch $@ @echo "Created link $*" -del.%: del-iface.%@1 del-iface.%@2 +U/%: del-iface.%@1 del-iface.%@2 @rm -f L/$* @echo "Deleted link $*" -del-iface.%: - @echo "Removing interface for link $(call proj1,$*) from host $(call get,$*)" - @ssh -l $(SLICE) $(HOST_$(call get,$*)) \ - sudo ovs-vsctl del-port L$(call proj1,$*) - @rm -f cache/iface.$* cache/link.$* cache/link.$(call opp,$*) - -del-bridge.%: +del-bridge.%: cache/db.% @echo "Deleting bridge on host $*" @if [ -f cache/bridge.$* ]; then \ ssh -l $(SLICE) $(HOST_$*) \ @@ -76,23 +70,57 @@ del-bridge.%: cache/link.$*-*@? cache/link.*-$*@? \ L/$*-* L/*-$* +del-switchd.%: del-bridge.% + @echo "Shutting down switchd on host $*" + @if [ -f cache/switchd.$* ]; then \ + ssh -l $(SLICE) $(HOST_$*) \ + sudo ovs-appctl exit;\ + fi + @rm -f cache/switchd.$* + +del-db.%: + @echo "Shutting down db on host $*" + @if [ -f cache/db.$* ]; then \ + ssh -l $(SLICE) $(HOST_$*) \ + sudo ovs-appctl --target=$(VARRUN)/ovsdb-server.$$(cat cache/db.$*).ctl exit;\ + fi + @rm -f cache/db.$* + +shutdown: del-switches del-dbs + graph.dot: ( echo "digraph $(SLICE) {"; ls L | sed 's/-/->/;s/$$/;/'; echo "}" ) > $@ graph.ps: graph.dot dot -Tps < $^ > $@ -.PHONY: clean del-links graph.dot +.PHONY: clean del-links graph.dot servers clean: $(addprefix del-,$(notdir $(wildcard cache/bridge.*))) -del-links: $(addprefix del.,$(notdir $(wildcard L/*))) +del-links: $(addprefix U/,$(notdir $(wildcard L/*))) + +switchds: $(wildcard cache/switchd.*) + +dbs: $(wildcard cache/db.*) + +del-switchds: $(addprefix del-,$(notdir $(wildcard cache/switchd.*))) + +del-dbs: $(addprefix del-,$(notdir $(wildcard cache/db.*))) .SECONDEXPANSION: +del-iface.%: cache/db.$$(call get,%) + @echo "Removing interface for link $(call proj1,$*) from host $(call get,$*)" + @ssh -l $(SLICE) $(HOST_$(call get,$*)) \ + sudo del_port L$(call proj1,$*) + @rm -f cache/iface.$* cache/link.$* cache/link.$(call opp,$*) + + + cache/iface.%: cache/bridge.$$(call get,%) - @echo "Creating iterface for link $(call proj1,$*) on host $(call get,$*)" + @echo "Creating interface for link $(call proj1,$*) on host $(call get,$*)" @ssh -l $(SLICE) $(HOST_$(call get,$*)) \ sudo create_port $$(cat $^) L$(call proj1,$*) > $@ \ || { rm $@; exit 1; } diff --git a/planetlab/scripts/del_bridge b/planetlab/scripts/del_bridge index e25ff924d..d19049aa4 100755 --- a/planetlab/scripts/del_bridge +++ b/planetlab/scripts/del_bridge @@ -15,12 +15,11 @@ if [ -z "$1" ]; then error "Usage: ${0##*/} " fi -# ensure ovs-vswitchd is running +W= if ! is_switch_running; then - echo "ovs-vswitchd not runnig" >&2 - exit 1 + W="--no-wait" fi -if ovs-vsctl bridge-exists "$1"; then - ovs-vsctl del-br $1 +if ovs-vsctl br-exists "$1"; then + ovs-vsctl $W del-br $1 fi diff --git a/planetlab/scripts/showgraph b/planetlab/scripts/showgraph new file mode 100755 index 000000000..85421cb3e --- /dev/null +++ b/planetlab/scripts/showgraph @@ -0,0 +1,7 @@ +make graph.ps +gv -watch -spartan graph.ps >/dev/null 2>&1 & +while : +do + inotifywait -e CREATE -e DELETE L + make graph.ps +done >/dev/null 2>&1 -- 2.47.0