Hi Saravana, I think [1] is the test case you are running. The yaml format has no problem. It looks the Openstack does not generate floating ip as I described in previous mail. This command may helps: source /etc/yardstick/openstack.creds openstack network show public openstack subnet list
[1] https://git.opnfv.org/yardstick/tree/samples/ping-template.yaml?h=stable/euphrates BRs, Rex +-------------------------------------------------------------------------------------------+ [cid:image001.png@01D0A50A.DD5A8F20] + Mingjiang Li (Rex) Mobile: +86 13761275017 + Shanghai Institute, Huawei + No. 2222, Xinjinqiao Road, Pudong, Shanghai, 201206, P.R.China +-------------------------------------------------------------------------------------------+ From: Saravanakumar Mariyappan [mailto:saravanakuma...@happiestminds.com] Sent: Monday, January 08, 2018 5:09 PM To: limingjiang <limingji...@huawei.com> Cc: opnfv-users@lists.opnfv.org Subject: RE: Yardstick stack create failed due to KeyError: 'ip' Can you please let me know the correct yam file format? Thanks, Saravana From: limingjiang [mailto:limingji...@huawei.com] Sent: Monday, January 8, 2018 2:31 PM To: Saravanakumar Mariyappan <saravanakuma...@happiestminds.com<mailto:saravanakuma...@happiestminds.com>> Cc: opnfv-users@lists.opnfv.org<mailto:opnfv-users@lists.opnfv.org> Subject: RE: Yardstick stack create failed due to KeyError: 'ip' Hi Saravana, I think the VM athena.demo-* on your SUT is missing the floating IP. If this test case runs successfully, it'll look like below, the athena.demo-* VM would have another ip (floating ip) 192.168.33.113 as in table below. This floating ip is used by yardstick to ssh to the VM. It is assigned from the external network by the variable $EXTERNAL_NETWORK you specified. So the problem in your SUT is that the floating ip fails to generate. I suggest you check with your external network "public", does it have a subnet? root@08d06dcf116e:/home/opnfv/repos/yardstick# openstack server list +--------------------------------------+----------------------+----------+----------------------------------------------+--------------+ | ID | Name | Status | Networks | Image Name | +--------------------------------------+----------------------+----------+----------------------------------------------+--------------+ | 4b5c58ce-0bbf-4ff0-b28f-02ec2b998054 | athena.demo-952dfa1a | ACTIVE | demo-952dfa1a-test=10.0.1.14, 192.168.33.113 | cirros-0.3.5 | | 77552706-48e2-4e90-a9f3-448428fde215 | ares.demo-952dfa1a | ACTIVE | demo-952dfa1a-test=10.0.1.11 | cirros-0.3.5 | +--------------------------------------+----------------------+----------+----------------------------------------------+--------------+ BRs, Rex +-------------------------------------------------------------------------------------------+ [cid:image001.png@01D0A50A.DD5A8F20] + Mingjiang Li (Rex) Mobile: +86 13761275017 + Shanghai Institute, Huawei + No. 2222, Xinjinqiao Road, Pudong, Shanghai, 201206, P.R.China +-------------------------------------------------------------------------------------------+ From: Saravanakumar Mariyappan [mailto:saravanakuma...@happiestminds.com] Sent: Monday, January 08, 2018 4:22 PM To: limingjiang <limingji...@huawei.com<mailto:limingji...@huawei.com>> Cc: opnfv-users@lists.opnfv.org<mailto:opnfv-users@lists.opnfv.org> Subject: RE: Yardstick stack create failed due to KeyError: 'ip' Hi Rex, Thanks for replying. root@openstack-ocata-controller:/var/log/heat# openstack server list | grep demo root@openstack-ocata-controller:/var/log/heat# openstack server list | grep demo | 0fdebbf3-efa3-4b0f-9cfc-d5da6879477c | ares.demo-d43f61bd | BUILD | | yardstick-image | root@openstack-ocata-controller:/var/log/heat# openstack server list | grep demo | 9bb47e7c-1e31-419f-8daa-cf39aa3d0a3e | athena.demo-d43f61bd | BUILD | | yardstick-image | | 0fdebbf3-efa3-4b0f-9cfc-d5da6879477c | ares.demo-d43f61bd | ACTIVE | demo-d43f61bd-test=10.0.1.3 | yardstick-image | root@openstack-ocata-controller:/var/log/heat# openstack server list | grep demo | 9bb47e7c-1e31-419f-8daa-cf39aa3d0a3e | athena.demo-d43f61bd | ACTIVE | demo-d43f61bd-test=10.0.1.7 | yardstick-image | | 0fdebbf3-efa3-4b0f-9cfc-d5da6879477c | ares.demo-d43f61bd | ACTIVE | demo-d43f61bd-test=10.0.1.3 | yardstick-image | root@openstack-ocata-controller:/var/log/heat# openstack server list | grep demo | 9bb47e7c-1e31-419f-8daa-cf39aa3d0a3e | athena.demo-d43f61bd | ACTIVE | demo-d43f61bd-test=10.0.1.7 | yardstick-image | | 0fdebbf3-efa3-4b0f-9cfc-d5da6879477c | ares.demo-d43f61bd | ACTIVE | demo-d43f61bd-test=10.0.1.3 | yardstick-image | root@openstack-ocata-controller:/var/log/heat# openstack server list | grep demo | 0fdebbf3-efa3-4b0f-9cfc-d5da6879477c | ares.demo-d43f61bd | ACTIVE | demo-d43f61bd-test=10.0.1.3 | yardstick-image | root@openstack-ocata-controller:/var/log/heat# openstack server list | grep demo 1. Heat stack is creating 2. No instances are launched 3. Error is thrown 4. Heat stack starts to delete. But from the above log, both the VMs are getting ip but not launching. I am using ocata version. Thanks, Saravana From: limingjiang [mailto:limingji...@huawei.com] Sent: Monday, January 8, 2018 1:14 PM To: Saravanakumar Mariyappan <saravanakuma...@happiestminds.com<mailto:saravanakuma...@happiestminds.com>> Cc: opnfv-users@lists.opnfv.org<mailto:opnfv-users@lists.opnfv.org> Subject: RE: Yardstick stack create failed due to KeyError: 'ip' Hi Saravana, This is a "ping between VMs" test case in yardstick. As I can see from the log, the VMs already started, but report IP error when ssh to VM1. I assume it's because there's no IP assigned for the VM. 1. So can you please check the status of your VMs with command in yardstick docker when you start this test case: source /etc/yardstick/openstack.creds openstack server list | grep demo 2. Which Openstack version are you test on? BRs, Rex +-------------------------------------------------------------------------------------------+ [cid:image001.png@01D0A50A.DD5A8F20] + Mingjiang Li (Rex) Mobile: +86 13761275017 + Shanghai Institute, Huawei + No. 2222, Xinjinqiao Road, Pudong, Shanghai, 201206, P.R.China +-------------------------------------------------------------------------------------------+ From: opnfv-users-boun...@lists.opnfv.org<mailto:opnfv-users-boun...@lists.opnfv.org> [mailto:opnfv-users-boun...@lists.opnfv.org] On Behalf Of Saravanakumar Mariyappan Sent: Monday, January 08, 2018 3:21 PM To: opnfv-users@lists.opnfv.org<mailto:opnfv-users@lists.opnfv.org> Subject: [opnfv-users] Yardstick stack create failed due to KeyError: 'ip' Hi Team, I have successfully installed the yardstick. When I am trying to execute a test case, I am getting the following error. I am not able to figure out the root cause. Can you please help me to fix it? <<<<SNIP>>>> yardstick task start samples/ping-template.yaml --task-args '{"packetsize":"200"}' Writing /opt/yardstick/yardstick/yardstick/resources/files/yardstick_key-e06dd0b0 ... 2018-01-08 12:40:26,536 [INFO] yardstick.benchmark.contexts.heat heat.py:303 Deploying context 'demo-0482b81f' START 2018-01-08 12:40:26,536 [ DEBUG] yardstick.orchestrator.heat heat.py:197 template object 'demo-0482b81f' created 2018-01-08 12:40:26,536 [ DEBUG] yardstick.orchestrator.heat heat.py:459 adding Nova::KeyPair 'demo-0482b81f-key' 2018-01-08 12:40:26,536 [ DEBUG] yardstick.orchestrator.heat heat.py:495 adding Neutron::SecurityGroup 'demo-0482b81f-secgroup' 2018-01-08 12:40:26,536 [ DEBUG] yardstick.orchestrator.heat heat.py:270 adding Neutron::Net 'demo-0482b81f-test' 2018-01-08 12:40:26,537 [ DEBUG] yardstick.orchestrator.heat heat.py:310 adding Neutron::Subnet 'demo-0482b81f-test-subnet' in network 'demo-0482b81f-test', cidr '10.0.1.0/24' 2018-01-08 12:40:26,537 [ DEBUG] yardstick.orchestrator.heat heat.py:341 adding Neutron::Router:'demo-0482b81f-test-router', gw-net:'public' 2018-01-08 12:40:26,537 [ DEBUG] yardstick.orchestrator.heat heat.py:356 adding Neutron::RouterInterface 'demo-0482b81f-test-router-if0' router:'demo-0482b81f-test-router', subnet:'demo-0482b81f-test-subnet' 2018-01-08 12:40:26,537 [ DEBUG] yardstick.orchestrator.heat heat.py:371 adding Neutron::Port 'ares.demo-0482b81f-test-port', network:'demo-0482b81f-test', subnet:'demo-0482b81f-test-subnet', vnic_type:'normal', secgroup:demo-0482b81f-secgroup 2018-01-08 12:40:26,537 [ DEBUG] yardstick.orchestrator.heat heat.py:539 adding Nova::Server 'ares.demo-0482b81f', image 'yardstick-image', flavor 'yardstick-flavor', ports ['ares.demo-0482b81f-test-port'] 2018-01-08 12:40:26,537 [ DEBUG] yardstick.orchestrator.heat heat.py:371 adding Neutron::Port 'athena.demo-0482b81f-test-port', network:'demo-0482b81f-test', subnet:'demo-0482b81f-test-subnet', vnic_type:'normal', secgroup:demo-0482b81f-secgroup 2018-01-08 12:40:26,537 [ DEBUG] yardstick.orchestrator.heat heat.py:539 adding Nova::Server 'athena.demo-0482b81f', image 'yardstick-image', flavor 'yardstick-flavor', ports ['athena.demo-0482b81f-test-port'] 2018-01-08 12:40:26,538 [INFO] yardstick.orchestrator.heat heat.py:616 Creating stack 'demo-0482b81f' START 2018-01-08 12:40:29,426 [ DEBUG] yardstick.orchestrator.heat heat.py:636 Creating stack state: CREATE_IN_PROGRESS 2018-01-08 12:40:31,754 [ DEBUG] yardstick.orchestrator.heat heat.py:636 Creating stack state: CREATE_IN_PROGRESS 2018-01-08 12:40:34,050 [ DEBUG] yardstick.orchestrator.heat heat.py:636 Creating stack state: CREATE_IN_PROGRESS 2018-01-08 12:40:36,548 [ DEBUG] yardstick.orchestrator.heat heat.py:636 Creating stack state: CREATE_IN_PROGRESS 2018-01-08 12:40:39,307 [ DEBUG] yardstick.orchestrator.heat heat.py:636 Creating stack state: CREATE_IN_PROGRESS 2018-01-08 12:40:42,276 [ DEBUG] yardstick.orchestrator.heat heat.py:636 Creating stack state: CREATE_IN_PROGRESS 2018-01-08 12:40:45,833 [ DEBUG] yardstick.orchestrator.heat heat.py:636 Creating stack state: CREATE_IN_PROGRESS 2018-01-08 12:40:48,878 [ DEBUG] yardstick.orchestrator.heat heat.py:636 Creating stack state: CREATE_IN_PROGRESS 2018-01-08 12:40:51,710 [ DEBUG] yardstick.orchestrator.heat heat.py:636 Creating stack state: CREATE_IN_PROGRESS 2018-01-08 12:40:55,044 [ DEBUG] yardstick.orchestrator.heat heat.py:636 Creating stack state: CREATE_IN_PROGRESS 2018-01-08 12:40:57,872 [ DEBUG] yardstick.orchestrator.heat heat.py:636 Creating stack state: CREATE_IN_PROGRESS 2018-01-08 12:41:01,661 [INFO] yardstick.orchestrator.heat heat.py:649 Creating stack 'demo-0482b81f' DONE in 33 secs 2018-01-08 12:41:02,084 [INFO] yardstick.benchmark.contexts.heat heat.py:333 Deploying context 'demo-0482b81f' DONE 2018-01-08 12:41:02,085 [INFO] yardstick.benchmark.core.task task.py:373 Starting runner of type 'Duration' 2018-01-08 12:41:02,088 [INFO] yardstick.benchmark.runners.duration duration.py:46 Worker START, duration is 60s 2018-01-08 12:41:02,089 [ DEBUG] yardstick.benchmark.runners.duration duration.py:47 class is <class 'yardstick.benchmark.scenarios.networking.ping.Ping'> Process Duration-Ping-14939: Traceback (most recent call last): File "/usr/lib/python2.7/multiprocessing/process.py", line 258, in _bootstrap self.run() File "/usr/lib/python2.7/multiprocessing/process.py", line 114, in run self._target(*self._args, **self._kwargs) File "/opt/yardstick/yardstick/yardstick/benchmark/runners/duration.py", line 51, in _worker_process benchmark = cls(scenario_cfg, context_cfg) File "/opt/yardstick/yardstick/yardstick/benchmark/scenarios/networking/ping.py", line 49, in __init__ self.connection = ssh.SSH.from_node(host, defaults={"user": "ubuntu"}) File "/opt/yardstick/yardstick/yardstick/ssh.py", line 179, in from_node return cls(**cls.args_from_node(node, overrides, defaults)) File "/opt/yardstick/yardstick/yardstick/ssh.py", line 169, in args_from_node 'host': params['ip'], File "/usr/local/lib/python2.7/dist-packages/chainmap/chainmap.py", line 65, in __getitem__ return self.__missing__(key) # support subclasses that define __missing__ File "/usr/local/lib/python2.7/dist-packages/chainmap/chainmap.py", line 57, in __missing__ raise KeyError(key) KeyError: 'ip' 2018-01-08 12:41:02,094 [ERROR] yardstick.benchmark.core.task task.py:276 Scenario NO.1: "Ping" ERROR! 2018-01-08 12:41:02,095 [ERROR] yardstick.benchmark.core.task task.py:127 Testcase: "ping-template" FAILED!!! Traceback (most recent call last): File "/opt/yardstick/yardstick/yardstick/benchmark/core/task.py", line 123, in start data = self._run(scenarios, run_in_parallel, args.output_file) File "/opt/yardstick/yardstick/yardstick/benchmark/core/task.py", line 278, in _run "{0} runner status {1}".format(runner.__execution_type__, status)) RuntimeError: Duration runner status 1 2018-01-08 12:41:02,095 [INFO] yardstick.benchmark.contexts.heat heat.py:386 Undeploying context 'demo-0482b81f' START 2018-01-08 12:41:02,095 [INFO] yardstick.orchestrator.heat heat.py:92 Deleting stack 'demo-0482b81f' START, uuid:8808d0b2-6ad6-44a5-9941-c4468b797923 2018-01-08 12:41:04,314 [ DEBUG] yardstick.orchestrator.heat heat.py:99 Deleting stack state: CREATE_COMPLETE 2018-01-08 12:41:06,363 [ DEBUG] yardstick.orchestrator.heat heat.py:99 Deleting stack state: DELETE_IN_PROGRESS 2018-01-08 12:41:08,563 [ DEBUG] yardstick.orchestrator.heat heat.py:99 Deleting stack state: DELETE_IN_PROGRESS 2018-01-08 12:41:10,603 [ DEBUG] yardstick.orchestrator.heat heat.py:99 Deleting stack state: DELETE_IN_PROGRESS 2018-01-08 12:41:12,672 [ DEBUG] yardstick.orchestrator.heat heat.py:99 Deleting stack state: DELETE_IN_PROGRESS 2018-01-08 12:41:14,715 [ DEBUG] yardstick.orchestrator.heat heat.py:99 Deleting stack state: DELETE_IN_PROGRESS 2018-01-08 12:41:16,800 [ DEBUG] yardstick.orchestrator.heat heat.py:99 Deleting stack state: DELETE_IN_PROGRESS 2018-01-08 12:41:18,838 [INFO] yardstick.orchestrator.heat heat.py:108 Deleting stack 'demo-0482b81f' DONE in 15 secs 2018-01-08 12:41:18,839 [INFO] yardstick.benchmark.contexts.heat heat.py:389 Undeploying context 'demo-0482b81f' DONE 2018-01-08 12:41:18,839 [INFO] yardstick.benchmark.core.task task.py:143 Task samples/ping-template.yaml finished in 52 secs 2018-01-08 12:41:18,839 [ DEBUG] yardstick.dispatcher.influxdb influxdb.py:44 Test result all : {'status': 1, 'result': {'info': {'installer': 'unknown', 'version': 'unknown', 'deploy_scenario': 'unknown', 'pod_name': 'unknown'}, 'testcases': {'ping-template': {'tc_data': [], 'criteria': 'FAIL'}}, 'task_id': '0482b81f-8963-43c6-9466-4be3f61fbb25', 'criteria': 'FAIL'}} 2018-01-08 12:41:18,843 [INFO] yardstick.benchmark.core.task task.py:165 Report can be found in '/tmp/report.html' 2018-01-08 12:41:18,843 [INFO] yardstick.benchmark.core.task task.py:152 Total finished in 52 secs 2018-01-08 12:41:18,844 [INFO] yardstick.benchmark.core.task task.py:156 To generate report, execute command 'yardstick report generate 0482b81f-8963-43c6-9466-4be3f61fbb25 ping-template' 2018-01-08 12:41:18,844 [INFO] yardstick.benchmark.core.task task.py:157 Task ALL DONE, exiting 2018-01-08 12:41:18,844 [INFO] yardstick.cmd.commands.task task.py:64 Task FAILED <type 'exceptions.RuntimeError'> Python 2.7.12: /usr/bin/python Mon Jan 8 12:41:18 2018 A problem occurred in a Python script. Here is the sequence of function calls leading up to the error, in the order they occurred. /usr/local/bin/yardstick in <module>() 8 if __name__ == '__main__': 9 sys.argv[0] = re.sub(r'(-script\.pyw?|\.exe)?$', '', sys.argv[0]) 10 sys.exit( 11 load_entry_point('yardstick==0.1.dev0', 'console_scripts', 'yardstick')() 12 ) load_entry_point = <function load_entry_point> /opt/yardstick/yardstick/yardstick/main.py in main() 47 def main(): 48 """yardstick main""" 49 YardstickCLI().main(sys.argv[1:]) 50 51 if __name__ == '__main__': global YardstickCLI = <class yardstick.cmd.cli.YardstickCLI> ).main = <unbound method YardstickCLI.main> global sys = <module 'sys' (built-in)> sys.argv = ['/usr/local/bin/yardstick', 'task', 'start', 'samples/ping-template.yaml', '--task-args', '{"packetsize":"200"}'] /opt/yardstick/yardstick/yardstick/cmd/cli.py in main(self=<yardstick.cmd.cli.YardstickCLI instance>, argv=['task', 'start', 'samples/ping-template.yaml', '--task-args', '{"packetsize":"200"}']) 160 self._handle_global_opts() 161 162 self._dispatch_func_notask() 163 finally: 164 self._clear_config_opts() self = <yardstick.cmd.cli.YardstickCLI instance> self._dispatch_func_notask = <bound method YardstickCLI._dispatch_func_notask of <yardstick.cmd.cli.YardstickCLI instance>> /opt/yardstick/yardstick/yardstick/cmd/cli.py in _dispatch_func_notask(self=<yardstick.cmd.cli.YardstickCLI instance>) 138 # dispatch to category parser 139 func = CONF.category.func 140 func(CONF.category) 141 142 def _dispatch_func_task(self, task_id): func = <bound method TaskCommands.do_start of <yardstick.cmd.commands.task.TaskCommands object>> global CONF = <oslo_config.cfg.ConfigOpts object> CONF.category undefined /opt/yardstick/yardstick/yardstick/cmd/commands/task.py in do_start(self=<yardstick.cmd.commands.task.TaskCommands object>, args=<oslo_config.cfg.SubCommandAttr object>, **kwargs={}) 63 else: 64 LOG.info('Task FAILED') 65 raise RuntimeError('Task Failed') 66 67 def _write_error_data(self, error): builtinRuntimeError = <type 'exceptions.RuntimeError'> <type 'exceptions.RuntimeError'>: Task Failed __class__ = <type 'exceptions.RuntimeError'> __delattr__ = <method-wrapper '__delattr__' of exceptions.RuntimeError object> __dict__ = {} __doc__ = 'Unspecified run-time error.' __format__ = <built-in method __format__ of exceptions.RuntimeError object> __getattribute__ = <method-wrapper '__getattribute__' of exceptions.RuntimeError object> __getitem__ = <method-wrapper '__getitem__' of exceptions.RuntimeError object> __getslice__ = <method-wrapper '__getslice__' of exceptions.RuntimeError object> __hash__ = <method-wrapper '__hash__' of exceptions.RuntimeError object> __init__ = <method-wrapper '__init__' of exceptions.RuntimeError object> __new__ = <built-in method __new__ of type object> __reduce__ = <built-in method __reduce__ of exceptions.RuntimeError object> __reduce_ex__ = <built-in method __reduce_ex__ of exceptions.RuntimeError object> __repr__ = <method-wrapper '__repr__' of exceptions.RuntimeError object> __setattr__ = <method-wrapper '__setattr__' of exceptions.RuntimeError object> __setstate__ = <built-in method __setstate__ of exceptions.RuntimeError object> __sizeof__ = <built-in method __sizeof__ of exceptions.RuntimeError object> __str__ = <method-wrapper '__str__' of exceptions.RuntimeError object> __subclasshook__ = <built-in method __subclasshook__ of type object> __unicode__ = <built-in method __unicode__ of exceptions.RuntimeError object> args = ('Task Failed',) message = 'Task Failed' The above is a description of an error in a Python program. Here is the original traceback: Traceback (most recent call last): File "/usr/local/bin/yardstick", line 11, in <module> load_entry_point('yardstick==0.1.dev0', 'console_scripts', 'yardstick')() File "/opt/yardstick/yardstick/yardstick/main.py", line 49, in main YardstickCLI().main(sys.argv[1:]) File "/opt/yardstick/yardstick/yardstick/cmd/cli.py", line 162, in main self._dispatch_func_notask() File "/opt/yardstick/yardstick/yardstick/cmd/cli.py", line 140, in _dispatch_func_notask func(CONF.category) File "/opt/yardstick/yardstick/yardstick/cmd/commands/task.py", line 65, in do_start raise RuntimeError('Task Failed') RuntimeError: Task Failed 2018-01-08 12:41:18,904 [ DEBUG] yardstick.benchmark.runners.base base.py:122 Terminating all runners <<<END>>> I think it is not taking any ip from cidr. Please help me to solve it. Thanks, Saravana ________________________________ Happiest Minds Disclaimer This message is for the sole use of the intended recipient(s) and may contain confidential, proprietary or legally privileged information. Any unauthorized review, use, disclosure or distribution is prohibited. If you are not the original intended recipient of the message, please contact the sender by reply email and destroy all copies of the original message. Happiest Minds Technologies <https://apac01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.happiestminds.com&data=01%7C01%7Csaravanakumar.m%40happiestminds.com%7C648944a57bb24e31c73308d5566baf21%7C7742820587ff4048a64591b337240228%7C0&sdata=y2VHMpwT%2BF0G7tcjmVja%2F8CCRi5aHpdKFfu8becrvt0%3D&reserved=0> ________________________________ ________________________________ Happiest Minds Disclaimer This message is for the sole use of the intended recipient(s) and may contain confidential, proprietary or legally privileged information. Any unauthorized review, use, disclosure or distribution is prohibited. If you are not the original intended recipient of the message, please contact the sender by reply email and destroy all copies of the original message. Happiest Minds Technologies <https://apac01.safelinks.protection.outlook.com/?url=http%3A%2F%2Fwww.happiestminds.com&data=01%7C01%7Csaravanakumar.m%40happiestminds.com%7Ce7f9c157869a4e287cfe08d556766594%7C7742820587ff4048a64591b337240228%7C0&sdata=EGYDu7WSs%2FWRyvNmr3xyXjeRq9ZJnSeboh4S%2BIsO9uc%3D&reserved=0> ________________________________ ________________________________ Happiest Minds Disclaimer This message is for the sole use of the intended recipient(s) and may contain confidential, proprietary or legally privileged information. Any unauthorized review, use, disclosure or distribution is prohibited. If you are not the original intended recipient of the message, please contact the sender by reply email and destroy all copies of the original message. Happiest Minds Technologies <http://www.happiestminds.com> ________________________________
_______________________________________________ opnfv-users mailing list opnfv-users@lists.opnfv.org https://lists.opnfv.org/mailman/listinfo/opnfv-users