From 3283ac2bffa18293aa8d0e69ea29d654dec010c2 Mon Sep 17 00:00:00 2001 From: Britney Fransen Date: Wed, 20 Nov 2013 15:56:38 -0600 Subject: LinHES-system: add_storage.py: add music storage group. refs #941. Combine frontend SG and backend SG to all SGs or none. --add_sg option is new and is recognized in normal operation. --- abs/core/LinHES-system/PKGBUILD | 4 +- abs/core/LinHES-system/add_storage.py | 157 ++++++++++++++-------------------- 2 files changed, 66 insertions(+), 95 deletions(-) mode change 100644 => 100755 abs/core/LinHES-system/add_storage.py diff --git a/abs/core/LinHES-system/PKGBUILD b/abs/core/LinHES-system/PKGBUILD index 03b1c96..c55ce7e 100755 --- a/abs/core/LinHES-system/PKGBUILD +++ b/abs/core/LinHES-system/PKGBUILD @@ -1,6 +1,6 @@ pkgname=LinHES-system pkgver=8.1 -pkgrel=1 +pkgrel=2 arch=('i686' 'x86_64') install=system.install pkgdesc="Everything that makes LinHES an automated system" @@ -93,7 +93,7 @@ md5sums=('95720bd676d0b05e89e1f6ae6e0b4e2d' 'bc69a520add58ede9b060c73e67ace13' '26fdd26e945f0c187f9fdcf98a7a5bef' '47e093e8cfe4b5b96602358e1f540832' - '2f0c92539ae35314ac97710dbb7e9f3a' + '4d6a6e88b519caf917ebe6c85c32c45b' '2c005d95312018bef80092136f80f254' '6519d209e151cdc39ae7e1091d189c3e' 'ca63946920ba33de1f15abda83e74e40' diff --git a/abs/core/LinHES-system/add_storage.py b/abs/core/LinHES-system/add_storage.py old mode 100644 new mode 100755 index 073bc96..61ce0ea --- a/abs/core/LinHES-system/add_storage.py +++ b/abs/core/LinHES-system/add_storage.py @@ -24,29 +24,23 @@ storage_dir = "/etc/storage.d" pickle_file = "%s/storage.pkl" %storage_dir -SG_MAP_BE={ 'Default' :'media/tv', -'LiveTV' :'media/tv/live', -'DB Backups' :'backup/mythtv_backups/', -'Streaming' :'media/streaming'} - - -SG_MAP_FE={ - 'Videos' :'media/video', - 'Trailers' :'media/artwork/trailers', - 'Coverart' :'media/artwork/coverart', - 'Fanart' :'media/artwork/fanart', - 'Banners' :'media/artwork/banners', - 'Screenshots':'media/artwork/screenshots', - } - -FS_LIST_BE=[] -for key in SG_MAP_BE.keys(): - FS_LIST_BE.append(SG_MAP_BE[key]) - -FS_LIST_FE=[] -for key in SG_MAP_FE.keys(): - FS_LIST_FE.append(SG_MAP_FE[key]) - +SG_MAP={ + 'Default' :'media/tv', + 'LiveTV' :'media/tv/live', + 'DB Backups' :'backup/mythtv_backups/', + 'Music' :'media/music', + 'Streaming' :'media/streaming', + 'Videos' :'media/video', + 'Banners' :'media/artwork/banners', + 'Coverart' :'media/artwork/coverart', + 'Fanart' :'media/artwork/fanart', + 'Screenshots':'media/artwork/screenshots', + 'Trailers' :'media/artwork/trailers', + } + +FS_LIST=[] +for key in SG_MAP.keys(): + FS_LIST.append(SG_MAP[key]) class disk_device: def __init__(self,device,storage_dir): @@ -458,13 +452,13 @@ def prompt_to_add(current_drive,destruction = True): ** Adding this disk will remove all contents on the disk. ** This disk will be partitioned and formatted. - Enable this disk for MythTV storage (Y/N)?:''' + Enable this disk for storage (Y/N)?:''' else: prompt = ''' ** Preserving existing contents on the disk. ** This disk will NOT be partitioned or formatted. - Enable this disk for MythTV storage (Y/N)?:''' + Enable this disk for storage (Y/N)?:''' while loop: str1 = raw_input(prompt) @@ -502,46 +496,23 @@ def prompt_to_continue(process_list): print "-----" return rc -def prompt_sg(dir_be_sg,dir_fe_sg): - #check for backend storage groups - if dir_be_sg != True: +def prompt_sg(dir_sg): + #check for storage groups + print "*" * 60 + if dir_sg != True: loop = True - print "*" * 60 prompt_string=''' - Backend Storage Groups are used for - database backups, TV recordings and streaming. + MythTV Storage Groups are used for artwork, database backups, + music, streaming, TV recordings, and videos. The content on these storage groups will only be available while the system is online. - Enable Backend Storage Groups (Y/N)?:''' + Enabling MythTV Storage Groups will create the directories + on the disk(s) and add the paths to the MythTV database. - while loop: - str1 = raw_input(prompt_string) - if str1 in ['Y','N','y','n']: - loop = False - break - print "\n" + Enable MythTV Storage Groups (Y/N)?:''' - if str1 == 'Y' or str1 == 'y': - dir_be_sg = True - print " ** Will add Backend Storage Groups!" - else: - print " ** Will NOT add Backend Storage Groups!" - dir_be_sg = False - - #now for frontend storage groups - if dir_fe_sg != True: - loop = True - print "" - print " ++++++++++++++++++++" - prompt_string=''' - Frontend Storage Groups are used for artwork and videos. - - The content on these storage groups will - only be available while the system is online. - - Enable Frontend Storage Groups (Y/N)?:''' while loop: str1 = raw_input(prompt_string) if str1 in ['Y','N','y','n']: @@ -550,16 +521,17 @@ def prompt_sg(dir_be_sg,dir_fe_sg): print "\n" if str1 == 'Y' or str1 == 'y': - dir_fe_sg = True - print " ** Will add Frontend Storage Groups!" + dir_sg = True + print " ** Will add MythTV Storage Groups!" else: - dir_fe_sg = False - print " ** Will NOT add Frontend Storage Groups!" - - print "" - print "*" * 60 + print " ** Will NOT add MythTV Storage Groups!" + dir_sg = False + else: + dir_sg = True + print "\n --add_sg option used" + print " ** Will add MythTV Storage Groups!" - return dir_be_sg,dir_fe_sg + return dir_sg def remove_pickle(): try: @@ -579,7 +551,7 @@ def last_disk_num(): return num_list[-1] #-------------------------------------------- -def main(scan_only, destruction, no_mount, install_call , dir_fe_sg, dir_be_sg): +def main(scan_only, destruction, no_mount, install_call , dir_sg): global bus bus = dbus.SystemBus() @@ -675,7 +647,7 @@ def main(scan_only, destruction, no_mount, install_call , dir_fe_sg, dir_be_sg): if len(process_list) > 0: print "\n Will add %s disk(s) to your system." %len(process_list) - dir_be_sg , dir_fe_sg = prompt_sg(dir_be_sg,dir_fe_sg) + dir_sg = prompt_sg(dir_sg) if prompt_to_continue(process_list) == True: write_known_drive_list(system_drive_list) disk_num = last_disk_num() @@ -690,10 +662,8 @@ def main(scan_only, destruction, no_mount, install_call , dir_fe_sg, dir_be_sg): i.mount_disk(no_mount) #if destruction == True: - if dir_fe_sg == True: - i.mkdirs(FS_LIST_FE) - if dir_be_sg == True: - i.mkdirs(FS_LIST_BE) + if dir_sg == True: + i.mkdirs(FS_LIST) i.set_disk_num(disk_num) i.write_config() @@ -702,17 +672,15 @@ def main(scan_only, destruction, no_mount, install_call , dir_fe_sg, dir_be_sg): i.symlink_disk() - if dir_fe_sg == True: - i.add_sg(DB,host,SG_MAP_FE) - if dir_be_sg == True: - i.add_sg(DB,host,SG_MAP_BE) + if dir_sg == True: + i.add_sg(DB,host,SG_MAP) print "-----" cmd = "systemconfig.py -m fileshare" runcmd(cmd) #i.add_sg(DB,host,SG_MAP) -def myth_main(no_mount,install_call,dir_fe_sg): +def myth_main(no_mount,install_call,dir_sg): global bus bus = dbus.SystemBus() #search for root @@ -767,10 +735,8 @@ def myth_main(no_mount,install_call,dir_fe_sg): i.mount_disk(no_mount) i.write_config() #no need to make the sub directories because the install process has taken care of it. - if dir_fe_sg == True: - i.add_sg(DB,host,SG_MAP_FE,'99',install_call) - if dir_be_sg == True: - i.add_sg(DB,host,SG_MAP_BE,'99',install_call) + if dir_sg == True: + i.add_sg(DB,host,SG_MAP,'99',install_call) i.symlink() cmd = "systemconfig.py -m fileshare" @@ -979,16 +945,17 @@ def usage(): Add disk to /etc/fstab Mount the disk Create the directories + (if user enables MythTV Storage Groups) Write out the disk config file to /etc/storage.d/ Create disk# symlink at /data/storage/ Create /myth symlink (if applicable) - Add new locations to MythTV storage groups + Create MythTV Storage Group paths in MythTV database + (if user enables MythTV Storage Groups) Options: - --add_be_sg: Create the storage group directories for backup, - tv and streaming. Excludes artwork and video. - --add_fe_sg: Create the storage group directories for artwork - and video. Excludes backup, tv and streaming. + --add_sg: Create the MythTV Storage Group directories and + database entries for database backups, TV + recordings, music, streaming, videos and artwork. -h, --help: Show this help message. --new_init: Erase the list of known disks and rescan. --no_destruction: Will not partition or format the disk. @@ -998,8 +965,8 @@ def usage(): All other normal operations will be performed. --reconstruct: Recreate mount point, /myth symlink, fstab entry, /data/storage/disk# symlink, and mount the disk. - no_mount is the only option that works with - reconstruct. + --no_mount is the only option that works with + --reconstruct. --report: Scan disks and print new found disks. ''' print help @@ -1014,8 +981,7 @@ if __name__ == "__main__": no_mount = False destruction = True install_call = False - dir_fe_sg = False - dir_be_sg = False + dir_sg = False reconstruct = False try: os.remove("/tmp/scan_report") @@ -1043,18 +1009,23 @@ if __name__ == "__main__": if "--report" in sys.argv : scan_only = True + if "--add_sg" in sys.argv: + dir_sg = True + + #there is no distinction between FE and BE sg anymore + #but leaving these for backwards compatibility if "--add_fe_sg" in sys.argv: - dir_fe_sg = True + dir_sg = True if "--add_be_sg" in sys.argv: - dir_be_sg = True + dir_sg = True if "--reconstruct" in sys.argv: reconstruct = True if "--double_myth" in sys.argv: - myth_main(no_mount,install_call,dir_fe_sg) + myth_main(no_mount, install_call, dir_sg) elif reconstruct == True: reconstruct_mounts(no_mount) else: - main(scan_only,destruction,no_mount, install_call, dir_fe_sg, dir_be_sg) + main(scan_only,destruction,no_mount, install_call, dir_sg) -- cgit v0.12