Message ID | 1386954633-28905-21-git-send-email-mreitz@redhat.com |
---|---|
State | New |
Headers | show |
Am 13.12.2013 um 18:10 hat Max Reitz geschrieben: > Add structures to support blkdebug and blkverify in blockdev-add. > > Signed-off-by: Max Reitz <mreitz@redhat.com> > --- > qapi-schema.json | 94 +++++++++++++++++++++++++++++++++++++++++++++++++++++--- > 1 file changed, 90 insertions(+), 4 deletions(-) > > diff --git a/qapi-schema.json b/qapi-schema.json > index c3c939c..6ce016c 100644 > --- a/qapi-schema.json > +++ b/qapi-schema.json > @@ -4166,6 +4166,94 @@ > '*pass-discard-other': 'bool' } } > > ## > +# @BlkdebugInjectErrorOptions > +# > +# Describes a single error injection for blkdebug. > +# > +# @event: trigger event name > +# > +# @state: #optional the state identifier blkdebug needs to be in to > +# actually trigger the event; defaults to "any" > +# > +# @error: #optional error identifier (errno) to be returned; defaults to > +# EIO > +# > +# @sector: #optional specifies the sector index which has to be affected > +# in order to actually trigger the event; defaults to "any > +# sector" > +# > +# @once: #optional disables further events after this one has been > +# triggered; defaults to false > +# > +# @immediately: #optional fail immediately; defaults to false > +# > +# Since: 2.0 > +## > +{ 'type': 'BlkdebugInjectErrorOptions', > + 'data': { 'event': 'str', I bet Eric will tell you that an enum for event would be much nicer. ;-) Reviewed-by: Kevin Wolf <kwolf@redhat.com>
On 12/13/2013 01:54 PM, Kevin Wolf wrote: > Am 13.12.2013 um 18:10 hat Max Reitz geschrieben: >> +# @BlkdebugInjectErrorOptions >> +# >> +# Describes a single error injection for blkdebug. >> +# >> +# @event: trigger event name >> +# >> +## >> +{ 'type': 'BlkdebugInjectErrorOptions', >> + 'data': { 'event': 'str', > > I bet Eric will tell you that an enum for event would be much nicer. ;-) Am I that predictable? :) And see my comments on 19; I think with a minor tweak to qapi.py's polluted_words, that you could use @errno instead of @error.
On 13.12.2013 21:54, Kevin Wolf wrote: > Am 13.12.2013 um 18:10 hat Max Reitz geschrieben: >> Add structures to support blkdebug and blkverify in blockdev-add. >> >> Signed-off-by: Max Reitz <mreitz@redhat.com> >> --- >> qapi-schema.json | 94 +++++++++++++++++++++++++++++++++++++++++++++++++++++--- >> 1 file changed, 90 insertions(+), 4 deletions(-) >> >> diff --git a/qapi-schema.json b/qapi-schema.json >> index c3c939c..6ce016c 100644 >> --- a/qapi-schema.json >> +++ b/qapi-schema.json >> @@ -4166,6 +4166,94 @@ >> '*pass-discard-other': 'bool' } } >> >> ## >> +# @BlkdebugInjectErrorOptions >> +# >> +# Describes a single error injection for blkdebug. >> +# >> +# @event: trigger event name >> +# >> +# @state: #optional the state identifier blkdebug needs to be in to >> +# actually trigger the event; defaults to "any" >> +# >> +# @error: #optional error identifier (errno) to be returned; defaults to >> +# EIO >> +# >> +# @sector: #optional specifies the sector index which has to be affected >> +# in order to actually trigger the event; defaults to "any >> +# sector" >> +# >> +# @once: #optional disables further events after this one has been >> +# triggered; defaults to false >> +# >> +# @immediately: #optional fail immediately; defaults to false >> +# >> +# Since: 2.0 >> +## >> +{ 'type': 'BlkdebugInjectErrorOptions', >> + 'data': { 'event': 'str', > I bet Eric will tell you that an enum for event would be much nicer. ;-) From my perspective, it isn't that nice, but I see where you are coming from, so I'll do it. ;-) Max
diff --git a/qapi-schema.json b/qapi-schema.json index c3c939c..6ce016c 100644 --- a/qapi-schema.json +++ b/qapi-schema.json @@ -4166,6 +4166,94 @@ '*pass-discard-other': 'bool' } } ## +# @BlkdebugInjectErrorOptions +# +# Describes a single error injection for blkdebug. +# +# @event: trigger event name +# +# @state: #optional the state identifier blkdebug needs to be in to +# actually trigger the event; defaults to "any" +# +# @error: #optional error identifier (errno) to be returned; defaults to +# EIO +# +# @sector: #optional specifies the sector index which has to be affected +# in order to actually trigger the event; defaults to "any +# sector" +# +# @once: #optional disables further events after this one has been +# triggered; defaults to false +# +# @immediately: #optional fail immediately; defaults to false +# +# Since: 2.0 +## +{ 'type': 'BlkdebugInjectErrorOptions', + 'data': { 'event': 'str', + '*state': 'int', + '*error': 'int', + '*sector': 'int', + '*once': 'bool', + '*immediately': 'bool' } } + +## +# @BlkdebugSetStateOptions +# +# Describes a single state-change event for blkdebug. +# +# @event: trigger event name +# +# @state: #optional the current state identifier blkdebug needs to be in; +# defaults to "any" +# +# @new_state: the state identifier blkdebug is supposed to assume if +# this event is triggered +# +# Since: 2.0 +## +{ 'type': 'BlkdebugSetStateOptions', + 'data': { 'event': 'str', + '*state': 'int', + 'new_state': 'int' } } + +## +# @BlockdevOptionsBlkdebug +# +# Driver specific block device options for blkdebug. +# +# @image: underlying raw block device (or image file) +# +# @config: #optional filename of the configuration file +# +# @inject-error: #optional array of error injection descriptions +# +# @set-state: #optional array of state-change descriptions +# +# Since: 2.0 +## +{ 'type': 'BlockdevOptionsBlkdebug', + 'data': { 'image': 'BlockdevRef', + '*config': 'str', + '*inject-error': ['BlkdebugInjectErrorOptions'], + '*set-state': ['BlkdebugSetStateOptions'] } } + +## +# @BlockdevOptionsBlkverify +# +# Driver specific block device options for blkverify. +# +# @test: block device to be tested +# +# @raw: raw image used for verification +# +# Since: 2.0 +## +{ 'type': 'BlockdevOptionsBlkverify', + 'data': { 'test': 'BlockdevRef', + 'raw': 'BlockdevRef' } } + +## # @BlockdevOptions # # Options for creating a block device. @@ -4189,10 +4277,8 @@ # TODO sheepdog: Wait for structured options # TODO ssh: Should take InetSocketAddress for 'host'? 'vvfat': 'BlockdevOptionsVVFAT', - -# TODO blkdebug: Wait for structured options -# TODO blkverify: Wait for structured options - + 'blkdebug': 'BlockdevOptionsBlkdebug', + 'blkverify': 'BlockdevOptionsBlkverify', 'bochs': 'BlockdevOptionsGenericFormat', 'cloop': 'BlockdevOptionsGenericFormat', 'cow': 'BlockdevOptionsGenericCOWFormat',
Add structures to support blkdebug and blkverify in blockdev-add. Signed-off-by: Max Reitz <mreitz@redhat.com> --- qapi-schema.json | 94 +++++++++++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 90 insertions(+), 4 deletions(-)