Maxim Levitsky <mlevi...@redhat.com> writes: > blockdev-amend will be used similiar to blockdev-create > to allow on the fly changes of the structure of the format based block > devices. > > Current plan is to first support encryption keyslot management for luks > based formats (raw and embedded in qcow2) > > Signed-off-by: Maxim Levitsky <mlevi...@redhat.com> [...] > diff --git a/qapi/block-core.json b/qapi/block-core.json > index 7ff5e5edaf..601f7dc9a4 100644 > --- a/qapi/block-core.json > +++ b/qapi/block-core.json > @@ -4743,6 +4743,48 @@ > 'data': { 'job-id': 'str', > 'options': 'BlockdevCreateOptions' } } > > +## > +# @BlockdevAmendOptions: > +# > +# Options for amending an image format > +# > +# @driver block driver that is suitable for the image > +# > +# Since: 5.0 > +## > +{ 'union': 'BlockdevAmendOptions', > + 'base': { > + 'driver': 'BlockdevDriver' }, > + 'discriminator': 'driver', > + 'data': { > + } } > + > +## > +# @x-blockdev-amend: > +# > +# Starts a job to amend format specific options of an existing open block > device > +# The job is automatically finalized, but a manual job-dismiss is required. > +# > +# @job-id: Identifier for the newly created job. > +# > +# @node-name: Name of the block node to work on > +# > +# @options: Options (driver specific) > +# > +# @force: Allow unsafe operations, format specific > +# For luks that allows erase of the last active keyslot > +# (permanent loss of data), > +# and replacement of an active keyslot > +# (possible loss of data if IO error happens)
PATCH 2 appears to reject that. What am I missing? > +# > +# Since: 5.0 > +## > +{ 'command': 'x-blockdev-amend', > + 'data': { 'job-id': 'str', > + 'node-name': 'str', > + 'options': 'BlockdevAmendOptions', > + '*force': 'bool' } } > + > ## > # @blockdev-open-tray: > # > diff --git a/qapi/job.json b/qapi/job.json > index a121b615fb..362b634ec1 100644 > --- a/qapi/job.json > +++ b/qapi/job.json > @@ -19,10 +19,12 @@ > # > # @create: image creation job type, see "blockdev-create" (since 3.0) > # > +# @amend: image options amend job type, see "x-blockdev-amend" (since 5.0) > +# > # Since: 1.7 > ## > { 'enum': 'JobType', > - 'data': ['commit', 'stream', 'mirror', 'backup', 'create'] } > + 'data': ['commit', 'stream', 'mirror', 'backup', 'create', 'amend'] } > > ## > # @JobStatus: