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