Updated Branches: refs/heads/trunk e1d8dd992 -> efc6e9923
Update base loadbalancer api to use sphinx style docs, add loadbalancer api sphinx docs. Project: http://git-wip-us.apache.org/repos/asf/libcloud/repo Commit: http://git-wip-us.apache.org/repos/asf/libcloud/commit/efc6e992 Tree: http://git-wip-us.apache.org/repos/asf/libcloud/tree/efc6e992 Diff: http://git-wip-us.apache.org/repos/asf/libcloud/diff/efc6e992 Branch: refs/heads/trunk Commit: efc6e9923ba17eb546f3eb29a45f07f56cf1e8bc Parents: e1d8dd9 Author: Tomaz Muraus <[email protected]> Authored: Sat Aug 3 15:30:10 2013 +0200 Committer: Tomaz Muraus <[email protected]> Committed: Sat Aug 3 15:30:49 2013 +0200 ---------------------------------------------------------------------- docs/loadbalancers/api.rst | 5 ++ libcloud/loadbalancer/base.py | 131 ++++++++++++++++++++----------------- 2 files changed, 75 insertions(+), 61 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/libcloud/blob/efc6e992/docs/loadbalancers/api.rst ---------------------------------------------------------------------- diff --git a/docs/loadbalancers/api.rst b/docs/loadbalancers/api.rst new file mode 100644 index 0000000..0be4329 --- /dev/null +++ b/docs/loadbalancers/api.rst @@ -0,0 +1,5 @@ +LoadBalancer Base API +===================== + +.. autoclass:: libcloud.loadbalancer.base.Driver + :members: http://git-wip-us.apache.org/repos/asf/libcloud/blob/efc6e992/libcloud/loadbalancer/base.py ---------------------------------------------------------------------- diff --git a/libcloud/loadbalancer/base.py b/libcloud/loadbalancer/base.py index ccc7fab..d7d8e7d 100644 --- a/libcloud/loadbalancer/base.py +++ b/libcloud/loadbalancer/base.py @@ -90,10 +90,9 @@ class LoadBalancer(object): class Driver(BaseDriver): """ - A base LBDriver class to derive from + A base Driver class to derive from This class is always subclassed by a specific driver. - """ connectionCls = ConnectionKey @@ -109,7 +108,7 @@ class Driver(BaseDriver): """ Return a list of supported protocols. - @rtype: C{list} of C{str} + :rtype: ``list`` of ``str`` """ raise NotImplementedError( 'list_protocols not implemented for this driver') @@ -118,7 +117,7 @@ class Driver(BaseDriver): """ List all loadbalancers - @rtype: C{list} of L{LoadBalancer} + :rtype: ``list`` of :class:`LoadBalancer` """ raise NotImplementedError( 'list_balancers not implemented for this driver') @@ -127,34 +126,35 @@ class Driver(BaseDriver): """ Create a new load balancer instance - @param name: Name of the new load balancer (required) - @type name: C{str} + :param name: Name of the new load balancer (required) + :type name: ``str`` - @param port: Port the load balancer should listen on, defaults to 80 - @type port: C{str} + :param port: Port the load balancer should listen on, defaults to 80 + :type port: ``str`` - @param protocol: Loadbalancer protocol, defaults to http. - @type protocol: C{str} + :param protocol: Loadbalancer protocol, defaults to http. + :type protocol: ``str`` - @param members: list of Members to attach to balancer - @type members: C{list} of L{Member} + :param members: list of Members to attach to balancer + :type members: ``list`` of :class:`Member` - @param algorithm: Load balancing algorithm, defaults to ROUND_ROBIN - @type algorithm: L{Algorithm} + :param algorithm: Load balancing algorithm, defaults to ROUND_ROBIN. + :type algorithm: :class:`Algorithm` - @rtype: L{LoadBalancer} + :rtype: :class:`LoadBalancer` """ raise NotImplementedError( 'create_balancer not implemented for this driver') def destroy_balancer(self, balancer): - """Destroy a load balancer + """ + Destroy a load balancer - @param balancer: LoadBalancer which should be used - @type balancer: L{LoadBalancer} + :param balancer: LoadBalancer which should be used + :type balancer: :class:`LoadBalancer` - @return: True if the destroy was successful, otherwise False - @rtype: C{bool} + :return: ``True`` if the destroy was successful, otherwise ``False``. + :rtype: ``bool`` """ raise NotImplementedError( @@ -164,10 +164,10 @@ class Driver(BaseDriver): """ Return a L{LoadBalancer} object. - @param balancer_id: id of a load balancer you want to fetch - @type balancer_id: C{str} + :param balancer_id: id of a load balancer you want to fetch + :type balancer_id: ``str`` - @rtype: L{LoadBalancer} + :rtype: L{LoadBalancer} """ raise NotImplementedError( @@ -177,22 +177,22 @@ class Driver(BaseDriver): """ Sets the name, algorithm, protocol, or port on a load balancer. - @param balancer: LoadBalancer which should be used - @type balancer: L{LoadBalancer} + :param balancer: LoadBalancer which should be used + :type balancer: :class:`LoadBalancer` - @keyword name: New load balancer name - @type name: C{str} + :param name: New load balancer name + :type name: ``str`` - @keyword algorithm: New load balancer algorithm - @type algorithm: L{Algorithm} + :param algorithm: New load balancer algorithm + :type algorithm: :class:`Algorithm` - @keyword protocol: New load balancer protocol - @type protocol: C{str} + :param protocol: New load balancer protocol + :type protocol: ``str`` - @keyword port: New load balancer port - @type port: C{int} + :param port: New load balancer port + :type port: ``int`` - @rtype: L{LoadBalancer} + :rtype: :class:`LoadBalancer` """ raise NotImplementedError( 'update_balancer not implemented for this driver') @@ -201,32 +201,31 @@ class Driver(BaseDriver): """ Attach a compute node as a member to the load balancer. - @param balancer: LoadBalancer which should be used - @type balancer: L{LoadBalancer} + :param balancer: LoadBalancer which should be used + :type balancer: :class:`LoadBalancer` - @param node: Node to join to the balancer - @type node: L{Node} + :param node: Node to join to the balancer + :type node: :class:`Node` - @return: Member after joining the balancer. - @rtype: L{Member} + :return: Member after joining the balancer. + :rtype: :class:`Member` """ - return self.balancer_attach_member(balancer, Member(id=None, - ip=node.public_ips[0], - port=balancer.port)) + member = Member(id=None, ip=node.public_ips[0], port=balancer.port) + return self.balancer_attach_member(balancer, member) def balancer_attach_member(self, balancer, member): """ Attach a member to balancer - @param balancer: LoadBalancer which should be used - @type balancer: L{LoadBalancer} + :param balancer: LoadBalancer which should be used + :type balancer: :class:`LoadBalancer` - @param member: Member to join to the balancer - @type member: L{Member} + :param member: Member to join to the balancer + :type member: :class:`Member` - @return: Member after joining the balancer. - @rtype: L{Member} + :return: Member after joining the balancer. + :rtype: :class:`Member` """ raise NotImplementedError( @@ -236,14 +235,14 @@ class Driver(BaseDriver): """ Detach member from balancer - @param balancer: LoadBalancer which should be used - @type balancer: L{LoadBalancer} + :param balancer: LoadBalancer which should be used + :type balancer: :class:`LoadBalancer` - @param member: Member which should be used - @type member: L{Member} + :param member: Member which should be used + :type member: :class:`Member` - @return: True if member detach was successful, otherwise False - @rtype: C{bool} + :return: ``True`` if member detach was successful, otherwise ``False``. + :rtype: ``bool`` """ raise NotImplementedError( @@ -253,10 +252,10 @@ class Driver(BaseDriver): """ Return list of members attached to balancer - @param balancer: LoadBalancer which should be used - @type balancer: L{LoadBalancer} + :param balancer: LoadBalancer which should be used + :type balancer: :class:`LoadBalancer` - @rtype: C{list} of L{Member} + :rtype: ``list`` of :class:`Member` """ raise NotImplementedError( @@ -264,7 +263,12 @@ class Driver(BaseDriver): def _value_to_algorithm(self, value): """ - Return C{LBAlgorithm} based on the value. + Return :class`Algorithm` based on the value. + + :param value: Algorithm name (e.g. http, tcp, ...). + :type value: ``str`` + + @rype :class:`Algorithm` """ try: return self._VALUE_TO_ALGORITHM_MAP[value] @@ -274,7 +278,12 @@ class Driver(BaseDriver): def _algorithm_to_value(self, algorithm): """ - Return value based in the algorithm (C{LBAlgorithm}). + Return string value for the provided algorithm. + + :param value: Algorithm enum. + :type value: :class:`Algorithm` + + @rype ``str`` """ try: return self._ALGORITHM_TO_VALUE_MAP[algorithm] @@ -286,6 +295,6 @@ class Driver(BaseDriver): """ Return algorithms supported by this driver. - @rtype: C{list} of C{str} + :rtype: ``list`` of ``str`` """ return list(self._ALGORITHM_TO_VALUE_MAP.keys())
