def ls(self, path):
        ret = {}
        try:
            items = self.read(path)
        except (etcd.EtcdKeyNotFound, __HOLE__):
            return {}
        except etcd.EtcdConnectionFailed:
            log.error("etcd: failed to perform 'ls' operation on path {0} due to connection error".format(path))
            return None

        for item in items.children:
            if item.dir is True:
                if item.key == path:
                    continue
                dir_name = '{0}/'.format(item.key)
                ret[dir_name] = {}
            else:
                ret[item.key] = item.value
        return {path: ret}
dataset/ETHPy150Open saltstack/salt/salt/utils/etcd_util.py/EtcdClient.ls