From 11f9af48eacb4a109936361cbf963bd834d7e3c8 Mon Sep 17 00:00:00 2001 From: James Meyer Date: Tue, 11 Dec 2012 12:44:12 -0600 Subject: LinHES-system: add_storage added --add_be_sg and --add_fe_sg to the cmd line. These flags control which storage groups are added. Additionaly when running add_storage from the command line it will prompt the user which Storage group class to use. refs #880 --- abs/core/LinHES-system/PKGBUILD | 4 +- abs/core/LinHES-system/add_storage.py | 111 +++++++++++++++++++++++++++------- 2 files changed, 90 insertions(+), 25 deletions(-) diff --git a/abs/core/LinHES-system/PKGBUILD b/abs/core/LinHES-system/PKGBUILD index 524b090..7497028 100755 --- a/abs/core/LinHES-system/PKGBUILD +++ b/abs/core/LinHES-system/PKGBUILD @@ -1,6 +1,6 @@ pkgname=LinHES-system pkgver=2 -pkgrel=126 +pkgrel=127 arch=('i686' 'x86_64') MVDIR=$startdir/pkg/usr/LH BINDIR=$startdir/pkg/usr/bin @@ -98,7 +98,7 @@ md5sums=('06bc649bce56c22b9a1f56890e0765b6' 'ceec78815ed01af733cdbca14cb0942b' '1be1d3dfc83f828eede93055713882ae' '47e093e8cfe4b5b96602358e1f540832' - '72313342e619acdb520d9d14bc05d5a2' + 'fd7dbbf960080619ef18d6843f6374d8' 'b9b0a8370f46f0b5e144a66897e8eefb' '6519d209e151cdc39ae7e1091d189c3e' '8f474e019d5fcb775497aca355d61b0b' diff --git a/abs/core/LinHES-system/add_storage.py b/abs/core/LinHES-system/add_storage.py index d03da59..5e85260 100644 --- a/abs/core/LinHES-system/add_storage.py +++ b/abs/core/LinHES-system/add_storage.py @@ -302,7 +302,7 @@ class disk_device: runcmd(cmd) def add_sg(self,DB,host,SG_MAP,weight='0',install_call=False): - print " Adding to storage groups" + print " Adding storage groups" sgweight=int(weight) for key in SG_MAP.iterkeys(): #print key," : ", SG_MAP[key] @@ -455,7 +455,8 @@ def prompt_to_add(current_drive): def prompt_to_continue(): loop = True #while loop: - str1 = raw_input("\n Ready to start, press Y to continue, anything else to abort:") + print "\n\n\n\n" + str1 = raw_input("\n Ready to add additional storage!\n Press Y to continue, anything else to abort:") #if str1 in ['Y','N','y','n']: # loop = False @@ -465,9 +466,62 @@ def prompt_to_continue(): rc = True else: rc = False + print "-----" return rc +def prompt_sg(dir_be_sg,dir_fe_sg): + #check for backend storage groups + if dir_be_sg != True: + loop = True + print "@@@@@@@@@@@@@@@@@@@@@@" + prompt_string=''' + Backend Storage Groups are used for things like + TV Recordings and database backups. + The content on these storage groups will + only be available while the system is online. + + Do you wish enable this system for Backend Storage Groups(Y/N)?:''' + + while loop: + str1 = raw_input(prompt_string) + if str1 in ['Y','N','y','n']: + loop = False + break + print "\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 "++++++++++++++++++++++++" + prompt_string=''' + Frontend Storage Groups are used for videos. + The content on these storage groups will + only be available while the system is online. + + Do you wish enable this system for Frontend Storage Groups(Y/N)?:''' + while loop: + str1 = raw_input(prompt_string) + if str1 in ['Y','N','y','n']: + loop = False + break + print "\n" + + if str1 == 'Y' or str1 == 'y': + dir_fe_sg = True + print " ** Will add Frontend Storage Groups!" + else: + dir_fe_sg = False + print " ** Will NOT add Frontend Storage Groups!" + + return dir_be_sg,dir_fe_sg def remove_pickle(): try: @@ -487,7 +541,7 @@ def last_disk_num(): return num_list[-1] #-------------------------------------------- -def main(scan_only, destruction, no_mount, install_call , dir_fe_only): +def main(scan_only, destruction, no_mount, install_call , dir_fe_sg, dir_be_sg): global bus bus = dbus.SystemBus() @@ -530,6 +584,7 @@ def main(scan_only, destruction, no_mount, install_call , dir_fe_only): process_list.append(i) print " End of scan" print "---------------------------------------" + if scan_only: if len(process_list) > 0: f = open('/tmp/scan_report', 'w') @@ -537,8 +592,8 @@ def main(scan_only, destruction, no_mount, install_call , dir_fe_only): f.write("drive: %s , location: %s ,size: %s \n" %(i.model,i.block_path,i.device_size)) print "drive: %s , location: %s ,size: %s \n" %(i.model,i.block_path,i.device_size) f.close() - sys.exit(0) + for i in no_process_list: system_drive_list.append(i) @@ -561,7 +616,9 @@ def main(scan_only, destruction, no_mount, install_call , dir_fe_only): if len(process_list) > 0: - print "\n Adding storage: \n" + print " Will add %s disks to systems" %len(process_list) + + dir_be_sg , dir_fe_sg = prompt_sg(dir_be_sg,dir_fe_sg) if prompt_to_continue() == True: write_known_drive_list(system_drive_list) disk_num = last_disk_num() @@ -574,27 +631,29 @@ def main(scan_only, destruction, no_mount, install_call , dir_fe_only): i.add_fstab() i.mount_disk(no_mount) if destruction == True: - if dir_fe_only != True: + if dir_fe_sg == True: + i.mkdirs(FS_LIST_FE) + if dir_be_sg == True: i.mkdirs(FS_LIST_BE) - i.mkdirs(FS_LIST_FE) + i.set_disk_num(disk_num) i.write_config() system_drive_list.append(i) write_known_drive_list(system_drive_list) i.symlink_disk() - #always create the FE groups(video)..do not need to create Be - if dir_fe_only != True: - i.add_sg(DB,host,SG_MAP_BE) - i.add_sg(DB,host,SG_MAP_FE) + 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) print "-----" cmd = "systemconfig.py -m fileshare" runcmd(cmd) #i.add_sg(DB,host,SG_MAP) -def myth_main(no_mount,install_call,dir_fe_only): +def myth_main(no_mount,install_call,dir_fe_sg): global bus bus = dbus.SystemBus() #search for root @@ -629,7 +688,7 @@ def myth_main(no_mount,install_call,dir_fe_only): if i.block_path == device: break else: - print "Could'nt find root device in block list" + print "Couldn't find root device in block list" sys.exit(1) if not install_call == True: DB = MythDB() @@ -647,12 +706,12 @@ def myth_main(no_mount,install_call,dir_fe_only): #if not install_call: i.mount_disk(no_mount) i.write_config() - #always create the FE groups(video)..do not need to create Be - if dir_fe_only != True: + #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) - i.add_sg(DB,host,SG_MAP_FE,'99',install_call) - i.symlink() cmd = "systemconfig.py -m fileshare" runcmd(cmd) @@ -826,7 +885,8 @@ def usage(): --no_destruction: Will not partition or format the disk --new_init : Erase the list of new disks and rescan. --report : will scan the disks and print out if it found new storage. - --fe_only : Will only create the storage group dir for videos..excludes tv + --add_fe_sg : Will only create the storage group dir for videos..excludes tv + --add_be_sg : Will only create the storage group dir for TV, backups, streaming ''' print help sys.exit(0) @@ -840,7 +900,8 @@ if __name__ == "__main__": no_mount = False destruction = True install_call = False - dir_fe_only = False + dir_fe_sg = False + dir_be_sg = False reconstruct = False try: os.remove("/tmp/scan_report") @@ -868,18 +929,22 @@ if __name__ == "__main__": if "--report" in sys.argv : scan_only = True - if "--fe_only" in sys.argv: - dir_fe_only = True + if "--add_fe_sg" in sys.argv: + dir_fe_sg = True + + if "--add_be_sg" in sys.argv: + dir_be_sg = True + if "--reconstruct" in sys.argv: reconstruct = True if "--double_myth" in sys.argv: - myth_main(no_mount,install_call,dir_fe_only) + myth_main(no_mount,install_call,dir_fe_sg) elif reconstruct == True: reconstruct_mounts(no_mount) else: - main(scan_only,destruction,no_mount, install_call, dir_fe_only) + main(scan_only,destruction,no_mount, install_call, dir_fe_sg, dir_be_sg) -- cgit v0.12