Auto venv via path module
* Add path module to handle paths * Finds the venv * Finds the overcloudrc * Clean-up/refactor imports Change-Id: I24c269f2073a28ae0bee230cb9911dc89249f79f
This commit is contained in:
parent
d00d2c41de
commit
aa1b7651d3
2
.gitignore
vendored
2
.gitignore
vendored
@ -1,11 +1,11 @@
|
||||
*.py[cod]
|
||||
.tox
|
||||
|
||||
# Virtual Environments:
|
||||
.browbeat-venv
|
||||
.perfkit-venv
|
||||
.rally-venv
|
||||
.shaker-venv
|
||||
.yoda-venv
|
||||
|
||||
# OpenStack Environment Files
|
||||
stackrc
|
||||
|
@ -25,25 +25,22 @@ overcloudrc: "{{home_dir}}/overcloudrc"
|
||||
# overcloud_ca_path: /etc/pki/ca-trust/source/anchors/overcloud.crt.pem
|
||||
|
||||
# The default Browbeat venv
|
||||
browbeat_venv: "{{home_dir}}/browbeat-venv"
|
||||
browbeat_venv: "{{browbeat_path}}/.browbeat-venv"
|
||||
|
||||
# The default Rally venv
|
||||
rally_venv: "{{home_dir}}/rally-venv"
|
||||
rally_venv: "{{browbeat_path}}/.rally-venv"
|
||||
|
||||
# Rally version to install
|
||||
rally_version: 0.8.1
|
||||
|
||||
# The default Shaker venv
|
||||
shaker_venv: "{{home_dir}}/shaker-venv"
|
||||
shaker_venv: "{{browbeat_path}}/.shaker-venv"
|
||||
|
||||
# Shaker version to Install
|
||||
shaker_version: 1.1.0
|
||||
|
||||
# The default YODA venv
|
||||
yoda_venv: /home/stack/yoda-venv
|
||||
|
||||
# PerfKitBenchmarker Settings
|
||||
perfkit_venv: "{{home_dir}}/perfkit-venv"
|
||||
perfkit_venv: "{{browbeat_path}}/.perfkit-venv"
|
||||
perfkit_version: v1.12.0
|
||||
|
||||
# Configuration items to adjust browbeat results served through httpd
|
||||
|
@ -2,6 +2,6 @@
|
||||
|
||||
- name: Run Browbeat
|
||||
shell:
|
||||
"source {{ ansible_env.HOME }}/browbeat-venv/bin/activate; \
|
||||
"source {{ ansible_env.HOME }}/browbeat/.browbeat-venv/bin/activate; \
|
||||
cd {{ ansible_env.HOME }}/browbeat/; \
|
||||
python browbeat.py all"
|
||||
|
@ -2,7 +2,6 @@ browbeat:
|
||||
results : results/
|
||||
rerun: 3
|
||||
cloud_name: {{ browbeat_cloud_name }}
|
||||
overcloud_credentials: /home/stack/overcloudrc
|
||||
elasticsearch:
|
||||
enabled: {{ elastic_enabled }}
|
||||
host: {{ elastic_host }}
|
||||
|
@ -1,10 +1,9 @@
|
||||
# Tests to be compleated for the install-and-check.sh script minimal and short workloads are performed
|
||||
# Tests to be completed for the install-and-check.sh script minimal and short workloads are performed
|
||||
# to confirm functionality.
|
||||
browbeat:
|
||||
results : results/
|
||||
rerun: 1
|
||||
cloud_name: {{ browbeat_cloud_name }}
|
||||
overcloud_credentials: /home/stack/overcloudrc
|
||||
elasticsearch:
|
||||
enabled: {{ elastic_enabled }}
|
||||
host: {{ elastic_host }}
|
||||
|
@ -4,7 +4,6 @@ browbeat:
|
||||
results : results/
|
||||
rerun: 1
|
||||
cloud_name: {{ browbeat_cloud_name }}
|
||||
overcloud_credentials: /home/stack/overcloudrc
|
||||
elasticsearch:
|
||||
enabled: {{ elastic_enabled }}
|
||||
host: {{ elastic_host }}
|
||||
|
@ -3,7 +3,6 @@ browbeat:
|
||||
results : results/
|
||||
rerun: 3
|
||||
cloud_name: openstack
|
||||
overcloud_credentials: /home/stack/overcloudrc
|
||||
elasticsearch:
|
||||
enabled: false
|
||||
regather: false
|
||||
@ -40,7 +39,6 @@ perfkit:
|
||||
enabled: true
|
||||
sleep_before: 0
|
||||
sleep_after: 0
|
||||
venv: /home/stack/perfkit-venv
|
||||
default:
|
||||
image: centos7
|
||||
machine_type: m1.small
|
||||
@ -59,7 +57,6 @@ rally:
|
||||
enabled: true
|
||||
sleep_before: 5
|
||||
sleep_after: 5
|
||||
venv: /home/stack/rally-venv
|
||||
plugins:
|
||||
- netcreate-boot: rally/rally-plugins/netcreate-boot
|
||||
- netcreate-boot-ping: rally/rally-plugins/netcreate-boot-ping
|
||||
@ -275,7 +272,6 @@ shaker:
|
||||
join_timeout: 600
|
||||
sleep_before: 5
|
||||
sleep_after: 5
|
||||
venv: /home/stack/shaker-venv
|
||||
shaker_region: regionOne
|
||||
external_host: 2.2.2.2
|
||||
scenarios:
|
||||
@ -371,7 +367,6 @@ yoda:
|
||||
enabled: false
|
||||
instackenv: "/home/stack/instackenv.json"
|
||||
stackrc: "/home/stack/stackrc"
|
||||
venv: "/home/stack/yoda-venv/bin/activate"
|
||||
benchmarks:
|
||||
- name: scale-deploy
|
||||
type: overcloud
|
||||
|
@ -3,7 +3,6 @@ browbeat:
|
||||
results : results/
|
||||
rerun: 1
|
||||
cloud_name: openstack
|
||||
overcloud_credentials: /home/stack/overcloudrc
|
||||
elasticsearch:
|
||||
enabled: true
|
||||
host: 1.1.1.1
|
||||
@ -40,7 +39,6 @@ perfkit:
|
||||
enabled: false
|
||||
sleep_before: 0
|
||||
sleep_after: 0
|
||||
venv: /home/stack/perfkit-venv
|
||||
default:
|
||||
image: centos7
|
||||
machine_type: m1.small
|
||||
@ -63,7 +61,6 @@ shaker:
|
||||
join_timeout: 600
|
||||
sleep_before: 5
|
||||
sleep_after: 5
|
||||
venv: /home/stack/shaker-venv
|
||||
shaker_region: regionOne
|
||||
external_host: 2.2.2.2
|
||||
scenarios:
|
||||
@ -92,7 +89,6 @@ rally:
|
||||
enabled: true
|
||||
sleep_before: 5
|
||||
sleep_after: 5
|
||||
venv: /home/stack/rally-venv
|
||||
plugins:
|
||||
- netcreate-boot: rally/rally-plugins/netcreate-boot
|
||||
- netcreate-boot-ping: rally/rally-plugins/netcreate-boot-ping
|
||||
|
11
browbeat.py
11
browbeat.py
@ -13,18 +13,15 @@
|
||||
|
||||
import argparse
|
||||
import datetime
|
||||
import browbeat.elastic
|
||||
import browbeat.perfkit
|
||||
import browbeat.rally
|
||||
import browbeat.shaker
|
||||
import browbeat.yoda
|
||||
import browbeat.workloadbase
|
||||
import browbeat.tools
|
||||
import logging
|
||||
import os
|
||||
import sys
|
||||
import time
|
||||
|
||||
import browbeat.elastic
|
||||
import browbeat.tools
|
||||
import browbeat.workloadbase
|
||||
|
||||
_workload_opts = ['perfkit', 'rally', 'shaker', 'yoda']
|
||||
_config_file = 'browbeat-config.yaml'
|
||||
debug_log_file = 'log/debug.log'
|
||||
|
@ -11,16 +11,17 @@
|
||||
# limitations under the License.
|
||||
|
||||
from collections import deque
|
||||
import elasticsearch
|
||||
from elasticsearch import helpers
|
||||
import logging
|
||||
import json
|
||||
import datetime
|
||||
import uuid
|
||||
import sys
|
||||
import time
|
||||
import json
|
||||
import logging
|
||||
import os
|
||||
import re
|
||||
import sys
|
||||
import time
|
||||
import uuid
|
||||
|
||||
import elasticsearch
|
||||
from elasticsearch import helpers
|
||||
|
||||
browbeat_uuid = uuid.uuid4()
|
||||
|
||||
|
69
browbeat/path.py
Normal file
69
browbeat/path.py
Normal file
@ -0,0 +1,69 @@
|
||||
# Licensed under the Apache License, Version 2.0 (the "License");
|
||||
# you may not use this file except in compliance with the License.
|
||||
# You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing, software
|
||||
# distributed under the License is distributed on an "AS IS" BASIS,
|
||||
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
import logging
|
||||
import os
|
||||
|
||||
|
||||
_logger = logging.getLogger('browbeat.path')
|
||||
|
||||
# Browbeat's project modules path, typically /home/stack/browbeat/browbeat
|
||||
browbeat_project_path = os.path.dirname(os.path.realpath(__file__))
|
||||
|
||||
# Path to Browbeat, typically /home/stack/browbeat
|
||||
browbeat_path = os.path.abspath(os.path.join(browbeat_project_path, os.pardir))
|
||||
|
||||
# Base Path, typically /home/stack
|
||||
base_path = os.path.abspath(os.path.join(browbeat_path, os.pardir))
|
||||
|
||||
conf_path = os.path.join(browbeat_path, 'conf')
|
||||
|
||||
log_path = os.path.join(browbeat_path, 'log')
|
||||
|
||||
results_path = os.path.join(browbeat_path, 'results')
|
||||
|
||||
def get_overcloudrc():
|
||||
"""Check the several expected locations for the overcloudrc file:
|
||||
* $base_path/overcloudrc
|
||||
* $browbeat_path/overcloudrc
|
||||
"""
|
||||
paths = [
|
||||
os.path.join(base_path, 'overcloudrc'),
|
||||
os.path.join(browbeat_path, 'overcloudrc')
|
||||
]
|
||||
for overcloudrc_file in paths:
|
||||
if os.path.exists(overcloudrc_file):
|
||||
return overcloudrc_file
|
||||
else:
|
||||
_logger.debug("overcloudrc not found in {}".format(overcloudrc_file))
|
||||
_logger.error('overcloudrc file can not be found')
|
||||
|
||||
def get_workload_venv(workload, path_activate):
|
||||
"""Check the several expected locations for a workload's venv and return the existing venv:
|
||||
* $base_path/$workload-venv
|
||||
* $base_path/.$workload-venv
|
||||
* $browbeat_path/.$workload-venv
|
||||
"""
|
||||
paths = [
|
||||
os.path.join(base_path, '{}-venv'.format(workload)),
|
||||
os.path.join(base_path, '.{}-venv'.format(workload)),
|
||||
os.path.join(browbeat_path, '.{}-venv'.format(workload))
|
||||
]
|
||||
for workload_venv_path in paths:
|
||||
if os.path.isdir(workload_venv_path):
|
||||
if path_activate and os.path.exists(os.path.join(workload_venv_path, 'bin/activate')):
|
||||
return os.path.join(workload_venv_path, 'bin/activate')
|
||||
else:
|
||||
return workload_venv_path
|
||||
else:
|
||||
_logger.debug("{} not installed in {}".format(workload, workload_venv_path))
|
||||
_logger.error('{} does not appear to be installed correctly'.format(workload))
|
@ -11,24 +11,27 @@
|
||||
# limitations under the License.
|
||||
|
||||
import ast
|
||||
import connmon
|
||||
import datetime
|
||||
import elastic
|
||||
import glob
|
||||
import grafana
|
||||
import logging
|
||||
import os
|
||||
import shutil
|
||||
import subprocess
|
||||
import time
|
||||
|
||||
import connmon
|
||||
import elastic
|
||||
import grafana
|
||||
from path import get_overcloudrc
|
||||
from path import get_workload_venv
|
||||
import tools
|
||||
import workloadbase
|
||||
|
||||
|
||||
class PerfKit(workloadbase.WorkloadBase):
|
||||
|
||||
def __init__(self, config):
|
||||
self.logger = logging.getLogger('browbeat.perfkit')
|
||||
self.overcloudrc = get_overcloudrc()
|
||||
self.config = config
|
||||
self.error_count = 0
|
||||
self.tools = tools.Tools(self.config)
|
||||
@ -125,11 +128,12 @@ class PerfKit(workloadbase.WorkloadBase):
|
||||
# Build command to run
|
||||
if 'enabled' in benchmark_config:
|
||||
del benchmark_config['enabled']
|
||||
cmd = ("source {0}/bin/activate; source {1} "
|
||||
"/home/stack/perfkit-venv/PerfKitBenchmarker/pkb.py "
|
||||
"--cloud={2} --run_uri=browbeat".format(
|
||||
self.config['perfkit']['venv'],
|
||||
self.config['browbeat']['overcloud_credentials'], cloud_type))
|
||||
cmd = ("source {0}; source {1}; "
|
||||
"{2}/PerfKitBenchmarker/pkb.py "
|
||||
"--cloud={3} --run_uri=browbeat".format(
|
||||
get_workload_venv('perfkit', True),
|
||||
self.overcloudrc,
|
||||
get_workload_venv('perfkit', False), cloud_type))
|
||||
for parameter, value in benchmark_config.iteritems():
|
||||
if not parameter == 'name':
|
||||
self.logger.debug(
|
||||
|
@ -11,19 +11,21 @@
|
||||
# limitations under the License.
|
||||
|
||||
import collections
|
||||
import connmon
|
||||
import datetime
|
||||
import elastic
|
||||
import glob
|
||||
import grafana
|
||||
import json
|
||||
import logging
|
||||
import os
|
||||
import re
|
||||
import shutil
|
||||
import time
|
||||
import tools
|
||||
|
||||
import connmon
|
||||
import elastic
|
||||
import grafana
|
||||
from path import get_workload_venv
|
||||
import workloadbase
|
||||
import json
|
||||
import tools
|
||||
|
||||
|
||||
class Rally(workloadbase.WorkloadBase):
|
||||
@ -61,7 +63,7 @@ class Rally(workloadbase.WorkloadBase):
|
||||
plugin_string = ""
|
||||
if len(plugins) > 0:
|
||||
plugin_string = "--plugin-paths {}".format(",".join(plugins))
|
||||
cmd = "source {}/bin/activate; ".format(self.config['rally']['venv'])
|
||||
cmd = "source {}; ".format(get_workload_venv('rally', True))
|
||||
cmd += "rally {} task start {} --task-args \'{}\' 2>&1 | tee {}.log".format(
|
||||
plugin_string, task_file, task_args, test_name)
|
||||
from_time = time.time()
|
||||
@ -104,18 +106,18 @@ class Rally(workloadbase.WorkloadBase):
|
||||
|
||||
def gen_scenario_html(self, task_ids, test_name):
|
||||
all_task_ids = ' '.join(task_ids)
|
||||
cmd = "source {}/bin/activate; ".format(self.config['rally']['venv'])
|
||||
cmd = "source {}; ".format(get_workload_venv('rally', True))
|
||||
cmd += "rally task report --task {} --out {}.html".format(
|
||||
all_task_ids, test_name)
|
||||
return self.tools.run_cmd(cmd)['stdout']
|
||||
|
||||
def gen_scenario_json(self, task_id):
|
||||
cmd = "source {}/bin/activate; ".format(self.config['rally']['venv'])
|
||||
cmd = "source {}; ".format(get_workload_venv('rally', True))
|
||||
cmd += "rally task results {}".format(task_id)
|
||||
return self.tools.run_cmd(cmd)['stdout']
|
||||
|
||||
def gen_scenario_json_file(self, task_id, test_name):
|
||||
cmd = "source {}/bin/activate; ".format(self.config['rally']['venv'])
|
||||
cmd = "source {}; ".format(get_workload_venv('rally', True))
|
||||
cmd += "rally task results {} > {}.json".format(task_id, test_name)
|
||||
return self.tools.run_cmd(cmd)['stdout']
|
||||
|
||||
|
@ -12,22 +12,26 @@
|
||||
|
||||
import collections
|
||||
import datetime
|
||||
import elastic
|
||||
import grafana
|
||||
import json
|
||||
import logging
|
||||
import os
|
||||
import time
|
||||
import tools
|
||||
import uuid
|
||||
import workloadbase
|
||||
import yaml
|
||||
|
||||
import elastic
|
||||
import grafana
|
||||
from path import get_overcloudrc
|
||||
from path import get_workload_venv
|
||||
import workloadbase
|
||||
import tools
|
||||
|
||||
|
||||
class Shaker(workloadbase.WorkloadBase):
|
||||
|
||||
def __init__(self, config):
|
||||
self.logger = logging.getLogger('browbeat.shaker')
|
||||
self.overcloudrc = get_overcloudrc()
|
||||
self.config = config
|
||||
self.tools = tools.Tools(self.config)
|
||||
self.grafana = grafana.Grafana(self.config)
|
||||
@ -38,7 +42,7 @@ class Shaker(workloadbase.WorkloadBase):
|
||||
self.scenario_count = 0
|
||||
|
||||
def shaker_checks(self):
|
||||
cmd = "source /home/stack/overcloudrc; glance image-list | grep -w shaker-image"
|
||||
cmd = "source {}; glance image-list | grep -w shaker-image".format(self.overcloudrc)
|
||||
if self.tools.run_cmd(cmd)['stdout'] == "":
|
||||
self.logger.error("Shaker Image is not built, try again")
|
||||
exit(1)
|
||||
@ -351,14 +355,13 @@ class Shaker(workloadbase.WorkloadBase):
|
||||
server_endpoint = self.config['shaker']['server']
|
||||
port_no = self.config['shaker']['port']
|
||||
flavor = self.config['shaker']['flavor']
|
||||
venv = self.config['shaker']['venv']
|
||||
venv = get_workload_venv('shaker', True)
|
||||
shaker_region = self.config['shaker']['shaker_region']
|
||||
timeout = self.config['shaker']['join_timeout']
|
||||
self.logger.info(
|
||||
"The uuid for this shaker scenario is {}".format(shaker_uuid))
|
||||
cmd_env = (
|
||||
"source {0}/bin/activate; source {1}").format(venv, self.config['browbeat']
|
||||
['overcloud_credentials'])
|
||||
"source {0}; source {1}").format(venv, self.overcloudrc)
|
||||
if 'external' in filename and 'external_host' in self.config['shaker']:
|
||||
external_host = self.config['shaker']['external_host']
|
||||
cmd_shaker = (
|
||||
@ -408,7 +411,7 @@ class Shaker(workloadbase.WorkloadBase):
|
||||
time_stamp = datetime.datetime.utcnow().strftime("%Y%m%d-%H%M%S")
|
||||
self.logger.debug("Time Stamp (Prefix): {}".format(time_stamp))
|
||||
scenarios = self.config.get('shaker')['scenarios']
|
||||
venv = self.config['shaker']['venv']
|
||||
venv = get_workload_venv('shaker')
|
||||
default_time = 60
|
||||
self.shaker_checks()
|
||||
if (scenarios is not None and len(scenarios) > 0):
|
||||
|
@ -10,17 +10,19 @@
|
||||
# See the License for the specific language governing permissions and
|
||||
# limitations under the License.
|
||||
|
||||
import logging
|
||||
import os
|
||||
import re
|
||||
import subprocess
|
||||
import yaml
|
||||
|
||||
from pykwalify import core as pykwalify_core
|
||||
from pykwalify import errors as pykwalify_errors
|
||||
|
||||
import perfkit
|
||||
import rally
|
||||
import shaker
|
||||
import yoda
|
||||
import logging
|
||||
import os
|
||||
import subprocess
|
||||
import yaml
|
||||
import re
|
||||
from pykwalify import core as pykwalify_core
|
||||
from pykwalify import errors as pykwalify_errors
|
||||
|
||||
|
||||
class Tools(object):
|
||||
|
@ -14,9 +14,6 @@ mapping:
|
||||
cloud_name:
|
||||
type: str
|
||||
required: True
|
||||
overcloud_credentials:
|
||||
type: str
|
||||
required: True
|
||||
|
||||
elasticsearch:
|
||||
required: True
|
||||
@ -116,9 +113,6 @@ mapping:
|
||||
sleep_after:
|
||||
type: number
|
||||
required: True
|
||||
venv:
|
||||
type: str
|
||||
required: True
|
||||
default:
|
||||
type: map
|
||||
required: True
|
||||
@ -191,9 +185,6 @@ mapping:
|
||||
sleep_after:
|
||||
type: number
|
||||
required: True
|
||||
venv:
|
||||
type: str
|
||||
required: True
|
||||
shaker_region:
|
||||
type: str
|
||||
required: true
|
||||
@ -231,9 +222,6 @@ mapping:
|
||||
sleep_after:
|
||||
type: number
|
||||
required: True
|
||||
venv:
|
||||
type: str
|
||||
required: True
|
||||
benchmarks:
|
||||
type: seq
|
||||
required: True
|
||||
|
@ -12,23 +12,26 @@
|
||||
# limitations under the License.
|
||||
|
||||
# Yet another cloud deployment tool
|
||||
|
||||
from collections import deque
|
||||
import datetime
|
||||
import elastic
|
||||
import grafana
|
||||
import json
|
||||
import logging
|
||||
import os
|
||||
import time
|
||||
import tools
|
||||
import workloadbase
|
||||
|
||||
from openstack import connection
|
||||
from openstack import exceptions
|
||||
import os
|
||||
import requests
|
||||
try:
|
||||
from ostag import ostag
|
||||
except ImportError:
|
||||
ostag = None
|
||||
from collections import deque
|
||||
import requests
|
||||
|
||||
import elastic
|
||||
import grafana
|
||||
import workloadbase
|
||||
import tools
|
||||
|
||||
|
||||
class Yoda(workloadbase.WorkloadBase):
|
||||
|
@ -3,7 +3,6 @@ browbeat:
|
||||
results : results/
|
||||
rerun: 1
|
||||
cloud_name: openstack
|
||||
overcloud_credentials: /home/stack/overcloudrc
|
||||
elasticsearch:
|
||||
enabled: false
|
||||
regather: false
|
||||
@ -40,7 +39,6 @@ rally:
|
||||
enabled: true
|
||||
sleep_before: 5
|
||||
sleep_after: 5
|
||||
venv: /home/stack/rally-venv
|
||||
plugins:
|
||||
- glance-create-boot-delete: rally/rally-plugins/glance-create-boot-delete
|
||||
benchmarks:
|
||||
|
@ -4,7 +4,6 @@ browbeat:
|
||||
results : results/
|
||||
rerun: 3
|
||||
cloud_name: openstack
|
||||
overcloud_credentials: /home/stack/overcloudrc
|
||||
elasticsearch:
|
||||
enabled: false
|
||||
regather: false
|
||||
@ -42,7 +41,6 @@ rally:
|
||||
enabled: true
|
||||
sleep_before: 5
|
||||
sleep_after: 5
|
||||
venv: /home/stack/rally-venv
|
||||
benchmarks:
|
||||
- name: authenticate
|
||||
enabled: true
|
||||
|
@ -4,7 +4,6 @@ browbeat:
|
||||
results : results/
|
||||
rerun: 1
|
||||
cloud_name: openstack
|
||||
overcloud_credentials: /home/stack/overcloudrc
|
||||
elasticsearch:
|
||||
enabled: false
|
||||
regather: false
|
||||
@ -42,7 +41,6 @@ rally:
|
||||
enabled: true
|
||||
sleep_before: 5
|
||||
sleep_after: 5
|
||||
venv: /home/stack/rally-venv
|
||||
benchmarks:
|
||||
- name: authenticate
|
||||
enabled: true
|
||||
|
@ -39,7 +39,6 @@ rally:
|
||||
enabled: true
|
||||
sleep_before: 5
|
||||
sleep_after: 5
|
||||
venv: /home/stack/rally-venv/bin/activate
|
||||
plugins:
|
||||
- workloads: rally/rally-plugins/workloads
|
||||
benchmarks:
|
||||
|
@ -3,7 +3,6 @@ browbeat:
|
||||
results : results/
|
||||
rerun: 1
|
||||
cloud_name: openstack
|
||||
overcloud_credentials: /home/stack/overcloudrc
|
||||
elasticsearch:
|
||||
enabled: false
|
||||
regather: false
|
||||
@ -40,7 +39,6 @@ rally:
|
||||
enabled: true
|
||||
sleep_before: 5
|
||||
sleep_after: 5
|
||||
venv: /home/stack/rally-venv
|
||||
plugins:
|
||||
- validate-ceilometer: rally/rally-plugins/validate-ceilometer
|
||||
- nova-ceilometer: rally/rally-plugins/nova-ceilometer
|
||||
|
@ -6,7 +6,6 @@ browbeat:
|
||||
results : results/
|
||||
rerun: 1
|
||||
cloud_name: openstack
|
||||
overcloud_credentials: /home/stack/overcloudrc
|
||||
elasticsearch:
|
||||
enabled: false
|
||||
regather: false
|
||||
@ -43,7 +42,6 @@ rally:
|
||||
enabled: true
|
||||
sleep_before: 5
|
||||
sleep_after: 5
|
||||
venv: /home/stack/rally-venv
|
||||
plugins:
|
||||
- nova: rally/rally-plugins/nova
|
||||
benchmarks:
|
||||
|
@ -4,7 +4,6 @@ browbeat:
|
||||
results : results/
|
||||
rerun: 1
|
||||
cloud_name: openstack
|
||||
overcloud_credentials: /home/stack/overcloudrc
|
||||
elasticsearch:
|
||||
enabled: false
|
||||
host: 1.1.1.1
|
||||
@ -41,7 +40,6 @@ rally:
|
||||
enabled: true
|
||||
sleep_before: 0
|
||||
sleep_after: 0
|
||||
venv: /home/stack/rally-venv
|
||||
plugins:
|
||||
- gnocchi: rally/rally-plugins/gnocchi
|
||||
benchmarks:
|
||||
|
@ -8,7 +8,6 @@ browbeat:
|
||||
results : results/
|
||||
rerun: 1
|
||||
cloud_name: openstack
|
||||
overcloud_credentials: /home/stack/overcloudrc
|
||||
elasticsearch:
|
||||
enabled: false
|
||||
regather: false
|
||||
@ -45,7 +44,6 @@ perfkit:
|
||||
enabled: true
|
||||
sleep_before: 0
|
||||
sleep_after: 0
|
||||
venv: /home/stack/perfkit-venv
|
||||
default:
|
||||
image: centos7
|
||||
machine_type: m1.small
|
||||
|
@ -10,7 +10,6 @@ browbeat:
|
||||
results : results/
|
||||
rerun: 1
|
||||
cloud_name: openstack
|
||||
overcloud_credentials: /home/stack/overcloudrc
|
||||
elasticsearch:
|
||||
enabled: false
|
||||
host: 1.1.1.1
|
||||
@ -47,7 +46,6 @@ rally:
|
||||
enabled: true
|
||||
sleep_before: 5
|
||||
sleep_after: 5
|
||||
venv: /home/stack/rally-venv
|
||||
plugins:
|
||||
- nova: rally/rally-plugins/nova
|
||||
- neutron: rally/rally-plugins/neutron
|
||||
|
@ -10,7 +10,6 @@ browbeat:
|
||||
results : results/
|
||||
rerun: 1
|
||||
cloud_name: openstack
|
||||
overcloud_credentials: /home/stack/overcloudrc
|
||||
elasticsearch:
|
||||
enabled: false
|
||||
host: 1.1.1.1
|
||||
@ -47,7 +46,6 @@ rally:
|
||||
enabled: true
|
||||
sleep_before: 5
|
||||
sleep_after: 5
|
||||
venv: /home/stack/rally-venv
|
||||
plugins:
|
||||
- nova: rally/rally-plugins/nova
|
||||
- neutron: rally/rally-plugins/neutron
|
||||
|
@ -10,7 +10,6 @@ browbeat:
|
||||
results : results/
|
||||
rerun: 1
|
||||
cloud_name: openstack
|
||||
overcloud_credentials: /home/stack/overcloudrc
|
||||
elasticsearch:
|
||||
enabled: false
|
||||
host: 1.1.1.1
|
||||
@ -47,7 +46,6 @@ rally:
|
||||
enabled: true
|
||||
sleep_before: 5
|
||||
sleep_after: 5
|
||||
venv: /home/stack/rally-venv
|
||||
plugins:
|
||||
- nova: rally/rally-plugins/nova
|
||||
- neutron: rally/rally-plugins/neutron
|
||||
|
@ -10,7 +10,6 @@ browbeat:
|
||||
results : results/
|
||||
rerun: 1
|
||||
cloud_name: openstack
|
||||
overcloud_credentials: /home/stack/overcloudrc
|
||||
elasticsearch:
|
||||
enabled: false
|
||||
host: 1.1.1.1
|
||||
@ -47,7 +46,6 @@ rally:
|
||||
enabled: true
|
||||
sleep_before: 5
|
||||
sleep_after: 5
|
||||
venv: /home/stack/rally-venv
|
||||
plugins:
|
||||
- nova: rally/rally-plugins/nova
|
||||
- neutron: rally/rally-plugins/neutron
|
||||
|
@ -8,7 +8,6 @@ browbeat:
|
||||
results : results/
|
||||
rerun: 1
|
||||
cloud_name: openstack
|
||||
overcloud_credentials: /home/stack/overcloudrc
|
||||
elasticsearch:
|
||||
enabled: false
|
||||
host: 1.1.1.1
|
||||
@ -47,7 +46,6 @@ rally:
|
||||
# Sleeps 30 minutes after each iteration to allow for system resources to degrade or
|
||||
# display stepped degrading (If the system is hitting saturation or high utilization)
|
||||
sleep_after: 1800
|
||||
venv: /home/stack/rally-venv
|
||||
plugins:
|
||||
- nova: rally/rally-plugins/nova
|
||||
- neutron: rally/rally-plugins/neutron
|
||||
|
@ -7,7 +7,6 @@ browbeat:
|
||||
results : results/
|
||||
rerun: 1
|
||||
cloud_name: openstack
|
||||
overcloud_credentials: /home/stack/overcloudrc
|
||||
elasticsearch:
|
||||
enabled: false
|
||||
regather: false
|
||||
@ -47,7 +46,6 @@ rally:
|
||||
# Sleeps 30 minutes after each iteration to allow for system resources to degrade or
|
||||
# display stepped degrading (If the system is hitting saturation or high utilization)
|
||||
sleep_after: 1800
|
||||
venv: /home/stack/rally-venv
|
||||
plugins:
|
||||
- nova: rally/rally-plugins/nova
|
||||
benchmarks:
|
||||
|
@ -397,9 +397,7 @@ setup Browbeat with Rally against your local quickstart cloud.
|
||||
|
||||
Edit your browbeat-config and validate the following:
|
||||
|
||||
* Correct overcloudrc referenced
|
||||
* Elastic Indexing configuration
|
||||
* Rally venv is set correctly
|
||||
* Scenarios you want to run are setup and set to a low times/concurrency
|
||||
|
||||
Troubleshooting
|
||||
|
@ -355,13 +355,9 @@ environment is different and thus your configuration options will vary.
|
||||
|
||||
[browbeat1@browbeatvm ansible]$ cd ..
|
||||
[browbeat1@browbeatvm browbeat]$ vi browbeat-config.yaml
|
||||
[browbeat1@browbeatvm browbeat]$ . ../browbeat-venv/bin/activate
|
||||
[browbeat1@browbeatvm browbeat]$ . .browbeat-venv/bin/activate
|
||||
(browbeat-venv) [browbeat1@browbeatvm browbeat]$ python browbeat.py rally
|
||||
|
||||
Make sure to modify the venv settings for Rally to match the directory in which
|
||||
Rally was installed in. You will have to do so for other workload providers as
|
||||
well.
|
||||
|
||||
11. Setup network for Shaker+PerfKitBenchmarker and build Shaker image
|
||||
|
||||
::
|
||||
|
@ -11,32 +11,20 @@ Run Overcloud checks
|
||||
|
||||
Your Overcloud check output is located in results/bug_report.log
|
||||
|
||||
NOTE: It is strongly advised to not run the ansible playbooks in a venv.
|
||||
NOTE: It is strongly advised to not run the ansible playbooks in a virtual environment.
|
||||
|
||||
Run performance stress tests through Browbeat on the undercloud
|
||||
---------------------------------------------------------------
|
||||
Run Browbeat performance tests from Undercloud
|
||||
----------------------------------------------
|
||||
|
||||
::
|
||||
|
||||
$ ssh undercloud-root
|
||||
[root@ospd ~]# su - stack
|
||||
[stack@ospd ~]$ screen -S browbeat
|
||||
[stack@ospd ~]$ . browbeat-venv/bin/activate
|
||||
(browbeat-venv)[stack@ospd ~]$ cd browbeat/
|
||||
[stack@ospd ~]$ cd browbeat/
|
||||
[stack@ospd browbeat]$ . .browbeat-venv/bin/activate
|
||||
(browbeat-venv)[stack@ospd browbeat]$ vi browbeat-config.yaml # Edit browbeat-config.yaml to control how many stress tests are run.
|
||||
(browbeat-venv)[stack@ospd browbeat]$ ./browbeat.py <workload> #perfkit, rally, shaker or "all"
|
||||
|
||||
|
||||
Run performance stress tests through Browbeat
|
||||
---------------------------------------------
|
||||
|
||||
::
|
||||
|
||||
[stack@ospd ansible]$ . ../../browbeat-venv/bin/activate
|
||||
(browbeat-venv)[stack@ospd ansible]$ cd ..
|
||||
(browbeat-venv)[stack@ospd browbeat]$ vi browbeat-config.yaml # Edit browbeat.cfg to control how many stress tests are run.
|
||||
(browbeat-venv)[stack@ospd browbeat]$ ./browbeat.py <workload> #perfkit, rally, shaker or "all"
|
||||
|
||||
Running PerfKitBenchmarker
|
||||
---------------------------
|
||||
|
||||
@ -99,8 +87,6 @@ summarized below:
|
||||
:join_timeout: Timeout in seconds for agents to join
|
||||
:sleep_before: Time in seconds to sleep before executing a scenario
|
||||
:sleep_after: Time in seconds to sleep after executing a scenario
|
||||
:venv: venv to execute shaker commands in, ``/home/stack/shaker-venv`` by
|
||||
default
|
||||
:shaker_region: OpenStack region you want to use
|
||||
:external_host: IP of a server for external tests (should have
|
||||
``browbeat/util/shaker-external.sh`` executed on it previously and have
|
||||
|
2
tox.ini
2
tox.ini
@ -43,4 +43,4 @@ show-source = True
|
||||
ignore = E123,E125,E226,E302,E41,E231,E203,H233,H306,H238,H236,H404,H405
|
||||
max-line-length = 100
|
||||
builtins = _
|
||||
exclude=.venv,.git,.tox,dist,doc,*lib/python*,*egg,build,ansible/*
|
||||
exclude=.venv,.git,.tox,dist,doc,*lib/python*,*egg,build,ansible/*,.browbeat-venv,.perfkit-venv,.rally-venv,.shaker-venv
|
||||
|
Loading…
Reference in New Issue
Block a user