Hi Imesh,

The refactoring that Andrea mentions is in this pull request:
    https://github.com/jclouds/jclouds/pull/296

We've been running against a custom build of this branch for a while, and have found it *much* more reliable and faster than the existing 1.7.1 code.

Aled


On 09/03/2014 04:56, Andrea Turli wrote:
Imesh,

this kind of errors are the driving reason for our refactoring: in fact,
very often the current implementation fails in listing pre-existing
manually created nodes with exceptions similar to the one you had.

We hope to have a new version soon  to have all of those problems solved.

Best,
Andrea
Il 09/mar/2014 01:52 "Imesh Gunaratne" <im...@apache.org> ha scritto:

Hi,

As I found jclouds SoftLayer provider invokes getOrderTemplate() method to
fetch order price information from SoftLayer when needed to populate
instances. However due to some reason this call fails with an error saying
set of order categories are missing. I verified previous messages and it
seems like required information is there.

*Methods invoking getOrderTemplate():*
1. GetHardwareForVirtualGuest.getHardware(): Fetch price list.
2. GetHardwareForVirtualGuest.getImage(): Fetch price list.

*Error:*
-  >> GET

https://api.softlayer.com/rest/v3/SoftLayer_Virtual_Guest/3752162/getOrderTemplate/MONTHLY.jsonHTTP/1.1
-  >> Accept: application/json
-  << HTTP/1.1 500 Internal Server Error
-  << "{"error":"Order is missing the following categories: Ram, Public
Bandwidth, Operating System, Primary IP Addresses, Monitoring,
Notification, Response, Uplink Port Speeds, VPN Management - Private
Network, Vulnerability Assessments & Management, Remote
Management.","code":"SoftLayer_Exception_Order_MissingCategory"}"

*Findings:*
I could see a simlar error has been handled in
GetHardwareForVirtualGuest.getImage() method when invoking
getOrderTemplate():

try {
             order =
api.getVirtualGuestApi().getOrderTemplate(guest.getId());
          } catch (SoftLayerOrderItemDuplicateException e) {
             // this is a workaround because SoftLayer throws sometimes 500
internal server errors for the above method call
             logger.warn(e, "Cannot get order template for
virtualGuestId(%s)", guest.getId());
          }

Are prices mandatory when populating instances (nodes)? If so could this be
a data error?
Really appreciate any thoughts on this.

Thanks
--
Imesh Gunaratne

Technical Lead, WSO2
Committer & PPMC Member, Apache Stratos


Reply via email to