aboutsummaryrefslogtreecommitdiffstats
AgeCommit message (Collapse)AuthorFilesLines
2017-07-21Merge "Add API(v2) to create project"Rex Lee1-0/+33
2017-07-20Add multiqueue supportJing Zhang4-47/+877
Problem: Neither OVS nor SRIOV multi-queue is not supported. Guest VM lacks tuning to reach high throughput. Solution: (1) Build SRIOV multi-queue capable guest image by recompiling the igxbevf driver (make CFLAGS_EXTRA=-DIXGBE_ENABLE_VF_MQ install). (2) Change pktgen to send on multiple queues. (3) Add tuning in guest VM (Disable irqbalance and setup vNIC interrupt affinity to vCPUs) Update 1: Takes care comments plus adds unit test cases Update 2: Jenkins reports code coverage 81%, local reports 96%, add more unit test cases Update 3: Manually rebased to adapt to SSH.from_node() Update 4: Takes care comments for vnic_type, vnic_name Change-Id: Ieb15381c653b13697487d095efa4be6c3c49fa42 JIRA: YARDSTICK-619 Signed-off-by: Jing Zhang <jing.c.zhang@nokia.com>
2017-07-20Improvement: support more parameters in fio testcaseJingLu51-6/+26
JIRA: YARDSTICK-750 The parameters that fio testcase support now maybe insufficient in some usecase. The test case should support parameters such as: rwmixwrite, size, direct and numjobs. This work is about add more parameters that can be specified in options section in the YAML file. Change-Id: Icccf024dc78d82bc453480f3baafb8aaa5c19538 Signed-off-by: JingLu5 <lvjing5@huawei.com>
2017-07-20Add API(v2) to delete certain test suitechenjiankun1-0/+10
JIRA: YARDSTICK-749 API: /api/v2/yardstick/testsuites/<suite_name> METHOD: DELETE Change-Id: Idfb5086ab3ac9e7ea6f9512ee5c7f02090d554c0 Signed-off-by: chenjiankun <chenjiankun1@huawei.com>
2017-07-20HA testcase containerized Compass supportJingLu58-4/+188
Compass will be containerized in Euphrates release. This work is about support HA testcase in a containerized environment. Change-Id: Ibb668c81f046d6400293f8cd58181b9f20aeebe3 Signed-off-by: JingLu5 <lvjing5@huawei.com>
2017-07-20Add API(v2) to get certain test suite infochenjiankun2-1/+16
JIRA: YARDSTICK-748 API: /api/v2/yardstick/testsuites/<suite_name> METHOD: GET Change-Id: I0d60ddedff4f76504ebd2e61257bf1b9cad3b923 Signed-off-by: chenjiankun <chenjiankun1@huawei.com>
2017-07-20Add API(v2) to get all test suitechenjiankun2-0/+54
JIRA: YARDSTICK-747 API: /api/v2/yardstick/testsuites METHOD: GET Change-Id: I2375b6d2ea54704f5a2328cc8110058af038e777 Signed-off-by: chenjiankun <chenjiankun1@huawei.com>
2017-07-20Add API(v2) to create test suitechenjiankun1-0/+44
JIRA: YARDSTICK-746 API: /api/v2/yardstick/testsuites/action METHOD: POST PARAMS: { 'action': 'create_suite', 'args': { 'name': 'case_name', 'testcases': [ 'opnfv_yardstick_tc002' ] } } Change-Id: I7e07c599e64e7eedda274c72344e394f5535f055 Signed-off-by: chenjiankun <chenjiankun1@huawei.com>
2017-07-20Add API to delete certain test casechenjiankun1-0/+11
JIRA: YARDSTICK-745 API: /api/v2/yardstick/testcases/<case_name> METHOD: DELETE Change-Id: Ic75ee60abfc00d20328ee45b9830dea1fe464482 Signed-off-by: chenjiankun <chenjiankun1@huawei.com>
2017-07-20Add API(v2) to get certain test case infochenjiankun1-0/+16
JIRA: YARDSTICK-744 API: /api/v2/yardstick/testcases METHOD: GET Change-Id: I4b1867f713bce2f9f2342ecec8540b08b0bb3456 Signed-off-by: chenjiankun <chenjiankun1@huawei.com>
2017-07-20Add API(v2) to get all test case infochenjiankun1-0/+7
JIRA: YARDSTICK-743 API: /api/v2/yardstick/testcases METHOD: GET Change-Id: Iced97206cb4c5f68ee8a5729af937e8d45ca6e87 Signed-off-by: chenjiankun <chenjiankun1@huawei.com>
2017-07-20Add API(v2) to upload test casechenjiankun1-0/+28
JIRA: YARDSTICK-742 API: /api/v2/yardstick/testcases/action METHOD: POST PARAMS: { 'action': 'upload_case', 'args': { 'file': file } } Change-Id: Id305e72a24ec28295ac4bae5e5b9ad83eb2c1e34 Signed-off-by: chenjiankun <chenjiankun1@huawei.com>
2017-07-20Add API(v2) to add case to taskchenjiankun1-0/+23
JIRA: YARDSTICK-739 API: /api/v2/yardstick/tasks/<task_id> METHOD: PUT PARAMS: { 'action': 'add_case', 'args': { 'case_name': 'opnfv_yardstick_tc002', 'case_content': case_content } } Change-Id: I53e71e3d662399b08029ed417b5873a4775ca32d Signed-off-by: chenjiankun <chenjiankun1@huawei.com>
2017-07-19heat: port_security_enabled, allowed_address_pairs, disable gateway_ipRoss Brattain4-26/+81
xe0: cidr: '10.0.2.0/24' vld_id: public allowed_address_pairs: - ip_address: '0.0.0.0/0' xe1: cidr: '10.0.3.0/24' vld_id: private allowed_address_pairs: - ip_address: '0.0.0.0/0' We need to disable gateways on data plane interfaces With TGs and VFNs we probably don't need gateway on data interfaces Change-Id: I276a7d591a0a3ff03877c4f525303fc2874de683 Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
2017-07-19Add API(v2) to delete certain taskchenjiankun1-0/+29
JIRA: YARDSTICK-738 API: /api/v2/yardstick/tasks/<task_id> METHOD: DELETE Change-Id: I28215d2cae63551455abacc4142cff3c4aaed281 Signed-off-by: chenjiankun <chenjiankun1@huawei.com>
2017-07-19Add API(v2) to get certain task infochenjiankun1-0/+21
JIRA: YARDSTICK-737 API: /api/v2/yardstick/tasks/<task_id> METHOD: GET Change-Id: Ia360f4bba05e196e07c9eb339061ccfbf5df8137 Signed-off-by: chenjiankun <chenjiankun1@huawei.com>
2017-07-19Add API(v2) to add environment to taskchenjiankun2-1/+46
JIRA: YARDSTICK-736 API: /api/v2/yardstick/tasks/<task_id> METHOD: PUT PARAMS: { 'action': 'add_environment', 'args': { 'environment_id': environment_id } } Change-Id: Idc31cb21de882d008202b6395158e9f9aa9244db Signed-off-by: chenjiankun <chenjiankun1@huawei.com>
2017-07-19Add API(v2) to create taskchenjiankun1-0/+49
JIRA: YARDSTICK-735 API: /api/v2/yardstick/tasks/action METHOD: POST PARAMS: { 'action': 'create_task', 'args': { 'name': 'task1', 'project_id': project_id } } Change-Id: I1f9c743f32bbcff999e37cf53ebfa96b41c61e5e Signed-off-by: chenjiankun <chenjiankun1@huawei.com>
2017-07-19Merge "Add API(v2) to delete container"Jing Lu1-2/+38
2017-07-19Merge "Add API(v2) to get container info"Jing Lu1-0/+27
2017-07-19Merge "Add API(v2) to create grafana"Jing Lu2-7/+158
2017-07-19Merge "Add API(v2) to create influxdb"Jing Lu2-0/+186
2017-07-19Merge "Add API(v2) to delete pod"Jing Lu1-0/+21
2017-07-19Add API(v2) to delete certain projectchenjiankun1-0/+32
JIRA: YARDSTICK-734 API: /api/v2/yardstick/projects/<project_id> METHOD: DELETE Change-Id: I6628ec42aa7c4c6ab073ddc33c119ea1c03b81fe Signed-off-by: chenjiankun <chenjiankun1@huawei.com>
2017-07-19Add API(V2) to get certain project infochenjiankun1-0/+21
JIRA: YARDSTICK-733 API: /api/v2/yardstick/projects/<project_id> METHOD: GET Change-Id: I20a615af96229aefac6ef86566a7b9c5d42f9633 Signed-off-by: chenjiankun <chenjiankun1@huawei.com>
2017-07-19Add API(v2) to get all projects infochenjiankun2-0/+14
JIRA: YARDSTICK-732 API: /api/v2/yardstick/projects METHOD: GET Change-Id: Ifd67f11f516270d96c0e80b5b8c76a939583d9e5 Signed-off-by: chenjiankun <chenjiankun1@huawei.com>
2017-07-19Add API(v2) to create projectchenjiankun1-0/+33
JIRA: YARDSTICK-731 API: /api/v2/yardstick/projects/action METHOD: POST PARAMS: { 'action': 'create_project', 'args': { 'name': 'project1' } } Change-Id: I92332dec8dcf3253f0cbf1668332ce5110111d73 Signed-off-by: chenjiankun <chenjiankun1@huawei.com>
2017-07-19yardstick env influxdb/grafana cmd support centoschenjiankun4-19/+52
JIRA: YARDSTICK-714 Currently yardstick env influxdb/grafana command do not support centos. Because we use the gateway ip to get the service of influxdb and grafana. But in centos, we can not access influxdb/grafana service via gateway ip. In this patch, I use docker inspect to get the ip of influxdb and grafana. So these command can support centos. Change-Id: Ie4abcb8048b92d61bc62777dfc362bb29f354b2b Signed-off-by: chenjiankun <chenjiankun1@huawei.com>
2017-07-18base: remove redudant ip_to_convertRoss Brattain1-1/+0
remove extra newline as well Change-Id: I9038621720c40802aa041bad66007b38070cb26e Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
2017-07-17Merge "test_base: speedup unittest, wait for queue not empty"Ross Brattain1-2/+8
2017-07-17Add API(v2) to delete containerchenjiankun1-2/+38
JIRA: YARDSTICK-729 API: /api/v2/yardstick/containers/<container_id> METHOD: DELETE Change-Id: I4cda76329edd7b988a357f1fcb2b5041bf48be64 Signed-off-by: chenjiankun <chenjiankun1@huawei.com>
2017-07-17Add API(v2) to get container infochenjiankun1-0/+27
JIRA: YARDSTICK-728 API: /api/v2/yardstick/containers/<container_id> METHOD: GET Change-Id: Iba34e6c6dd84573dc9d5914a584d920678c0de36 Signed-off-by: chenjiankun <chenjiankun1@huawei.com>
2017-07-17Add API(v2) to create grafanachenjiankun2-7/+158
JIRA: YARDSTICK-727 API: /api/v2/yardstick/containers/action METHOD: POST PARAMS: { 'action': 'create_influxdb', 'args': { 'environment_id': environment_id } } Change-Id: I12fc23261ba62df6f923a4d34455ad8b46c4aa8f Signed-off-by: chenjiankun <chenjiankun1@huawei.com>
2017-07-17Open storperf testcase to huawei-pod2JingLu59-19/+39
JIRA: YARDSTICK-712 Change-Id: If91c936a3a59580a987cb6762db5d063edf6c9d7 Signed-off-by: JingLu5 <lvjing5@huawei.com>
2017-07-17Merge "attacker_process: fix typo s/envrioment/environment/"Rex Lee1-2/+2
2017-07-17Merge "test_nstat: speedup unittests, sleep for 0 seconds"Ross Brattain1-3/+3
2017-07-17Add API(v2) to create influxdbchenjiankun2-0/+186
JIRA: YARDSTICK-726 API: /api/v2/yardstick/containers/action METHOD: POST PARAMS: { 'action': 'create_influxdb', 'args': { 'environment_id': environment_id } } Change-Id: I20961fc6ae9918c894de7fabd3f81ca966bd24cd Signed-off-by: chenjiankun <chenjiankun1@huawei.com>
2017-07-17Merge "pktgen: speedup unittest, mock time.sleep"Ross Brattain1-9/+10
2017-07-17Merge "tg: speedup unittests, mock time.sleep"Ross Brattain3-8/+12
2017-07-17Merge "test_pktgen_dpdk_throughput: speedup unittest, mock time.sleep()"Ross Brattain1-8/+9
2017-07-17test_nstat: speedup unittests, sleep for 0 secondsRoss Brattain1-3/+3
Change-Id: I3f961e26fb045ea7501dc3a5b630b3ef94fec3ee Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
2017-07-17test_heat: ipaddress expects unicode inputsRoss Brattain1-14/+14
weird error E AddressValueError: '10.20.0.0/15' does not appear to be an IPv4 or IPv6 network. Did you pass in a bytes (str in Python 2) instead of a unicode object? I guess we need to convert the stack.outputs mock to unicode FAILED tests/unit/benchmark/contexts/test_heat.py:137 (HeatContextTestCase.test_add_server_port) self = <tests.unit.benchmark.contexts.test_heat.HeatContextTestCase testMethod=test_add_server_port> def test_add_server_port(self): network1 = mock.MagicMock() network1.vld_id = 'vld111' network2 = mock.MagicMock() network2.vld_id = 'vld777' self.test_context.name = 'foo' self.test_context.stack = mock.MagicMock() self.test_context.networks = { 'a': network1, 'c': network2, } self.test_context.stack.outputs = { 'b': '10.20.30.45', 'b-subnet_id': 1, 'foo-a-subnet-cidr': '10.20.0.0/15', 'foo-a-subnet-gateway_ip': '10.20.30.1', 'b-mac_address': '00:01', 'b-device_id': 'dev21', 'b-network_id': 'net789', 'd': '40.30.20.15', 'd-subnet_id': 2, 'foo-c-subnet-cidr': '40.30.0.0/18', 'foo-c-subnet-gateway_ip': '40.30.20.254', 'd-mac_address': '00:10', 'd-device_id': 'dev43', 'd-network_id': 'net987', } server = mock.MagicMock() server.ports = OrderedDict([ ('a', {'stack_name': 'b'}), ('c', {'stack_name': 'd'}), ]) expected = { "private_ip": '10.20.30.45', "subnet_id": 1, "subnet_cidr": '10.20.0.0/15', "network": '10.20.0.0', "netmask": '255.254.0.0', "gateway_ip": '10.20.30.1', "mac_address": '00:01', "device_id": 'dev21', "network_id": 'net789', "network_name": 'a', "local_mac": '00:01', "local_ip": '10.20.30.45', "vld_id": 'vld111', } > self.test_context.add_server_port(server) tests/unit/benchmark/contexts/test_heat.py:186: _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ yardstick/benchmark/contexts/heat.py:307: in add_server_port network_name, port['stack_name'], self.stack.outputs) yardstick/benchmark/contexts/heat.py:315: in make_interface_dict subnet_ip = ipaddress.ip_network(subnet_cidr) _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ address = '10.20.0.0/15', strict = True def ip_network(address, strict=True): """Take an IP string/int and return an object of the correct type. Args: address: A string or integer, the IP network. Either IPv4 or IPv6 networks may be supplied; integers less than 2**32 will be considered to be IPv4 by default. Returns: An IPv4Network or IPv6Network object. Raises: ValueError: if the string passed isn't either a v4 or a v6 address. Or if the network has host bits set. """ try: return IPv4Network(address, strict) except (AddressValueError, NetmaskValueError): pass try: return IPv6Network(address, strict) except (AddressValueError, NetmaskValueError): pass if isinstance(address, bytes): raise AddressValueError( '%r does not appear to be an IPv4 or IPv6 network. ' 'Did you pass in a bytes (str in Python 2) instead of' > ' a unicode object?' % address) E AddressValueError: '10.20.0.0/15' does not appear to be an IPv4 or IPv6 network. Did you pass in a bytes (str in Python 2) instead of a unicode object? ../../yardstick/yardstick_venv/lib/python2.7/site-packages/ipaddress.py:199: AddressValueError Change-Id: Ie3b087a26a054203573eaa9b13c3e90152bba6a9 Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
2017-07-17Merge "test_tg_rfc2544_trex: speedup unittest, set time.sleep(0)"Ross Brattain1-4/+5
2017-07-17test_tg_rfc2544_trex: speedup unittest, set time.sleep(0)Ross Brattain1-4/+5
Change-Id: I6fdae629bdbd45cba715a838c41613b914a3abcb Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
2017-07-17test_delete_all_calls_delete: fix delete mockRoss Brattain1-4/+6
we need to mock HeatStack.delete() before we instantiate otherwise we can't reach the instantiated objects delete() method we need to patch the class so we patch all instances Change-Id: I36f9476dcfb83e2d583c5a9f72dc27fce57258eb Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
2017-07-16test_heat: don't waste 2 seconds in unittestRoss Brattain1-12/+2
remove duration checks and test with sleep 0 Change-Id: I22516cde56ac3a02358ca9c3e652cead10580d76 Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
2017-07-17Merge "Bugfix: kubernetes context do not implement _get_network"Jing Lu1-0/+3
2017-07-17Bugfix: kubernetes context do not implement _get_networkchenjiankun1-0/+3
Since kubernetes context do not implement _get_network, so when run unit test case, we will get a error: TypeError: Can't instantiate abstract class KubernetesContext with abstract methods _get_network Change-Id: Ib56abe7c580ef8a6fc9f52f3fcd566d0fa70e1cc Signed-off-by: chenjiankun <chenjiankun1@huawei.com>
2017-07-17Merge "apexlake: speed unittest, mock time.sleep"Ross Brattain3-36/+40
2017-07-17Merge "test_attacker_baremetal: don't run local commands"Ross Brattain2-18/+13