Providers: propose changes to API
While implementing an API driver for VMware loadbalancing platforms, we ran into several difficulties which, I believe, might impact other vendors as well. The current approach of passing only the object id in delete operation forces the driver to either run within Octavia's context, or maintain a full state in order to map a sub-object id (e.g listener), to a loadbalancer, which it should be deleted from. With updates the problem is more complex as for reference the driver has to maintain a full state of the object - not only mapping to the loadbalancer. We already know what maintaining a mirror state is painful as we experienced this for a while with LBaaSv2 and Octavia. As an alternative, the driver could retreive the properties from the appliance which may be a costly operation and will only resolve the update challenges. Change-Id: Ide4beaf73bb99be5c3b4c71c12fecef3499f45d9
This commit is contained in:
parent
6349976cde
commit
97a168c270
@ -188,7 +188,8 @@ Delete
|
||||
|
||||
Removes an existing load balancer.
|
||||
|
||||
Octavia will pass in the load balancer ID and cascade bollean as parameters.
|
||||
Octavia will pass in the load balancer object and cascade boolean as
|
||||
parameters.
|
||||
|
||||
The load balancer will be in the ``PENDING_DELETE`` provisioning_status when
|
||||
it is passed to the driver. The driver will notify Octavia that the delete
|
||||
@ -221,7 +222,8 @@ Update
|
||||
Modifies an existing load balancer using the values supplied in the load
|
||||
balancer object.
|
||||
|
||||
Octavia will pass in a load balancer object with the fields to be updated.
|
||||
Octavia will pass in the original load balancer object which is the baseline
|
||||
for the update, and a load balancer object with the fields to be updated.
|
||||
Fields not updated by the user will contain "Unset" as defined in the data
|
||||
model.
|
||||
|
||||
@ -286,39 +288,40 @@ accepted.
|
||||
"""
|
||||
raise NotImplementedError()
|
||||
|
||||
def loadbalancer_delete(self, loadbalancer_id, cascade=False):
|
||||
"""Deletes a load balancer.
|
||||
def loadbalancer_delete(self, loadbalancer, cascade=False):
|
||||
"""Deletes a load balancer.
|
||||
|
||||
:param loadbalancer_id (string): ID of the load balancer to delete.
|
||||
:param cascade (bool): If True, deletes all child objects (listeners,
|
||||
pools, etc.) in addition to the load balancer.
|
||||
:return: Nothing if the delete request was accepted.
|
||||
:raises DriverError: An unexpected error occurred in the driver.
|
||||
:raises NotImplementedError: if driver does not support request.
|
||||
"""
|
||||
raise NotImplementedError()
|
||||
:param loadbalancer (object): The load balancer object.
|
||||
:param cascade (bool): If True, deletes all child objects (listeners,
|
||||
pools, etc.) in addition to the load balancer.
|
||||
:return: Nothing if the delete request was accepted.
|
||||
:raises DriverError: An unexpected error occurred in the driver.
|
||||
:raises NotImplementedError: if driver does not support request.
|
||||
"""
|
||||
raise NotImplementedError()
|
||||
|
||||
def loadbalancer_failover(self, loadbalancer_id):
|
||||
"""Performs a fail over of a load balancer.
|
||||
def loadbalancer_failover(self, loadbalancer_id):
|
||||
"""Performs a fail over of a load balancer.
|
||||
|
||||
:param loadbalancer_id (string): ID of the load balancer to failover.
|
||||
:return: Nothing if the failover request was accepted.
|
||||
:raises DriverError: An unexpected error occurred in the driver.
|
||||
:raises: NotImplementedError if driver does not support request.
|
||||
"""
|
||||
raise NotImplementedError()
|
||||
:param loadbalancer_id (string): ID of the load balancer to failover.
|
||||
:return: Nothing if the failover request was accepted.
|
||||
:raises DriverError: An unexpected error occurred in the driver.
|
||||
:raises: NotImplementedError if driver does not support request.
|
||||
"""
|
||||
raise NotImplementedError()
|
||||
|
||||
def loadbalancer_update(self, loadbalancer):
|
||||
"""Updates a load balancer.
|
||||
def loadbalancer_update(self, old_loadbalancer, new_loadbalancer):
|
||||
"""Updates a load balancer.
|
||||
|
||||
:param loadbalancer (object): The load balancer object.
|
||||
:return: Nothing if the update request was accepted.
|
||||
:raises DriverError: An unexpected error occurred in the driver.
|
||||
:raises NotImplementedError: The driver does not support request.
|
||||
:raises UnsupportedOptionError: The driver does not
|
||||
support one of the configuration options.
|
||||
"""
|
||||
raise NotImplementedError()
|
||||
:param old_loadbalancer (object): The baseline load balancer object.
|
||||
:param new_loadbalancer (object): The updated load balancer object.
|
||||
:return: Nothing if the update request was accepted.
|
||||
:raises DriverError: An unexpected error occurred in the driver.
|
||||
:raises NotImplementedError: The driver does not support request.
|
||||
:raises UnsupportedOptionError: The driver does not
|
||||
support one of the configuration options.
|
||||
"""
|
||||
raise NotImplementedError()
|
||||
|
||||
Listener
|
||||
--------
|
||||
@ -467,7 +470,7 @@ Delete
|
||||
|
||||
Deletes an existing listener.
|
||||
|
||||
Octavia will pass the listener ID as a parameter.
|
||||
Octavia will pass the listener object as a parameter.
|
||||
|
||||
The listener will be in the ``PENDING_DELETE`` provisioning_status when
|
||||
it is passed to the driver. The driver will notify Octavia that the delete
|
||||
@ -480,7 +483,8 @@ Update
|
||||
Modifies an existing listener using the values supplied in the listener
|
||||
object.
|
||||
|
||||
Octavia will pass in a listener object with the fields to be updated.
|
||||
Octavia will pass in the original listener object which is the baseline for the
|
||||
update, and a listener object with the fields to be updated.
|
||||
Fields not updated by the user will contain "Unset" as defined in the data
|
||||
model.
|
||||
|
||||
@ -565,20 +569,21 @@ accepted.
|
||||
"""
|
||||
raise NotImplementedError()
|
||||
|
||||
def listener_delete(self, listener_id):
|
||||
def listener_delete(self, listener):
|
||||
"""Deletes a listener.
|
||||
|
||||
:param listener_id (string): ID of the listener to delete.
|
||||
:param listener (object): The listener object.
|
||||
:return: Nothing if the delete request was accepted.
|
||||
:raises DriverError: An unexpected error occurred in the driver.
|
||||
:raises NotImplementedError: if driver does not support request.
|
||||
"""
|
||||
raise NotImplementedError()
|
||||
|
||||
def listener_update(self, listener):
|
||||
def listener_update(self, old_listener, new_listener):
|
||||
"""Updates a listener.
|
||||
|
||||
:param listener (object): The listener object.
|
||||
:param old_listener (object): The baseline listener object.
|
||||
:param new_listener (object): The updated listener object.
|
||||
:return: Nothing if the update request was accepted.
|
||||
:raises DriverError: An unexpected error occurred in the driver.
|
||||
:raises NotImplementedError: if driver does not support request.
|
||||
@ -655,7 +660,7 @@ Delete
|
||||
|
||||
Removes an existing pool and all of its members.
|
||||
|
||||
Octavia will pass the pool ID as a parameter.
|
||||
Octavia will pass the pool object as a parameter.
|
||||
|
||||
The pool will be in the ``PENDING_DELETE`` provisioning_status when
|
||||
it is passed to the driver. The driver will notify Octavia that the delete
|
||||
@ -667,7 +672,8 @@ Update
|
||||
|
||||
Modifies an existing pool using the values supplied in the pool object.
|
||||
|
||||
Octavia will pass in a pool object with the fields to be updated.
|
||||
Octavia will pass in the original pool object which is the baseline for the
|
||||
update, and a pool object with the fields to be updated.
|
||||
Fields not updated by the user will contain "Unset" as defined in the data
|
||||
model.
|
||||
|
||||
@ -723,20 +729,21 @@ accepted.
|
||||
"""
|
||||
raise NotImplementedError()
|
||||
|
||||
def pool_delete(self, pool_id):
|
||||
def pool_delete(self, pool):
|
||||
"""Deletes a pool and its members.
|
||||
|
||||
:param pool_id (string): ID of the pool to delete.
|
||||
:param pool (object): The pool object.
|
||||
:return: Nothing if the create request was accepted.
|
||||
:raises DriverError: An unexpected error occurred in the driver.
|
||||
:raises NotImplementedError: if driver does not support request.
|
||||
"""
|
||||
raise NotImplementedError()
|
||||
|
||||
def pool_update(self, pool):
|
||||
def pool_update(self, old_pool, new_pool):
|
||||
"""Updates a pool.
|
||||
|
||||
:param pool (object): The pool object.
|
||||
:param old_pool (object): The baseline pool object.
|
||||
:param new_pool (object): The updated pool object.
|
||||
:return: Nothing if the create request was accepted.
|
||||
:raises DriverError: An unexpected error occurred in the driver.
|
||||
:raises NotImplementedError: if driver does not support request.
|
||||
@ -822,7 +829,7 @@ Delete
|
||||
|
||||
Removes a pool member.
|
||||
|
||||
Octavia will pass the member ID as a parameter.
|
||||
Octavia will pass the member object as a parameter.
|
||||
|
||||
The member will be in the ``PENDING_DELETE`` provisioning_status when
|
||||
it is passed to the driver. The driver will notify Octavia that the delete
|
||||
@ -834,7 +841,8 @@ Update
|
||||
|
||||
Modifies an existing member using the values supplied in the listener object.
|
||||
|
||||
Octavia will pass in a member object with the fields to be updated.
|
||||
Octavia will pass in the original member object which is the baseline for the
|
||||
update, and a member object with the fields to be updated.
|
||||
Fields not updated by the user will contain "Unset" as defined in the data
|
||||
model.
|
||||
|
||||
@ -917,7 +925,6 @@ and members in the list that do not already exist should be created.
|
||||
"""Creates a new member for a pool.
|
||||
|
||||
:param member (object): The member object.
|
||||
|
||||
:return: Nothing if the create request was accepted.
|
||||
:raises DriverError: An unexpected error occurred in the driver.
|
||||
:raises NotImplementedError: if driver does not support request.
|
||||
@ -926,22 +933,23 @@ and members in the list that do not already exist should be created.
|
||||
"""
|
||||
raise NotImplementedError()
|
||||
|
||||
def member_delete(self, member_id):
|
||||
def member_delete(self, member):
|
||||
|
||||
"""Deletes a pool member.
|
||||
|
||||
:param member_id (string): ID of the member to delete.
|
||||
:param member (object): The member object.
|
||||
:return: Nothing if the create request was accepted.
|
||||
:raises DriverError: An unexpected error occurred in the driver.
|
||||
:raises NotImplementedError: if driver does not support request.
|
||||
"""
|
||||
raise NotImplementedError()
|
||||
|
||||
def member_update(self, member):
|
||||
def member_update(self, old_member, new_member):
|
||||
|
||||
"""Updates a pool member.
|
||||
|
||||
:param member (object): The member object.
|
||||
:param old_member (object): The baseline member object.
|
||||
:param new_member (object): The updated member object.
|
||||
:return: Nothing if the create request was accepted.
|
||||
:raises DriverError: An unexpected error occurred in the driver.
|
||||
:raises NotImplementedError: if driver does not support request.
|
||||
@ -1041,7 +1049,7 @@ Delete
|
||||
|
||||
Deletes an existing health monitor.
|
||||
|
||||
Octavia will pass in the health monitor ID as a parameter.
|
||||
Octavia will pass in the health monitor object as a parameter.
|
||||
|
||||
The health monitor will be in the ``PENDING_DELETE`` provisioning_status
|
||||
when it is passed to the driver. The driver will notify Octavia that the
|
||||
@ -1055,7 +1063,8 @@ Update
|
||||
Modifies an existing health monitor using the values supplied in the
|
||||
health monitor object.
|
||||
|
||||
Octavia will pass in a health monitor object with the fields to be updated.
|
||||
Octavia will pass in the original health monitor object which is the baseline
|
||||
for the update, and a health monitor object with the fields to be updated.
|
||||
Fields not updated by the user will contain "Unset" as defined in the data
|
||||
model.
|
||||
|
||||
@ -1128,20 +1137,22 @@ accepted.
|
||||
"""
|
||||
raise NotImplementedError()
|
||||
|
||||
def health_monitor_delete(self, healthmonitor_id):
|
||||
def health_monitor_delete(self, healthmonitor):
|
||||
"""Deletes a healthmonitor_id.
|
||||
|
||||
:param healthmonitor_id (string): ID of the monitor to delete.
|
||||
:param healthmonitor (object): The health monitor object.
|
||||
:return: Nothing if the create request was accepted.
|
||||
:raises DriverError: An unexpected error occurred in the driver.
|
||||
:raises NotImplementedError: if driver does not support request.
|
||||
"""
|
||||
raise NotImplementedError()
|
||||
|
||||
def health_monitor_update(self, healthmonitor):
|
||||
def health_monitor_update(self, old_healthmonitor, new_healthmonitor):
|
||||
"""Updates a health monitor.
|
||||
|
||||
:param healthmonitor (object): The health monitor object.
|
||||
:param old_healthmonitor (object): The baseline health monitor
|
||||
object.
|
||||
:param new_healthmonitor (object): The updated health monitor object.
|
||||
:return: Nothing if the create request was accepted.
|
||||
:raises DriverError: An unexpected error occurred in the driver.
|
||||
:raises NotImplementedError: if driver does not support request.
|
||||
@ -1223,7 +1234,7 @@ Delete
|
||||
|
||||
Deletes an existing L7 policy.
|
||||
|
||||
Octavia will pass in the L7 policy ID as a parameter.
|
||||
Octavia will pass in the L7 policy object as a parameter.
|
||||
|
||||
The l7policy will be in the ``PENDING_DELETE`` provisioning_status when
|
||||
it is passed to the driver. The driver will notify Octavia that the delete
|
||||
@ -1236,7 +1247,8 @@ Update
|
||||
Modifies an existing L7 policy using the values supplied in the l7policy
|
||||
object.
|
||||
|
||||
Octavia will pass in an L7 policy object with the fields to be updated.
|
||||
Octavia will pass in the original L7 policy object which is the baseline for
|
||||
the update, and an L7 policy object with the fields to be updated.
|
||||
Fields not updated by the user will contain "Unset" as defined in the data
|
||||
model.
|
||||
|
||||
@ -1298,20 +1310,21 @@ accepted.
|
||||
"""
|
||||
raise NotImplementedError()
|
||||
|
||||
def l7policy_delete(self, l7policy_id):
|
||||
def l7policy_delete(self, l7policy):
|
||||
"""Deletes an L7 policy.
|
||||
|
||||
:param l7policy_id (string): ID of the L7 policy to delete.
|
||||
:param l7policy (object): The l7policy object.
|
||||
:return: Nothing if the delete request was accepted.
|
||||
:raises DriverError: An unexpected error occurred in the driver.
|
||||
:raises NotImplementedError: if driver does not support request.
|
||||
"""
|
||||
raise NotImplementedError()
|
||||
|
||||
def l7policy_update(self, l7policy):
|
||||
def l7policy_update(self, old_l7policy, new_l7policy):
|
||||
"""Updates an L7 policy.
|
||||
|
||||
:param l7policy (object): The l7policy object.
|
||||
:param old_l7policy (object): The baseline l7policy object.
|
||||
:param new_l7policy (object): The updated l7policy object.
|
||||
:return: Nothing if the update request was accepted.
|
||||
:raises DriverError: An unexpected error occurred in the driver.
|
||||
:raises NotImplementedError: if driver does not support request.
|
||||
@ -1384,7 +1397,7 @@ Delete
|
||||
|
||||
Deletes an existing L7 rule.
|
||||
|
||||
Octavia will pass in the L7 rule ID as a parameter.
|
||||
Octavia will pass in the L7 rule object as a parameter.
|
||||
|
||||
The L7 rule will be in the ``PENDING_DELETE`` provisioning_status when
|
||||
it is passed to the driver. The driver will notify Octavia that the delete
|
||||
@ -1396,7 +1409,8 @@ Update
|
||||
|
||||
Modifies an existing L7 rule using the values supplied in the l7rule object.
|
||||
|
||||
Octavia will pass in an L7 rule object with the fields to be updated.
|
||||
Octavia will pass in the original L7 rule object which is the baseline for the
|
||||
update, and an L7 rule object with the fields to be updated.
|
||||
Fields not updated by the user will contain "Unset" as defined in the data
|
||||
model.
|
||||
|
||||
@ -1456,22 +1470,23 @@ accepted.
|
||||
"""
|
||||
raise NotImplementedError()
|
||||
|
||||
def l7rule_delete(self, l7rule_id):
|
||||
def l7rule_delete(self, l7rule):
|
||||
|
||||
"""Deletes an L7 rule.
|
||||
|
||||
:param l7rule_id (string): ID of the L7 rule to delete.
|
||||
:param l7rule (object): The L7 rule object.
|
||||
:return: Nothing if the delete request was accepted.
|
||||
:raises DriverError: An unexpected error occurred in the driver.
|
||||
:raises NotImplementedError: if driver does not support request.
|
||||
"""
|
||||
raise NotImplementedError()
|
||||
|
||||
def l7rule_update(self, l7rule):
|
||||
def l7rule_update(self, old_l7rule, new_l7rule):
|
||||
|
||||
"""Updates an L7 rule.
|
||||
|
||||
:param l7rule (object): The L7 rule object.
|
||||
:param old_l7rule (object): The baseline L7 rule object.
|
||||
:param new_l7rule (object): The updated L7 rule object.
|
||||
:return: Nothing if the update request was accepted.
|
||||
:raises DriverError: An unexpected error occurred in the driver.
|
||||
:raises NotImplementedError: if driver does not support request.
|
||||
|
@ -172,7 +172,8 @@ Load balancer
|
||||
|
||||
Removes an existing load balancer.
|
||||
|
||||
Octavia will pass in the load balancer ID and cascade bollean as parameters.
|
||||
Octavia will pass in the load balancer object and cascade boolean as
|
||||
parameters.
|
||||
|
||||
The load balancer will be in the ``PENDING_DELETE`` provisioning_status when
|
||||
it is passed to the driver. The driver will notify Octavia that the delete
|
||||
@ -203,7 +204,8 @@ Load balancer
|
||||
Modifies an existing load balancer using the values supplied in the load
|
||||
balancer object.
|
||||
|
||||
Octavia will pass in a load balancer object with the fields to be updated.
|
||||
Octavia will pass in the original load balancer object which is the baseline
|
||||
for the update, and a load balancer object with the fields to be updated.
|
||||
|
||||
As of the writing of this specification the update load balancer object may
|
||||
contain the following:
|
||||
@ -266,39 +268,40 @@ Load balancer
|
||||
"""
|
||||
raise NotImplementedError()
|
||||
|
||||
def loadbalancer_delete(self, loadbalancer_id, cascade=False):
|
||||
"""Deletes a load balancer.
|
||||
def loadbalancer_delete(self, loadbalancer, cascade=False):
|
||||
"""Deletes a load balancer.
|
||||
|
||||
:param loadbalancer_id (string): ID of the load balancer to delete.
|
||||
:param cascade (bool): If True, deletes all child objects (listeners,
|
||||
pools, etc.) in addition to the load balancer.
|
||||
:return: Nothing if the delete request was accepted.
|
||||
:raises DriverError: An unexpected error occurred in the driver.
|
||||
:raises NotImplementedError: if driver does not support request.
|
||||
"""
|
||||
raise NotImplementedError()
|
||||
:param loadbalancer (object): The load balancer object.
|
||||
:param cascade (bool): If True, deletes all child objects (listeners,
|
||||
pools, etc.) in addition to the load balancer.
|
||||
:return: Nothing if the delete request was accepted.
|
||||
:raises DriverError: An unexpected error occurred in the driver.
|
||||
:raises NotImplementedError: if driver does not support request.
|
||||
"""
|
||||
raise NotImplementedError()
|
||||
|
||||
def loadbalancer_failover(self, loadbalancer_id):
|
||||
"""Performs a fail over of a load balancer.
|
||||
def loadbalancer_failover(self, loadbalancer_id):
|
||||
"""Performs a fail over of a load balancer.
|
||||
|
||||
:param loadbalancer_id (string): ID of the load balancer to failover.
|
||||
:return: Nothing if the failover request was accepted.
|
||||
:raises DriverError: An unexpected error occurred in the driver.
|
||||
:raises: NotImplementedError if driver does not support request.
|
||||
"""
|
||||
raise NotImplementedError()
|
||||
:param loadbalancer_id (string): ID of the load balancer to failover.
|
||||
:return: Nothing if the failover request was accepted.
|
||||
:raises DriverError: An unexpected error occurred in the driver.
|
||||
:raises: NotImplementedError if driver does not support request.
|
||||
"""
|
||||
raise NotImplementedError()
|
||||
|
||||
def loadbalancer_update(self, loadbalancer):
|
||||
"""Updates a load balancer.
|
||||
def loadbalancer_update(self, old_loadbalancer, new_loadbalancer):
|
||||
"""Updates a load balancer.
|
||||
|
||||
:param loadbalancer (object): The load balancer object.
|
||||
:return: Nothing if the update request was accepted.
|
||||
:raises DriverError: An unexpected error occurred in the driver.
|
||||
:raises NotImplementedError: The driver does not support request.
|
||||
:raises UnsupportedOptionError: The driver does not
|
||||
support one of the configuration options.
|
||||
"""
|
||||
raise NotImplementedError()
|
||||
:param old_loadbalancer (object): The baseline load balancer object.
|
||||
:param new_loadbalancer (object): The updated load balancer object.
|
||||
:return: Nothing if the update request was accepted.
|
||||
:raises DriverError: An unexpected error occurred in the driver.
|
||||
:raises NotImplementedError: The driver does not support request.
|
||||
:raises UnsupportedOptionError: The driver does not
|
||||
support one of the configuration options.
|
||||
"""
|
||||
raise NotImplementedError()
|
||||
|
||||
Listener
|
||||
^^^^^^^^
|
||||
@ -443,7 +446,7 @@ Listener
|
||||
|
||||
Deletes an existing listener.
|
||||
|
||||
Octavia will pass the listener ID as a parameter.
|
||||
Octavia will pass the listener object as a parameter.
|
||||
|
||||
The listener will be in the ``PENDING_DELETE`` provisioning_status when
|
||||
it is passed to the driver. The driver will notify Octavia that the delete
|
||||
@ -455,7 +458,8 @@ Listener
|
||||
Modifies an existing listener using the values supplied in the listener
|
||||
object.
|
||||
|
||||
Octavia will pass in a listener object with the fields to be updated.
|
||||
Octavia will pass in the original listener object which is the baseline for
|
||||
the update, and a listener object with the fields to be updated.
|
||||
|
||||
As of the writing of this specification the update listener object may
|
||||
contain the following:
|
||||
@ -538,20 +542,21 @@ Listener
|
||||
"""
|
||||
raise NotImplementedError()
|
||||
|
||||
def listener_delete(self, listener_id):
|
||||
def listener_delete(self, listener):
|
||||
"""Deletes a listener.
|
||||
|
||||
:param listener_id (string): ID of the listener to delete.
|
||||
:param listener (object): The listener object.
|
||||
:return: Nothing if the delete request was accepted.
|
||||
:raises DriverError: An unexpected error occurred in the driver.
|
||||
:raises NotImplementedError: if driver does not support request.
|
||||
"""
|
||||
raise NotImplementedError()
|
||||
|
||||
def listener_update(self, listener):
|
||||
def listener_update(self, old_listener, new_listener):
|
||||
"""Updates a listener.
|
||||
|
||||
:param listener (object): The listener object.
|
||||
:param old_listener (object): The baseline listener object.
|
||||
:param new_listener (object): The updated listener object.
|
||||
:return: Nothing if the update request was accepted.
|
||||
:raises DriverError: An unexpected error occurred in the driver.
|
||||
:raises NotImplementedError: if driver does not support request.
|
||||
@ -626,7 +631,7 @@ Pool
|
||||
|
||||
Removes an existing pool and all of its members.
|
||||
|
||||
Octavia will pass the pool ID as a parameter.
|
||||
Octavia will pass the pool object as a parameter.
|
||||
|
||||
The pool will be in the ``PENDING_DELETE`` provisioning_status when
|
||||
it is passed to the driver. The driver will notify Octavia that the delete
|
||||
@ -637,7 +642,8 @@ Pool
|
||||
|
||||
Modifies an existing pool using the values supplied in the pool object.
|
||||
|
||||
Octavia will pass in a pool object with the fields to be updated.
|
||||
Octavia will pass in the original pool object which is the baseline for the
|
||||
update, and a pool object with the fields to be updated.
|
||||
|
||||
As of the writing of this specification the update pool object may
|
||||
contain the following:
|
||||
@ -691,20 +697,21 @@ Pool
|
||||
"""
|
||||
raise NotImplementedError()
|
||||
|
||||
def pool_delete(self, pool_id):
|
||||
def pool_delete(self, pool):
|
||||
"""Deletes a pool and its members.
|
||||
|
||||
:param pool_id (string): ID of the pool to delete.
|
||||
:param pool (object): The pool object.
|
||||
:return: Nothing if the create request was accepted.
|
||||
:raises DriverError: An unexpected error occurred in the driver.
|
||||
:raises NotImplementedError: if driver does not support request.
|
||||
"""
|
||||
raise NotImplementedError()
|
||||
|
||||
def pool_update(self, pool):
|
||||
def pool_update(self, old_pool, new_pool):
|
||||
"""Updates a pool.
|
||||
|
||||
:param pool (object): The pool object.
|
||||
:param old_pool (object): The baseline pool object.
|
||||
:param new_pool (object): The updated pool object.
|
||||
:return: Nothing if the create request was accepted.
|
||||
:raises DriverError: An unexpected error occurred in the driver.
|
||||
:raises NotImplementedError: if driver does not support request.
|
||||
@ -788,7 +795,7 @@ Member
|
||||
|
||||
Removes a pool member.
|
||||
|
||||
Octavia will pass the member ID as a parameter.
|
||||
Octavia will pass the member object as a parameter.
|
||||
|
||||
The member will be in the ``PENDING_DELETE`` provisioning_status when
|
||||
it is passed to the driver. The driver will notify Octavia that the delete
|
||||
@ -799,7 +806,8 @@ Member
|
||||
|
||||
Modifies an existing member using the values supplied in the listener object.
|
||||
|
||||
Octavia will pass in a member object with the fields to be updated.
|
||||
Octavia will pass in the original member object which is the baseline for the
|
||||
update, and a member object with the fields to be updated.
|
||||
|
||||
As of the writing of this specification the update member object may contain
|
||||
the following:
|
||||
@ -888,22 +896,23 @@ Member
|
||||
"""
|
||||
raise NotImplementedError()
|
||||
|
||||
def member_delete(self, member_id):
|
||||
def member_delete(self, member):
|
||||
|
||||
"""Deletes a pool member.
|
||||
|
||||
:param member_id (string): ID of the member to delete.
|
||||
:param member (object): The member object.
|
||||
:return: Nothing if the create request was accepted.
|
||||
:raises DriverError: An unexpected error occurred in the driver.
|
||||
:raises NotImplementedError: if driver does not support request.
|
||||
"""
|
||||
raise NotImplementedError()
|
||||
|
||||
def member_update(self, member):
|
||||
def member_update(self, old_member, new_member):
|
||||
|
||||
"""Updates a pool member.
|
||||
|
||||
:param member (object): The member object.
|
||||
:param old_member (object): The baseline member object.
|
||||
:param new_member (object): The updated member object.
|
||||
:return: Nothing if the create request was accepted.
|
||||
:raises DriverError: An unexpected error occurred in the driver.
|
||||
:raises NotImplementedError: if driver does not support request.
|
||||
@ -1001,7 +1010,7 @@ Health Monitor
|
||||
|
||||
Deletes an existing health monitor.
|
||||
|
||||
Octavia will pass in the health monitor ID as a parameter.
|
||||
Octavia will pass in the health monitor object as a parameter.
|
||||
|
||||
The health monitor will be in the ``PENDING_DELETE`` provisioning_status
|
||||
when it is passed to the driver. The driver will notify Octavia that the
|
||||
@ -1014,7 +1023,8 @@ Health Monitor
|
||||
Modifies an existing health monitor using the values supplied in the
|
||||
health monitor object.
|
||||
|
||||
Octavia will pass in a health monitor object with the fields to be updated.
|
||||
Octavia will pass in the original health monitor object which is the baseline
|
||||
for the update, and a health monitor object with the fields to be updated.
|
||||
|
||||
As of the writing of this specification the update health monitor object may
|
||||
contain the following:
|
||||
@ -1085,20 +1095,22 @@ Health Monitor
|
||||
"""
|
||||
raise NotImplementedError()
|
||||
|
||||
def health_monitor_delete(self, healthmonitor_id):
|
||||
def health_monitor_delete(self, healthmonitor):
|
||||
"""Deletes a healthmonitor_id.
|
||||
|
||||
:param healthmonitor_id (string): ID of the monitor to delete.
|
||||
:param healthmonitor (object): The health monitor object.
|
||||
:return: Nothing if the create request was accepted.
|
||||
:raises DriverError: An unexpected error occurred in the driver.
|
||||
:raises NotImplementedError: if driver does not support request.
|
||||
"""
|
||||
raise NotImplementedError()
|
||||
|
||||
def health_monitor_update(self, healthmonitor):
|
||||
def health_monitor_update(self, old_healthmonitor, new_healthmonitor):
|
||||
"""Updates a health monitor.
|
||||
|
||||
:param healthmonitor (object): The health monitor object.
|
||||
:param old_healthmonitor (object): The baseline health monitor
|
||||
object.
|
||||
:param new_healthmonitor (object): The updated health monitor object.
|
||||
:return: Nothing if the create request was accepted.
|
||||
:raises DriverError: An unexpected error occurred in the driver.
|
||||
:raises NotImplementedError: if driver does not support request.
|
||||
@ -1178,7 +1190,7 @@ L7 Policy
|
||||
|
||||
Deletes an existing L7 policy.
|
||||
|
||||
Octavia will pass in the L7 policy ID as a parameter.
|
||||
Octavia will pass in the L7 policy object as a parameter.
|
||||
|
||||
The l7policy will be in the ``PENDING_DELETE`` provisioning_status when
|
||||
it is passed to the driver. The driver will notify Octavia that the delete
|
||||
@ -1190,7 +1202,8 @@ L7 Policy
|
||||
Modifies an existing L7 policy using the values supplied in the l7policy
|
||||
object.
|
||||
|
||||
Octavia will pass in an L7 policy object with the fields to be updated.
|
||||
Octavia will pass in the original L7 policy object which is the baseline for
|
||||
the update, and an L7 policy object with the fields to be updated.
|
||||
|
||||
As of the writing of this specification the update L7 policy object may
|
||||
contain the following:
|
||||
@ -1249,20 +1262,21 @@ L7 Policy
|
||||
"""
|
||||
raise NotImplementedError()
|
||||
|
||||
def l7policy_delete(self, l7policy_id):
|
||||
def l7policy_delete(self, l7policy):
|
||||
"""Deletes an L7 policy.
|
||||
|
||||
:param l7policy_id (string): ID of the L7 policy to delete.
|
||||
:param l7policy (object): The l7policy object.
|
||||
:return: Nothing if the delete request was accepted.
|
||||
:raises DriverError: An unexpected error occurred in the driver.
|
||||
:raises NotImplementedError: if driver does not support request.
|
||||
"""
|
||||
raise NotImplementedError()
|
||||
|
||||
def l7policy_update(self, l7policy):
|
||||
def l7policy_update(self, old_l7policy, new_l7policy):
|
||||
"""Updates an L7 policy.
|
||||
|
||||
:param l7policy (object): The l7policy object.
|
||||
:param old_l7policy (object): The baseline l7policy object.
|
||||
:param new_l7policy (object): The updated l7policy object.
|
||||
:return: Nothing if the update request was accepted.
|
||||
:raises DriverError: An unexpected error occurred in the driver.
|
||||
:raises NotImplementedError: if driver does not support request.
|
||||
@ -1333,7 +1347,7 @@ L7 Rule
|
||||
|
||||
Deletes an existing L7 rule.
|
||||
|
||||
Octavia will pass in the L7 rule ID as a parameter.
|
||||
Octavia will pass in the L7 rule object as a parameter.
|
||||
|
||||
The L7 rule will be in the ``PENDING_DELETE`` provisioning_status when
|
||||
it is passed to the driver. The driver will notify Octavia that the delete
|
||||
@ -1344,7 +1358,8 @@ L7 Rule
|
||||
|
||||
Modifies an existing L7 rule using the values supplied in the l7rule object.
|
||||
|
||||
Octavia will pass in an L7 rule object with the fields to be updated.
|
||||
Octavia will pass in the original L7 rule object which is the baseline for
|
||||
the update, and an L7 rule object with the fields to be updated.
|
||||
|
||||
As of the writing of this specification the update L7 rule object may
|
||||
contain the following:
|
||||
@ -1402,22 +1417,23 @@ L7 Rule
|
||||
"""
|
||||
raise NotImplementedError()
|
||||
|
||||
def l7rule_delete(self, l7rule_id):
|
||||
def l7rule_delete(self, l7rule):
|
||||
|
||||
"""Deletes an L7 rule.
|
||||
|
||||
:param l7rule_id (string): ID of the L7 rule to delete.
|
||||
:param l7rule (object): The L7 rule object.
|
||||
:return: Nothing if the delete request was accepted.
|
||||
:raises DriverError: An unexpected error occurred in the driver.
|
||||
:raises NotImplementedError: if driver does not support request.
|
||||
"""
|
||||
raise NotImplementedError()
|
||||
|
||||
def l7rule_update(self, l7rule):
|
||||
def l7rule_update(self, old_l7rule, new_l7rule):
|
||||
|
||||
"""Updates an L7 rule.
|
||||
|
||||
:param l7rule (object): The L7 rule object.
|
||||
:param old_l7rule (object): The baseline L7 rule object.
|
||||
:param new_l7rule (object): The updated L7 rule object.
|
||||
:return: Nothing if the update request was accepted.
|
||||
:raises DriverError: An unexpected error occurred in the driver.
|
||||
:raises NotImplementedError: if driver does not support request.
|
||||
|
Loading…
Reference in New Issue
Block a user