2c1980e023
Refactoring lib/Shaker to improve compatibility with a wide range of shaker scenarios. set_scenario() method has been fixed to remove hard coded expectations on the order of accommodation list. send_to_elastic() method has also been fixed accordingly for imporved compatibility when indexing a large number of shaker scenarios. Why? The current model of overwriting the shaker scenario file with values supplied from the browbeat-config works well for a major set of shaker scenario files. However, the problem comes with how we overwrite/work with "accomodation" key in the shaker scenario. Since the value for the accomodation is a list, we need to access the list items to modify them[2]. Most scenario files sudh as [1] have 4 values in the list but some such as [3] have only 3 items, so we cannot be sure the list item we are accessing is the one we want to if we are going by list item number. How? Added two methods accommodation_to_dict() and accommodation_to_list(). accommodation_to_dict() grabs the accommodation data from shaker scenario file[1] and converts the list to a dictionary. Since it is now a dictionary we overwrite shaker scenario values for key "accommodation" by checking what keys exist in the dictionary. accommodation_to_list() converts the dictionary we created by overwrirting arguments in shaker scenario with those in browbeat scenario to a list again, so that it can be written back the shaker scenario file. Shaker eventually consumes this file which has been overwritten by the options in browbeat config. + Adding external_host parameter + Adding validation + Adding usage docs + RST Formatting [1] - https://github.com/openstack/shaker/blob/master/shaker/scenarios/openstack/dense_l3_north_south.yaml#L11 [2] - https://github.com/openstack/browbeat/blob/master/lib/Shaker.py#L201 [3] - https://github.com/openstack/shaker/blob/master/shaker/scenarios/openstack/external/dense_l3_north_south_with_fip.yaml#L11 Change-Id: Icf7208f230cbe727d525b6cb090e82c4f19d6985
50 lines
1.1 KiB
Bash
Executable File
50 lines
1.1 KiB
Bash
Executable File
#!/bin/bash
|
|
# Run as root to setup a shaker-server to run external network tests with
|
|
yum install -y epel-release
|
|
yum install -y wget iperf iperf3 gcc gcc-c++ python-devel screen zeromq zeromq-devel
|
|
wget ftp://ftp.netperf.org/netperf/netperf-2.7.0.tar.gz
|
|
tar xvzf netperf-2.7.0.tar.gz
|
|
pushd netperf-2.7.0
|
|
./configure --enable-demo=yes
|
|
make
|
|
make install
|
|
popd
|
|
easy_install pip
|
|
pip install pbr flent pyshaker-agent
|
|
cat<<'EOF' >> /etc/systemd/system/iperf.service
|
|
[Unit]
|
|
Description=iperf Service
|
|
After=network.target
|
|
[Service]
|
|
Type=simple
|
|
ExecStart=/usr/bin/iperf -s
|
|
[Install]
|
|
WantedBy=multi-user.target
|
|
EOF
|
|
cat<<'EOF' >> /etc/systemd/system/iperf3.service
|
|
[Unit]
|
|
Description=iperf3 Service
|
|
After=network.target
|
|
[Service]
|
|
Type=simple
|
|
ExecStart=/usr/bin/iperf3 -s
|
|
[Install]
|
|
WantedBy=multi-user.target
|
|
EOF
|
|
cat<<'EOF' >> /etc/systemd/system/netperf.service
|
|
[Unit]
|
|
Description="Netperf netserver daemon"
|
|
After=network.target
|
|
[Service]
|
|
ExecStart=/usr/local/bin/netserver -D
|
|
[Install]
|
|
WantedBy=multi-user.target
|
|
EOF
|
|
systemctl start iperf
|
|
systemctl enable iperf
|
|
systemctl start iperf3
|
|
systemctl enable iperf3
|
|
systemctl start netperf
|
|
systemctl enable netperf
|
|
|