[openstack-dev] [all] Yakumo: Pythonic, unified OpenStack client library

Andrea Frittoli andrea.frittoli at gmail.com
Wed May 3 12:00:08 UTC 2017


On Wed, May 3, 2017 at 12:44 PM Brian Curtin <brian at python.org> wrote:

> On Tue, May 2, 2017 at 10:46 PM, Akira Yoshiyama <akirayoshiyama at gmail.com
> > wrote:
>
>> Hello all,
>>
>> I'm pleased to announce Yakumo, yet another unified OpenStack client
>> library with an interactive shell. You can find Yakumo below:
>>
>>    PyPI: https://pypi.python.org/pypi/yakumo/
>>    Github: https://github.com/yosshy/python-yakumo/
>>
>> Yakumo development focuses to:
>>
>> * Pythonic: handles each cloud resource as an object in the same manner
>> * Unified: handles all OpenStack APIs at once
>
>
Does Yakumo provide some plugin mechanism, or do you plan to include and
support
all OpenStack services in Yakumo?


> * Less dependency: no import of other OpenStack client libraries
>>
>> Why do we have to specify IDs of cloud resources in Python
>> programming? Python is an object-oriented programming language. IMO,
>> we should use objects to represent cloud resources, including method
>> arguments. It's one of the reasons I've started Yakumo project.
>>
>> Yakumo 0.11.0 suports OpenStack APIs below:
>>
>> * Identity API v2/v3
>> * Compute API v2
>> * Networking v2
>> * Image Service API v1/v2
>> * Block Storage v1/v2
>> * Object Storage v1
>>
>> Yakumo has 23 sample smoke tests below for the APIs now. It's useful
>> to test your cloud and learn usage of Yakumo.
>>
>>    https://github.com/yosshy/python-yakumo/tree/master/yakumo/smoketests
>>
>> And also you can use 'ossh', an interactive python shell in Yakumo.
>> It's a good example.
>> # ossh --os-cloud=mypackstack
>>
>> Finding existing resources:
>> (c is an client object automatically generated for mypackstack
>> environment)
>> >>> i = c.image.find_one(name="trusty")
>> >>> f = c.flavor.find_one(name='m1.small')
>> >>> k = c.key_pair.find_one(name='key1')
>> >>> n = c.network.find_one(name='private')
>> >>> i, f, k, n
>> (<yakumo.glance.v2.image.Resource
>> (id="887b0393-5065-4bcf-941d-623100baa06e", name="trusty")>,
>> <yakumo.nova.v2.flavor.Resource (id="2", name="m1.small")>,
>> <yakumo.nova.v2.key_pair.Resource (name="key1")>,
>> <yakumo.neutron.v2.network.Resource
>> (id="22e3fa30-11c0-4065-bbf7-8d8bbb50f63b", name="private")>)
>>
>> Creating a server:
>> >>> s = c.server.create(name='vm1', image=i, flavor=f, networks=[n],
>> key_pair=k)
>> >>> s
>> <yakumo.nova.v2.server.Resource
>> (id="b1477f6c-bbc4-4c37-ba05-14b935a5d08c" empty)>
>>
>> Waiting for building task finished:
>> >>> s.wait_for_finished()
>> >>> s.status
>> u'ACTIVE'
>>
>> Deleting the server:
>> >>> s.delete()
>>
>> See README for more usage and details:
>>
>>    https://github.com/yosshy/python-yakumo/blob/master/README.md
>>
>> Feedback is welcome!
>>
>
It's not clear to me what is the specific use case this library aims to
cover.
Is it meant for application development or testing or both?
What are its benefit compared to openstacksdk and tempest clients?


>
>> Cheers,
>> Akira Yoshiyama
>
>
> Looks almost exactly like openstacksdk. Why duplicate that and pollute an
> already crowded space as there are already far too many existing libraries
> to work with OpenStack?
>
__________________________________________________________________________
> OpenStack Development Mailing List (not for usage questions)
> Unsubscribe: OpenStack-dev-request at lists.openstack.org?subject:unsubscribe
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20170503/62fb3f6d/attachment.html>


More information about the OpenStack-dev mailing list