[ 
https://issues.apache.org/jira/browse/LIBCLOUD-777?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Tim Slot updated LIBCLOUD-777:
------------------------------
    Description: 
Hi, 

I'm using the openstack driver and authentication goes well. When I do a 
driver.list_images() or list_sizes() I'm getting a parse error from the 
openstack parser.

This is my config:
{code}
OpenStack = get_driver(Provider.OPENSTACK)
driver = OpenStack('USER', 'PASS',
                   ex_tenant_name='TENANT_ID',
                   
ex_force_auth_url='https://identity.stack.cloudvps.com/v2.0/tokens',
                   ex_force_service_region='NL',
                   ex_force_service_type='computev3',
                   ex_force_service_name='nova compute v3',
                   ex_force_auth_version='2.0_password')
{code}
This is the error:
{code}
# -------- begin 4449709904:4449372064 response ----------
HTTP/1.1 300 Multiple Choices
Content-Length: 580
Strict-Transport-Security: max-age=31536000
Content-Type: application/json
 
{"choices": [{"status": "EXPERIMENTAL", "media-types": [{"base": 
"application/json", "type": 
"application/vnd.openstack.compute+json;version=3"}], "id": "v3.0", "links": 
[{"href": "http://compute.stack.cloudvps.com/v3/v3/images/detail";, "rel": 
"self"}]}, {"status": "CURRENT", "media-types": [{"base": "application/xml", 
"type": "application/vnd.openstack.compute+xml;version=2"}, {"base": 
"application/json", "type": 
"application/vnd.openstack.compute+json;version=2"}], "id": "v2.0", "links": 
[{"href": "http://compute.stack.cloudvps.com/v2/v3/images/detail";, "rel": 
"self"}]}]}
# -------- end 4449709904:4449372064 response ----------
 
Traceback (most recent call last):
  File "app.py", line 17, in <module>
    images = driver.list_images()
  File 
"/usr/local/lib/python2.7/site-packages/libcloud/compute/drivers/openstack.py", 
line 268, in list_images
    self.connection.request('/images/detail').object, ex_only_active)
  File "/usr/local/lib/python2.7/site-packages/libcloud/common/openstack.py", 
line 202, in request
    raw=raw)
  File "/usr/local/lib/python2.7/site-packages/libcloud/common/base.py", line 
799, in request
    response = responseCls(**kwargs)
  File 
"/usr/local/lib/python2.7/site-packages/libcloud/compute/drivers/openstack.py", 
line 1001, in __init__
    super(OpenStack_1_1_Response, self).__init__(*args, **kwargs)
  File "/usr/local/lib/python2.7/site-packages/libcloud/common/base.py", line 
142, in __init__
    message=self.parse_error(),
  File "/usr/local/lib/python2.7/site-packages/libcloud/common/openstack.py", 
line 359, in parse_error
    if len(values) > 0 and values[0]['code'] == 404 and key_pair_name:
TypeError: list indices must be integers, not str
{code}



I think its because of the multiple choices, but I'm not sure. Any idea how to 
solve this?

Thanks!


  was:
Hi, 

I'm using the openstack driver and authentication goes well. When I do a 
driver.list_images() or list_sizes() I'm getting a parse error from the 
openstack parser.

This is my config:
OpenStack = get_driver(Provider.OPENSTACK)
driver = OpenStack('USER', 'PASS',
                   ex_tenant_name='TENANT_ID',
                   
ex_force_auth_url='https://identity.stack.cloudvps.com/v2.0/tokens',
                   ex_force_service_region='NL',
                   ex_force_service_type='computev3',
                   ex_force_service_name='nova compute v3',
                   ex_force_auth_version='2.0_password')

This is the error:

# -------- begin 4449709904:4449372064 response ----------
HTTP/1.1 300 Multiple Choices
Content-Length: 580
Strict-Transport-Security: max-age=31536000
Content-Type: application/json
 
{"choices": [{"status": "EXPERIMENTAL", "media-types": [{"base": 
"application/json", "type": 
"application/vnd.openstack.compute+json;version=3"}], "id": "v3.0", "links": 
[{"href": "http://compute.stack.cloudvps.com/v3/v3/images/detail";, "rel": 
"self"}]}, {"status": "CURRENT", "media-types": [{"base": "application/xml", 
"type": "application/vnd.openstack.compute+xml;version=2"}, {"base": 
"application/json", "type": 
"application/vnd.openstack.compute+json;version=2"}], "id": "v2.0", "links": 
[{"href": "http://compute.stack.cloudvps.com/v2/v3/images/detail";, "rel": 
"self"}]}]}
# -------- end 4449709904:4449372064 response ----------
 
Traceback (most recent call last):
  File "app.py", line 17, in <module>
    images = driver.list_images()
  File 
"/usr/local/lib/python2.7/site-packages/libcloud/compute/drivers/openstack.py", 
line 268, in list_images
    self.connection.request('/images/detail').object, ex_only_active)
  File "/usr/local/lib/python2.7/site-packages/libcloud/common/openstack.py", 
line 202, in request
    raw=raw)
  File "/usr/local/lib/python2.7/site-packages/libcloud/common/base.py", line 
799, in request
    response = responseCls(**kwargs)
  File 
"/usr/local/lib/python2.7/site-packages/libcloud/compute/drivers/openstack.py", 
line 1001, in __init__
    super(OpenStack_1_1_Response, self).__init__(*args, **kwargs)
  File "/usr/local/lib/python2.7/site-packages/libcloud/common/base.py", line 
142, in __init__
    message=self.parse_error(),
  File "/usr/local/lib/python2.7/site-packages/libcloud/common/openstack.py", 
line 359, in parse_error
    if len(values) > 0 and values[0]['code'] == 404 and key_pair_name:
TypeError: list indices must be integers, not str




I think its because of the multiple choices, but I'm not sure. Any idea how to 
solve this?

Thanks!



> Openstack compute parsing error
> -------------------------------
>
>                 Key: LIBCLOUD-777
>                 URL: https://issues.apache.org/jira/browse/LIBCLOUD-777
>             Project: Libcloud
>          Issue Type: Bug
>          Components: Compute
>            Reporter: Tim Slot
>
> Hi, 
> I'm using the openstack driver and authentication goes well. When I do a 
> driver.list_images() or list_sizes() I'm getting a parse error from the 
> openstack parser.
> This is my config:
> {code}
> OpenStack = get_driver(Provider.OPENSTACK)
> driver = OpenStack('USER', 'PASS',
>                    ex_tenant_name='TENANT_ID',
>                    
> ex_force_auth_url='https://identity.stack.cloudvps.com/v2.0/tokens',
>                    ex_force_service_region='NL',
>                    ex_force_service_type='computev3',
>                    ex_force_service_name='nova compute v3',
>                    ex_force_auth_version='2.0_password')
> {code}
> This is the error:
> {code}
> # -------- begin 4449709904:4449372064 response ----------
> HTTP/1.1 300 Multiple Choices
> Content-Length: 580
> Strict-Transport-Security: max-age=31536000
> Content-Type: application/json
>  
> {"choices": [{"status": "EXPERIMENTAL", "media-types": [{"base": 
> "application/json", "type": 
> "application/vnd.openstack.compute+json;version=3"}], "id": "v3.0", "links": 
> [{"href": "http://compute.stack.cloudvps.com/v3/v3/images/detail";, "rel": 
> "self"}]}, {"status": "CURRENT", "media-types": [{"base": "application/xml", 
> "type": "application/vnd.openstack.compute+xml;version=2"}, {"base": 
> "application/json", "type": 
> "application/vnd.openstack.compute+json;version=2"}], "id": "v2.0", "links": 
> [{"href": "http://compute.stack.cloudvps.com/v2/v3/images/detail";, "rel": 
> "self"}]}]}
> # -------- end 4449709904:4449372064 response ----------
>  
> Traceback (most recent call last):
>   File "app.py", line 17, in <module>
>     images = driver.list_images()
>   File 
> "/usr/local/lib/python2.7/site-packages/libcloud/compute/drivers/openstack.py",
>  line 268, in list_images
>     self.connection.request('/images/detail').object, ex_only_active)
>   File "/usr/local/lib/python2.7/site-packages/libcloud/common/openstack.py", 
> line 202, in request
>     raw=raw)
>   File "/usr/local/lib/python2.7/site-packages/libcloud/common/base.py", line 
> 799, in request
>     response = responseCls(**kwargs)
>   File 
> "/usr/local/lib/python2.7/site-packages/libcloud/compute/drivers/openstack.py",
>  line 1001, in __init__
>     super(OpenStack_1_1_Response, self).__init__(*args, **kwargs)
>   File "/usr/local/lib/python2.7/site-packages/libcloud/common/base.py", line 
> 142, in __init__
>     message=self.parse_error(),
>   File "/usr/local/lib/python2.7/site-packages/libcloud/common/openstack.py", 
> line 359, in parse_error
>     if len(values) > 0 and values[0]['code'] == 404 and key_pair_name:
> TypeError: list indices must be integers, not str
> {code}
> I think its because of the multiple choices, but I'm not sure. Any idea how 
> to solve this?
> Thanks!



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to