softlayer-ruby icon indicating copy to clipboard operation
softlayer-ruby copied to clipboard

Create semantic interface for Load Balancers (Local)

Open cbreden opened this issue 10 years ago • 6 comments

cbreden avatar Jun 11 '14 17:06 cbreden

The local load balancer is a bit of a beast with three key components: the load balancer, load balancer groups, and the services within a group. I think a polished semantic with be particularly helpful to people here. Whether we keep it all in one object or break it out is certainly up for debate...

Load Balancer

  • [ ] Get single load balancer (by id, by ip, by other criteria...)
  • [ ] Get all load balancers (with optional filter criteria)
  • [ ] Get load balancers given a BMI/VG/service name (potential utility function that maybe belongs in other classes)
  • [ ] Order/Create
  • [ ] Destroy
  • [ ] Get single group (by id, by port, by other criteria...)
  • [ ] Get all groups (with optional filter criteria)
  • [ ] Add / Delete group
  • [ ] Edit group
  • [ ] Balance groups or equivalent (Important utility function to help manage allocation during adds/deletes. I suggest making this behavior automatic with ability to turn it off. Most people will probably want groups to be equally distributed by default)

Load Balancer Group

You can always have alternative incoming/destination port mappings which form unique services, but most calls can probably default/assume the destination port is the as the LB group port (treat it as an optional parameter that defaults to the group's port)

  • [ ] Get service by IP/Port/Destination Port
  • [ ] Add service (ip, health_check_type, weight, enabled, notes, port)
  • [ ] Edit service
  • [ ] Delete service
  • [ ] Toggle service (status enabled<->disabled)

Utility

  • [ ] Get routing methods
  • [ ] Get routing types

Necessary Services

  • http://sldn.softlayer.com/reference/services/SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_VirtualIpAddress
  • http://sldn.softlayer.com/reference/services/SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_Service
  • http://sldn.softlayer.com/reference/services/SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_VirtualServer
  • http://sldn.softlayer.com/reference/services/SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_Health_Check_Type
  • http://sldn.softlayer.com/reference/services/SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_Routing_Type
  • http://sldn.softlayer.com/reference/services/SoftLayer_Network_Application_Delivery_Controller_LoadBalancer_Routing_Method

cbreden avatar Jun 17 '14 00:06 cbreden

Hi there, do you have any plans to implement this? Have recently moved a bunch of servers / load balancers to Softlayer from another hosting company & it would be super useful to be able to access this from https://github.com/softlayer/knife-softlayer

madwort avatar Oct 08 '15 14:10 madwort

P.S. The subset of functionality we're most interested in would be

  • getting a list of load balancers
  • getting a list of services for a given load balancer
  • editing the configuration of services for given load balancer

madwort avatar Oct 08 '15 14:10 madwort

There are no definite plans to implement this interface. Work on the Ruby client is done on a volunteer basis (we don't have any engineering resources dedicated to it). The original implementation plan was to take the functionality available through the Python language bindings and re-create it through the softlayer_api gem.

I will make sure that your desire to see this implemented "sooner" is known.

SLsthompson avatar Oct 08 '15 14:10 SLsthompson

OT: Incidentally we recently released changes to the load balancer interface within the SoftLayer Control Portal. The changes were made to accommodate customers who felt the previous interface was difficult to navigate. If you have any feedback (positive or negative) about those changes we would be happy to receive that feedback through the email address portalfeedback in the softlayer.com domain.

SLsthompson avatar Oct 08 '15 14:10 SLsthompson

Interesting, yes, my colleagues found UI problems with the new system, which was what prompted me to research an automated solution, which brought me here. I'll tell them to send an email...

madwort avatar Oct 08 '15 14:10 madwort