On 06/02/2011 03:13 PM, Eric Blake wrote:
On 06/02/2011 02:03 PM, Anthony Liguori wrote:
>>>>>>>> { "event": "BLOCK_IO_ERROR",
>>>>>>>> "data": { "device":
"ide0-hd1",
>>>>>>>> "operation":
"write",
>>>>>>>> "action": "stop",
>>>>>>>> "reason": "enospc",
}
>>>>>>>
>>>>>> I'm ok with either way. But in case you meant the second one,
I guess
>>>>>> we should make "reason" a dictionary so that we can
group related
>>>>>> information when we extend the field, for example:
>>>>>>
>>>>>> "reason": { "no space": false, "no
permission": true }
The idea for an event with details certainly has merit.
In an ideal would, would would just embed the BlockDeviceInfo structure
in the event and call it a day. In a less than ideal world, I think
it's better to make a call to query-block after having received the
BLOCK_IO_ERROR event.
>>>>>
>>>>> Why would we ever have "no permission"?
SELinux denial, perhaps?
Maybe, but that would take a considerable amount of magic to make happen
in practice. Really only sounds plausible as an sVirt bug. I think you
could only make this happen if you you doing dynamic labelling.
Regards,
Anthony Liguori
>
>> Maybe libvirt guys could provide more input wrt the error reason usage.
>> If we don't have valid use cases for other errors, then I'll agree that
>> providing only "no space" is enough.
>
> Definitely! Adding libvirt to the CC to help encourage their input.
We could always start with just one reason "no space", and add more
later if and when we come up for use cases.