[openstack-dev] [Trove] About single entry point in trove-guestagent

Illia Khudoshyn ikhudoshyn at mirantis.com
Wed Oct 23 14:03:26 UTC 2013


Hi Denis, Michael, Vipul and all,

I noticed a discussion in irc about adding a single entry point (sort of
'SuperManager') to the guestagent. Let me add my 5cent.

I agree with that we would ultimately avoid code duplication. But from my
experience, only very small part of GA Manager can be considered as really
duplicated code, namely Manager#prepare(). A 'backup' part may be another
candidate, but I'm not yet. It may still be rather service type specific.
All the rest of the code was just delegating.

If we add a 'SuperManager' all we'll have -- just more delegation:

1. There is no use for dynamic loading of corresponding Manager
implementation because there will never be more than one service type
supported on a concrete guest. So current implementation with configurable
dictionary service_type->ManagerImpl looks good for me.

2. Neither the 'SuperManager' provide common interface for Manager -- due
to dynamic nature of python. As it has been told, trove.guestagent.api.API
provides list of methods with parameters we need to implement. What I'd
like to have is a description of types for those params as well as return
types. (Man, I miss static typing). All we can do for that is make sure we
have proper unittests with REAL values for params and returns.

As for the common part of the Manager's code, I'd go for extracting that
into a mixin.

Thanks for your attention.

-- 

Best regards,

Illia Khudoshyn,
Software Engineer, Mirantis, Inc.



38, Lenina ave. Kharkov, Ukraine

www.mirantis.com <http://www.mirantis.ru/>

www.mirantis.ru



Skype: gluke_work

ikhudoshyn at mirantis.com
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20131023/c33203c5/attachment.html>


More information about the OpenStack-dev mailing list