parser=argparse.ArgumentParser(description='OpenNebula Restore from backup Tool')
subparsers=parser.add_subparsers(title='List of available tasks',description='You can view help for each task by passing task name and -h option',dest='task')
commonParser.add_argument('-i','--image',help='Image id to restore',type=int,required=True)
commonParser.add_argument('-d','--dryRun',help='Not implemented yet! Dry run - not execute any commands, all cmds will be just printed',action='store_true')
listBackupsParser=subparsers.add_parser('list',parents=[commonParser],help='List available backup for given image')
listBackupsParser.add_argument('-e','--extended',help='Show extended info for each backup',action='store_true')
# Info backup task parser
infoBackupParser=subparsers.add_parser('info',parents=[commonParser],help='Get info about specific backup for given image')
infoBackupParser.add_argument('-dt','--datetime',help='Define specific backup by its datetime. Use list task to get available backups',required=True)
# Restore specific backup task parser
restoreBackupParser=subparsers.add_parser('restore',parents=[commonParser],help='Restore specific backup for given image')
restoreBackupParser.add_argument('-dt','--datetime',help='Define specific backup by its datetime. Use list task to get available backups',required=True)
restoreBackupParser.add_argument('-ti','--targetImage',help='Target image ID in OpenNebula datastore',type=int)
restoreBackupParser.add_argument('-tds','--targetDatastore',help='Target OpenNebula datastore where new image to be create',type=int)
restoreBackupParser.add_argument('-bs','--bs',help='Define Block Size for DD command. Default 10M',default='10M')