root@495131b1afec:~/test/src/test# nosetests -v -s onboarding/onboardingTest.py:onboarding_exchange.test_exampleservice_health
Unable to connect to test host prod.cord.lab
result.ok, result.status_code are True and 200
Algo: ... Pinging ONBOARDED SERVICE mysite_vsg-3 at IP 172.27.0.4
ONBOARDED SERVICE mysite_vsg-3 at IP 172.27.0.4 is reachable
Pinging ONBOARDED SERVICE mysite_exampleservice-2 at IP 172.27.0.3
ONBOARDED SERVICE mysite_exampleservice-2 at IP 172.27.0.3 is reachable
Pinging ONBOARDED SERVICE mysite_vsg-1 at IP 172.27.0.2
ONBOARDED SERVICE mysite_vsg-1 at IP 172.27.0.2 is reachable

Test test_exampleservice_health has no errors and warnings in the logs
ok

----------------------------------------------------------------------
Ran 1 test in 10.722s

OK

**************************************************
root@495131b1afec:~/test/src/test# nosetests -v -s onboarding/onboardingTest.py:onboarding_exchange.test_exampleservice_for_login
Unable to connect to test host prod.cord.lab
result.ok, result.status_code are True and 200
Algo: ... Checking if ONBOARDING SERVICE at 172.27.0.4 is accessible from compute node sorrowful-cat.cord.lab
OK
Checking if ONBOARDING SERVICE at 172.27.0.3 is accessible from compute node sorrowful-cat.cord.lab
OK
Checking if ONBOARDING SERVICE at 172.27.0.2 is accessible from compute node sorrowful-cat.cord.lab
OK

Test test_exampleservice_for_login has errors and warnings

2017-06-13 07:35:09,846 | WARN  | ew I/O worker #2 | PacketManager                    | 131 - org.onosproject.onos-core-net - 1.8.7 | Packet processor org.opencord.cordvtn.impl.CordVtnDhcpProxy$InternalPacketProcessor@64be463 threw an exception
java.lang.IllegalArgumentException
Exception:
        at com.google.common.base.Preconditions.checkArgument(Preconditions.java:108)[44:com.google.guava:19.0.0]
        at org.opencord.cordvtn.api.core.Instance.of(Instance.java:70)[169:org.opencord.vtn:1.2.0.SNAPSHOT]
        at org.opencord.cordvtn.impl.CordVtnDhcpProxy$InternalPacketProcessor.processDhcp(CordVtnDhcpProxy.java:220)[169:org.opencord.vtn:1.2.0.SNAPSHOT]
        at org.opencord.cordvtn.impl.CordVtnDhcpProxy$InternalPacketProcessor.process(CordVtnDhcpProxy.java:198)[169:org.opencord.vtn:1.2.0.SNAPSHOT]
        at org.onosproject.net.packet.impl.PacketManager$InternalPacketProviderService.processPacket(PacketManager.java:373)[131:org.onosproject.onos-core-net:1.8.7]
        at org.onosproject.provider.of.packet.impl.OpenFlowPacketProvider$InternalPacketProvider.handlePacket(OpenFlowPacketProvider.java:171)[176:org.onosproject.onos-providers-openflow-packet:1.8.7]
        at org.onosproject.openflow.controller.impl.OpenFlowControllerImpl.processPacket(OpenFlowControllerImpl.java:316)[174:org.onosproject.onos-protocols-openflow-ctl:1.8.7]
        at org.onosproject.openflow.controller.impl.OpenFlowControllerImpl$OpenFlowSwitchAgent.processMessage(OpenFlowControllerImpl.java:727)[174:org.onosproject.onos-protocols-openflow-ctl:1.8.7]
        at org.onosproject.openflow.controller.driver.AbstractOpenFlowSwitch.handleMessage(AbstractOpenFlowSwitch.java:266)[161:org.onosproject.onos-protocols-openflow-api:1.8.7]
        at org.onosproject.openflow.controller.impl.OFChannelHandler.dispatchMessage(OFChannelHandler.java:1254)[174:org.onosproject.onos-protocols-openflow-ctl:1.8.7]
ok

----------------------------------------------------------------------
Ran 1 test in 14.237s

OK
**************************************************
root@495131b1afec:~/test/src/test# nosetests -v -s onboarding/onboardingTest.py:onboarding_exchange.test_exampleservice_for_default_route_through_testclient
Unable to connect to test host prod.cord.lab
result.ok, result.status_code are True and 200
Algo: ...
Test test_exampleservice_for_default_route_through_testclient has errors and warnings

2017-06-13 07:36:40,911 | WARN  | ew I/O worker #2 | PacketManager                    | 131 - org.onosproject.onos-core-net - 1.8.7 | Packet processor org.opencord.cordvtn.impl.CordVtnDhcpProxy$InternalPacketProcessor@64be463 threw an exception
java.lang.IllegalArgumentException
Exception:
        at com.google.common.base.Preconditions.checkArgument(Preconditions.java:108)[44:com.google.guava:19.0.0]
        at org.opencord.cordvtn.api.core.Instance.of(Instance.java:70)[169:org.opencord.vtn:1.2.0.SNAPSHOT]
        at org.opencord.cordvtn.impl.CordVtnDhcpProxy$InternalPacketProcessor.processDhcp(CordVtnDhcpProxy.java:220)[169:org.opencord.vtn:1.2.0.SNAPSHOT]
        at org.opencord.cordvtn.impl.CordVtnDhcpProxy$InternalPacketProcessor.process(CordVtnDhcpProxy.java:198)[169:org.opencord.vtn:1.2.0.SNAPSHOT]
        at org.onosproject.net.packet.impl.PacketManager$InternalPacketProviderService.processPacket(PacketManager.java:373)[131:org.onosproject.onos-core-net:1.8.7]
        at org.onosproject.provider.of.packet.impl.OpenFlowPacketProvider$InternalPacketProvider.handlePacket(OpenFlowPacketProvider.java:171)[176:org.onosproject.onos-providers-openflow-packet:1.8.7]
        at org.onosproject.openflow.controller.impl.OpenFlowControllerImpl.processPacket(OpenFlowControllerImpl.java:316)[174:org.onosproject.onos-protocols-openflow-ctl:1.8.7]
        at org.onosproject.openflow.controller.impl.OpenFlowControllerImpl$OpenFlowSwitchAgent.processMessage(OpenFlowControllerImpl.java:727)[174:org.onosproject.onos-protocols-openflow-ctl:1.8.7]
        at org.onosproject.openflow.controller.driver.AbstractOpenFlowSwitch.handleMessage(AbstractOpenFlowSwitch.java:266)[161:org.onosproject.onos-protocols-openflow-api:1.8.7]
        at org.onosproject.openflow.controller.impl.OFChannelHandler.dispatchMessage(OFChannelHandler.java:1254)[174:org.onosproject.onos-protocols-openflow-ctl:1.8.7]
ok

----------------------------------------------------------------------
Ran 1 test in 18.468s

OK
**************************************************
root@495131b1afec:~/test/src/test# nosetests -v -s onboarding/onboardingTest.py:onboarding_exchange.test_exampleservice_for_service_access_through_testclientUnable to connect to test host prod.cord.lab
result.ok, result.status_code are True and 200
Algo: ...
Test test_exampleservice_for_service_access_through_testclient has no errors and warnings in the logs
ok

----------------------------------------------------------------------
Ran 1 test in 11.682s

OK

**************************************************
root@495131b1afec:~/test/src/test# nosetests -v -s onboarding/onboardingTest.py:onboarding_exchange.test_exampleservice_for_service_reachability_from_cord_tester
Unable to connect to test host prod.cord.lab
result.ok, result.status_code are True and 200
Algo: ... mv: cannot move '/etc/resolv.conf.dhclient-new.18668' to '/etc/resolv.conf': Device or resource busy
route is 10.6.1.194

Test test_exampleservice_for_service_reachability_from_cord_tester has no errors and warnings in the logs
ok

----------------------------------------------------------------------
Ran 1 test in 12.372s

OK

**************************************************
root@495131b1afec:~/test/src/test# nosetests -v -s onboarding/onboardingTest.py:onboarding_exchange.test_exampleservice_operational_status_from_testclient
Unable to connect to test host prod.cord.lab
result.ok, result.status_code are True and 200
Algo: ...
Test test_exampleservice_operational_status_from_testclient has errors and warnings

2017-06-13 09:36:34,324 | WARN  | ew I/O worker #2 | PacketManager                    | 131 - org.onosproject.onos-core-net - 1.8.7 | Packet processor org.opencord.cordvtn.impl.CordVtnDhcpProxy$InternalPacketProcessor@64be463 threw an exception
java.lang.IllegalArgumentException
Exception:
        at com.google.common.base.Preconditions.checkArgument(Preconditions.java:108)[44:com.google.guava:19.0.0]
        at org.opencord.cordvtn.api.core.Instance.of(Instance.java:70)[169:org.opencord.vtn:1.2.0.SNAPSHOT]
        at org.opencord.cordvtn.impl.CordVtnDhcpProxy$InternalPacketProcessor.processDhcp(CordVtnDhcpProxy.java:220)[169:org.opencord.vtn:1.2.0.SNAPSHOT]
        at org.opencord.cordvtn.impl.CordVtnDhcpProxy$InternalPacketProcessor.process(CordVtnDhcpProxy.java:198)[169:org.opencord.vtn:1.2.0.SNAPSHOT]
        at org.onosproject.net.packet.impl.PacketManager$InternalPacketProviderService.processPacket(PacketManager.java:373)[131:org.onosproject.onos-core-net:1.8.7]
        at org.onosproject.provider.of.packet.impl.OpenFlowPacketProvider$InternalPacketProvider.handlePacket(OpenFlowPacketProvider.java:171)[176:org.onosproject.onos-providers-openflow-packet:1.8.7]
        at org.onosproject.openflow.controller.impl.OpenFlowControllerImpl.processPacket(OpenFlowControllerImpl.java:316)[174:org.onosproject.onos-protocols-openflow-ctl:1.8.7]
        at org.onosproject.openflow.controller.impl.OpenFlowControllerImpl$OpenFlowSwitchAgent.processMessage(OpenFlowControllerImpl.java:727)[174:org.onosproject.onos-protocols-openflow-ctl:1.8.7]
        at org.onosproject.openflow.controller.driver.AbstractOpenFlowSwitch.handleMessage(AbstractOpenFlowSwitch.java:266)[161:org.onosproject.onos-protocols-openflow-api:1.8.7]
        at org.onosproject.openflow.controller.impl.OFChannelHandler.dispatchMessage(OFChannelHandler.java:1254)[174:org.onosproject.onos-protocols-openflow-ctl:1.8.7]
ok

----------------------------------------------------------------------
Ran 1 test in 12.733s

OK

**************************************************
root@495131b1afec:~/test/src/test# nosetests -v -s onboarding/onboardingTest.py:onboarding_exchange.test_exampleservice_operational_access_from_cord_tester
Unable to connect to test host prod.cord.lab
result.ok, result.status_code are True and 200
Algo: ... RTNETLINK answers: File exists
mv: cannot move '/etc/resolv.conf.dhclient-new.20722' to '/etc/resolv.conf': Device or resource busy
route is 10.6.1.194
RTNETLINK answers: File exists

Test test_exampleservice_operational_access_from_cord_tester has no errors and warnings in the logs
ok

----------------------------------------------------------------------
Ran 1 test in 10.716s

OK

**************************************************
root@495131b1afec:~/test/src/test# nosetests -v -s onboarding/onboardingTest.py:onboarding_exchange.test_exampleservice_for_service_message
Unable to connect to test host prod.cord.lab
result.ok, result.status_code are True and 200
Algo: ... mv: cannot move '/etc/resolv.conf.dhclient-new.20804' to '/etc/resolv.conf': Device or resource busy
route is 10.6.1.194

Test test_exampleservice_for_service_message has no errors and warnings in the logs
ok

----------------------------------------------------------------------
Ran 1 test in 10.925s

OK

**************************************************
root@495131b1afec:~/test/src/test# nosetests -v -s onboarding/onboardingTest.py:onboarding_exchange.test_exampleservice_for_tenant_message
Unable to connect to test host prod.cord.lab
result.ok, result.status_code are True and 200
Algo: ... mv: cannot move '/etc/resolv.conf.dhclient-new.20886' to '/etc/resolv.conf': Device or resource busy
route is 10.6.1.194

Test test_exampleservice_for_tenant_message has no errors and warnings in the logs
ok

----------------------------------------------------------------------
Ran 1 test in 11.205s

OK

*************************************************
root@495131b1afec:~/test/src/test# nosetests -v -s onboarding/onboardingTest.py:onboarding_exchange.test_exampleservice_access_after_subscriber_interface_toggle
Unable to connect to test host prod.cord.lab
result.ok, result.status_code are False and 409
Algo: ... mv: cannot move '/etc/resolv.conf.dhclient-new.21179' to '/etc/resolv.conf': Device or resource busy
route is 10.6.1.194
RTNETLINK answers: File exists
mv: cannot move '/etc/resolv.conf.dhclient-new.21204' to '/etc/resolv.conf': Device or resource busy
route is 10.6.1.194

Test test_exampleservice_access_after_subscriber_interface_toggle has no errors and warnings in the logs
ok

----------------------------------------------------------------------
Ran 1 test in 14.538s

OK
***************************************************
root@495131b1afec:~/test/src/test# nosetests -v -s onboarding/onboardingTest.py:onboarding_exchange.test_exampleservice_access_after_service_paused
Unable to connect to test host prod.cord.lab
result.ok, result.status_code are True and 200
Algo: ... mv: cannot move '/etc/resolv.conf.dhclient-new.21287' to '/etc/resolv.conf': Device or resource busy
route is 10.6.1.194
Pausing example service running vm

Test test_exampleservice_access_after_service_paused has errors and warnings

2017-06-13 10:07:30,728 | WARN  | ew I/O worker #2 | PacketManager                    | 131 - org.onosproject.onos-core-net - 1.8.7 | Packet processor org.opencord.cordvtn.impl.CordVtnDhcpProxy$InternalPacketProcessor@64be463 threw an exception
java.lang.IllegalArgumentException
Exception:
        at com.google.common.base.Preconditions.checkArgument(Preconditions.java:108)[44:com.google.guava:19.0.0]
        at org.opencord.cordvtn.api.core.Instance.of(Instance.java:70)[169:org.opencord.vtn:1.2.0.SNAPSHOT]
        at org.opencord.cordvtn.impl.CordVtnDhcpProxy$InternalPacketProcessor.processDhcp(CordVtnDhcpProxy.java:220)[169:org.opencord.vtn:1.2.0.SNAPSHOT]
        at org.opencord.cordvtn.impl.CordVtnDhcpProxy$InternalPacketProcessor.process(CordVtnDhcpProxy.java:198)[169:org.opencord.vtn:1.2.0.SNAPSHOT]
        at org.onosproject.net.packet.impl.PacketManager$InternalPacketProviderService.processPacket(PacketManager.java:373)[131:org.onosproject.onos-core-net:1.8.7]
        at org.onosproject.provider.of.packet.impl.OpenFlowPacketProvider$InternalPacketProvider.handlePacket(OpenFlowPacketProvider.java:171)[176:org.onosproject.onos-providers-openflow-packet:1.8.7]
        at org.onosproject.openflow.controller.impl.OpenFlowControllerImpl.processPacket(OpenFlowControllerImpl.java:316)[174:org.onosproject.onos-protocols-openflow-ctl:1.8.7]
        at org.onosproject.openflow.controller.impl.OpenFlowControllerImpl$OpenFlowSwitchAgent.processMessage(OpenFlowControllerImpl.java:727)[174:org.onosproject.onos-protocols-openflow-ctl:1.8.7]
        at org.onosproject.openflow.controller.driver.AbstractOpenFlowSwitch.handleMessage(AbstractOpenFlowSwitch.java:266)[161:org.onosproject.onos-protocols-openflow-api:1.8.7]
        at org.onosproject.openflow.controller.impl.OFChannelHandler.dispatchMessage(OFChannelHandler.java:1254)[174:org.onosproject.onos-protocols-openflow-ctl:1.8.7]
ok

----------------------------------------------------------------------
Ran 1 test in 21.900s

OK

*************************************************
root@495131b1afec:~/test/src/test# nosetests -v -s onboarding/onboardingTest.py:onboarding_exchange.test_exampleservice_access_after_service_restart
Unable to connect to test host prod.cord.lab
result.ok, result.status_code are True and 200
Algo: ... RTNETLINK answers: File exists
mv: cannot move '/etc/resolv.conf.dhclient-new.22044' to '/etc/resolv.conf': Device or resource busy
route is 10.6.1.194
Restarting example service running vm
RTNETLINK answers: No such process

Test test_exampleservice_access_after_service_restart has errors and warnings

2017-06-13 10:26:20,898 | WARN  | ew I/O worker #2 | PacketManager                    | 131 - org.onosproject.onos-core-net - 1.8.7 | Packet processor org.opencord.cordvtn.impl.CordVtnDhcpProxy$InternalPacketProcessor@64be463 threw an exception
java.lang.IllegalArgumentException
2017-06-13 10:26:21,341 | WARN  | source-registrar | ResourceDeviceListener           | 131 - org.onosproject.onos-core-net - 1.8.7 | Failed to register Bandwidth for [of:0000525400009f10, 19]
2017-06-13 10:26:21,941 | WARN  | source-registrar | ResourceDeviceListener           | 131 - org.onosproject.onos-core-net - 1.8.7 | Failed to register Bandwidth for [of:0000525400009f10, 20]
2017-06-13 10:26:22,538 | WARN  | source-registrar | ResourceDeviceListener           | 131 - org.onosproject.onos-core-net - 1.8.7 | Failed to register Bandwidth for [of:0000525400009f10, 21]
2017-06-13 10:26:37,144 | WARN  | ew I/O worker #2 | PacketManager                    | 131 - org.onosproject.onos-core-net - 1.8.7 | Packet processor org.opencord.cordvtn.impl.CordVtnDhcpProxy$InternalPacketProcessor@64be463 threw an exception
java.lang.IllegalArgumentException
Exception:
        at com.google.common.base.Preconditions.checkArgument(Preconditions.java:108)[44:com.google.guava:19.0.0]
        at org.opencord.cordvtn.api.core.Instance.of(Instance.java:70)[169:org.opencord.vtn:1.2.0.SNAPSHOT]
        at org.opencord.cordvtn.impl.CordVtnDhcpProxy$InternalPacketProcessor.processDhcp(CordVtnDhcpProxy.java:220)[169:org.opencord.vtn:1.2.0.SNAPSHOT]
        at org.opencord.cordvtn.impl.CordVtnDhcpProxy$InternalPacketProcessor.process(CordVtnDhcpProxy.java:198)[169:org.opencord.vtn:1.2.0.SNAPSHOT]
        at org.onosproject.net.packet.impl.PacketManager$InternalPacketProviderService.processPacket(PacketManager.java:373)[131:org.onosproject.onos-core-net:1.8.7]
        at org.onosproject.provider.of.packet.impl.OpenFlowPacketProvider$InternalPacketProvider.handlePacket(OpenFlowPacketProvider.java:171)[176:org.onosproject.onos-providers-openflow-packet:1.8.7]
        at org.onosproject.openflow.controller.impl.OpenFlowControllerImpl.processPacket(OpenFlowControllerImpl.java:316)[174:org.onosproject.onos-protocols-openflow-ctl:1.8.7]
        at org.onosproject.openflow.controller.impl.OpenFlowControllerImpl$OpenFlowSwitchAgent.processMessage(OpenFlowControllerImpl.java:727)[174:org.onosproject.onos-protocols-openflow-ctl:1.8.7]
        at org.onosproject.openflow.controller.driver.AbstractOpenFlowSwitch.handleMessage(AbstractOpenFlowSwitch.java:266)[161:org.onosproject.onos-protocols-openflow-api:1.8.7]
        at org.onosproject.openflow.controller.impl.OFChannelHandler.dispatchMessage(OFChannelHandler.java:1254)[174:org.onosproject.onos-protocols-openflow-ctl:1.8.7]
ok

----------------------------------------------------------------------
Ran 1 test in 48.066s

OK
***************************************************
root@495131b1afec:~/test/src/test# nosetests -v -s onboarding/onboardingTest.py:onboarding_exchange.test_exampleservice_access_after_service_stop
Unable to connect to test host prod.cord.lab
result.ok, result.status_code are True and 200
Algo: ... RTNETLINK answers: File exists
mv: cannot move '/etc/resolv.conf.dhclient-new.23650' to '/etc/resolv.conf': Device or resource busy
route is 10.6.1.194
Stopping example service running vm
RTNETLINK answers: No such process

Test test_exampleservice_access_after_service_stop has errors and warnings

2017-06-13 11:15:34,207 | WARN  | source-registrar | ResourceDeviceListener           | 131 - org.onosproject.onos-core-net - 1.8.7 | Failed to register Bandwidth for [of:0000525400009f10, 34]
2017-06-13 11:15:34,853 | WARN  | source-registrar | ResourceDeviceListener           | 131 - org.onosproject.onos-core-net - 1.8.7 | Failed to register Bandwidth for [of:0000525400009f10, 35]
2017-06-13 11:15:35,566 | WARN  | source-registrar | ResourceDeviceListener           | 131 - org.onosproject.onos-core-net - 1.8.7 | Failed to register Bandwidth for [of:0000525400009f10, 36]
2017-06-13 11:16:12,285 | WARN  | ew I/O worker #2 | PacketManager                    | 131 - org.onosproject.onos-core-net - 1.8.7 | Packet processor org.opencord.cordvtn.impl.CordVtnDhcpProxy$InternalPacketProcessor@64be463 threw an exception
java.lang.IllegalArgumentException
2017-06-13 11:16:15,537 | WARN  | ew I/O worker #2 | PacketManager                    | 131 - org.onosproject.onos-core-net - 1.8.7 | Packet processor org.opencord.cordvtn.impl.CordVtnDhcpProxy$InternalPacketProcessor@64be463 threw an exception
java.lang.IllegalArgumentException
2017-06-13 11:16:20,552 | WARN  | ew I/O worker #2 | PacketManager                    | 131 - org.onosproject.onos-core-net - 1.8.7 | Packet processor org.opencord.cordvtn.impl.CordVtnDhcpProxy$InternalPacketProcessor@64be463 threw an exception
java.lang.IllegalArgumentException
2017-06-13 11:16:27,806 | WARN  | ew I/O worker #2 | PacketManager                    | 131 - org.onosproject.onos-core-net - 1.8.7 | Packet processor org.opencord.cordvtn.impl.CordVtnDhcpProxy$InternalPacketProcessor@64be463 threw an exception
java.lang.IllegalArgumentException
Exception:
        at com.google.common.base.Preconditions.checkArgument(Preconditions.java:108)[44:com.google.guava:19.0.0]
        at org.opencord.cordvtn.api.core.Instance.of(Instance.java:70)[169:org.opencord.vtn:1.2.0.SNAPSHOT]
        at org.opencord.cordvtn.impl.CordVtnDhcpProxy$InternalPacketProcessor.processDhcp(CordVtnDhcpProxy.java:220)[169:org.opencord.vtn:1.2.0.SNAPSHOT]
        at org.opencord.cordvtn.impl.CordVtnDhcpProxy$InternalPacketProcessor.process(CordVtnDhcpProxy.java:198)[169:org.opencord.vtn:1.2.0.SNAPSHOT]
        at org.onosproject.net.packet.impl.PacketManager$InternalPacketProviderService.processPacket(PacketManager.java:373)[131:org.onosproject.onos-core-net:1.8.7]
        at org.onosproject.provider.of.packet.impl.OpenFlowPacketProvider$InternalPacketProvider.handlePacket(OpenFlowPacketProvider.java:171)[176:org.onosproject.onos-providers-openflow-packet:1.8.7]
        at org.onosproject.openflow.controller.impl.OpenFlowControllerImpl.processPacket(OpenFlowControllerImpl.java:316)[174:org.onosproject.onos-protocols-openflow-ctl:1.8.7]
        at org.onosproject.openflow.controller.impl.OpenFlowControllerImpl$OpenFlowSwitchAgent.processMessage(OpenFlowControllerImpl.java:727)[174:org.onosproject.onos-protocols-openflow-ctl:1.8.7]
        at org.onosproject.openflow.controller.driver.AbstractOpenFlowSwitch.handleMessage(AbstractOpenFlowSwitch.java:266)[161:org.onosproject.onos-protocols-openflow-api:1.8.7]
        at org.onosproject.openflow.controller.impl.OFChannelHandler.dispatchMessage(OFChannelHandler.java:1254)[174:org.onosproject.onos-protocols-openflow-ctl:1.8.7]
ok

----------------------------------------------------------------------
Ran 1 test in 79.389s

OK
root@495131b1afec:~/test/src/test#

**************************************************
root@495131b1afec:~/test/src/test# nosetests -v -s onboarding/onboardingTest.py:onboarding_exchange.test_exampleservice_for_service_message_after_service_stop_and_start
Unable to connect to test host prod.cord.lab
result.ok, result.status_code are False and 409
Algo: ... RTNETLINK answers: File exists
mv: cannot move '/etc/resolv.conf.dhclient-new.24066' to '/etc/resolv.conf': Device or resource busy
route is 10.6.1.194
Stopping example service running VM
RTNETLINK answers: No such process

Test test_exampleservice_for_service_message_after_service_stop_and_start has errors and warnings

2017-06-13 11:22:22,025 | WARN  | source-registrar | ResourceDeviceListener           | 131 - org.onosproject.onos-core-net - 1.8.7 | Failed to register Bandwidth for [of:0000525400009f10, 40]
2017-06-13 11:22:22,731 | WARN  | source-registrar | ResourceDeviceListener           | 131 - org.onosproject.onos-core-net - 1.8.7 | Failed to register Bandwidth for [of:0000525400009f10, 41]
2017-06-13 11:22:23,416 | WARN  | source-registrar | ResourceDeviceListener           | 131 - org.onosproject.onos-core-net - 1.8.7 | Failed to register Bandwidth for [of:0000525400009f10, 42]
ok

----------------------------------------------------------------------
Ran 1 test in 49.291s

OK

**************************************************
root@495131b1afec:~/test/src/test# nosetests -v -s onboarding/onboardingTest.py:onboarding_exchange.test_exampleservice_for_tenant_message_after_service_restart
Unable to connect to test host prod.cord.lab
result.ok, result.status_code are True and 200
Algo: ... RTNETLINK answers: File exists
mv: cannot move '/etc/resolv.conf.dhclient-new.24656' to '/etc/resolv.conf': Device or resource busy
route is 10.6.1.194
Restarting example service running VM
RTNETLINK answers: No such process

Test test_exampleservice_for_tenant_message_after_service_restart has errors and warnings

2017-06-13 11:32:22,858 | WARN  | source-registrar | ResourceDeviceListener           | 131 - org.onosproject.onos-core-net - 1.8.7 | Failed to register Bandwidth for [of:0000525400009f10, 46]
2017-06-13 11:32:23,457 | WARN  | source-registrar | ResourceDeviceListener           | 131 - org.onosproject.onos-core-net - 1.8.7 | Failed to register Bandwidth for [of:0000525400009f10, 47]
2017-06-13 11:32:24,056 | WARN  | source-registrar | ResourceDeviceListener           | 131 - org.onosproject.onos-core-net - 1.8.7 | Failed to register Bandwidth for [of:0000525400009f10, 48]
ok

----------------------------------------------------------------------
Ran 1 test in 44.383s

OK

**************************************************
root@495131b1afec:~/test/src/test# nosetests -v -s onboarding/onboardingTest.py:onboarding_exchange.test_exampleservice_access_after_vcpe_instance_restart
Unable to connect to test host prod.cord.lab
result.ok, result.status_code are True and 200
Algo: ... RTNETLINK answers: File exists
mv: cannot move '/etc/resolv.conf.dhclient-new.26158' to '/etc/resolv.conf': Device or resource busy
route is 10.6.1.194
RTNETLINK answers: File exists
mv: cannot move '/etc/resolv.conf.dhclient-new.26185' to '/etc/resolv.conf': Device or resource busy
route is 10.6.1.194
RTNETLINK answers: File exists

Test test_exampleservice_access_after_vcpe_instance_restart has errors and warnings

2017-06-13 11:52:02,204 | WARN  | ew I/O worker #2 | PacketManager                    | 131 - org.onosproject.onos-core-net - 1.8.7 | Packet processor org.opencord.cordvtn.impl.CordVtnDhcpProxy$InternalPacketProcessor@64be463 threw an exception
java.lang.IllegalArgumentException
Exception:
        at com.google.common.base.Preconditions.checkArgument(Preconditions.java:108)[44:com.google.guava:19.0.0]
        at org.opencord.cordvtn.api.core.Instance.of(Instance.java:70)[169:org.opencord.vtn:1.2.0.SNAPSHOT]
        at org.opencord.cordvtn.impl.CordVtnDhcpProxy$InternalPacketProcessor.processDhcp(CordVtnDhcpProxy.java:220)[169:org.opencord.vtn:1.2.0.SNAPSHOT]
        at org.opencord.cordvtn.impl.CordVtnDhcpProxy$InternalPacketProcessor.process(CordVtnDhcpProxy.java:198)[169:org.opencord.vtn:1.2.0.SNAPSHOT]
        at org.onosproject.net.packet.impl.PacketManager$InternalPacketProviderService.processPacket(PacketManager.java:373)[131:org.onosproject.onos-core-net:1.8.7]
        at org.onosproject.provider.of.packet.impl.OpenFlowPacketProvider$InternalPacketProvider.handlePacket(OpenFlowPacketProvider.java:171)[176:org.onosproject.onos-providers-openflow-packet:1.8.7]
        at org.onosproject.openflow.controller.impl.OpenFlowControllerImpl.processPacket(OpenFlowControllerImpl.java:316)[174:org.onosproject.onos-protocols-openflow-ctl:1.8.7]
        at org.onosproject.openflow.controller.impl.OpenFlowControllerImpl$OpenFlowSwitchAgent.processMessage(OpenFlowControllerImpl.java:727)[174:org.onosproject.onos-protocols-openflow-ctl:1.8.7]
        at org.onosproject.openflow.controller.driver.AbstractOpenFlowSwitch.handleMessage(AbstractOpenFlowSwitch.java:266)[161:org.onosproject.onos-protocols-openflow-api:1.8.7]
        at org.onosproject.openflow.controller.impl.OFChannelHandler.dispatchMessage(OFChannelHandler.java:1254)[174:org.onosproject.onos-protocols-openflow-ctl:1.8.7]
ok

----------------------------------------------------------------------
Ran 1 test in 26.920s

OK

**************************************************
root@495131b1afec:~/test/src/test# nosetests -v -s onboarding/onboardingTest.py:onboarding_exchange.test_exampleservice_access_after_vcpe_instance_wan_interface_toggle
Unable to connect to test host prod.cord.lab
result.ok, result.status_code are True and 200
Algo: ... RTNETLINK answers: File exists
mv: cannot move '/etc/resolv.conf.dhclient-new.2825' to '/etc/resolv.conf': Device or resource busy
route is 10.6.1.194
RTNETLINK answers: File exists
mv: cannot move '/etc/resolv.conf.dhclient-new.2876' to '/etc/resolv.conf': Device or resource busy
route is 10.6.1.194
RTNETLINK answers: File exists
RTNETLINK answers: File exists
mv: cannot move '/etc/resolv.conf.dhclient-new.2907' to '/etc/resolv.conf': Device or resource busy
route is 10.6.1.194
RTNETLINK answers: File exists

Test test_exampleservice_access_after_vcpe_instance_wan_interface_toggle has errors and warnings

2017-06-13 13:05:22,040 | WARN  | ew I/O worker #2 | PacketManager                    | 131 - org.onosproject.onos-core-net - 1.8.7 | Packet processor org.opencord.cordvtn.impl.CordVtnDhcpProxy$InternalPacketProcessor@64be463 threw an exception
java.lang.IllegalArgumentException
2017-06-13 13:05:34,646 | WARN  | ew I/O worker #2 | PacketManager                    | 131 - org.onosproject.onos-core-net - 1.8.7 | Packet processor org.opencord.cordvtn.impl.CordVtnDhcpProxy$InternalPacketProcessor@64be463 threw an exception
java.lang.IllegalArgumentException
Exception:
        at com.google.common.base.Preconditions.checkArgument(Preconditions.java:108)[44:com.google.guava:19.0.0]
        at org.opencord.cordvtn.api.core.Instance.of(Instance.java:70)[169:org.opencord.vtn:1.2.0.SNAPSHOT]
        at org.opencord.cordvtn.impl.CordVtnDhcpProxy$InternalPacketProcessor.processDhcp(CordVtnDhcpProxy.java:220)[169:org.opencord.vtn:1.2.0.SNAPSHOT]
        at org.opencord.cordvtn.impl.CordVtnDhcpProxy$InternalPacketProcessor.process(CordVtnDhcpProxy.java:198)[169:org.opencord.vtn:1.2.0.SNAPSHOT]
        at org.onosproject.net.packet.impl.PacketManager$InternalPacketProviderService.processPacket(PacketManager.java:373)[131:org.onosproject.onos-core-net:1.8.7]
        at org.onosproject.provider.of.packet.impl.OpenFlowPacketProvider$InternalPacketProvider.handlePacket(OpenFlowPacketProvider.java:171)[176:org.onosproject.onos-providers-openflow-packet:1.8.7]
        at org.onosproject.openflow.controller.impl.OpenFlowControllerImpl.processPacket(OpenFlowControllerImpl.java:316)[174:org.onosproject.onos-protocols-openflow-ctl:1.8.7]
        at org.onosproject.openflow.controller.impl.OpenFlowControllerImpl$OpenFlowSwitchAgent.processMessage(OpenFlowControllerImpl.java:727)[174:org.onosproject.onos-protocols-openflow-ctl:1.8.7]
        at org.onosproject.openflow.controller.driver.AbstractOpenFlowSwitch.handleMessage(AbstractOpenFlowSwitch.java:266)[161:org.onosproject.onos-protocols-openflow-api:1.8.7]
        at org.onosproject.openflow.controller.impl.OFChannelHandler.dispatchMessage(OFChannelHandler.java:1254)[174:org.onosproject.onos-protocols-openflow-ctl:1.8.7]
ok

----------------------------------------------------------------------
Ran 1 test in 40.789s

OK

**************************************************
root@495131b1afec:~/test/src/test# nosetests -v -s onboarding/onboardingTest.py:onboarding_exchange.test_exampleservice_access_after_firewall_rule_added_to_drop_service_running_server_in_vcpe_instance
Unable to connect to test host prod.cord.lab
result.ok, result.status_code are True and 200
Algo: ... RTNETLINK answers: File exists
mv: cannot move '/etc/resolv.conf.dhclient-new.3568' to '/etc/resolv.conf': Device or resource busy
route is 10.6.1.194

Test test_exampleservice_access_after_firewall_rule_added_to_drop_service_running_server_in_vcpe_instance has no errors and warnings in the logs
ok

----------------------------------------------------------------------
Ran 1 test in 23.103s

OK

*************************************************
root@495131b1afec:~/test/src/test# nosetests -v -s onboarding/onboardingTest.py:onboarding_exchange.test_exampleservice_xos_subcriber_access_exampleservice
Unable to connect to test host prod.cord.lab
result.ok, result.status_code are True and 200
Algo: ... index and its type are 0, <type 'int'>
get url... http://xos:9000/api/tenant/cord/subscriber/
Test passed: 200: [{"humanReadableName":"cordSubscriber-1","id":1,"features":{"cdn":false,"uplink_speed":1000000000,"downlink_speed":1000000000,"uverse":true,"status":"enabled"},"identity":{"account_num":"123","name":"My House"}},{"humanReadableName":"cordSubscriber-3","id":3,"features":{"cdn":true,"uplink_speed":1000000000,"downlink_speed":1000000000,"uverse":true,"status":"enabled"},"identity":{"account_num":"200","name":"My House 0"}},{"humanReadableName":"cordSubscriber-4","id":4,"features":{"cdn":true,"uplink_speed":1000000000,"downlink_speed":1000000000,"uverse":true,"status":"enabled"},"identity":{"account_num":"201","name":"My House 1"}},{"humanReadableName":"cordSubscriber-5","id":5,"features":{"cdn":true,"uplink_speed":1000000000,"downlink_speed":1000000000,"uverse":true,"status":"enabled"},"identity":{"account_num":"202","name":"My House 2"}},{"humanReadableName":"cordSubscriber-6","id":6,"features":{"cdn":true,"uplink_speed":1000000000,"downlink_speed":1000000000,"uverse":true,"status":"enabled"},"identity":{"account_num":"203","name":"My House 3"}},{"humanReadableName":"cordSubscriber-7","id":7,"features":{"cdn":true,"uplink_speed":1000000000,"downlink_speed":1000000000,"uverse":true,"status":"enabled"},"identity":{"account_num":"204","name":"My House 4"}}]
RTNETLINK answers: File exists
mv: cannot move '/etc/resolv.conf.dhclient-new.3879' to '/etc/resolv.conf': Device or resource busy
route is 10.6.1.194
Deleting tenant with s_tag: 304, c_tag: 304
get url... http://xos:9000/api/tenant/cord/volt/
Test passed: 200: [{"humanReadableName":"VOLTTenantForAPI-7","id":7,"service_specific_id":"123","s_tag":"222","c_tag":"111","subscriber":1,"related":{"instance_id":1,"instance_name":"mysite_vsg","vsg_id":8,"wan_container_ip":"10.6.1.131","compute_node_name":"sorrowful-cat"}},{"humanReadableName":"VOLTTenantForAPI-16","id":16,"service_specific_id":null,"s_tag":"304","c_tag":"304","subscriber":3,"related":{}},{"humanReadableName":"VOLTTenantForAPI-19","id":19,"service_specific_id":null,"s_tag":"304","c_tag":"305","subscriber":4,"related":{"instance_id":3,"instance_name":"mysite_vsg","vsg_id":20,"wan_container_ip":"10.6.1.135","compute_node_name":"sorrowful-cat"}},{"humanReadableName":"VOLTTenantForAPI-22","id":22,"service_specific_id":null,"s_tag":"304","c_tag":"306","subscriber":5,"related":{"instance_id":3,"instance_name":"mysite_vsg","vsg_id":23,"wan_container_ip":"10.6.1.136","compute_node_name":"sorrowful-cat"}},{"humanReadableName":"VOLTTenantForAPI-25","id":25,"service_specific_id":null,"s_tag":"304","c_tag":"307","subscriber":6,"related":{"instance_id":3,"instance_name":"mysite_vsg","vsg_id":26,"wan_container_ip":"10.6.1.137","compute_node_name":"sorrowful-cat"}},{"humanReadableName":"VOLTTenantForAPI-28","id":28,"service_specific_id":null,"s_tag":"304","c_tag":"308","subscriber":7,"related":{"instance_id":3,"instance_name":"mysite_vsg","vsg_id":29,"wan_container_ip":"10.6.1.138","compute_node_name":"sorrowful-cat"}}]
Deleting subscriber ID 3 for account num 200
url http://xos:9000/api/tenant/cord/subscriber/3
Test passed: 204:
Deleting VOLT Tenant ID 16 for subscriber 3
url http://xos:9000/api/tenant/cord/volt/16
Test failed: 404: {"detail":"Not found."}

Test test_exampleservice_xos_subcriber_access_exampleservice has no errors and warnings in the logs
ok

----------------------------------------------------------------------
Ran 1 test in 11.053s

OK
**************************************************
root@495131b1afec:~/test/src/test# nosetests -v -s onboarding/onboardingTest.py:onboarding_exchange.test_exampleservice_multiple_subcribers_access_same_service
Unable to connect to test host prod.cord.lab
result.ok, result.status_code are True and 200
Algo: ... index and its type are 0, <type 'int'>
get url... http://xos:9000/api/tenant/cord/subscriber/
Test passed: 200: [{"humanReadableName":"cordSubscriber-1","id":1,"features":{"cdn":false,"uplink_speed":1000000000,"downlink_speed":1000000000,"uverse":true,"status":"enabled"},"identity":{"account_num":"123","name":"My House"}},{"humanReadableName":"cordSubscriber-4","id":4,"features":{"cdn":true,"uplink_speed":1000000000,"downlink_speed":1000000000,"uverse":true,"status":"enabled"},"identity":{"account_num":"201","name":"My House 1"}},{"humanReadableName":"cordSubscriber-5","id":5,"features":{"cdn":true,"uplink_speed":1000000000,"downlink_speed":1000000000,"uverse":true,"status":"enabled"},"identity":{"account_num":"202","name":"My House 2"}},{"humanReadableName":"cordSubscriber-6","id":6,"features":{"cdn":true,"uplink_speed":1000000000,"downlink_speed":1000000000,"uverse":true,"status":"enabled"},"identity":{"account_num":"203","name":"My House 3"}},{"humanReadableName":"cordSubscriber-7","id":7,"features":{"cdn":true,"uplink_speed":1000000000,"downlink_speed":1000000000,"uverse":true,"status":"enabled"},"identity":{"account_num":"204","name":"My House 4"}}]
Creating tenant with s_tag: 304, c_tag: 304
url, data.. http://xos:9000/api/tenant/cord/subscriber/ {"features": {"status": "enabled", "cdn": true, "uplink_speed": 1000000000, "downlink_speed": 1000000000, "uverse": true}, "identity": {"account_num": "200", "name": "My House 0"}}
requests.codes..... 201
Test passed: 201: {"humanReadableName":"cordSubscriber-8","id":8,"features":{"cdn":true,"uplink_speed":1000000000,"downlink_speed":1000000000,"uverse":true,"status":"enabled"},"identity":{"account_num":"200","name":"My House 0"}}
get url... http://xos:9000/api/tenant/cord/subscriber/
Test passed: 200: [{"humanReadableName":"cordSubscriber-1","id":1,"features":{"cdn":false,"uplink_speed":1000000000,"downlink_speed":1000000000,"uverse":true,"status":"enabled"},"identity":{"account_num":"123","name":"My House"}},{"humanReadableName":"cordSubscriber-4","id":4,"features":{"cdn":true,"uplink_speed":1000000000,"downlink_speed":1000000000,"uverse":true,"status":"enabled"},"identity":{"account_num":"201","name":"My House 1"}},{"humanReadableName":"cordSubscriber-5","id":5,"features":{"cdn":true,"uplink_speed":1000000000,"downlink_speed":1000000000,"uverse":true,"status":"enabled"},"identity":{"account_num":"202","name":"My House 2"}},{"humanReadableName":"cordSubscriber-6","id":6,"features":{"cdn":true,"uplink_speed":1000000000,"downlink_speed":1000000000,"uverse":true,"status":"enabled"},"identity":{"account_num":"203","name":"My House 3"}},{"humanReadableName":"cordSubscriber-7","id":7,"features":{"cdn":true,"uplink_speed":1000000000,"downlink_speed":1000000000,"uverse":true,"status":"enabled"},"identity":{"account_num":"204","name":"My House 4"}},{"humanReadableName":"cordSubscriber-8","id":8,"features":{"cdn":true,"uplink_speed":1000000000,"downlink_speed":1000000000,"uverse":true,"status":"enabled"},"identity":{"account_num":"200","name":"My House 0"}}]
Subscriber ID for account num 200 = 8
url, data.. http://xos:9000/api/tenant/cord/volt/ {"subscriber": "8", "c_tag": "304", "s_tag": "304"}
requests.codes..... 201
Test passed: 201: {"humanReadableName":"VOLTTenantForAPI-31","id":31,"service_specific_id":null,"s_tag":"304","c_tag":"304","subscriber":8,"related":{}}
Delaying 350 seconds for the VCPE to be provisioned
Testing for external connectivity to VCPE vcpe-304-304
RTNETLINK answers: File exists
mv: cannot move '/etc/resolv.conf.dhclient-new.5742' to '/etc/resolv.conf': Device or resource busy
Got DHCP IP 192.168.0.18 for vcpe1.304.304
Sending icmp echo requests to external network 8.8.8.8
index and its type are 1, <type 'int'>
get url... http://xos:9000/api/tenant/cord/subscriber/
Test passed: 200: [{"humanReadableName":"cordSubscriber-1","id":1,"features":{"cdn":false,"uplink_speed":1000000000,"downlink_speed":1000000000,"uverse":true,"status":"enabled"},"identity":{"account_num":"123","name":"My House"}},{"humanReadableName":"cordSubscriber-4","id":4,"features":{"cdn":true,"uplink_speed":1000000000,"downlink_speed":1000000000,"uverse":true,"status":"enabled"},"identity":{"account_num":"201","name":"My House 1"}},{"humanReadableName":"cordSubscriber-5","id":5,"features":{"cdn":true,"uplink_speed":1000000000,"downlink_speed":1000000000,"uverse":true,"status":"enabled"},"identity":{"account_num":"202","name":"My House 2"}},{"humanReadableName":"cordSubscriber-6","id":6,"features":{"cdn":true,"uplink_speed":1000000000,"downlink_speed":1000000000,"uverse":true,"status":"enabled"},"identity":{"account_num":"203","name":"My House 3"}},{"humanReadableName":"cordSubscriber-7","id":7,"features":{"cdn":true,"uplink_speed":1000000000,"downlink_speed":1000000000,"uverse":true,"status":"enabled"},"identity":{"account_num":"204","name":"My House 4"}},{"humanReadableName":"cordSubscriber-8","id":8,"features":{"cdn":true,"uplink_speed":1000000000,"downlink_speed":1000000000,"uverse":true,"status":"enabled"},"identity":{"account_num":"200","name":"My House 0"}}]
mv: cannot move '/etc/resolv.conf.dhclient-new.5782' to '/etc/resolv.conf': Device or resource busy
route is 10.6.1.194
RTNETLINK answers: No such process
RTNETLINK answers: File exists
mv: cannot move '/etc/resolv.conf.dhclient-new.5809' to '/etc/resolv.conf': Device or resource busy
route is 10.6.1.194
RTNETLINK answers: File exists
RTNETLINK answers: No such process

Test test_exampleservice_multiple_subcribers_access_same_service has errors and warnings

2017-06-13 13:14:38,541 | WARN  | ew I/O worker #2 | PacketManager                    | 131 - org.onosproject.onos-core-net - 1.8.7 | Packet processor org.opencord.cordvtn.impl.CordVtnDhcpProxy$InternalPacketProcessor@64be463 threw an exception
java.lang.IllegalArgumentException
2017-06-13 13:14:41,044 | WARN  | ew I/O worker #2 | PacketManager                    | 131 - org.onosproject.onos-core-net - 1.8.7 | Packet processor org.opencord.cordvtn.impl.CordVtnDhcpProxy$InternalPacketProcessor@64be463 threw an exception
java.lang.IllegalArgumentException
2017-06-13 13:14:48,484 | WARN  | ew I/O worker #2 | PacketManager                    | 131 - org.onosproject.onos-core-net - 1.8.7 | Packet processor org.opencord.cordvtn.impl.CordVtnDhcpProxy$InternalPacketProcessor@64be463 threw an exception
java.lang.IllegalArgumentException
2017-06-13 13:15:01,721 | WARN  | ew I/O worker #2 | PacketManager                    | 131 - org.onosproject.onos-core-net - 1.8.7 | Packet processor org.opencord.cordvtn.impl.CordVtnDhcpProxy$InternalPacketProcessor@64be463 threw an exception
java.lang.IllegalArgumentException
2017-06-13 13:15:08,856 | WARN  | ew I/O worker #2 | PacketManager                    | 131 - org.onosproject.onos-core-net - 1.8.7 | Packet processor org.opencord.cordvtn.impl.CordVtnDhcpProxy$InternalPacketProcessor@64be463 threw an exception
java.lang.IllegalArgumentException
2017-06-13 13:15:23,898 | WARN  | ew I/O worker #2 | PacketManager                    | 131 - org.onosproject.onos-core-net - 1.8.7 | Packet processor org.opencord.cordvtn.impl.CordVtnDhcpProxy$InternalPacketProcessor@64be463 threw an exception
java.lang.IllegalArgumentException
2017-06-13 13:15:33,543 | WARN  | ew I/O worker #2 | PacketManager                    | 131 - org.onosproject.onos-core-net - 1.8.7 | Packet processor org.opencord.cordvtn.impl.CordVtnDhcpProxy$InternalPacketProcessor@64be463 threw an exception
java.lang.IllegalArgumentException
2017-06-13 13:15:47,928 | WARN  | ew I/O worker #2 | PacketManager                    | 131 - org.onosproject.onos-core-net - 1.8.7 | Packet processor org.opencord.cordvtn.impl.CordVtnDhcpProxy$InternalPacketProcessor@64be463 threw an exception
java.lang.IllegalArgumentException
2017-06-13 13:16:03,840 | WARN  | ew I/O worker #2 | PacketManager                    | 131 - org.onosproject.onos-core-net - 1.8.7 | Packet processor org.opencord.cordvtn.impl.CordVtnDhcpProxy$InternalPacketProcessor@64be463 threw an exception
java.lang.IllegalArgumentException
2017-06-13 13:16:12,901 | WARN  | ew I/O worker #2 | PacketManager                    | 131 - org.onosproject.onos-core-net - 1.8.7 | Packet processor org.opencord.cordvtn.impl.CordVtnDhcpProxy$InternalPacketProcessor@64be463 threw an exception
java.lang.IllegalArgumentException
2017-06-13 13:16:23,450 | WARN  | ew I/O worker #2 | PacketManager                    | 131 - org.onosproject.onos-core-net - 1.8.7 | Packet processor org.opencord.cordvtn.impl.CordVtnDhcpProxy$InternalPacketProcessor@64be463 threw an exception
java.lang.IllegalArgumentException
2017-06-13 13:16:35,270 | WARN  | ew I/O worker #2 | PacketManager                    | 131 - org.onosproject.onos-core-net - 1.8.7 | Packet processor org.opencord.cordvtn.impl.CordVtnDhcpProxy$InternalPacketProcessor@64be463 threw an exception
java.lang.IllegalArgumentException
2017-06-13 13:16:56,240 | WARN  | ew I/O worker #2 | PacketManager                    | 131 - org.onosproject.onos-core-net - 1.8.7 | Packet processor org.opencord.cordvtn.impl.CordVtnDhcpProxy$InternalPacketProcessor@64be463 threw an exception
java.lang.IllegalArgumentException
2017-06-13 13:17:13,233 | WARN  | ew I/O worker #2 | PacketManager                    | 131 - org.onosproject.onos-core-net - 1.8.7 | Packet processor org.opencord.cordvtn.impl.CordVtnDhcpProxy$InternalPacketProcessor@64be463 threw an exception
java.lang.IllegalArgumentException
2017-06-13 13:17:28,468 | WARN  | ew I/O worker #2 | PacketManager                    | 131 - org.onosproject.onos-core-net - 1.8.7 | Packet processor org.opencord.cordvtn.impl.CordVtnDhcpProxy$InternalPacketProcessor@64be463 threw an exception
java.lang.IllegalArgumentException
2017-06-13 13:17:43,372 | WARN  | ew I/O worker #2 | PacketManager                    | 131 - org.onosproject.onos-core-net - 1.8.7 | Packet processor org.opencord.cordvtn.impl.CordVtnDhcpProxy$InternalPacketProcessor@64be463 threw an exception
java.lang.IllegalArgumentException
2017-06-13 13:17:59,724 | WARN  | ew I/O worker #2 | PacketManager                    | 131 - org.onosproject.onos-core-net - 1.8.7 | Packet processor org.opencord.cordvtn.impl.CordVtnDhcpProxy$InternalPacketProcessor@64be463 threw an exception
java.lang.IllegalArgumentException
2017-06-13 13:18:10,774 | WARN  | ew I/O worker #2 | PacketManager                    | 131 - org.onosproject.onos-core-net - 1.8.7 | Packet processor org.opencord.cordvtn.impl.CordVtnDhcpProxy$InternalPacketProcessor@64be463 threw an exception
java.lang.IllegalArgumentException
2017-06-13 13:18:28,186 | WARN  | ew I/O worker #2 | PacketManager                    | 131 - org.onosproject.onos-core-net - 1.8.7 | Packet processor org.opencord.cordvtn.impl.CordVtnDhcpProxy$InternalPacketProcessor@64be463 threw an exception
java.lang.IllegalArgumentException
2017-06-13 13:18:48,009 | WARN  | ew I/O worker #2 | PacketManager                    | 131 - org.onosproject.onos-core-net - 1.8.7 | Packet processor org.opencord.cordvtn.impl.CordVtnDhcpProxy$InternalPacketProcessor@64be463 threw an exception
java.lang.IllegalArgumentException
2017-06-13 13:19:02,425 | WARN  | ew I/O worker #2 | PacketManager                    | 131 - org.onosproject.onos-core-net - 1.8.7 | Packet processor org.opencord.cordvtn.impl.CordVtnDhcpProxy$InternalPacketProcessor@64be463 threw an exception
java.lang.IllegalArgumentException
2017-06-13 13:19:11,112 | WARN  | ew I/O worker #2 | PacketManager                    | 131 - org.onosproject.onos-core-net - 1.8.7 | Packet processor org.opencord.cordvtn.impl.CordVtnDhcpProxy$InternalPacketProcessor@64be463 threw an exception
java.lang.IllegalArgumentException
2017-06-13 13:19:32,875 | WARN  | ew I/O worker #2 | PacketManager                    | 131 - org.onosproject.onos-core-net - 1.8.7 | Packet processor org.opencord.cordvtn.impl.CordVtnDhcpProxy$InternalPacketProcessor@64be463 threw an exception
java.lang.IllegalArgumentException
2017-06-13 13:19:41,974 | ERROR | er-event-handler | DependencyHandler                | 169 - org.opencord.vtn - 1.2.0.SNAPSHOT | Uncaught exception on DependencyHandler-event-handler
java.lang.IllegalArgumentException
2017-06-13 13:19:41,976 | ERROR | er-event-handler | ManagementInstanceHandler        | 169 - org.opencord.vtn - 1.2.0.SNAPSHOT | Uncaught exception on ManagementInstanceHandler-event-handler
java.lang.IllegalArgumentException
2017-06-13 13:19:41,979 | ERROR | er-event-handler | DefaultInstanceHandler           | 169 - org.opencord.vtn - 1.2.0.SNAPSHOT | Uncaught exception on DefaultInstanceHandler-event-handler
java.lang.IllegalArgumentException
2017-06-13 13:19:41,980 | ERROR | er-event-handler | AccessAgentInstanceHandler       | 169 - org.opencord.vtn - 1.2.0.SNAPSHOT | Uncaught exception on AccessAgentInstanceHandler-event-handler
java.lang.IllegalArgumentException
Exception:
        at com.google.common.base.Preconditions.checkArgument(Preconditions.java:108)[44:com.google.guava:19.0.0]
        at org.opencord.cordvtn.api.core.Instance.of(Instance.java:70)[169:org.opencord.vtn:1.2.0.SNAPSHOT]
        at org.opencord.cordvtn.impl.handler.AbstractInstanceHandler$InternalHostListener.handle(AbstractInstanceHandler.java:225)[169:org.opencord.vtn:1.2.0.SNAPSHOT]
        at org.opencord.cordvtn.impl.handler.AbstractInstanceHandler$InternalHostListener.lambda$event$0(AbstractInstanceHandler.java:215)[169:org.opencord.vtn:1.2.0.SNAPSHOT]
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)[:1.8.0_131]
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)[:1.8.0_131]
        at java.lang.Thread.run(Thread.java:748)[:1.8.0_131]
2017-06-13 13:19:46,303 | INFO  | 2]-nio2-thread-3 | ServerSession                    | 30 - org.apache.sshd.core - 0.14.0 | Server session created from /172.19.0.4:60846
2017-06-13 13:19:46,516 | INFO  | 2]-nio2-thread-8 | ServerUserAuthService            | 30 - org.apache.sshd.core - 0.14.0 | Session karaf@/172.19.0.4:60846 authenticated
2017-06-13 13:19:46,521 | INFO  | 2]-nio2-thread-5 | ChannelSession                   | 30 - org.apache.sshd.core - 0.14.0 | Executing command: cat /root/onos/apache-karaf-3.0.5/data/log/karaf.log
ok

----------------------------------------------------------------------
Ran 1 test in 368.428s

OK


