qcow2.py: Subcommand for changing header fields
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
This commit is contained in:
parent
a00e81e98f
commit
c93331c914
@ -149,6 +149,22 @@ def cmd_dump_header(fd):
|
|||||||
h.dump()
|
h.dump()
|
||||||
h.dump_extensions()
|
h.dump_extensions()
|
||||||
|
|
||||||
|
def cmd_set_header(fd, name, value):
|
||||||
|
try:
|
||||||
|
value = int(value, 0)
|
||||||
|
except:
|
||||||
|
print "'%s' is not a valid number" % value
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
fields = (field[2] for field in QcowHeader.fields)
|
||||||
|
if not name in fields:
|
||||||
|
print "'%s' is not a known header field" % name
|
||||||
|
sys.exit(1)
|
||||||
|
|
||||||
|
h = QcowHeader(fd)
|
||||||
|
h.__dict__[name] = value
|
||||||
|
h.update(fd)
|
||||||
|
|
||||||
def cmd_add_header_ext(fd, magic, data):
|
def cmd_add_header_ext(fd, magic, data):
|
||||||
try:
|
try:
|
||||||
magic = int(magic, 0)
|
magic = int(magic, 0)
|
||||||
@ -205,6 +221,7 @@ def cmd_set_feature_bit(fd, group, bit):
|
|||||||
|
|
||||||
cmds = [
|
cmds = [
|
||||||
[ 'dump-header', cmd_dump_header, 0, 'Dump image header and header extensions' ],
|
[ 'dump-header', cmd_dump_header, 0, 'Dump image header and header extensions' ],
|
||||||
|
[ 'set-header', cmd_set_header, 2, 'Set a field in the header'],
|
||||||
[ 'add-header-ext', cmd_add_header_ext, 2, 'Add a header extension' ],
|
[ 'add-header-ext', cmd_add_header_ext, 2, 'Add a header extension' ],
|
||||||
[ 'del-header-ext', cmd_del_header_ext, 1, 'Delete 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'],
|
[ 'set-feature-bit', cmd_set_feature_bit, 2, 'Set a feature bit'],
|
||||||
|
Loading…
Reference in New Issue
Block a user