A great analysis!! It's really nice to hear that you were able to identify
the exact problem and come up with a way to solve it. Great work as always!!

I'm +1 to include this in 4.1.2 if we can verify all the IaaS features
related to EC2, OpenStack & GCE with this modification. IMO this change
will affect all the IaaS providers. I think we need to introduce a set of
live tests to verify Stratos IaaS providers similar to the one we have for
Kubernetes. Then this process will be much easier.

How about the Kernel patch upgrade? Are we also done with it?

Thanks

On Thu, Aug 20, 2015 at 11:46 PM, Akila Ravihansa Perera <raviha...@wso2.com
> wrote:

> Hi Imesh,
>
> That is totally fine since it was a blocker for the release. But I have
> some news regarding the issue we had with GCE jclouds API. After few days
> of debugging I was able to narrow down the root cause which turned out to
> be incorrect import/export problem in OSGi bundles. All the bundles in
> jclouds do not have proper OSGi imports for external 3rd party
> dependencies. That will work as long as it does not have any conflicts in
> OSGi run time environment. But unfortunately in our case there are some
> conflicts with bundles coming from the kernel and other WSO2 features which
> we depend on.
>
> The exact reason is jclouds rely on Google Guice which is a dependency
> injection framework. But guice is not an OSGi bundle in Maven central. We
> are using guice_3.0.0.wso2v1.jar which is an orbit bundle in WSO2 Nexus.
> This orbit bundle does not have proper OSGi export package versions. The
> real issue is jclouds components have been hard wired with guice ver. 1.3
> (in MANIFEST.MF file) although it actually needs guice ver. 3.0. And this
> WSO2 orbit bundle is somehow wired to export guice ver. 1.3. I've no idea
> why these bundles got wired that way and I couldn't find any guice version
> of 1.3 in Maven central which is really weird. Now even though we include
> guice ver. 3.0 in OSGi environment, it got wired with 1.3 version which is
> provided by WSO2 orbit bundle and since that is not the bundle it actually
> needs we ran into multiple run time issues with GCE. It seems this
> incompatibility only exists for GCE IaaS provider, but it is likely that we
> might run into issues with other IaaS types too.
>
> As a fix for this problem, I had to wrap all the jclouds components that
> we need in separate pom files and specify the correct OSGi imports/exports
> in them. I had to specify the correct imports/exports in cloud controller
> component as well. Note that I have *not* forked any jclouds code here.
> Only that I had to wrap them with correct OSGi parameters.
>
> I've tested the GCE IaaS type and I'm able to spawn instances. I'm
> currently testing other IaaS types for regression issues. I had to do some
> code refactoring in cloud controller to support GCE because there are some
> additional limitations for group name when creating a node. I introduced a
> method 'public String getGroupName(MemberContext memberContext, byte[]
> payload)' in 'Iaas' class in CC component and provide a default
> implementation there and overrode it in GCE Iaas.
>
> Do you think we should include these changes + jclouds 1.9.1 to our next
> release? I'll arrange a public code review to go through the changes.
>
> Thanks.
>
> On Thu, Aug 20, 2015 at 3:43 PM, Imesh Gunaratne <im...@apache.org> wrote:
>
>> On Thu, Aug 20, 2015 at 3:29 PM, Lakmal Warusawithana <lak...@wso2.com>
>>  wrote:
>>>
>>>
>>> You mean 4.1.2 I guess.
>>>
>>
>> Yes, my mistake, its 4.1.2 :-)
>>
>> On Thu, Aug 20, 2015 at 3:29 PM, Lakmal Warusawithana <lak...@wso2.com>
>> wrote:
>>
>>>
>>>
>>> On Thu, Aug 20, 2015 at 3:28 PM, Imesh Gunaratne <im...@apache.org>
>>> wrote:
>>>
>>>> Hi All,
>>>>
>>>> @Akila: I'm sorry we had to revert the changes of jclouds 1.9 upgrade
>>>> to avoid the blocking issue with GCE provider. Will try to fix this locally
>>>> and then include it in 4.1.3:
>>>> https://github.com/apache/stratos/commits/master
>>>>
>>>> IMO we are now go to verify 4.1.3 and do the release build.
>>>>
>>>>
>>> You mean 4.1.2 I guess.
>>>
>>>
>>>> Thanks
>>>>
>>>> On Thu, Aug 20, 2015 at 2:57 PM, Imesh Gunaratne <im...@apache.org>
>>>> wrote:
>>>>
>>>>> The problem with the GCE jclouds provider can be found here:
>>>>> https://issues.apache.org/jira/browse/STRATOS-1516
>>>>>
>>>>> On Thu, Aug 20, 2015 at 1:53 PM, Imesh Gunaratne <im...@apache.org>
>>>>> wrote:
>>>>>
>>>>>> Thanks for the feedback Lakmal!
>>>>>>
>>>>>> As we have encountered issues with Kernel patch upgrade and jclouds
>>>>>> 1.9 upgrade shall we move those to the next minor release 4.1.3?
>>>>>>
>>>>>> I think we might need to revert jclouds 1.9 upgrade changes.
>>>>>>
>>>>>> On Thu, Aug 20, 2015 at 9:25 AM, Lakmal Warusawithana <
>>>>>> lak...@wso2.com> wrote:
>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On Tue, Aug 18, 2015 at 3:54 PM, Imesh Gunaratne <im...@apache.org>
>>>>>>> wrote:
>>>>>>>
>>>>>>>> Hi Devs,
>>>>>>>>
>>>>>>>> Thanks for all your efforts on releasing 4.1.1 within a very short
>>>>>>>> time period. IMO it was a great accomplishment! It took nearly an year 
>>>>>>>> for
>>>>>>>> us to release 4.1.0 after 4.0.0.
>>>>>>>>
>>>>>>>> Shall we now plan for 4.1.2 with the following items?
>>>>>>>>
>>>>>>>
>>>>>>> +1
>>>>>>>
>>>>>>>
>>>>>>>>
>>>>>>>> TaskOwnerStatusJIRA1Update Carbon Kernel patches (Critical for
>>>>>>>> Private PaaS 4.1.0)AkilaIn-ProgressSTRATOS-14352Application
>>>>>>>> signups not available in the UI (Critical for Private PaaS 4.1.0)
>>>>>>>> DakshikaIn-ProgressSTRATOS-15014Integration test - termination
>>>>>>>> behaviorRekaCompleted5Integration test - startup orderReka
>>>>>>>> In-Progress6Integration test - Listing all 
>>>>>>>> artifactsRekaCompleted7Apache
>>>>>>>> jclouds 1.9 upgrade
>>>>>>>> AkilaCompletedSTRATOS-15138Port mappings and kubernetes services
>>>>>>>> are created for each instanceLasinduCompletedSTRATOS-14959Payload
>>>>>>>> parameters cannot accept values which includes = signLasindu
>>>>>>>> CompletedSTRATOS-149610Exception in cartridge agent : ValueError:
>>>>>>>> invalid literal for int()GayanCompletedSTRATOS-149711Payload
>>>>>>>> parameters doesn't contain port_mappings for jcloud based IaaSs.
>>>>>>>> AnuruddhaCompletedSTRATOS-151112Add a new property to Application
>>>>>>>> Bean to check the availability of Application SignUpsImeshCompleted
>>>>>>>> STRATOS-1515
>>>>>>>>
>>>>>>>>
>>>>>>>> Thanks
>>>>>>>>
>>>>>>>> --
>>>>>>>> Imesh Gunaratne
>>>>>>>>
>>>>>>>> Senior Technical Lead, WSO2
>>>>>>>> Committer & PMC Member, Apache Stratos
>>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> --
>>>>>>> Lakmal Warusawithana
>>>>>>> Vice President, Apache Stratos
>>>>>>> Director - Cloud Architecture; WSO2 Inc.
>>>>>>> Mobile : +94714289692
>>>>>>> Blog : http://lakmalsview.blogspot.com/
>>>>>>>
>>>>>>>
>>>>>>
>>>>>>
>>>>>> --
>>>>>> Imesh Gunaratne
>>>>>>
>>>>>> Senior Technical Lead, WSO2
>>>>>> Committer & PMC Member, Apache Stratos
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> Imesh Gunaratne
>>>>>
>>>>> Senior Technical Lead, WSO2
>>>>> Committer & PMC Member, Apache Stratos
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Imesh Gunaratne
>>>>
>>>> Senior Technical Lead, WSO2
>>>> Committer & PMC Member, Apache Stratos
>>>>
>>>
>>>
>>>
>>> --
>>> Lakmal Warusawithana
>>> Vice President, Apache Stratos
>>> Director - Cloud Architecture; WSO2 Inc.
>>> Mobile : +94714289692
>>> Blog : http://lakmalsview.blogspot.com/
>>>
>>>
>>
>>
>> --
>> Imesh Gunaratne
>>
>> Senior Technical Lead, WSO2
>> Committer & PMC Member, Apache Stratos
>>
>
>
>
> --
> Akila Ravihansa Perera
> WSO2 Inc.;  http://wso2.com/
>
> Blog: http://ravihansa3000.blogspot.com
>



-- 
Imesh Gunaratne

Senior Technical Lead, WSO2
Committer & PMC Member, Apache Stratos

Reply via email to