X-Git-Url: https://osm.etsi.org/gitweb/?a=blobdiff_plain;f=src%2Femuvim%2Fdcemulator%2Fmonitoring.py;h=ce24a4000867508f92e0cce7c7b326b3c325218a;hb=ee5179f161d10b35a8a73f495ca3692fda9b2e71;hp=d0e45daabc0fe426cccf25f510eadc76d1b3e921;hpb=08f91be07d9124986dacf05b7cd87eb8d3d8b338;p=osm%2Fvim-emu.git diff --git a/src/emuvim/dcemulator/monitoring.py b/src/emuvim/dcemulator/monitoring.py index d0e45da..ce24a40 100755 --- a/src/emuvim/dcemulator/monitoring.py +++ b/src/emuvim/dcemulator/monitoring.py @@ -34,7 +34,7 @@ import time from prometheus_client import start_http_server, Summary, Histogram, Gauge, Counter, REGISTRY, CollectorRegistry, \ pushadd_to_gateway, push_to_gateway, delete_from_gateway import threading -from subprocess import Popen +from subprocess import Popen, check_call import os import docker import json @@ -535,8 +535,15 @@ class DCNetworkMonitor(): def _stop_container(self, name): - container = self.dockercli.containers.get(name) - container.remove(force=True) + #container = self.dockercli.containers.get(name) + #container.stop() + #container.remove(force=True) + + # the only robust way to stop these containers is via Popen, it seems + time.sleep(1) + cmd = ['docker', 'rm', '-f', name] + Popen(cmd) + def update_skewmon(self, vnf_name, resource_name, action): @@ -600,6 +607,18 @@ class DCNetworkMonitor(): labels=['com.containernet'], name='skewmon' ) + # Wait a while for containers to be completely started + started = False + wait_time = 0 + while not started: + list1 = self.dockercli.containers.list(filters={'status': 'running', 'name': 'prometheus'}) + if len(list1) >= 1: + time.sleep(1) + started = True + if wait_time > 5: + return 'skewmon not started' + time.sleep(1) + wait_time += 1 return ret