コード例 #1
0
 def list_events(query, include=None):
     result = ManagerElasticsearch.search_events(body=query,
                                                 include=include)
     events = ManagerElasticsearch.extract_search_result_values(result)
     metadata = ManagerElasticsearch.build_list_result_metadata(query,
                                                                result)
     return ListResult(events, metadata)
コード例 #2
0
    def _list_docs(self, doc_type, model_class, body=None, fields=None):
        include = list(fields) if fields else True
        result = self._connection.search(index=STORAGE_INDEX_NAME,
                                         doc_type=doc_type,
                                         body=body,
                                         _source=include)
        docs = ManagerElasticsearch.extract_search_result_values(result)

        # ES doesn't return _version if using its search API.
        if doc_type == NODE_INSTANCE_TYPE:
            for doc in docs:
                doc['version'] = None
        items = [self._fill_missing_fields_and_deserialize(doc, model_class)
                 for doc in docs]
        metadata = ManagerElasticsearch.build_list_result_metadata(body,
                                                                   result)
        return ListResult(items, metadata)
コード例 #3
0
 def delete_deployment(self, deployment_id):
     query = ManagerElasticsearch.build_request_body(
         filters={'deployment_id': deployment_id}, skip_size=True)
     self._delete_doc_by_query(EXECUTION_TYPE, query)
     self._delete_doc_by_query(NODE_INSTANCE_TYPE, query)
     self._delete_doc_by_query(NODE_TYPE, query)
     self._delete_doc_by_query(DEPLOYMENT_MODIFICATION_TYPE, query)
     return self._delete_doc(DEPLOYMENT_TYPE, deployment_id, Deployment)
コード例 #4
0
    def list_events(self, query, include=None):
        result = self._search(query, include=include)
        result_items = result['hits']['hits']
        events = [item['_source'] for item in result_items]

        metadata = ManagerElasticsearch.build_list_result_metadata(query,
                                                                   result)
        return ListResult(events, metadata)
コード例 #5
0
    def _list_docs(self, doc_type, model_class, body=None, fields=None):
        include = list(fields) if fields else True
        result = self._connection.search(index=STORAGE_INDEX_NAME,
                                         doc_type=doc_type,
                                         body=body,
                                         _source=include)
        docs = ManagerElasticsearch.extract_search_result_values(result)

        # ES doesn't return _version if using its search API.
        if doc_type == NODE_INSTANCE_TYPE:
            for doc in docs:
                doc['version'] = None
        items = [self._fill_missing_fields_and_deserialize(doc, model_class)
                 for doc in docs]
        metadata = ManagerElasticsearch.build_list_result_metadata(body,
                                                                   result)
        return ListResult(items, metadata)
コード例 #6
0
 def _get_items_list(self, doc_type, model_class, include=None,
                     filters=None, pagination=None, sort=None):
     body = ManagerElasticsearch.build_request_body(filters=filters,
                                                    pagination=pagination,
                                                    sort=sort)
     return self._list_docs(doc_type,
                            model_class,
                            body=body,
                            fields=include)
コード例 #7
0
 def _get_items_list(self, doc_type, model_class, include=None,
                     filters=None, pagination=None, sort=None):
     body = ManagerElasticsearch.build_request_body(filters=filters,
                                                    pagination=pagination,
                                                    sort=sort)
     return self._list_docs(doc_type,
                            model_class,
                            body=body,
                            fields=include)
コード例 #8
0
 def delete_deployment(self, deployment_id):
     query = ManagerElasticsearch.build_request_body(
         filters={'deployment_id': deployment_id},
         skip_size=True
     )
     self._delete_doc_by_query(EXECUTION_TYPE, query)
     self._delete_doc_by_query(NODE_INSTANCE_TYPE, query)
     self._delete_doc_by_query(NODE_TYPE, query)
     self._delete_doc_by_query(DEPLOYMENT_MODIFICATION_TYPE, query)
     return self._delete_doc(DEPLOYMENT_TYPE, deployment_id, Deployment)
コード例 #9
0
    def delete(self, filters=None, pagination=None, sort=None,
               range_filters=None, **kwargs):
        """Delete events/logs connected to a certain Deployment ID
        """
        query = self._build_query(filters=filters,
                                  pagination=pagination,
                                  sort=sort,
                                  range_filters=range_filters)
        events = ManagerElasticsearch.search_events(body=query)
        metadata = ManagerElasticsearch.build_list_result_metadata(query,
                                                                   events)
        events = ManagerElasticsearch.extract_info_for_deletion(events)
        get_blueprints_manager().delete_events(events)

        # We don't really want to return all of the deleted events, so it's a
        # bit of a hack to only return the number of events to delete - if any
        # of the events weren't deleted, we'd have gotten an error from the
        # method above
        return ListResult([len(events)], metadata)
コード例 #10
0
    def _search(self, query, include=None):
        es = ManagerElasticsearch.get_connection()

        return es.search(index=self._set_index_name(),
                         body=query,
                         _source=include or True)
コード例 #11
0
 def post(self, **kwargs):
     """
     Search using an Elasticsearch query
     """
     verify_json_content_type()
     return ManagerElasticsearch.search(index="cloudify_storage", body=request.json)
コード例 #12
0
 def _query_events():
     """
     List events for the provided Elasticsearch query
     """
     verify_json_content_type()
     return ManagerElasticsearch.search_events(body=request.json)