set oltpbench config in driver
This commit is contained in:
parent
43fe67a8cb
commit
3ff9698295
|
@ -87,8 +87,8 @@ def create_controller_config():
|
||||||
if dconf.DB_VERSION in ['5.6', '5.7']:
|
if dconf.DB_VERSION in ['5.6', '5.7']:
|
||||||
dburl_fmt = 'jdbc:mysql://{host}:{port}/{db}?useSSL=false'.format
|
dburl_fmt = 'jdbc:mysql://{host}:{port}/{db}?useSSL=false'.format
|
||||||
elif dconf.DB_VERSION == '8.0':
|
elif dconf.DB_VERSION == '8.0':
|
||||||
dburl_fmt = 'jdbc:mysql://{host}:{port}/{db}?\
|
dburl_fmt = ('jdbc:mysql://{host}:{port}/{db}?'
|
||||||
allowPublicKeyRetrieval=true&useSSL=false'.format
|
'allowPublicKeyRetrieval=true&useSSL=false').format
|
||||||
else:
|
else:
|
||||||
raise Exception("MySQL Database Version {} Not Implemented !".format(dconf.DB_VERSION))
|
raise Exception("MySQL Database Version {} Not Implemented !".format(dconf.DB_VERSION))
|
||||||
else:
|
else:
|
||||||
|
@ -636,6 +636,74 @@ def clean_oltpbench_results():
|
||||||
local('rm -f {}/results/*'.format(dconf.OLTPBENCH_HOME))
|
local('rm -f {}/results/*'.format(dconf.OLTPBENCH_HOME))
|
||||||
|
|
||||||
|
|
||||||
|
def _set_oltpbench_property(name, line):
|
||||||
|
if name == 'username':
|
||||||
|
ss = line.split('username')
|
||||||
|
new_line = ss[0] + 'username>{}</username'.format(dconf.DB_USER) + ss[-1]
|
||||||
|
elif name == 'password':
|
||||||
|
ss = line.split('password')
|
||||||
|
new_line = ss[0] + 'password>{}</password'.format(dconf.DB_PASSWORD) + ss[-1]
|
||||||
|
elif name == 'DBUrl':
|
||||||
|
ss = line.split('DBUrl')
|
||||||
|
if dconf.DB_TYPE == 'postgres':
|
||||||
|
dburl_fmt = 'jdbc:postgresql://{host}:{port}/{db}'.format
|
||||||
|
elif dconf.DB_TYPE == 'oracle':
|
||||||
|
dburl_fmt = 'jdbc:oracle:thin:@{host}:{port}:{db}'.format
|
||||||
|
elif dconf.DB_TYPE == 'mysql':
|
||||||
|
if dconf.DB_VERSION in ['5.6', '5.7']:
|
||||||
|
dburl_fmt = 'jdbc:mysql://{host}:{port}/{db}?useSSL=false'.format
|
||||||
|
elif dconf.DB_VERSION == '8.0':
|
||||||
|
dburl_fmt = ('jdbc:mysql://{host}:{port}/{db}?'
|
||||||
|
'allowPublicKeyRetrieval=true&useSSL=false').format
|
||||||
|
else:
|
||||||
|
raise Exception("MySQL Database Version {} "
|
||||||
|
"Not Implemented !".format(dconf.DB_VERSION))
|
||||||
|
else:
|
||||||
|
raise Exception("Database Type {} Not Implemented !".format(dconf.DB_TYPE))
|
||||||
|
database_url = dburl_fmt(host=dconf.DB_HOST, port=dconf.DB_PORT, db=dconf.DB_NAME)
|
||||||
|
new_line = ss[0] + 'DBUrl>{}</DBUrl'.format(database_url) + ss[-1]
|
||||||
|
else:
|
||||||
|
raise Exception("OLTPBench Config Property {} Not Implemented !".format(name))
|
||||||
|
return new_line
|
||||||
|
|
||||||
|
|
||||||
|
@task
|
||||||
|
def set_oltpbench_config():
|
||||||
|
# set database user, password, and connection url in oltpbench config
|
||||||
|
lines = None
|
||||||
|
text = None
|
||||||
|
with open(dconf.OLTPBENCH_CONFIG, 'r') as f:
|
||||||
|
lines = f.readlines()
|
||||||
|
text = ''.join(lines)
|
||||||
|
lid = 10
|
||||||
|
for i, line in enumerate(lines):
|
||||||
|
if 'dbtype' in line:
|
||||||
|
dbtype = line.split('dbtype')[1][1:-2].strip()
|
||||||
|
if dbtype != dconf.DB_TYPE:
|
||||||
|
raise Exception("dbtype {} in OLTPBench config != DB_TYPE {}"
|
||||||
|
"in driver config !".format(dbtype, dconf.DB_TYPE))
|
||||||
|
if 'username' in line:
|
||||||
|
lines[i] = _set_oltpbench_property('username', line)
|
||||||
|
elif 'password' in line:
|
||||||
|
lines[i] = _set_oltpbench_property('password', line)
|
||||||
|
lid = i + 1
|
||||||
|
elif 'DBUrl' in line:
|
||||||
|
lines[i] = _set_oltpbench_property('DBUrl', line)
|
||||||
|
if dconf.ENABLE_UDM:
|
||||||
|
# add the empty uploadCode and uploadUrl so that OLTPBench will output the summary file,
|
||||||
|
# which contains throughput, 99latency, 95latency, etc.
|
||||||
|
if 'uploadUrl' not in text:
|
||||||
|
line = ' <uploadUrl></uploadUrl>\n'
|
||||||
|
lines.insert(lid, line)
|
||||||
|
if 'uploadCode' not in text:
|
||||||
|
line = ' <uploadCode></uploadCode>\n'
|
||||||
|
lines.insert(lid, line)
|
||||||
|
text = ''.join(lines)
|
||||||
|
with open(dconf.OLTPBENCH_CONFIG, 'w') as f:
|
||||||
|
f.write(text)
|
||||||
|
LOG.info('oltpbench config is set: %s', dconf.OLTPBENCH_CONFIG)
|
||||||
|
|
||||||
|
|
||||||
@task
|
@task
|
||||||
def loop(i):
|
def loop(i):
|
||||||
i = int(i)
|
i = int(i)
|
||||||
|
@ -658,6 +726,9 @@ def loop(i):
|
||||||
p.start()
|
p.start()
|
||||||
LOG.info('Run the controller')
|
LOG.info('Run the controller')
|
||||||
|
|
||||||
|
# set oltpbench config, including db username, password, url
|
||||||
|
set_oltpbench_config()
|
||||||
|
|
||||||
# run oltpbench as a background job
|
# run oltpbench as a background job
|
||||||
while not _ready_to_start_oltpbench():
|
while not _ready_to_start_oltpbench():
|
||||||
time.sleep(1)
|
time.sleep(1)
|
||||||
|
|
Loading…
Reference in New Issue