Public bug reported:

Description
===========

In "List Servers Detailed" API, when specifying multiple same query parameters 
(e.g. status=error&status=active),
only one pair of parameter and value (status=error) is included in the 
"servers_links"("href") of the response.

The 'collections.OrderedDict' eliminate duplications of query parameters.
So the issue occurrs.

https://github.com/openstack/nova/blob/3f08521d33c60e4bfe04bc236bb8761f654004df/nova/api/openstack/common.py#L390

Steps to reproduce
==================

Execute "List Servers Detailed" API with multiple same query parameters
(status=error&status=active) and 'limit' query parameter.

curl -g -i -X GET
"http://10.0.2.15/compute/v2.1/servers/detail?limit=1&status=error&status=active";
-H "OpenStack-API-Version: compute 2.60" -H "User-Agent: python-
novaclient" -H "Accept: application/json" -H "X-OpenStack-Nova-API-
Version: 2.60" -H "X-Auth-Token: $TOKEN"

Expected result
===============

All pairs of query parameter and value (status=error&status=active)
should be included in "servers_links".

{
   "servers_links":[
      {
         
"href":"http://10.0.2.15/compute/v2.1/servers/detail?limit=1&status=error&status=active&marker=e8c1d40e-2be7-4c8e-9283-88be8562bc5a";,
         "rel":"next"
      }
   ],
   "servers":[
(snipped...)
   ]
}

Actual result
=============

only one pair of parameter and value (status=error) is included.

{
   "servers_links":[
      {
         
"href":"http://10.0.2.15/compute/v2.1/servers/detail?limit=1&status=error&marker=e8c1d40e-2be7-4c8e-9283-88be8562bc5a";,
         "rel":"next"
      }
   ],
   "servers":[
(snipped...)
   ]
}

Environment
===========

OS: Ubuntu 16.04.2 LTS
nova master (commit 3f08521d33c60e4bfe04bc236bb8761f654004df)

** Affects: nova
     Importance: Undecided
     Assignee: Takashi NATSUME (natsume-takashi)
         Status: In Progress


** Tags: api

** Tags added: api

** Changed in: nova
       Status: New => In Progress

** Description changed:

  Description
  ===========
  
- In "List Servers" API, when specifying multiple same query parameters (e.g. 
status=error&status=active),
+ In "List Servers Detailed" API, when specifying multiple same query 
parameters (e.g. status=error&status=active),
  only one pair of parameter and value (status=error) is included in the 
"servers_links"("href") of the response.
  
  The 'collections.OrderedDict' eliminate duplications of query parameters.
  So the issue occurrs.
  
  
https://github.com/openstack/nova/blob/3f08521d33c60e4bfe04bc236bb8761f654004df/nova/api/openstack/common.py#L390
  
  Steps to reproduce
  ==================
  
- Execute "List Servers" API with multiple same query parameters
+ Execute "List Servers Detailed" API with multiple same query parameters
  (status=error&status=active) and 'limit' query parameter.
  
  curl -g -i -X GET
  
"http://10.0.2.15/compute/v2.1/servers/detail?limit=1&status=error&status=active";
  -H "OpenStack-API-Version: compute 2.60" -H "User-Agent: python-
  novaclient" -H "Accept: application/json" -H "X-OpenStack-Nova-API-
  Version: 2.60" -H "X-Auth-Token: $TOKEN"
  
- 
  Expected result
  ===============
  
  All pairs of query parameter and value (status=error&status=active)
  should be included in "servers_links".
  
  {
-    "servers_links":[
-       {
-          
"href":"http://10.0.2.15/compute/v2.1/servers/detail?limit=1&status=error&status=active&marker=e8c1d40e-2be7-4c8e-9283-88be8562bc5a";,
-          "rel":"next"
-       }
-    ],
-    "servers":[
+    "servers_links":[
+       {
+          
"href":"http://10.0.2.15/compute/v2.1/servers/detail?limit=1&status=error&status=active&marker=e8c1d40e-2be7-4c8e-9283-88be8562bc5a";,
+          "rel":"next"
+       }
+    ],
+    "servers":[
  (snipped...)
-    ]
+    ]
  }
  
  Actual result
  =============
  
  only one pair of parameter and value (status=error) is included.
  
  {
-    "servers_links":[
-       {
-          
"href":"http://10.0.2.15/compute/v2.1/servers/detail?limit=1&status=error&marker=e8c1d40e-2be7-4c8e-9283-88be8562bc5a";,
-          "rel":"next"
-       }
-    ],
-    "servers":[
+    "servers_links":[
+       {
+          
"href":"http://10.0.2.15/compute/v2.1/servers/detail?limit=1&status=error&marker=e8c1d40e-2be7-4c8e-9283-88be8562bc5a";,
+          "rel":"next"
+       }
+    ],
+    "servers":[
  (snipped...)
-    ]
+    ]
  }
  
  Environment
  ===========
  
  OS: Ubuntu 16.04.2 LTS
  nova master (commit 3f08521d33c60e4bfe04bc236bb8761f654004df)

-- 
You received this bug notification because you are a member of Yahoo!
Engineering Team, which is subscribed to OpenStack Compute (nova).
https://bugs.launchpad.net/bugs/1759743

Title:
  Multiple same query parameters are not reflected on "servers_link"
  value in the response

Status in OpenStack Compute (nova):
  In Progress

Bug description:
  Description
  ===========

  In "List Servers Detailed" API, when specifying multiple same query 
parameters (e.g. status=error&status=active),
  only one pair of parameter and value (status=error) is included in the 
"servers_links"("href") of the response.

  The 'collections.OrderedDict' eliminate duplications of query parameters.
  So the issue occurrs.

  
https://github.com/openstack/nova/blob/3f08521d33c60e4bfe04bc236bb8761f654004df/nova/api/openstack/common.py#L390

  Steps to reproduce
  ==================

  Execute "List Servers Detailed" API with multiple same query
  parameters (status=error&status=active) and 'limit' query parameter.

  curl -g -i -X GET
  
"http://10.0.2.15/compute/v2.1/servers/detail?limit=1&status=error&status=active";
  -H "OpenStack-API-Version: compute 2.60" -H "User-Agent: python-
  novaclient" -H "Accept: application/json" -H "X-OpenStack-Nova-API-
  Version: 2.60" -H "X-Auth-Token: $TOKEN"

  Expected result
  ===============

  All pairs of query parameter and value (status=error&status=active)
  should be included in "servers_links".

  {
     "servers_links":[
        {
           
"href":"http://10.0.2.15/compute/v2.1/servers/detail?limit=1&status=error&status=active&marker=e8c1d40e-2be7-4c8e-9283-88be8562bc5a";,
           "rel":"next"
        }
     ],
     "servers":[
  (snipped...)
     ]
  }

  Actual result
  =============

  only one pair of parameter and value (status=error) is included.

  {
     "servers_links":[
        {
           
"href":"http://10.0.2.15/compute/v2.1/servers/detail?limit=1&status=error&marker=e8c1d40e-2be7-4c8e-9283-88be8562bc5a";,
           "rel":"next"
        }
     ],
     "servers":[
  (snipped...)
     ]
  }

  Environment
  ===========

  OS: Ubuntu 16.04.2 LTS
  nova master (commit 3f08521d33c60e4bfe04bc236bb8761f654004df)

To manage notifications about this bug go to:
https://bugs.launchpad.net/nova/+bug/1759743/+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