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>>
