Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Create semantic interface for Load Balancers (Local) #25

Open
cbreden opened this issue Jun 11, 2014 · 6 comments
Open

Create semantic interface for Load Balancers (Local) #25

cbreden opened this issue Jun 11, 2014 · 6 comments

Comments

@cbreden
Copy link

cbreden commented Jun 11, 2014

No description provided.

@cbreden
Copy link
Author

cbreden commented Jun 17, 2014

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

@madwort
Copy link

madwort commented Oct 8, 2015

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

madwort commented Oct 8, 2015

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

@SLsthompson
Copy link
Collaborator

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
Copy link
Collaborator

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.

@madwort
Copy link

madwort commented Oct 8, 2015

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

4 participants