aboutsummaryrefslogtreecommitdiffstats
path: root/yardstick/common
AgeCommit message (Collapse)AuthorFilesLines
2018-03-15Create API to get SUT informationchenjiankun1-0/+8
JIRA: YARDSTICK-1072 We need to show SUT information in GUI. Change-Id: I40bcd513f3c6a443c82764687637ac5258b99584 Signed-off-by: chenjiankun <chenjiankun1@huawei.com>
2018-03-14Merge "Get SUT information"Jack Chan1-0/+53
2018-03-12Replace neutron router deletion with shade.Shobhi Jain2-6/+9
Function delete_neutron_router now uses shade client instead of neutron client. JIRA: YARDSTICK-890 Change-Id: I5b557b640396f343b85b5f5eff415384decc083c Signed-off-by: Shobhi Jain <shobhi.jain@intel.com>
2018-03-12Replace neutron subnet creation with shade.Shobhi Jain2-6/+52
Function 'create_neutron_subnet' now uses shade client instead of neutron client. JIRA: YARDSTICK-890 Change-Id: I8eb5295cecd73742bfb5a7d0764af6f45ef0685e Signed-off-by: Shobhi Jain <shobhi.jain@intel.com>
2018-03-12Replace neutron network creation with shade.Shobhi Jain2-6/+26
Function create_neutron_net now uses shade client instead of neutron client. JIRA: YARDSTICK-890 Change-Id: I456078e98550901c1f736640c9f9bd0d5f9c3df6 Signed-off-by: Shobhi Jain <shobhi.jain@intel.com>
2018-03-12Get SUT informationchenjiankun1-0/+53
JIRA: YARDSTICK-1063 We have the demand to get SUT information. In this patch, we use ansible to get the SUT information. Change-Id: I983675d6d367fa528f00c1b50bc6fa2a9cee03f7 Signed-off-by: chenjiankun <chenjiankun1@huawei.com>
2018-03-06Merge "Enable heat context to support existing network"Jack Chan1-0/+4
2018-03-05Error in string format in HeatTemplateError messageRodolfo Alonso Hernandez1-1/+1
There is a missing "s" in HeatTemplateError message [1]. [1]https://github.com/opnfv/yardstick/blob/8400c1895c49cb0c7802692f75d820fb5b8b7dc4/yardstick/common/exceptions.py#L70 JIRA: YARDSTICK-1047 Change-Id: Ieb6fbf0af35d624015dbf34f34de7c7cc9145dd5 Signed-off-by: Rodolfo Alonso Hernandez <rodolfo.alonso.hernandez@intel.com>
2018-03-02Merge "Prohibit the importation of a list of libraries"Ross Brattain2-0/+36
2018-03-02Merge "Add "render-only" option to "task" command"Rodolfo Alonso Hernandez1-0/+12
2018-03-01Add "render-only" option to "task" commandRodolfo Alonso Hernandez1-0/+12
This new option provides to the user the ability to output the rendered input files. This option could be useful in case the input files are Jinja2 templates, depending on input arguments. The user can preview the rendered input tasks files without executing them. JIRA: YARDSTICK-1020 Change-Id: Ib15ade7e1adcb29beae5e635fb5d02045c4432bb Signed-off-by: Rodolfo Alonso Hernandez <rodolfo.alonso.hernandez@intel.com>
2018-03-01NSB: move interface probe to VNF, and attempt driver-only probe firstRoss Brattain1-0/+15
If no devices are present we can't detect MAC address so we can't match Heat ports to interfaces. If only the driver is missing we can try to probe the driver using lspci. We can use lspci to ask the kernel what driver it should use for the PCI device. If we can't probe at all because the device is already bound, we can use dpkd-devind to find all the PCI address we care about and create a map with PCI device and real kernel driver. Then we can dpdk force rebind to the kernel driver. Once we have rebound to the kernel driver we can detect MAC address and all the other attributes that are required. Fix VnfSshHelper to allow override of wait timeout And a bunch of other refactors that got swept up in this JIRA: YARDSTICK-835 Change-Id: I14cb657ed289a77941d048345d06ced5b5d5da52 Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
2018-03-01Merge changes from topics 'feat/keep_vnf', 'YARDSTICK-886'Ross Brattain1-0/+8
* changes: Add _create_new_stack method Update TaskParser to deal with qualified name in Context Add qualified name to Context
2018-03-01Merge "Import "traffic_profile" modules only once"Ross Brattain2-2/+37
2018-03-01Add _create_new_stack methodEmma Foley1-0/+4
The logic for creating a new stack in contexts/heat.py:HeatContext can added to a method to make the code eassier to read and test. This is in preparation for an update to deploy() that would allow an existing stack to be reused, or a new stack created. By having the create_new_stack logic in a new method, deploy() becomes easier to read and test. JIRA: YARDSTICK-886 Change-Id: I7af01e2209a3460658f8db0249b7c620743cced0 Signed-off-by: Emma Foley <emma.l.foley@intel.com>
2018-03-01Update TaskParser to deal with qualified name in ContextEmma Foley1-0/+4
The context name depends on the defined name in the testcase input file, the task ID and the flags of the context. If the context is going to be undeployed at the end of the test, the task ID is suffixed to the name to avoid interferences with previous deployments. If the context needs to be deployed at the end of the test, the name assigned is kept. This patch makes this process transparent to the developer. This patch modifies how TaskParser determines the correct context name, taking into account that the name might change based on context flags. JIRA: YARDSTICK-886 Change-Id: I44da30dac562c1a4166e084645ae91c17798651d Signed-off-by: Rodolfo Alonso Hernandez <rodolfo.alonso.hernandez@intel.com> Signed-off-by: Emma Foley <emma.l.foley@intel.com>
2018-03-01Merge "Module to manage pip packages"Rodolfo Alonso Hernandez3-4/+114
2018-03-01Import "traffic_profile" modules only onceRodolfo Alonso Hernandez2-2/+37
"traffic_profile" modules should be imported only once. Every time TrafficProfile.get is called, the modules under "yardstick.network_services.traffic_profiles" are loaded [1]. Instead of this, the modules should be registered only once the first time "yardstick.network_services.traffic_profiles.base" is loaded. This will reduce the execution time and will avoid unnecessary calls. [1] https://github.com/opnfv/yardstick/blob/d2c7cc4e9768ed003257a95c92cdb278d516761b/yardstick/network_services/traffic_profile/base.py#L36-L37 JIRA: YARDSTICK-951 Change-Id: Ia3565378ba3a1377fcb0aea8bda50ef8189414fd Signed-off-by: Rodolfo Alonso Hernandez <rodolfo.alonso.hernandez@intel.com>
2018-02-28Merge "Deprecate authentication variable OS_TENANT_NAME"Ross Brattain1-34/+17
2018-02-28Merge "Improve SampleVNF hugepages setup"Abhijit Sinha1-0/+15
2018-02-28Deprecate authentication variable OS_TENANT_NAMERodolfo Alonso Hernandez1-34/+17
OS_TENANT_NAME was deprecated as authentication variable in Keystone when moved from v2 to v3, in Icehouse (2014). Because this project doesn't support oldest versions, by default the only identification API version supported is v3. JIRA: YARDSTICK-902 Change-Id: I273fb0151ba583f7c8a5a809e5e8864e92c27d31 Signed-off-by: Rodolfo Alonso Hernandez <rodolfo.alonso.hernandez@intel.com>
2018-02-27Enable heat context to support existing networkrexlee87761-0/+4
JIRA: YARDSTICK-970 Change-Id: I593af4b3a30e52521e3d77fd84bec16ab4733483 Signed-off-by: rexlee8776 <limingjiang@huawei.com>
2018-02-23Add 'ANSIBLE_ROLES_PATH' in ansible_envJingLu52-2/+4
JIRA: YARDSTICK-1024 This work adds the 'ANSIBLE_ROLES_PATH' as one of the Ansible environment variables. This 'ANSIBLE_ROLES_PATH' is set to the roles directory in Yardstick repo. By adding this variable, Ansible will first searches the local project for a role, then searches the roles_path. It will let the users of the plugin projects to able to use a relative role path for any of their own roles in ansible playbook. Change-Id: I0926ab0c0fa5c6cc37c4fe560db5b2aec3fe6eb1 Signed-off-by: JingLu5 <lvjing5@huawei.com>
2018-02-22Merge "Fix error in address input format in "_ip_range_action_partial""Rodolfo Alonso Hernandez1-0/+3
2018-02-19Merge "Replace neutron network deletion with shade."Emma Foley1-25/+27
2018-02-19Replace neutron network deletion with shade.Shobhi Jain1-25/+27
Function delete_neutron_net now uses shade client instead of neutron client. JIRA: YARDSTICK-890 Change-Id: I99b6f3ecd37d6e3b783f7eb3da9f971398fc3bdd Signed-off-by: Shobhi Jain <shobhi.jain@intel.com>
2018-02-17Fix error in address input format in "_ip_range_action_partial"Rodolfo Alonso Hernandez1-0/+3
IP address format introduced in [1] should be unicode instead of string. "ipaddress.IPv4Address(min_value)" doesn't parse correctly the input parameter unless the parameter is in unicode format; this is valid both for Python version 2 and 3. Execution error if the parameter is a string: >>> int(ipaddress.IPv4Address('10.0.3.2')) Traceback (most recent call last): File "<stdin>", line 1, in <module> File "/usr/local/lib/python2.7/dist-packages/ipaddress.py", line 1391, in __init__ self._check_packed_address(address, 4) File "/usr/local/lib/python2.7/dist-packages/ipaddress.py", line 554, in _check_packed_address expected_len, self._version)) ipaddress.AddressValueError: '10.0.3.2' (len 8 != 4) is not permitted as an IPv4 address. Did you pass in a bytes (str in Python 2) instead of a unic [1]https://github.com/opnfv/yardstick/blob/e5775e7efbc55f116b4d4ac11ff87b8d8553247e/yardstick/network_services/traffic_profile/traffic_profile.py#L87-L88 JIRA: YARDSTICK-996 Change-Id: Ic727a79044834b181c99789f0f5efc21c68f0ff2 Signed-off-by: Rodolfo Alonso Hernandez <rodolfo.alonso.hernandez@intel.com>
2018-02-16Merge "Remove tool provisioning from DpdkVnfSetupEnvHelper._setup_dpdk"Rodolfo Alonso Hernandez1-0/+4
2018-02-15Prohibit the importation of a list of librariesRodolfo Alonso Hernandez2-0/+36
Some modules can't be imported and used in Yardstick. For example, "ansible" has GPLv3 license and can't be used as a library in this project without modifying Yardstick license. JIRA: YARDSTICK-896 Change-Id: I9d6bec0493ac50f1051235cc77e81059dfc3e01c Signed-off-by: Rodolfo Alonso Hernandez <rodolfo.alonso.hernandez@intel.com>
2018-02-14constants: fix pylint warnings for OSErrorRoss Brattain1-6/+4
IOError and OSError are the same in Python 3? Anyway we want to ignore ENOENT, not EEXIST JIRA: YARDSTICK-1012 Change-Id: Ia75e41fecce505685745e0099669e45f3e82a1be Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
2018-02-12Remove tool provisioning from DpdkVnfSetupEnvHelper._setup_dpdkRodolfo Alonso Hernandez1-0/+4
Both "uio" and "igb_uio" drivers are present in the VM image generated using "./nsb_setup.sh" script. "igb_uio" driver is compiled along with the DPDK library compilation. Tool "nsb_setup.sh" provisioning and execution should be removed from this function because there is not needed anymore. In case "igb_uio" driver is not loaded, an exception should be raised. JIRA: YARDSTICK-999 Change-Id: I89174f84ac36d8231587402c96751746cb18e290 Signed-off-by: Rodolfo Alonso Hernandez <rodolfo.alonso.hernandez@intel.com>
2018-02-09Module to manage pip packagesRodolfo Alonso Hernandez3-4/+114
This new module provides methods to manage Python PIP packages from a URL, from a local directory or from a build PIP package. The implemented commands are: - Install package. - Remove package. - List all installed packages in the system. JIRA: YARDSTICK-910 Change-Id: I8f7d1b77c0c384b801cc6f5e67d8b45ce7c6bfdf Signed-off-by: Rodolfo Alonso Hernandez <rodolfo.alonso.hernandez@intel.com>
2018-02-09Replace neutron get network id with shade.Shobhi Jain1-75/+72
Function get_network_id now uses shade client instead of shade client. Removed redundant function: get_port_id. JIRA: YARDSTICK-890 Change-Id: I6081477fee39fa78131187e65daf3d7d3a9e439f Signed-off-by: Shobhi Jain <shobhi.jain@intel.com>
2018-02-09Replace "python-heatclient" with "shade" clientRodolfo Alonso Hernandez1-0/+6
Replaced "python-heatclient" with "shade" client. The "python-heatclient" library is removed from requirements file. "shade" client version 1.22.2 is the required one for OpenStack Pike release. shade is the recommended client to interact with OpenStack clouds [1] [1] https://github.com/openstack-infra/shade JIRA: YARDSTICK-880 Change-Id: Ibbdfc42a543d2d9ed4cf70d78de3de8cbecd0076 Signed-off-by: Rodolfo Alonso Hernandez <rodolfo.alonso.hernandez@intel.com>
2018-02-06Improve SampleVNF hugepages setupRodolfo Alonso Hernandez1-0/+15
The goal of this function is to: - Read the default hugepage size. - Set 16GB of hugepages. - Check if the status of the last action. According to [1], the default hugepage size could be read in "/proc/meminfo", always in kB. Then "/proc/sys/vm/nr_hugepages" could be used to set the number of default hugepages. [1] https://www.kernel.org/doc/Documentation/vm/hugetlbpage.txt JIRA: YARDSTICK-997 Change-Id: I762d1b16294ba1c1c2feee56610819ac358c7410 Signed-off-by: Rodolfo Alonso Hernandez <rodolfo.alonso.hernandez@intel.com>
2018-01-19Replace "oslo_utils.importutils" with standard library "importlib"Rodolfo Alonso Hernandez1-22/+18
The current implementation of dynamic library importation is prone to failure [1]: - "sys.modules" is modified manually, which is something not recommended [2]. - When a module is imported is added to "sys.modules"; that means there is no need to manually create an entry in this object. - "importlib" library is part of the standard library and is now available in PY3 and PY2 (backported). This library contains a function called "import_module" to import a module in runtime. [1]https://github.com/opnfv/yardstick/blob/d2c7cc4e9768ed003257a95c92cdb278d516761b/yardstick/common/utils.py#L72-L93 [2]http://justus.science/blog/2015/04/19/sys.modules-is-dangerous.html JIRA: YARDSTICK-949 Change-Id: Ide3b74f98858d06fa275fb6c9b78ceeaa64feed5 Signed-off-by: Rodolfo Alonso Hernandez <rodolfo.alonso.hernandez@intel.com>
2018-01-03Make GenericVNF an abstract classRodolfo Alonso Hernandez1-0/+40
GenericVNF class is now an abstract class. Only optional methods are implemented. Mandatory methods: - instantiate - wait_for_instantiate - terminate - scale - collect_kpi. JIRA: YARDSTICK-866 Change-Id: Ia8766f9f98816e11894d1e72b0f3bd573d091d99 Signed-off-by: Rodolfo Alonso Hernandez <rodolfo.alonso.hernandez@intel.com>
2017-12-22Replace subprocess "check_output" with "Popen"Rodolfo Alonso Hernandez3-5/+125
"check_output" is a blocking wrapper for "Popen" which returns the output of the command execution or raises an exception in case of error. "Popen" is a non-blocking function that allows to create asynchronous tasks. It returns any possible execution error but doesn't raise an exception; this is delegated to the developer. This code is used in the Yardstick CLI base test class. Change-Id: Ie3e1228b2d40cb306354447653678bf581bc9697 Signed-off-by: Rodolfo Alonso Hernandez <rodolfo.alonso.hernandez@intel.com>
2017-11-02Ansible: fix lowercasing issue with ConfigParserRoss Brattain1-1/+4
by default ConfigParser will lowercase everything, unless you override optionxform. also sort key value in inventory line for consistency https://docs.python.org/3/library/configparser.html#configparser.ConfigParser.optionxform Transforms the option name option as found in an input file or as passed in by client code to the form that should be used in the internal structures. The default implementation returns a lower-case version of option; subclasses may override this or client code can set an attribute of this name on instances to affect this behavior. You don’t need to subclass the parser to use this method, you can also set it on an instance, to a function that takes a string argument and returns a string. Setting it to str, for example, would make option names case sensitive: cfgparser = ConfigParser() cfgparser.optionxform = str Note that when reading configuration files, whitespace around the option names is stripped before optionxform() is called. YARDSTICK-833 Change-Id: Ia1810b0c77922d84e11c9e538540b38816338593 Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
2017-10-17validate_non_string_sequence: use six.string_typesRoss Brattain1-1/+1
Change-Id: I7248d97a55974091daf20f0fba4b612101a0e4c5 Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
2017-10-03Merge "NSB PROX test hang fixes"Ross Brattain1-0/+47
2017-10-03NSB PROX test hang fixesRoss Brattain1-0/+47
The PROX tests were hanging in the duration runner. These are fixes for various errors: raise error in collect_kpi if VNF is down move prox dpdk_rebind after collectd stop fix dpdk nicbind rebind to group by drivers prox: raise error in collect_kpi if the VNF is down prox: add VNF_TYPE for consistency sample_vnf: debug and fix kill_vnf pkill is not matching some executable names, add some debug process dumps and try switching back to killall until we can find the issue sample_vnf: add default timeout, so we can override default 3600 SSH timeout collect_kpi is the point at which we check the VNFs and TGs for failures or exits queues are the problem make sure we aren't silently blocking on non-empty queues by canceling join thread in subprocess fixup duration runner to close queues and other attempt to stop duration runner from hanging VnfdHelper: memoize port_num resource: fail if ssh can't connect at the end of 3600 second test our ssh connection is dead, so we can't actually stop collectd unless we reconnect fix stop() logic to ignore ssh errors Change-Id: I6c8e682a80cb9d00362e2fef4a46df080f304e55 Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
2017-09-26Ensure that at least one handler is availableEdward MacGillivray2-16/+19
https://jira.opnfv.org/browse/YARDSTICK-773?filter=-3 Remove dependency of yardstick on utils methods Change-Id: Iadf502364a7f08c279a8f0d17d7e45e8047f4066 Signed-off-by: Edward MacGillivray <edward.s.macgillivray@intel.com>
2017-09-21Add service in kubernetes contextchenjiankun1-0/+59
JIRA: YARDSTICK-803 Currently kubernetes test case can only run in master node. We need to support it run in jump server. So I add service and use nodePort type. Then we can login the pod using nodePort. Change-Id: Ia7900d263f1c5323f132435addec27ad10547ef9 Signed-off-by: chenjiankun <chenjiankun1@huawei.com>
2017-09-21Introduced timeout to post method of HttpClientMaciej Skrocki1-10/+14
We seen cases where grafana container bring-up code would fail, because of too quick access to the http api. Added 10sec timeout for the first query of the API. Change-Id: Ifc95a626d0ab5552a1f26fb167fc3f65791392d7 Signed-off-by: Maciej Skrocki <maciej.skrocki@intel.com>
2017-08-29Merge "utils: catch SyntaxError during import"Ross Brattain1-1/+1
2017-08-29Merge "Add common openstack opertation scenarios: router & port"Ross Brattain1-0/+40
2017-08-28utils: catch SyntaxError during importRoss Brattain1-1/+1
bad modules can also throw SyntaxError besides ImportError Change-Id: I4fa912505753cba3c06f127105354572b7f5ddd8 Signed-off-by: Ross Brattain <ross.b.brattain@intel.com>
2017-08-28Merge "DRAFT: update yardstick generic test cases dashboard"Ross Brattain1-1/+1
2017-08-25Merge "Add function to upload image from local/url in GUI"Jing Lu1-0/+1