-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathretry_test.py
executable file
·54 lines (42 loc) · 1.46 KB
/
retry_test.py
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
from __future__ import print_function
import argparse
import datetime
import logging
import random
import sys
import time
import threading
from oslo.config import cfg
from oslo.utils import timeutils
from ceilometer.publisher import utils
from ceilometer import sample
from ceilometer import storage
from sqlalchemy import func
from ceilometer.storage.sqlalchemy.models import Sample as DBSample
from ceilocommandthread import CeiloCommandThread
from sqlalchemy.exc import OperationalError as DbOpError
from retrying import retry
from ceilometer.openstack.common import log
from ceilometer.openstack.common.gettextutils import _
LOG = log.getLogger(__name__)
def _db_error_filter(exc):
if isinstance(exc, DbOpError):
LOG.warn(_("Error connecting to database. Retrying..."))
return True
return False
#@retry(retry_on_exception=_db_error_filter, wait_fixed=500, stop_max_attempt_number=50)
#@retry(wait_fixed=500, stop_max_attempt_number=50)
#def get_connection():
def main():
# Connect to the metering database
cfg.CONF([], project='ceilometer')
conn = storage.get_connection_from_config(cfg.CONF)
print("Connection succeeded trying get_meters")
res = conn.get_meters()
print("1 Number of meters: %d" % sum(1 for i in res))
res = conn.get_meters()
print("2 Number of meters: %d" % sum(1 for i in res))
res = conn.get_meters()
print("3 Number of meters: %d" % sum(1 for i in res))
if __name__ == '__main__':
main()