[libvirt] [test-API PATCH 3/7] domainAPI: Add wrapper method to work with domain's console connections

Guannan Ren gren at redhat.com
Thu Mar 22 09:29:32 UTC 2012


>
> Wouldn't this actualy defeat the encapsulation that is provided in the 
> StreamAPI class? With this change you can reuse the StreamAPI object 
> for other actions later on too, without loosing the abstraction.
>
> With the chagne you pushed:
> diff --git a/lib/domainAPI.py b/lib/domainAPI.py
> index 91f2ba3..ddcdc91 100644
> --- a/lib/domainAPI.py
> +++ b/lib/domainAPI.py
> @@ -878,6 +878,14 @@ class DomainAPI(object):
>              code = e.get_error_code()
>              raise exception.LibvirtAPI(message, code)
>
> +    def openConsole(self, domname, device, st_obj, flags = 0):
> +        try:
> +            dom_obj = self.get_domain_by_name(domname)
> +            return dom_obj.openConsole(device, st_obj, flags)
> +        except libvirt.libvirtError, e:
> +            message = e.get_error_message()
> +            code = e.get_error_code()
> +            raise exception.LibvirtAPI(message, code)
>
> You have to create a new StreamAPI object with DomainAPI.newStream() 
> and then you have to extract the virStream object from that to pass it 
> manualy to DomainAPI.openConsole(). IMO this will encourage to use the 
> virStream object directly without the encapsulation that is provided 
> by the StreamAPI class.
>
> Peter
>

    Yeath, you are right,  we can not cross the encapsulation line.
    We have to operate above the abstraction layer.
    Your patch is correct definitely.

    Guannan Ren




More information about the libvir-list mailing list