aboutsummaryrefslogtreecommitdiffstats
path: root/yardstick/vTC/apexlake/experimental_framework/common.py
diff options
context:
space:
mode:
Diffstat (limited to 'yardstick/vTC/apexlake/experimental_framework/common.py')
-rw-r--r--yardstick/vTC/apexlake/experimental_framework/common.py92
1 files changed, 61 insertions, 31 deletions
diff --git a/yardstick/vTC/apexlake/experimental_framework/common.py b/yardstick/vTC/apexlake/experimental_framework/common.py
index 97f5bee93..6b5f932ce 100644
--- a/yardstick/vTC/apexlake/experimental_framework/common.py
+++ b/yardstick/vTC/apexlake/experimental_framework/common.py
@@ -44,7 +44,10 @@ PKTGEN_COREMASK = None
PKTGEN_MEMCHANNEL = None
PKTGEN_BUS_SLOT_NIC_1 = None
PKTGEN_BUS_SLOT_NIC_2 = None
+PKTGEN_NAME_NIC_1 = None
+PKTGEN_NAME_NIC_2 = None
+# TODO: remove Influx
INFLUXDB_IP = None
INFLUXDB_PORT = None
INFLUXDB_DB_NAME = None
@@ -56,14 +59,15 @@ INFLUXDB_DB_NAME = None
def init(api=False):
global BASE_DIR
- BASE_DIR = os.getcwd()
+ # BASE_DIR = os.getcwd()
+ BASE_DIR = os.path.dirname(os.path.abspath(__file__))
BASE_DIR = BASE_DIR.replace('/experimental_framework', '')
BASE_DIR = InputValidation.validate_directory_exist_and_format(
BASE_DIR, "Error 000001")
init_conf_file(api)
- init_general_vars()
init_log()
+ init_general_vars(api)
if len(CONF_FILE.get_variable_list(cf.CFS_PKTGEN)) > 0:
init_pktgen()
@@ -71,12 +75,14 @@ def init(api=False):
def init_conf_file(api=False):
global CONF_FILE
if api:
- CONF_FILE = ConfigurationFile(cf.get_sections_api())
+ CONF_FILE = ConfigurationFile(cf.get_sections_api(),
+ '/etc/apexlake/apexlake.conf')
else:
- CONF_FILE = ConfigurationFile(cf.get_sections())
+ CONF_FILE = ConfigurationFile(cf.get_sections(),
+ '/etc/apexlake/apexlake.conf')
-def init_general_vars():
+def init_general_vars(api=False):
global TEMPLATE_FILE_EXTENSION
global TEMPLATE_NAME
global TEMPLATE_DIR
@@ -92,22 +98,27 @@ def init_general_vars():
"Section " + cf.CFS_GENERAL +
"is not present in configuration file")
- TEMPLATE_DIR = BASE_DIR + 'heat_templates/'
-
- # Validate template name
- InputValidation.\
- validate_configuration_file_parameter(
- cf.CFS_GENERAL,
- cf.CFSG_TEMPLATE_NAME,
- "Parameter " + cf.CFSG_TEMPLATE_NAME +
- "is not present in configuration file")
+ TEMPLATE_DIR = '/tmp/apexlake/heat_templates/'
+ if not os.path.exists(TEMPLATE_DIR):
+ os.makedirs(TEMPLATE_DIR)
+ cmd = "cp /etc/apexlake/heat_templates/*.yaml {}".format(TEMPLATE_DIR)
+ run_command(cmd)
+
+ if not api:
+ # Validate template name
+ InputValidation.\
+ validate_configuration_file_parameter(
+ cf.CFS_GENERAL,
+ cf.CFSG_TEMPLATE_NAME,
+ "Parameter " + cf.CFSG_TEMPLATE_NAME +
+ "is not present in configuration file")
+ TEMPLATE_NAME = CONF_FILE.get_variable(cf.CFS_GENERAL,
+ cf.CFSG_TEMPLATE_NAME)
+ InputValidation.validate_file_exist(
+ TEMPLATE_DIR + TEMPLATE_NAME,
+ "The provided template file does not exist")
- TEMPLATE_NAME = CONF_FILE.get_variable(cf.CFS_GENERAL,
- cf.CFSG_TEMPLATE_NAME)
- InputValidation.validate_file_exist(
- TEMPLATE_DIR + TEMPLATE_NAME,
- "The provided template file does not exist")
- RESULT_DIR = BASE_DIR + 'results/'
+ RESULT_DIR = "/tmp/apexlake/results/"
# Validate and assign Iterations
if cf.CFSG_ITERATIONS in CONF_FILE.get_variable_list(cf.CFS_GENERAL):
@@ -119,13 +130,8 @@ def init_general_vars():
def init_log():
global LOG
- if cf.CFSG_DEBUG in CONF_FILE.get_variable_list(cf.CFS_GENERAL) and \
- CONF_FILE.get_variable(cf.CFS_GENERAL, cf.CFSG_DEBUG):
- logging.basicConfig(level=logging.DEBUG)
- else:
- logging.basicConfig(level=logging.INFO)
-
LOG = logging.getLogger()
+ LOG.setLevel(level=logging.INFO)
log_formatter = logging.Formatter("%(asctime)s --- %(message)s")
file_handler = logging.FileHandler("{0}/{1}.log".format("./", "benchmark"))
file_handler.setFormatter(log_formatter)
@@ -159,6 +165,8 @@ def init_pktgen():
global PKTGEN_BUS_SLOT_NIC_1
global PKTGEN_BUS_SLOT_NIC_2
global PKTGEN_DPDK_DIRECTORY
+ global PKTGEN_NAME_NIC_1
+ global PKTGEN_NAME_NIC_2
msg = "Section {} is not present in the configuration file".\
format(cf.CFS_PKTGEN)
@@ -231,6 +239,22 @@ def init_pktgen():
PKTGEN_BUS_SLOT_NIC_2 = CONF_FILE.get_variable(
cf.CFS_PKTGEN, cf.CFSP_DPDK_BUS_SLOT_NIC_2)
+ # Validation of the DPDK NIC 1
+ msg = "Parameter {} is not present in section {}".format(
+ cf.CFSP_DPDK_NAME_IF_1, cf.CFS_PKTGEN)
+ InputValidation.validate_configuration_file_parameter(
+ cf.CFS_PKTGEN, cf.CFSP_DPDK_NAME_IF_1, msg)
+ PKTGEN_NAME_NIC_1 = CONF_FILE.get_variable(
+ cf.CFS_PKTGEN, cf.CFSP_DPDK_NAME_IF_1)
+
+ # Validation of the DPDK NIC 2
+ msg = "Parameter {} is not present in section {}".format(
+ cf.CFSP_DPDK_NAME_IF_2, cf.CFS_PKTGEN)
+ InputValidation.validate_configuration_file_parameter(
+ cf.CFS_PKTGEN, cf.CFSP_DPDK_NAME_IF_2, msg)
+ PKTGEN_NAME_NIC_2 = CONF_FILE.get_variable(
+ cf.CFS_PKTGEN, cf.CFSP_DPDK_NAME_IF_2)
+
# Validation of DPDK directory parameter
msg = "Parameter {} is not present in section {}".format(
cf.CFSP_DPDK_DPDK_DIRECTORY, cf.CFS_PKTGEN)
@@ -264,7 +288,7 @@ class ConfigurationFile:
"""
InputValidation.validate_string(
config_file, "The configuration file name must be a string")
- config_file = BASE_DIR + config_file
+ # config_file = BASE_DIR + config_file
InputValidation.validate_file_exist(
config_file, 'The provided configuration file does not exist')
self.config = ConfigParser.ConfigParser()
@@ -304,8 +328,8 @@ class ConfigurationFile:
sect = getattr(self, section)
return sect[variable_name]
else:
- exc_msg = 'Parameter {} is not in the {} section of the conf file'
- exc_msg.format(variable_name, section)
+ exc_msg = 'Parameter {} is not in the {} section of the ' \
+ 'conf file'.format(variable_name, section)
raise ValueError(exc_msg)
def get_variable_list(self, section):
@@ -420,7 +444,7 @@ def replace_in_file(file, text_to_search, text_to_replace):
# Shell interaction
# ------------------------------------------------------
def run_command(command):
- LOG.info("Running command: " + command)
+ LOG.info("Running command: {}".format(command))
return os.system(command)
@@ -445,17 +469,23 @@ def get_template_dir():
return TEMPLATE_DIR
+def get_result_dir():
+ return RESULT_DIR
+
+
def get_dpdk_pktgen_vars():
if not (PKTGEN == 'dpdk_pktgen'):
return dict()
ret_val = dict()
ret_val[cf.CFSP_DPDK_PKTGEN_DIRECTORY] = PKTGEN_DIR
+ ret_val[cf.CFSP_DPDK_DPDK_DIRECTORY] = PKTGEN_DPDK_DIRECTORY
ret_val[cf.CFSP_DPDK_PROGRAM_NAME] = PKTGEN_PROGRAM
ret_val[cf.CFSP_DPDK_COREMASK] = PKTGEN_COREMASK
ret_val[cf.CFSP_DPDK_MEMORY_CHANNEL] = PKTGEN_MEMCHANNEL
ret_val[cf.CFSP_DPDK_BUS_SLOT_NIC_1] = PKTGEN_BUS_SLOT_NIC_1
ret_val[cf.CFSP_DPDK_BUS_SLOT_NIC_2] = PKTGEN_BUS_SLOT_NIC_2
- ret_val[cf.CFSP_DPDK_DPDK_DIRECTORY] = PKTGEN_DPDK_DIRECTORY
+ ret_val[cf.CFSP_DPDK_NAME_IF_1] = PKTGEN_NAME_NIC_1
+ ret_val[cf.CFSP_DPDK_NAME_IF_2] = PKTGEN_NAME_NIC_2
return ret_val