code: def role_list(profile=None, **connection_args):
      '''
      Return a list of available roles (keystone role-list)
  
      CLI Example:
  
      .. code-block:: bash
  
          salt '*' keystone.role_list
      '''
      kstone = auth(profile, **connection_args)
      ret = {}
      for role in kstone.roles.list():
          ret[role.name] = dict((value, getattr(role, value)) for value in dir(role)
                                if not value.startswith('_') and
                                isinstance(getattr(role, value), (six.string_types, dict, bool)))
      return ref role_list(profile=None, **connection_args):
      '''
      Return a list of available roles (keystone role-list)
  
      CLI Example:
  
      .. code-block:: bash
  
          salt '*' keystone.role_list
      '''
      kstone = auth(profile, **connection_args)
      ret = {}
      for role in kstone.roles.list():
          ret[role.name] = dict((value, getattr(role, value)) for value in dir(role)
                                if not value.startswith('_') and
                                isinstance(getattr(role, value), (six.string_types, dict, bool)))
      return ret
docs: Return a list of available roles (keystone role-list)
  
      CLI Example:
  
      .. code-block:: bash
  
          salt '*' keystone.role_list