You are viewing a plain text version of this content. The canonical link for it is here.
Posted to notifications@jclouds.apache.org by "Ignasi Barrera (JIRA)" <ji...@apache.org> on 2013/11/10 23:30:18 UTC
[jira] [Comment Edited] (JCLOUDS-357) ComputeService.listnodes() in
the case of softlayer cloud takes about 2 minutes for cloud with only 3
machines
[ https://issues.apache.org/jira/browse/JCLOUDS-357?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13818577#comment-13818577 ]
Ignasi Barrera edited comment on JCLOUDS-357 at 11/10/13 10:29 PM:
-------------------------------------------------------------------
There is no way to configure that directly, but you can customize it. Jclouds uses a set of transformation functions to convert objects from the provider domain model to the jclouds portable one. Those functions are usually [bound to the Guice|https://github.com/jclouds/jclouds/blob/master/providers/softlayer/src/main/java/org/jclouds/softlayer/compute/config/SoftLayerComputeServiceContextModule.java#L75-L82] context so they are easy to override.
You could build your own transformation function for the _NodeMetadata_ and configure a linked binding so it replaces the default one:
{code:java}
public class CustomTransformations extends AbstractModule {
@Override
protected void configure() {
bind(VirtualGuestToNodeMetadata.class).to(YourCustomFunction.class);
}
{code}
And make sure you include that module in the list of modules used to create the jclouds context.
was (Author: nacx):
There is no way to configure that directly, but you can customize it. Jclouds uses a set of transformation functions to convert objects from the provider domain model to the jclouds portable one. Those functions are usually [bound to the Guice|https://github.com/jclouds/jclouds/blob/master/providers/softlayer/src/main/java/org/jclouds/softlayer/compute/config/SoftLayerComputeServiceContextModule.java#L75-L82] context so they are easy to override.
You could build your own transformation function for the _NodeMetadata_ and configure a linked binding so it replaces the default binding:
{code:java}
public class CustomTransformations extends AbstractModule {
@Override
protected void configure() {
bind(VirtualGuestToNodeMetadata.class).to(YourCustomFunction.class);
}
{code}
And make sure you include that module in the list of modules used to create the jclouds context.
> ComputeService.listnodes() in the case of softlayer cloud takes about 2 minutes for cloud with only 3 machines
> --------------------------------------------------------------------------------------------------------------
>
> Key: JCLOUDS-357
> URL: https://issues.apache.org/jira/browse/JCLOUDS-357
> Project: jclouds
> Issue Type: Improvement
> Components: jclouds-compute
> Affects Versions: 1.5.10, 1.6.2
> Environment: Windows 7 64-bit
> Reporter: Evgeny Fisher
> Priority: Critical
> Labels: softlayer
>
> The significant delay is on the following call: method apply(VirtualGuest) of
> org.jclouds.softlayer.compute.functions.VirtualGuestToNodeMetadata
> findLocationForVirtualGuest.apply(from).
> If I removes in above calling initializing location within builder then it improves performance dramatically: instead of 2 minutes it takes now about 12 seconds in order to bring 3 nodes..
> Performance is improved as well if in addition to location the following fields of builder are not initialized: operatingSystem, hardware, group.
> I think initializing of of these builder fields should be optional, since like in my case I need only id, hostname, public IP and private ip.
> I'm aware that next calls will go to cache and will have much better performance, but I need good performance already during first call.
--
This message was sent by Atlassian JIRA
(v6.1#6144)