def __vol_cmd(self, argv): """Implements the vol command """ cmd_detach = False cmd_attach = False cmd_create = False cmd_delete = False cmd_move = False disp = DisplayOptions() selector = ResourceSelector() region = None instance_id = None # Volume type, when creating a new volume vol_type = None opt_list, args = getopt.getopt(argv, "aCc:Df:i:klMnO:o:q:r:SstXxz:") if opt_list: for opt in opt_list: if opt[0] == '-a': selector.select_all = True elif opt[0] == '-C': cmd_create = True elif opt[0] == '-c': vol_type = opt[1] elif opt[0] == '-D': cmd_delete = True elif opt[0] == '-f': selector.add_filter_spec(opt[1]) elif opt[0] == '-l': disp.display = DisplayOptions.LONG elif opt[0] == '-i': instance_id = opt[1] selector.add_filter('attachment.instance-id', instance_id) elif opt[0] == '-k': disp.display_count = True elif opt[0] == '-M': cmd_move = True elif opt[0] == '-n': disp.display_name = True elif opt[0] == '-O': disp.set_output_file(opt[1]) elif opt[0] == '-o': self.__add_display_order(disp, opt[1]) elif opt[0] == '-q': selector.add_tag_filter_spec(opt[1]) elif opt[0] == '-r': region = opt[1] elif opt[0] == '-S': cmd_attach = True elif opt[0] == '-s': disp.display_size = True elif opt[0] == '-t': disp.display_tags = True elif opt[0] == '-X': cmd_detach = True elif opt[0] == '-x': disp.display = DisplayOptions.EXTENDED elif opt[0] == '-z': selector.add_filter('status', opt[1]) if cmd_detach: selector.resource_id_list = args self.__vol_detach_cmd(region, instance_id, selector) elif cmd_attach: self.__vol_attach_cmd(region, args) elif cmd_create: self.__vol_create_cmd(region, vol_type, args) elif cmd_delete: selector.resource_id_list = args self.__vol_delete_cmd(region, selector) elif cmd_move: self.__vol_move_cmd(region, args) else: selector.resource_id_list = args self.__vol_list_cmd(region, selector, disp)
def __snap_cmd(self, argv): """Implements the snap command """ cmd_create_snapshot = False cmd_delete_snapshot = False cmd_share_snapshot = False cmd_unshare_snapshot = False description = None disp = DisplayOptions() selector = ResourceSelector() region = None opt_list, args = getopt.getopt(argv, "aCDd:f:klm:nO:o:q:r:SsxtUz:") if opt_list: for opt in opt_list: if opt[0] == '-a': selector.select_all = True elif opt[0] == '-C': cmd_create_snapshot = True elif opt[0] == '-D': cmd_delete_snapshot = True elif opt[0] == '-d': description = opt[1] elif opt[0] == '-f': selector.add_filter_spec(opt[1]) elif opt[0] == '-k': disp.display_count = True elif opt[0] == '-l': disp.display = DisplayOptions.LONG elif opt[0] == '-m': selector.match_pattern = opt[1] elif opt[0] == '-n': disp.display_name = True elif opt[0] == '-O': disp.set_output_file(opt[1]) elif opt[0] == '-o': self.__add_display_order(disp, opt[1]) elif opt[0] == '-q': selector.add_tag_filter_spec(opt[1]) elif opt[0] == '-r': region = opt[1] elif opt[0] == '-S': cmd_share_snapshot = True elif opt[0] == '-s': disp.display_size = True elif opt[0] == '-t': disp.display_tags = True elif opt[0] == '-x': disp.display = DisplayOptions.EXTENDED elif opt[0] == '-U': cmd_unshare_snapshot = True elif opt[0] == '-z': selector.add_filter('status', opt[1]) if cmd_create_snapshot: self.__snap_create(region, description, args) elif cmd_delete_snapshot: selector.resource_id_list = args self.__snap_delete(region, selector) elif cmd_share_snapshot: self.__snap_share(region, True, args) elif cmd_unshare_snapshot: self.__snap_share(region, False, args) else: selector.resource_id_list = args self.__snap_list_cmd(region, selector, disp)