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

2017-05-03 Thread Akira Yoshiyama
Hi Markus,

2017-05-03 15:59 GMT+09:00 Markus Zoeller :
> On 03.05.2017 04:46, Akira Yoshiyama 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
>> * 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
(snip)
> The interface looks nice! The docs too! I like the openstack-client for
> CLI stuff, but I think I will give your client a shot when I have to
> hack functional tests in python scripts which don't need to be in Tempest.

Oh, thank you. I hope you like it.

Regards,
Akira

>
> --
> Regards, Markus Zoeller (markus_z)
>
>
> __
> OpenStack Development Mailing List (not for usage questions)
> Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev

__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


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

2017-05-03 Thread Akira Yoshiyama
Hi Andrea,

2017-05-03 21:00 GMT+09:00 Andrea Frittoli :
>
>
> On Wed, May 3, 2017 at 12:44 PM Brian Curtin  wrote:
>>
>> On Tue, May 2, 2017 at 10:46 PM, Akira Yoshiyama
>>  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?

Yakumo have no plugin mechanism now, but it sounds great. I'll support
another OpenStack APIs like below:

* Block Storage API v3
* Orchestration API

Yakumo (八雲) is a Japanese proper noun, it means "eightfold clouds" or
"multifold clouds". So the development goal of Yakumo is supporting 8+
OpenStack APIs.

>>> * 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.
(snip)
>>> 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?

Good question. Yakumo is developed for OpenStack Ops; system health
checker, smoke tests, ops tools like creating/deleting tenants and
users, and so on.

> What are its benefit compared to openstacksdk and tempest clients?

I don't know the API of openstacksdk and tempest clients very well, so
it's hard to answer it for me. I think with-statement of resources in
Yakumo looks unique but other clients may have it. See examples like
below for more details:

   
https://github.com/yosshy/python-yakumo/blob/master/yakumo/smoketests/st30_network_subnet_port.py

Regards,
Akira Yoshiyama


>>> 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-requ...@lists.openstack.org?subject:unsubscribe
>> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>
>
> __
> OpenStack Development Mailing List (not for usage questions)
> Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>

__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


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

2017-05-03 Thread Akira Yoshiyama
Hi Brian,

2017-05-03 20:42 GMT+09:00 Brian Curtin :
> On Tue, May 2, 2017 at 10:46 PM, Akira Yoshiyama 
> 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
>> * 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.
(snip)
> 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?

Because there were no unified OpenStack client when I started the development.

The first commit of openstacksdk was on Jan 22, 2014[1]. Yakumo was
originally named "osclient2"[2] and it had the previous version named
"osclient"[3]. The first commit of osclient was on Jul 4, 2013[4].
Moreover, it had another original idea on Jan 17, 2013[5]. The name,
repository and design were altered twice but its basic concept wasn't.

[1]https://github.com/openstack/python-openstacksdk/commit/4c86ed4fea60eb66f52bd0a2e40622d1fe4432dc
[2]https://github.com/yosshy/osclient2
[3]https://github.com/yosshy/osclient
[4]https://github.com/yosshy/osclient/commits/master
[5]https://github.com/yosshy/wiki/wiki/OpenStack_shell

Regards,
Akira Yoshiyama

__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


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

2017-05-03 Thread Andrea Frittoli
On Wed, May 3, 2017 at 12:44 PM Brian Curtin  wrote:

> On Tue, May 2, 2017 at 10:46 PM, Akira Yoshiyama  > 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
>> (> (id="887b0393-5065-4bcf-941d-623100baa06e", name="trusty")>,
>> ,
>> ,
>> > (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
>> > (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-requ...@lists.openstack.org?subject:unsubscribe
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
>
__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


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

2017-05-03 Thread Brian Curtin
On Tue, May 2, 2017 at 10:46 PM, Akira Yoshiyama 
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
> * 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
> ( (id="887b0393-5065-4bcf-941d-623100baa06e", name="trusty")>,
> ,
> ,
>  (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
>  (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!
>
> 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-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


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

2017-05-03 Thread Markus Zoeller
On 03.05.2017 04:46, Akira Yoshiyama 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
> * 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
> ( (id="887b0393-5065-4bcf-941d-623100baa06e", name="trusty")>,
> ,
> ,
>  (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
>  (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!
> 
> Cheers,
> Akira Yoshiyama
> 
> __
> OpenStack Development Mailing List (not for usage questions)
> Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
> http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev
> 

The interface looks nice! The docs too! I like the openstack-client for
CLI stuff, but I think I will give your client a shot when I have to
hack functional tests in python scripts which don't need to be in Tempest.

-- 
Regards, Markus Zoeller (markus_z)


__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev


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

2017-05-02 Thread Akira Yoshiyama
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
* 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
(,
,
,
)

Creating a server:
>>> s = c.server.create(name='vm1', image=i, flavor=f, networks=[n], key_pair=k)
>>> s


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!

Cheers,
Akira Yoshiyama

__
OpenStack Development Mailing List (not for usage questions)
Unsubscribe: openstack-dev-requ...@lists.openstack.org?subject:unsubscribe
http://lists.openstack.org/cgi-bin/mailman/listinfo/openstack-dev