@ogondza you can try to look 
at https://github.com/KostyaSha/yet-another-docker-plugin where i 
clean-uped most of the code that i started working on in docker-plugin. Not 
ideal of course but i un-hardcoded and clean-uped as much as i can. All 
other plugins copy-pasting code without understanding how it works (my 
impression after reading a lot of cloud plugins).
PS feel free to contact about stats if you need some experiments.

On Wednesday, April 27, 2016 at 4:59:35 PM UTC+3, Stephen Connolly wrote:
>
> So you should not be checking that the slave is launched by running 
> through computer.connect(false) as that requires that you return early. 
> Instead you should be checking for e.g. the ssh service to be open and 
> responding to connection requests (you can do that easily with your 
> launcher... but a custom check would be better as you only want to check 
> that the port is open) then you return and let Jenkins add the node and 
> connect. The critical bug is 
> https://github.com/jenkinsci/jclouds-plugin/blob/master/jclouds-plugin/src/main/java/jenkins/plugins/jclouds/compute/JCloudsCloud.java#L297
>  
> i.e. you should *never* add the node to jenkins yourself, when you do 
> that you cause the second issue that you are then trying to correct.
>
> In short the future should return the Node instance to be added *when* the 
> actual Node instance is ready to connect. If you return the Node too soon, 
> then you get over-provisioning... which then leads to people trying to 
> "fix" that by copying the hacks in the EC2 plugin.
>
> The cloud API is a mess. I want to replace it with something that a sane 
> individual has a hope of implementing correctly.
>
> Do not fear, after dealing with the cloud API for many years now I have 
> come to the conclusion that it is IMPOSSIBLE to write a correct 
> implementation. The closest thing to a correct implementation is the 
> oc-cloud implementation used by CJOC (and that only avoids the bugs that 
> you cannot avoid because we can linearize operations in CJOC). 
>
> Our nectar-vmware plugin is "ok" (largely due to a shake-down we did when 
> we were using it for the predecessor to CJOC)
>
> The next closest to a correct implementation is Docker.
>
> After that... well it's all mostly sh1t... I loose the will to live when I 
> start looking at other implementations.
>
> If you pick EC2 as your template you will be following every wrong example 
> in the book.
>
> On 27 April 2016 at 13:54, Oliver Gondža <[email protected] <javascript:>> 
> wrote:
>
>> On 04/27/2016 02:08 PM, Stephen Connolly wrote:
>>
>>>
>>> On 8 April 2016 at 14:44, Oliver Gondža <[email protected] <javascript:>
>>> <mailto:[email protected] <javascript:>>> wrote:
>>>
>>>     Some plugins even wait for launch to complete before leaving
>>>     PlannedNode#future
>>>
>>>
>>> Those are broken plugins
>>>
>>
>> As a maintainer of one such plugin I would like to hear your input on [1] 
>> is it seems to be quite common. With regards to the cloud-stats plugin, it 
>> would not change much even if they all get fixed since launch can be 
>> started by Jenkins before it collects completed futures, it just makes it 
>> happen all the time instead of rarely.
>>
>> [1] 
>> https://github.com/jenkinsci/jclouds-plugin/blob/master/jclouds-plugin/src/main/java/jenkins/plugins/jclouds/compute/JCloudsCloud.java#L299-L303
>>
>> -- 
>> oliver
>>
>> -- 
>> You received this message because you are subscribed to the Google Groups 
>> "Jenkins Developers" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to [email protected] <javascript:>.
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/jenkinsci-dev/418b92f5-e0ca-c85b-ecf2-bc4d5a184422%40gmail.com
>> .
>>
>> For more options, visit https://groups.google.com/d/optout.
>>
>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Jenkins Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jenkinsci-dev/f2e5eff3-b59a-4ea1-abd8-90656f0a772f%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to