49 lines
1.2 KiB
Python
49 lines
1.2 KiB
Python
#!/usr/bin/python
|
||
# -*- coding: utf-8 -*-
|
||
|
||
from comar.service import *
|
||
import time
|
||
|
||
from pardus.fstabutils import Fstab
|
||
|
||
serviceType = "local"
|
||
serviceDefault = "off"
|
||
serviceDesc = _({"en": "Remote Filesystem Mounter",
|
||
"tr": "Uzak Dosyasistemi Bağlayıcı"})
|
||
|
||
DATAFILE = "/var/run/netfs.status"
|
||
|
||
MSG_NM_NOT_RUNNING = _({"en": "NetworkManager service is not running",
|
||
"tr": "NetworkManager hizmeti çalışmıyor",
|
||
})
|
||
|
||
@synchronized
|
||
def start():
|
||
# Mount all remote filesystems
|
||
if run("/usr/bin/nm-online -q -t 10") != 0:
|
||
# NM is not running
|
||
fail(MSG_NM_NOT_RUNNING)
|
||
|
||
fstab = Fstab()
|
||
for entry in fstab.get_entries():
|
||
if entry.is_remote_mount():
|
||
if entry.is_nfs():
|
||
# Start rpcbind if fs is nfs|nfs4
|
||
startDependencies("rpcbind")
|
||
# Mount it
|
||
entry.mount()
|
||
|
||
@synchronized
|
||
def stop():
|
||
# Unmount all remote filesystems
|
||
fstab = Fstab()
|
||
for entry in fstab.get_entries():
|
||
if entry.is_remote_mount():
|
||
entry.unmount()
|
||
|
||
def status():
|
||
fstab = Fstab()
|
||
for entry in fstab.get_entries():
|
||
if entry.is_remote_mount() and entry.is_mounted():
|
||
return True
|