Merge "Support new facet response format"
This commit is contained in:
commit
92bfa24853
|
@ -64,7 +64,12 @@ class ListFacet(command.Lister):
|
|||
data = search_client.facets.list(**params)
|
||||
result = []
|
||||
for resource_type, values in six.iteritems(data):
|
||||
for s in values:
|
||||
if isinstance(values, list):
|
||||
# Cope with pre-1.0 service APIs
|
||||
facets = values
|
||||
else:
|
||||
facets = values['facets']
|
||||
for s in facets:
|
||||
options = []
|
||||
for o in s.get('options', []):
|
||||
options.append(
|
||||
|
|
|
@ -26,7 +26,7 @@ ResourceType = {
|
|||
}
|
||||
|
||||
|
||||
Facet = {
|
||||
OldFacet = {
|
||||
"OS::Nova::Server":
|
||||
[
|
||||
{"type": "string", "name": "id"},
|
||||
|
@ -35,6 +35,20 @@ Facet = {
|
|||
}
|
||||
|
||||
|
||||
# The alternate facet format introduced in
|
||||
# https://blueprints.launchpad.net/searchlight/+spec/count-endpoint
|
||||
Facet = {
|
||||
"OS::Nova::Server":
|
||||
{
|
||||
"doc_count": 2,
|
||||
"facets": [
|
||||
{"type": "string", "name": "id"},
|
||||
{"type": "date", "name": "created_at"},
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Resource = {
|
||||
"hits":
|
||||
{"hits":
|
||||
|
|
|
@ -21,10 +21,9 @@ class TestFacet(searchlight_fakes.TestSearchv1):
|
|||
self.facet_client = self.app.client_manager.search.facets
|
||||
|
||||
|
||||
class TestFacetList(TestFacet):
|
||||
|
||||
class TestFacetListBase(TestFacet):
|
||||
def setUp(self):
|
||||
super(TestFacetList, self).setUp()
|
||||
super(TestFacetListBase, self).setUp()
|
||||
self.cmd = facet.ListFacet(self.app, None)
|
||||
self.facet_client.list.return_value = searchlight_fakes.Facet
|
||||
|
||||
|
@ -42,6 +41,8 @@ class TestFacetList(TestFacet):
|
|||
)
|
||||
self.assertEqual(datalist, tuple(data))
|
||||
|
||||
|
||||
class TestFacetList(TestFacetListBase):
|
||||
def test_list(self):
|
||||
self._test_list([], all_projects=False, limit_terms=None, type=None)
|
||||
|
||||
|
@ -58,3 +59,12 @@ class TestFacetList(TestFacet):
|
|||
self._test_list(['--limit-terms', 'fake_limit'],
|
||||
all_projects=False,
|
||||
limit_terms='fake_limit', type=None)
|
||||
|
||||
|
||||
class TestOldFacetList(TestFacetListBase):
|
||||
def setUp(self):
|
||||
super(TestOldFacetList, self).setUp()
|
||||
self.facet_client.list.return_value = searchlight_fakes.OldFacet
|
||||
|
||||
def test_list(self):
|
||||
self._test_list([], all_projects=False, limit_terms=None, type=None)
|
||||
|
|
|
@ -37,7 +37,8 @@ class FacetsManager(base.BaseManager):
|
|||
that support facet terms.
|
||||
:param type: Request facets for a particular type by adding a type
|
||||
query parameter.
|
||||
:rtype: list of :class:`Facets`
|
||||
:rtype: dict of {resource_type: {'facets': [:class:`Facets`],
|
||||
'doc_count':, :class:int}}
|
||||
"""
|
||||
params = {}
|
||||
if kwargs.get('index'):
|
||||
|
|
Loading…
Reference in New Issue