Renamed utility softlayer_nas.py to softlayer_storage.py.
Extended the utility to support mounting of --type=nas|consistent The consistent performance file storage is the high available storage type on SoftLayer. One we supported multiple types the "nas" in the utility name no longer made sense.
This commit is contained in:
parent
d2e659ede3
commit
d324f22ed6
@ -1,92 +0,0 @@
|
||||
#!/usr/bin/python
|
||||
"""
|
||||
Usage:
|
||||
softlayer_nas.py [--verbose --hostname=<hostname> --username=<username> --password=<password> --mountpoint=<mountpoint> ] (mount | unmount)
|
||||
softlayer_nas.py [OPTIONS] (mount | unmount)
|
||||
|
||||
Options:
|
||||
-h --help Show help screen
|
||||
--version Show version
|
||||
--verbose Print verbose information
|
||||
--hostname=<hostname> SoftLayer Storage hostname
|
||||
--username=<username> SoftLayer Storage LUN username
|
||||
--password=<password> SoftLayer Storage LUN password
|
||||
--mountpoint=<mountpoint> The mountpoint to use [default: /mnt/nas]
|
||||
"""
|
||||
import os
|
||||
import sys
|
||||
import docopt
|
||||
|
||||
path = os.path.dirname(os.path.realpath(__file__))
|
||||
path = os.path.realpath(os.path.join(path, '..', 'lib', 'python'))
|
||||
if path.startswith('/opt'):
|
||||
# if installed into system path, do not muck with things
|
||||
sys.path.append(path)
|
||||
|
||||
from xcat import xcatutils
|
||||
|
||||
def mount_nas(hostname, user, passwd, mountPoint):
|
||||
print "Attempting to mount the NAS at %s" %(mountPoint)
|
||||
|
||||
if xcatutils.isMounted(mountPoint):
|
||||
raise xcatutils.xCatError("The mount point %s is already in use." %(mountPoint))
|
||||
|
||||
|
||||
cmd = "mount -t cifs //%s/%s -o username=%s,password=%s,rw,nounix,iocharset=utf8,file_mode=0644,dir_mode=0755 %s" %(hostname, user, user, passwd, mountPoint)
|
||||
out,err = xcatutils.run_command(cmd)
|
||||
|
||||
def unmount_nas(mountPoint):
|
||||
print "Attempting to unmount the NAS at %s..." %(mountPoint)
|
||||
|
||||
if not xcatutils.isMounted(mountPoint):
|
||||
raise xcatutils.xCatError("The mount point %s is NOT mounted." %(mountPoint))
|
||||
else:
|
||||
cmd = "umount %s" %(mountPoint)
|
||||
out,err = xcatutils.run_command(cmd)
|
||||
|
||||
if err:
|
||||
print "Encountered error while unmounting..."
|
||||
print err
|
||||
|
||||
|
||||
def configure_nas_automount(hostname, user, passwd, mountPoint):
|
||||
print "\nNote: To configure automount on reboot, add the following into /etc/fstab:"
|
||||
cmd = "//%s/%s %s cifs defaults,username=%s,password=%s 0 0" %(hostname,user,mountPoint,user,passwd)
|
||||
print "%s\n" %(cmd)
|
||||
|
||||
def setup_softlayer_nas():
|
||||
# verify information before starting
|
||||
if arguments['--hostname'] is None:
|
||||
arguments['--hostname'] = xcatutils.getUserInput("Enter the SoftLayer storage hostname")
|
||||
|
||||
if arguments['--username'] is None:
|
||||
arguments['--username'] = xcatutils.getUserInput("Enter the SoftLayer storage username")
|
||||
|
||||
if arguments['--password'] is None:
|
||||
arguments['--password'] = xcatutils.getUserInput("Enter the SoftLayer storage password")
|
||||
|
||||
# install prereqs
|
||||
preReqPackages = ['cifs-utils']
|
||||
if arguments['--verbose']:
|
||||
print "Checking for installed packages: %s" %(preReqPackages)
|
||||
xcatutils.installPackages(preReqPackages)
|
||||
|
||||
# mount the NAS
|
||||
mount_nas(arguments['--hostname'],arguments['--username'],arguments['--password'],arguments['--mountpoint'])
|
||||
|
||||
configure_nas_automount(arguments['--hostname'],arguments['--username'],arguments['--password'],arguments['--mountpoint'])
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
try:
|
||||
arguments = (docopt.docopt(__doc__, version="1.0"))
|
||||
|
||||
if arguments['unmount']:
|
||||
unmount_nas(arguments['--mountpoint'])
|
||||
else:
|
||||
setup_softlayer_nas()
|
||||
|
||||
except docopt.DocoptExit as e:
|
||||
print e
|
||||
except xcatutils.xCatError as e:
|
||||
print "xCatError: %s" %(e)
|
134
xCAT-SoftLayer/bin/softlayer_storage.py
Executable file
134
xCAT-SoftLayer/bin/softlayer_storage.py
Executable file
@ -0,0 +1,134 @@
|
||||
#!/usr/bin/python
|
||||
"""
|
||||
Usage:
|
||||
softlayer_storage.py --type=<type> [--hostname=<hostname> --username=<username> --password=<password> --mountpoint=<mountpoint> ] (mount | unmount)
|
||||
softlayer_storage.py --type=<type> [options] (mount | unmount)
|
||||
|
||||
Options:
|
||||
-h --help Show help screen
|
||||
--version Show version
|
||||
--type=<type> Type of File Storage to mount ( consistent | nas )
|
||||
--hostname=<hostname> SoftLayer Storage hostname
|
||||
--username=<username> SoftLayer Storage LUN username
|
||||
--password=<password> SoftLayer Storage LUN password
|
||||
--mountpoint=<mountpoint> The mountpoint to use [default: /mnt/nas]
|
||||
|
||||
Description:
|
||||
For consistent performance file storate, make sure the host accessing the
|
||||
file storage has been authorized through the SoftLayer portal.
|
||||
"""
|
||||
import os
|
||||
import sys
|
||||
import docopt
|
||||
|
||||
path = os.path.dirname(os.path.realpath(__file__))
|
||||
path = os.path.realpath(os.path.join(path, '..', 'lib', 'python'))
|
||||
if path.startswith('/opt'):
|
||||
# if installed into system path, do not muck with things
|
||||
sys.path.append(path)
|
||||
|
||||
from xcat import xcatutils
|
||||
|
||||
def mount_nas_storage(hostname, user, passwd, mountPoint):
|
||||
print "Attempting to mount the NAS File Storage at %s" %(mountPoint)
|
||||
|
||||
if xcatutils.isMounted(mountPoint):
|
||||
raise xcatutils.xCatError("The mount point %s is already in use." %(mountPoint))
|
||||
|
||||
cmd = "mount -t cifs //%s/%s -o username=%s,password=%s,rw,nounix,iocharset=utf8,file_mode=0644,dir_mode=0755 %s" %(hostname, user, user, passwd, mountPoint)
|
||||
out,err = xcatutils.run_command(cmd)
|
||||
if err:
|
||||
raise xcatutils.xCatError("Error when mounting. (%s)" %(err))
|
||||
else:
|
||||
print "Success\n"
|
||||
|
||||
# To help out with automount, print this msg
|
||||
print "\nNote: To configure automount on reboot, add the following into /etc/fstab:"
|
||||
cmd = "//%s/%s %s cifs defaults,username=%s,password=%s 0 0" %(hostname,user,mountPoint,user,passwd)
|
||||
print "%s\n" %(cmd)
|
||||
|
||||
def mount_consistent_storage(hostname, user, mountPoint):
|
||||
print "Attempting to mount the Consistent Performance File Storage at %s" %(mountPoint)
|
||||
|
||||
if xcatutils.isMounted(mountPoint):
|
||||
raise xcatutils.xCatError("The mount point %s is already in use." %(mountPoint))
|
||||
|
||||
cmd = "mount -t nfs4 %s:/%s %s" %(hostname, user, mountPoint)
|
||||
out,err = xcatutils.run_command(cmd)
|
||||
if err:
|
||||
raise xcatutils.xCatError("Error when mounting. (%s)" %(err))
|
||||
else:
|
||||
print "Success\n"
|
||||
|
||||
def unmount_storage(mountPoint):
|
||||
print "Attempting to unmount the NAS at %s..." %(mountPoint)
|
||||
|
||||
if not xcatutils.isMounted(mountPoint):
|
||||
raise xcatutils.xCatError("The mount point %s is NOT mounted." %(mountPoint))
|
||||
else:
|
||||
cmd = "umount %s" %(mountPoint)
|
||||
out,err = xcatutils.run_command(cmd)
|
||||
|
||||
if err:
|
||||
print "Encountered error while unmounting..."
|
||||
print err
|
||||
|
||||
|
||||
def setup_softlayer_storage():
|
||||
#
|
||||
# set code defaults to consistent file storage options
|
||||
#
|
||||
requirePassword=False
|
||||
preReqPackages = ['nfs-utils','nfs-utils-lib']
|
||||
|
||||
#
|
||||
# if NAS is selected as the type, override the code defaults
|
||||
#
|
||||
if 'nas' in arguments['--type']:
|
||||
requirePassword=True
|
||||
preReqPackages = ['cifs-utils']
|
||||
|
||||
#
|
||||
# verify information before starting
|
||||
#
|
||||
if arguments['--hostname'] is None:
|
||||
arguments['--hostname'] = xcatutils.getUserInput("Enter the SoftLayer storage hostname")
|
||||
|
||||
if arguments['--username'] is None:
|
||||
arguments['--username'] = xcatutils.getUserInput("Enter the SoftLayer storage username")
|
||||
|
||||
if arguments['--password'] is None and requirePassword:
|
||||
arguments['--password'] = xcatutils.getUserInput("Enter the SoftLayer storage password")
|
||||
|
||||
#
|
||||
# install prereqs
|
||||
#
|
||||
print "Checking for installed packages: %s" %(preReqPackages)
|
||||
xcatutils.installPackages(preReqPackages)
|
||||
|
||||
#
|
||||
# mount the file storage
|
||||
#
|
||||
if 'nas' in arguments['--type']:
|
||||
mount_nas_storage(arguments['--hostname'],arguments['--username'],arguments['--password'],arguments['--mountpoint'])
|
||||
elif 'consistent' in arguments['--type']:
|
||||
mount_consistent_storage(arguments['--hostname'],arguments['--username'],arguments['--mountpoint'])
|
||||
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
try:
|
||||
arguments = (docopt.docopt(__doc__, version="1.0"))
|
||||
|
||||
if not arguments['--type'] in ('nas', 'consistent'):
|
||||
raise xcatutils.xCatError("The type=%s is not a supported file system type." %(arguments['--type']))
|
||||
|
||||
if arguments['unmount']:
|
||||
unmount_storage(arguments['--mountpoint'])
|
||||
else:
|
||||
setup_softlayer_storage()
|
||||
|
||||
except docopt.DocoptExit as e:
|
||||
print e
|
||||
except xcatutils.xCatError as e:
|
||||
print "xCatError: %s" %(e)
|
Loading…
Reference in New Issue
Block a user