[virt-tools-list] [PATCH v2 virt-manager] osdict: handle libosinfo lookup failure

Cole Robinson crobinso at redhat.com
Wed Mar 26 14:45:10 UTC 2014


On 03/26/2014 10:39 AM, Giuseppe Scrivano wrote:
> Cole Robinson <crobinso at redhat.com> writes:
> 
>> On 03/26/2014 09:41 AM, Giuseppe Scrivano wrote:
>>> Cole Robinson <crobinso at redhat.com> writes:
>>>
>>>> On 03/26/2014 08:51 AM, Giuseppe Scrivano wrote:
>>>>> Signed-off-by: Giuseppe Scrivano <gscrivan at redhat.com>
>>>>> ---
>>>>> OK to include this patch into the series?
>>>>>
>>>>>  virtinst/osdict.py | 7 +++++--
>>>>>  1 file changed, 5 insertions(+), 2 deletions(-)
>>>>>
>>>>> diff --git a/virtinst/osdict.py b/virtinst/osdict.py
>>>>> index 13f6670..f37ccab 100644
>>>>> --- a/virtinst/osdict.py
>>>>> +++ b/virtinst/osdict.py
>>>>> @@ -165,9 +165,12 @@ def get_recommended_resources(variant, arch):
>>>>>  
>>>>>  
>>>>>  def lookup_os_by_media(location):
>>>>> -    media = libosinfo.Media.create_from_location(location, None)
>>>>> +    try:
>>>>> +        media = libosinfo.Media.create_from_location(location, None)
>>>>> +    except:
>>>>> +        return None
>>>>
>>>> I'd like to see the error here logged, it either shouldn't happen so it will
>>>> rarely trigger, or its potentially informative. ACK otherwise
>>>
>>> I've preferred to just mute it as the error was that the location could
>>> not be opened, and that makes sense when we pass a URL.  Should this be
>>> changed?
>>>
>>
>> It's still informative, for the logs at least. There could be another error
>> going on in libosinfo and we would want to track that at least. But we could
>> avoid the URL error by not passing a URL location to libosinfo, just skip if
>> distroinstaller._is_url is False
> 
> ok thanks, I didn't see that function, ok to push this version (and
> enable again the exception in osdict.py)?
> 
> --- a/virtinst/distroinstaller.py
> +++ b/virtinst/distroinstaller.py
> @@ -473,6 +474,16 @@ class DistroInstaller(Installer):
>  
>      def detect_distro(self, guest):
>          try:
> +            if not _is_url(self.conn, self.location):
> +                name = osdict.lookup_os_by_media(self.location)
> +                if name:
> +                    logging.debug("installer.detect_distro returned=%s", name)
> +                    return name
> +        except:
> +            logging.debug("libosinfo detect failed", exc_info=True)
> +
> +        try:
> 
> Giuseppe
> 

ACK

- Cole




More information about the virt-tools-list mailing list