** Changed in: python-neutronclient
Status: Fix Committed => Fix Released
--
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to neutron.
https://bugs.launchpad.net/bugs/1430541
Title:
Neutron client expects a VALUE for all TYPEs when creating a neutron
lbaas pool with session persistence
Status in OpenStack Neutron (virtual network service):
Fix Released
Status in Python client library for Neutron:
Fix Released
Bug description:
When creating a neutron lbaas pool with session persistence TYPE as
"HTTP_COOKIE" or "SOURCE_IP" the VALUE field is not expected by the neutron
server.
1. If not given a VALUE, the client throws "the format expected is
<TYPE>:<VALUE>" error.
2. If given a VALUE, the server throws an internal server error.
3. And in cases like this we should expect a 400 error instead of a 500
internal server error.
I have pasted below the detailed log of the 2 different scenarios
using HTTP_COOKIE.
Case 1: If VALUE not given:
-----------------------------------------
kilo1@ubuntu:/opt/stack/neutron-lbaas/neutron_lbaas$ neutron -v
lbaas-pool-create --lb-algorithm ROUND_ROBIN --listener listener1 --protocol
HTTP pool1 --session-persistence HTTP_COOKIE
DEBUG: keystoneclient.session REQ: curl -g -i --cacert
"/opt/stack/data/CA/int-ca/ca-chain.pem" -X GET http://10.0.2.15:5000/v2.0 -H
"Accept: application/json" -H "User-Agent: python-keystoneclient"
DEBUG: urllib3.util.retry Converted retries value: 0 -> Retry(total=0,
connect=None, read=None, redirect=0)
DEBUG: keystoneclient.session RESP: [200] content-length: 335 vary:
X-Auth-Token server: Apache/2.4.7 (Ubuntu) date: Tue, 10 Mar 2015 01:39:51 GMT
content-type: application/json x-openstack-request-id:
req-40f09f7e-97a2-46b2-ad91-c952abf2c3bc
RESP BODY: {"version": {"status": "stable", "updated":
"2014-04-17T00:00:00Z", "media-types": [{"base": "application/json", "type":
"application/vnd.openstack.identity-v2.0+json"}], "id": "v2.0", "links":
[{"href": "http://10.0.2.15:5000/v2.0/", "rel": "self"}, {"href":
"http://docs.openstack.org/", "type": "text/html", "rel": "describedby"}]}}
DEBUG: stevedore.extension found extension EntryPoint.parse('table =
cliff.formatters.table:TableFormatter')
DEBUG: stevedore.extension found extension EntryPoint.parse('shell =
cliff.formatters.shell:ShellFormatter')
DEBUG: stevedore.extension found extension EntryPoint.parse('value =
cliff.formatters.value:ValueFormatter')
DEBUG: stevedore.extension found extension EntryPoint.parse('yaml =
clifftablib.formatters:YamlFormatter')
DEBUG: stevedore.extension found extension EntryPoint.parse('json =
clifftablib.formatters:JsonFormatter')
DEBUG: stevedore.extension found extension EntryPoint.parse('html =
clifftablib.formatters:HtmlFormatter')
DEBUG: neutronclient.neutron.v2_0.lb.v2.pool.CreatePool
get_data(Namespace(admin_state=True, columns=[], description=None,
formatter='table', healthmonitor_id=None, lb_algorithm=u'ROUND_ROBIN',
listener=u'listener1', max_width=0, name=u'pool1', prefix='', protocol=u'HTTP',
request_format='json', session_persistence=u'HTTP_COOKIE', tenant_id=None,
variables=[]))
DEBUG: keystoneclient.auth.identity.v2 Making authentication request to
http://10.0.2.15:5000/v2.0/tokens
DEBUG: urllib3.util.retry Converted retries value: 0 -> Retry(total=0,
connect=None, read=None, redirect=0)
ERROR: neutronclient.shell Incorrect --session-persistence format. Format is
<TYPE>:<VALUE>
Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/neutronclient/shell.py", line
731, in run_subcommand
return run_command(cmd, cmd_parser, sub_argv)
File "/usr/local/lib/python2.7/dist-packages/neutronclient/shell.py", line
97, in run_command
return cmd.run(known_args)
File
"/usr/local/lib/python2.7/dist-packages/neutronclient/common/command.py", line
29, in run
return super(OpenStackCommand, self).run(parsed_args)
File "/usr/local/lib/python2.7/dist-packages/cliff/display.py", line 91, in
run
column_names, data = self.take_action(parsed_args)
File
"/usr/local/lib/python2.7/dist-packages/neutronclient/common/command.py", line
35, in take_action
return self.get_data(parsed_args)
File
"/usr/local/lib/python2.7/dist-packages/neutronclient/neutron/v2_0/__init__.py",
line 468, in get_data
body = self.args2body(parsed_args)
File
"/usr/local/lib/python2.7/dist-packages/neutronclient/neutron/v2_0/lb/v2/pool.py",
line 105, in args2body
parsed_args.session_persistence = _parse_persistence(parsed_args)
File
"/usr/local/lib/python2.7/dist-packages/neutronclient/neutron/v2_0/lb/v2/pool.py",
line 32, in _parse_persistence
raise exceptions.CommandError('Incorrect --session-persistence'
CommandError: Incorrect --session-persistence format. Format is <TYPE>:<VALUE>
Incorrect --session-persistence format. Format is <TYPE>:<VALUE>
=========================================================================================================
case 2: If VALUE is given
----------------------------------------------
kilo1@ubuntu:/opt/stack/neutron-lbaas/neutron_lbaas$ neutron -v lbaas-
pool-create --lb-algorithm ROUND_ROBIN --listener listener1 --protocol
HTTP pool1 --session-persistence HTTP_COOKIE:mycookie
DEBUG: keystoneclient.session REQ: curl -g -i --cacert
"/opt/stack/data/CA/int-ca/ca-chain.pem" -X GET http://10.0.2.15:5000/v2.0 -H
"Accept: application/json" -H "User-Agent: python-keystoneclient"
DEBUG: urllib3.util.retry Converted retries value: 0 -> Retry(total=0,
connect=None, read=None, redirect=0)
DEBUG: keystoneclient.session RESP: [200] content-length: 335 vary:
X-Auth-Token server: Apache/2.4.7 (Ubuntu) date: Tue, 10 Mar 2015 01:46:23 GMT
content-type: application/json x-openstack-request-id:
req-99a4800d-2df3-40a4-baf5-ae3e81cff817
RESP BODY: {"version": {"status": "stable", "updated":
"2014-04-17T00:00:00Z", "media-types": [{"base": "application/json", "type":
"application/vnd.openstack.identity-v2.0+json"}], "id": "v2.0", "links":
[{"href": "http://10.0.2.15:5000/v2.0/", "rel": "self"}, {"href":
"http://docs.openstack.org/", "type": "text/html", "rel": "describedby"}]}}
DEBUG: stevedore.extension found extension EntryPoint.parse('table =
cliff.formatters.table:TableFormatter')
DEBUG: stevedore.extension found extension EntryPoint.parse('shell =
cliff.formatters.shell:ShellFormatter')
DEBUG: stevedore.extension found extension EntryPoint.parse('value =
cliff.formatters.value:ValueFormatter')
DEBUG: stevedore.extension found extension EntryPoint.parse('yaml =
clifftablib.formatters:YamlFormatter')
DEBUG: stevedore.extension found extension EntryPoint.parse('json =
clifftablib.formatters:JsonFormatter')
DEBUG: stevedore.extension found extension EntryPoint.parse('html =
clifftablib.formatters:HtmlFormatter')
DEBUG: neutronclient.neutron.v2_0.lb.v2.pool.CreatePool
get_data(Namespace(admin_state=True, columns=[], description=None,
formatter='table', healthmonitor_id=None, lb_algorithm=u'ROUND_ROBIN',
listener=u'listener1', max_width=0, name=u'pool1', prefix='', protocol=u'HTTP',
request_format='json', session_persistence=u'HTTP_COOKIE:mycookie',
tenant_id=None, variables=[]))
DEBUG: keystoneclient.auth.identity.v2 Making authentication request to
http://10.0.2.15:5000/v2.0/tokens
DEBUG: urllib3.util.retry Converted retries value: 0 -> Retry(total=0,
connect=None, read=None, redirect=0)
DEBUG: keystoneclient.session REQ: curl -g -i --cacert
"/opt/stack/data/CA/int-ca/ca-chain.pem" -X GET
http://10.0.2.15:9696/v2.0/lbaas/listeners.json?fields=id&name=listener1 -H
"User-Agent: python-neutronclient" -H "Accept: application/json" -H
"X-Auth-Token: {SHA1}66ce0932b821acd556dea4d97310a5a376a216cc"
DEBUG: urllib3.util.retry Converted retries value: 0 -> Retry(total=0,
connect=None, read=None, redirect=0)
DEBUG: keystoneclient.session RESP: [200] date: Tue, 10 Mar 2015 01:46:24 GMT
content-length: 284 content-type: application/json; charset=UTF-8
x-openstack-request-id: req-fc117ddd-815d-4998-946a-75576f5697d7
RESP BODY: {"listeners": [{"protocol_port": 80, "protocol": "HTTP",
"description": "", "admin_state_up": true, "loadbalancers": [{"id":
"49d89086-6b0f-4c53-90e8-a78733b67b0b"}], "connection_limit": -1,
"default_pool_id": null, "id": "99175404-dc9a-4ad0-85b6-f348d7321457", "name":
"listener1"}]}
DEBUG: keystoneclient.session REQ: curl -g -i --cacert
"/opt/stack/data/CA/int-ca/ca-chain.pem" -X POST
http://10.0.2.15:9696/v2.0/lbaas/pools.json -H "User-Agent:
python-neutronclient" -H "Content-Type: application/json" -H "Accept:
application/json" -H "X-Auth-Token:
{SHA1}66ce0932b821acd556dea4d97310a5a376a216cc" -d '{"pool": {"lb_algorithm":
"ROUND_ROBIN", "protocol": "HTTP", "name": "pool1", "admin_state_up": true,
"listener_id": "99175404-dc9a-4ad0-85b6-f348d7321457", "session_persistence":
{"cookie_name": "mycookie", "type": "HTTP_COOKIE"}}}'
DEBUG: urllib3.util.retry Converted retries value: 0 -> Retry(total=0,
connect=None, read=None, redirect=0)
DEBUG: keystoneclient.session RESP:
DEBUG: neutronclient.v2_0.client Error message: {"NeutronError": {"message":
"Request Failed: internal server error while processing your request.", "type":
"HTTPInternalServerError", "detail": ""}}
ERROR: neutronclient.shell Request Failed: internal server error while
processing your request.
Traceback (most recent call last):
File "/usr/local/lib/python2.7/dist-packages/neutronclient/shell.py", line
731, in run_subcommand
return run_command(cmd, cmd_parser, sub_argv)
File "/usr/local/lib/python2.7/dist-packages/neutronclient/shell.py", line
97, in run_command
return cmd.run(known_args)
File
"/usr/local/lib/python2.7/dist-packages/neutronclient/common/command.py", line
29, in run
return super(OpenStackCommand, self).run(parsed_args)
File "/usr/local/lib/python2.7/dist-packages/cliff/display.py", line 91, in
run
column_names, data = self.take_action(parsed_args)
File
"/usr/local/lib/python2.7/dist-packages/neutronclient/common/command.py", line
35, in take_action
return self.get_data(parsed_args)
File
"/usr/local/lib/python2.7/dist-packages/neutronclient/neutron/v2_0/__init__.py",
line 475, in get_data
data = obj_creator(body)
File "/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py",
line 99, in with_params
ret = self.function(instance, *args, **kwargs)
File "/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py",
line 886, in create_lbaas_pool
return self.post(self.lbaas_pools_path, body=body)
File "/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py",
line 295, in post
headers=headers, params=params)
File "/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py",
line 208, in do_request
self._handle_fault_response(status_code, replybody)
File "/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py",
line 182, in _handle_fault_response
exception_handler_v20(status_code, des_error_body)
File "/usr/local/lib/python2.7/dist-packages/neutronclient/v2_0/client.py",
line 67, in exception_handler_v20
status_code=status_code)
InternalServerError: Request Failed: internal server error while processing
your request.
To manage notifications about this bug go to:
https://bugs.launchpad.net/neutron/+bug/1430541/+subscriptions
--
Mailing list: https://launchpad.net/~yahoo-eng-team
Post to : [email protected]
Unsubscribe : https://launchpad.net/~yahoo-eng-team
More help : https://help.launchpad.net/ListHelp