瀏覽代碼

HUE-5304 [libsolr] Add a remove collection API

Romain Rigaux 8 年之前
父節點
當前提交
aff10c1

+ 0 - 2
desktop/libs/indexer/src/indexer/controller2.py

@@ -64,8 +64,6 @@ class IndexController(object):
         setattr(self, '_solr_cloud_mode', False)
     return getattr(self, '_solr_cloud_mode')
 
-#  def collection_exists(self, collection):
-#    return collection in self.get_collections()
 
   def get_indexes(self):
     indexes = []

+ 16 - 1
desktop/libs/indexer/src/indexer/solr_api.py

@@ -53,7 +53,22 @@ def list_collections(request):
 
   api = SolrApi(user=request.user)
 
-  response['collections'] = api.collections2()
+  response['collections'] = [{'isCoreOnly': False, 'isAlias': False, 'collections': [], 'name': name} for name in api.collections2()]
+  response['status'] = 0
+
+  return JsonResponse(response)
+
+
+@require_POST
+@api_error_handler
+def delete_collections(request):
+  response = {'status': -1}
+
+  names = request.POST.get_list('name')
+
+  api = SolrApi(user=request.user)
+
+  response['statuses'] = [api.remove_collection(name) for name in names]
   response['status'] = 0
 
   return JsonResponse(response)

+ 1 - 0
desktop/libs/indexer/src/indexer/urls.py

@@ -65,4 +65,5 @@ urlpatterns += patterns('indexer.api3',
 
 urlpatterns += patterns('indexer.solr_api',
   url(r'^api/collections/list/$', 'list_collections', name='list_collections'),
+  url(r'^api/collections/delete/$', 'delete_collections', name='delete_collections'),
 )

+ 1 - 2
desktop/libs/libsolr/src/libsolr/api.py

@@ -442,12 +442,11 @@ class SolrApi(object):
     except RestException, e:
         raise PopupException(e, title=_('Error while accessing Solr'))
 
-  def remove_collection(self, name, replication=1):
+  def remove_collection(self, name):
     try:
       params = self._get_params() + (
         ('action', 'DELETE'),
         ('name', name),
-        ('replicationFactor', replication),
         ('wt', 'json')
       )