@flow.StateHandler(next_state=["ProcessArtifactResponses"])
  def ProcessKnowledgeBase(self, responses):
    """Collect and store any extra non-kb artifacts."""
    if not responses.success:
      raise flow.FlowError("Error collecting artifacts: %s" % responses.status)

    # Collect any non-knowledgebase artifacts that will be stored in aff4.
    artifact_list = self._GetExtraArtifactsForCollection()
    if artifact_list:
      self.CallFlow("ArtifactCollectorFlow", artifact_list=artifact_list,
                    next_state="ProcessArtifactResponses",
                    store_results_in_aff4=True)

    # Update the client index
    aff4.FACTORY.Create(client_index.MAIN_INDEX,
                        aff4_type="ClientIndex",
                        mode="rw",
                        object_exists=True,
                        token=self.token).AddClient(self.client)
dataset/ETHPy150Open google/grr/grr/lib/flows/general/discovery.py/Interrogate.ProcessKnowledgeBase/original