code: def MI_enumInstanceNames(self,
                               env,
                               ns,
                               cimClass):
          # pylint: disable=invalid-name
          
  
          logger = env.get_logger()
          logger.log_debug('CIMProvider MI_enumInstanceNames called...')
          provClass = False
          keys = pywbem.NocaseDict()
          [keys.__setitem__(p.name, p) for p in cimClass.properties.values() \
                  if 'key' in p.qualifiers]
  
          _strip_quals(keys)
          path = pywbem.CIMInstanceName(classname=cimClass.classname,
                                        namespace=ns)
          model = pywbem.CIMInstance(classname=cimClass.classname,
                                     properties=keys,
                                     path=path)
          gen = self.enum_instances(env=env,
                                    model=model,
                                    cim_class=cimClass,
                                    keys_only=True)
          try:
              iter(gen)
          except TypeError:
              logger.log_debug('CIMProvider MI_enumInstanceNames returning')
              return
  
          for inst in gen:
              rval = build_instance_name(inst)
              yield rval
          logger.log_debug('CIMProvider MI_enumInstanceNames returning')
docs: Return instance names of a given CIM class
  
          Implements the WBEM operation EnumerateInstanceNames in terms
          of the enum_instances method.  A derived class will not normally
          override this method.