in src/watchdog/__init__.py [0:0]
def get_nfs_mount_options_on_macos(mount_point, mount_server="127.0.0.1:/"):
if not mount_point:
logging.warning("Unable to get local mount options with empty mount point")
return None
try:
process = subprocess.run(
["nfsstat", "-f", "JSON", "-m", mount_point],
check=True,
stdout=subprocess.PIPE,
universal_newlines=True,
timeout=NFSSTAT_TIMEOUT,
)
stdout = process.stdout
if not stdout:
logging.warning(
"Unable to get local mount options with mount point: %s", mount_point
)
return None
try:
state_json = json.loads(stdout)
except ValueError:
logging.exception("Unable to parse json of %s", stdout)
return None
try:
return ",".join(
state_json.get(mount_server)
.get("Original mount options")
.get("NFS parameters")
)
except AttributeError:
logging.exception("Unable to get object in %s", state_json)
return None
except subprocess.TimeoutExpired:
logging.warning(
"Fetching nfs mount parameters timed out for mount point %s. Ignoring port option.",
mount_point,
)
return None