def _send_loadbalancer_uve(self): try: pool_uuids = os.listdir(self.driver.lbaas_dir) except OSError: return # delete stale uves for pool_uuid in self.old_pool_uuids: if pool_uuid not in pool_uuids: uve_lb = UveLoadbalancerStats(name=pool_uuid, deleted=True) uve_lb.listener = {} uve_lb.pool = {} uve_lb.member = {} uve_trace = UveLoadbalancerTrace(data=uve_lb) uve_trace.send() self.old_pool_uuids = pool_uuids # send stats for pool_uuid in pool_uuids: lb_stats = self.driver.get_stats(pool_uuid) if not 'listener' in lb_stats or not len(lb_stats['listener']): uve_lb = UveLoadbalancerStats(name=pool_uuid, deleted=True) uve_lb.listener = {} uve_lb.pool = {} uve_lb.member = {} uve_trace = UveLoadbalancerTrace(data=uve_lb) uve_trace.send() continue uve_lb = UveLoadbalancerStats() uve_lb.name = pool_uuid uve_lb.listener = {} uve_lb.pool = {} uve_lb.member = {} count = 0 total_items = len(lb_stats['listener']) while (total_items > count): lb_stat = lb_stats['listener'][count] name = lb_stat['name'] value = self._uve_get_stats(lb_stat) uve_lb.listener[name] = value count = count + 1 count = 0 total_items = len(lb_stats['pool']) while (total_items > count): lb_stat = lb_stats['pool'][count] name = lb_stat['name'] value = self._uve_get_stats(lb_stat) uve_lb.pool[name] = value count = count + 1 count = 0 total_items = len(lb_stats['member']) while (total_items > count): lb_stat = lb_stats['member'][count] name = lb_stat['name'] value = self._uve_get_stats(lb_stat) uve_lb.member[name] = value count = count + 1 uve_trace = UveLoadbalancerTrace(data=uve_lb) uve_trace.send()