<div dir="ltr">Has anyone looked into doing a effort in consolidating the different implementations of these classes ? <div><br></div><div>Doing a short walk-through I see:</div><div><br></div><div><div>Manager</div><div>  * Has a typical kind of API (server, lb, network, subnet) which it interacts with and returns instances of a result as a Resource</div>
<div>Resource</div><div>  * Represents a instance of a object.</div><div><br></div><div># Nova</div><div><a href="https://github.com/openstack/python-novaclient/">https://github.com/openstack/python-novaclient/</a></div><div>
<br></div><div><a href="https://github.com/openstack/python-novaclient/blob/master/novaclient/base.py">https://github.com/openstack/python-novaclient/blob/master/novaclient/base.py</a></div><div><br></div><div># Neutron</div>
<div><a href="https://github.com/openstack/python-neutronclient">https://github.com/openstack/python-neutronclient</a></div><div>N/A?</div><div><br></div><div># Glance</div><div><a href="https://github.com/openstack/python-glanceclient">https://github.com/openstack/python-glanceclient</a></div>
<div><br></div><div><a href="https://github.com/openstack/python-glanceclient/blob/master/glanceclient/common/base.py">https://github.com/openstack/python-glanceclient/blob/master/glanceclient/common/base.py</a></div><div>
<br></div><div># Keystone</div><div><a href="https://github.com/openstack/python-keystoneclient/">https://github.com/openstack/python-keystoneclient/</a></div><div><br></div><div><a href="https://github.com/openstack/python-keystoneclient/blob/master/keystoneclient/base.py">https://github.com/openstack/python-keystoneclient/blob/master/keystoneclient/base.py</a></div>
<div><br></div><div># Cinder</div><div><a href="https://github.com/openstack/python-cinderclient/">https://github.com/openstack/python-cinderclient/</a></div><div><br></div><div><a href="https://github.com/openstack/python-cinderclient/blob/master/cinderclient/base.py">https://github.com/openstack/python-cinderclient/blob/master/cinderclient/base.py</a></div>
<div><br></div><div># Ceilometer</div><div><a href="https://github.com/openstack/python-ceilometerclient/">https://github.com/openstack/python-ceilometerclient/</a></div><div><br></div><div><a href="https://github.com/openstack/python-ceilometerclient/blob/master/ceilometerclient/common/base.py">https://github.com/openstack/python-ceilometerclient/blob/master/ceilometerclient/common/base.py</a></div>
<div><br></div><div># Heat</div><div><a href="https://github.com/openstack/python-heatclient">https://github.com/openstack/python-heatclient</a></div><div><br></div><div><a href="https://github.com/openstack/python-heatclient/blob/master/heatclient/common/base.py">https://github.com/openstack/python-heatclient/blob/master/heatclient/common/base.py</a></div>
<div><br></div><div># Ironic</div><div><a href="https://github.com/openstack/python-ironicclient">https://github.com/openstack/python-ironicclient</a></div><div><br></div><div><a href="https://github.com/openstack/python-ironicclient/blob/master/ironicclient/common/base.py">https://github.com/openstack/python-ironicclient/blob/master/ironicclient/common/base.py</a></div>
<div><br></div><div># Tuskar</div><div><a href="https://github.com/openstack/python-tuskarclient">https://github.com/openstack/python-tuskarclient</a></div><div><br></div><div><a href="https://github.com/openstack/python-tuskarclient/blob/master/tuskarclient/common/base.py">https://github.com/openstack/python-tuskarclient/blob/master/tuskarclient/common/base.py</a></div>
<div><br></div><div># Trove</div><div><a href="https://github.com/openstack/python-troveclient">https://github.com/openstack/python-troveclient</a></div><div><br></div><div><a href="https://github.com/openstack/python-troveclient/blob/master/troveclient/base.py">https://github.com/openstack/python-troveclient/blob/master/troveclient/base.py</a></div>
<div><br></div><div># Marconi</div><div><a href="https://github.com/openstack/python-marconiclient">https://github.com/openstack/python-marconiclient</a></div><div>N/A?</div><div><br></div><div># Savanna</div><div><a href="https://github.com/openstack/python-savannaclient">https://github.com/openstack/python-savannaclient</a></div>
<div><br></div><div><a href="https://github.com/openstack/python-savannaclient/blob/master/savannaclient/api/base.py">https://github.com/openstack/python-savannaclient/blob/master/savannaclient/api/base.py</a></div><div><br>
</div><div># Manila</div><div><a href="https://github.com/stackforge/python-manilaclient">https://github.com/stackforge/python-manilaclient</a></div><div><br></div><div><a href="https://github.com/stackforge/python-manilaclient/blob/master/manilaclient/base.py">https://github.com/stackforge/python-manilaclient/blob/master/manilaclient/base.py</a></div>
<div><br></div><div><br></div><div>They are all doing the same thing, so why not put them into a common place?</div></div><div><br></div><div>Endre</div></div>