I am using latest git version (after https://review.openstack.org/#/c/165716/ merge):
There are 18 tests failing( (logging noop driver) with latest changes Attaching tempest log files. Thanks Santosh
stack@devstack:~/neutron-lbaas$ tox -e tempest tempest develop-inst-nodeps: /opt/stack/neutron-lbaas tempest runtests: commands[0] | sh tools/pretty_tox.sh running testr running=OS_STDOUT_CAPTURE=${OS_STDOUT_CAPTURE:-1} OS_STDERR_CAPTURE=${OS_STDERR_CAPTURE:-1} OS_LOG_CAPTURE=${OS_LOG_CAPTURE:-1} ${PYTHON:-python} -m subunit.run discover -t ./ ${OS_TEST_PATH:-./neutron_lbaas/tests/unit} {0} neutron_lbaas.tests.tempest.v2.api.test_health_monitors.TestHealthMonitors.test_create_health_monitor [1.427909s] ... ok {0} neutron_lbaas.tests.tempest.v2.api.test_health_monitors.TestHealthMonitors.test_create_health_monitor_extra_attribute [0.027572s] ... ok {0} neutron_lbaas.tests.tempest.v2.api.test_health_monitors.TestHealthMonitors.test_create_health_monitor_invalid_attribute [0.011046s] ... ok {0} neutron_lbaas.tests.tempest.v2.api.test_health_monitors.TestHealthMonitors.test_create_health_monitor_missing_attribute [0.008790s] ... ok {0} neutron_lbaas.tests.tempest.v2.api.test_health_monitors.TestHealthMonitors.test_delete_health_monitor [1.091580s] ... ok {0} neutron_lbaas.tests.tempest.v2.api.test_health_monitors.TestHealthMonitors.test_get_health_monitor [1.644487s] ... ok {0} neutron_lbaas.tests.tempest.v2.api.test_health_monitors.TestHealthMonitors.test_list_health_monitors_empty [0.012580s] ... ok {0} neutron_lbaas.tests.tempest.v2.api.test_health_monitors.TestHealthMonitors.test_list_health_monitors_one [1.239384s] ... ok {0} neutron_lbaas.tests.tempest.v2.api.test_health_monitors.TestHealthMonitors.test_list_health_monitors_two [6.300297s] ... ok {0} neutron_lbaas.tests.tempest.v2.api.test_health_monitors.TestHealthMonitors.test_udpate_health_monitor_invalid_attribute [1.525625s] ... ok {0} neutron_lbaas.tests.tempest.v2.api.test_health_monitors.TestHealthMonitors.test_update_health_monitor [1.822102s] ... ok {0} neutron_lbaas.tests.tempest.v2.api.test_health_monitors.TestHealthMonitors.test_update_health_monitor_extra_attribute [1.471891s] ... ok {0} neutron_lbaas.tests.tempest.v2.api.test_listeners.ListenersTestJSON.test_create_listener [1.602446s] ... ok {0} neutron_lbaas.tests.tempest.v2.api.test_listeners.ListenersTestJSON.test_create_listener_empty_admin_state_up [0.156564s] ... ok {0} neutron_lbaas.tests.tempest.v2.api.test_listeners.ListenersTestJSON.test_create_listener_empty_connection_limit [0.317751s] ... ok {0} neutron_lbaas.tests.tempest.v2.api.test_listeners.ListenersTestJSON.test_create_listener_empty_description [1.852935s] ... ok {0} neutron_lbaas.tests.tempest.v2.api.test_listeners.ListenersTestJSON.test_create_listener_empty_load_balancer_id [0.117215s] ... ok {0} neutron_lbaas.tests.tempest.v2.api.test_listeners.ListenersTestJSON.test_create_listener_empty_name [1.410016s] ... ok {0} neutron_lbaas.tests.tempest.v2.api.test_listeners.ListenersTestJSON.test_create_listener_empty_protocol [0.148219s] ... ok {0} neutron_lbaas.tests.tempest.v2.api.test_listeners.ListenersTestJSON.test_create_listener_empty_protocol_port [0.133760s] ... ok {0} neutron_lbaas.tests.tempest.v2.api.test_listeners.ListenersTestJSON.test_create_listener_incorrect_attribute [0.236768s] ... ok {0} neutron_lbaas.tests.tempest.v2.api.test_listeners.ListenersTestJSON.test_create_listener_invalid_admin_state_up [0.259135s] ... ok {0} neutron_lbaas.tests.tempest.v2.api.test_listeners.ListenersTestJSON.test_create_listener_invalid_connection_limit [0.117983s] ... ok {0} neutron_lbaas.tests.tempest.v2.api.test_listeners.ListenersTestJSON.test_create_listener_invalid_description ... SKIPPED: Skipped until Bug: 1434717 is resolved. {0} neutron_lbaas.tests.tempest.v2.api.test_listeners.ListenersTestJSON.test_create_listener_invalid_empty_tenant_id [0.156728s] ... FAILED Captured traceback: ~~~~~~~~~~~~~~~~~~~ Traceback (most recent call last): File "neutron_lbaas/tests/tempest/v2/api/test_listeners.py", line 313, in test_create_listener_invalid_empty_tenant_id tenant_id="") File "/opt/stack/neutron-lbaas/.tox/tempest/local/lib/python2.7/site-packages/testtools/testcase.py", line 422, in assertRaises self.assertThat(our_callable, matcher) File "/opt/stack/neutron-lbaas/.tox/tempest/local/lib/python2.7/site-packages/testtools/testcase.py", line 433, in assertThat mismatch_error = self._matchHelper(matchee, matcher, message, verbose) File "/opt/stack/neutron-lbaas/.tox/tempest/local/lib/python2.7/site-packages/testtools/testcase.py", line 483, in _matchHelper mismatch = matcher.match(matchee) File "/opt/stack/neutron-lbaas/.tox/tempest/local/lib/python2.7/site-packages/testtools/matchers/_exception.py", line 108, in match mismatch = self.exception_matcher.match(exc_info) File "/opt/stack/neutron-lbaas/.tox/tempest/local/lib/python2.7/site-packages/testtools/matchers/_higherorder.py", line 62, in match mismatch = matcher.match(matchee) File "/opt/stack/neutron-lbaas/.tox/tempest/local/lib/python2.7/site-packages/testtools/testcase.py", line 414, in match reraise(*matchee) File "/opt/stack/neutron-lbaas/.tox/tempest/local/lib/python2.7/site-packages/testtools/matchers/_exception.py", line 101, in match result = matchee() File "/opt/stack/neutron-lbaas/.tox/tempest/local/lib/python2.7/site-packages/testtools/testcase.py", line 969, in __call__ return self._callable_object(*self._args, **self._kwargs) File "neutron_lbaas/tests/tempest/v2/api/base.py", line 185, in _create_listener listener = cls.listeners_client.create_listener(**listener_kwargs) File "neutron_lbaas/tests/tempest/v2/clients/listeners_client.py", line 49, in create_listener resp, body = self.post('v2.0/lbaas/listeners', post_body) File "/opt/stack/neutron-lbaas/.tox/tempest/local/lib/python2.7/site-packages/tempest_lib/common/rest_client.py", line 252, in post return self.request('POST', url, extra_headers, headers, body) File "/opt/stack/neutron-lbaas/.tox/tempest/src/tempest/tempest/common/service_client.py", line 69, in request raise exceptions.Conflict(ex) tempest.exceptions.Conflict: An object with that identifier already exists Details: An object with that identifier already exists Details: {u'message': u'Load Balancer dcb6e555-ecb9-4dce-84db-f4e4d6e5b30b already has a listener with protocol_port of 80', u'type': u'LoadBalancerListenerProtocolPortExists', u'detail': u''} {0} neutron_lbaas.tests.tempest.v2.api.test_listeners.ListenersTestJSON.test_create_listener_invalid_load_balancer_id [0.214941s] ... ok {0} neutron_lbaas.tests.tempest.v2.api.test_listeners.ListenersTestJSON.test_create_listener_invalid_name ... SKIPPED: Skipped until Bug: 1434717 is resolved. {0} neutron_lbaas.tests.tempest.v2.api.test_listeners.ListenersTestJSON.test_create_listener_invalid_protocol [0.122408s] ... ok {0} neutron_lbaas.tests.tempest.v2.api.test_listeners.ListenersTestJSON.test_create_listener_invalid_protocol_port [0.122348s] ... ok {0} neutron_lbaas.tests.tempest.v2.api.test_listeners.ListenersTestJSON.test_create_listener_invalid_tenant_id [0.166840s] ... FAILED Captured traceback: ~~~~~~~~~~~~~~~~~~~ Traceback (most recent call last): File "neutron_lbaas/tests/tempest/v2/api/test_listeners.py", line 217, in test_create_listener_invalid_tenant_id tenant_id="&^%123") File "/opt/stack/neutron-lbaas/.tox/tempest/local/lib/python2.7/site-packages/testtools/testcase.py", line 422, in assertRaises self.assertThat(our_callable, matcher) File "/opt/stack/neutron-lbaas/.tox/tempest/local/lib/python2.7/site-packages/testtools/testcase.py", line 433, in assertThat mismatch_error = self._matchHelper(matchee, matcher, message, verbose) File "/opt/stack/neutron-lbaas/.tox/tempest/local/lib/python2.7/site-packages/testtools/testcase.py", line 483, in _matchHelper mismatch = matcher.match(matchee) File "/opt/stack/neutron-lbaas/.tox/tempest/local/lib/python2.7/site-packages/testtools/matchers/_exception.py", line 108, in match mismatch = self.exception_matcher.match(exc_info) File "/opt/stack/neutron-lbaas/.tox/tempest/local/lib/python2.7/site-packages/testtools/matchers/_higherorder.py", line 62, in match mismatch = matcher.match(matchee) File "/opt/stack/neutron-lbaas/.tox/tempest/local/lib/python2.7/site-packages/testtools/testcase.py", line 414, in match reraise(*matchee) File "/opt/stack/neutron-lbaas/.tox/tempest/local/lib/python2.7/site-packages/testtools/matchers/_exception.py", line 101, in match result = matchee() File "/opt/stack/neutron-lbaas/.tox/tempest/local/lib/python2.7/site-packages/testtools/testcase.py", line 969, in __call__ return self._callable_object(*self._args, **self._kwargs) File "neutron_lbaas/tests/tempest/v2/api/base.py", line 185, in _create_listener listener = cls.listeners_client.create_listener(**listener_kwargs) File "neutron_lbaas/tests/tempest/v2/clients/listeners_client.py", line 49, in create_listener resp, body = self.post('v2.0/lbaas/listeners', post_body) File "/opt/stack/neutron-lbaas/.tox/tempest/local/lib/python2.7/site-packages/tempest_lib/common/rest_client.py", line 252, in post return self.request('POST', url, extra_headers, headers, body) File "/opt/stack/neutron-lbaas/.tox/tempest/src/tempest/tempest/common/service_client.py", line 69, in request raise exceptions.Conflict(ex) tempest.exceptions.Conflict: An object with that identifier already exists Details: An object with that identifier already exists Details: {u'message': u'Load Balancer dcb6e555-ecb9-4dce-84db-f4e4d6e5b30b already has a listener with protocol_port of 80', u'type': u'LoadBalancerListenerProtocolPortExists', u'detail': u''} {0} neutron_lbaas.tests.tempest.v2.api.test_listeners.ListenersTestJSON.test_create_listener_missing_admin_state_up [1.751511s] ... ok {0} neutron_lbaas.tests.tempest.v2.api.test_listeners.ListenersTestJSON.test_create_listener_missing_field_loadbalancer [0.108993s] ... ok {0} neutron_lbaas.tests.tempest.v2.api.test_listeners.ListenersTestJSON.test_create_listener_missing_field_protocol [0.114170s] ... ok {0} neutron_lbaas.tests.tempest.v2.api.test_listeners.ListenersTestJSON.test_create_listener_missing_field_protocol_port [0.111982s] ... ok {0} neutron_lbaas.tests.tempest.v2.api.test_listeners.ListenersTestJSON.test_delete_listener [1.535759s] ... ok {0} neutron_lbaas.tests.tempest.v2.api.test_listeners.ListenersTestJSON.test_get_listener [0.208180s] ... ok {0} neutron_lbaas.tests.tempest.v2.api.test_listeners.ListenersTestJSON.test_list_listeners [0.189141s] ... ok {0} neutron_lbaas.tests.tempest.v2.api.test_listeners.ListenersTestJSON.test_list_listeners_two [1.727425s] ... ok {0} neutron_lbaas.tests.tempest.v2.api.test_listeners.ListenersTestJSON.test_update_listener [1.420595s] ... ok {0} neutron_lbaas.tests.tempest.v2.api.test_listeners.ListenersTestJSON.test_update_listener_empty_admin_state_up [0.137336s] ... ok {0} neutron_lbaas.tests.tempest.v2.api.test_listeners.ListenersTestJSON.test_update_listener_empty_connection_limit [0.126627s] ... ok {0} neutron_lbaas.tests.tempest.v2.api.test_listeners.ListenersTestJSON.test_update_listener_empty_description [1.063064s] ... ok {0} neutron_lbaas.tests.tempest.v2.api.test_listeners.ListenersTestJSON.test_update_listener_empty_name [0.975110s] ... ok {0} neutron_lbaas.tests.tempest.v2.api.test_listeners.ListenersTestJSON.test_update_listener_empty_tenant_id [0.207735s] ... ok {0} neutron_lbaas.tests.tempest.v2.api.test_listeners.ListenersTestJSON.test_update_listener_incorrect_attribute [0.121230s] ... ok {0} neutron_lbaas.tests.tempest.v2.api.test_listeners.ListenersTestJSON.test_update_listener_invalid_admin_state_up [0.112191s] ... ok {0} neutron_lbaas.tests.tempest.v2.api.test_listeners.ListenersTestJSON.test_update_listener_invalid_connection_limit [0.120442s] ... ok {0} neutron_lbaas.tests.tempest.v2.api.test_listeners.ListenersTestJSON.test_update_listener_invalid_description ... SKIPPED: Skipped until Bug: 1434717 is resolved. {0} neutron_lbaas.tests.tempest.v2.api.test_listeners.ListenersTestJSON.test_update_listener_invalid_name ... SKIPPED: Skipped until Bug: 1434717 is resolved. {0} neutron_lbaas.tests.tempest.v2.api.test_listeners.ListenersTestJSON.test_update_listener_invalid_tenant_id [0.138656s] ... ok {0} neutron_lbaas.tests.tempest.v2.api.test_listeners.ListenersTestJSON.test_update_listener_missing_admin_state_up [1.346061s] ... ok {0} neutron_lbaas.tests.tempest.v2.api.test_listeners.ListenersTestJSON.test_update_listener_missing_connection_limit [1.386601s] ... ok {0} neutron_lbaas.tests.tempest.v2.api.test_listeners.ListenersTestJSON.test_update_listener_missing_description [1.155973s] ... ok {0} neutron_lbaas.tests.tempest.v2.api.test_listeners.ListenersTestJSON.test_update_listener_missing_name [1.250982s] ... ok {0} neutron_lbaas.tests.tempest.v2.api.test_load_balancers.LoadBalancersTestJSON.test_create_load_balancer [1.017125s] ... ok {0} neutron_lbaas.tests.tempest.v2.api.test_load_balancers.LoadBalancersTestJSON.test_create_load_balancer_incorrect_attribute [0.009832s] ... ok {0} neutron_lbaas.tests.tempest.v2.api.test_load_balancers.LoadBalancersTestJSON.test_create_load_balancer_invalid_tenant_id [0.013000s] ... ok {0} neutron_lbaas.tests.tempest.v2.api.test_load_balancers.LoadBalancersTestJSON.test_create_load_balancer_invalid_vip_subnet_id [0.010361s] ... ok {0} neutron_lbaas.tests.tempest.v2.api.test_load_balancers.LoadBalancersTestJSON.test_create_load_balancer_missing_field [0.009889s] ... ok {0} neutron_lbaas.tests.tempest.v2.api.test_load_balancers.LoadBalancersTestJSON.test_delete_load_balancer [0.984078s] ... ok {0} neutron_lbaas.tests.tempest.v2.api.test_load_balancers.LoadBalancersTestJSON.test_get_load_balancer [0.147001s] ... ok {0} neutron_lbaas.tests.tempest.v2.api.test_load_balancers.LoadBalancersTestJSON.test_get_load_balancer_stats [0.257195s] ... ok {0} neutron_lbaas.tests.tempest.v2.api.test_load_balancers.LoadBalancersTestJSON.test_get_load_balancer_status_tree [0.105335s] ... ok {0} neutron_lbaas.tests.tempest.v2.api.test_load_balancers.LoadBalancersTestJSON.test_list_load_balancers [0.052537s] ... ok {0} neutron_lbaas.tests.tempest.v2.api.test_load_balancers.LoadBalancersTestJSON.test_list_load_balancers_two [1.137561s] ... ok {0} neutron_lbaas.tests.tempest.v2.api.test_load_balancers.LoadBalancersTestJSON.test_update_load_balancer [0.958402s] ... ok {0} neutron_lbaas.tests.tempest.v2.api.test_load_balancers.LoadBalancersTestJSON.test_update_load_balancer_incorrect_attribute [0.010897s] ... ok {0} neutron_lbaas.tests.tempest.v2.api.test_load_balancers.LoadBalancersTestJSON.test_update_load_balancer_invalid_admin_state_up [0.009900s] ... ok {0} neutron_lbaas.tests.tempest.v2.api.test_load_balancers.LoadBalancersTestJSON.test_update_load_balancer_invalid_tenant_id [0.012012s] ... ok {0} neutron_lbaas.tests.tempest.v2.api.test_members.MemberTestJSON.test_add_member [1.368564s] ... ok {0} neutron_lbaas.tests.tempest.v2.api.test_members.MemberTestJSON.test_create_member_empty_address [0.010537s] ... ok {0} neutron_lbaas.tests.tempest.v2.api.test_members.MemberTestJSON.test_create_member_empty_admin_state_up [0.008883s] ... ok {0} neutron_lbaas.tests.tempest.v2.api.test_members.MemberTestJSON.test_create_member_empty_protocol_port [0.010038s] ... ok {0} neutron_lbaas.tests.tempest.v2.api.test_members.MemberTestJSON.test_create_member_empty_subnet_id [0.010652s] ... ok {0} neutron_lbaas.tests.tempest.v2.api.test_members.MemberTestJSON.test_create_member_empty_tenant_id [0.590837s] ... FAILED Captured traceback: ~~~~~~~~~~~~~~~~~~~ Traceback (most recent call last): File "neutron_lbaas/tests/tempest/v2/api/test_members.py", line 244, in test_create_member_empty_tenant_id self.pool_id, **member_opts) File "/opt/stack/neutron-lbaas/.tox/tempest/local/lib/python2.7/site-packages/testtools/testcase.py", line 422, in assertRaises self.assertThat(our_callable, matcher) File "/opt/stack/neutron-lbaas/.tox/tempest/local/lib/python2.7/site-packages/testtools/testcase.py", line 435, in assertThat raise mismatch_error testtools.matchers._impl.MismatchError: <bound method type._create_member of <class 'neutron_lbaas.tests.tempest.v2.api.test_members.MemberTestJSON'>> returned {u'protocol_port': 80, u'weight': 1, u'admin_state_up': True, u'subnet_id': u'e20c013e-33d0-4752-883d-b78bd45ef0ea', u'tenant_id': u'', u'address': u'127.0.0.1', u'id': u'3f8d811f-ab69-44f8-ae18-8fc20a94b228'} {0} neutron_lbaas.tests.tempest.v2.api.test_members.MemberTestJSON.test_create_member_empty_weight [0.009546s] ... ok {0} neutron_lbaas.tests.tempest.v2.api.test_members.MemberTestJSON.test_create_member_invalid_address [0.011869s] ... ok {0} neutron_lbaas.tests.tempest.v2.api.test_members.MemberTestJSON.test_create_member_invalid_admin_state_up [0.009868s] ... ok {0} neutron_lbaas.tests.tempest.v2.api.test_members.MemberTestJSON.test_create_member_invalid_protocol_port [0.011557s] ... ok {0} neutron_lbaas.tests.tempest.v2.api.test_members.MemberTestJSON.test_create_member_invalid_subnet_id [0.012224s] ... ok {0} neutron_lbaas.tests.tempest.v2.api.test_members.MemberTestJSON.test_create_member_invalid_tenant_id [0.322707s] ... FAILED Captured traceback: ~~~~~~~~~~~~~~~~~~~ Traceback (most recent call last): File "neutron_lbaas/tests/tempest/v2/api/test_members.py", line 181, in test_create_member_invalid_tenant_id self.pool_id, **member_opts) File "/opt/stack/neutron-lbaas/.tox/tempest/local/lib/python2.7/site-packages/testtools/testcase.py", line 422, in assertRaises self.assertThat(our_callable, matcher) File "/opt/stack/neutron-lbaas/.tox/tempest/local/lib/python2.7/site-packages/testtools/testcase.py", line 433, in assertThat mismatch_error = self._matchHelper(matchee, matcher, message, verbose) File "/opt/stack/neutron-lbaas/.tox/tempest/local/lib/python2.7/site-packages/testtools/testcase.py", line 483, in _matchHelper mismatch = matcher.match(matchee) File "/opt/stack/neutron-lbaas/.tox/tempest/local/lib/python2.7/site-packages/testtools/matchers/_exception.py", line 108, in match mismatch = self.exception_matcher.match(exc_info) File "/opt/stack/neutron-lbaas/.tox/tempest/local/lib/python2.7/site-packages/testtools/matchers/_higherorder.py", line 62, in match mismatch = matcher.match(matchee) File "/opt/stack/neutron-lbaas/.tox/tempest/local/lib/python2.7/site-packages/testtools/testcase.py", line 414, in match reraise(*matchee) File "/opt/stack/neutron-lbaas/.tox/tempest/local/lib/python2.7/site-packages/testtools/matchers/_exception.py", line 101, in match result = matchee() File "/opt/stack/neutron-lbaas/.tox/tempest/local/lib/python2.7/site-packages/testtools/testcase.py", line 969, in __call__ return self._callable_object(*self._args, **self._kwargs) File "neutron_lbaas/tests/tempest/v2/api/base.py", line 252, in _create_member member = cls.members_client.create_member(pool_id, **member_kwargs) File "neutron_lbaas/tests/tempest/v2/clients/members_client.py", line 51, in create_member resp, body = self.post(url, post_body) File "/opt/stack/neutron-lbaas/.tox/tempest/local/lib/python2.7/site-packages/tempest_lib/common/rest_client.py", line 252, in post return self.request('POST', url, extra_headers, headers, body) File "/opt/stack/neutron-lbaas/.tox/tempest/src/tempest/tempest/common/service_client.py", line 69, in request raise exceptions.Conflict(ex) tempest.exceptions.Conflict: An object with that identifier already exists Details: An object with that identifier already exists Details: {u'message': u'Member with address 127.0.0.1 and protocol_port 80 already present in pool 521b1e5f-9b16-4ff2-a652-0c98ff89055b', u'type': u'MemberExists', u'detail': u''} {0} neutron_lbaas.tests.tempest.v2.api.test_members.MemberTestJSON.test_create_member_invalid_weight [0.008700s] ... ok {0} neutron_lbaas.tests.tempest.v2.api.test_members.MemberTestJSON.test_create_member_missing_required_field_address [0.009433s] ... ok {0} neutron_lbaas.tests.tempest.v2.api.test_members.MemberTestJSON.test_create_member_missing_required_field_protocol_port [0.009073s] ... ok {0} neutron_lbaas.tests.tempest.v2.api.test_members.MemberTestJSON.test_create_member_missing_required_field_subnet_id [0.010592s] ... ok {0} neutron_lbaas.tests.tempest.v2.api.test_members.MemberTestJSON.test_create_member_missing_required_field_tenant_id [0.219603s] ... FAILED Captured traceback: ~~~~~~~~~~~~~~~~~~~ Traceback (most recent call last): File "neutron_lbaas/tests/tempest/v2/api/test_members.py", line 134, in test_create_member_missing_required_field_tenant_id member = self._create_member(self.pool_id, **member_opts) File "neutron_lbaas/tests/tempest/v2/api/base.py", line 252, in _create_member member = cls.members_client.create_member(pool_id, **member_kwargs) File "neutron_lbaas/tests/tempest/v2/clients/members_client.py", line 51, in create_member resp, body = self.post(url, post_body) File "/opt/stack/neutron-lbaas/.tox/tempest/local/lib/python2.7/site-packages/tempest_lib/common/rest_client.py", line 252, in post return self.request('POST', url, extra_headers, headers, body) File "/opt/stack/neutron-lbaas/.tox/tempest/src/tempest/tempest/common/service_client.py", line 69, in request raise exceptions.Conflict(ex) tempest.exceptions.Conflict: An object with that identifier already exists Details: An object with that identifier already exists Details: {u'message': u'Member with address 127.0.0.1 and protocol_port 80 already present in pool 521b1e5f-9b16-4ff2-a652-0c98ff89055b', u'type': u'MemberExists', u'detail': u''} {0} neutron_lbaas.tests.tempest.v2.api.test_members.MemberTestJSON.test_delete_member [0.212103s] ... FAILED Captured traceback: ~~~~~~~~~~~~~~~~~~~ Traceback (most recent call last): File "neutron_lbaas/tests/tempest/v2/api/test_members.py", line 303, in test_delete_member **member_opts)["id"] File "neutron_lbaas/tests/tempest/v2/api/base.py", line 252, in _create_member member = cls.members_client.create_member(pool_id, **member_kwargs) File "neutron_lbaas/tests/tempest/v2/clients/members_client.py", line 51, in create_member resp, body = self.post(url, post_body) File "/opt/stack/neutron-lbaas/.tox/tempest/local/lib/python2.7/site-packages/tempest_lib/common/rest_client.py", line 252, in post return self.request('POST', url, extra_headers, headers, body) File "/opt/stack/neutron-lbaas/.tox/tempest/src/tempest/tempest/common/service_client.py", line 69, in request raise exceptions.Conflict(ex) tempest.exceptions.Conflict: An object with that identifier already exists Details: An object with that identifier already exists Details: {u'message': u'Member with address 127.0.0.1 and protocol_port 80 already present in pool 521b1e5f-9b16-4ff2-a652-0c98ff89055b', u'type': u'MemberExists', u'detail': u''} {0} neutron_lbaas.tests.tempest.v2.api.test_members.MemberTestJSON.test_get_member [0.264317s] ... FAILED Captured traceback: ~~~~~~~~~~~~~~~~~~~ Traceback (most recent call last): File "neutron_lbaas/tests/tempest/v2/api/test_members.py", line 115, in test_get_member **member_opts)["id"] File "neutron_lbaas/tests/tempest/v2/api/base.py", line 252, in _create_member member = cls.members_client.create_member(pool_id, **member_kwargs) File "neutron_lbaas/tests/tempest/v2/clients/members_client.py", line 51, in create_member resp, body = self.post(url, post_body) File "/opt/stack/neutron-lbaas/.tox/tempest/local/lib/python2.7/site-packages/tempest_lib/common/rest_client.py", line 252, in post return self.request('POST', url, extra_headers, headers, body) File "/opt/stack/neutron-lbaas/.tox/tempest/src/tempest/tempest/common/service_client.py", line 69, in request raise exceptions.Conflict(ex) tempest.exceptions.Conflict: An object with that identifier already exists Details: An object with that identifier already exists Details: {u'message': u'Member with address 127.0.0.1 and protocol_port 80 already present in pool 521b1e5f-9b16-4ff2-a652-0c98ff89055b', u'type': u'MemberExists', u'detail': u''} {0} neutron_lbaas.tests.tempest.v2.api.test_members.MemberTestJSON.test_list_3_members [0.817081s] ... FAILED Captured traceback: ~~~~~~~~~~~~~~~~~~~ Traceback (most recent call last): File "neutron_lbaas/tests/tempest/v2/api/test_members.py", line 79, in test_list_3_members self._create_member(self.pool_id, **member_opts) File "neutron_lbaas/tests/tempest/v2/api/base.py", line 252, in _create_member member = cls.members_client.create_member(pool_id, **member_kwargs) File "neutron_lbaas/tests/tempest/v2/clients/members_client.py", line 51, in create_member resp, body = self.post(url, post_body) File "/opt/stack/neutron-lbaas/.tox/tempest/local/lib/python2.7/site-packages/tempest_lib/common/rest_client.py", line 252, in post return self.request('POST', url, extra_headers, headers, body) File "/opt/stack/neutron-lbaas/.tox/tempest/src/tempest/tempest/common/service_client.py", line 69, in request raise exceptions.Conflict(ex) tempest.exceptions.Conflict: An object with that identifier already exists Details: An object with that identifier already exists Details: {u'message': u'Member with address 127.0.0.1 and protocol_port 80 already present in pool 521b1e5f-9b16-4ff2-a652-0c98ff89055b', u'type': u'MemberExists', u'detail': u''} {0} neutron_lbaas.tests.tempest.v2.api.test_members.MemberTestJSON.test_list_empty_members [0.105811s] ... FAILED Captured traceback: ~~~~~~~~~~~~~~~~~~~ Traceback (most recent call last): File "neutron_lbaas/tests/tempest/v2/api/test_members.py", line 70, in test_list_empty_members msg='Initial pool was supposed to be empty') File "/opt/stack/neutron-lbaas/.tox/tempest/src/tempest/tempest/test.py", line 456, in assertEmpty self.assertTrue(len(list) == 0, msg) File "/opt/stack/neutron-lbaas/.tox/tempest/local/lib/python2.7/site-packages/unittest2/case.py", line 678, in assertTrue raise self.failureException(msg) AssertionError: False is not true : Initial pool was supposed to be empty {0} neutron_lbaas.tests.tempest.v2.api.test_members.MemberTestJSON.test_raises_BadRequest_when_missing_attrs_during_member_create [0.009571s] ... ok {0} neutron_lbaas.tests.tempest.v2.api.test_members.MemberTestJSON.test_raises_exception_on_invalid_attr_on_create [0.009477s] ... ok {0} neutron_lbaas.tests.tempest.v2.api.test_members.MemberTestJSON.test_raises_exception_on_invalid_attr_on_update [0.339992s] ... FAILED Captured traceback: ~~~~~~~~~~~~~~~~~~~ Traceback (most recent call last): File "neutron_lbaas/tests/tempest/v2/api/test_members.py", line 458, in test_raises_exception_on_invalid_attr_on_update member = self._create_member(self.pool_id, **member_opts) File "neutron_lbaas/tests/tempest/v2/api/base.py", line 252, in _create_member member = cls.members_client.create_member(pool_id, **member_kwargs) File "neutron_lbaas/tests/tempest/v2/clients/members_client.py", line 51, in create_member resp, body = self.post(url, post_body) File "/opt/stack/neutron-lbaas/.tox/tempest/local/lib/python2.7/site-packages/tempest_lib/common/rest_client.py", line 252, in post return self.request('POST', url, extra_headers, headers, body) File "/opt/stack/neutron-lbaas/.tox/tempest/src/tempest/tempest/common/service_client.py", line 69, in request raise exceptions.Conflict(ex) tempest.exceptions.Conflict: An object with that identifier already exists Details: An object with that identifier already exists Details: {u'message': u'Member with address 127.0.0.1 and protocol_port 80 already present in pool 521b1e5f-9b16-4ff2-a652-0c98ff89055b', u'type': u'MemberExists', u'detail': u''} {0} neutron_lbaas.tests.tempest.v2.api.test_members.MemberTestJSON.test_raises_immutable_when_updating_immutable_attrs_on_member [0.209493s] ... FAILED Captured traceback: ~~~~~~~~~~~~~~~~~~~ Traceback (most recent call last): File "neutron_lbaas/tests/tempest/v2/api/test_members.py", line 436, in test_raises_immutable_when_updating_immutable_attrs_on_member **member_opts)["id"] File "neutron_lbaas/tests/tempest/v2/api/base.py", line 252, in _create_member member = cls.members_client.create_member(pool_id, **member_kwargs) File "neutron_lbaas/tests/tempest/v2/clients/members_client.py", line 51, in create_member resp, body = self.post(url, post_body) File "/opt/stack/neutron-lbaas/.tox/tempest/local/lib/python2.7/site-packages/tempest_lib/common/rest_client.py", line 252, in post return self.request('POST', url, extra_headers, headers, body) File "/opt/stack/neutron-lbaas/.tox/tempest/src/tempest/tempest/common/service_client.py", line 69, in request raise exceptions.Conflict(ex) tempest.exceptions.Conflict: An object with that identifier already exists Details: An object with that identifier already exists Details: {u'message': u'Member with address 127.0.0.1 and protocol_port 80 already present in pool 521b1e5f-9b16-4ff2-a652-0c98ff89055b', u'type': u'MemberExists', u'detail': u''} {0} neutron_lbaas.tests.tempest.v2.api.test_members.MemberTestJSON.test_update_member [0.208972s] ... FAILED Captured traceback: ~~~~~~~~~~~~~~~~~~~ Traceback (most recent call last): File "neutron_lbaas/tests/tempest/v2/api/test_members.py", line 315, in test_update_member **member_opts) File "neutron_lbaas/tests/tempest/v2/api/base.py", line 252, in _create_member member = cls.members_client.create_member(pool_id, **member_kwargs) File "neutron_lbaas/tests/tempest/v2/clients/members_client.py", line 51, in create_member resp, body = self.post(url, post_body) File "/opt/stack/neutron-lbaas/.tox/tempest/local/lib/python2.7/site-packages/tempest_lib/common/rest_client.py", line 252, in post return self.request('POST', url, extra_headers, headers, body) File "/opt/stack/neutron-lbaas/.tox/tempest/src/tempest/tempest/common/service_client.py", line 69, in request raise exceptions.Conflict(ex) tempest.exceptions.Conflict: An object with that identifier already exists Details: An object with that identifier already exists Details: {u'message': u'Member with address 127.0.0.1 and protocol_port 80 already present in pool 521b1e5f-9b16-4ff2-a652-0c98ff89055b', u'type': u'MemberExists', u'detail': u''} {0} neutron_lbaas.tests.tempest.v2.api.test_members.MemberTestJSON.test_update_member_empty_admin_state_up [0.214038s] ... FAILED Captured traceback: ~~~~~~~~~~~~~~~~~~~ Traceback (most recent call last): File "neutron_lbaas/tests/tempest/v2/api/test_members.py", line 404, in test_update_member_empty_admin_state_up **member_opts) File "neutron_lbaas/tests/tempest/v2/api/base.py", line 252, in _create_member member = cls.members_client.create_member(pool_id, **member_kwargs) File "neutron_lbaas/tests/tempest/v2/clients/members_client.py", line 51, in create_member resp, body = self.post(url, post_body) File "/opt/stack/neutron-lbaas/.tox/tempest/local/lib/python2.7/site-packages/tempest_lib/common/rest_client.py", line 252, in post return self.request('POST', url, extra_headers, headers, body) File "/opt/stack/neutron-lbaas/.tox/tempest/src/tempest/tempest/common/service_client.py", line 69, in request raise exceptions.Conflict(ex) tempest.exceptions.Conflict: An object with that identifier already exists Details: An object with that identifier already exists Details: {u'message': u'Member with address 127.0.0.1 and protocol_port 80 already present in pool 521b1e5f-9b16-4ff2-a652-0c98ff89055b', u'type': u'MemberExists', u'detail': u''} {0} neutron_lbaas.tests.tempest.v2.api.test_members.MemberTestJSON.test_update_member_empty_weight [0.216003s] ... FAILED Captured traceback: ~~~~~~~~~~~~~~~~~~~ Traceback (most recent call last): File "neutron_lbaas/tests/tempest/v2/api/test_members.py", line 420, in test_update_member_empty_weight **member_opts) File "neutron_lbaas/tests/tempest/v2/api/base.py", line 252, in _create_member member = cls.members_client.create_member(pool_id, **member_kwargs) File "neutron_lbaas/tests/tempest/v2/clients/members_client.py", line 51, in create_member resp, body = self.post(url, post_body) File "/opt/stack/neutron-lbaas/.tox/tempest/local/lib/python2.7/site-packages/tempest_lib/common/rest_client.py", line 252, in post return self.request('POST', url, extra_headers, headers, body) File "/opt/stack/neutron-lbaas/.tox/tempest/src/tempest/tempest/common/service_client.py", line 69, in request raise exceptions.Conflict(ex) tempest.exceptions.Conflict: An object with that identifier already exists Details: An object with that identifier already exists Details: {u'message': u'Member with address 127.0.0.1 and protocol_port 80 already present in pool 521b1e5f-9b16-4ff2-a652-0c98ff89055b', u'type': u'MemberExists', u'detail': u''} {0} neutron_lbaas.tests.tempest.v2.api.test_members.MemberTestJSON.test_update_member_invalid_admin_state_up [0.254524s] ... FAILED Captured traceback: ~~~~~~~~~~~~~~~~~~~ Traceback (most recent call last): File "neutron_lbaas/tests/tempest/v2/api/test_members.py", line 372, in test_update_member_invalid_admin_state_up **member_opts) File "neutron_lbaas/tests/tempest/v2/api/base.py", line 252, in _create_member member = cls.members_client.create_member(pool_id, **member_kwargs) File "neutron_lbaas/tests/tempest/v2/clients/members_client.py", line 51, in create_member resp, body = self.post(url, post_body) File "/opt/stack/neutron-lbaas/.tox/tempest/local/lib/python2.7/site-packages/tempest_lib/common/rest_client.py", line 252, in post return self.request('POST', url, extra_headers, headers, body) File "/opt/stack/neutron-lbaas/.tox/tempest/src/tempest/tempest/common/service_client.py", line 69, in request raise exceptions.Conflict(ex) tempest.exceptions.Conflict: An object with that identifier already exists Details: An object with that identifier already exists Details: {u'message': u'Member with address 127.0.0.1 and protocol_port 80 already present in pool 521b1e5f-9b16-4ff2-a652-0c98ff89055b', u'type': u'MemberExists', u'detail': u''} {0} neutron_lbaas.tests.tempest.v2.api.test_members.MemberTestJSON.test_update_member_invalid_weight [0.254796s] ... FAILED Captured traceback: ~~~~~~~~~~~~~~~~~~~ Traceback (most recent call last): File "neutron_lbaas/tests/tempest/v2/api/test_members.py", line 388, in test_update_member_invalid_weight **member_opts) File "neutron_lbaas/tests/tempest/v2/api/base.py", line 252, in _create_member member = cls.members_client.create_member(pool_id, **member_kwargs) File "neutron_lbaas/tests/tempest/v2/clients/members_client.py", line 51, in create_member resp, body = self.post(url, post_body) File "/opt/stack/neutron-lbaas/.tox/tempest/local/lib/python2.7/site-packages/tempest_lib/common/rest_client.py", line 252, in post return self.request('POST', url, extra_headers, headers, body) File "/opt/stack/neutron-lbaas/.tox/tempest/src/tempest/tempest/common/service_client.py", line 69, in request raise exceptions.Conflict(ex) tempest.exceptions.Conflict: An object with that identifier already exists Details: An object with that identifier already exists Details: {u'message': u'Member with address 127.0.0.1 and protocol_port 80 already present in pool 521b1e5f-9b16-4ff2-a652-0c98ff89055b', u'type': u'MemberExists', u'detail': u''} {0} neutron_lbaas.tests.tempest.v2.api.test_members.MemberTestJSON.test_update_member_missing_admin_state_up [0.377411s] ... FAILED Captured traceback: ~~~~~~~~~~~~~~~~~~~ Traceback (most recent call last): File "neutron_lbaas/tests/tempest/v2/api/test_members.py", line 336, in test_update_member_missing_admin_state_up **member_opts) File "neutron_lbaas/tests/tempest/v2/api/base.py", line 252, in _create_member member = cls.members_client.create_member(pool_id, **member_kwargs) File "neutron_lbaas/tests/tempest/v2/clients/members_client.py", line 51, in create_member resp, body = self.post(url, post_body) File "/opt/stack/neutron-lbaas/.tox/tempest/local/lib/python2.7/site-packages/tempest_lib/common/rest_client.py", line 252, in post return self.request('POST', url, extra_headers, headers, body) File "/opt/stack/neutron-lbaas/.tox/tempest/src/tempest/tempest/common/service_client.py", line 69, in request raise exceptions.Conflict(ex) tempest.exceptions.Conflict: An object with that identifier already exists Details: An object with that identifier already exists Details: {u'message': u'Member with address 127.0.0.1 and protocol_port 80 already present in pool 521b1e5f-9b16-4ff2-a652-0c98ff89055b', u'type': u'MemberExists', u'detail': u''} {0} neutron_lbaas.tests.tempest.v2.api.test_members.MemberTestJSON.test_update_member_missing_weight [0.337921s] ... FAILED Captured traceback: ~~~~~~~~~~~~~~~~~~~ Traceback (most recent call last): File "neutron_lbaas/tests/tempest/v2/api/test_members.py", line 354, in test_update_member_missing_weight **member_opts) File "neutron_lbaas/tests/tempest/v2/api/base.py", line 252, in _create_member member = cls.members_client.create_member(pool_id, **member_kwargs) File "neutron_lbaas/tests/tempest/v2/clients/members_client.py", line 51, in create_member resp, body = self.post(url, post_body) File "/opt/stack/neutron-lbaas/.tox/tempest/local/lib/python2.7/site-packages/tempest_lib/common/rest_client.py", line 252, in post return self.request('POST', url, extra_headers, headers, body) File "/opt/stack/neutron-lbaas/.tox/tempest/src/tempest/tempest/common/service_client.py", line 69, in request raise exceptions.Conflict(ex) tempest.exceptions.Conflict: An object with that identifier already exists Details: An object with that identifier already exists Details: {u'message': u'Member with address 127.0.0.1 and protocol_port 80 already present in pool 521b1e5f-9b16-4ff2-a652-0c98ff89055b', u'type': u'MemberExists', u'detail': u''} {0} neutron_lbaas.tests.tempest.v2.api.test_pools.TestPools.test_create_pool [2.444894s] ... ok {0} neutron_lbaas.tests.tempest.v2.api.test_pools.TestPools.test_create_pool_incorrect_attribute [0.010903s] ... ok {0} neutron_lbaas.tests.tempest.v2.api.test_pools.TestPools.test_create_pool_invalid_protocol [0.011732s] ... ok {0} neutron_lbaas.tests.tempest.v2.api.test_pools.TestPools.test_create_pool_missing_field [0.008050s] ... ok {0} neutron_lbaas.tests.tempest.v2.api.test_pools.TestPools.test_create_pool_with_session_persistence_app_cookie [2.224846s] ... ok {0} neutron_lbaas.tests.tempest.v2.api.test_pools.TestPools.test_create_pool_with_session_persistence_http_cookie [2.411098s] ... ok {0} neutron_lbaas.tests.tempest.v2.api.test_pools.TestPools.test_create_pool_with_session_persistence_redundant_cookie_name [0.015342s] ... ok {0} neutron_lbaas.tests.tempest.v2.api.test_pools.TestPools.test_create_pool_with_session_persistence_unsupported_type [0.013059s] ... ok {0} neutron_lbaas.tests.tempest.v2.api.test_pools.TestPools.test_create_pool_with_session_persistence_without_cookie_name [0.014054s] ... ok {0} neutron_lbaas.tests.tempest.v2.api.test_pools.TestPools.test_delete_invalid_pool [2.386253s] ... ok {0} neutron_lbaas.tests.tempest.v2.api.test_pools.TestPools.test_delete_pool [2.037090s] ... ok {0} neutron_lbaas.tests.tempest.v2.api.test_pools.TestPools.test_get_pool [2.437127s] ... ok {0} neutron_lbaas.tests.tempest.v2.api.test_pools.TestPools.test_list_pools_empty [0.018194s] ... ok {0} neutron_lbaas.tests.tempest.v2.api.test_pools.TestPools.test_list_pools_one [2.366236s] ... ok {0} neutron_lbaas.tests.tempest.v2.api.test_pools.TestPools.test_list_pools_two [4.974164s] ... ok {0} neutron_lbaas.tests.tempest.v2.api.test_pools.TestPools.test_update_pool [2.954183s] ... ok {0} neutron_lbaas.tests.tempest.v2.api.test_pools.TestPools.test_update_pool_incorrect_attribute [2.129594s] ... ok {0} neutron_lbaas.tests.tempest.v2.api.test_pools.TestPools.test_update_pool_invalid_attribute [2.201041s] ... ok Slowest Tests Test id Runtime (s) ------------------------------------------------------------------------------------------------------------------------- ----------- neutron_lbaas.tests.tempest.v2.api.test_health_monitors.TestHealthMonitors.test_list_health_monitors_two[gate,smoke] 6.300 neutron_lbaas.tests.tempest.v2.api.test_pools.TestPools.test_list_pools_two[gate,smoke] 4.974 neutron_lbaas.tests.tempest.v2.api.test_pools.TestPools.test_update_pool[gate,smoke] 2.954 neutron_lbaas.tests.tempest.v2.api.test_pools.TestPools.test_create_pool[gate,smoke] 2.445 neutron_lbaas.tests.tempest.v2.api.test_pools.TestPools.test_get_pool[gate,smoke] 2.437 neutron_lbaas.tests.tempest.v2.api.test_pools.TestPools.test_create_pool_with_session_persistence_http_cookie[gate,smoke] 2.411 neutron_lbaas.tests.tempest.v2.api.test_pools.TestPools.test_delete_invalid_pool[gate,smoke] 2.386 neutron_lbaas.tests.tempest.v2.api.test_pools.TestPools.test_list_pools_one[gate,smoke] 2.366 neutron_lbaas.tests.tempest.v2.api.test_pools.TestPools.test_create_pool_with_session_persistence_app_cookie[gate,smoke] 2.225 neutron_lbaas.tests.tempest.v2.api.test_pools.TestPools.test_update_pool_invalid_attribute[gate,smoke] 2.201 ============================== Failed 18 tests - output below: ============================== neutron_lbaas.tests.tempest.v2.api.test_listeners.ListenersTestJSON.test_create_listener_invalid_empty_tenant_id[negative] -------------------------------------------------------------------------------------------------------------------------- Captured traceback: ~~~~~~~~~~~~~~~~~~~ Traceback (most recent call last): File "neutron_lbaas/tests/tempest/v2/api/test_listeners.py", line 313, in test_create_listener_invalid_empty_tenant_id tenant_id="") File "/opt/stack/neutron-lbaas/.tox/tempest/local/lib/python2.7/site-packages/testtools/testcase.py", line 422, in assertRaises self.assertThat(our_callable, matcher) File "/opt/stack/neutron-lbaas/.tox/tempest/local/lib/python2.7/site-packages/testtools/testcase.py", line 433, in assertThat mismatch_error = self._matchHelper(matchee, matcher, message, verbose) File "/opt/stack/neutron-lbaas/.tox/tempest/local/lib/python2.7/site-packages/testtools/testcase.py", line 483, in _matchHelper mismatch = matcher.match(matchee) File "/opt/stack/neutron-lbaas/.tox/tempest/local/lib/python2.7/site-packages/testtools/matchers/_exception.py", line 108, in match mismatch = self.exception_matcher.match(exc_info) File "/opt/stack/neutron-lbaas/.tox/tempest/local/lib/python2.7/site-packages/testtools/matchers/_higherorder.py", line 62, in match mismatch = matcher.match(matchee) File "/opt/stack/neutron-lbaas/.tox/tempest/local/lib/python2.7/site-packages/testtools/testcase.py", line 414, in match reraise(*matchee) File "/opt/stack/neutron-lbaas/.tox/tempest/local/lib/python2.7/site-packages/testtools/matchers/_exception.py", line 101, in match result = matchee() File "/opt/stack/neutron-lbaas/.tox/tempest/local/lib/python2.7/site-packages/testtools/testcase.py", line 969, in __call__ return self._callable_object(*self._args, **self._kwargs) File "neutron_lbaas/tests/tempest/v2/api/base.py", line 185, in _create_listener listener = cls.listeners_client.create_listener(**listener_kwargs) File "neutron_lbaas/tests/tempest/v2/clients/listeners_client.py", line 49, in create_listener resp, body = self.post('v2.0/lbaas/listeners', post_body) File "/opt/stack/neutron-lbaas/.tox/tempest/local/lib/python2.7/site-packages/tempest_lib/common/rest_client.py", line 252, in post return self.request('POST', url, extra_headers, headers, body) File "/opt/stack/neutron-lbaas/.tox/tempest/src/tempest/tempest/common/service_client.py", line 69, in request raise exceptions.Conflict(ex) tempest.exceptions.Conflict: An object with that identifier already exists Details: An object with that identifier already exists Details: {u'message': u'Load Balancer dcb6e555-ecb9-4dce-84db-f4e4d6e5b30b already has a listener with protocol_port of 80', u'type': u'LoadBalancerListenerProtocolPortExists', u'detail': u''} neutron_lbaas.tests.tempest.v2.api.test_listeners.ListenersTestJSON.test_create_listener_invalid_tenant_id[negative] -------------------------------------------------------------------------------------------------------------------- Captured traceback: ~~~~~~~~~~~~~~~~~~~ Traceback (most recent call last): File "neutron_lbaas/tests/tempest/v2/api/test_listeners.py", line 217, in test_create_listener_invalid_tenant_id tenant_id="&^%123") File "/opt/stack/neutron-lbaas/.tox/tempest/local/lib/python2.7/site-packages/testtools/testcase.py", line 422, in assertRaises self.assertThat(our_callable, matcher) File "/opt/stack/neutron-lbaas/.tox/tempest/local/lib/python2.7/site-packages/testtools/testcase.py", line 433, in assertThat mismatch_error = self._matchHelper(matchee, matcher, message, verbose) File "/opt/stack/neutron-lbaas/.tox/tempest/local/lib/python2.7/site-packages/testtools/testcase.py", line 483, in _matchHelper mismatch = matcher.match(matchee) File "/opt/stack/neutron-lbaas/.tox/tempest/local/lib/python2.7/site-packages/testtools/matchers/_exception.py", line 108, in match mismatch = self.exception_matcher.match(exc_info) File "/opt/stack/neutron-lbaas/.tox/tempest/local/lib/python2.7/site-packages/testtools/matchers/_higherorder.py", line 62, in match mismatch = matcher.match(matchee) File "/opt/stack/neutron-lbaas/.tox/tempest/local/lib/python2.7/site-packages/testtools/testcase.py", line 414, in match reraise(*matchee) File "/opt/stack/neutron-lbaas/.tox/tempest/local/lib/python2.7/site-packages/testtools/matchers/_exception.py", line 101, in match result = matchee() File "/opt/stack/neutron-lbaas/.tox/tempest/local/lib/python2.7/site-packages/testtools/testcase.py", line 969, in __call__ return self._callable_object(*self._args, **self._kwargs) File "neutron_lbaas/tests/tempest/v2/api/base.py", line 185, in _create_listener listener = cls.listeners_client.create_listener(**listener_kwargs) File "neutron_lbaas/tests/tempest/v2/clients/listeners_client.py", line 49, in create_listener resp, body = self.post('v2.0/lbaas/listeners', post_body) File "/opt/stack/neutron-lbaas/.tox/tempest/local/lib/python2.7/site-packages/tempest_lib/common/rest_client.py", line 252, in post return self.request('POST', url, extra_headers, headers, body) File "/opt/stack/neutron-lbaas/.tox/tempest/src/tempest/tempest/common/service_client.py", line 69, in request raise exceptions.Conflict(ex) tempest.exceptions.Conflict: An object with that identifier already exists Details: An object with that identifier already exists Details: {u'message': u'Load Balancer dcb6e555-ecb9-4dce-84db-f4e4d6e5b30b already has a listener with protocol_port of 80', u'type': u'LoadBalancerListenerProtocolPortExists', u'detail': u''} neutron_lbaas.tests.tempest.v2.api.test_members.MemberTestJSON.test_create_member_empty_tenant_id[negative] ----------------------------------------------------------------------------------------------------------- Captured traceback: ~~~~~~~~~~~~~~~~~~~ Traceback (most recent call last): File "neutron_lbaas/tests/tempest/v2/api/test_members.py", line 244, in test_create_member_empty_tenant_id self.pool_id, **member_opts) File "/opt/stack/neutron-lbaas/.tox/tempest/local/lib/python2.7/site-packages/testtools/testcase.py", line 422, in assertRaises self.assertThat(our_callable, matcher) File "/opt/stack/neutron-lbaas/.tox/tempest/local/lib/python2.7/site-packages/testtools/testcase.py", line 435, in assertThat raise mismatch_error testtools.matchers._impl.MismatchError: <bound method type._create_member of <class 'neutron_lbaas.tests.tempest.v2.api.test_members.MemberTestJSON'>> returned {u'protocol_port': 80, u'weight': 1, u'admin_state_up': True, u'subnet_id': u'e20c013e-33d0-4752-883d-b78bd45ef0ea', u'tenant_id': u'', u'address': u'127.0.0.1', u'id': u'3f8d811f-ab69-44f8-ae18-8fc20a94b228'} neutron_lbaas.tests.tempest.v2.api.test_members.MemberTestJSON.test_create_member_invalid_tenant_id[negative] ------------------------------------------------------------------------------------------------------------- Captured traceback: ~~~~~~~~~~~~~~~~~~~ Traceback (most recent call last): File "neutron_lbaas/tests/tempest/v2/api/test_members.py", line 181, in test_create_member_invalid_tenant_id self.pool_id, **member_opts) File "/opt/stack/neutron-lbaas/.tox/tempest/local/lib/python2.7/site-packages/testtools/testcase.py", line 422, in assertRaises self.assertThat(our_callable, matcher) File "/opt/stack/neutron-lbaas/.tox/tempest/local/lib/python2.7/site-packages/testtools/testcase.py", line 433, in assertThat mismatch_error = self._matchHelper(matchee, matcher, message, verbose) File "/opt/stack/neutron-lbaas/.tox/tempest/local/lib/python2.7/site-packages/testtools/testcase.py", line 483, in _matchHelper mismatch = matcher.match(matchee) File "/opt/stack/neutron-lbaas/.tox/tempest/local/lib/python2.7/site-packages/testtools/matchers/_exception.py", line 108, in match mismatch = self.exception_matcher.match(exc_info) File "/opt/stack/neutron-lbaas/.tox/tempest/local/lib/python2.7/site-packages/testtools/matchers/_higherorder.py", line 62, in match mismatch = matcher.match(matchee) File "/opt/stack/neutron-lbaas/.tox/tempest/local/lib/python2.7/site-packages/testtools/testcase.py", line 414, in match reraise(*matchee) File "/opt/stack/neutron-lbaas/.tox/tempest/local/lib/python2.7/site-packages/testtools/matchers/_exception.py", line 101, in match result = matchee() File "/opt/stack/neutron-lbaas/.tox/tempest/local/lib/python2.7/site-packages/testtools/testcase.py", line 969, in __call__ return self._callable_object(*self._args, **self._kwargs) File "neutron_lbaas/tests/tempest/v2/api/base.py", line 252, in _create_member member = cls.members_client.create_member(pool_id, **member_kwargs) File "neutron_lbaas/tests/tempest/v2/clients/members_client.py", line 51, in create_member resp, body = self.post(url, post_body) File "/opt/stack/neutron-lbaas/.tox/tempest/local/lib/python2.7/site-packages/tempest_lib/common/rest_client.py", line 252, in post return self.request('POST', url, extra_headers, headers, body) File "/opt/stack/neutron-lbaas/.tox/tempest/src/tempest/tempest/common/service_client.py", line 69, in request raise exceptions.Conflict(ex) tempest.exceptions.Conflict: An object with that identifier already exists Details: An object with that identifier already exists Details: {u'message': u'Member with address 127.0.0.1 and protocol_port 80 already present in pool 521b1e5f-9b16-4ff2-a652-0c98ff89055b', u'type': u'MemberExists', u'detail': u''} neutron_lbaas.tests.tempest.v2.api.test_members.MemberTestJSON.test_create_member_missing_required_field_tenant_id[gate,smoke] ------------------------------------------------------------------------------------------------------------------------------ Captured traceback: ~~~~~~~~~~~~~~~~~~~ Traceback (most recent call last): File "neutron_lbaas/tests/tempest/v2/api/test_members.py", line 134, in test_create_member_missing_required_field_tenant_id member = self._create_member(self.pool_id, **member_opts) File "neutron_lbaas/tests/tempest/v2/api/base.py", line 252, in _create_member member = cls.members_client.create_member(pool_id, **member_kwargs) File "neutron_lbaas/tests/tempest/v2/clients/members_client.py", line 51, in create_member resp, body = self.post(url, post_body) File "/opt/stack/neutron-lbaas/.tox/tempest/local/lib/python2.7/site-packages/tempest_lib/common/rest_client.py", line 252, in post return self.request('POST', url, extra_headers, headers, body) File "/opt/stack/neutron-lbaas/.tox/tempest/src/tempest/tempest/common/service_client.py", line 69, in request raise exceptions.Conflict(ex) tempest.exceptions.Conflict: An object with that identifier already exists Details: An object with that identifier already exists Details: {u'message': u'Member with address 127.0.0.1 and protocol_port 80 already present in pool 521b1e5f-9b16-4ff2-a652-0c98ff89055b', u'type': u'MemberExists', u'detail': u''} neutron_lbaas.tests.tempest.v2.api.test_members.MemberTestJSON.test_delete_member[gate,smoke] --------------------------------------------------------------------------------------------- Captured traceback: ~~~~~~~~~~~~~~~~~~~ Traceback (most recent call last): File "neutron_lbaas/tests/tempest/v2/api/test_members.py", line 303, in test_delete_member **member_opts)["id"] File "neutron_lbaas/tests/tempest/v2/api/base.py", line 252, in _create_member member = cls.members_client.create_member(pool_id, **member_kwargs) File "neutron_lbaas/tests/tempest/v2/clients/members_client.py", line 51, in create_member resp, body = self.post(url, post_body) File "/opt/stack/neutron-lbaas/.tox/tempest/local/lib/python2.7/site-packages/tempest_lib/common/rest_client.py", line 252, in post return self.request('POST', url, extra_headers, headers, body) File "/opt/stack/neutron-lbaas/.tox/tempest/src/tempest/tempest/common/service_client.py", line 69, in request raise exceptions.Conflict(ex) tempest.exceptions.Conflict: An object with that identifier already exists Details: An object with that identifier already exists Details: {u'message': u'Member with address 127.0.0.1 and protocol_port 80 already present in pool 521b1e5f-9b16-4ff2-a652-0c98ff89055b', u'type': u'MemberExists', u'detail': u''} neutron_lbaas.tests.tempest.v2.api.test_members.MemberTestJSON.test_get_member[gate,smoke] ------------------------------------------------------------------------------------------ Captured traceback: ~~~~~~~~~~~~~~~~~~~ Traceback (most recent call last): File "neutron_lbaas/tests/tempest/v2/api/test_members.py", line 115, in test_get_member **member_opts)["id"] File "neutron_lbaas/tests/tempest/v2/api/base.py", line 252, in _create_member member = cls.members_client.create_member(pool_id, **member_kwargs) File "neutron_lbaas/tests/tempest/v2/clients/members_client.py", line 51, in create_member resp, body = self.post(url, post_body) File "/opt/stack/neutron-lbaas/.tox/tempest/local/lib/python2.7/site-packages/tempest_lib/common/rest_client.py", line 252, in post return self.request('POST', url, extra_headers, headers, body) File "/opt/stack/neutron-lbaas/.tox/tempest/src/tempest/tempest/common/service_client.py", line 69, in request raise exceptions.Conflict(ex) tempest.exceptions.Conflict: An object with that identifier already exists Details: An object with that identifier already exists Details: {u'message': u'Member with address 127.0.0.1 and protocol_port 80 already present in pool 521b1e5f-9b16-4ff2-a652-0c98ff89055b', u'type': u'MemberExists', u'detail': u''} neutron_lbaas.tests.tempest.v2.api.test_members.MemberTestJSON.test_list_3_members[gate,smoke] ---------------------------------------------------------------------------------------------- Captured traceback: ~~~~~~~~~~~~~~~~~~~ Traceback (most recent call last): File "neutron_lbaas/tests/tempest/v2/api/test_members.py", line 79, in test_list_3_members self._create_member(self.pool_id, **member_opts) File "neutron_lbaas/tests/tempest/v2/api/base.py", line 252, in _create_member member = cls.members_client.create_member(pool_id, **member_kwargs) File "neutron_lbaas/tests/tempest/v2/clients/members_client.py", line 51, in create_member resp, body = self.post(url, post_body) File "/opt/stack/neutron-lbaas/.tox/tempest/local/lib/python2.7/site-packages/tempest_lib/common/rest_client.py", line 252, in post return self.request('POST', url, extra_headers, headers, body) File "/opt/stack/neutron-lbaas/.tox/tempest/src/tempest/tempest/common/service_client.py", line 69, in request raise exceptions.Conflict(ex) tempest.exceptions.Conflict: An object with that identifier already exists Details: An object with that identifier already exists Details: {u'message': u'Member with address 127.0.0.1 and protocol_port 80 already present in pool 521b1e5f-9b16-4ff2-a652-0c98ff89055b', u'type': u'MemberExists', u'detail': u''} neutron_lbaas.tests.tempest.v2.api.test_members.MemberTestJSON.test_list_empty_members[gate,smoke] -------------------------------------------------------------------------------------------------- Captured traceback: ~~~~~~~~~~~~~~~~~~~ Traceback (most recent call last): File "neutron_lbaas/tests/tempest/v2/api/test_members.py", line 70, in test_list_empty_members msg='Initial pool was supposed to be empty') File "/opt/stack/neutron-lbaas/.tox/tempest/src/tempest/tempest/test.py", line 456, in assertEmpty self.assertTrue(len(list) == 0, msg) File "/opt/stack/neutron-lbaas/.tox/tempest/local/lib/python2.7/site-packages/unittest2/case.py", line 678, in assertTrue raise self.failureException(msg) AssertionError: False is not true : Initial pool was supposed to be empty neutron_lbaas.tests.tempest.v2.api.test_members.MemberTestJSON.test_raises_exception_on_invalid_attr_on_update[negative] ------------------------------------------------------------------------------------------------------------------------ Captured traceback: ~~~~~~~~~~~~~~~~~~~ Traceback (most recent call last): File "neutron_lbaas/tests/tempest/v2/api/test_members.py", line 458, in test_raises_exception_on_invalid_attr_on_update member = self._create_member(self.pool_id, **member_opts) File "neutron_lbaas/tests/tempest/v2/api/base.py", line 252, in _create_member member = cls.members_client.create_member(pool_id, **member_kwargs) File "neutron_lbaas/tests/tempest/v2/clients/members_client.py", line 51, in create_member resp, body = self.post(url, post_body) File "/opt/stack/neutron-lbaas/.tox/tempest/local/lib/python2.7/site-packages/tempest_lib/common/rest_client.py", line 252, in post return self.request('POST', url, extra_headers, headers, body) File "/opt/stack/neutron-lbaas/.tox/tempest/src/tempest/tempest/common/service_client.py", line 69, in request raise exceptions.Conflict(ex) tempest.exceptions.Conflict: An object with that identifier already exists Details: An object with that identifier already exists Details: {u'message': u'Member with address 127.0.0.1 and protocol_port 80 already present in pool 521b1e5f-9b16-4ff2-a652-0c98ff89055b', u'type': u'MemberExists', u'detail': u''} neutron_lbaas.tests.tempest.v2.api.test_members.MemberTestJSON.test_raises_immutable_when_updating_immutable_attrs_on_member[negative] -------------------------------------------------------------------------------------------------------------------------------------- Captured traceback: ~~~~~~~~~~~~~~~~~~~ Traceback (most recent call last): File "neutron_lbaas/tests/tempest/v2/api/test_members.py", line 436, in test_raises_immutable_when_updating_immutable_attrs_on_member **member_opts)["id"] File "neutron_lbaas/tests/tempest/v2/api/base.py", line 252, in _create_member member = cls.members_client.create_member(pool_id, **member_kwargs) File "neutron_lbaas/tests/tempest/v2/clients/members_client.py", line 51, in create_member resp, body = self.post(url, post_body) File "/opt/stack/neutron-lbaas/.tox/tempest/local/lib/python2.7/site-packages/tempest_lib/common/rest_client.py", line 252, in post return self.request('POST', url, extra_headers, headers, body) File "/opt/stack/neutron-lbaas/.tox/tempest/src/tempest/tempest/common/service_client.py", line 69, in request raise exceptions.Conflict(ex) tempest.exceptions.Conflict: An object with that identifier already exists Details: An object with that identifier already exists Details: {u'message': u'Member with address 127.0.0.1 and protocol_port 80 already present in pool 521b1e5f-9b16-4ff2-a652-0c98ff89055b', u'type': u'MemberExists', u'detail': u''} neutron_lbaas.tests.tempest.v2.api.test_members.MemberTestJSON.test_update_member[gate,smoke] --------------------------------------------------------------------------------------------- Captured traceback: ~~~~~~~~~~~~~~~~~~~ Traceback (most recent call last): File "neutron_lbaas/tests/tempest/v2/api/test_members.py", line 315, in test_update_member **member_opts) File "neutron_lbaas/tests/tempest/v2/api/base.py", line 252, in _create_member member = cls.members_client.create_member(pool_id, **member_kwargs) File "neutron_lbaas/tests/tempest/v2/clients/members_client.py", line 51, in create_member resp, body = self.post(url, post_body) File "/opt/stack/neutron-lbaas/.tox/tempest/local/lib/python2.7/site-packages/tempest_lib/common/rest_client.py", line 252, in post return self.request('POST', url, extra_headers, headers, body) File "/opt/stack/neutron-lbaas/.tox/tempest/src/tempest/tempest/common/service_client.py", line 69, in request raise exceptions.Conflict(ex) tempest.exceptions.Conflict: An object with that identifier already exists Details: An object with that identifier already exists Details: {u'message': u'Member with address 127.0.0.1 and protocol_port 80 already present in pool 521b1e5f-9b16-4ff2-a652-0c98ff89055b', u'type': u'MemberExists', u'detail': u''} neutron_lbaas.tests.tempest.v2.api.test_members.MemberTestJSON.test_update_member_empty_admin_state_up[negative] ---------------------------------------------------------------------------------------------------------------- Captured traceback: ~~~~~~~~~~~~~~~~~~~ Traceback (most recent call last): File "neutron_lbaas/tests/tempest/v2/api/test_members.py", line 404, in test_update_member_empty_admin_state_up **member_opts) File "neutron_lbaas/tests/tempest/v2/api/base.py", line 252, in _create_member member = cls.members_client.create_member(pool_id, **member_kwargs) File "neutron_lbaas/tests/tempest/v2/clients/members_client.py", line 51, in create_member resp, body = self.post(url, post_body) File "/opt/stack/neutron-lbaas/.tox/tempest/local/lib/python2.7/site-packages/tempest_lib/common/rest_client.py", line 252, in post return self.request('POST', url, extra_headers, headers, body) File "/opt/stack/neutron-lbaas/.tox/tempest/src/tempest/tempest/common/service_client.py", line 69, in request raise exceptions.Conflict(ex) tempest.exceptions.Conflict: An object with that identifier already exists Details: An object with that identifier already exists Details: {u'message': u'Member with address 127.0.0.1 and protocol_port 80 already present in pool 521b1e5f-9b16-4ff2-a652-0c98ff89055b', u'type': u'MemberExists', u'detail': u''} neutron_lbaas.tests.tempest.v2.api.test_members.MemberTestJSON.test_update_member_empty_weight[negative] -------------------------------------------------------------------------------------------------------- Captured traceback: ~~~~~~~~~~~~~~~~~~~ Traceback (most recent call last): File "neutron_lbaas/tests/tempest/v2/api/test_members.py", line 420, in test_update_member_empty_weight **member_opts) File "neutron_lbaas/tests/tempest/v2/api/base.py", line 252, in _create_member member = cls.members_client.create_member(pool_id, **member_kwargs) File "neutron_lbaas/tests/tempest/v2/clients/members_client.py", line 51, in create_member resp, body = self.post(url, post_body) File "/opt/stack/neutron-lbaas/.tox/tempest/local/lib/python2.7/site-packages/tempest_lib/common/rest_client.py", line 252, in post return self.request('POST', url, extra_headers, headers, body) File "/opt/stack/neutron-lbaas/.tox/tempest/src/tempest/tempest/common/service_client.py", line 69, in request raise exceptions.Conflict(ex) tempest.exceptions.Conflict: An object with that identifier already exists Details: An object with that identifier already exists Details: {u'message': u'Member with address 127.0.0.1 and protocol_port 80 already present in pool 521b1e5f-9b16-4ff2-a652-0c98ff89055b', u'type': u'MemberExists', u'detail': u''} neutron_lbaas.tests.tempest.v2.api.test_members.MemberTestJSON.test_update_member_invalid_admin_state_up[negative] ------------------------------------------------------------------------------------------------------------------ Captured traceback: ~~~~~~~~~~~~~~~~~~~ Traceback (most recent call last): File "neutron_lbaas/tests/tempest/v2/api/test_members.py", line 372, in test_update_member_invalid_admin_state_up **member_opts) File "neutron_lbaas/tests/tempest/v2/api/base.py", line 252, in _create_member member = cls.members_client.create_member(pool_id, **member_kwargs) File "neutron_lbaas/tests/tempest/v2/clients/members_client.py", line 51, in create_member resp, body = self.post(url, post_body) File "/opt/stack/neutron-lbaas/.tox/tempest/local/lib/python2.7/site-packages/tempest_lib/common/rest_client.py", line 252, in post return self.request('POST', url, extra_headers, headers, body) File "/opt/stack/neutron-lbaas/.tox/tempest/src/tempest/tempest/common/service_client.py", line 69, in request raise exceptions.Conflict(ex) tempest.exceptions.Conflict: An object with that identifier already exists Details: An object with that identifier already exists Details: {u'message': u'Member with address 127.0.0.1 and protocol_port 80 already present in pool 521b1e5f-9b16-4ff2-a652-0c98ff89055b', u'type': u'MemberExists', u'detail': u''} neutron_lbaas.tests.tempest.v2.api.test_members.MemberTestJSON.test_update_member_invalid_weight[negative] ---------------------------------------------------------------------------------------------------------- Captured traceback: ~~~~~~~~~~~~~~~~~~~ Traceback (most recent call last): File "neutron_lbaas/tests/tempest/v2/api/test_members.py", line 388, in test_update_member_invalid_weight **member_opts) File "neutron_lbaas/tests/tempest/v2/api/base.py", line 252, in _create_member member = cls.members_client.create_member(pool_id, **member_kwargs) File "neutron_lbaas/tests/tempest/v2/clients/members_client.py", line 51, in create_member resp, body = self.post(url, post_body) File "/opt/stack/neutron-lbaas/.tox/tempest/local/lib/python2.7/site-packages/tempest_lib/common/rest_client.py", line 252, in post return self.request('POST', url, extra_headers, headers, body) File "/opt/stack/neutron-lbaas/.tox/tempest/src/tempest/tempest/common/service_client.py", line 69, in request raise exceptions.Conflict(ex) tempest.exceptions.Conflict: An object with that identifier already exists Details: An object with that identifier already exists Details: {u'message': u'Member with address 127.0.0.1 and protocol_port 80 already present in pool 521b1e5f-9b16-4ff2-a652-0c98ff89055b', u'type': u'MemberExists', u'detail': u''} neutron_lbaas.tests.tempest.v2.api.test_members.MemberTestJSON.test_update_member_missing_admin_state_up[gate,smoke] -------------------------------------------------------------------------------------------------------------------- Captured traceback: ~~~~~~~~~~~~~~~~~~~ Traceback (most recent call last): File "neutron_lbaas/tests/tempest/v2/api/test_members.py", line 336, in test_update_member_missing_admin_state_up **member_opts) File "neutron_lbaas/tests/tempest/v2/api/base.py", line 252, in _create_member member = cls.members_client.create_member(pool_id, **member_kwargs) File "neutron_lbaas/tests/tempest/v2/clients/members_client.py", line 51, in create_member resp, body = self.post(url, post_body) File "/opt/stack/neutron-lbaas/.tox/tempest/local/lib/python2.7/site-packages/tempest_lib/common/rest_client.py", line 252, in post return self.request('POST', url, extra_headers, headers, body) File "/opt/stack/neutron-lbaas/.tox/tempest/src/tempest/tempest/common/service_client.py", line 69, in request raise exceptions.Conflict(ex) tempest.exceptions.Conflict: An object with that identifier already exists Details: An object with that identifier already exists Details: {u'message': u'Member with address 127.0.0.1 and protocol_port 80 already present in pool 521b1e5f-9b16-4ff2-a652-0c98ff89055b', u'type': u'MemberExists', u'detail': u''} neutron_lbaas.tests.tempest.v2.api.test_members.MemberTestJSON.test_update_member_missing_weight[gate,smoke] ------------------------------------------------------------------------------------------------------------ Captured traceback: ~~~~~~~~~~~~~~~~~~~ Traceback (most recent call last): File "neutron_lbaas/tests/tempest/v2/api/test_members.py", line 354, in test_update_member_missing_weight **member_opts) File "neutron_lbaas/tests/tempest/v2/api/base.py", line 252, in _create_member member = cls.members_client.create_member(pool_id, **member_kwargs) File "neutron_lbaas/tests/tempest/v2/clients/members_client.py", line 51, in create_member resp, body = self.post(url, post_body) File "/opt/stack/neutron-lbaas/.tox/tempest/local/lib/python2.7/site-packages/tempest_lib/common/rest_client.py", line 252, in post return self.request('POST', url, extra_headers, headers, body) File "/opt/stack/neutron-lbaas/.tox/tempest/src/tempest/tempest/common/service_client.py", line 69, in request raise exceptions.Conflict(ex) tempest.exceptions.Conflict: An object with that identifier already exists Details: An object with that identifier already exists Details: {u'message': u'Member with address 127.0.0.1 and protocol_port 80 already present in pool 521b1e5f-9b16-4ff2-a652-0c98ff89055b', u'type': u'MemberExists', u'detail': u''} ====== Totals ====== Run: 119 in 78.891132 sec. - Passed: 97 - Skipped: 4 - Failed: 18 ============== Worker Balance ============== - Worker 0 (119 tests) => 0:01:37.773793s ERROR: InvocationError: '/bin/sh tools/pretty_tox.sh '
__________________________________________________________________________ OpenStack Development Mailing List (not for usage questions) Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev