code: def setup(self, disk_name, project, turbinia_zone):
      
      # TODO: Consider the case when multiple disks are provided by the previous
      # module or by the CLI.
  
      if project is None or turbinia_zone is None:
        self.state.add_error(
            'project or turbinia_zone are not all specified, bailing out',
            critical=True)
        return
  
      self.disk_name = disk_name
      self.project = project
      self.turbinia_zone = turbinia_zone
  
      try:
        turbinia_config.LoadConfig()
        self.turbinia_region = turbinia_config.TURBINIA_REGION
        self.instance = turbinia_config.PUBSUB_TOPIC
        if turbinia_config.PROJECT != self.project:
          self.state.add_error(
              'Specified project {0:s} does not match Turbinia configured '
              'project {1:s}. Use gcp_turbinia_import recipe to copy the disk '
              'into the same project.'.format(
                  self.project, turbinia_config.PROJECT), critical=True)
          return
        self._output_path = tempfile.mkdtemp()
        self.client = turbinia_client.TurbiniaClient()
      except TurbiniaException as e:
        self.state.add_error(e, critical=True)
        return
docs: Sets up the object attributes.
  
      Args:
        disk_name (string): Name of the disk to process
        project (string): The project containing the disk to process
        turbinia_zone (string): The zone containing the disk to process