Handle the case where there are no only_if_needed labels in host filtering code.



git-svn-id: http://test.kernel.org/svn/autotest/trunk@2413 592f7852-d20e-0410-864c-8624ca9c26a4
diff --git a/frontend/afe/rpc_utils.py b/frontend/afe/rpc_utils.py
index 014e3f3..27bbbcd 100644
--- a/frontend/afe/rpc_utils.py
+++ b/frontend/afe/rpc_utils.py
@@ -102,13 +102,14 @@
     if exclude_only_if_needed_labels:
         only_if_needed_labels = models.Label.valid_objects.filter(
             only_if_needed=True)
-        only_if_needed_ids = ','.join(
-            str(label['id']) for label in only_if_needed_labels.values('id'))
-        query = models.Host.objects.add_join(
-            query, 'hosts_labels', join_key='host_id',
-            join_condition='hosts_labels_exclude.label_id IN (%s)'
-                           % only_if_needed_ids,
-            suffix='_exclude', exclude=True)
+        if only_if_needed_labels.count() > 0:
+            only_if_needed_ids = ','.join(str(label['id']) for label
+                                          in only_if_needed_labels.values('id'))
+            query = models.Host.objects.add_join(
+                query, 'hosts_labels', join_key='host_id',
+                join_condition='hosts_labels_exclude.label_id IN (%s)'
+                               % only_if_needed_ids,
+                suffix='_exclude', exclude=True)
     filter_data['extra_args'] = (extra_host_filters(multiple_labels))
     return models.Host.query_objects(filter_data, initial_query=query)