code: def _pull_response(self, namespace, req_type, **params):
          
  
          self._validate_namespace(namespace)
  
          context_id = params['EnumerationContext']
  
          try:
              context_data = self.enumeration_contexts[context_id]
          except KeyError:
              raise CIMError(
                  CIM_ERR_INVALID_ENUMERATION_CONTEXT,
                  _format("EnumerationContext {0!A} not found in mock server "
                          "enumeration contexts.", context_id))
  
          if context_data['pull_type'] != req_type:
              raise CIMError(
                  CIM_ERR_INVALID_ENUMERATION_CONTEXT,
                  _format("Invalid pull operations {0!A} does not match "
                          "expected {1!A} for EnumerationContext {2!A}",
                          context_data['pull_type'], req_type, context_id))
  
          objs_list = context_data['data']
  
          max_obj_cnt = params['MaxObjectCount']
          if not max_obj_cnt:
              max_obj_cnt = _DEFAULT_MAX_OBJECT_COUNT
  
          if len(objs_list) <= max_obj_cnt:
              eos = u'TRUE'
              rtn_objs_list = objs_list
              del self.enumeration_contexts[context_id]
              context_id = ""
          else:
              eos = u'FALSE'
              rtn_objs_list = objs_list[0: max_obj_cnt]
              del objs_list[0: max_obj_cnt]
  
          return self._make_pull_imethod_resp(rtn_objs_list, eos, context_id)
docs: Common method for all of the Pull methods. Since all of the pull
          methods operate independent of the type of data, this single function
          severs as common code
  
          This method validates the namespace, gets data on the enumeration
          sequence from the enumeration_contexts table, validates the pull
          type, and returns the required number of objects.
  
          This method assumes the same context_id throughout the sequence.
  
          Raises:
  
              CIMError: CIM_ERR_INVALID_ENUMERATION_CONTEXT