Merge "Auto venv via path module"

This commit is contained in:
Jenkins 2017-10-06 19:26:44 +00:00 committed by Gerrit Code Review
commit 3ed03f737a
35 changed files with 150 additions and 143 deletions

2
.gitignore vendored
View File

@ -1,11 +1,11 @@
*.py[cod] *.py[cod]
.tox
# Virtual Environments: # Virtual Environments:
.browbeat-venv .browbeat-venv
.perfkit-venv .perfkit-venv
.rally-venv .rally-venv
.shaker-venv .shaker-venv
.yoda-venv
# OpenStack Environment Files # OpenStack Environment Files
stackrc stackrc

View File

@ -25,25 +25,22 @@ overcloudrc: "{{home_dir}}/overcloudrc"
# overcloud_ca_path: /etc/pki/ca-trust/source/anchors/overcloud.crt.pem # overcloud_ca_path: /etc/pki/ca-trust/source/anchors/overcloud.crt.pem
# The default Browbeat venv # The default Browbeat venv
browbeat_venv: "{{home_dir}}/browbeat-venv" browbeat_venv: "{{browbeat_path}}/.browbeat-venv"
# The default Rally venv # The default Rally venv
rally_venv: "{{home_dir}}/rally-venv" rally_venv: "{{browbeat_path}}/.rally-venv"
# Rally version to install # Rally version to install
rally_version: 0.8.1 rally_version: 0.8.1
# The default Shaker venv # The default Shaker venv
shaker_venv: "{{home_dir}}/shaker-venv" shaker_venv: "{{browbeat_path}}/.shaker-venv"
# Shaker version to Install # Shaker version to Install
shaker_version: 1.1.0 shaker_version: 1.1.0
# The default YODA venv
yoda_venv: /home/stack/yoda-venv
# PerfKitBenchmarker Settings # PerfKitBenchmarker Settings
perfkit_venv: "{{home_dir}}/perfkit-venv" perfkit_venv: "{{browbeat_path}}/.perfkit-venv"
perfkit_version: v1.12.0 perfkit_version: v1.12.0
# Configuration items to adjust browbeat results served through httpd # Configuration items to adjust browbeat results served through httpd

View File

@ -2,6 +2,6 @@
- name: Run Browbeat - name: Run Browbeat
shell: shell:
"source {{ ansible_env.HOME }}/browbeat-venv/bin/activate; \ "source {{ ansible_env.HOME }}/browbeat/.browbeat-venv/bin/activate; \
cd {{ ansible_env.HOME }}/browbeat/; \ cd {{ ansible_env.HOME }}/browbeat/; \
python browbeat.py all" python browbeat.py all"

View File

@ -2,7 +2,6 @@ browbeat:
results : results/ results : results/
rerun: 3 rerun: 3
cloud_name: {{ browbeat_cloud_name }} cloud_name: {{ browbeat_cloud_name }}
overcloud_credentials: /home/stack/overcloudrc
elasticsearch: elasticsearch:
enabled: {{ elastic_enabled }} enabled: {{ elastic_enabled }}
host: {{ elastic_host }} host: {{ elastic_host }}

View File

@ -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. # to confirm functionality.
browbeat: browbeat:
results : results/ results : results/
rerun: 1 rerun: 1
cloud_name: {{ browbeat_cloud_name }} cloud_name: {{ browbeat_cloud_name }}
overcloud_credentials: /home/stack/overcloudrc
elasticsearch: elasticsearch:
enabled: {{ elastic_enabled }} enabled: {{ elastic_enabled }}
host: {{ elastic_host }} host: {{ elastic_host }}

View File

@ -4,7 +4,6 @@ browbeat:
results : results/ results : results/
rerun: 1 rerun: 1
cloud_name: {{ browbeat_cloud_name }} cloud_name: {{ browbeat_cloud_name }}
overcloud_credentials: /home/stack/overcloudrc
elasticsearch: elasticsearch:
enabled: {{ elastic_enabled }} enabled: {{ elastic_enabled }}
host: {{ elastic_host }} host: {{ elastic_host }}

View File

@ -3,7 +3,6 @@ browbeat:
results : results/ results : results/
rerun: 3 rerun: 3
cloud_name: openstack cloud_name: openstack
overcloud_credentials: /home/stack/overcloudrc
elasticsearch: elasticsearch:
enabled: false enabled: false
regather: false regather: false
@ -40,7 +39,6 @@ perfkit:
enabled: true enabled: true
sleep_before: 0 sleep_before: 0
sleep_after: 0 sleep_after: 0
venv: /home/stack/perfkit-venv
default: default:
image: centos7 image: centos7
machine_type: m1.small machine_type: m1.small
@ -59,7 +57,6 @@ rally:
enabled: true enabled: true
sleep_before: 5 sleep_before: 5
sleep_after: 5 sleep_after: 5
venv: /home/stack/rally-venv
plugins: plugins:
- netcreate-boot: rally/rally-plugins/netcreate-boot - netcreate-boot: rally/rally-plugins/netcreate-boot
- netcreate-boot-ping: rally/rally-plugins/netcreate-boot-ping - netcreate-boot-ping: rally/rally-plugins/netcreate-boot-ping
@ -275,7 +272,6 @@ shaker:
join_timeout: 600 join_timeout: 600
sleep_before: 5 sleep_before: 5
sleep_after: 5 sleep_after: 5
venv: /home/stack/shaker-venv
shaker_region: regionOne shaker_region: regionOne
external_host: 2.2.2.2 external_host: 2.2.2.2
scenarios: scenarios:
@ -371,7 +367,6 @@ yoda:
enabled: false enabled: false
instackenv: "/home/stack/instackenv.json" instackenv: "/home/stack/instackenv.json"
stackrc: "/home/stack/stackrc" stackrc: "/home/stack/stackrc"
venv: "/home/stack/yoda-venv/bin/activate"
benchmarks: benchmarks:
- name: scale-deploy - name: scale-deploy
type: overcloud type: overcloud

View File

@ -3,7 +3,6 @@ browbeat:
results : results/ results : results/
rerun: 1 rerun: 1
cloud_name: openstack cloud_name: openstack
overcloud_credentials: /home/stack/overcloudrc
elasticsearch: elasticsearch:
enabled: true enabled: true
host: 1.1.1.1 host: 1.1.1.1
@ -40,7 +39,6 @@ perfkit:
enabled: false enabled: false
sleep_before: 0 sleep_before: 0
sleep_after: 0 sleep_after: 0
venv: /home/stack/perfkit-venv
default: default:
image: centos7 image: centos7
machine_type: m1.small machine_type: m1.small
@ -63,7 +61,6 @@ shaker:
join_timeout: 600 join_timeout: 600
sleep_before: 5 sleep_before: 5
sleep_after: 5 sleep_after: 5
venv: /home/stack/shaker-venv
shaker_region: regionOne shaker_region: regionOne
external_host: 2.2.2.2 external_host: 2.2.2.2
scenarios: scenarios:
@ -92,7 +89,6 @@ rally:
enabled: true enabled: true
sleep_before: 5 sleep_before: 5
sleep_after: 5 sleep_after: 5
venv: /home/stack/rally-venv
plugins: plugins:
- netcreate-boot: rally/rally-plugins/netcreate-boot - netcreate-boot: rally/rally-plugins/netcreate-boot
- netcreate-boot-ping: rally/rally-plugins/netcreate-boot-ping - netcreate-boot-ping: rally/rally-plugins/netcreate-boot-ping

View File

@ -13,18 +13,15 @@
import argparse import argparse
import datetime 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 logging
import os import os
import sys import sys
import time import time
import browbeat.elastic
import browbeat.tools
import browbeat.workloadbase
_workload_opts = ['perfkit', 'rally', 'shaker', 'yoda'] _workload_opts = ['perfkit', 'rally', 'shaker', 'yoda']
_config_file = 'browbeat-config.yaml' _config_file = 'browbeat-config.yaml'
debug_log_file = 'log/debug.log' debug_log_file = 'log/debug.log'

View File

@ -11,16 +11,17 @@
# limitations under the License. # limitations under the License.
from collections import deque from collections import deque
import elasticsearch
from elasticsearch import helpers
import logging
import json
import datetime import datetime
import uuid import json
import sys import logging
import time
import os import os
import re import re
import sys
import time
import uuid
import elasticsearch
from elasticsearch import helpers
browbeat_uuid = uuid.uuid4() browbeat_uuid = uuid.uuid4()

69
browbeat/path.py Normal file
View 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))

View File

@ -11,24 +11,27 @@
# limitations under the License. # limitations under the License.
import ast import ast
import connmon
import datetime import datetime
import elastic
import glob import glob
import grafana
import logging import logging
import os import os
import shutil import shutil
import subprocess import subprocess
import time import time
import connmon
import elastic
import grafana
from path import get_overcloudrc
from path import get_workload_venv
import tools import tools
import workloadbase import workloadbase
class PerfKit(workloadbase.WorkloadBase): class PerfKit(workloadbase.WorkloadBase):
def __init__(self, config): def __init__(self, config):
self.logger = logging.getLogger('browbeat.perfkit') self.logger = logging.getLogger('browbeat.perfkit')
self.overcloudrc = get_overcloudrc()
self.config = config self.config = config
self.error_count = 0 self.error_count = 0
self.tools = tools.Tools(self.config) self.tools = tools.Tools(self.config)
@ -125,11 +128,12 @@ class PerfKit(workloadbase.WorkloadBase):
# Build command to run # Build command to run
if 'enabled' in benchmark_config: if 'enabled' in benchmark_config:
del benchmark_config['enabled'] del benchmark_config['enabled']
cmd = ("source {0}/bin/activate; source {1} " cmd = ("source {0}; source {1}; "
"/home/stack/perfkit-venv/PerfKitBenchmarker/pkb.py " "{2}/PerfKitBenchmarker/pkb.py "
"--cloud={2} --run_uri=browbeat".format( "--cloud={3} --run_uri=browbeat".format(
self.config['perfkit']['venv'], get_workload_venv('perfkit', True),
self.config['browbeat']['overcloud_credentials'], cloud_type)) self.overcloudrc,
get_workload_venv('perfkit', False), cloud_type))
for parameter, value in benchmark_config.iteritems(): for parameter, value in benchmark_config.iteritems():
if not parameter == 'name': if not parameter == 'name':
self.logger.debug( self.logger.debug(

View File

@ -11,19 +11,21 @@
# limitations under the License. # limitations under the License.
import collections import collections
import connmon
import datetime import datetime
import elastic
import glob import glob
import grafana import json
import logging import logging
import os import os
import re import re
import shutil import shutil
import time import time
import tools
import connmon
import elastic
import grafana
from path import get_workload_venv
import workloadbase import workloadbase
import json import tools
class Rally(workloadbase.WorkloadBase): class Rally(workloadbase.WorkloadBase):
@ -61,7 +63,7 @@ class Rally(workloadbase.WorkloadBase):
plugin_string = "" plugin_string = ""
if len(plugins) > 0: if len(plugins) > 0:
plugin_string = "--plugin-paths {}".format(",".join(plugins)) 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( cmd += "rally {} task start {} --task-args \'{}\' 2>&1 | tee {}.log".format(
plugin_string, task_file, task_args, test_name) plugin_string, task_file, task_args, test_name)
from_time = time.time() from_time = time.time()
@ -104,18 +106,18 @@ class Rally(workloadbase.WorkloadBase):
def gen_scenario_html(self, task_ids, test_name): def gen_scenario_html(self, task_ids, test_name):
all_task_ids = ' '.join(task_ids) 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( cmd += "rally task report --task {} --out {}.html".format(
all_task_ids, test_name) all_task_ids, test_name)
return self.tools.run_cmd(cmd)['stdout'] return self.tools.run_cmd(cmd)['stdout']
def gen_scenario_json(self, task_id): 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) cmd += "rally task results {}".format(task_id)
return self.tools.run_cmd(cmd)['stdout'] return self.tools.run_cmd(cmd)['stdout']
def gen_scenario_json_file(self, task_id, test_name): 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) cmd += "rally task results {} > {}.json".format(task_id, test_name)
return self.tools.run_cmd(cmd)['stdout'] return self.tools.run_cmd(cmd)['stdout']

View File

@ -12,22 +12,26 @@
import collections import collections
import datetime import datetime
import elastic
import grafana
import json import json
import logging import logging
import os import os
import time import time
import tools
import uuid import uuid
import workloadbase
import yaml 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): class Shaker(workloadbase.WorkloadBase):
def __init__(self, config): def __init__(self, config):
self.logger = logging.getLogger('browbeat.shaker') self.logger = logging.getLogger('browbeat.shaker')
self.overcloudrc = get_overcloudrc()
self.config = config self.config = config
self.tools = tools.Tools(self.config) self.tools = tools.Tools(self.config)
self.grafana = grafana.Grafana(self.config) self.grafana = grafana.Grafana(self.config)
@ -38,7 +42,7 @@ class Shaker(workloadbase.WorkloadBase):
self.scenario_count = 0 self.scenario_count = 0
def shaker_checks(self): 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'] == "": if self.tools.run_cmd(cmd)['stdout'] == "":
self.logger.error("Shaker Image is not built, try again") self.logger.error("Shaker Image is not built, try again")
exit(1) exit(1)
@ -351,14 +355,13 @@ class Shaker(workloadbase.WorkloadBase):
server_endpoint = self.config['shaker']['server'] server_endpoint = self.config['shaker']['server']
port_no = self.config['shaker']['port'] port_no = self.config['shaker']['port']
flavor = self.config['shaker']['flavor'] flavor = self.config['shaker']['flavor']
venv = self.config['shaker']['venv'] venv = get_workload_venv('shaker', True)
shaker_region = self.config['shaker']['shaker_region'] shaker_region = self.config['shaker']['shaker_region']
timeout = self.config['shaker']['join_timeout'] timeout = self.config['shaker']['join_timeout']
self.logger.info( self.logger.info(
"The uuid for this shaker scenario is {}".format(shaker_uuid)) "The uuid for this shaker scenario is {}".format(shaker_uuid))
cmd_env = ( cmd_env = (
"source {0}/bin/activate; source {1}").format(venv, self.config['browbeat'] "source {0}; source {1}").format(venv, self.overcloudrc)
['overcloud_credentials'])
if 'external' in filename and 'external_host' in self.config['shaker']: if 'external' in filename and 'external_host' in self.config['shaker']:
external_host = self.config['shaker']['external_host'] external_host = self.config['shaker']['external_host']
cmd_shaker = ( cmd_shaker = (
@ -408,7 +411,7 @@ class Shaker(workloadbase.WorkloadBase):
time_stamp = datetime.datetime.utcnow().strftime("%Y%m%d-%H%M%S") time_stamp = datetime.datetime.utcnow().strftime("%Y%m%d-%H%M%S")
self.logger.debug("Time Stamp (Prefix): {}".format(time_stamp)) self.logger.debug("Time Stamp (Prefix): {}".format(time_stamp))
scenarios = self.config.get('shaker')['scenarios'] scenarios = self.config.get('shaker')['scenarios']
venv = self.config['shaker']['venv'] venv = get_workload_venv('shaker')
default_time = 60 default_time = 60
self.shaker_checks() self.shaker_checks()
if (scenarios is not None and len(scenarios) > 0): if (scenarios is not None and len(scenarios) > 0):

View File

@ -10,17 +10,19 @@
# See the License for the specific language governing permissions and # See the License for the specific language governing permissions and
# limitations under the License. # 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 perfkit
import rally import rally
import shaker import shaker
import yoda 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): class Tools(object):

View File

@ -14,9 +14,6 @@ mapping:
cloud_name: cloud_name:
type: str type: str
required: True required: True
overcloud_credentials:
type: str
required: True
elasticsearch: elasticsearch:
required: True required: True
@ -116,9 +113,6 @@ mapping:
sleep_after: sleep_after:
type: number type: number
required: True required: True
venv:
type: str
required: True
default: default:
type: map type: map
required: True required: True
@ -191,9 +185,6 @@ mapping:
sleep_after: sleep_after:
type: number type: number
required: True required: True
venv:
type: str
required: True
shaker_region: shaker_region:
type: str type: str
required: true required: true
@ -231,9 +222,6 @@ mapping:
sleep_after: sleep_after:
type: number type: number
required: True required: True
venv:
type: str
required: True
benchmarks: benchmarks:
type: seq type: seq
required: True required: True

View File

@ -12,23 +12,26 @@
# limitations under the License. # limitations under the License.
# Yet another cloud deployment tool # Yet another cloud deployment tool
from collections import deque
import datetime import datetime
import elastic
import grafana
import json import json
import logging import logging
import os
import time import time
import tools
import workloadbase
from openstack import connection from openstack import connection
from openstack import exceptions from openstack import exceptions
import os
import requests
try: try:
from ostag import ostag from ostag import ostag
except ImportError: except ImportError:
ostag = None ostag = None
from collections import deque import requests
import elastic
import grafana
import workloadbase
import tools
class Yoda(workloadbase.WorkloadBase): class Yoda(workloadbase.WorkloadBase):

View File

@ -3,7 +3,6 @@ browbeat:
results : results/ results : results/
rerun: 1 rerun: 1
cloud_name: openstack cloud_name: openstack
overcloud_credentials: /home/stack/overcloudrc
elasticsearch: elasticsearch:
enabled: false enabled: false
regather: false regather: false
@ -40,7 +39,6 @@ rally:
enabled: true enabled: true
sleep_before: 5 sleep_before: 5
sleep_after: 5 sleep_after: 5
venv: /home/stack/rally-venv
plugins: plugins:
- glance-create-boot-delete: rally/rally-plugins/glance-create-boot-delete - glance-create-boot-delete: rally/rally-plugins/glance-create-boot-delete
benchmarks: benchmarks:

View File

@ -4,7 +4,6 @@ browbeat:
results : results/ results : results/
rerun: 3 rerun: 3
cloud_name: openstack cloud_name: openstack
overcloud_credentials: /home/stack/overcloudrc
elasticsearch: elasticsearch:
enabled: false enabled: false
regather: false regather: false
@ -42,7 +41,6 @@ rally:
enabled: true enabled: true
sleep_before: 5 sleep_before: 5
sleep_after: 5 sleep_after: 5
venv: /home/stack/rally-venv
benchmarks: benchmarks:
- name: authenticate - name: authenticate
enabled: true enabled: true

View File

@ -4,7 +4,6 @@ browbeat:
results : results/ results : results/
rerun: 1 rerun: 1
cloud_name: openstack cloud_name: openstack
overcloud_credentials: /home/stack/overcloudrc
elasticsearch: elasticsearch:
enabled: false enabled: false
regather: false regather: false
@ -42,7 +41,6 @@ rally:
enabled: true enabled: true
sleep_before: 5 sleep_before: 5
sleep_after: 5 sleep_after: 5
venv: /home/stack/rally-venv
benchmarks: benchmarks:
- name: authenticate - name: authenticate
enabled: true enabled: true

View File

@ -39,7 +39,6 @@ rally:
enabled: true enabled: true
sleep_before: 5 sleep_before: 5
sleep_after: 5 sleep_after: 5
venv: /home/stack/rally-venv/bin/activate
plugins: plugins:
- workloads: rally/rally-plugins/workloads - workloads: rally/rally-plugins/workloads
benchmarks: benchmarks:

View File

@ -3,7 +3,6 @@ browbeat:
results : results/ results : results/
rerun: 1 rerun: 1
cloud_name: openstack cloud_name: openstack
overcloud_credentials: /home/stack/overcloudrc
elasticsearch: elasticsearch:
enabled: false enabled: false
regather: false regather: false
@ -40,7 +39,6 @@ rally:
enabled: true enabled: true
sleep_before: 5 sleep_before: 5
sleep_after: 5 sleep_after: 5
venv: /home/stack/rally-venv
plugins: plugins:
- validate-ceilometer: rally/rally-plugins/validate-ceilometer - validate-ceilometer: rally/rally-plugins/validate-ceilometer
- nova-ceilometer: rally/rally-plugins/nova-ceilometer - nova-ceilometer: rally/rally-plugins/nova-ceilometer

View File

@ -6,7 +6,6 @@ browbeat:
results : results/ results : results/
rerun: 1 rerun: 1
cloud_name: openstack cloud_name: openstack
overcloud_credentials: /home/stack/overcloudrc
elasticsearch: elasticsearch:
enabled: false enabled: false
regather: false regather: false
@ -43,7 +42,6 @@ rally:
enabled: true enabled: true
sleep_before: 5 sleep_before: 5
sleep_after: 5 sleep_after: 5
venv: /home/stack/rally-venv
plugins: plugins:
- nova: rally/rally-plugins/nova - nova: rally/rally-plugins/nova
benchmarks: benchmarks:

View File

@ -4,7 +4,6 @@ browbeat:
results : results/ results : results/
rerun: 1 rerun: 1
cloud_name: openstack cloud_name: openstack
overcloud_credentials: /home/stack/overcloudrc
elasticsearch: elasticsearch:
enabled: false enabled: false
host: 1.1.1.1 host: 1.1.1.1
@ -41,7 +40,6 @@ rally:
enabled: true enabled: true
sleep_before: 0 sleep_before: 0
sleep_after: 0 sleep_after: 0
venv: /home/stack/rally-venv
plugins: plugins:
- gnocchi: rally/rally-plugins/gnocchi - gnocchi: rally/rally-plugins/gnocchi
benchmarks: benchmarks:

View File

@ -8,7 +8,6 @@ browbeat:
results : results/ results : results/
rerun: 1 rerun: 1
cloud_name: openstack cloud_name: openstack
overcloud_credentials: /home/stack/overcloudrc
elasticsearch: elasticsearch:
enabled: false enabled: false
regather: false regather: false
@ -45,7 +44,6 @@ perfkit:
enabled: true enabled: true
sleep_before: 0 sleep_before: 0
sleep_after: 0 sleep_after: 0
venv: /home/stack/perfkit-venv
default: default:
image: centos7 image: centos7
machine_type: m1.small machine_type: m1.small

View File

@ -10,7 +10,6 @@ browbeat:
results : results/ results : results/
rerun: 1 rerun: 1
cloud_name: openstack cloud_name: openstack
overcloud_credentials: /home/stack/overcloudrc
elasticsearch: elasticsearch:
enabled: false enabled: false
host: 1.1.1.1 host: 1.1.1.1
@ -47,7 +46,6 @@ rally:
enabled: true enabled: true
sleep_before: 5 sleep_before: 5
sleep_after: 5 sleep_after: 5
venv: /home/stack/rally-venv
plugins: plugins:
- nova: rally/rally-plugins/nova - nova: rally/rally-plugins/nova
- neutron: rally/rally-plugins/neutron - neutron: rally/rally-plugins/neutron

View File

@ -10,7 +10,6 @@ browbeat:
results : results/ results : results/
rerun: 1 rerun: 1
cloud_name: openstack cloud_name: openstack
overcloud_credentials: /home/stack/overcloudrc
elasticsearch: elasticsearch:
enabled: false enabled: false
host: 1.1.1.1 host: 1.1.1.1
@ -47,7 +46,6 @@ rally:
enabled: true enabled: true
sleep_before: 5 sleep_before: 5
sleep_after: 5 sleep_after: 5
venv: /home/stack/rally-venv
plugins: plugins:
- nova: rally/rally-plugins/nova - nova: rally/rally-plugins/nova
- neutron: rally/rally-plugins/neutron - neutron: rally/rally-plugins/neutron

View File

@ -10,7 +10,6 @@ browbeat:
results : results/ results : results/
rerun: 1 rerun: 1
cloud_name: openstack cloud_name: openstack
overcloud_credentials: /home/stack/overcloudrc
elasticsearch: elasticsearch:
enabled: false enabled: false
host: 1.1.1.1 host: 1.1.1.1
@ -47,7 +46,6 @@ rally:
enabled: true enabled: true
sleep_before: 5 sleep_before: 5
sleep_after: 5 sleep_after: 5
venv: /home/stack/rally-venv
plugins: plugins:
- nova: rally/rally-plugins/nova - nova: rally/rally-plugins/nova
- neutron: rally/rally-plugins/neutron - neutron: rally/rally-plugins/neutron

View File

@ -10,7 +10,6 @@ browbeat:
results : results/ results : results/
rerun: 1 rerun: 1
cloud_name: openstack cloud_name: openstack
overcloud_credentials: /home/stack/overcloudrc
elasticsearch: elasticsearch:
enabled: false enabled: false
host: 1.1.1.1 host: 1.1.1.1
@ -47,7 +46,6 @@ rally:
enabled: true enabled: true
sleep_before: 5 sleep_before: 5
sleep_after: 5 sleep_after: 5
venv: /home/stack/rally-venv
plugins: plugins:
- nova: rally/rally-plugins/nova - nova: rally/rally-plugins/nova
- neutron: rally/rally-plugins/neutron - neutron: rally/rally-plugins/neutron

View File

@ -8,7 +8,6 @@ browbeat:
results : results/ results : results/
rerun: 1 rerun: 1
cloud_name: openstack cloud_name: openstack
overcloud_credentials: /home/stack/overcloudrc
elasticsearch: elasticsearch:
enabled: false enabled: false
host: 1.1.1.1 host: 1.1.1.1
@ -47,7 +46,6 @@ rally:
# Sleeps 30 minutes after each iteration to allow for system resources to degrade or # 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) # display stepped degrading (If the system is hitting saturation or high utilization)
sleep_after: 1800 sleep_after: 1800
venv: /home/stack/rally-venv
plugins: plugins:
- nova: rally/rally-plugins/nova - nova: rally/rally-plugins/nova
- neutron: rally/rally-plugins/neutron - neutron: rally/rally-plugins/neutron

View File

@ -7,7 +7,6 @@ browbeat:
results : results/ results : results/
rerun: 1 rerun: 1
cloud_name: openstack cloud_name: openstack
overcloud_credentials: /home/stack/overcloudrc
elasticsearch: elasticsearch:
enabled: false enabled: false
regather: false regather: false
@ -47,7 +46,6 @@ rally:
# Sleeps 30 minutes after each iteration to allow for system resources to degrade or # 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) # display stepped degrading (If the system is hitting saturation or high utilization)
sleep_after: 1800 sleep_after: 1800
venv: /home/stack/rally-venv
plugins: plugins:
- nova: rally/rally-plugins/nova - nova: rally/rally-plugins/nova
benchmarks: benchmarks:

View File

@ -397,9 +397,7 @@ setup Browbeat with Rally against your local quickstart cloud.
Edit your browbeat-config and validate the following: Edit your browbeat-config and validate the following:
* Correct overcloudrc referenced
* Elastic Indexing configuration * Elastic Indexing configuration
* Rally venv is set correctly
* Scenarios you want to run are setup and set to a low times/concurrency * Scenarios you want to run are setup and set to a low times/concurrency
Troubleshooting Troubleshooting

View File

@ -355,13 +355,9 @@ environment is different and thus your configuration options will vary.
[browbeat1@browbeatvm ansible]$ cd .. [browbeat1@browbeatvm ansible]$ cd ..
[browbeat1@browbeatvm browbeat]$ vi browbeat-config.yaml [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 (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. Setup network for Shaker+PerfKitBenchmarker and build Shaker image
:: ::

View File

@ -11,32 +11,20 @@ Run Overcloud checks
Your Overcloud check output is located in results/bug_report.log 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 $ ssh undercloud-root
[root@ospd ~]# su - stack [root@ospd ~]# su - stack
[stack@ospd ~]$ screen -S browbeat [stack@ospd ~]$ cd browbeat/
[stack@ospd ~]$ . browbeat-venv/bin/activate [stack@ospd browbeat]$ . .browbeat-venv/bin/activate
(browbeat-venv)[stack@ospd ~]$ cd browbeat/
(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]$ 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" (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 Running PerfKitBenchmarker
--------------------------- ---------------------------
@ -99,8 +87,6 @@ summarized below:
:join_timeout: Timeout in seconds for agents to join :join_timeout: Timeout in seconds for agents to join
:sleep_before: Time in seconds to sleep before executing a scenario :sleep_before: Time in seconds to sleep before executing a scenario
:sleep_after: Time in seconds to sleep after 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 :shaker_region: OpenStack region you want to use
:external_host: IP of a server for external tests (should have :external_host: IP of a server for external tests (should have
``browbeat/util/shaker-external.sh`` executed on it previously and have ``browbeat/util/shaker-external.sh`` executed on it previously and have

View File

@ -43,4 +43,4 @@ show-source = True
ignore = E123,E125,E226,E302,E41,E231,E203,H233,H306,H238,H236,H404,H405 ignore = E123,E125,E226,E302,E41,E231,E203,H233,H306,H238,H236,H404,H405
max-line-length = 100 max-line-length = 100
builtins = _ 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