summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--config/QtipKey27
-rw-r--r--config/QtipKey.pub1
-rwxr-xr-xdocker/run_qtip.sh9
-rw-r--r--docs/configguide/configuration.rst60
-rw-r--r--docs/userguide/introduction.rst72
-rw-r--r--func/args_handler.py10
-rw-r--r--func/env_setup.py6
-rw-r--r--qtip.py2
-rw-r--r--scripts/cleanup_creds.sh14
-rwxr-xr-xscripts/file_permission.sh3
10 files changed, 91 insertions, 113 deletions
diff --git a/config/QtipKey b/config/QtipKey
deleted file mode 100644
index 3f520775..00000000
--- a/config/QtipKey
+++ /dev/null
@@ -1,27 +0,0 @@
------BEGIN RSA PRIVATE KEY-----
-MIIEpAIBAAKCAQEAxVpAC+Q8LTyftATCgVHIKvDkXYzHI/8CZeKlVWHlHUA0/6Eu
-qSrhzbpOwSaQi2C3x4Eszvh7/CfuVMql11yShsXwFD7aV6x0YG7q8IUScHILUFal
-m0Fx52No7IpB3llluUV+kh8ay68V9OGvMZrQ+wWw4ieh2alUnpvFwteXmb8NQtXW
-6pm2algUVixc4R3//YKLnGkj93pGFlQlDz5Q0vg+69jHNgodGewIrxCWeZk2pnn0
-vNAdWTQUTm7z/1uYz6AIeR/Wx66msmchFRmmDpP7aHXSSQEBySF7v/GEsZ1JwtBW
-07WebNiTv9wYoOfyKVuZuTbBwjqlT4x5CpIJEwIDAQABAoIBAFHcDZThJtTcwKG7
-F7LsaUrmgNMNAc08iZIZYNr5sD9h0pn2EZS55M+g5+nWRT6K77AhNKTlDQiax5EE
-PaYHEAA3Ok4rhAW50svtNiZuDCf4Jhk815R+oPCJm4wCDTBdhIRE/ys9G7BA/6qD
-slexD94Pjj9AkTHnuuHPW0hmhMuQaSg96EO6QUWCG/HeMFDGcorBlM0s+NeR46Jm
-dI8tOvt+rSa68oDtKEwhUbP5cATNdAITzo9+4We5EnYhW9/nRsaF/um2BPih6JnU
-zG9udvZwj+YARmEfxhXzeRDpi30qYil/+CUF+qdyd8eoPBvhsW6rr1TA6XYGmPDN
-SnlPLAECgYEA6RtgGqL34orxiqT3tDkA2Lb4aSq9Zntr09VAqwft4I3550XihHsa
-lqJoy2macX36f60oRDZEL3v4cH22zyjojav4MXe2fLlCiApy45xCzsGkWizxTe5D
-184jUIcRxb/sGbOulbXBdu8lmtNiyslvkAoj75bvL2MXhytbYgikhrMCgYEA2Lv1
-9Os+VXT9py/67dO/GY14NUpT1sFq2zxPYWpKxJD+j/NVZsflpPd/V5cGANZGovA0
-c8WNupJmCO1P20uldRX5dJ3EhhER2kn0yKhZuBBxmrELQZdnXGc9T8ub0xJVbo2u
-K3Km3C1Dx7Us4BwzGOO6K2kYbT1ij/vAbZWmpCECgYBdkhqStqYwbrukfrHbyyH2
-3AN9G6XpdFOFNc3+mXE4OWV+G4Rgz5WNr+XG+T4AnqQmChjmwK3ALdA9P4lZQL+Q
-1t4K5VYAXNFDEIarrPb4Tayucenu8VyUTO/KDF3q9i5M5t6Gw+3D0x1SN9YpNpCs
-zhU8wGaErA8uuA23nWaFlwKBgQDXSf6MB5GnucqtZI/R5uCRNWIPLYISdZb7p/EC
-R1912sHDpGdU7YREVkV8cFxaQH9yI0E3LyoWBo6sl28X2xDEOcvN91ncAuDFAWnS
-WMimek8e5nbT9N2LgFH7Dbn/9NpAMySrq/vsAlqt6l5lUB3Bv5SSwpatDKj3dZA0
-Ss95gQKBgQCvwxW4PSd+hxdofwGd6KBwhA404GPdcVLLmASGVYRNcVNyfhUmMCn+
-UF1WsBCOcnWjJ/pT864S9Rp1bbqzpQS8Pz1vJwhkaHEJD0a5l+KhD4llsWDjUNfI
-KfVffcmydNC3uRD59WPZEAgu+gOS8kRw7lybFTNuMS7B3dC5v9UtWg==
------END RSA PRIVATE KEY-----
diff --git a/config/QtipKey.pub b/config/QtipKey.pub
deleted file mode 100644
index 7a40f91c..00000000
--- a/config/QtipKey.pub
+++ /dev/null
@@ -1 +0,0 @@
-ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQDFWkAL5DwtPJ+0BMKBUcgq8ORdjMcj/wJl4qVVYeUdQDT/oS6pKuHNuk7BJpCLYLfHgSzO+Hv8J+5UyqXXXJKGxfAUPtpXrHRgburwhRJwcgtQVqWbQXHnY2jsikHeWWW5RX6SHxrLrxX04a8xmtD7BbDiJ6HZqVSem8XC15eZvw1C1dbqmbZqWBRWLFzhHf/9goucaSP3ekYWVCUPPlDS+D7r2Mc2Ch0Z7AivEJZ5mTamefS80B1ZNBRObvP/W5jPoAh5H9bHrqayZyEVGaYOk/toddJJAQHJIXu/8YSxnUnC0FbTtZ5s2JO/3Big5/IpW5m5NsHCOqVPjHkKkgkT root@foreman-jump.opnfv.com
diff --git a/docker/run_qtip.sh b/docker/run_qtip.sh
index 62f97c88..a7a20501 100755
--- a/docker/run_qtip.sh
+++ b/docker/run_qtip.sh
@@ -1,4 +1,5 @@
#! /bin/bash
+
run_test_suite()
{
if [ "$TEST_CASE" == "compute" ]; then
@@ -21,8 +22,16 @@ run_test_suite()
fi
}
+rm -f ${QTIP_DIR}/config/QtipKey*
+
+echo "Generating ssh keypair"
+ssh-keygen -t rsa -N "" -f ${QTIP_DIR}/config/QtipKey -q
+
source ${QTIP_DIR}/docker/prepare_qtip_image.sh
run_test_suite
source ${QTIP_DIR}/docker/cleanup_qtip_image.sh
+
+echo "Remove ssh keypair"
+rm -f ${QTIP_DIR}/config/QtipKey*
diff --git a/docs/configguide/configuration.rst b/docs/configguide/configuration.rst
index e5228541..d6d2fd5d 100644
--- a/docs/configguide/configuration.rst
+++ b/docs/configguide/configuration.rst
@@ -7,39 +7,14 @@
Configuration
*************
-QTIP currently supports by using a Docker image or by pulling the repo from
-the upstream repository found at https://git.opnfv.org/qtip. Detailed steps
-about setting up QTIP using both of these options can be found below.
+QTIP currently supports by using a Docker image. Detailed steps
+about setting up QTIP can be found below.
To use QTIP you should have access to an OpenStack environment, with at least
Nova, Neutron, Glance, Keystone and Heat installed. Add a brief introduction
to configure OPNFV with this specific installer
-Pre-configuration activities
-----------------------------
-
-
-Setting QTIP framework on Ubuntu 14.04
-^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
-
-Install dependencies:
-::
-
- sudo apt-get install python-dev
- sudo apt-get install python-pip
- sudo apt-get install build-essential
- sudo apt-get install git wget
- sudo pip install python-heatclient python-glanceclient python-neutronclient
-
-
-Download source code and install python dependencies:
-::
-
- git clone https://git.opnfv.org/qtip
- cd qtip
-
-
Installing QTIP using Docker
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
@@ -47,18 +22,25 @@ QTIP has a Docker images on the docker hub. Pulling opnfv/qtip docker image
from docker hub:
::
- sudo docker pull opnfv/qtip
+ docker pull opnfv/qtip
Verify that opnfv/qtip has been downloaded. It should be listed as an image by
running the following command.
::
- sudo docker images
+ docker images
-Run the Docker instance:
+Make dir to store the QTIP image which will be used to create vm in cloud.
::
- docker run -it opnfv/qtip /bin/bash
+ mkdir $HOME/imgstore
+
+Run and enter the Docker instance:
+::
+ envs="INSTALLER_TYPE={INSTALLER_TYPE} -e INSTALLER_IP={INSTALLER_IP}
+-e NODE_NAME={NODE_NAME}"
+ docker run --name qtip -id -e $envs -v "$HOME/imgstore:/home/opnfv/imgstore" opnfv/qtip
+ docker exec -i -t qtip /bin/bash
Now you are in the container and QTIP can be found in the /repos/qtip and can
be navigated to using the following command.
@@ -79,22 +61,22 @@ from the OpenStack *openrc* file. This can be done by running the following
command.
::
- source get_env_info.sh -n {INSTALLER_TYPE} -i {INSTALLER_IP}
+ source scripts/get_env_info.sh -n {INSTALLER_TYPE} -i {INSTALLER_IP}
source opnfv-creds.sh
This provides a ``opnfv-creds.sh`` file which can be sources to get the
-environment variables. For running QTIP manually, it is also necessary to
-export the installer type.
-::
-
- export INSTALLER_TYPE="{installer-type}"
+environment variables.
QTIP default key pair
""""""""""""""""""""""
-QTIP uses a SSH key pair to connect to the guest image. This key pair can
-be found in the ``config/`` directory.
+QTIP uses a SSH key pair to connect to the guest image. You should generate key pair
+before running QTIP test. And put key pair in the ``config/`` directory.
+::
+
+ ssh-keygen -t rsa -N "" -f config/QtipKey -q
+
Hardware configuration
diff --git a/docs/userguide/introduction.rst b/docs/userguide/introduction.rst
index 7a202a45..4876d0e2 100644
--- a/docs/userguide/introduction.rst
+++ b/docs/userguide/introduction.rst
@@ -9,16 +9,16 @@ Introduction
************
This guide will serve as a first step to familiarize the user with how to
-run QTIP the first time when the user clones QTIP on to their host machine.
-In order to clone QTIP please follow the instructions in the
-installation.rst located in docs/userguide/installation.rst.
+run QTIP the first time when the user pull QTIP image on to their host machine.
+In order to install and config QTIP please follow the instructions in the
+configuration.rst located in docs/configguide/configuration.rst.
QTIP Directory structure:
-------------------------
The QTIP directory has been sectioned off into multiple folders to facilitate
segmenting information into relevant categories. The folders that concern
- the end user are `test_cases/` and `test_list/`.
+ the end user are `test_cases/` and `benchmarks/suite/`.
**test_cases/:**
@@ -58,7 +58,7 @@ distinguishes between a test to be run on the Virtual Machine or the compute
node itself, respectively.
-**test_list/:**
+**benchmarks/suite/:**
This folder contains three files, namely `compute`, `network` and `storage`.
These files list the benchmarks are to be run by the QTIP framework. Sample
@@ -132,11 +132,13 @@ The `Context` tag helps the user list the number of compute nodes they want
to run dhrystone on. The user can list all the compute nodes under the
`Host_Machines` tag. All the machines under test must be listed under the
`Host_Machines` and naming it incrementally higher. The `ip:` tag is used
- to specify the IP of the particular compute node. The `pw:` tag can be left
- blank because QTIP uses its own key for ssh. In order to run dhrystone on
- one compute node at a time the user needs to edit the `role:` tag. `role:
- host` for machine_1 and `role: server` for machine_2 will allow for
- dhrystone to be run on machine_1 and then run on machine_2.
+ to specify the IP of the particular compute node.The `ip:` tag can be left
+ blank when installer type is 'fuel',because QTIP will get ip
+ from installer. The `pw:` tag can be left blank because QTIP uses its own
+ key for ssh. In order to run dhrystone on one compute node at a time the user
+ needs to edit the `role:` tag. `role: host` for machine_1 and `role: server`
+ for machine_2 will allow for dhrystone to be run on machine_1 and then run
+ on machine_2.
::
@@ -312,71 +314,67 @@ Sample dhrystone_vm.yaml file:
Commands to run the Framework:
------------------------------
-In order to start QTIP on the default lab please use the following commands (asssuming you have prepared the config files in the test_cases/default/ directory and listed the intended suite in the test_list/<RELEVANT-SUITE-FILE>):
+In order to start QTIP on the default lab please use the following commands (asssuming your installer
+is 'fuel' or 'compass', you use the config files in the test_cases/default/ directory and listed the
+intended suite in the benchmarks/suite/<RELEVANT-SUITE-FILE>):
-First step is to export the necessary information to the environment.
-::
-
- source get_env_info.sh -n <INSTALLER_TYPE> -i <INSTALLER_IP>
-
-for running qtip on an openstack deployed using FUEL with the Installer IP 10.20.0.2
-::
-
- source get_env_info.sh -n fuel -i 10.20.0.2
+First step is to export the necessary information to the environment and generate QTIP key pair.
+Please follow the instructions in the configuration.rst.
-This will generate the `opnfv-creds.sh` file needed to use the python clients for keystone, glance, nova, and neutron.
+Secondary step download the QTIP image and upload it to the Cloud.QTIP will use this image
+to create VM when test VM performance.
::
- source opnfv-creds.sh
+ source docker/prepare_qtip_image.sh
-Running QTIP on the using `default` as the pod name and for the `compute` suite by cli
+Running QTIP on the using `default` as the pod name and for the `compute` suite by cli.
::
python qtip.py -l default -f compute
-Running QTIP on the using 'default' as the pod name and for the 'compute' suite 'bm' type by restful api
+Running QTIP on the using 'default' as the pod name and for the 'compute' suite 'bm' type by restful api.
::
- curl --trace-ascii debug.txt -X POST -d '{ "installer_ip": "10.20.6.2","installer_type":"fuel", "suite_name":"compute", "type": "BM"}' -H "Content-Type: application/json" http://qtip_server_ip:5000/api/v1.0/jobs
+ curl --trace-ascii debug.txt -X POST -d '{ "installer_ip": "10.20.6.2","installer_type":"fuel", "suite_name":"compute", "type": "BM"}' -H "Content-Type: application/json" http://127.0.0.1:5000/api/v1.0/jobs
-Running QTIP on the using 'default' as the pod name and for the 'compute' suite 'vm' type by restful api
+Running QTIP on the using 'default' as the pod name and for the 'compute' suite 'vm' type by restful api.
::
- curl --trace-ascii debug.txt -X POST -d '{ "installer_ip": "10.20.6.2","installer_type":"fuel", "suite_name":"compute", "type": "VM"}' -H "Content-Type: application/json" http://qtip_server_ip:5000/api/v1.0/jobs
+ curl --trace-ascii debug.txt -X POST -d '{ "installer_ip": "10.20.6.2","installer_type":"fuel", "suite_name":"compute", "type": "VM"}' -H "Content-Type: application/json" http://127.0.0.1:5000/api/v1.0/jobs
-Running QTIP on the using `default` as the pod name and for the `network` suite by cli
+Running QTIP on the using `default` as the pod name and for the `network` suite by cli.
::
python qtip.py -l default -f network
-Running QTIP on the using 'default' as the pod name and for the 'network' suite 'bm' type by restful api
+Running QTIP on the using 'default' as the pod name and for the 'network' suite 'bm' type by restful api.
::
- curl --trace-ascii debug.txt -X POST -d '{ "installer_ip": "10.20.6.2","installer_type":"fuel", "suite_name":"network", "type": "BM"}' -H "Content-Type: application/json" http://qtip_server_ip:5000/api/v1.0/jobs
+ curl --trace-ascii debug.txt -X POST -d '{ "installer_ip": "10.20.6.2","installer_type":"fuel", "suite_name":"network", "type": "BM"}' -H "Content-Type: application/json" http://127.0.0.1:5000/api/v1.0/jobs
-Running QTIP on the using `default` as the pod name and for the `storage` suite by cli
+Running QTIP on the using `default` as the pod name and for the `storage` suite by cli.
::
python qtip.py -l default -f network
-Running QTIP on the using 'default' as the pod name and for the 'storage' suite 'bm' type by restful api
+Running QTIP on the using 'default' as the pod name and for the 'storage' suite 'bm' type by restful api.
::
- curl --trace-ascii debug.txt -X POST -d '{ "installer_ip": "10.20.6.2","installer_type":"fuel", "suite_name":"storage", "type": "BM"}' -H "Content-Type: application/json" http://qtip_server_ip:5000/api/v1.0/jobs
+ curl --trace-ascii debug.txt -X POST -d '{ "installer_ip": "10.20.6.2","installer_type":"fuel", "suite_name":"storage", "type": "BM"}' -H "Content-Type: application/json" http://127.0.0.1:5000/api/v1.0/jobs
Get running QTIP job status by restful api
::
- curl --trace-ascii debug.txt -X GET http://qtip_server_ip:5000/api/v1.0/jobs/job-id
+ curl --trace-ascii debug.txt -X GET http://127.0.0.1:5000/api/v1.0/jobs/job-id
For example:
- curl --trace-ascii debug.txt -X GET http://172.37.0.3:5000/api/v1.0/jobs/5b71f035-3fd6-425c-9cc7-86acd3a04214
+ curl --trace-ascii debug.txt -X GET http://127.0.0.1:5000/api/v1.0/jobs/5b71f035-3fd6-425c-9cc7-86acd3a04214
Stop running QTIP job by restful api.The job will finish the current benchmark test and stop.
::
- curl --trace-ascii debug.txt -X DELTET http://qtip_server_ip:5000/api/v1.0/jobs/job-id
+ curl --trace-ascii debug.txt -X DELTET http://127.0.0.1:5000/api/v1.0/jobs/job-id
For example:
- curl --trace-ascii debug.txt -X DELETE http://172.37.0.3:5000/api/v1.0/jobs/5b71f035-3fd6-425c-9cc7-86acd3a04214q
+ curl --trace-ascii debug.txt -X DELETE http://127.0.0.1:5000/api/v1.0/jobs/5b71f035-3fd6-425c-9cc7-86acd3a04214q
Results:
--------
diff --git a/func/args_handler.py b/func/args_handler.py
index 2f7c8957..624f90c4 100644
--- a/func/args_handler.py
+++ b/func/args_handler.py
@@ -59,10 +59,12 @@ def prepare_ansible_env(benchmark_test_case):
def run_benchmark(installer_type, pwd, benchmark, benchmark_details,
proxy_info, env_setup, benchmark_test_case):
driver = Driver()
- return driver.drive_bench(installer_type, pwd, benchmark,
- env_setup.roles_dict.items(),
- _get_f_name(benchmark_test_case),
- benchmark_details, env_setup.ip_pw_dict.items(), proxy_info)
+ result = driver.drive_bench(installer_type, pwd, benchmark,
+ env_setup.roles_dict.items(),
+ _get_f_name(benchmark_test_case),
+ benchmark_details, env_setup.ip_pw_dict.items(), proxy_info)
+ env_setup.cleanup_authorized_keys()
+ return result
def prepare_and_run_benchmark(installer_type, pwd, benchmark_test_case):
diff --git a/func/env_setup.py b/func/env_setup.py
index 9e21a5b6..6027f904 100644
--- a/func/env_setup.py
+++ b/func/env_setup.py
@@ -208,3 +208,9 @@ class Env_setup:
def call_ssh_test(self):
self.ssh_test(self.ip_pw_list)
+
+ def cleanup_authorized_keys(self):
+ for ip, pw in self.ip_pw_list:
+ cmd = './scripts/cleanup_creds.sh %s' % ip
+ logger.info("cleanup authorized_keys: %s " % cmd)
+ os.system(cmd)
diff --git a/qtip.py b/qtip.py
index 493f014e..ea64b933 100644
--- a/qtip.py
+++ b/qtip.py
@@ -7,11 +7,9 @@
# http://www.apache.org/licenses/LICENSE-2.0
##############################################################################
from func.cli import Cli
-import os
def main():
- os.system('./scripts/file_permission.sh')
Cli()
diff --git a/scripts/cleanup_creds.sh b/scripts/cleanup_creds.sh
new file mode 100644
index 00000000..9bf44305
--- /dev/null
+++ b/scripts/cleanup_creds.sh
@@ -0,0 +1,14 @@
+#! /bin/bash
+
+DEST_IP=$1
+HOSTNAME=$(hostname)
+sshoptions="-o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null"
+
+case "$INSTALLER_TYPE" in
+ fuel)
+ ssh $sshoptions -i ./config/QtipKey root@$DEST_IP "sed -i '/root@$HOSTNAME/d' /root/.ssh/authorized_keys"
+ ;;
+esac
+
+
+
diff --git a/scripts/file_permission.sh b/scripts/file_permission.sh
deleted file mode 100755
index a8af957e..00000000
--- a/scripts/file_permission.sh
+++ /dev/null
@@ -1,3 +0,0 @@
-#! /bin/bash
-chmod 0600 config/QtipKey
-chmod 0600 config/QtipKey.pub