Public bug reported:

I use REST api to create/update subnet with serive_types. I use some int
type values in the list.

The creation body is:
{
        "subnet": {
                "network_id": "0d04102a-ba15-4d6c-94ee-8ac480cbb1ba",
                "name": "hellowor",
                "cidr": "99.99.99.99/24",
                "service_types" : ["network:1",2,3],
                "ip_version": 4
        }
}

neutron server hit internal error.
2016-10-13 17:44:27.842 ERROR neutron.api.v2.resource 
[req-b9846c07-3574-4094-b6fe-ca978c1d31ce admin 
488da3aab0ff45df9e85e17e7f89fedd] create failed: No details.
2016-10-13 17:44:27.842 TRACE neutron.api.v2.resource Traceback (most recent 
call last):
2016-10-13 17:44:27.842 TRACE neutron.api.v2.resource   File 
"/opt/stack/neutron/neutron/api/v2/resource.py", line 79, in resource
2016-10-13 17:44:27.842 TRACE neutron.api.v2.resource     result = 
method(request=request, **args)
2016-10-13 17:44:27.842 TRACE neutron.api.v2.resource   File 
"/opt/stack/neutron/neutron/api/v2/base.py", line 430, in create
2016-10-13 17:44:27.842 TRACE neutron.api.v2.resource     return 
self._create(request, body, **kwargs)
2016-10-13 17:44:27.842 TRACE neutron.api.v2.resource   File 
"/opt/stack/neutron/neutron/db/api.py", line 88, in wrapped
2016-10-13 17:44:27.842 TRACE neutron.api.v2.resource     setattr(e, 
'_RETRY_EXCEEDED', True)
2016-10-13 17:44:27.842 TRACE neutron.api.v2.resource   File 
"/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 220, in 
__exit__
2016-10-13 17:44:27.842 TRACE neutron.api.v2.resource     self.force_reraise()
2016-10-13 17:44:27.842 TRACE neutron.api.v2.resource   File 
"/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 196, in 
force_reraise
2016-10-13 17:44:27.842 TRACE neutron.api.v2.resource     
six.reraise(self.type_, self.value, self.tb)
2016-10-13 17:44:27.842 TRACE neutron.api.v2.resource   File 
"/opt/stack/neutron/neutron/db/api.py", line 84, in wrapped
2016-10-13 17:44:27.842 TRACE neutron.api.v2.resource     return f(*args, 
**kwargs)
2016-10-13 17:44:27.842 TRACE neutron.api.v2.resource   File 
"/usr/local/lib/python2.7/dist-packages/oslo_db/api.py", line 151, in wrapper
2016-10-13 17:44:27.842 TRACE neutron.api.v2.resource     ectxt.value = 
e.inner_exc
2016-10-13 17:44:27.842 TRACE neutron.api.v2.resource   File 
"/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 220, in 
__exit__
2016-10-13 17:44:27.842 TRACE neutron.api.v2.resource     self.force_reraise()
2016-10-13 17:44:27.842 TRACE neutron.api.v2.resource   File 
"/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 196, in 
force_reraise
2016-10-13 17:44:27.842 TRACE neutron.api.v2.resource     
six.reraise(self.type_, self.value, self.tb)
2016-10-13 17:44:27.842 TRACE neutron.api.v2.resource   File 
"/usr/local/lib/python2.7/dist-packages/oslo_db/api.py", line 139, in wrapper
2016-10-13 17:44:27.842 TRACE neutron.api.v2.resource     return f(*args, 
**kwargs)
2016-10-13 17:44:27.842 TRACE neutron.api.v2.resource   File 
"/opt/stack/neutron/neutron/db/api.py", line 124, in wrapped
2016-10-13 17:44:27.842 TRACE neutron.api.v2.resource     
traceback.format_exc())
2016-10-13 17:44:27.842 TRACE neutron.api.v2.resource   File 
"/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 220, in 
__exit__
2016-10-13 17:44:27.842 TRACE neutron.api.v2.resource     self.force_reraise()
2016-10-13 17:44:27.842 TRACE neutron.api.v2.resource   File 
"/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 196, in 
force_reraise
2016-10-13 17:44:27.842 TRACE neutron.api.v2.resource     
six.reraise(self.type_, self.value, self.tb)
2016-10-13 17:44:27.842 TRACE neutron.api.v2.resource   File 
"/opt/stack/neutron/neutron/db/api.py", line 119, in wrapped
2016-10-13 17:44:27.842 TRACE neutron.api.v2.resource     return f(*dup_args, 
**dup_kwargs)
2016-10-13 17:44:27.842 TRACE neutron.api.v2.resource   File 
"/opt/stack/neutron/neutron/api/v2/base.py", line 439, in _create
2016-10-13 17:44:27.842 TRACE neutron.api.v2.resource     
allow_bulk=self._allow_bulk)
2016-10-13 17:44:27.842 TRACE neutron.api.v2.resource   File 
"/opt/stack/neutron/neutron/api/v2/base.py", line 719, in prepare_request_body
2016-10-13 17:44:27.842 TRACE neutron.api.v2.resource     
attributes.convert_value(attr_info, res_dict, webob.exc.HTTPBadRequest)
2016-10-13 17:44:27.842 TRACE neutron.api.v2.resource   File 
"/opt/stack/neutron/neutron/api/v2/attributes.py", line 431, in convert_value
2016-10-13 17:44:27.842 TRACE neutron.api.v2.resource     res = 
validator(res_dict[attr], attr_vals['validate'][rule])
2016-10-13 17:44:27.842 TRACE neutron.api.v2.resource   File 
"/opt/stack/neutron/neutron/extensions/subnet_service_types.py", line 47, in 
_validate_subnet_service_types
2016-10-13 17:44:27.842 TRACE neutron.api.v2.resource     not 
service_type.startswith(tuple(prefixes))):
2016-10-13 17:44:27.842 TRACE neutron.api.v2.resource AttributeError: 'int' 
object has no attribute 'startswith'
2016-10-13 17:44:27.842 TRACE neutron.api.v2.resource

** Affects: neutron
     Importance: Undecided
     Assignee: zhaobo (zhaobo6)
         Status: New

** Changed in: neutron
     Assignee: (unassigned) => zhaobo (zhaobo6)

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to neutron.
https://bugs.launchpad.net/bugs/1633066

Title:
  Input int value into service_type list hit internal error

Status in neutron:
  New

Bug description:
  I use REST api to create/update subnet with serive_types. I use some
  int type values in the list.

  The creation body is:
  {
        "subnet": {
                "network_id": "0d04102a-ba15-4d6c-94ee-8ac480cbb1ba",
                "name": "hellowor",
                "cidr": "99.99.99.99/24",
                "service_types" : ["network:1",2,3],
                "ip_version": 4
        }
  }

  neutron server hit internal error.
  2016-10-13 17:44:27.842 ERROR neutron.api.v2.resource 
[req-b9846c07-3574-4094-b6fe-ca978c1d31ce admin 
488da3aab0ff45df9e85e17e7f89fedd] create failed: No details.
  2016-10-13 17:44:27.842 TRACE neutron.api.v2.resource Traceback (most recent 
call last):
  2016-10-13 17:44:27.842 TRACE neutron.api.v2.resource   File 
"/opt/stack/neutron/neutron/api/v2/resource.py", line 79, in resource
  2016-10-13 17:44:27.842 TRACE neutron.api.v2.resource     result = 
method(request=request, **args)
  2016-10-13 17:44:27.842 TRACE neutron.api.v2.resource   File 
"/opt/stack/neutron/neutron/api/v2/base.py", line 430, in create
  2016-10-13 17:44:27.842 TRACE neutron.api.v2.resource     return 
self._create(request, body, **kwargs)
  2016-10-13 17:44:27.842 TRACE neutron.api.v2.resource   File 
"/opt/stack/neutron/neutron/db/api.py", line 88, in wrapped
  2016-10-13 17:44:27.842 TRACE neutron.api.v2.resource     setattr(e, 
'_RETRY_EXCEEDED', True)
  2016-10-13 17:44:27.842 TRACE neutron.api.v2.resource   File 
"/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 220, in 
__exit__
  2016-10-13 17:44:27.842 TRACE neutron.api.v2.resource     self.force_reraise()
  2016-10-13 17:44:27.842 TRACE neutron.api.v2.resource   File 
"/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 196, in 
force_reraise
  2016-10-13 17:44:27.842 TRACE neutron.api.v2.resource     
six.reraise(self.type_, self.value, self.tb)
  2016-10-13 17:44:27.842 TRACE neutron.api.v2.resource   File 
"/opt/stack/neutron/neutron/db/api.py", line 84, in wrapped
  2016-10-13 17:44:27.842 TRACE neutron.api.v2.resource     return f(*args, 
**kwargs)
  2016-10-13 17:44:27.842 TRACE neutron.api.v2.resource   File 
"/usr/local/lib/python2.7/dist-packages/oslo_db/api.py", line 151, in wrapper
  2016-10-13 17:44:27.842 TRACE neutron.api.v2.resource     ectxt.value = 
e.inner_exc
  2016-10-13 17:44:27.842 TRACE neutron.api.v2.resource   File 
"/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 220, in 
__exit__
  2016-10-13 17:44:27.842 TRACE neutron.api.v2.resource     self.force_reraise()
  2016-10-13 17:44:27.842 TRACE neutron.api.v2.resource   File 
"/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 196, in 
force_reraise
  2016-10-13 17:44:27.842 TRACE neutron.api.v2.resource     
six.reraise(self.type_, self.value, self.tb)
  2016-10-13 17:44:27.842 TRACE neutron.api.v2.resource   File 
"/usr/local/lib/python2.7/dist-packages/oslo_db/api.py", line 139, in wrapper
  2016-10-13 17:44:27.842 TRACE neutron.api.v2.resource     return f(*args, 
**kwargs)
  2016-10-13 17:44:27.842 TRACE neutron.api.v2.resource   File 
"/opt/stack/neutron/neutron/db/api.py", line 124, in wrapped
  2016-10-13 17:44:27.842 TRACE neutron.api.v2.resource     
traceback.format_exc())
  2016-10-13 17:44:27.842 TRACE neutron.api.v2.resource   File 
"/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 220, in 
__exit__
  2016-10-13 17:44:27.842 TRACE neutron.api.v2.resource     self.force_reraise()
  2016-10-13 17:44:27.842 TRACE neutron.api.v2.resource   File 
"/usr/local/lib/python2.7/dist-packages/oslo_utils/excutils.py", line 196, in 
force_reraise
  2016-10-13 17:44:27.842 TRACE neutron.api.v2.resource     
six.reraise(self.type_, self.value, self.tb)
  2016-10-13 17:44:27.842 TRACE neutron.api.v2.resource   File 
"/opt/stack/neutron/neutron/db/api.py", line 119, in wrapped
  2016-10-13 17:44:27.842 TRACE neutron.api.v2.resource     return f(*dup_args, 
**dup_kwargs)
  2016-10-13 17:44:27.842 TRACE neutron.api.v2.resource   File 
"/opt/stack/neutron/neutron/api/v2/base.py", line 439, in _create
  2016-10-13 17:44:27.842 TRACE neutron.api.v2.resource     
allow_bulk=self._allow_bulk)
  2016-10-13 17:44:27.842 TRACE neutron.api.v2.resource   File 
"/opt/stack/neutron/neutron/api/v2/base.py", line 719, in prepare_request_body
  2016-10-13 17:44:27.842 TRACE neutron.api.v2.resource     
attributes.convert_value(attr_info, res_dict, webob.exc.HTTPBadRequest)
  2016-10-13 17:44:27.842 TRACE neutron.api.v2.resource   File 
"/opt/stack/neutron/neutron/api/v2/attributes.py", line 431, in convert_value
  2016-10-13 17:44:27.842 TRACE neutron.api.v2.resource     res = 
validator(res_dict[attr], attr_vals['validate'][rule])
  2016-10-13 17:44:27.842 TRACE neutron.api.v2.resource   File 
"/opt/stack/neutron/neutron/extensions/subnet_service_types.py", line 47, in 
_validate_subnet_service_types
  2016-10-13 17:44:27.842 TRACE neutron.api.v2.resource     not 
service_type.startswith(tuple(prefixes))):
  2016-10-13 17:44:27.842 TRACE neutron.api.v2.resource AttributeError: 'int' 
object has no attribute 'startswith'
  2016-10-13 17:44:27.842 TRACE neutron.api.v2.resource

To manage notifications about this bug go to:
https://bugs.launchpad.net/neutron/+bug/1633066/+subscriptions

-- 
Mailing list: https://launchpad.net/~yahoo-eng-team
Post to     : yahoo-eng-team@lists.launchpad.net
Unsubscribe : https://launchpad.net/~yahoo-eng-team
More help   : https://help.launchpad.net/ListHelp

Reply via email to