qemu-iotests: add qcow2.py set-feature-bit command
This new command sets feature bits in the image file header: qcow2.py set-feature-bit incompatible|compatible|autoclear <bit> The bit number must be in the range [0, 64). Signed-off-by: Stefan Hajnoczi <stefanha@linux.vnet.ibm.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
This commit is contained in:
		
							parent
							
								
									8b9ef60de0
								
							
						
					
					
						commit
						1b2eff62fc
					
				| @ -181,10 +181,33 @@ def cmd_del_header_ext(fd, magic): | ||||
| 
 | ||||
|     h.update(fd) | ||||
| 
 | ||||
| def cmd_set_feature_bit(fd, group, bit): | ||||
|     try: | ||||
|         bit = int(bit, 0) | ||||
|         if bit < 0 or bit >= 64: | ||||
|             raise ValueError | ||||
|     except: | ||||
|         print "'%s' is not a valid bit number in range [0, 64)" % bit | ||||
|         sys.exit(1) | ||||
| 
 | ||||
|     h = QcowHeader(fd) | ||||
|     if group == 'incompatible': | ||||
|         h.incompatible_features |= 1 << bit | ||||
|     elif group == 'compatible': | ||||
|         h.compatible_features |= 1 << bit | ||||
|     elif group == 'autoclear': | ||||
|         h.autoclear_features |= 1 << bit | ||||
|     else: | ||||
|         print "'%s' is not a valid group, try 'incompatible', 'compatible', or 'autoclear'" % group | ||||
|         sys.exit(1) | ||||
| 
 | ||||
|     h.update(fd) | ||||
| 
 | ||||
| cmds = [ | ||||
|     [ 'dump-header',    cmd_dump_header,    0, 'Dump image header and header extensions' ], | ||||
|     [ 'add-header-ext', cmd_add_header_ext, 2, 'Add a header extension' ], | ||||
|     [ 'del-header-ext', cmd_del_header_ext, 1, 'Delete a header extension' ], | ||||
|     [ 'set-feature-bit', cmd_set_feature_bit, 2, 'Set a feature bit'], | ||||
| ] | ||||
| 
 | ||||
| def main(filename, cmd, args): | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user
	 Stefan Hajnoczi
						Stefan Hajnoczi