X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=src%2Femuvim%2Fdcemulator%2Fnet.py;h=27a07d1b21cdf3011d71510e64a959de73b6eaf2;hb=0dcb2a13c68dc5a91bd6330d4c37df604630b9ac;hp=ade984fbb54fa5183eaef295ba3e765830e363bf;hpb=45dda84f087c85d4e9c847b108f393982038c7a1;p=osm%2Fvim-emu.git diff --git a/src/emuvim/dcemulator/net.py b/src/emuvim/dcemulator/net.py index ade984f..27a07d1 100755 --- a/src/emuvim/dcemulator/net.py +++ b/src/emuvim/dcemulator/net.py @@ -68,6 +68,11 @@ class DCNetwork(Containernet): """ self.dcs = {} + # make sure any remaining Ryu processes are killed + self.killRyu() + # make sure no containers are left over from a previous emulator run. + self.removeLeftoverContainers() + # call original Docker.__init__ and setup default controller Containernet.__init__( self, switch=OVSKernelSwitch, controller=controller, **kwargs) @@ -517,6 +522,16 @@ class DCNetwork(Containernet): if self.ryu_process is not None: self.ryu_process.terminate() self.ryu_process.kill() + self.killRyu() + + @staticmethod + def removeLeftoverContainers(): + # TODO can be more python-based using eg. docker-py? + Popen('docker ps -a -q --filter="name=mn.*" | xargs -r docker rm -f', shell=True) + + @staticmethod + def killRyu(): + Popen(['pkill', '-f', 'ryu-manager']) def ryu_REST(self, prefix, dpid=None, data=None): try: