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…
	
		Reference in New Issue