[openstack-dev] [magnum] swagger-codegen generated code for python-k8sclient

Madhuri Rai madhuri.rai07 at gmail.com
Wed Apr 22 09:33:24 UTC 2015


Hi All,

As we are using fedora-21-atomic-2 image and that has Kubernetes v0.11.0, I
tried to run v1beta3 APIs on it. Some of the APIs failed.
The Kubernetes developer said "v1beta3 wasn't fully supported until the
0.15.0 release". Hence this is causing some APIs to fail.

Below are the failures:

1. service-create API fail(422 status) with v1beta3 request format.
    The request format has changed from v1beta1 to v1beta3.

https://github.com/GoogleCloudPlatform/kubernetes/blob/master/docs/api.md#v1beta3-conversion-tips

    I have logged an issue for the same at GoogleCloudPlatform/Kubernetes:
    https://github.com/GoogleCloudPlatform/kubernetes/issues/7157

2. pod-create API fail(500 status) with invalid request format.
    While doing negative testing, I found that pod-create API fails with
500 status. It should actually fail with 400 status.

    I have logged an issue for the same at GoogleCloudPlatform/Kubernetes:
    https://github.com/GoogleCloudPlatform/kubernetes/issues/7087

3. pod-update API fail(404).
    While trying to update a pod*, *it failed with status 404 even if the
pod exists. This is due to duplicate replacePod API in Kubernetes Client
code.

    I have logged an issue for the same at GoogleCloudPlatform/Kubernetes:
    https://github.com/GoogleCloudPlatform/kubernetes/issues/7100

4. All APIs fail with json manifest.
    All Kubernetes resources(pod, rc, service) now fails with json format
manifest due to issue in swagger-codegen generated Kubernetes Client code.
    It doesn't support unicode string.

After all this issues, can we really switch to Kubernetes Client in this
release or should we wait for the Fedora image with Kubernetes 0.15.0
release that has full support of v1beta3?

Please provide your suggestions on this so that I can proceed further.

 Thanks & Regards
Madhuri Kumari


On Tue, Mar 24, 2015 at 10:37 AM, Madhuri Rai <madhuri.rai07 at gmail.com>
wrote:

> Hi Hongbin,
>
>
> On Tue, Mar 24, 2015 at 12:37 AM, Hongbin Lu <hongbin034 at gmail.com> wrote:
>
>> Hi Madhuri,
>>
>> Amazing work! I wouldn't concern the code duplication and modularity
>> issue since the codes are generated. However, there is another concern
>> here: if we find a bug/improvement of the generated code, we probably need
>> to modify the generator. The question is if the upstream will accept the
>> modifications? If yes, how fast the patch will go through.
>>
>> I would prefer to maintain a folk of the generator. By this way, we would
>> have full control of the generated code. Thoughts?
>>
>
> I agree that's a concern. I will try to fix the pep8 error upstream to
> look how it take to push a change upstream.
>
>
>> Thanks,
>> Hongbin
>>
>> On Mon, Mar 23, 2015 at 10:11 AM, Steven Dake (stdake) <stdake at cisco.com>
>> wrote:
>>
>>>
>>>
>>>   From: Madhuri Rai <madhuri.rai07 at gmail.com>
>>> Reply-To: "OpenStack Development Mailing List (not for usage
>>> questions)" <openstack-dev at lists.openstack.org>
>>> Date: Monday, March 23, 2015 at 1:53 AM
>>> To: "openstack-dev at lists.openstack.org" <
>>> openstack-dev at lists.openstack.org>
>>> Subject: [openstack-dev] [magnum] swagger-codegen generated code for
>>> python-k8sclient
>>>
>>>   Hi All,
>>>
>>> This is to have a discussion on the blueprint for implementing
>>> python-k8client for magnum.
>>>
>>>     https://blueprints.launchpad.net/magnum/+spec/python-k8sclient
>>>
>>> I have committed the code generated by swagger-codegen at
>>> https://review.openstack.org/#/c/166720/.
>>> But I feel the quality of the code generated by swagger-codegen is not
>>> good.
>>>
>>> Some of the points:
>>> 1) There is lot of code duplication. If we want to generate code for two
>>> or more versions, same code is duplicated for each API version.
>>> 2) There is no modularity. CLI code for all the APIs are written in same
>>> file.
>>>
>>> So, I would like your opinion on this. How should we proceed further?
>>>
>>>
>>>  Madhuri,
>>>
>>>  First off, spectacular that you figured out how to do this!  Great
>>> great job!  I suspected the swagger code would be a bunch of garbage.  Just
>>> looking over the review, the output isn’t too terribly bad.  It has some
>>> serious pep8 problems.
>>>
>>>  Now that we have seen the swagger code generator works, we need to see
>>> if it produces useable output.  In other words, can the API be used by the
>>> magnum backend.  Google is “all-in” on swagger for their API model.
>>> Realistically maintaining a python binding would be a huge job.  If we
>>> could just use swagger for the short term, even though its less then ideal,
>>> that would be my preference.  Even if its suboptimal.  We can put a readme
>>> in the TLD saying the code was generated by a a code generator and explain
>>> how to generate the API.
>>>
>>>  One last question.  I didn’t see immediately by looking at the api,
>>> but does it support TLS auth?  We will need that.
>>>
>>>  Super impressed!
>>>
>>>  Regards
>>> -steve
>>>
>>>
>>>
>>> Regards,
>>> Madhuri Kumari
>>>
>>>
>>>
>>> __________________________________________________________________________
>>> 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
>>>
>>>
>>
>> __________________________________________________________________________
>> 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
>>
>> Regards,
> Madhuri Kumari
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.openstack.org/pipermail/openstack-dev/attachments/20150422/c270f309/attachment.html>


More information about the OpenStack-dev mailing list