如何检查 Python 是否存在 MapR 卷?

How to check if a MapR volume exists with Python?

我正在努力处理 MapR 卷...我正在尝试扩展一个也有文件夹的卷结构。换句话说,我想检查卷路径是否存在,如果不存在则创建它,但我不知道如何进行检查。我对 MapR 和卷不是很熟悉。

这里有几个答案。然而,首先要确定的是,对于许多用途,MapR(现在称为 HPE Ezmeral Data Fabric)中的卷看起来就像一个目录。这意味着,出于许多目的,“检查是否存在卷”看起来就像“检查是否存在目录”。当然,这在 Python.

中是微不足道的

但是 MapR 卷确实有一些目录没有的管理 super-powers。因此,您可能想知道是否存在具有所需安装点的卷。这个python代码应该大致就是你所需要的:

import subprocess
import json
s = subprocess.run(["maprcli", "volume", "list", "-json"], stdout=subprocess.PIPE)
for x in json.loads(s.stdout)['data']:
    if x['mountdir'] == "/user/tdunning":
        print("Found %s mounted at %s" % (x['volumename'], x['mountdir']))

这将适用于多达数千卷。但是,有些人拥有数百万卷,因此您可能需要根据某些约定使用卷名来限制搜索。这可以通过与上面的代码非常相似的方式来完成,但您可能想改用 maprcli volume info -name tdunning.home -json 这样的命令。

有关这些命令的更多信息,请参阅以下链接:

https://docs.datafabric.hpe.com/62/ReferenceGuide/volume-info.html

https://docs.datafabric.hpe.com/62/ReferenceGuide/volume-list.html