/usr/sbin
NameSizeModeActions
accessdb128880755editdlrm
accton140160755editdlrm
addgnupghome30750755editdlrm
addpart254560755editdlrm
adduser1517200755editdlrm
agetty638880755editdlrm
alternatives375360755editdlrm
anacron419760755editdlrm
apachectl48040755editdlrm
applygnupgdefaults22170755editdlrm
arp662640755editdlrm
arpd1121520755editdlrm
arping294320755editdlrm
atd334080755editdlrm
atrun670755editdlrm
authconfig220570755editdlrm
avcstat167920755editdlrm
badblocks333680755editdlrm
blkdeactivate163510555editdlrm
blkdiscard297520755editdlrm
blkid1010240755editdlrm
blkmapd547520755editdlrm
blkzone509440755editdlrm
blockdev422960755editdlrm
bridge1620480755editdlrm
build-locale-archive8612480700editdlrm
capsh332240755editdlrm
cfdisk1007680755editdlrm
chcpu295200755editdlrm
chgpasswd713600755editdlrm
chkconfig461920755editdlrm
chpasswd628960755editdlrm
chroot424480755editdlrm
clock667840755editdlrm
clockdiff209200755editdlrm
consoletype121440755editdlrm
convertquota805680755editdlrm
cracklib-check133600755editdlrm
cracklib-format2510755editdlrm
cracklib-packer133680755editdlrm
cracklib-unpacker92480755editdlrm
create-cracklib-dict9900755editdlrm
crond757120755editdlrm
csf2509790700editdlrm
ctrlaltdel253840755editdlrm
ctstat259360755editdlrm
dcb1587600755editdlrm
ddns-confgen209520755editdlrm
debugfs2371840755editdlrm
delpart254560755editdlrm
depmod1637840755editdlrm
devlink2210480755editdlrm
dhclient4645680755editdlrm
dhclient-script336460755editdlrm
dmfilemapd251360555editdlrm
dmsetup1624480555editdlrm
dmstats1624480555editdlrm
dnssec-checkds9360755editdlrm
dnssec-coverage9380755editdlrm
dnssec-dsfromkey623040755editdlrm
dnssec-importkey622960755editdlrm
dnssec-keyfromlabel663120755editdlrm
dnssec-keygen745840755editdlrm
dnssec-keymgr9340755editdlrm
dnssec-revoke581040755editdlrm
dnssec-settime623040755editdlrm
dnssec-signzone1200160755editdlrm
dnssec-verify541120755editdlrm
dovecot1660720755editdlrm
dovecot_cpshutdown33440755editdlrm
dpkg-fsys-usrunmess123990755editdlrm
dump-acct298480755editdlrm
dump-utmp256160755editdlrm
dumpe2fs332960755editdlrm
e2freefrag168160755editdlrm
e2fsck3364000755editdlrm
e2image374880755editdlrm
e2label1132800755editdlrm
e2mmpstatus332960755editdlrm
e2undo208640755editdlrm
e4crypt251360755editdlrm
e4defrag291760755editdlrm
edquota934320755editdlrm
ether-wake757680755editdlrm
ethtool5711760755editdlrm
exicyclog113650755editdlrm
exigrep117100755editdlrm
exim17050964755editdlrm
eximstats1525460755editdlrm
exim_checkaccess49430755editdlrm
exim_dbmbuild246880755editdlrm
exim_dumpdb601120755editdlrm
exim_fixdb656560755editdlrm
exim_lock272240755editdlrm
exim_tidydb561200755editdlrm
exinext82170755editdlrm
exiqgrep67390755editdlrm
exiqsumm64430755editdlrm
exiwhat45240755editdlrm
exportfs843520755editdlrm
faillock210160755editdlrm
fcgistarter175200755editdlrm
fdformat339680755editdlrm
fdisk1340480755editdlrm
filefrag168560755editdlrm
findfs126720755editdlrm
fix-info-dir80330755editdlrm
fixfiles107270755editdlrm
fsck547520755editdlrm
fsck.cramfs424080755editdlrm
fsck.ext23364000755editdlrm
fsck.ext33364000755editdlrm
fsck.ext43364000755editdlrm
fsck.minix1011200755editdlrm
fsfreeze167760755editdlrm
fstrim507920755editdlrm
fuse2fs720800755editdlrm
fuser390560755editdlrm
g13-syshelp1943120755editdlrm
genhomedircon299760755editdlrm
genhostid121440755editdlrm
genl1243200755editdlrm
genrandom126720755editdlrm
getcap126480755editdlrm
getenforce80240755editdlrm
getpcaps125680755editdlrm
getsebool121520755editdlrm
groupadd976320755editdlrm
groupdel932800755editdlrm
groupmems629600755editdlrm
groupmod1017600755editdlrm
grpck629440755editdlrm
grpconv586400755editdlrm
grpunconv586320755editdlrm
grub2-bios-setup12139840755editdlrm
grub2-get-kernel-settings27420755editdlrm
grub2-install15114640755editdlrm
grub2-mkconfig88880755editdlrm
grub2-probe12139280755editdlrm
grub2-reboot40850755editdlrm
grub2-rpm-sort2899360755editdlrm
grub2-set-bootflag167444755editdlrm
grub2-set-default35350755editdlrm
grub2-set-password31190755editdlrm
grub2-setpassword31190755editdlrm
grub2-switch-to-blscfg88090755editdlrm
grubby2600755editdlrm
gss-server252000755editdlrm
gssproxy1352480755editdlrm
halt2236960755editdlrm
hardlink174960755editdlrm
htcacheclean454240755editdlrm
httpd10152560755editdlrm
hwclock667840755editdlrm
iconvconfig338400755editdlrm
ifconfig828000755editdlrm
ifdown21230755editdlrm
ifenslave255440755editdlrm
ifstat1204960755editdlrm
ifup54630755editdlrm
init16136240755editdlrm
insmod1637840755editdlrm
install-info514320755editdlrm
installkernel3230755editdlrm
ip7099440755editdlrm
ip6tables943920755editdlrm
ip6tables-legacy943920755editdlrm
ip6tables-legacy-restore943920755editdlrm
ip6tables-legacy-save943920755editdlrm
ip6tables-restore943920755editdlrm
ip6tables-save943920755editdlrm
ipmaddr215040755editdlrm
ipset92240755editdlrm
iptables943920755editdlrm
iptables-legacy943920755editdlrm
iptables-legacy-restore943920755editdlrm
iptables-legacy-save943920755editdlrm
iptables-restore943920755editdlrm
iptables-save943920755editdlrm
iptraf-ng1891040755editdlrm
iptunnel256000755editdlrm
isc-hmac-fixup121440755editdlrm
key.dns_resolver251040755editdlrm
kpartx502320755editdlrm
lchage168000755editdlrm
ldattach337840755editdlrm
ldconfig10097680755editdlrm
lfd3916290700editdlrm
lgroupadd121600755editdlrm
lgroupdel121600755editdlrm
lgroupmod203520755editdlrm
lid166640755editdlrm
lnewusers203440755editdlrm
lnstat259360755editdlrm
load_policy125760755editdlrm
logrotate952640755editdlrm
logsave168000755editdlrm
losetup927680755editdlrm
lpasswd208400755editdlrm
lsmod1637840755editdlrm
luseradd203520755editdlrm
luserdel162560755editdlrm
lusermod203600755editdlrm
lwresd8611200755editdlrm
mariadbd254524800755editdlrm
matchpathcon126640755editdlrm
mii-diag260080755editdlrm
mii-tool215360755editdlrm
mkdict2510755editdlrm
mke2fs1417680755editdlrm
mkfs168720755editdlrm
mkfs.cramfs422560755editdlrm
mkfs.ext21417680755editdlrm
mkfs.ext31417680755editdlrm
mkfs.ext41417680755editdlrm
mkfs.minix886400755editdlrm
mkhomedir_helper250240755editdlrm
mklost+found121440755editdlrm
mkswap885520755editdlrm
modinfo1637840755editdlrm
modprobe1637840755editdlrm
modsec-sdbm-util264480750editdlrm
mount.nfs2019764755editdlrm
mount.nfs42019764755editdlrm
mountstats432370755editdlrm
mysqld254524800755editdlrm
named8611200755editdlrm
named-checkconf417680755editdlrm
named-checkzone375120755editdlrm
named-compilezone375120755editdlrm
named-journalprint121360755editdlrm
nameif173840755editdlrm
newusers1098000755editdlrm
nfsconf383760755editdlrm
nfsconvert133470755editdlrm
nfsdcld674480755editdlrm
nfsdclddb102420755editdlrm
nfsdclnts92330755editdlrm
nfsdcltrack509760755editdlrm
nfsidmap464480755editdlrm
nfsiostat239220755editdlrm
nfsref673760755editdlrm
nfsstat363680755editdlrm
nft249920755editdlrm
nologin121520755editdlrm
nscd1604480755editdlrm
nsec3hash125840755editdlrm
nstat1162960755editdlrm
ntsysv419520755editdlrm
oddjobd794960755editdlrm
packer133680755editdlrm
pam_console_apply462800755editdlrm
pam_timestamp_check121524755editdlrm
paperconfig41700755editdlrm
partx967680755editdlrm
pidof170960755editdlrm
ping677120755editdlrm
ping6677120755editdlrm
pivot_root126800755editdlrm
plipconfig130160755editdlrm
pluginviewer210640755editdlrm
poweroff2236960755editdlrm
pure-authd196960755editdlrm
pure-certd196000755editdlrm
pure-config.pl47550755editdlrm
pure-ftpd1864400755editdlrm
pure-ftpwho274720755editdlrm
pure-mrtginfo114320755editdlrm
pure-quotacheck192720755editdlrm
pure-uploadscript195360755editdlrm
pwck586400755editdlrm
pwconv543760755editdlrm
pwhistory_helper209200755editdlrm
pwunconv544000755editdlrm
quot805600755editdlrm
quotacheck1185280755editdlrm
quotaoff851520755editdlrm
quotaon851520755editdlrm
quotastats169360755editdlrm
rcmysql-0editdlrm
rdisc251360755editdlrm
rdma1918800755editdlrm
readprofile210400755editdlrm
reboot2236960755editdlrm
repquota852400755editdlrm
request-key249680755editdlrm
resize2fs664720755editdlrm
resizepart425680755editdlrm
resolvconf2004480755editdlrm
restorecon210240755editdlrm
restorecon_xattr168080755editdlrm
rfkill547440755editdlrm
rmmod1637840755editdlrm
rndc374080755editdlrm
rndc-confgen209360755editdlrm
rotatelogs312400755editdlrm
route692480755editdlrm
rpc.gssd1090960755editdlrm
rpc.idmapd632160755editdlrm
rpc.mountd1669520755editdlrm
rpc.nfsd511200755editdlrm
rpc.statd1057760755editdlrm
rpcbind630240755editdlrm
rpcctl96310755editdlrm
rpcdebug198400755editdlrm
rpcinfo334240755editdlrm
rsyslogd7421200755editdlrm
rtacct480640755editdlrm
rtcwake504880755editdlrm
rtmon1200800755editdlrm
rtstat259360755editdlrm
runlevel2236960755editdlrm
runq17050964755editdlrm
runuser501680755editdlrm
sa477360755editdlrm
safe_finger128800755editdlrm
saslauthd966880755editdlrm
sasldblistusers2212640755editdlrm
saslpasswd2168160755editdlrm
sefcontext_compile669200755editdlrm
selabel_digest125760755editdlrm
selabel_lookup125680755editdlrm
selabel_lookup_best_match121760755editdlrm
selabel_partial_match121680755editdlrm
selinuxconlist121600755editdlrm
selinuxdefcon121600755editdlrm
selinuxenabled80240755editdlrm
selinuxexeccon121440755editdlrm
selinux_check_access126560755editdlrm
semanage421710755editdlrm
semodule299760755editdlrm
sendmail173202755editdlrm
service37290755editdlrm
sestatus209040755editdlrm
setcap166640755editdlrm
setenforce125600755editdlrm
setfiles210240755editdlrm
setquota935680755editdlrm
setsebool167680755editdlrm
sfdisk1213520755editdlrm
showmount215680755editdlrm
shutdown2236960755editdlrm
sim_server121520755editdlrm
slattach448080755editdlrm
sm-notify800080755editdlrm
smartctl9241200755editdlrm
smartd7419840755editdlrm
snmpd332320755editdlrm
snmptrapd333840755editdlrm
ss1958880755editdlrm
sshd8905680755editdlrm
start-statd8380755editdlrm
start-stop-daemon470880755editdlrm
suexec259044755editdlrm
sulogin504240755editdlrm
suphp68817604750editdlrm
swaplabel168960755editdlrm
swapoff212480755editdlrm
swapon505920755editdlrm
switch_root168880755editdlrm
sysctl295680755editdlrm
t1libconfig39210755editdlrm
tcpd432560755editdlrm
tcpdmatch475760755editdlrm
tcpdump10570720755editdlrm
tcpslice334160755editdlrm
tcsd3171520755editdlrm
telinit2236960755editdlrm
testsaslauthd170560755editdlrm
tipc1669840755editdlrm
tmpwatch363200755editdlrm
tracepath209280755editdlrm
tracepath6209280755editdlrm
try-from256320755editdlrm
tsig-keygen209520755editdlrm
tune2fs1132800755editdlrm
udevadm4347520755editdlrm
umount.nfs2019764755editdlrm
umount.nfs42019764755editdlrm
unbound-anchor587120755editdlrm
unix_chkpwd377444755editdlrm
unix_update377440700editdlrm
update-alternatives375360755editdlrm
update-smart-drivedb147820755editdlrm
useradd1517200755editdlrm
userdel1098640755editdlrm
userhelper459364711editdlrm
usermod1475680755editdlrm
usernetctl127044755editdlrm
uuserver162560755editdlrm
vdpa1208720755editdlrm
vigr696880755editdlrm
vipw696880755editdlrm
visudo2450240755editdlrm
weak-modules344100755editdlrm
whmapi034969120755editdlrm
whmapi134969120755editdlrm
whmlogin23900755editdlrm
wipefs421040755editdlrm
xinetd1804000755editdlrm
xqmstats168480755editdlrm
xtables-legacy-multi943920755editdlrm
zdump210560755editdlrm
zic540960755editdlrm
zramctl1015040755editdlrm
Edit: /usr/sbin/nfsconvert (13347B)
#!/usr/libexec/platform-python """ Read in the deprecated /etc/sysconfig/nfs file and set the corresponding values in nfs.conf """ from __future__ import print_function import os import sys import getopt import subprocess import configparser CONF_NFS = '/etc/nfs.conf' CONF_IDMAP = '/etc/idmapd.conf' SYSCONF_NFS = '/etc/sysconfig/nfs' SYSCONF_BACKUP = ".rpmsave" CONF_TOOL = '/usr/sbin/nfsconf' # options for nfsd found in RPCNFSDARGS OPTS_NFSD = 'dH:p:rR:N:V:stTuUG:L:' LONG_NFSD = ['debug', 'host=', 'port=', 'rdma=', 'nfs-version=', 'no-nfs-version=', 'tcp', 'no-tcp', 'udp', 'no-udp', 'grace-time=', 'lease-time='] CONV_NFSD = {'-d': (CONF_NFS, 'nfsd', 'debug', 'all'), '-H': (CONF_NFS, 'nfsd', 'host', ','), '-p': (CONF_NFS, 'nfsd', 'port', '$1'), '-r': (CONF_NFS, 'nfsd', 'rdma', 'nfsrdma'), '-R': (CONF_NFS, 'nfsd', 'rdma', '$1'), '-N': (CONF_NFS, 'nfsd', 'vers$1', 'n'), '-V': (CONF_NFS, 'nfsd', 'vers$1', 'y'), '-t': (CONF_NFS, 'nfsd', 'tcp', '1'), '-T': (CONF_NFS, 'nfsd', 'tcp', '0'), '-u': (CONF_NFS, 'nfsd', 'udp', '1'), '-U': (CONF_NFS, 'nfsd', 'udp', '0'), '-G': (CONF_NFS, 'nfsd', 'grace-time', '$1'), '-L': (CONF_NFS, 'nfsd', 'lease-time', '$1'), '$1': (CONF_NFS, 'nfsd', 'threads', '$1'), '--debug': (CONF_NFS, 'nfsd', 'debug', 'all'), '--host': (CONF_NFS, 'nfsd', 'host', ','), '--port': (CONF_NFS, 'nfsd', 'port', '$1'), '--rdma': (CONF_NFS, 'nfsd', 'rdma', '$1'), '--no-nfs-version': (CONF_NFS, 'nfsd', 'vers$1', 'n'), '--nfs-version': (CONF_NFS, 'nfsd', 'vers$1', 'y'), '--tcp': (CONF_NFS, 'nfsd', 'tcp', '1'), '--no-tcp': (CONF_NFS, 'nfsd', 'tcp', '0'), '--udp': (CONF_NFS, 'nfsd', 'udp', '1'), '--no-udp': (CONF_NFS, 'nfsd', 'udp', '0'), '--grace-time': (CONF_NFS, 'nfsd', 'grace-time', '$1'), '--lease-time': (CONF_NFS, 'nfsd', 'lease-time', '$1'), } # options for mountd found in RPCMOUNTDOPTS OPTS_MOUNTD = 'go:d:H:p:N:nrs:t:V:' LONG_MOUNTD = ['descriptors=', 'debug=', 'nfs-version=', 'no-nfs-version=', 'port=', 'no-tcp', 'ha-callout=', 'state-directory-path=', 'num-threads=', 'reverse-lookup', 'manage-gids', 'no-udp'] CONV_MOUNTD = {'-g': (CONF_NFS, 'mountd', 'manage-gids', '1'), '-o': (CONF_NFS, 'mountd', 'descriptors', '$1'), '-d': (CONF_NFS, 'mountd', 'debug', '$1'), '-H': (CONF_NFS, 'mountd', 'ha-callout', '$1'), '-p': (CONF_NFS, 'mountd', 'port', '$1'), '-N': (CONF_NFS, 'nfsd', 'vers$1', 'n'), '-V': (CONF_NFS, 'nfsd', 'vers$1', 'y'), '-n': (CONF_NFS, 'nfsd', 'tcp', '0'), '-s': (CONF_NFS, 'mountd', 'stat-directory-path', '$1'), '-t': (CONF_NFS, 'mountd', 'threads', '$1'), '-r': (CONF_NFS, 'mountd', 'reverse-lookup', '1'), '-u': (CONF_NFS, 'nfsd', 'udp', '0'), '--manage-gids': (CONF_NFS, 'mountd', 'manage-gids', '1'), '--descriptors': (CONF_NFS, 'mountd', 'descriptors', '$1'), '--debug': (CONF_NFS, 'mountd', 'debug', '$1'), '--ha-callout': (CONF_NFS, 'mountd', 'ha-callout', '$1'), '--port': (CONF_NFS, 'mountd', 'port', '$1'), '--nfs-version': (CONF_NFS, 'nfsd', 'vers$1', 'y'), '--no-nfs-version': (CONF_NFS, 'nfsd', 'vers$1', 'n'), '--no-tcp': (CONF_NFS, 'nfsd', 'tcp', '0'), '--state-directory-path': (CONF_NFS, 'mountd', 'state-directory-path', '$1'), '--num-threads': (CONF_NFS, 'mountd', 'threads', '$1'), '--reverse-lookup': (CONF_NFS, 'mountd', 'reverse-lookup', '1'), '--no-udp': (CONF_NFS, 'nfsd', 'udp', '0'), } # options for statd found in STATDARG OPTS_STATD = 'o:p:T:U:n:P:H:L' LONG_STATD = ['outgoing-port=', 'port=', 'name=', 'state-directory-path=', 'ha-callout=', 'nlm-port=', 'nlm-udp-port=', 'no-notify'] CONV_STATD = {'-o': (CONF_NFS, 'statd', 'outgoing-port', '$1'), '-p': (CONF_NFS, 'statd', 'port', '$1'), '-T': (CONF_NFS, 'lockd', 'port', '$1'), '-U': (CONF_NFS, 'lockd', 'udp-port', '$1'), '-n': (CONF_NFS, 'statd', 'name', '$1'), '-P': (CONF_NFS, 'statd', 'state-directory-path', '$1'), '-H': (CONF_NFS, 'statd', 'ha-callout', '$1'), '-L': (CONF_NFS, 'statd', 'no-notify', '1'), '--outgoing-port': (CONF_NFS, 'statd', 'outgoing-port', '$1'), '--port': (CONF_NFS, 'statd', 'port', '$1'), '--name': (CONF_NFS, 'statd', 'name', '$1'), '--state-directory-path': (CONF_NFS, 'statd', 'state-directory-path', '$1'), '--ha-callout': (CONF_NFS, 'statd', 'ha-callout', '$1'), '--nlm-port': (CONF_NFS, 'lockd', 'port', '$1'), '--nlm-udp-port': (CONF_NFS, 'lockd', 'udp-port', '$1'), '--no-notify': (CONF_NFS, 'statd', 'no-notify', '1'), } # options for sm-notify found in SMNOTIFYARGS OPTS_SMNOTIFY = 'dm:np:v:P:f' CONV_SMNOTIFY = {'-d': (CONF_NFS, 'sm-notify', 'debug', 'all'), '-m': (CONF_NFS, 'sm-notify', 'retry-time', '$1'), '-n': (CONF_NFS, 'sm-notify', 'update-state', '1'), '-p': (CONF_NFS, 'sm-notify', 'outgoing-port', '$1'), '-v': (CONF_NFS, 'sm-notify', 'outgoing-addr', '$1'), '-f': (CONF_NFS, 'sm-notify', 'force', '1'), '-P': (CONF_NFS, 'statd', 'state-directory-path', '$1'), } # options for idmapd found in RPCIDMAPDARGS OPTS_IDMAPD = 'vp:CS' CONV_IDMAPD = {'-v': (CONF_IDMAP, 'general', 'verbosity', '+'), '-p': (CONF_NFS, 'general', 'pipefs-directory', '$1'), '-C': (CONF_IDMAP, 'general', 'client-only', '1'), '-S': (CONF_IDMAP, 'general', 'server-only', '1'), } # options for gssd found in RPCGSSDARGS OPTS_GSSD = 'Mnvrp:k:d:t:T:R:lD' CONV_GSSD = {'-M': (CONF_NFS, 'gssd', 'use-memcache', '1'), '-n': (CONF_NFS, 'gssd', 'root_uses_machine_creds', '0'), '-v': (CONF_NFS, 'gssd', 'verbosity', '+'), '-r': (CONF_NFS, 'gssd', 'rpc-verbosity', '+'), '-p': (CONF_NFS, 'general', 'pipefs-directory', '$1'), '-k': (CONF_NFS, 'gssd', 'keytab-file', '$1'), '-d': (CONF_NFS, 'gssd', 'cred-cache-directory', '$1'), '-t': (CONF_NFS, 'gssd', 'context-timeout', '$1'), '-T': (CONF_NFS, 'gssd', 'rpc-timeout', '$1'), '-R': (CONF_NFS, 'gssd', 'preferred-realm', '$1'), '-l': (CONF_NFS, 'gssd', 'limit-to-legacy-enctypes', '0'), '-D': (CONF_NFS, 'gssd', 'avoid-dns', '0'), } # options for blkmapd found in BLKMAPDARGS OPTS_BLKMAPD = '' CONV_BLKMAPD = {} # meta list of all the getopt lists GETOPT_MAPS = [('RPCNFSDARGS', OPTS_NFSD, LONG_NFSD, CONV_NFSD), ('RPCMOUNTDOPTS', OPTS_MOUNTD, LONG_MOUNTD, CONV_MOUNTD), ('STATDARG', OPTS_STATD, LONG_STATD, CONV_STATD), ('STATDARGS', OPTS_STATD, LONG_STATD, CONV_STATD), ('SMNOTIFYARGS', OPTS_SMNOTIFY, [], CONV_SMNOTIFY), ('RPCIDMAPDARGS', OPTS_IDMAPD, [], CONV_IDMAPD), ('RPCGSSDARGS', OPTS_GSSD, [], CONV_GSSD), ('BLKMAPDARGS', OPTS_BLKMAPD, [], CONV_BLKMAPD), ] # any fixups we need to apply first GETOPT_FIXUP = {'RPCNFSDARGS': ('--rdma', '--rdma=nfsrdma'), } # map for all of the single option values VALUE_MAPS = {'LOCKD_TCPPORT': (CONF_NFS, 'lockd', 'port', '$1'), 'LOCKD_UDPPORT': (CONF_NFS, 'lockd', 'udp-port', '$1'), 'RPCNFSDCOUNT': (CONF_NFS, 'nfsd', 'threads', '$1'), 'NFSD_V4_GRACE': (CONF_NFS, 'nfsd', 'grace-time', '$1'), 'NFSD_V4_LEASE': (CONF_NFS, 'nfsd', 'lease-time', '$1'), 'MOUNTD_PORT': (CONF_NFS, 'mountd', 'port', '$1'), 'STATD_PORT': (CONF_NFS, 'statd', 'port', '$1'), 'STATD_OUTGOING_PORT': (CONF_NFS, 'statd', 'outgoing-port', '$1'), 'STATD_HA_CALLOUT': (CONF_NFS, 'statd', 'ha-callout', '$1'), 'GSS_USE_PROXY': (CONF_NFS, 'gssd', 'use-gss-proxy', '$1') } def eprint(*args, **kwargs): """ Print error to stderr """ print(*args, file=sys.stderr, **kwargs) def makesub(param, value): """ Variable substitution """ return param.replace('$1', value) def set_value(value, entry): """ Set a configuration value by running nfsconf tool""" cfile, section, tag, param = entry tag = makesub(tag, value) param = makesub(param, value) if param == '+': param = value if param == ',': param = value args = [CONF_TOOL, "--file", cfile, "--set", section, tag, param] try: subprocess.check_output(args, stderr=subprocess.STDOUT) except subprocess.CalledProcessError as e: print("Error running nfs-conf tool:\n %s" % (e.output.decode())) print("Args: %s\n" % args) raise Exception def convert_getopt(optname, options, optstring, longopts, conversions): """ Parse option string into seperate config items Take a getopt string and a table of conversions parse it all and spit out the converted config Keyword arguments: options -- the argv string to convert optstring -- getopt format option list conversions -- table of translations """ optcount = 0 try: args = options.strip('\"').split() if optname in GETOPT_FIXUP: (k, v) = GETOPT_FIXUP[optname] for i, opt in enumerate(args): if opt == k: args[i] = v elif opt == '--': break optlist, optargs = getopt.gnu_getopt(args, optstring, longopts=longopts) except getopt.GetoptError as err: eprint(err) raise Exception setlist = {} for (k, v) in optlist: if k in conversions: # it's already been set once param = conversions[k][3] tag = k + makesub(conversions[k][2], v) if tag in setlist: value = setlist[tag][0] # is it a cummulative entry if param == '+': value = str(int(value) + 1) if param == ',': value += "," + v else: if param == '+': value = "1" elif param == ',': value = v else: value = v setlist[tag] = (value, conversions[k]) else: if v: eprint("Ignoring unrecognised option %s=%s in %s" % (k, v, optname)) else: eprint("Ignoring unrecognised option %s in %s" % (k, optname)) for v, c in setlist.values(): try: set_value(v, c) optcount += 1 except Exception: raise i = 1 for o in optargs: opname = '$' + str(i) if opname in conversions: try: set_value(o, conversions[opname]) optcount += 1 except Exception: raise else: eprint("Unrecognised trailing arguments") raise Exception i += 1 return optcount def map_values(): """ Main function """ mapcount = 0 # Lets load the old config with open(SYSCONF_NFS) as cfile: file_content = '[sysconf]\n' + cfile.read() sysconfig = configparser.RawConfigParser() sysconfig.read_string(file_content) # Map all the getopt option lists for (name, opts, lopts, conv) in GETOPT_MAPS: if name in sysconfig['sysconf']: try: mapcount += convert_getopt(name, sysconfig['sysconf'][name], opts, lopts, conv) except Exception: eprint("Error whilst converting %s to nfsconf options." % (name)) raise # Map the single value options for name, opts in VALUE_MAPS.items(): if name in sysconfig['sysconf']: try: value = sysconfig['sysconf'][name] set_value(value.strip('\"'), opts) mapcount += 1 except Exception: raise # All went well, move aside the old file # but dont bother if there were no changes and # an old config file already exists backupfile = SYSCONF_NFS + SYSCONF_BACKUP if mapcount > 0 or not os.path.exists(backupfile): try: os.replace(SYSCONF_NFS, backupfile) except OSError as err: eprint("Error moving old config %s: %s" % (SYSCONF_NFS, err)) raise # Main routine try: map_values() except Exception as e: eprint(e) eprint("Conversion failed. Please correct the error and try again.") exit(1)