aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
2017-01-12Add support for Python 3Ross Brattain204-778/+1402
Porting to Python3 using Openstack guidelines: https://wiki.openstack.org/wiki/Python3 This passes unittests on Python 3.5 and passes opnfv_smoke suite Updates: use six for urlparse and urlopen fix exception.message attribute removal run unittests on python3 use unitest.mock on python 3 fix open mock for vsperf fix float division by using delta/eplison comparison use unicode in StringIO use plugin/sample_config.yaml relative path from test case fixed apexlake unittests upgraded to mock 2.0.0 to match python3 unittest.mock features fixed flake8 issues implement safe JSON decode with oslo_serialization.jsonutils.dump_as_bytes() implement safe unicode encode/decode with oslo_utils.encodeutils heat: convert pub key file from bytes to unicode pkg_resources returns raw bytes, in python3 we have to decode this to utf-8 unicode so JSON can encode it for heat template JIRA: YARDSTICK-452 Change-Id: Ib80dd1d0c0eb0592acd832b82f6a7f8f7c20bfda Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
2017-01-12heat: fix key_uuid formatRoss Brattain3-8/+42
The .format() won't work, since it can't slice the uuid We have to convert the uuid to string before we slice it. I thought .format() would implicitly call __str__() before applying width, but that is not the case. 'files/yardstick_key-{:.{width}}'.format(self.key_uuid, width=8)) We also need to define a constant short uuid lenght, we can't hardcode the length to 8 everywhere. Create a helper function to standardize the generation of the short key uuid and use that helper function everywhere Change-Id: I59e051bfe697587e967f93f5b8f209e0e7daa5c7 Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
2017-01-11Merge "Create API to run test suite"Rex Lee7-1/+142
2017-01-11Merge "associate an uuid to yardstick_key and yardstick_key.pub"Rex Lee3-11/+31
2017-01-10Create API to run test suiteJingLu57-1/+142
JIRA: YARDSTICK-475 This API will be used to run test suite files in the test/opnfv/test_suites directory Change-Id: I208edf9abed62fd6436de988ac85bfe99c4d01bd Signed-off-by: JingLu5 <lvjing5@huawei.com>
2017-01-10associate an uuid to yardstick_key and yardstick_key.pubJingLu53-11/+31
JIRA: YARDSTICK-527 This work is to support yardstick parallel tasks in the future. Currently, the RSA key we generated and used to access the VM is named 'yardstick_key'. If more than two tasks are running paralleled, the later 'yardstick_key' will cover the former. We want associate an uuid to identify differnets for each tasks. So the key files won't conflict. The first 8 digits will be used, as there is no need to used a full-length uuid. Change-Id: If8eaf47ae527cf9b3bd50f37ab3051fbdccf5f03 Signed-off-by: JingLu5 <lvjing5@huawei.com>
2017-01-10Merge "Yardstick framework concurrent support"Jing Lu1-1/+28
2017-01-10Merge "Add API to get the status of async task"Jing Lu14-46/+287
2017-01-10Add API to get the status of async taskchenjiankun14-46/+287
JIRA: YARDSTICK-526 Currently there are many API run a task using sub thread. But we don't know the status of this task. So we need to offer a API to query the status of this task. Change-Id: I8d2cc558750bf9270aed4a7abb8bf35d17894d83 Signed-off-by: chenjiankun <chenjiankun1@huawei.com>
2017-01-10Merge "Record test case names when run a task using API"Rex Lee7-66/+85
2017-01-10Merge "subprocess.call para stdout=PIPE is risky"Rex Lee2-131/+135
2017-01-09Yardstick framework concurrent supportchenjiankun1-1/+28
JIRA: YARDSTICK-528 Currently yardstick framework can not support run the same test case at the same time. But actually we need to support it. The reason why framework can't support it is that openstack do not allow to create stack with the same name. So I use the task_id to make the stack different. Change-Id: I9e853793650066dfc56606464f7826f330a1401c Signed-off-by: chenjiankun <chenjiankun1@huawei.com>
2016-12-30Split Yardstick CLI with Yardstick core logicchenjiankun20-825/+1043
JIRA: YARDSTICK-511 We need to unify yardstick entry. Now the solution is using CLI call API as nova do. This is the first step: coupling the yardstick core logic from CLI. Moving the core logic to yardstick/benchmark/core and the CLI using a object to call yardstick core logic. Change-Id: I84f10d2134635880c281cc63212a8533f2dd7d4e Signed-off-by: chenjiankun <chenjiankun1@huawei.com>
2016-12-30Merge "Yardstick Plugin: add support for ssh login using key"Jing Lu2-25/+52
2016-12-30Merge "BugFix: correct Copyright info in openstack_utils.py"Jing Lu1-1/+0
2016-12-30Merge "Create ping_load sample configuration yaml file"Rex Lee1-0/+65
2016-12-29Merge "Fix installation dependency and authentication issue for fuel plugin"Jing Lu2-2/+5
2016-12-28Record test case names when run a task using APIchenjiankun7-66/+85
JIRA: YARDSTICK-509 Currently we use influxdb as database and will not record test case name when run a test case. So if we must offer test case name if we want to get result from API. Regarding future requirement, I create sqlite database and alchemy orm framework. And record test case name when run a test case. So we needn't offer test case any more when call for get result API. Change-Id: I7d7dc24543a33918546267591f7bdcd0742928cb Signed-off-by: chenjiankun <chenjiankun1@huawei.com>
2016-12-28Yardstick Plugin: add support for ssh login using keyJingLu52-25/+52
JIRA: YARDSTICK-442 Change-Id: I4736e8cb8331d7a74c8c9946e21edd791b0c8ba9 Signed-off-by: JingLu5 <lvjing5@huawei.com>
2016-12-28Merge "enhance test cases description and provide more info(in progress)"Jing Lu11-269/+738
2016-12-28Merge "Use ConfigParser to write yardstick.conf"Jing Lu4-38/+42
2016-12-27Fix installation dependency and authentication issue for fuel pluginEdwin Zhai2-2/+5
JIRA: YARDSTICK-516 Change-Id: I348959c2ea3b6ed586f487cde88a173eb593be4f Signed-off-by: Edwin Zhai <edwin.zhai@intel.com>
2016-12-27Create ping_load sample configuration yaml fileJingLu51-0/+65
JIRA: YARDSTICK-514 The ping_load task uses multiple(3 in this case) host VMs to ping one target VM in parallel. The multiple hosts configuration will be rendered using jinja syntax. "contexts" is used to specify the target and muiltip host VMs. Change-Id: I3e36b86d16d0386b4d446a2e252a094926cd97a3 Signed-off-by: JingLu5 <lvjing5@huawei.com>
2016-12-27BugFix: correct Copyright info in openstack_utils.pyJingLu51-1/+0
JIRA:YARDSTICK-513 the copyright info in openstack_utils.py is not accurate. (yardstick: this file is copied from rally and slightly modified) this line should be deleted. Change-Id: I6cf8205ee6b142ae87b268829e5ac7454239dd0d Signed-off-by: JingLu5 <lvjing5@huawei.com>
2016-12-26Use ConfigParser to write yardstick.confchenjiankun4-38/+42
JIRA: YARDSTICK-474 Currently, I use file.write() method to write config in yardstick.conf. But it is not recommended. So I change to use ConfigParser to write config in yardstick.conf Change-Id: Ia789cf09296afd5d1507bcf99f165378bf87c591 Signed-off-by: chenjiankun <chenjiankun1@huawei.com>
2016-12-24Add sqlite and SQLAlchemy support for APIchenjiankun4-0/+64
JIRA: YARDSTICK-505 Now yardstick API need a database to store API data. And for future the yardstick GUI also need a self database. So I choose a light-weight database sqlite. And use SQLAlchemy to do ORM. Change-Id: I1edc350ec6f57ad67785de549c2135c86ea60a4a Signed-off-by: chenjiankun <chenjiankun1@huawei.com>
2016-12-24Merge "Bugfix: the load_image.sh script will load a image with the same name"Jing Lu4-2/+19
2016-12-24Merge "Move uwsgi.log and yardstick.sock to proper location"Jing Lu3-3/+9
2016-12-22Bugfix: the load_image.sh script will load a image with the same namechenjiankun4-2/+19
JIRA: YARDSTICK-471 Currently, if we execute the load_image.sh and the openstack already have this image in the cloud,this script will load another image with the same name. This will make yardstick run error. So I clean this related images before loading. Change-Id: If5b985ef9b2e890aa10453810fac36867d320a06 Signed-off-by: chenjiankun <chenjiankun1@huawei.com>
2016-12-22Yardstick API refactorchenjiankun8-46/+72
JIRA: YARDSTICK-503 Now in api/views.py there are many redundant code. So I do some refactoring and make it to be a lightweight framework. Change-Id: Id7cecc95e60f5403b2d26239a3ef41d01bbb542a Signed-off-by: chenjiankun <chenjiankun1@huawei.com>
2016-12-22Merge "ssh: don't quote ~ in remotepaths"Jing Lu2-11/+41
2016-12-22Merge "Add smoke, components, features and performance test suite for Yatdstick"Rex Lee4-0/+144
2016-12-22Merge "Replace heat, keystone and nova command with openstack command"Rex Lee3-29/+32
2016-12-22Merge "Use openstack command instead keystone command in ↵Jing Lu2-2/+14
prepare_storperf_admin-rc.sh"
2016-12-21Move uwsgi.log and yardstick.sock to proper locationchenjiankun3-3/+9
JIRA: YARDSTICK-504 Now yardstick.sock and uwsgi.log is in yardstick/api directory. But it is not standard for they should not be put in the code path. So I move yardstick.sock to /var/run/yardstick.sock and move uwsgi.log to /var/log/yardstick/uwsgi.log Change-Id: I526ab011c0222255dfbae037f494edb5d8a88add Signed-off-by: chenjiankun <chenjiankun1@huawei.com>
2016-12-21restore the yardstick-img-modify cleanup() funcRyan.RCS1-3/+5
There is a result failed again after last update. So i restore the clean() function to its original codes and avoid CI failed. But i'm not sure something about the clean() function, and I will check this failed clearly in future. Change-Id: I8f49533788c7ccb2016e7a484368a72028579fa8 JIRA: YARDSTICK-502 Signed-off-by: Ryan.RCS <lihainong@huawei.com>
2016-12-20ssh: don't quote ~ in remotepathsRoss Brattain2-11/+41
~ is not expanded in double quotes, so we have a dilemma. We need to quote in order to preserve filenames with spaces, but we have to make sure we don't quote the ~ so it can be expanded. To resolve this we use a regex to search for tidle-prefixes and excluded them from quotes. Added unittests for the cases: path with tilde path with space path with tilde and space see bash man page for details of tidle expansion Tilde Expansion If a word begins with an unquoted tilde character (`~'), all of the characters preceding the first unquoted slash (or all characters, if there is no unquoted slash) are considered a tilde-prefix. If none of the characters in the tilde-prefix are quoted, the characters in the tilde-prefix following the tilde are treated as a possible login name. If this login name is the null string, the tilde is replaced with the value of the shell parameter HOME. If HOME is unset, the home directory of the user executing the shell is substituted instead. Otherwise, the tilde-prefix is replaced with the home directory associated with the specified login name. JIRA: YARDSTICK-501 Change-Id: I324be20aba0dbd50434fbd8081685c598ebd8a84 Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
2016-12-21Merge "fixed issue in yardstick-img-modify cleanup() fun"Jing Lu1-1/+5
2016-12-21fixed issue in yardstick-img-modify cleanup() funRyan.RCS1-1/+5
1. when run yardstick-img-modify script, sometimes it show below error. + '[' -f /tmp/workspace/yardstick/yardstick-xenial-server.raw ']' + kpartx -dv /tmp/workspace/yardstick/yardstick-xenial-server.raw ioctl: LOOP_CLR_FD: No such device or address del devmap : loop0p1 can't del loop : /dev/loop0 + test 1 -eq 1 -o 1 -eq 2 2. so i added a expression to check if the .raw file map deleted or not 3. if the devmap not deleted, then we delete it, otherwise, we do nothing JIRA: YARDSTICK-502 Change-Id: Ia050121ed6bf837bab05e38f2e9e9628ca31627a Signed-off-by: Ryan.RCS <lihainong@huawei.com>
2016-12-21subprocess.call para stdout=PIPE is riskyRyan.RCS2-131/+135
1.In 'def run' function of parser.py file, subprocess.call parameter stdout= subprocess.PIPE is risky, so I changed the function from 'call' to 'popen' 2.updated sample/tosca.ymal because the version of that file is old. JIRA: YARDSTICK-473 Change-Id: Ie242e77eed6fdc2849394a3f170e40a0dd2be632 Signed-off-by: Ryan.RCS <lihainong@huawei.com>
2016-12-20Replace heat, keystone and nova command with openstack commandJingLu53-29/+32
JIRA: YARDSTICK-486 In future Openstack release, 'heat', 'keystone', 'nova' command will be deprecated. So we need to use 'openstack' command instead. Change-Id: I7070f8aaf0d235705b65e0760c845f843ad79719 Signed-off-by: JingLu5 <lvjing5@huawei.com>
2016-12-20BugFix: remotepath cannot be foundJingLu52-4/+4
JIRA: YARDSTICK-501 An redundant pair of quotation in ssh.py causes remotepath cannot be found. Change-Id: I2df8ab59830fd28d8ad8882a93a8efbd4d1f7cb7 Signed-off-by: JingLu5 <lvjing5@huawei.com>
2016-12-20Merge "change m1.* flavor to "yardstick-flavor""Rex Lee19-20/+20
2016-12-19Merge "Update Yardstick README file"Rex Lee1-51/+19
2016-12-19change m1.* flavor to "yardstick-flavor"JingLu519-20/+20
JIRA: YARDSTICK-485 In OpenStack Newton, the 'm1.tiny', 'm1.small', 'm1.medium' and 'm1.large' will not be automatic created. This may cause errors as some Yardstick testcases are using one of these flavor. Therefore, it's better change all the flavor option in task configuration file to 'yardstick-flavor'. Change-Id: Ibb29a77ef331bbf728dec9894a2e9f17c19d5ebd Signed-off-by: JingLu5 <lvjing5@huawei.com>
2016-12-16Use openstack command instead keystone command in prepare_storperf_admin-rc.shJingLu52-2/+14
JIRA: YARDSTICK-476 In Openstack Newton, the ”tenant“ is deprecated and "project" is used. The prepare_storperf_admin-rc.sh uses keystone command to get "tenant id". So for newton, we need to use openstack command to get "project id". This patch also add a copy right header in tests/ci/scp_storperf_admin-rc.sh. Change-Id: Ic69cb07f684ccb557866a4141e9d2724fc054f29 Signed-off-by: JingLu5 <lvjing5@huawei.com>
2016-12-16Add smoke, components, features and performance test suite for YatdstickJingLu54-0/+144
JIRA: YARDSTICK-417 This patch adds a smoke test suite for Yardstick. The smoke test suite consists of 3 test cases: TC002 Ping, TC005 Fio, TC012 LMbench. 3 test suites for components, features and performance tiers are also provided. Change-Id: Ic5223c1401270d126aabb4bf062e40da9464e18f Signed-off-by: JingLu5 <lvjing5@huawei.com>
2016-12-15Merge "Add support for OpenSrack Newton"Rex Lee3-23/+146
2016-12-15Merge "Bugfixed:run command: "yardstick-img-modify" fail!"Rex Lee1-1/+1
2016-12-15Update Yardstick README fileJingLu51-51/+19
JIRA: YARDSTICK-443 Change-Id: Iecd56e257513ca2d1217fd44aaaf377a3c04104d Signed-off-by: JingLu5 <lvjing5@huawei.com>