I think I've found a problem with jclouds.

I've looked up the valid image ids for "Red Hat Enterprise Linux 6 -
Minimal Install (64 bit)" for 5+ cores using the Softlayer API. The
getActivePackages call in Softlayer API (
https://gist.github.com/leonsp/7759253) only returns two image ids for this
image name -- 13799 and 22400. 13799 costs $.08 and 22400 costs $.12, which
corresponds to what the Softlayer GUI shows when provisioning the 1-4 core
image and the 5 core RHEL image manually.

When I try to provision image 22400 with jclouds, jclouds gives me an error
without making a (full?) roundtrip to Softlayer. There is no roundtrip
because the error comes up very quickly.

Java::JavaUtil::NoSuchElementException (imageId(22400) not found):

org.jclouds.compute.domain.internal.TemplateBuilderImpl.throwNoSuchElementExceptionAfterLoggingImageIds
(TemplateBuilderImpl.java:721)
  org.jclouds.compute.domain.internal.TemplateBuilderImpl.findImageWithId
(TemplateBuilderImpl.java:706)
  org.jclouds.compute.domain.internal.TemplateBuilderImpl.build
(TemplateBuilderImpl.java:659)
  ...

My sense is that jclouds is maintaining an incomplete, incorrect internal
list of available images, and is failing my call without actually trying to
provision image id 22400.

The same call works with image_id 13799 (RHEL6) and <4 cores, and with
image_id 13945 (CentOS6) with any number of cores.

Please let me know if I should open something in JIRA, or if there's a flaw
in the above.

- Leons



From:   Leons Petrazickis/Toronto/IBM
To:     [email protected]
Date:   12/02/2013 12:34 PM
Subject:        Problem provisioning RHEL image on Softlayer


I'm using Jclouds 1.6.3-SNAPSHOT.

When I try to provision a node through Jclouds using the RHEL image with
more than 4 cores on Softlayer, I get this error:

   java.util.concurrent.ExecutionException:
   org.jclouds.http.HttpResponseException:
   command: POST https://api.softlayer.com
   /rest/v3/SoftLayer_Product_Order/placeOrder.json HTTP/1.1 failed with
   response:
   HTTP/1.1 500 Internal Server Error; content:
   [{
   "error":"Red Hat Enterprise Linux 6 - Minimal Install (64 bit) (1-4
   Core), price ID# 13799, has a CORE capacity restriction that does not
   match the capacity of 16 x 2.0 GHz Cores, price ID# 2235. Please submit
   prices that are compatible.",
   "code":"SoftLayer_Exception_Public"
   }]

I'm requesting imageId 13799 and hardwareId 2235,22422,13887. Previously I
tried specifying minCores instead of hardwareId with the same error
message.

I can provision this combination manually through the Softlayer interface.
I can provision nodes with fewer cores through Jclouds.

When I do a listImages(), the only image id I get for RHEL6 Minimal 64-bit
is 13799.

How can I make this work?

Is there a way to list additional image ids/price ids for Softlayer?

Is there a way to make Jclouds transparently upgrade my request to the
price metric Softlayer wants?

Thanks,

Leons

<<inline: graycol.gif>>

Reply via email to