try: request = urllib2.Request(solr_url, data=solr_data) response = urllib2.urlopen(request) response = json.loads(response.read()) except Exception, e: Logger.Error('%s - apply_actions_to_content_with_historical_check - error:%s' % (__name__, e)) Logger.Info('%s - apply_actions_to_content_with_historical_check - finished' % __name__) return content content_from_solr = response['response']['docs'] content_ids_from_solr = [item['id'] for item in content_from_solr] content_ids_not_in_solr = [item['id'] for item in content if item['id'] not in content_ids_from_solr] content_not_in_solr = [item for item in content if item['id'] in content_ids_not_in_solr] return_content = content[:] for action in actions: ac = ActionController(action) content_id_in_solr_requiring_action = ac.extract_ids_of_content_without_action_applied(content_from_solr) content_in_solr_requiring_action = [item for item in content_from_solr if item['id'] in content_id_in_solr_requiring_action] content_requiring_action = content_not_in_solr + content_in_solr_requiring_action content_with_action_applied = ac.run_action(content_requiring_action) for item in content_with_action_applied: already_exists = False for return_item in return_content: if return_item['id'] == item['id']: for key in item.keys(): return_item[key] = item[key] already_exists = True if not already_exists: return_content.append(item) Logger.Info('%s - apply_actions_to_content_with_historical_check - finished' % __name__) return return_content