def module_report():
 ret = {'functions': [], 'function_attrs': [], 'function_subs': [], 'modules': [], 'module_attrs': [], 'missing_attrs': [], 'missing_subs': []}
 for ref in __salt__:
  if ('.' in ref):
   ret['functions'].append(ref)
  else:
   ret['modules'].append(ref)
   if hasattr(__salt__, ref):
    ret['module_attrs'].append(ref)
   for func in __salt__[ref]:
    full = '{0}.{1}'.format(ref, func)
    if hasattr(getattr(__salt__, ref), func):
     ret['function_attrs'].append(full)
    if (func in __salt__[ref]):
     ret['function_subs'].append(full)
 for func in ret['functions']:
  if (func not in ret['function_attrs']):
   ret['missing_attrs'].append(func)
  if (func not in ret['function_subs']):
   ret['missing_subs'].append(func)
 return ret

def module_report ( ) : ret = { 'functions' : [ ] , 'function_attrs' : [ ] , 'function_subs' : [ ] , 'modules' : [ ] , 'module_attrs' : [ ] , 'missing_attrs' : [ ] , 'missing_subs' : [ ] } for ref in __salt__ : if ( '.' in ref ) : ret [ 'functions' ] . append ( ref ) else : ret [ 'modules' ] . append ( ref ) if hasattr ( __salt__ , ref ) : ret [ 'module_attrs' ] . append ( ref ) for func in __salt__ [ ref ] : full = '{0}.{1}' . format ( ref , func ) if hasattr ( getattr ( __salt__ , ref ) , func ) : ret [ 'function_attrs' ] . append ( full ) if ( func in __salt__ [ ref ] ) : ret [ 'function_subs' ] . append ( full ) for func in ret [ 'functions' ] : if ( func not in ret [ 'function_attrs' ] ) : ret [ 'missing_attrs' ] . append ( func ) if ( func not in ret [ 'function_subs' ] ) : ret [ 'missing_subs' ] . append ( func ) return ret
return a dict containing all of the execution modules with a report on the overall availability via different references cli example: .